/*===- 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 /*201 cases */, 97|128,38/*4961*/, TARGET_VAL(ISD::STORE),// ->4966
/*     5*/    OPC_RecordMemRef,
/*     6*/    OPC_RecordNode, // #0 = 'st' chained node
/*     7*/    OPC_Scope, 127|128,28/*3711*/, /*->3721*/ // 2 children in Scope
/*    10*/      OPC_MoveChild1,
/*    11*/      OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*    14*/      OPC_RecordChild0, // #1 = $S
/*    15*/      OPC_Scope, 78, /*->95*/ // 18 children in Scope
/*    17*/        OPC_CheckChild0Type, MVT::v16i8,
/*    19*/        OPC_CheckType, MVT::i32,
/*    21*/        OPC_Scope, 35, /*->58*/ // 2 children in Scope
/*    23*/          OPC_CheckChild1Integer, 7, 
/*    25*/          OPC_MoveParent,
/*    26*/          OPC_RecordChild2, // #2 = $dst
/*    27*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*    29*/          OPC_CheckPredicate, 1, // Predicate_truncstore
/*    31*/          OPC_CheckPredicate, 2, // Predicate_truncstorei8
/*    33*/          OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/*    35*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*    38*/          OPC_EmitMergeInputChains1_0,
/*    39*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*    42*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i32, 2/*#Ops*/, 1, 5,  // Results = #6
/*    50*/          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 (COPY_TO_REGCLASS:{ *:[v4i32] } ?:{ *:[v16i8] }:$S, VSRC:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$dst)
/*    58*/        /*Scope*/ 35, /*->94*/
/*    59*/          OPC_CheckChild1Integer, 8, 
/*    61*/          OPC_MoveParent,
/*    62*/          OPC_RecordChild2, // #2 = $dst
/*    63*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*    65*/          OPC_CheckPredicate, 1, // Predicate_truncstore
/*    67*/          OPC_CheckPredicate, 2, // Predicate_truncstorei8
/*    69*/          OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/*    71*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*    74*/          OPC_EmitMergeInputChains1_0,
/*    75*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*    78*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i32, 2/*#Ops*/, 1, 5,  // Results = #6
/*    86*/          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 (COPY_TO_REGCLASS:{ *:[v4i32] } ?:{ *:[v16i8] }:$S, VSRC:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$dst)
/*    94*/        0, /*End of Scope*/
/*    95*/      /*Scope*/ 78, /*->174*/
/*    96*/        OPC_CheckChild0Type, MVT::v8i16,
/*    98*/        OPC_CheckType, MVT::i32,
/*   100*/        OPC_Scope, 35, /*->137*/ // 2 children in Scope
/*   102*/          OPC_CheckChild1Integer, 3, 
/*   104*/          OPC_MoveParent,
/*   105*/          OPC_RecordChild2, // #2 = $dst
/*   106*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*   108*/          OPC_CheckPredicate, 1, // Predicate_truncstore
/*   110*/          OPC_CheckPredicate, 3, // Predicate_truncstorei16
/*   112*/          OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/*   114*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*   117*/          OPC_EmitMergeInputChains1_0,
/*   118*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*   121*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i32, 2/*#Ops*/, 1, 5,  // Results = #6
/*   129*/          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 (COPY_TO_REGCLASS:{ *:[v4i32] } ?:{ *:[v8i16] }:$S, VSRC:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$dst)
/*   137*/        /*Scope*/ 35, /*->173*/
/*   138*/          OPC_CheckChild1Integer, 4, 
/*   140*/          OPC_MoveParent,
/*   141*/          OPC_RecordChild2, // #2 = $dst
/*   142*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*   144*/          OPC_CheckPredicate, 1, // Predicate_truncstore
/*   146*/          OPC_CheckPredicate, 3, // Predicate_truncstorei16
/*   148*/          OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/*   150*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*   153*/          OPC_EmitMergeInputChains1_0,
/*   154*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*   157*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i32, 2/*#Ops*/, 1, 5,  // Results = #6
/*   165*/          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 (COPY_TO_REGCLASS:{ *:[v4i32] } ?:{ *:[v8i16] }:$S, VSRC:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$dst)
/*   173*/        0, /*End of Scope*/
/*   174*/      /*Scope*/ 109|128,5/*749*/, /*->925*/
/*   176*/        OPC_CheckChild1Integer, 1, 
/*   178*/        OPC_SwitchType /*4 cases */, 74|128,1/*202*/, MVT::i64,// ->384
/*   182*/          OPC_MoveParent,
/*   183*/          OPC_RecordChild2, // #2 = $src
/*   184*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*   186*/          OPC_CheckPredicate, 4, // Predicate_store
/*   188*/          OPC_Scope, 52, /*->242*/ // 4 children in Scope
/*   190*/            OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/*   192*/            OPC_Scope, 23, /*->217*/ // 2 children in Scope
/*   194*/              OPC_CheckComplexPat, /*CP*/1, /*#*/2, // SelectAddrImmX4:$src #3 #4
/*   197*/              OPC_EmitMergeInputChains1_0,
/*   198*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/*   201*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 1, 5,  // Results = #6
/*   209*/              OPC_MorphNodeTo0, TARGET_VAL(PPC::DFSTOREf64), 0|OPFL_Chain|OPFL_MemRefs,
                            3/*#Ops*/, 6, 3, 4, 
                        // Src: (st (extractelt:{ *:[i64] } v2i64:{ *:[v2i64] }:$A, 1:{ *:[iPTR] }), iaddrX4:{ *:[iPTR] }:$src)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 421
                        // Dst: (DFSTOREf64 (EXTRACT_SUBREG:{ *:[f64] } ?:{ *:[v2i64] }:$A, sub_64:{ *:[i32] }), iaddrX4:{ *:[iPTR] }:$src)
/*   217*/            /*Scope*/ 23, /*->241*/
/*   218*/              OPC_CheckComplexPat, /*CP*/2, /*#*/2, // SelectAddrIdxX4:$src #3 #4
/*   221*/              OPC_EmitMergeInputChains1_0,
/*   222*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/*   225*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 1, 5,  // Results = #6
/*   233*/              OPC_MorphNodeTo0, TARGET_VAL(PPC::XFSTOREf64), 0|OPFL_Chain|OPFL_MemRefs,
                            3/*#Ops*/, 6, 3, 4, 
                        // Src: (st (extractelt:{ *:[i64] } v2i64:{ *:[v2i64] }:$A, 1:{ *:[iPTR] }), xaddrX4:{ *:[iPTR] }:$src)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 421
                        // Dst: (XFSTOREf64 (EXTRACT_SUBREG:{ *:[f64] } ?:{ *:[v2i64] }:$A, sub_64:{ *:[i32] }), xaddrX4:{ *:[iPTR] }:$src)
/*   241*/            0, /*End of Scope*/
/*   242*/          /*Scope*/ 25, /*->268*/
/*   243*/            OPC_CheckPatternPredicate, 2, // (PPCSubTarget->hasP8Vector()) && (PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Vector())
/*   245*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$src #3 #4
/*   248*/            OPC_EmitMergeInputChains1_0,
/*   249*/            OPC_EmitInteger, MVT::i32, PPC::sub_64,
/*   252*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::f64, 2/*#Ops*/, 1, 5,  // Results = #6
/*   260*/            OPC_MorphNodeTo0, TARGET_VAL(PPC::XFSTOREf64), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 6, 3, 4, 
                      // Src: (st (extractelt:{ *:[i64] } v2i64:{ *:[v2i64] }:$A, 1:{ *:[iPTR] }), xoaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 421
                      // Dst: (XFSTOREf64 (EXTRACT_SUBREG:{ *:[f64] } ?:{ *:[v2i64] }:$A, sub_64:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$src)
/*   268*/          /*Scope*/ 76, /*->345*/
/*   269*/            OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/*   271*/            OPC_Scope, 35, /*->308*/ // 2 children in Scope
/*   273*/              OPC_CheckComplexPat, /*CP*/1, /*#*/2, // SelectAddrImmX4:$src #3 #4
/*   276*/              OPC_EmitMergeInputChains1_0,
/*   277*/              OPC_EmitInteger, MVT::i32, 2, 
/*   280*/              OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                            MVT::v4i32, 3/*#Ops*/, 1, 1, 5,  // Results = #6
/*   289*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/*   292*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 6, 7,  // Results = #8
/*   300*/              OPC_MorphNodeTo0, TARGET_VAL(PPC::DFSTOREf64), 0|OPFL_Chain|OPFL_MemRefs,
                            3/*#Ops*/, 8, 3, 4, 
                        // Src: (st (extractelt:{ *:[i64] } v2i64:{ *:[v2i64] }:$A, 1:{ *:[iPTR] }), iaddrX4:{ *:[iPTR] }:$src)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 421
                        // Dst: (DFSTOREf64 (EXTRACT_SUBREG:{ *:[f64] } (XXPERMDI:{ *:[v4i32] } ?:{ *:[v2i64] }:$A, ?:{ *:[v2i64] }:$A, 2:{ *:[i32] }), sub_64:{ *:[i32] }), iaddrX4:{ *:[iPTR] }:$src)
/*   308*/            /*Scope*/ 35, /*->344*/
/*   309*/              OPC_CheckComplexPat, /*CP*/2, /*#*/2, // SelectAddrIdxX4:$src #3 #4
/*   312*/              OPC_EmitMergeInputChains1_0,
/*   313*/              OPC_EmitInteger, MVT::i32, 2, 
/*   316*/              OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                            MVT::v4i32, 3/*#Ops*/, 1, 1, 5,  // Results = #6
/*   325*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/*   328*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 6, 7,  // Results = #8
/*   336*/              OPC_MorphNodeTo0, TARGET_VAL(PPC::XFSTOREf64), 0|OPFL_Chain|OPFL_MemRefs,
                            3/*#Ops*/, 8, 3, 4, 
                        // Src: (st (extractelt:{ *:[i64] } v2i64:{ *:[v2i64] }:$A, 1:{ *:[iPTR] }), xaddrX4:{ *:[iPTR] }:$src)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 421
                        // Dst: (XFSTOREf64 (EXTRACT_SUBREG:{ *:[f64] } (XXPERMDI:{ *:[v4i32] } ?:{ *:[v2i64] }:$A, ?:{ *:[v2i64] }:$A, 2:{ *:[i32] }), sub_64:{ *:[i32] }), xaddrX4:{ *:[iPTR] }:$src)
/*   344*/            0, /*End of Scope*/
/*   345*/          /*Scope*/ 37, /*->383*/
/*   346*/            OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP8Vector()) && (!PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Vector())
/*   348*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$src #3 #4
/*   351*/            OPC_EmitMergeInputChains1_0,
/*   352*/            OPC_EmitInteger, MVT::i32, 2, 
/*   355*/            OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                          MVT::v4i32, 3/*#Ops*/, 1, 1, 5,  // Results = #6
/*   364*/            OPC_EmitInteger, MVT::i32, PPC::sub_64,
/*   367*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::f64, 2/*#Ops*/, 6, 7,  // Results = #8
/*   375*/            OPC_MorphNodeTo0, TARGET_VAL(PPC::XFSTOREf64), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 8, 3, 4, 
                      // Src: (st (extractelt:{ *:[i64] } v2i64:{ *:[v2i64] }:$A, 1:{ *:[iPTR] }), xoaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 421
                      // Dst: (XFSTOREf64 (EXTRACT_SUBREG:{ *:[f64] } (XXPERMDI:{ *:[v4i32] } ?:{ *:[v2i64] }:$A, ?:{ *:[v2i64] }:$A, 2:{ *:[i32] }), sub_64:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$src)
/*   383*/          0, /*End of Scope*/
/*   384*/        /*SwitchType*/ 76|128,1/*204*/, MVT::f64,// ->591
/*   387*/          OPC_CheckChild0Type, MVT::v2f64,
/*   389*/          OPC_MoveParent,
/*   390*/          OPC_RecordChild2, // #2 = $src
/*   391*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*   393*/          OPC_CheckPredicate, 4, // Predicate_store
/*   395*/          OPC_Scope, 52, /*->449*/ // 4 children in Scope
/*   397*/            OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/*   399*/            OPC_Scope, 23, /*->424*/ // 2 children in Scope
/*   401*/              OPC_CheckComplexPat, /*CP*/1, /*#*/2, // SelectAddrImmX4:$src #3 #4
/*   404*/              OPC_EmitMergeInputChains1_0,
/*   405*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/*   408*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 1, 5,  // Results = #6
/*   416*/              OPC_MorphNodeTo0, TARGET_VAL(PPC::DFSTOREf64), 0|OPFL_Chain|OPFL_MemRefs,
                            3/*#Ops*/, 6, 3, 4, 
                        // Src: (st (extractelt:{ *:[f64] } v2f64:{ *:[v2f64] }:$A, 1:{ *:[iPTR] }), iaddrX4:{ *:[iPTR] }:$src)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 421
                        // Dst: (DFSTOREf64 (EXTRACT_SUBREG:{ *:[f64] } ?:{ *:[v2f64] }:$A, sub_64:{ *:[i32] }), iaddrX4:{ *:[iPTR] }:$src)
/*   424*/            /*Scope*/ 23, /*->448*/
/*   425*/              OPC_CheckComplexPat, /*CP*/2, /*#*/2, // SelectAddrIdxX4:$src #3 #4
/*   428*/              OPC_EmitMergeInputChains1_0,
/*   429*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/*   432*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 1, 5,  // Results = #6
/*   440*/              OPC_MorphNodeTo0, TARGET_VAL(PPC::XFSTOREf64), 0|OPFL_Chain|OPFL_MemRefs,
                            3/*#Ops*/, 6, 3, 4, 
                        // Src: (st (extractelt:{ *:[f64] } v2f64:{ *:[v2f64] }:$A, 1:{ *:[iPTR] }), xaddrX4:{ *:[iPTR] }:$src)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 421
                        // Dst: (XFSTOREf64 (EXTRACT_SUBREG:{ *:[f64] } ?:{ *:[v2f64] }:$A, sub_64:{ *:[i32] }), xaddrX4:{ *:[iPTR] }:$src)
/*   448*/            0, /*End of Scope*/
/*   449*/          /*Scope*/ 25, /*->475*/
/*   450*/            OPC_CheckPatternPredicate, 2, // (PPCSubTarget->hasP8Vector()) && (PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Vector())
/*   452*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$src #3 #4
/*   455*/            OPC_EmitMergeInputChains1_0,
/*   456*/            OPC_EmitInteger, MVT::i32, PPC::sub_64,
/*   459*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::f64, 2/*#Ops*/, 1, 5,  // Results = #6
/*   467*/            OPC_MorphNodeTo0, TARGET_VAL(PPC::XFSTOREf64), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 6, 3, 4, 
                      // Src: (st (extractelt:{ *:[f64] } v2f64:{ *:[v2f64] }:$A, 1:{ *:[iPTR] }), xoaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 421
                      // Dst: (XFSTOREf64 (EXTRACT_SUBREG:{ *:[f64] } ?:{ *:[v2f64] }:$A, sub_64:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$src)
/*   475*/          /*Scope*/ 76, /*->552*/
/*   476*/            OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/*   478*/            OPC_Scope, 35, /*->515*/ // 2 children in Scope
/*   480*/              OPC_CheckComplexPat, /*CP*/1, /*#*/2, // SelectAddrImmX4:$src #3 #4
/*   483*/              OPC_EmitMergeInputChains1_0,
/*   484*/              OPC_EmitInteger, MVT::i32, 2, 
/*   487*/              OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                            MVT::v4i32, 3/*#Ops*/, 1, 1, 5,  // Results = #6
/*   496*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/*   499*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 6, 7,  // Results = #8
/*   507*/              OPC_MorphNodeTo0, TARGET_VAL(PPC::DFSTOREf64), 0|OPFL_Chain|OPFL_MemRefs,
                            3/*#Ops*/, 8, 3, 4, 
                        // Src: (st (extractelt:{ *:[f64] } v2f64:{ *:[v2f64] }:$A, 1:{ *:[iPTR] }), iaddrX4:{ *:[iPTR] }:$src)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 421
                        // Dst: (DFSTOREf64 (EXTRACT_SUBREG:{ *:[f64] } (XXPERMDI:{ *:[v4i32] } ?:{ *:[v2f64] }:$A, ?:{ *:[v2f64] }:$A, 2:{ *:[i32] }), sub_64:{ *:[i32] }), iaddrX4:{ *:[iPTR] }:$src)
/*   515*/            /*Scope*/ 35, /*->551*/
/*   516*/              OPC_CheckComplexPat, /*CP*/2, /*#*/2, // SelectAddrIdxX4:$src #3 #4
/*   519*/              OPC_EmitMergeInputChains1_0,
/*   520*/              OPC_EmitInteger, MVT::i32, 2, 
/*   523*/              OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                            MVT::v4i32, 3/*#Ops*/, 1, 1, 5,  // Results = #6
/*   532*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/*   535*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 6, 7,  // Results = #8
/*   543*/              OPC_MorphNodeTo0, TARGET_VAL(PPC::XFSTOREf64), 0|OPFL_Chain|OPFL_MemRefs,
                            3/*#Ops*/, 8, 3, 4, 
                        // Src: (st (extractelt:{ *:[f64] } v2f64:{ *:[v2f64] }:$A, 1:{ *:[iPTR] }), xaddrX4:{ *:[iPTR] }:$src)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 421
                        // Dst: (XFSTOREf64 (EXTRACT_SUBREG:{ *:[f64] } (XXPERMDI:{ *:[v4i32] } ?:{ *:[v2f64] }:$A, ?:{ *:[v2f64] }:$A, 2:{ *:[i32] }), sub_64:{ *:[i32] }), xaddrX4:{ *:[iPTR] }:$src)
/*   551*/            0, /*End of Scope*/
/*   552*/          /*Scope*/ 37, /*->590*/
/*   553*/            OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP8Vector()) && (!PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Vector())
/*   555*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$src #3 #4
/*   558*/            OPC_EmitMergeInputChains1_0,
/*   559*/            OPC_EmitInteger, MVT::i32, 2, 
/*   562*/            OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                          MVT::v4i32, 3/*#Ops*/, 1, 1, 5,  // Results = #6
/*   571*/            OPC_EmitInteger, MVT::i32, PPC::sub_64,
/*   574*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::f64, 2/*#Ops*/, 6, 7,  // Results = #8
/*   582*/            OPC_MorphNodeTo0, TARGET_VAL(PPC::XFSTOREf64), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 8, 3, 4, 
                      // Src: (st (extractelt:{ *:[f64] } v2f64:{ *:[v2f64] }:$A, 1:{ *:[iPTR] }), xoaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 421
                      // Dst: (XFSTOREf64 (EXTRACT_SUBREG:{ *:[f64] } (XXPERMDI:{ *:[v4i32] } ?:{ *:[v2f64] }:$A, ?:{ *:[v2f64] }:$A, 2:{ *:[i32] }), sub_64:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$src)
/*   590*/          0, /*End of Scope*/
/*   591*/        /*SwitchType*/ 0|128,2/*256*/, MVT::i32,// ->850
/*   594*/          OPC_Scope, 31, /*->627*/ // 4 children in Scope
/*   596*/            OPC_MoveParent,
/*   597*/            OPC_RecordChild2, // #2 = $src
/*   598*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*   600*/            OPC_CheckPredicate, 4, // Predicate_store
/*   602*/            OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasP8Vector()) && (!PPCSubTarget->isLittleEndian())
/*   604*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$src #3 #4
/*   607*/            OPC_EmitMergeInputChains1_0,
/*   608*/            OPC_EmitInteger, MVT::i32, PPC::sub_64,
/*   611*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::f64, 2/*#Ops*/, 1, 5,  // Results = #6
/*   619*/            OPC_MorphNodeTo0, TARGET_VAL(PPC::STIWX), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 6, 3, 4, 
                      // Src: (st (extractelt:{ *:[i32] } v4i32:{ *:[v4i32] }:$A, 1:{ *:[iPTR] }), xoaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 421
                      // Dst: (STIWX (EXTRACT_SUBREG:{ *:[f64] } ?:{ *:[v4i32] }:$A, sub_64:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$src)
/*   627*/          /*Scope*/ 88, /*->716*/
/*   628*/            OPC_CheckChild0Type, MVT::v16i8,
/*   630*/            OPC_MoveParent,
/*   631*/            OPC_RecordChild2, // #2 = $dst
/*   632*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*   634*/            OPC_CheckPredicate, 1, // Predicate_truncstore
/*   636*/            OPC_CheckPredicate, 2, // Predicate_truncstorei8
/*   638*/            OPC_Scope, 37, /*->677*/ // 2 children in Scope
/*   640*/              OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/*   642*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*   645*/              OPC_EmitMergeInputChains1_0,
/*   646*/              OPC_EmitInteger, MVT::i32, 10, 
/*   649*/              OPC_EmitNode1, TARGET_VAL(PPC::VSLDOI), 0,
                            MVT::v16i8, 3/*#Ops*/, 1, 1, 5,  // Results = #6
/*   658*/              OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*   661*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v4i32, 2/*#Ops*/, 6, 7,  // Results = #8
/*   669*/              OPC_MorphNodeTo0, TARGET_VAL(PPC::STXSIBXv), 0|OPFL_Chain|OPFL_MemRefs,
                            3/*#Ops*/, 8, 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 (COPY_TO_REGCLASS:{ *:[v4i32] } (VSLDOI:{ *:[v16i8] } ?:{ *:[v16i8] }:$S, ?:{ *:[v16i8] }:$S, 10:{ *:[i32] }), VSRC:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$dst)
/*   677*/            /*Scope*/ 37, /*->715*/
/*   678*/              OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/*   680*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*   683*/              OPC_EmitMergeInputChains1_0,
/*   684*/              OPC_EmitInteger, MVT::i32, 7, 
/*   687*/              OPC_EmitNode1, TARGET_VAL(PPC::VSLDOI), 0,
                            MVT::v16i8, 3/*#Ops*/, 1, 1, 5,  // Results = #6
/*   696*/              OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*   699*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v4i32, 2/*#Ops*/, 6, 7,  // Results = #8
/*   707*/              OPC_MorphNodeTo0, TARGET_VAL(PPC::STXSIBXv), 0|OPFL_Chain|OPFL_MemRefs,
                            3/*#Ops*/, 8, 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 (COPY_TO_REGCLASS:{ *:[v4i32] } (VSLDOI:{ *:[v16i8] } ?:{ *:[v16i8] }:$S, ?:{ *:[v16i8] }:$S, 7:{ *:[i32] }), VSRC:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$dst)
/*   715*/            0, /*End of Scope*/
/*   716*/          /*Scope*/ 88, /*->805*/
/*   717*/            OPC_CheckChild0Type, MVT::v8i16,
/*   719*/            OPC_MoveParent,
/*   720*/            OPC_RecordChild2, // #2 = $dst
/*   721*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*   723*/            OPC_CheckPredicate, 1, // Predicate_truncstore
/*   725*/            OPC_CheckPredicate, 3, // Predicate_truncstorei16
/*   727*/            OPC_Scope, 37, /*->766*/ // 2 children in Scope
/*   729*/              OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/*   731*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*   734*/              OPC_EmitMergeInputChains1_0,
/*   735*/              OPC_EmitInteger, MVT::i32, 12, 
/*   738*/              OPC_EmitNode1, TARGET_VAL(PPC::VSLDOI), 0,
                            MVT::v16i8, 3/*#Ops*/, 1, 1, 5,  // Results = #6
/*   747*/              OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*   750*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v4i32, 2/*#Ops*/, 6, 7,  // Results = #8
/*   758*/              OPC_MorphNodeTo0, TARGET_VAL(PPC::STXSIHXv), 0|OPFL_Chain|OPFL_MemRefs,
                            3/*#Ops*/, 8, 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 (COPY_TO_REGCLASS:{ *:[v4i32] } (VSLDOI:{ *:[v16i8] } ?:{ *:[v8i16] }:$S, ?:{ *:[v8i16] }:$S, 12:{ *:[i32] }), VSRC:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$dst)
/*   766*/            /*Scope*/ 37, /*->804*/
/*   767*/              OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/*   769*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*   772*/              OPC_EmitMergeInputChains1_0,
/*   773*/              OPC_EmitInteger, MVT::i32, 6, 
/*   776*/              OPC_EmitNode1, TARGET_VAL(PPC::VSLDOI), 0,
                            MVT::v16i8, 3/*#Ops*/, 1, 1, 5,  // Results = #6
/*   785*/              OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*   788*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v4i32, 2/*#Ops*/, 6, 7,  // Results = #8
/*   796*/              OPC_MorphNodeTo0, TARGET_VAL(PPC::STXSIHXv), 0|OPFL_Chain|OPFL_MemRefs,
                            3/*#Ops*/, 8, 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 (COPY_TO_REGCLASS:{ *:[v4i32] } (VSLDOI:{ *:[v16i8] } ?:{ *:[v8i16] }:$S, ?:{ *:[v8i16] }:$S, 6:{ *:[i32] }), VSRC:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$dst)
/*   804*/            0, /*End of Scope*/
/*   805*/          /*Scope*/ 43, /*->849*/
/*   806*/            OPC_MoveParent,
/*   807*/            OPC_RecordChild2, // #2 = $src
/*   808*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*   810*/            OPC_CheckPredicate, 4, // Predicate_store
/*   812*/            OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasP8Vector()) && (PPCSubTarget->isLittleEndian())
/*   814*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$src #3 #4
/*   817*/            OPC_EmitMergeInputChains1_0,
/*   818*/            OPC_EmitInteger, MVT::i32, 1, 
/*   821*/            OPC_EmitNode1, TARGET_VAL(PPC::XXSLDWI), 0,
                          MVT::v4i32, 3/*#Ops*/, 1, 1, 5,  // Results = #6
/*   830*/            OPC_EmitInteger, MVT::i32, PPC::sub_64,
/*   833*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::f64, 2/*#Ops*/, 6, 7,  // Results = #8
/*   841*/            OPC_MorphNodeTo0, TARGET_VAL(PPC::STIWX), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 8, 3, 4, 
                      // Src: (st (extractelt:{ *:[i32] } v4i32:{ *:[v4i32] }:$A, 1:{ *:[iPTR] }), xoaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 421
                      // Dst: (STIWX (EXTRACT_SUBREG:{ *:[f64] } (XXSLDWI:{ *:[v4i32] } ?:{ *:[v4i32] }:$A, ?:{ *:[v4i32] }:$A, 1:{ *:[i32] }), sub_64:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$src)
/*   849*/          0, /*End of Scope*/
/*   850*/        /*SwitchType*/ 72, MVT::f32,// ->924
/*   852*/          OPC_MoveParent,
/*   853*/          OPC_RecordChild2, // #2 = $src
/*   854*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*   856*/          OPC_CheckPredicate, 4, // Predicate_store
/*   858*/          OPC_Scope, 25, /*->885*/ // 2 children in Scope
/*   860*/            OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasP8Vector()) && (!PPCSubTarget->isLittleEndian())
/*   862*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$src #3 #4
/*   865*/            OPC_EmitMergeInputChains1_0,
/*   866*/            OPC_EmitInteger, MVT::i32, PPC::sub_64,
/*   869*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::f64, 2/*#Ops*/, 1, 5,  // Results = #6
/*   877*/            OPC_MorphNodeTo0, TARGET_VAL(PPC::STIWX), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 6, 3, 4, 
                      // Src: (st (extractelt:{ *:[f32] } v4f32:{ *:[v4f32] }:$A, 1:{ *:[iPTR] }), xoaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 421
                      // Dst: (STIWX (EXTRACT_SUBREG:{ *:[f64] } ?:{ *:[v4f32] }:$A, sub_64:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$src)
/*   885*/          /*Scope*/ 37, /*->923*/
/*   886*/            OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasP8Vector()) && (PPCSubTarget->isLittleEndian())
/*   888*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$src #3 #4
/*   891*/            OPC_EmitMergeInputChains1_0,
/*   892*/            OPC_EmitInteger, MVT::i32, 1, 
/*   895*/            OPC_EmitNode1, TARGET_VAL(PPC::XXSLDWI), 0,
                          MVT::v4i32, 3/*#Ops*/, 1, 1, 5,  // Results = #6
/*   904*/            OPC_EmitInteger, MVT::i32, PPC::sub_64,
/*   907*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::f64, 2/*#Ops*/, 6, 7,  // Results = #8
/*   915*/            OPC_MorphNodeTo0, TARGET_VAL(PPC::STIWX), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 8, 3, 4, 
                      // Src: (st (extractelt:{ *:[f32] } v4f32:{ *:[v4f32] }:$A, 1:{ *:[iPTR] }), xoaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 421
                      // Dst: (STIWX (EXTRACT_SUBREG:{ *:[f64] } (XXSLDWI:{ *:[v4i32] } ?:{ *:[v4f32] }:$A, ?:{ *:[v4f32] }:$A, 1:{ *:[i32] }), sub_64:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$src)
/*   923*/          0, /*End of Scope*/
/*   924*/        0, // EndSwitchType
/*   925*/      /*Scope*/ 2|128,6/*770*/, /*->1697*/
/*   927*/        OPC_CheckChild1Integer, 0, 
/*   929*/        OPC_SwitchType /*4 cases */, 74|128,1/*202*/, MVT::i64,// ->1135
/*   933*/          OPC_MoveParent,
/*   934*/          OPC_RecordChild2, // #2 = $src
/*   935*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*   937*/          OPC_CheckPredicate, 4, // Predicate_store
/*   939*/          OPC_Scope, 52, /*->993*/ // 4 children in Scope
/*   941*/            OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/*   943*/            OPC_Scope, 23, /*->968*/ // 2 children in Scope
/*   945*/              OPC_CheckComplexPat, /*CP*/1, /*#*/2, // SelectAddrImmX4:$src #3 #4
/*   948*/              OPC_EmitMergeInputChains1_0,
/*   949*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/*   952*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 1, 5,  // Results = #6
/*   960*/              OPC_MorphNodeTo0, TARGET_VAL(PPC::DFSTOREf64), 0|OPFL_Chain|OPFL_MemRefs,
                            3/*#Ops*/, 6, 3, 4, 
                        // Src: (st (extractelt:{ *:[i64] } v2i64:{ *:[v2i64] }:$A, 0:{ *:[iPTR] }), iaddrX4:{ *:[iPTR] }:$src)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 421
                        // Dst: (DFSTOREf64 (EXTRACT_SUBREG:{ *:[f64] } ?:{ *:[v2i64] }:$A, sub_64:{ *:[i32] }), iaddrX4:{ *:[iPTR] }:$src)
/*   968*/            /*Scope*/ 23, /*->992*/
/*   969*/              OPC_CheckComplexPat, /*CP*/2, /*#*/2, // SelectAddrIdxX4:$src #3 #4
/*   972*/              OPC_EmitMergeInputChains1_0,
/*   973*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/*   976*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 1, 5,  // Results = #6
/*   984*/              OPC_MorphNodeTo0, TARGET_VAL(PPC::XFSTOREf64), 0|OPFL_Chain|OPFL_MemRefs,
                            3/*#Ops*/, 6, 3, 4, 
                        // Src: (st (extractelt:{ *:[i64] } v2i64:{ *:[v2i64] }:$A, 0:{ *:[iPTR] }), xaddrX4:{ *:[iPTR] }:$src)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 421
                        // Dst: (XFSTOREf64 (EXTRACT_SUBREG:{ *:[f64] } ?:{ *:[v2i64] }:$A, sub_64:{ *:[i32] }), xaddrX4:{ *:[iPTR] }:$src)
/*   992*/            0, /*End of Scope*/
/*   993*/          /*Scope*/ 25, /*->1019*/
/*   994*/            OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP8Vector()) && (!PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Vector())
/*   996*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$src #3 #4
/*   999*/            OPC_EmitMergeInputChains1_0,
/*  1000*/            OPC_EmitInteger, MVT::i32, PPC::sub_64,
/*  1003*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::f64, 2/*#Ops*/, 1, 5,  // Results = #6
/*  1011*/            OPC_MorphNodeTo0, TARGET_VAL(PPC::XFSTOREf64), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 6, 3, 4, 
                      // Src: (st (extractelt:{ *:[i64] } v2i64:{ *:[v2i64] }:$A, 0:{ *:[iPTR] }), xoaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 421
                      // Dst: (XFSTOREf64 (EXTRACT_SUBREG:{ *:[f64] } ?:{ *:[v2i64] }:$A, sub_64:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$src)
/*  1019*/          /*Scope*/ 76, /*->1096*/
/*  1020*/            OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/*  1022*/            OPC_Scope, 35, /*->1059*/ // 2 children in Scope
/*  1024*/              OPC_CheckComplexPat, /*CP*/1, /*#*/2, // SelectAddrImmX4:$src #3 #4
/*  1027*/              OPC_EmitMergeInputChains1_0,
/*  1028*/              OPC_EmitInteger, MVT::i32, 2, 
/*  1031*/              OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                            MVT::v4i32, 3/*#Ops*/, 1, 1, 5,  // Results = #6
/*  1040*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/*  1043*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 6, 7,  // Results = #8
/*  1051*/              OPC_MorphNodeTo0, TARGET_VAL(PPC::DFSTOREf64), 0|OPFL_Chain|OPFL_MemRefs,
                            3/*#Ops*/, 8, 3, 4, 
                        // Src: (st (extractelt:{ *:[i64] } v2i64:{ *:[v2i64] }:$A, 0:{ *:[iPTR] }), iaddrX4:{ *:[iPTR] }:$src)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 421
                        // Dst: (DFSTOREf64 (EXTRACT_SUBREG:{ *:[f64] } (XXPERMDI:{ *:[v4i32] } ?:{ *:[v2i64] }:$A, ?:{ *:[v2i64] }:$A, 2:{ *:[i32] }), sub_64:{ *:[i32] }), iaddrX4:{ *:[iPTR] }:$src)
/*  1059*/            /*Scope*/ 35, /*->1095*/
/*  1060*/              OPC_CheckComplexPat, /*CP*/2, /*#*/2, // SelectAddrIdxX4:$src #3 #4
/*  1063*/              OPC_EmitMergeInputChains1_0,
/*  1064*/              OPC_EmitInteger, MVT::i32, 2, 
/*  1067*/              OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                            MVT::v4i32, 3/*#Ops*/, 1, 1, 5,  // Results = #6
/*  1076*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/*  1079*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 6, 7,  // Results = #8
/*  1087*/              OPC_MorphNodeTo0, TARGET_VAL(PPC::XFSTOREf64), 0|OPFL_Chain|OPFL_MemRefs,
                            3/*#Ops*/, 8, 3, 4, 
                        // Src: (st (extractelt:{ *:[i64] } v2i64:{ *:[v2i64] }:$A, 0:{ *:[iPTR] }), xaddrX4:{ *:[iPTR] }:$src)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 421
                        // Dst: (XFSTOREf64 (EXTRACT_SUBREG:{ *:[f64] } (XXPERMDI:{ *:[v4i32] } ?:{ *:[v2i64] }:$A, ?:{ *:[v2i64] }:$A, 2:{ *:[i32] }), sub_64:{ *:[i32] }), xaddrX4:{ *:[iPTR] }:$src)
/*  1095*/            0, /*End of Scope*/
/*  1096*/          /*Scope*/ 37, /*->1134*/
/*  1097*/            OPC_CheckPatternPredicate, 2, // (PPCSubTarget->hasP8Vector()) && (PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Vector())
/*  1099*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$src #3 #4
/*  1102*/            OPC_EmitMergeInputChains1_0,
/*  1103*/            OPC_EmitInteger, MVT::i32, 2, 
/*  1106*/            OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                          MVT::v4i32, 3/*#Ops*/, 1, 1, 5,  // Results = #6
/*  1115*/            OPC_EmitInteger, MVT::i32, PPC::sub_64,
/*  1118*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::f64, 2/*#Ops*/, 6, 7,  // Results = #8
/*  1126*/            OPC_MorphNodeTo0, TARGET_VAL(PPC::XFSTOREf64), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 8, 3, 4, 
                      // Src: (st (extractelt:{ *:[i64] } v2i64:{ *:[v2i64] }:$A, 0:{ *:[iPTR] }), xoaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 421
                      // Dst: (XFSTOREf64 (EXTRACT_SUBREG:{ *:[f64] } (XXPERMDI:{ *:[v4i32] } ?:{ *:[v2i64] }:$A, ?:{ *:[v2i64] }:$A, 2:{ *:[i32] }), sub_64:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$src)
/*  1134*/          0, /*End of Scope*/
/*  1135*/        /*SwitchType*/ 76|128,1/*204*/, MVT::f64,// ->1342
/*  1138*/          OPC_CheckChild0Type, MVT::v2f64,
/*  1140*/          OPC_MoveParent,
/*  1141*/          OPC_RecordChild2, // #2 = $src
/*  1142*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  1144*/          OPC_CheckPredicate, 4, // Predicate_store
/*  1146*/          OPC_Scope, 52, /*->1200*/ // 4 children in Scope
/*  1148*/            OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/*  1150*/            OPC_Scope, 23, /*->1175*/ // 2 children in Scope
/*  1152*/              OPC_CheckComplexPat, /*CP*/1, /*#*/2, // SelectAddrImmX4:$src #3 #4
/*  1155*/              OPC_EmitMergeInputChains1_0,
/*  1156*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/*  1159*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 1, 5,  // Results = #6
/*  1167*/              OPC_MorphNodeTo0, TARGET_VAL(PPC::DFSTOREf64), 0|OPFL_Chain|OPFL_MemRefs,
                            3/*#Ops*/, 6, 3, 4, 
                        // Src: (st (extractelt:{ *:[f64] } v2f64:{ *:[v2f64] }:$A, 0:{ *:[iPTR] }), iaddrX4:{ *:[iPTR] }:$src)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 421
                        // Dst: (DFSTOREf64 (EXTRACT_SUBREG:{ *:[f64] } ?:{ *:[v2f64] }:$A, sub_64:{ *:[i32] }), iaddrX4:{ *:[iPTR] }:$src)
/*  1175*/            /*Scope*/ 23, /*->1199*/
/*  1176*/              OPC_CheckComplexPat, /*CP*/2, /*#*/2, // SelectAddrIdxX4:$src #3 #4
/*  1179*/              OPC_EmitMergeInputChains1_0,
/*  1180*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/*  1183*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 1, 5,  // Results = #6
/*  1191*/              OPC_MorphNodeTo0, TARGET_VAL(PPC::XFSTOREf64), 0|OPFL_Chain|OPFL_MemRefs,
                            3/*#Ops*/, 6, 3, 4, 
                        // Src: (st (extractelt:{ *:[f64] } v2f64:{ *:[v2f64] }:$A, 0:{ *:[iPTR] }), xaddrX4:{ *:[iPTR] }:$src)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 421
                        // Dst: (XFSTOREf64 (EXTRACT_SUBREG:{ *:[f64] } ?:{ *:[v2f64] }:$A, sub_64:{ *:[i32] }), xaddrX4:{ *:[iPTR] }:$src)
/*  1199*/            0, /*End of Scope*/
/*  1200*/          /*Scope*/ 25, /*->1226*/
/*  1201*/            OPC_CheckPatternPredicate, 3, // (PPCSubTarget->hasP8Vector()) && (!PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Vector())
/*  1203*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$src #3 #4
/*  1206*/            OPC_EmitMergeInputChains1_0,
/*  1207*/            OPC_EmitInteger, MVT::i32, PPC::sub_64,
/*  1210*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::f64, 2/*#Ops*/, 1, 5,  // Results = #6
/*  1218*/            OPC_MorphNodeTo0, TARGET_VAL(PPC::XFSTOREf64), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 6, 3, 4, 
                      // Src: (st (extractelt:{ *:[f64] } v2f64:{ *:[v2f64] }:$A, 0:{ *:[iPTR] }), xoaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 421
                      // Dst: (XFSTOREf64 (EXTRACT_SUBREG:{ *:[f64] } ?:{ *:[v2f64] }:$A, sub_64:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$src)
/*  1226*/          /*Scope*/ 76, /*->1303*/
/*  1227*/            OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/*  1229*/            OPC_Scope, 35, /*->1266*/ // 2 children in Scope
/*  1231*/              OPC_CheckComplexPat, /*CP*/1, /*#*/2, // SelectAddrImmX4:$src #3 #4
/*  1234*/              OPC_EmitMergeInputChains1_0,
/*  1235*/              OPC_EmitInteger, MVT::i32, 2, 
/*  1238*/              OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                            MVT::v4i32, 3/*#Ops*/, 1, 1, 5,  // Results = #6
/*  1247*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/*  1250*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 6, 7,  // Results = #8
/*  1258*/              OPC_MorphNodeTo0, TARGET_VAL(PPC::DFSTOREf64), 0|OPFL_Chain|OPFL_MemRefs,
                            3/*#Ops*/, 8, 3, 4, 
                        // Src: (st (extractelt:{ *:[f64] } v2f64:{ *:[v2f64] }:$A, 0:{ *:[iPTR] }), iaddrX4:{ *:[iPTR] }:$src)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 421
                        // Dst: (DFSTOREf64 (EXTRACT_SUBREG:{ *:[f64] } (XXPERMDI:{ *:[v4i32] } ?:{ *:[v2f64] }:$A, ?:{ *:[v2f64] }:$A, 2:{ *:[i32] }), sub_64:{ *:[i32] }), iaddrX4:{ *:[iPTR] }:$src)
/*  1266*/            /*Scope*/ 35, /*->1302*/
/*  1267*/              OPC_CheckComplexPat, /*CP*/2, /*#*/2, // SelectAddrIdxX4:$src #3 #4
/*  1270*/              OPC_EmitMergeInputChains1_0,
/*  1271*/              OPC_EmitInteger, MVT::i32, 2, 
/*  1274*/              OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                            MVT::v4i32, 3/*#Ops*/, 1, 1, 5,  // Results = #6
/*  1283*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/*  1286*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 6, 7,  // Results = #8
/*  1294*/              OPC_MorphNodeTo0, TARGET_VAL(PPC::XFSTOREf64), 0|OPFL_Chain|OPFL_MemRefs,
                            3/*#Ops*/, 8, 3, 4, 
                        // Src: (st (extractelt:{ *:[f64] } v2f64:{ *:[v2f64] }:$A, 0:{ *:[iPTR] }), xaddrX4:{ *:[iPTR] }:$src)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 421
                        // Dst: (XFSTOREf64 (EXTRACT_SUBREG:{ *:[f64] } (XXPERMDI:{ *:[v4i32] } ?:{ *:[v2f64] }:$A, ?:{ *:[v2f64] }:$A, 2:{ *:[i32] }), sub_64:{ *:[i32] }), xaddrX4:{ *:[iPTR] }:$src)
/*  1302*/            0, /*End of Scope*/
/*  1303*/          /*Scope*/ 37, /*->1341*/
/*  1304*/            OPC_CheckPatternPredicate, 2, // (PPCSubTarget->hasP8Vector()) && (PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Vector())
/*  1306*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$src #3 #4
/*  1309*/            OPC_EmitMergeInputChains1_0,
/*  1310*/            OPC_EmitInteger, MVT::i32, 2, 
/*  1313*/            OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                          MVT::v4i32, 3/*#Ops*/, 1, 1, 5,  // Results = #6
/*  1322*/            OPC_EmitInteger, MVT::i32, PPC::sub_64,
/*  1325*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::f64, 2/*#Ops*/, 6, 7,  // Results = #8
/*  1333*/            OPC_MorphNodeTo0, TARGET_VAL(PPC::XFSTOREf64), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 8, 3, 4, 
                      // Src: (st (extractelt:{ *:[f64] } v2f64:{ *:[v2f64] }:$A, 0:{ *:[iPTR] }), xoaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 421
                      // Dst: (XFSTOREf64 (EXTRACT_SUBREG:{ *:[f64] } (XXPERMDI:{ *:[v4i32] } ?:{ *:[v2f64] }:$A, ?:{ *:[v2f64] }:$A, 2:{ *:[i32] }), sub_64:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$src)
/*  1341*/          0, /*End of Scope*/
/*  1342*/        /*SwitchType*/ 9|128,2/*265*/, MVT::i32,// ->1610
/*  1345*/          OPC_Scope, 88, /*->1435*/ // 3 children in Scope
/*  1347*/            OPC_CheckChild0Type, MVT::v16i8,
/*  1349*/            OPC_MoveParent,
/*  1350*/            OPC_RecordChild2, // #2 = $dst
/*  1351*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  1353*/            OPC_CheckPredicate, 1, // Predicate_truncstore
/*  1355*/            OPC_CheckPredicate, 2, // Predicate_truncstorei8
/*  1357*/            OPC_Scope, 37, /*->1396*/ // 2 children in Scope
/*  1359*/              OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/*  1361*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  1364*/              OPC_EmitMergeInputChains1_0,
/*  1365*/              OPC_EmitInteger, MVT::i32, 9, 
/*  1368*/              OPC_EmitNode1, TARGET_VAL(PPC::VSLDOI), 0,
                            MVT::v16i8, 3/*#Ops*/, 1, 1, 5,  // Results = #6
/*  1377*/              OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*  1380*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v4i32, 2/*#Ops*/, 6, 7,  // Results = #8
/*  1388*/              OPC_MorphNodeTo0, TARGET_VAL(PPC::STXSIBXv), 0|OPFL_Chain|OPFL_MemRefs,
                            3/*#Ops*/, 8, 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 (COPY_TO_REGCLASS:{ *:[v4i32] } (VSLDOI:{ *:[v16i8] } ?:{ *:[v16i8] }:$S, ?:{ *:[v16i8] }:$S, 9:{ *:[i32] }), VSRC:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$dst)
/*  1396*/            /*Scope*/ 37, /*->1434*/
/*  1397*/              OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/*  1399*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  1402*/              OPC_EmitMergeInputChains1_0,
/*  1403*/              OPC_EmitInteger, MVT::i32, 8, 
/*  1406*/              OPC_EmitNode1, TARGET_VAL(PPC::VSLDOI), 0,
                            MVT::v16i8, 3/*#Ops*/, 1, 1, 5,  // Results = #6
/*  1415*/              OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*  1418*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v4i32, 2/*#Ops*/, 6, 7,  // Results = #8
/*  1426*/              OPC_MorphNodeTo0, TARGET_VAL(PPC::STXSIBXv), 0|OPFL_Chain|OPFL_MemRefs,
                            3/*#Ops*/, 8, 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 (COPY_TO_REGCLASS:{ *:[v4i32] } (VSLDOI:{ *:[v16i8] } ?:{ *:[v16i8] }:$S, ?:{ *:[v16i8] }:$S, 8:{ *:[i32] }), VSRC:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$dst)
/*  1434*/            0, /*End of Scope*/
/*  1435*/          /*Scope*/ 88, /*->1524*/
/*  1436*/            OPC_CheckChild0Type, MVT::v8i16,
/*  1438*/            OPC_MoveParent,
/*  1439*/            OPC_RecordChild2, // #2 = $dst
/*  1440*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  1442*/            OPC_CheckPredicate, 1, // Predicate_truncstore
/*  1444*/            OPC_CheckPredicate, 3, // Predicate_truncstorei16
/*  1446*/            OPC_Scope, 37, /*->1485*/ // 2 children in Scope
/*  1448*/              OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/*  1450*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  1453*/              OPC_EmitMergeInputChains1_0,
/*  1454*/              OPC_EmitInteger, MVT::i32, 10, 
/*  1457*/              OPC_EmitNode1, TARGET_VAL(PPC::VSLDOI), 0,
                            MVT::v16i8, 3/*#Ops*/, 1, 1, 5,  // Results = #6
/*  1466*/              OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*  1469*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v4i32, 2/*#Ops*/, 6, 7,  // Results = #8
/*  1477*/              OPC_MorphNodeTo0, TARGET_VAL(PPC::STXSIHXv), 0|OPFL_Chain|OPFL_MemRefs,
                            3/*#Ops*/, 8, 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 (COPY_TO_REGCLASS:{ *:[v4i32] } (VSLDOI:{ *:[v16i8] } ?:{ *:[v8i16] }:$S, ?:{ *:[v8i16] }:$S, 10:{ *:[i32] }), VSRC:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$dst)
/*  1485*/            /*Scope*/ 37, /*->1523*/
/*  1486*/              OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/*  1488*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  1491*/              OPC_EmitMergeInputChains1_0,
/*  1492*/              OPC_EmitInteger, MVT::i32, 8, 
/*  1495*/              OPC_EmitNode1, TARGET_VAL(PPC::VSLDOI), 0,
                            MVT::v16i8, 3/*#Ops*/, 1, 1, 5,  // Results = #6
/*  1504*/              OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*  1507*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v4i32, 2/*#Ops*/, 6, 7,  // Results = #8
/*  1515*/              OPC_MorphNodeTo0, TARGET_VAL(PPC::STXSIHXv), 0|OPFL_Chain|OPFL_MemRefs,
                            3/*#Ops*/, 8, 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 (COPY_TO_REGCLASS:{ *:[v4i32] } (VSLDOI:{ *:[v16i8] } ?:{ *:[v8i16] }:$S, ?:{ *:[v8i16] }:$S, 8:{ *:[i32] }), VSRC:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$dst)
/*  1523*/            0, /*End of Scope*/
/*  1524*/          /*Scope*/ 84, /*->1609*/
/*  1525*/            OPC_MoveParent,
/*  1526*/            OPC_RecordChild2, // #2 = $src
/*  1527*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  1529*/            OPC_CheckPredicate, 4, // Predicate_store
/*  1531*/            OPC_Scope, 37, /*->1570*/ // 2 children in Scope
/*  1533*/              OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasP8Vector()) && (!PPCSubTarget->isLittleEndian())
/*  1535*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$src #3 #4
/*  1538*/              OPC_EmitMergeInputChains1_0,
/*  1539*/              OPC_EmitInteger, MVT::i32, 3, 
/*  1542*/              OPC_EmitNode1, TARGET_VAL(PPC::XXSLDWI), 0,
                            MVT::v4i32, 3/*#Ops*/, 1, 1, 5,  // Results = #6
/*  1551*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/*  1554*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 6, 7,  // Results = #8
/*  1562*/              OPC_MorphNodeTo0, TARGET_VAL(PPC::STIWX), 0|OPFL_Chain|OPFL_MemRefs,
                            3/*#Ops*/, 8, 3, 4, 
                        // Src: (st (extractelt:{ *:[i32] } v4i32:{ *:[v4i32] }:$A, 0:{ *:[iPTR] }), xoaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 421
                        // Dst: (STIWX (EXTRACT_SUBREG:{ *:[f64] } (XXSLDWI:{ *:[v4i32] } ?:{ *:[v4i32] }:$A, ?:{ *:[v4i32] }:$A, 3:{ *:[i32] }), sub_64:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$src)
/*  1570*/            /*Scope*/ 37, /*->1608*/
/*  1571*/              OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasP8Vector()) && (PPCSubTarget->isLittleEndian())
/*  1573*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$src #3 #4
/*  1576*/              OPC_EmitMergeInputChains1_0,
/*  1577*/              OPC_EmitInteger, MVT::i32, 2, 
/*  1580*/              OPC_EmitNode1, TARGET_VAL(PPC::XXSLDWI), 0,
                            MVT::v4i32, 3/*#Ops*/, 1, 1, 5,  // Results = #6
/*  1589*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/*  1592*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 6, 7,  // Results = #8
/*  1600*/              OPC_MorphNodeTo0, TARGET_VAL(PPC::STIWX), 0|OPFL_Chain|OPFL_MemRefs,
                            3/*#Ops*/, 8, 3, 4, 
                        // Src: (st (extractelt:{ *:[i32] } v4i32:{ *:[v4i32] }:$A, 0:{ *:[iPTR] }), xoaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 421
                        // Dst: (STIWX (EXTRACT_SUBREG:{ *:[f64] } (XXSLDWI:{ *:[v4i32] } ?:{ *:[v4i32] }:$A, ?:{ *:[v4i32] }:$A, 2:{ *:[i32] }), sub_64:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$src)
/*  1608*/            0, /*End of Scope*/
/*  1609*/          0, /*End of Scope*/
/*  1610*/        /*SwitchType*/ 84, MVT::f32,// ->1696
/*  1612*/          OPC_MoveParent,
/*  1613*/          OPC_RecordChild2, // #2 = $src
/*  1614*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  1616*/          OPC_CheckPredicate, 4, // Predicate_store
/*  1618*/          OPC_Scope, 37, /*->1657*/ // 2 children in Scope
/*  1620*/            OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasP8Vector()) && (!PPCSubTarget->isLittleEndian())
/*  1622*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$src #3 #4
/*  1625*/            OPC_EmitMergeInputChains1_0,
/*  1626*/            OPC_EmitInteger, MVT::i32, 3, 
/*  1629*/            OPC_EmitNode1, TARGET_VAL(PPC::XXSLDWI), 0,
                          MVT::v4i32, 3/*#Ops*/, 1, 1, 5,  // Results = #6
/*  1638*/            OPC_EmitInteger, MVT::i32, PPC::sub_64,
/*  1641*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::f64, 2/*#Ops*/, 6, 7,  // Results = #8
/*  1649*/            OPC_MorphNodeTo0, TARGET_VAL(PPC::STIWX), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 8, 3, 4, 
                      // Src: (st (extractelt:{ *:[f32] } v4f32:{ *:[v4f32] }:$A, 0:{ *:[iPTR] }), xoaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 421
                      // Dst: (STIWX (EXTRACT_SUBREG:{ *:[f64] } (XXSLDWI:{ *:[v4i32] } ?:{ *:[v4f32] }:$A, ?:{ *:[v4f32] }:$A, 3:{ *:[i32] }), sub_64:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$src)
/*  1657*/          /*Scope*/ 37, /*->1695*/
/*  1658*/            OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasP8Vector()) && (PPCSubTarget->isLittleEndian())
/*  1660*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$src #3 #4
/*  1663*/            OPC_EmitMergeInputChains1_0,
/*  1664*/            OPC_EmitInteger, MVT::i32, 2, 
/*  1667*/            OPC_EmitNode1, TARGET_VAL(PPC::XXSLDWI), 0,
                          MVT::v4i32, 3/*#Ops*/, 1, 1, 5,  // Results = #6
/*  1676*/            OPC_EmitInteger, MVT::i32, PPC::sub_64,
/*  1679*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::f64, 2/*#Ops*/, 6, 7,  // Results = #8
/*  1687*/            OPC_MorphNodeTo0, TARGET_VAL(PPC::STIWX), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 8, 3, 4, 
                      // Src: (st (extractelt:{ *:[f32] } v4f32:{ *:[v4f32] }:$A, 0:{ *:[iPTR] }), xoaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 421
                      // Dst: (STIWX (EXTRACT_SUBREG:{ *:[f64] } (XXSLDWI:{ *:[v4i32] } ?:{ *:[v4f32] }:$A, ?:{ *:[v4f32] }:$A, 2:{ *:[i32] }), sub_64:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$src)
/*  1695*/          0, /*End of Scope*/
/*  1696*/        0, // EndSwitchType
/*  1697*/      /*Scope*/ 81|128,2/*337*/, /*->2036*/
/*  1699*/        OPC_CheckChild1Integer, 2, 
/*  1701*/        OPC_SwitchType /*2 cases */, 0|128,2/*256*/, MVT::i32,// ->1961
/*  1705*/          OPC_Scope, 31, /*->1738*/ // 4 children in Scope
/*  1707*/            OPC_MoveParent,
/*  1708*/            OPC_RecordChild2, // #2 = $src
/*  1709*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  1711*/            OPC_CheckPredicate, 4, // Predicate_store
/*  1713*/            OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasP8Vector()) && (PPCSubTarget->isLittleEndian())
/*  1715*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$src #3 #4
/*  1718*/            OPC_EmitMergeInputChains1_0,
/*  1719*/            OPC_EmitInteger, MVT::i32, PPC::sub_64,
/*  1722*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::f64, 2/*#Ops*/, 1, 5,  // Results = #6
/*  1730*/            OPC_MorphNodeTo0, TARGET_VAL(PPC::STIWX), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 6, 3, 4, 
                      // Src: (st (extractelt:{ *:[i32] } v4i32:{ *:[v4i32] }:$A, 2:{ *:[iPTR] }), xoaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 421
                      // Dst: (STIWX (EXTRACT_SUBREG:{ *:[f64] } ?:{ *:[v4i32] }:$A, sub_64:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$src)
/*  1738*/          /*Scope*/ 88, /*->1827*/
/*  1739*/            OPC_CheckChild0Type, MVT::v16i8,
/*  1741*/            OPC_MoveParent,
/*  1742*/            OPC_RecordChild2, // #2 = $dst
/*  1743*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  1745*/            OPC_CheckPredicate, 1, // Predicate_truncstore
/*  1747*/            OPC_CheckPredicate, 2, // Predicate_truncstorei8
/*  1749*/            OPC_Scope, 37, /*->1788*/ // 2 children in Scope
/*  1751*/              OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/*  1753*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  1756*/              OPC_EmitMergeInputChains1_0,
/*  1757*/              OPC_EmitInteger, MVT::i32, 11, 
/*  1760*/              OPC_EmitNode1, TARGET_VAL(PPC::VSLDOI), 0,
                            MVT::v16i8, 3/*#Ops*/, 1, 1, 5,  // Results = #6
/*  1769*/              OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*  1772*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v4i32, 2/*#Ops*/, 6, 7,  // Results = #8
/*  1780*/              OPC_MorphNodeTo0, TARGET_VAL(PPC::STXSIBXv), 0|OPFL_Chain|OPFL_MemRefs,
                            3/*#Ops*/, 8, 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 (COPY_TO_REGCLASS:{ *:[v4i32] } (VSLDOI:{ *:[v16i8] } ?:{ *:[v16i8] }:$S, ?:{ *:[v16i8] }:$S, 11:{ *:[i32] }), VSRC:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$dst)
/*  1788*/            /*Scope*/ 37, /*->1826*/
/*  1789*/              OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/*  1791*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  1794*/              OPC_EmitMergeInputChains1_0,
/*  1795*/              OPC_EmitInteger, MVT::i32, 6, 
/*  1798*/              OPC_EmitNode1, TARGET_VAL(PPC::VSLDOI), 0,
                            MVT::v16i8, 3/*#Ops*/, 1, 1, 5,  // Results = #6
/*  1807*/              OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*  1810*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v4i32, 2/*#Ops*/, 6, 7,  // Results = #8
/*  1818*/              OPC_MorphNodeTo0, TARGET_VAL(PPC::STXSIBXv), 0|OPFL_Chain|OPFL_MemRefs,
                            3/*#Ops*/, 8, 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 (COPY_TO_REGCLASS:{ *:[v4i32] } (VSLDOI:{ *:[v16i8] } ?:{ *:[v16i8] }:$S, ?:{ *:[v16i8] }:$S, 6:{ *:[i32] }), VSRC:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$dst)
/*  1826*/            0, /*End of Scope*/
/*  1827*/          /*Scope*/ 88, /*->1916*/
/*  1828*/            OPC_CheckChild0Type, MVT::v8i16,
/*  1830*/            OPC_MoveParent,
/*  1831*/            OPC_RecordChild2, // #2 = $dst
/*  1832*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  1834*/            OPC_CheckPredicate, 1, // Predicate_truncstore
/*  1836*/            OPC_CheckPredicate, 3, // Predicate_truncstorei16
/*  1838*/            OPC_Scope, 37, /*->1877*/ // 2 children in Scope
/*  1840*/              OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/*  1842*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  1845*/              OPC_EmitMergeInputChains1_0,
/*  1846*/              OPC_EmitInteger, MVT::i32, 14, 
/*  1849*/              OPC_EmitNode1, TARGET_VAL(PPC::VSLDOI), 0,
                            MVT::v16i8, 3/*#Ops*/, 1, 1, 5,  // Results = #6
/*  1858*/              OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*  1861*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v4i32, 2/*#Ops*/, 6, 7,  // Results = #8
/*  1869*/              OPC_MorphNodeTo0, TARGET_VAL(PPC::STXSIHXv), 0|OPFL_Chain|OPFL_MemRefs,
                            3/*#Ops*/, 8, 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 (COPY_TO_REGCLASS:{ *:[v4i32] } (VSLDOI:{ *:[v16i8] } ?:{ *:[v8i16] }:$S, ?:{ *:[v8i16] }:$S, 14:{ *:[i32] }), VSRC:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$dst)
/*  1877*/            /*Scope*/ 37, /*->1915*/
/*  1878*/              OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/*  1880*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  1883*/              OPC_EmitMergeInputChains1_0,
/*  1884*/              OPC_EmitInteger, MVT::i32, 4, 
/*  1887*/              OPC_EmitNode1, TARGET_VAL(PPC::VSLDOI), 0,
                            MVT::v16i8, 3/*#Ops*/, 1, 1, 5,  // Results = #6
/*  1896*/              OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*  1899*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v4i32, 2/*#Ops*/, 6, 7,  // Results = #8
/*  1907*/              OPC_MorphNodeTo0, TARGET_VAL(PPC::STXSIHXv), 0|OPFL_Chain|OPFL_MemRefs,
                            3/*#Ops*/, 8, 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 (COPY_TO_REGCLASS:{ *:[v4i32] } (VSLDOI:{ *:[v16i8] } ?:{ *:[v8i16] }:$S, ?:{ *:[v8i16] }:$S, 4:{ *:[i32] }), VSRC:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$dst)
/*  1915*/            0, /*End of Scope*/
/*  1916*/          /*Scope*/ 43, /*->1960*/
/*  1917*/            OPC_MoveParent,
/*  1918*/            OPC_RecordChild2, // #2 = $src
/*  1919*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  1921*/            OPC_CheckPredicate, 4, // Predicate_store
/*  1923*/            OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasP8Vector()) && (!PPCSubTarget->isLittleEndian())
/*  1925*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$src #3 #4
/*  1928*/            OPC_EmitMergeInputChains1_0,
/*  1929*/            OPC_EmitInteger, MVT::i32, 1, 
/*  1932*/            OPC_EmitNode1, TARGET_VAL(PPC::XXSLDWI), 0,
                          MVT::v4i32, 3/*#Ops*/, 1, 1, 5,  // Results = #6
/*  1941*/            OPC_EmitInteger, MVT::i32, PPC::sub_64,
/*  1944*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::f64, 2/*#Ops*/, 6, 7,  // Results = #8
/*  1952*/            OPC_MorphNodeTo0, TARGET_VAL(PPC::STIWX), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 8, 3, 4, 
                      // Src: (st (extractelt:{ *:[i32] } v4i32:{ *:[v4i32] }:$A, 2:{ *:[iPTR] }), xoaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 421
                      // Dst: (STIWX (EXTRACT_SUBREG:{ *:[f64] } (XXSLDWI:{ *:[v4i32] } ?:{ *:[v4i32] }:$A, ?:{ *:[v4i32] }:$A, 1:{ *:[i32] }), sub_64:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$src)
/*  1960*/          0, /*End of Scope*/
/*  1961*/        /*SwitchType*/ 72, MVT::f32,// ->2035
/*  1963*/          OPC_MoveParent,
/*  1964*/          OPC_RecordChild2, // #2 = $src
/*  1965*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  1967*/          OPC_CheckPredicate, 4, // Predicate_store
/*  1969*/          OPC_Scope, 25, /*->1996*/ // 2 children in Scope
/*  1971*/            OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasP8Vector()) && (PPCSubTarget->isLittleEndian())
/*  1973*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$src #3 #4
/*  1976*/            OPC_EmitMergeInputChains1_0,
/*  1977*/            OPC_EmitInteger, MVT::i32, PPC::sub_64,
/*  1980*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::f64, 2/*#Ops*/, 1, 5,  // Results = #6
/*  1988*/            OPC_MorphNodeTo0, TARGET_VAL(PPC::STIWX), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 6, 3, 4, 
                      // Src: (st (extractelt:{ *:[f32] } v4f32:{ *:[v4f32] }:$A, 2:{ *:[iPTR] }), xoaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 421
                      // Dst: (STIWX (EXTRACT_SUBREG:{ *:[f64] } ?:{ *:[v4f32] }:$A, sub_64:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$src)
/*  1996*/          /*Scope*/ 37, /*->2034*/
/*  1997*/            OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasP8Vector()) && (!PPCSubTarget->isLittleEndian())
/*  1999*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$src #3 #4
/*  2002*/            OPC_EmitMergeInputChains1_0,
/*  2003*/            OPC_EmitInteger, MVT::i32, 1, 
/*  2006*/            OPC_EmitNode1, TARGET_VAL(PPC::XXSLDWI), 0,
                          MVT::v4i32, 3/*#Ops*/, 1, 1, 5,  // Results = #6
/*  2015*/            OPC_EmitInteger, MVT::i32, PPC::sub_64,
/*  2018*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::f64, 2/*#Ops*/, 6, 7,  // Results = #8
/*  2026*/            OPC_MorphNodeTo0, TARGET_VAL(PPC::STIWX), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 8, 3, 4, 
                      // Src: (st (extractelt:{ *:[f32] } v4f32:{ *:[v4f32] }:$A, 2:{ *:[iPTR] }), xoaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 421
                      // Dst: (STIWX (EXTRACT_SUBREG:{ *:[f64] } (XXSLDWI:{ *:[v4i32] } ?:{ *:[v4f32] }:$A, ?:{ *:[v4f32] }:$A, 1:{ *:[i32] }), sub_64:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$src)
/*  2034*/          0, /*End of Scope*/
/*  2035*/        0, // EndSwitchType
/*  2036*/      /*Scope*/ 61|128,2/*317*/, /*->2355*/
/*  2038*/        OPC_CheckChild1Integer, 3, 
/*  2040*/        OPC_SwitchType /*2 cases */, 96|128,1/*224*/, MVT::i32,// ->2268
/*  2044*/          OPC_Scope, 88, /*->2134*/ // 3 children in Scope
/*  2046*/            OPC_CheckChild0Type, MVT::v16i8,
/*  2048*/            OPC_MoveParent,
/*  2049*/            OPC_RecordChild2, // #2 = $dst
/*  2050*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  2052*/            OPC_CheckPredicate, 1, // Predicate_truncstore
/*  2054*/            OPC_CheckPredicate, 2, // Predicate_truncstorei8
/*  2056*/            OPC_Scope, 37, /*->2095*/ // 2 children in Scope
/*  2058*/              OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/*  2060*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  2063*/              OPC_EmitMergeInputChains1_0,
/*  2064*/              OPC_EmitInteger, MVT::i32, 12, 
/*  2067*/              OPC_EmitNode1, TARGET_VAL(PPC::VSLDOI), 0,
                            MVT::v16i8, 3/*#Ops*/, 1, 1, 5,  // Results = #6
/*  2076*/              OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*  2079*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v4i32, 2/*#Ops*/, 6, 7,  // Results = #8
/*  2087*/              OPC_MorphNodeTo0, TARGET_VAL(PPC::STXSIBXv), 0|OPFL_Chain|OPFL_MemRefs,
                            3/*#Ops*/, 8, 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 (COPY_TO_REGCLASS:{ *:[v4i32] } (VSLDOI:{ *:[v16i8] } ?:{ *:[v16i8] }:$S, ?:{ *:[v16i8] }:$S, 12:{ *:[i32] }), VSRC:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$dst)
/*  2095*/            /*Scope*/ 37, /*->2133*/
/*  2096*/              OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/*  2098*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  2101*/              OPC_EmitMergeInputChains1_0,
/*  2102*/              OPC_EmitInteger, MVT::i32, 5, 
/*  2105*/              OPC_EmitNode1, TARGET_VAL(PPC::VSLDOI), 0,
                            MVT::v16i8, 3/*#Ops*/, 1, 1, 5,  // Results = #6
/*  2114*/              OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*  2117*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v4i32, 2/*#Ops*/, 6, 7,  // Results = #8
/*  2125*/              OPC_MorphNodeTo0, TARGET_VAL(PPC::STXSIBXv), 0|OPFL_Chain|OPFL_MemRefs,
                            3/*#Ops*/, 8, 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 (COPY_TO_REGCLASS:{ *:[v4i32] } (VSLDOI:{ *:[v16i8] } ?:{ *:[v16i8] }:$S, ?:{ *:[v16i8] }:$S, 5:{ *:[i32] }), VSRC:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$dst)
/*  2133*/            0, /*End of Scope*/
/*  2134*/          /*Scope*/ 47, /*->2182*/
/*  2135*/            OPC_CheckChild0Type, MVT::v8i16,
/*  2137*/            OPC_MoveParent,
/*  2138*/            OPC_RecordChild2, // #2 = $dst
/*  2139*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  2141*/            OPC_CheckPredicate, 1, // Predicate_truncstore
/*  2143*/            OPC_CheckPredicate, 3, // Predicate_truncstorei16
/*  2145*/            OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/*  2147*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  2150*/            OPC_EmitMergeInputChains1_0,
/*  2151*/            OPC_EmitInteger, MVT::i32, 2, 
/*  2154*/            OPC_EmitNode1, TARGET_VAL(PPC::VSLDOI), 0,
                          MVT::v16i8, 3/*#Ops*/, 1, 1, 5,  // Results = #6
/*  2163*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*  2166*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i32, 2/*#Ops*/, 6, 7,  // Results = #8
/*  2174*/            OPC_MorphNodeTo0, TARGET_VAL(PPC::STXSIHXv), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 8, 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 (COPY_TO_REGCLASS:{ *:[v4i32] } (VSLDOI:{ *:[v16i8] } ?:{ *:[v8i16] }:$S, ?:{ *:[v8i16] }:$S, 2:{ *:[i32] }), VSRC:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$dst)
/*  2182*/          /*Scope*/ 84, /*->2267*/
/*  2183*/            OPC_MoveParent,
/*  2184*/            OPC_RecordChild2, // #2 = $src
/*  2185*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  2187*/            OPC_CheckPredicate, 4, // Predicate_store
/*  2189*/            OPC_Scope, 37, /*->2228*/ // 2 children in Scope
/*  2191*/              OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasP8Vector()) && (!PPCSubTarget->isLittleEndian())
/*  2193*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$src #3 #4
/*  2196*/              OPC_EmitMergeInputChains1_0,
/*  2197*/              OPC_EmitInteger, MVT::i32, 2, 
/*  2200*/              OPC_EmitNode1, TARGET_VAL(PPC::XXSLDWI), 0,
                            MVT::v4i32, 3/*#Ops*/, 1, 1, 5,  // Results = #6
/*  2209*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/*  2212*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 6, 7,  // Results = #8
/*  2220*/              OPC_MorphNodeTo0, TARGET_VAL(PPC::STIWX), 0|OPFL_Chain|OPFL_MemRefs,
                            3/*#Ops*/, 8, 3, 4, 
                        // Src: (st (extractelt:{ *:[i32] } v4i32:{ *:[v4i32] }:$A, 3:{ *:[iPTR] }), xoaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 421
                        // Dst: (STIWX (EXTRACT_SUBREG:{ *:[f64] } (XXSLDWI:{ *:[v4i32] } ?:{ *:[v4i32] }:$A, ?:{ *:[v4i32] }:$A, 2:{ *:[i32] }), sub_64:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$src)
/*  2228*/            /*Scope*/ 37, /*->2266*/
/*  2229*/              OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasP8Vector()) && (PPCSubTarget->isLittleEndian())
/*  2231*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$src #3 #4
/*  2234*/              OPC_EmitMergeInputChains1_0,
/*  2235*/              OPC_EmitInteger, MVT::i32, 3, 
/*  2238*/              OPC_EmitNode1, TARGET_VAL(PPC::XXSLDWI), 0,
                            MVT::v4i32, 3/*#Ops*/, 1, 1, 5,  // Results = #6
/*  2247*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/*  2250*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 6, 7,  // Results = #8
/*  2258*/              OPC_MorphNodeTo0, TARGET_VAL(PPC::STIWX), 0|OPFL_Chain|OPFL_MemRefs,
                            3/*#Ops*/, 8, 3, 4, 
                        // Src: (st (extractelt:{ *:[i32] } v4i32:{ *:[v4i32] }:$A, 3:{ *:[iPTR] }), xoaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 421
                        // Dst: (STIWX (EXTRACT_SUBREG:{ *:[f64] } (XXSLDWI:{ *:[v4i32] } ?:{ *:[v4i32] }:$A, ?:{ *:[v4i32] }:$A, 3:{ *:[i32] }), sub_64:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$src)
/*  2266*/            0, /*End of Scope*/
/*  2267*/          0, /*End of Scope*/
/*  2268*/        /*SwitchType*/ 84, MVT::f32,// ->2354
/*  2270*/          OPC_MoveParent,
/*  2271*/          OPC_RecordChild2, // #2 = $src
/*  2272*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  2274*/          OPC_CheckPredicate, 4, // Predicate_store
/*  2276*/          OPC_Scope, 37, /*->2315*/ // 2 children in Scope
/*  2278*/            OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasP8Vector()) && (!PPCSubTarget->isLittleEndian())
/*  2280*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$src #3 #4
/*  2283*/            OPC_EmitMergeInputChains1_0,
/*  2284*/            OPC_EmitInteger, MVT::i32, 2, 
/*  2287*/            OPC_EmitNode1, TARGET_VAL(PPC::XXSLDWI), 0,
                          MVT::v4i32, 3/*#Ops*/, 1, 1, 5,  // Results = #6
/*  2296*/            OPC_EmitInteger, MVT::i32, PPC::sub_64,
/*  2299*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::f64, 2/*#Ops*/, 6, 7,  // Results = #8
/*  2307*/            OPC_MorphNodeTo0, TARGET_VAL(PPC::STIWX), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 8, 3, 4, 
                      // Src: (st (extractelt:{ *:[f32] } v4f32:{ *:[v4f32] }:$A, 3:{ *:[iPTR] }), xoaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 421
                      // Dst: (STIWX (EXTRACT_SUBREG:{ *:[f64] } (XXSLDWI:{ *:[v4i32] } ?:{ *:[v4f32] }:$A, ?:{ *:[v4f32] }:$A, 2:{ *:[i32] }), sub_64:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$src)
/*  2315*/          /*Scope*/ 37, /*->2353*/
/*  2316*/            OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasP8Vector()) && (PPCSubTarget->isLittleEndian())
/*  2318*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$src #3 #4
/*  2321*/            OPC_EmitMergeInputChains1_0,
/*  2322*/            OPC_EmitInteger, MVT::i32, 3, 
/*  2325*/            OPC_EmitNode1, TARGET_VAL(PPC::XXSLDWI), 0,
                          MVT::v4i32, 3/*#Ops*/, 1, 1, 5,  // Results = #6
/*  2334*/            OPC_EmitInteger, MVT::i32, PPC::sub_64,
/*  2337*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::f64, 2/*#Ops*/, 6, 7,  // Results = #8
/*  2345*/            OPC_MorphNodeTo0, TARGET_VAL(PPC::STIWX), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 8, 3, 4, 
                      // Src: (st (extractelt:{ *:[f32] } v4f32:{ *:[v4f32] }:$A, 3:{ *:[iPTR] }), xoaddr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 421
                      // Dst: (STIWX (EXTRACT_SUBREG:{ *:[f64] } (XXSLDWI:{ *:[v4i32] } ?:{ *:[v4f32] }:$A, ?:{ *:[v4f32] }:$A, 3:{ *:[i32] }), sub_64:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$src)
/*  2353*/          0, /*End of Scope*/
/*  2354*/        0, // EndSwitchType
/*  2355*/      /*Scope*/ 15|128,1/*143*/, /*->2500*/
/*  2357*/        OPC_CheckChild1Integer, 4, 
/*  2359*/        OPC_CheckType, MVT::i32,
/*  2361*/        OPC_Scope, 88, /*->2451*/ // 2 children in Scope
/*  2363*/          OPC_CheckChild0Type, MVT::v16i8,
/*  2365*/          OPC_MoveParent,
/*  2366*/          OPC_RecordChild2, // #2 = $dst
/*  2367*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  2369*/          OPC_CheckPredicate, 1, // Predicate_truncstore
/*  2371*/          OPC_CheckPredicate, 2, // Predicate_truncstorei8
/*  2373*/          OPC_Scope, 37, /*->2412*/ // 2 children in Scope
/*  2375*/            OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/*  2377*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  2380*/            OPC_EmitMergeInputChains1_0,
/*  2381*/            OPC_EmitInteger, MVT::i32, 13, 
/*  2384*/            OPC_EmitNode1, TARGET_VAL(PPC::VSLDOI), 0,
                          MVT::v16i8, 3/*#Ops*/, 1, 1, 5,  // Results = #6
/*  2393*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*  2396*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i32, 2/*#Ops*/, 6, 7,  // Results = #8
/*  2404*/            OPC_MorphNodeTo0, TARGET_VAL(PPC::STXSIBXv), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 8, 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 (COPY_TO_REGCLASS:{ *:[v4i32] } (VSLDOI:{ *:[v16i8] } ?:{ *:[v16i8] }:$S, ?:{ *:[v16i8] }:$S, 13:{ *:[i32] }), VSRC:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$dst)
/*  2412*/          /*Scope*/ 37, /*->2450*/
/*  2413*/            OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/*  2415*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  2418*/            OPC_EmitMergeInputChains1_0,
/*  2419*/            OPC_EmitInteger, MVT::i32, 4, 
/*  2422*/            OPC_EmitNode1, TARGET_VAL(PPC::VSLDOI), 0,
                          MVT::v16i8, 3/*#Ops*/, 1, 1, 5,  // Results = #6
/*  2431*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*  2434*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i32, 2/*#Ops*/, 6, 7,  // Results = #8
/*  2442*/            OPC_MorphNodeTo0, TARGET_VAL(PPC::STXSIBXv), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 8, 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 (COPY_TO_REGCLASS:{ *:[v4i32] } (VSLDOI:{ *:[v16i8] } ?:{ *:[v16i8] }:$S, ?:{ *:[v16i8] }:$S, 4:{ *:[i32] }), VSRC:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$dst)
/*  2450*/          0, /*End of Scope*/
/*  2451*/        /*Scope*/ 47, /*->2499*/
/*  2452*/          OPC_CheckChild0Type, MVT::v8i16,
/*  2454*/          OPC_MoveParent,
/*  2455*/          OPC_RecordChild2, // #2 = $dst
/*  2456*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  2458*/          OPC_CheckPredicate, 1, // Predicate_truncstore
/*  2460*/          OPC_CheckPredicate, 3, // Predicate_truncstorei16
/*  2462*/          OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/*  2464*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  2467*/          OPC_EmitMergeInputChains1_0,
/*  2468*/          OPC_EmitInteger, MVT::i32, 2, 
/*  2471*/          OPC_EmitNode1, TARGET_VAL(PPC::VSLDOI), 0,
                        MVT::v16i8, 3/*#Ops*/, 1, 1, 5,  // Results = #6
/*  2480*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*  2483*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i32, 2/*#Ops*/, 6, 7,  // Results = #8
/*  2491*/          OPC_MorphNodeTo0, TARGET_VAL(PPC::STXSIHXv), 0|OPFL_Chain|OPFL_MemRefs,
                        3/*#Ops*/, 8, 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 (COPY_TO_REGCLASS:{ *:[v4i32] } (VSLDOI:{ *:[v16i8] } ?:{ *:[v8i16] }:$S, ?:{ *:[v8i16] }:$S, 2:{ *:[i32] }), VSRC:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$dst)
/*  2499*/        0, /*End of Scope*/
/*  2500*/      /*Scope*/ 56|128,1/*184*/, /*->2686*/
/*  2502*/        OPC_CheckChild1Integer, 5, 
/*  2504*/        OPC_CheckType, MVT::i32,
/*  2506*/        OPC_Scope, 88, /*->2596*/ // 2 children in Scope
/*  2508*/          OPC_CheckChild0Type, MVT::v16i8,
/*  2510*/          OPC_MoveParent,
/*  2511*/          OPC_RecordChild2, // #2 = $dst
/*  2512*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  2514*/          OPC_CheckPredicate, 1, // Predicate_truncstore
/*  2516*/          OPC_CheckPredicate, 2, // Predicate_truncstorei8
/*  2518*/          OPC_Scope, 37, /*->2557*/ // 2 children in Scope
/*  2520*/            OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/*  2522*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  2525*/            OPC_EmitMergeInputChains1_0,
/*  2526*/            OPC_EmitInteger, MVT::i32, 14, 
/*  2529*/            OPC_EmitNode1, TARGET_VAL(PPC::VSLDOI), 0,
                          MVT::v16i8, 3/*#Ops*/, 1, 1, 5,  // Results = #6
/*  2538*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*  2541*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i32, 2/*#Ops*/, 6, 7,  // Results = #8
/*  2549*/            OPC_MorphNodeTo0, TARGET_VAL(PPC::STXSIBXv), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 8, 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 (COPY_TO_REGCLASS:{ *:[v4i32] } (VSLDOI:{ *:[v16i8] } ?:{ *:[v16i8] }:$S, ?:{ *:[v16i8] }:$S, 14:{ *:[i32] }), VSRC:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$dst)
/*  2557*/          /*Scope*/ 37, /*->2595*/
/*  2558*/            OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/*  2560*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  2563*/            OPC_EmitMergeInputChains1_0,
/*  2564*/            OPC_EmitInteger, MVT::i32, 3, 
/*  2567*/            OPC_EmitNode1, TARGET_VAL(PPC::VSLDOI), 0,
                          MVT::v16i8, 3/*#Ops*/, 1, 1, 5,  // Results = #6
/*  2576*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*  2579*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i32, 2/*#Ops*/, 6, 7,  // Results = #8
/*  2587*/            OPC_MorphNodeTo0, TARGET_VAL(PPC::STXSIBXv), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 8, 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 (COPY_TO_REGCLASS:{ *:[v4i32] } (VSLDOI:{ *:[v16i8] } ?:{ *:[v16i8] }:$S, ?:{ *:[v16i8] }:$S, 3:{ *:[i32] }), VSRC:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$dst)
/*  2595*/          0, /*End of Scope*/
/*  2596*/        /*Scope*/ 88, /*->2685*/
/*  2597*/          OPC_CheckChild0Type, MVT::v8i16,
/*  2599*/          OPC_MoveParent,
/*  2600*/          OPC_RecordChild2, // #2 = $dst
/*  2601*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  2603*/          OPC_CheckPredicate, 1, // Predicate_truncstore
/*  2605*/          OPC_CheckPredicate, 3, // Predicate_truncstorei16
/*  2607*/          OPC_Scope, 37, /*->2646*/ // 2 children in Scope
/*  2609*/            OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/*  2611*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  2614*/            OPC_EmitMergeInputChains1_0,
/*  2615*/            OPC_EmitInteger, MVT::i32, 4, 
/*  2618*/            OPC_EmitNode1, TARGET_VAL(PPC::VSLDOI), 0,
                          MVT::v16i8, 3/*#Ops*/, 1, 1, 5,  // Results = #6
/*  2627*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*  2630*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i32, 2/*#Ops*/, 6, 7,  // Results = #8
/*  2638*/            OPC_MorphNodeTo0, TARGET_VAL(PPC::STXSIHXv), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 8, 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 (COPY_TO_REGCLASS:{ *:[v4i32] } (VSLDOI:{ *:[v16i8] } ?:{ *:[v8i16] }:$S, ?:{ *:[v8i16] }:$S, 4:{ *:[i32] }), VSRC:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$dst)
/*  2646*/          /*Scope*/ 37, /*->2684*/
/*  2647*/            OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/*  2649*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  2652*/            OPC_EmitMergeInputChains1_0,
/*  2653*/            OPC_EmitInteger, MVT::i32, 14, 
/*  2656*/            OPC_EmitNode1, TARGET_VAL(PPC::VSLDOI), 0,
                          MVT::v16i8, 3/*#Ops*/, 1, 1, 5,  // Results = #6
/*  2665*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*  2668*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i32, 2/*#Ops*/, 6, 7,  // Results = #8
/*  2676*/            OPC_MorphNodeTo0, TARGET_VAL(PPC::STXSIHXv), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 8, 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 (COPY_TO_REGCLASS:{ *:[v4i32] } (VSLDOI:{ *:[v16i8] } ?:{ *:[v8i16] }:$S, ?:{ *:[v8i16] }:$S, 14:{ *:[i32] }), VSRC:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$dst)
/*  2684*/          0, /*End of Scope*/
/*  2685*/        0, /*End of Scope*/
/*  2686*/      /*Scope*/ 56|128,1/*184*/, /*->2872*/
/*  2688*/        OPC_CheckChild1Integer, 6, 
/*  2690*/        OPC_CheckType, MVT::i32,
/*  2692*/        OPC_Scope, 88, /*->2782*/ // 2 children in Scope
/*  2694*/          OPC_CheckChild0Type, MVT::v16i8,
/*  2696*/          OPC_MoveParent,
/*  2697*/          OPC_RecordChild2, // #2 = $dst
/*  2698*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  2700*/          OPC_CheckPredicate, 1, // Predicate_truncstore
/*  2702*/          OPC_CheckPredicate, 2, // Predicate_truncstorei8
/*  2704*/          OPC_Scope, 37, /*->2743*/ // 2 children in Scope
/*  2706*/            OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/*  2708*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  2711*/            OPC_EmitMergeInputChains1_0,
/*  2712*/            OPC_EmitInteger, MVT::i32, 15, 
/*  2715*/            OPC_EmitNode1, TARGET_VAL(PPC::VSLDOI), 0,
                          MVT::v16i8, 3/*#Ops*/, 1, 1, 5,  // Results = #6
/*  2724*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*  2727*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i32, 2/*#Ops*/, 6, 7,  // Results = #8
/*  2735*/            OPC_MorphNodeTo0, TARGET_VAL(PPC::STXSIBXv), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 8, 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 (COPY_TO_REGCLASS:{ *:[v4i32] } (VSLDOI:{ *:[v16i8] } ?:{ *:[v16i8] }:$S, ?:{ *:[v16i8] }:$S, 15:{ *:[i32] }), VSRC:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$dst)
/*  2743*/          /*Scope*/ 37, /*->2781*/
/*  2744*/            OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/*  2746*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  2749*/            OPC_EmitMergeInputChains1_0,
/*  2750*/            OPC_EmitInteger, MVT::i32, 2, 
/*  2753*/            OPC_EmitNode1, TARGET_VAL(PPC::VSLDOI), 0,
                          MVT::v16i8, 3/*#Ops*/, 1, 1, 5,  // Results = #6
/*  2762*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*  2765*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i32, 2/*#Ops*/, 6, 7,  // Results = #8
/*  2773*/            OPC_MorphNodeTo0, TARGET_VAL(PPC::STXSIBXv), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 8, 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 (COPY_TO_REGCLASS:{ *:[v4i32] } (VSLDOI:{ *:[v16i8] } ?:{ *:[v16i8] }:$S, ?:{ *:[v16i8] }:$S, 2:{ *:[i32] }), VSRC:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$dst)
/*  2781*/          0, /*End of Scope*/
/*  2782*/        /*Scope*/ 88, /*->2871*/
/*  2783*/          OPC_CheckChild0Type, MVT::v8i16,
/*  2785*/          OPC_MoveParent,
/*  2786*/          OPC_RecordChild2, // #2 = $dst
/*  2787*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  2789*/          OPC_CheckPredicate, 1, // Predicate_truncstore
/*  2791*/          OPC_CheckPredicate, 3, // Predicate_truncstorei16
/*  2793*/          OPC_Scope, 37, /*->2832*/ // 2 children in Scope
/*  2795*/            OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/*  2797*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  2800*/            OPC_EmitMergeInputChains1_0,
/*  2801*/            OPC_EmitInteger, MVT::i32, 6, 
/*  2804*/            OPC_EmitNode1, TARGET_VAL(PPC::VSLDOI), 0,
                          MVT::v16i8, 3/*#Ops*/, 1, 1, 5,  // Results = #6
/*  2813*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*  2816*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i32, 2/*#Ops*/, 6, 7,  // Results = #8
/*  2824*/            OPC_MorphNodeTo0, TARGET_VAL(PPC::STXSIHXv), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 8, 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 (COPY_TO_REGCLASS:{ *:[v4i32] } (VSLDOI:{ *:[v16i8] } ?:{ *:[v8i16] }:$S, ?:{ *:[v8i16] }:$S, 6:{ *:[i32] }), VSRC:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$dst)
/*  2832*/          /*Scope*/ 37, /*->2870*/
/*  2833*/            OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/*  2835*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  2838*/            OPC_EmitMergeInputChains1_0,
/*  2839*/            OPC_EmitInteger, MVT::i32, 12, 
/*  2842*/            OPC_EmitNode1, TARGET_VAL(PPC::VSLDOI), 0,
                          MVT::v16i8, 3/*#Ops*/, 1, 1, 5,  // Results = #6
/*  2851*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*  2854*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i32, 2/*#Ops*/, 6, 7,  // Results = #8
/*  2862*/            OPC_MorphNodeTo0, TARGET_VAL(PPC::STXSIHXv), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 8, 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 (COPY_TO_REGCLASS:{ *:[v4i32] } (VSLDOI:{ *:[v16i8] } ?:{ *:[v8i16] }:$S, ?:{ *:[v8i16] }:$S, 12:{ *:[i32] }), VSRC:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$dst)
/*  2870*/          0, /*End of Scope*/
/*  2871*/        0, /*End of Scope*/
/*  2872*/      /*Scope*/ 51, /*->2924*/
/*  2873*/        OPC_CheckChild1Integer, 8, 
/*  2875*/        OPC_CheckChild0Type, MVT::v16i8,
/*  2877*/        OPC_CheckType, MVT::i32,
/*  2879*/        OPC_MoveParent,
/*  2880*/        OPC_RecordChild2, // #2 = $dst
/*  2881*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  2883*/        OPC_CheckPredicate, 1, // Predicate_truncstore
/*  2885*/        OPC_CheckPredicate, 2, // Predicate_truncstorei8
/*  2887*/        OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/*  2889*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  2892*/        OPC_EmitMergeInputChains1_0,
/*  2893*/        OPC_EmitInteger, MVT::i32, 1, 
/*  2896*/        OPC_EmitNode1, TARGET_VAL(PPC::VSLDOI), 0,
                      MVT::v16i8, 3/*#Ops*/, 1, 1, 5,  // Results = #6
/*  2905*/        OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*  2908*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v4i32, 2/*#Ops*/, 6, 7,  // Results = #8
/*  2916*/        OPC_MorphNodeTo0, TARGET_VAL(PPC::STXSIBXv), 0|OPFL_Chain|OPFL_MemRefs,
                      3/*#Ops*/, 8, 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 (COPY_TO_REGCLASS:{ *:[v4i32] } (VSLDOI:{ *:[v16i8] } ?:{ *:[v16i8] }:$S, ?:{ *:[v16i8] }:$S, 1:{ *:[i32] }), VSRC:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$dst)
/*  2924*/      /*Scope*/ 92, /*->3017*/
/*  2925*/        OPC_CheckChild1Integer, 9, 
/*  2927*/        OPC_CheckChild0Type, MVT::v16i8,
/*  2929*/        OPC_CheckType, MVT::i32,
/*  2931*/        OPC_MoveParent,
/*  2932*/        OPC_RecordChild2, // #2 = $dst
/*  2933*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  2935*/        OPC_CheckPredicate, 1, // Predicate_truncstore
/*  2937*/        OPC_CheckPredicate, 2, // Predicate_truncstorei8
/*  2939*/        OPC_Scope, 37, /*->2978*/ // 2 children in Scope
/*  2941*/          OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/*  2943*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  2946*/          OPC_EmitMergeInputChains1_0,
/*  2947*/          OPC_EmitInteger, MVT::i32, 2, 
/*  2950*/          OPC_EmitNode1, TARGET_VAL(PPC::VSLDOI), 0,
                        MVT::v16i8, 3/*#Ops*/, 1, 1, 5,  // Results = #6
/*  2959*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*  2962*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i32, 2/*#Ops*/, 6, 7,  // Results = #8
/*  2970*/          OPC_MorphNodeTo0, TARGET_VAL(PPC::STXSIBXv), 0|OPFL_Chain|OPFL_MemRefs,
                        3/*#Ops*/, 8, 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 (COPY_TO_REGCLASS:{ *:[v4i32] } (VSLDOI:{ *:[v16i8] } ?:{ *:[v16i8] }:$S, ?:{ *:[v16i8] }:$S, 2:{ *:[i32] }), VSRC:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$dst)
/*  2978*/        /*Scope*/ 37, /*->3016*/
/*  2979*/          OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/*  2981*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  2984*/          OPC_EmitMergeInputChains1_0,
/*  2985*/          OPC_EmitInteger, MVT::i32, 15, 
/*  2988*/          OPC_EmitNode1, TARGET_VAL(PPC::VSLDOI), 0,
                        MVT::v16i8, 3/*#Ops*/, 1, 1, 5,  // Results = #6
/*  2997*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*  3000*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i32, 2/*#Ops*/, 6, 7,  // Results = #8
/*  3008*/          OPC_MorphNodeTo0, TARGET_VAL(PPC::STXSIBXv), 0|OPFL_Chain|OPFL_MemRefs,
                        3/*#Ops*/, 8, 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 (COPY_TO_REGCLASS:{ *:[v4i32] } (VSLDOI:{ *:[v16i8] } ?:{ *:[v16i8] }:$S, ?:{ *:[v16i8] }:$S, 15:{ *:[i32] }), VSRC:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$dst)
/*  3016*/        0, /*End of Scope*/
/*  3017*/      /*Scope*/ 92, /*->3110*/
/*  3018*/        OPC_CheckChild1Integer, 10, 
/*  3020*/        OPC_CheckChild0Type, MVT::v16i8,
/*  3022*/        OPC_CheckType, MVT::i32,
/*  3024*/        OPC_MoveParent,
/*  3025*/        OPC_RecordChild2, // #2 = $dst
/*  3026*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  3028*/        OPC_CheckPredicate, 1, // Predicate_truncstore
/*  3030*/        OPC_CheckPredicate, 2, // Predicate_truncstorei8
/*  3032*/        OPC_Scope, 37, /*->3071*/ // 2 children in Scope
/*  3034*/          OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/*  3036*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  3039*/          OPC_EmitMergeInputChains1_0,
/*  3040*/          OPC_EmitInteger, MVT::i32, 3, 
/*  3043*/          OPC_EmitNode1, TARGET_VAL(PPC::VSLDOI), 0,
                        MVT::v16i8, 3/*#Ops*/, 1, 1, 5,  // Results = #6
/*  3052*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*  3055*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i32, 2/*#Ops*/, 6, 7,  // Results = #8
/*  3063*/          OPC_MorphNodeTo0, TARGET_VAL(PPC::STXSIBXv), 0|OPFL_Chain|OPFL_MemRefs,
                        3/*#Ops*/, 8, 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 (COPY_TO_REGCLASS:{ *:[v4i32] } (VSLDOI:{ *:[v16i8] } ?:{ *:[v16i8] }:$S, ?:{ *:[v16i8] }:$S, 3:{ *:[i32] }), VSRC:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$dst)
/*  3071*/        /*Scope*/ 37, /*->3109*/
/*  3072*/          OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/*  3074*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  3077*/          OPC_EmitMergeInputChains1_0,
/*  3078*/          OPC_EmitInteger, MVT::i32, 14, 
/*  3081*/          OPC_EmitNode1, TARGET_VAL(PPC::VSLDOI), 0,
                        MVT::v16i8, 3/*#Ops*/, 1, 1, 5,  // Results = #6
/*  3090*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*  3093*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i32, 2/*#Ops*/, 6, 7,  // Results = #8
/*  3101*/          OPC_MorphNodeTo0, TARGET_VAL(PPC::STXSIBXv), 0|OPFL_Chain|OPFL_MemRefs,
                        3/*#Ops*/, 8, 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 (COPY_TO_REGCLASS:{ *:[v4i32] } (VSLDOI:{ *:[v16i8] } ?:{ *:[v16i8] }:$S, ?:{ *:[v16i8] }:$S, 14:{ *:[i32] }), VSRC:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$dst)
/*  3109*/        0, /*End of Scope*/
/*  3110*/      /*Scope*/ 92, /*->3203*/
/*  3111*/        OPC_CheckChild1Integer, 11, 
/*  3113*/        OPC_CheckChild0Type, MVT::v16i8,
/*  3115*/        OPC_CheckType, MVT::i32,
/*  3117*/        OPC_MoveParent,
/*  3118*/        OPC_RecordChild2, // #2 = $dst
/*  3119*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  3121*/        OPC_CheckPredicate, 1, // Predicate_truncstore
/*  3123*/        OPC_CheckPredicate, 2, // Predicate_truncstorei8
/*  3125*/        OPC_Scope, 37, /*->3164*/ // 2 children in Scope
/*  3127*/          OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/*  3129*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  3132*/          OPC_EmitMergeInputChains1_0,
/*  3133*/          OPC_EmitInteger, MVT::i32, 4, 
/*  3136*/          OPC_EmitNode1, TARGET_VAL(PPC::VSLDOI), 0,
                        MVT::v16i8, 3/*#Ops*/, 1, 1, 5,  // Results = #6
/*  3145*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*  3148*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i32, 2/*#Ops*/, 6, 7,  // Results = #8
/*  3156*/          OPC_MorphNodeTo0, TARGET_VAL(PPC::STXSIBXv), 0|OPFL_Chain|OPFL_MemRefs,
                        3/*#Ops*/, 8, 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 (COPY_TO_REGCLASS:{ *:[v4i32] } (VSLDOI:{ *:[v16i8] } ?:{ *:[v16i8] }:$S, ?:{ *:[v16i8] }:$S, 4:{ *:[i32] }), VSRC:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$dst)
/*  3164*/        /*Scope*/ 37, /*->3202*/
/*  3165*/          OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/*  3167*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  3170*/          OPC_EmitMergeInputChains1_0,
/*  3171*/          OPC_EmitInteger, MVT::i32, 13, 
/*  3174*/          OPC_EmitNode1, TARGET_VAL(PPC::VSLDOI), 0,
                        MVT::v16i8, 3/*#Ops*/, 1, 1, 5,  // Results = #6
/*  3183*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*  3186*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i32, 2/*#Ops*/, 6, 7,  // Results = #8
/*  3194*/          OPC_MorphNodeTo0, TARGET_VAL(PPC::STXSIBXv), 0|OPFL_Chain|OPFL_MemRefs,
                        3/*#Ops*/, 8, 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 (COPY_TO_REGCLASS:{ *:[v4i32] } (VSLDOI:{ *:[v16i8] } ?:{ *:[v16i8] }:$S, ?:{ *:[v16i8] }:$S, 13:{ *:[i32] }), VSRC:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$dst)
/*  3202*/        0, /*End of Scope*/
/*  3203*/      /*Scope*/ 92, /*->3296*/
/*  3204*/        OPC_CheckChild1Integer, 12, 
/*  3206*/        OPC_CheckChild0Type, MVT::v16i8,
/*  3208*/        OPC_CheckType, MVT::i32,
/*  3210*/        OPC_MoveParent,
/*  3211*/        OPC_RecordChild2, // #2 = $dst
/*  3212*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  3214*/        OPC_CheckPredicate, 1, // Predicate_truncstore
/*  3216*/        OPC_CheckPredicate, 2, // Predicate_truncstorei8
/*  3218*/        OPC_Scope, 37, /*->3257*/ // 2 children in Scope
/*  3220*/          OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/*  3222*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  3225*/          OPC_EmitMergeInputChains1_0,
/*  3226*/          OPC_EmitInteger, MVT::i32, 5, 
/*  3229*/          OPC_EmitNode1, TARGET_VAL(PPC::VSLDOI), 0,
                        MVT::v16i8, 3/*#Ops*/, 1, 1, 5,  // Results = #6
/*  3238*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*  3241*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i32, 2/*#Ops*/, 6, 7,  // Results = #8
/*  3249*/          OPC_MorphNodeTo0, TARGET_VAL(PPC::STXSIBXv), 0|OPFL_Chain|OPFL_MemRefs,
                        3/*#Ops*/, 8, 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 (COPY_TO_REGCLASS:{ *:[v4i32] } (VSLDOI:{ *:[v16i8] } ?:{ *:[v16i8] }:$S, ?:{ *:[v16i8] }:$S, 5:{ *:[i32] }), VSRC:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$dst)
/*  3257*/        /*Scope*/ 37, /*->3295*/
/*  3258*/          OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/*  3260*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  3263*/          OPC_EmitMergeInputChains1_0,
/*  3264*/          OPC_EmitInteger, MVT::i32, 12, 
/*  3267*/          OPC_EmitNode1, TARGET_VAL(PPC::VSLDOI), 0,
                        MVT::v16i8, 3/*#Ops*/, 1, 1, 5,  // Results = #6
/*  3276*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*  3279*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i32, 2/*#Ops*/, 6, 7,  // Results = #8
/*  3287*/          OPC_MorphNodeTo0, TARGET_VAL(PPC::STXSIBXv), 0|OPFL_Chain|OPFL_MemRefs,
                        3/*#Ops*/, 8, 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 (COPY_TO_REGCLASS:{ *:[v4i32] } (VSLDOI:{ *:[v16i8] } ?:{ *:[v16i8] }:$S, ?:{ *:[v16i8] }:$S, 12:{ *:[i32] }), VSRC:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$dst)
/*  3295*/        0, /*End of Scope*/
/*  3296*/      /*Scope*/ 92, /*->3389*/
/*  3297*/        OPC_CheckChild1Integer, 13, 
/*  3299*/        OPC_CheckChild0Type, MVT::v16i8,
/*  3301*/        OPC_CheckType, MVT::i32,
/*  3303*/        OPC_MoveParent,
/*  3304*/        OPC_RecordChild2, // #2 = $dst
/*  3305*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  3307*/        OPC_CheckPredicate, 1, // Predicate_truncstore
/*  3309*/        OPC_CheckPredicate, 2, // Predicate_truncstorei8
/*  3311*/        OPC_Scope, 37, /*->3350*/ // 2 children in Scope
/*  3313*/          OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/*  3315*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  3318*/          OPC_EmitMergeInputChains1_0,
/*  3319*/          OPC_EmitInteger, MVT::i32, 6, 
/*  3322*/          OPC_EmitNode1, TARGET_VAL(PPC::VSLDOI), 0,
                        MVT::v16i8, 3/*#Ops*/, 1, 1, 5,  // Results = #6
/*  3331*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*  3334*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i32, 2/*#Ops*/, 6, 7,  // Results = #8
/*  3342*/          OPC_MorphNodeTo0, TARGET_VAL(PPC::STXSIBXv), 0|OPFL_Chain|OPFL_MemRefs,
                        3/*#Ops*/, 8, 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 (COPY_TO_REGCLASS:{ *:[v4i32] } (VSLDOI:{ *:[v16i8] } ?:{ *:[v16i8] }:$S, ?:{ *:[v16i8] }:$S, 6:{ *:[i32] }), VSRC:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$dst)
/*  3350*/        /*Scope*/ 37, /*->3388*/
/*  3351*/          OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/*  3353*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  3356*/          OPC_EmitMergeInputChains1_0,
/*  3357*/          OPC_EmitInteger, MVT::i32, 11, 
/*  3360*/          OPC_EmitNode1, TARGET_VAL(PPC::VSLDOI), 0,
                        MVT::v16i8, 3/*#Ops*/, 1, 1, 5,  // Results = #6
/*  3369*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*  3372*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i32, 2/*#Ops*/, 6, 7,  // Results = #8
/*  3380*/          OPC_MorphNodeTo0, TARGET_VAL(PPC::STXSIBXv), 0|OPFL_Chain|OPFL_MemRefs,
                        3/*#Ops*/, 8, 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 (COPY_TO_REGCLASS:{ *:[v4i32] } (VSLDOI:{ *:[v16i8] } ?:{ *:[v16i8] }:$S, ?:{ *:[v16i8] }:$S, 11:{ *:[i32] }), VSRC:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$dst)
/*  3388*/        0, /*End of Scope*/
/*  3389*/      /*Scope*/ 92, /*->3482*/
/*  3390*/        OPC_CheckChild1Integer, 14, 
/*  3392*/        OPC_CheckChild0Type, MVT::v16i8,
/*  3394*/        OPC_CheckType, MVT::i32,
/*  3396*/        OPC_MoveParent,
/*  3397*/        OPC_RecordChild2, // #2 = $dst
/*  3398*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  3400*/        OPC_CheckPredicate, 1, // Predicate_truncstore
/*  3402*/        OPC_CheckPredicate, 2, // Predicate_truncstorei8
/*  3404*/        OPC_Scope, 37, /*->3443*/ // 2 children in Scope
/*  3406*/          OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/*  3408*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  3411*/          OPC_EmitMergeInputChains1_0,
/*  3412*/          OPC_EmitInteger, MVT::i32, 7, 
/*  3415*/          OPC_EmitNode1, TARGET_VAL(PPC::VSLDOI), 0,
                        MVT::v16i8, 3/*#Ops*/, 1, 1, 5,  // Results = #6
/*  3424*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*  3427*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i32, 2/*#Ops*/, 6, 7,  // Results = #8
/*  3435*/          OPC_MorphNodeTo0, TARGET_VAL(PPC::STXSIBXv), 0|OPFL_Chain|OPFL_MemRefs,
                        3/*#Ops*/, 8, 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 (COPY_TO_REGCLASS:{ *:[v4i32] } (VSLDOI:{ *:[v16i8] } ?:{ *:[v16i8] }:$S, ?:{ *:[v16i8] }:$S, 7:{ *:[i32] }), VSRC:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$dst)
/*  3443*/        /*Scope*/ 37, /*->3481*/
/*  3444*/          OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/*  3446*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  3449*/          OPC_EmitMergeInputChains1_0,
/*  3450*/          OPC_EmitInteger, MVT::i32, 10, 
/*  3453*/          OPC_EmitNode1, TARGET_VAL(PPC::VSLDOI), 0,
                        MVT::v16i8, 3/*#Ops*/, 1, 1, 5,  // Results = #6
/*  3462*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*  3465*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i32, 2/*#Ops*/, 6, 7,  // Results = #8
/*  3473*/          OPC_MorphNodeTo0, TARGET_VAL(PPC::STXSIBXv), 0|OPFL_Chain|OPFL_MemRefs,
                        3/*#Ops*/, 8, 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 (COPY_TO_REGCLASS:{ *:[v4i32] } (VSLDOI:{ *:[v16i8] } ?:{ *:[v16i8] }:$S, ?:{ *:[v16i8] }:$S, 10:{ *:[i32] }), VSRC:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$dst)
/*  3481*/        0, /*End of Scope*/
/*  3482*/      /*Scope*/ 92, /*->3575*/
/*  3483*/        OPC_CheckChild1Integer, 15, 
/*  3485*/        OPC_CheckChild0Type, MVT::v16i8,
/*  3487*/        OPC_CheckType, MVT::i32,
/*  3489*/        OPC_MoveParent,
/*  3490*/        OPC_RecordChild2, // #2 = $dst
/*  3491*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  3493*/        OPC_CheckPredicate, 1, // Predicate_truncstore
/*  3495*/        OPC_CheckPredicate, 2, // Predicate_truncstorei8
/*  3497*/        OPC_Scope, 37, /*->3536*/ // 2 children in Scope
/*  3499*/          OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/*  3501*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  3504*/          OPC_EmitMergeInputChains1_0,
/*  3505*/          OPC_EmitInteger, MVT::i32, 8, 
/*  3508*/          OPC_EmitNode1, TARGET_VAL(PPC::VSLDOI), 0,
                        MVT::v16i8, 3/*#Ops*/, 1, 1, 5,  // Results = #6
/*  3517*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*  3520*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i32, 2/*#Ops*/, 6, 7,  // Results = #8
/*  3528*/          OPC_MorphNodeTo0, TARGET_VAL(PPC::STXSIBXv), 0|OPFL_Chain|OPFL_MemRefs,
                        3/*#Ops*/, 8, 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 (COPY_TO_REGCLASS:{ *:[v4i32] } (VSLDOI:{ *:[v16i8] } ?:{ *:[v16i8] }:$S, ?:{ *:[v16i8] }:$S, 8:{ *:[i32] }), VSRC:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$dst)
/*  3536*/        /*Scope*/ 37, /*->3574*/
/*  3537*/          OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/*  3539*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  3542*/          OPC_EmitMergeInputChains1_0,
/*  3543*/          OPC_EmitInteger, MVT::i32, 9, 
/*  3546*/          OPC_EmitNode1, TARGET_VAL(PPC::VSLDOI), 0,
                        MVT::v16i8, 3/*#Ops*/, 1, 1, 5,  // Results = #6
/*  3555*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*  3558*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i32, 2/*#Ops*/, 6, 7,  // Results = #8
/*  3566*/          OPC_MorphNodeTo0, TARGET_VAL(PPC::STXSIBXv), 0|OPFL_Chain|OPFL_MemRefs,
                        3/*#Ops*/, 8, 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 (COPY_TO_REGCLASS:{ *:[v4i32] } (VSLDOI:{ *:[v16i8] } ?:{ *:[v16i8] }:$S, ?:{ *:[v16i8] }:$S, 9:{ *:[i32] }), VSRC:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$dst)
/*  3574*/        0, /*End of Scope*/
/*  3575*/      /*Scope*/ 15|128,1/*143*/, /*->3720*/
/*  3577*/        OPC_CheckChild1Integer, 7, 
/*  3579*/        OPC_CheckType, MVT::i32,
/*  3581*/        OPC_Scope, 88, /*->3671*/ // 2 children in Scope
/*  3583*/          OPC_CheckChild0Type, MVT::v8i16,
/*  3585*/          OPC_MoveParent,
/*  3586*/          OPC_RecordChild2, // #2 = $dst
/*  3587*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  3589*/          OPC_CheckPredicate, 1, // Predicate_truncstore
/*  3591*/          OPC_CheckPredicate, 3, // Predicate_truncstorei16
/*  3593*/          OPC_Scope, 37, /*->3632*/ // 2 children in Scope
/*  3595*/            OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/*  3597*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  3600*/            OPC_EmitMergeInputChains1_0,
/*  3601*/            OPC_EmitInteger, MVT::i32, 8, 
/*  3604*/            OPC_EmitNode1, TARGET_VAL(PPC::VSLDOI), 0,
                          MVT::v16i8, 3/*#Ops*/, 1, 1, 5,  // Results = #6
/*  3613*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*  3616*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i32, 2/*#Ops*/, 6, 7,  // Results = #8
/*  3624*/            OPC_MorphNodeTo0, TARGET_VAL(PPC::STXSIHXv), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 8, 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 (COPY_TO_REGCLASS:{ *:[v4i32] } (VSLDOI:{ *:[v16i8] } ?:{ *:[v8i16] }:$S, ?:{ *:[v8i16] }:$S, 8:{ *:[i32] }), VSRC:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$dst)
/*  3632*/          /*Scope*/ 37, /*->3670*/
/*  3633*/            OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/*  3635*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  3638*/            OPC_EmitMergeInputChains1_0,
/*  3639*/            OPC_EmitInteger, MVT::i32, 10, 
/*  3642*/            OPC_EmitNode1, TARGET_VAL(PPC::VSLDOI), 0,
                          MVT::v16i8, 3/*#Ops*/, 1, 1, 5,  // Results = #6
/*  3651*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*  3654*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i32, 2/*#Ops*/, 6, 7,  // Results = #8
/*  3662*/            OPC_MorphNodeTo0, TARGET_VAL(PPC::STXSIHXv), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 8, 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 (COPY_TO_REGCLASS:{ *:[v4i32] } (VSLDOI:{ *:[v16i8] } ?:{ *:[v8i16] }:$S, ?:{ *:[v8i16] }:$S, 10:{ *:[i32] }), VSRC:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$dst)
/*  3670*/          0, /*End of Scope*/
/*  3671*/        /*Scope*/ 47, /*->3719*/
/*  3672*/          OPC_CheckChild0Type, MVT::v16i8,
/*  3674*/          OPC_MoveParent,
/*  3675*/          OPC_RecordChild2, // #2 = $dst
/*  3676*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  3678*/          OPC_CheckPredicate, 1, // Predicate_truncstore
/*  3680*/          OPC_CheckPredicate, 2, // Predicate_truncstorei8
/*  3682*/          OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/*  3684*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  3687*/          OPC_EmitMergeInputChains1_0,
/*  3688*/          OPC_EmitInteger, MVT::i32, 1, 
/*  3691*/          OPC_EmitNode1, TARGET_VAL(PPC::VSLDOI), 0,
                        MVT::v16i8, 3/*#Ops*/, 1, 1, 5,  // Results = #6
/*  3700*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*  3703*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i32, 2/*#Ops*/, 6, 7,  // Results = #8
/*  3711*/          OPC_MorphNodeTo0, TARGET_VAL(PPC::STXSIBXv), 0|OPFL_Chain|OPFL_MemRefs,
                        3/*#Ops*/, 8, 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 (COPY_TO_REGCLASS:{ *:[v4i32] } (VSLDOI:{ *:[v16i8] } ?:{ *:[v16i8] }:$S, ?:{ *:[v16i8] }:$S, 1:{ *:[i32] }), VSRC:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$dst)
/*  3719*/        0, /*End of Scope*/
/*  3720*/      0, /*End of Scope*/
/*  3721*/    /*Scope*/ 90|128,9/*1242*/, /*->4965*/
/*  3723*/      OPC_RecordChild1, // #1 = $rS
/*  3724*/      OPC_Scope, 72, /*->3798*/ // 10 children in Scope
/*  3726*/        OPC_CheckChild1Type, MVT::v2f64,
/*  3728*/        OPC_RecordChild2, // #2 = $dst
/*  3729*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  3731*/        OPC_CheckPredicate, 4, // Predicate_store
/*  3733*/        OPC_Scope, 14, /*->3749*/ // 2 children in Scope
/*  3735*/          OPC_CheckPatternPredicate, 6, // (!PPCSubTarget->hasP9Vector()) && (PPCSubTarget->hasVSX()) && (!PPCSubTarget->isLittleEndian())
/*  3737*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  3740*/          OPC_EmitMergeInputChains1_0,
/*  3741*/          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)
/*  3749*/        /*Scope*/ 47, /*->3797*/
/*  3750*/          OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/*  3752*/          OPC_Scope, 12, /*->3766*/ // 3 children in Scope
/*  3754*/            OPC_CheckComplexPat, /*CP*/3, /*#*/2, // SelectAddrIdxX16:$dst #3 #4
/*  3757*/            OPC_EmitMergeInputChains1_0,
/*  3758*/            OPC_MorphNodeTo0, TARGET_VAL(PPC::STXVX), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 1, 3, 4, 
                      // Src: (st v2f64:{ *:[v2f64] }:$XT, xaddrX16:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 413
                      // Dst: (STXVX v2f64:{ *:[v2f64] }:$XT, xaddrX16:{ *:[iPTR] }:$dst)
/*  3766*/          /*Scope*/ 14, /*->3781*/
/*  3767*/            OPC_CheckPredicate, 5, // Predicate_quadwOffsetStore
/*  3769*/            OPC_CheckComplexPat, /*CP*/4, /*#*/2, // SelectAddrImmX16:$dst #3 #4
/*  3772*/            OPC_EmitMergeInputChains1_0,
/*  3773*/            OPC_MorphNodeTo0, TARGET_VAL(PPC::STXV), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 1, 3, 4, 
                      // Src: (st v2f64:{ *:[v2f64] }:$rS, iaddrX16:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_quadwOffsetStore>> - Complexity = 413
                      // Dst: (STXV ?:{ *:[v2f64] }:$rS, memrix16:{ *:[iPTR] }:$dst)
/*  3781*/          /*Scope*/ 14, /*->3796*/
/*  3782*/            OPC_CheckPredicate, 6, // Predicate_nonQuadwOffsetStore
/*  3784*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  3787*/            OPC_EmitMergeInputChains1_0,
/*  3788*/            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)
/*  3796*/          0, /*End of Scope*/
/*  3797*/        0, /*End of Scope*/
/*  3798*/      /*Scope*/ 58, /*->3857*/
/*  3799*/        OPC_CheckChild1Type, MVT::v2i64,
/*  3801*/        OPC_RecordChild2, // #2 = $dst
/*  3802*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  3804*/        OPC_CheckPredicate, 4, // Predicate_store
/*  3806*/        OPC_Scope, 14, /*->3822*/ // 3 children in Scope
/*  3808*/          OPC_CheckPatternPredicate, 6, // (!PPCSubTarget->hasP9Vector()) && (PPCSubTarget->hasVSX()) && (!PPCSubTarget->isLittleEndian())
/*  3810*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  3813*/          OPC_EmitMergeInputChains1_0,
/*  3814*/          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)
/*  3822*/        /*Scope*/ 16, /*->3839*/
/*  3823*/          OPC_CheckPredicate, 5, // Predicate_quadwOffsetStore
/*  3825*/          OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/*  3827*/          OPC_CheckComplexPat, /*CP*/4, /*#*/2, // SelectAddrImmX16:$dst #3 #4
/*  3830*/          OPC_EmitMergeInputChains1_0,
/*  3831*/          OPC_MorphNodeTo0, TARGET_VAL(PPC::STXV), 0|OPFL_Chain|OPFL_MemRefs,
                        3/*#Ops*/, 1, 3, 4, 
                    // Src: (st v2i64:{ *:[v2i64] }:$rS, iaddrX16:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_quadwOffsetStore>> - Complexity = 413
                    // Dst: (STXV ?:{ *:[v2i64] }:$rS, memrix16:{ *:[iPTR] }:$dst)
/*  3839*/        /*Scope*/ 16, /*->3856*/
/*  3840*/          OPC_CheckPredicate, 6, // Predicate_nonQuadwOffsetStore
/*  3842*/          OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/*  3844*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  3847*/          OPC_EmitMergeInputChains1_0,
/*  3848*/          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)
/*  3856*/        0, /*End of Scope*/
/*  3857*/      /*Scope*/ 73, /*->3931*/
/*  3858*/        OPC_CheckChild1Type, MVT::v4i32,
/*  3860*/        OPC_RecordChild2, // #2 = $dst
/*  3861*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  3863*/        OPC_CheckPredicate, 4, // Predicate_store
/*  3865*/        OPC_Scope, 14, /*->3881*/ // 4 children in Scope
/*  3867*/          OPC_CheckPatternPredicate, 6, // (!PPCSubTarget->hasP9Vector()) && (PPCSubTarget->hasVSX()) && (!PPCSubTarget->isLittleEndian())
/*  3869*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  3872*/          OPC_EmitMergeInputChains1_0,
/*  3873*/          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)
/*  3881*/        /*Scope*/ 16, /*->3898*/
/*  3882*/          OPC_CheckPredicate, 5, // Predicate_quadwOffsetStore
/*  3884*/          OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/*  3886*/          OPC_CheckComplexPat, /*CP*/4, /*#*/2, // SelectAddrImmX16:$dst #3 #4
/*  3889*/          OPC_EmitMergeInputChains1_0,
/*  3890*/          OPC_MorphNodeTo0, TARGET_VAL(PPC::STXV), 0|OPFL_Chain|OPFL_MemRefs,
                        3/*#Ops*/, 1, 3, 4, 
                    // Src: (st v4i32:{ *:[v4i32] }:$rS, iaddrX16:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_quadwOffsetStore>> - Complexity = 413
                    // Dst: (STXV ?:{ *:[v4i32] }:$rS, memrix16:{ *:[iPTR] }:$dst)
/*  3898*/        /*Scope*/ 16, /*->3915*/
/*  3899*/          OPC_CheckPredicate, 6, // Predicate_nonQuadwOffsetStore
/*  3901*/          OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/*  3903*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  3906*/          OPC_EmitMergeInputChains1_0,
/*  3907*/          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)
/*  3915*/        /*Scope*/ 14, /*->3930*/
/*  3916*/          OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/*  3918*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  3921*/          OPC_EmitMergeInputChains1_0,
/*  3922*/          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)
/*  3930*/        0, /*End of Scope*/
/*  3931*/      /*Scope*/ 79, /*->4011*/
/*  3932*/        OPC_CheckChild1Type, MVT::v4f32,
/*  3934*/        OPC_RecordChild2, // #2 = $dst
/*  3935*/        OPC_Scope, 55, /*->3992*/ // 2 children in Scope
/*  3937*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  3939*/          OPC_CheckPredicate, 4, // Predicate_store
/*  3941*/          OPC_Scope, 16, /*->3959*/ // 3 children in Scope
/*  3943*/            OPC_CheckPredicate, 5, // Predicate_quadwOffsetStore
/*  3945*/            OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/*  3947*/            OPC_CheckComplexPat, /*CP*/4, /*#*/2, // SelectAddrImmX16:$dst #3 #4
/*  3950*/            OPC_EmitMergeInputChains1_0,
/*  3951*/            OPC_MorphNodeTo0, TARGET_VAL(PPC::STXV), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 1, 3, 4, 
                      // Src: (st v4f32:{ *:[v4f32] }:$rS, iaddrX16:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_quadwOffsetStore>> - Complexity = 413
                      // Dst: (STXV ?:{ *:[v4f32] }:$rS, memrix16:{ *:[iPTR] }:$dst)
/*  3959*/          /*Scope*/ 16, /*->3976*/
/*  3960*/            OPC_CheckPredicate, 6, // Predicate_nonQuadwOffsetStore
/*  3962*/            OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/*  3964*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  3967*/            OPC_EmitMergeInputChains1_0,
/*  3968*/            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)
/*  3976*/          /*Scope*/ 14, /*->3991*/
/*  3977*/            OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/*  3979*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  3982*/            OPC_EmitMergeInputChains1_0,
/*  3983*/            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)
/*  3991*/          0, /*End of Scope*/
/*  3992*/        /*Scope*/ 17, /*->4010*/
/*  3993*/          OPC_RecordChild3, // #3 = $ptroff
/*  3994*/          OPC_CheckPredicate, 4, // Predicate_istore
/*  3996*/          OPC_CheckPredicate, 7, // Predicate_pre_store
/*  3998*/          OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/*  4000*/          OPC_EmitMergeInputChains1_0,
/*  4001*/          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)
/*  4010*/        0, /*End of Scope*/
/*  4011*/      /*Scope*/ 11|128,1/*139*/, /*->4152*/
/*  4013*/        OPC_CheckChild1Type, MVT::f32,
/*  4015*/        OPC_RecordChild2, // #2 = $dst
/*  4016*/        OPC_Scope, 98, /*->4116*/ // 2 children in Scope
/*  4018*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  4020*/          OPC_CheckPredicate, 4, // Predicate_store
/*  4022*/          OPC_Scope, 14, /*->4038*/ // 4 children in Scope
/*  4024*/            OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/*  4026*/            OPC_CheckComplexPat, /*CP*/1, /*#*/2, // SelectAddrImmX4:$dst #3 #4
/*  4029*/            OPC_EmitMergeInputChains1_0,
/*  4030*/            OPC_MorphNodeTo0, TARGET_VAL(PPC::DFSTOREf32), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 1, 3, 4, 
                      // Src: (st f32:{ *:[f32] }:$XT, iaddrX4:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 413
                      // Dst: (DFSTOREf32 f32:{ *:[f32] }:$XT, iaddrX4:{ *:[iPTR] }:$dst)
/*  4038*/          /*Scope*/ 14, /*->4053*/
/*  4039*/            OPC_CheckPatternPredicate, 10, // (PPCSubTarget->hasP8Vector())
/*  4041*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  4044*/            OPC_EmitMergeInputChains1_0,
/*  4045*/            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)
/*  4053*/          /*Scope*/ 30, /*->4084*/
/*  4054*/            OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/*  4056*/            OPC_Scope, 12, /*->4070*/ // 2 children in Scope
/*  4058*/              OPC_CheckComplexPat, /*CP*/5, /*#*/2, // SelectAddrImm:$dst #3 #4
/*  4061*/              OPC_EmitMergeInputChains1_0,
/*  4062*/              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)
/*  4070*/            /*Scope*/ 12, /*->4083*/
/*  4071*/              OPC_CheckComplexPat, /*CP*/6, /*#*/2, // SelectAddrIdx:$dst #3 #4
/*  4074*/              OPC_EmitMergeInputChains1_0,
/*  4075*/              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)
/*  4083*/            0, /*End of Scope*/
/*  4084*/          /*Scope*/ 30, /*->4115*/
/*  4085*/            OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/*  4087*/            OPC_Scope, 12, /*->4101*/ // 2 children in Scope
/*  4089*/              OPC_CheckComplexPat, /*CP*/5, /*#*/2, // SelectAddrImm:$src #3 #4
/*  4092*/              OPC_EmitMergeInputChains1_0,
/*  4093*/              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)
/*  4101*/            /*Scope*/ 12, /*->4114*/
/*  4102*/              OPC_CheckComplexPat, /*CP*/6, /*#*/2, // SelectAddrIdx:$dst #3 #4
/*  4105*/              OPC_EmitMergeInputChains1_0,
/*  4106*/              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)
/*  4114*/            0, /*End of Scope*/
/*  4115*/          0, /*End of Scope*/
/*  4116*/        /*Scope*/ 34, /*->4151*/
/*  4117*/          OPC_RecordChild3, // #3 = $ptroff
/*  4118*/          OPC_CheckPredicate, 4, // Predicate_istore
/*  4120*/          OPC_CheckPredicate, 7, // Predicate_pre_store
/*  4122*/          OPC_Scope, 13, /*->4137*/ // 2 children in Scope
/*  4124*/            OPC_CheckComplexPat, /*CP*/7, /*#*/3, // SelectAddrImmOffs:$ptroff #4
/*  4127*/            OPC_EmitMergeInputChains1_0,
/*  4128*/            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)
/*  4137*/          /*Scope*/ 12, /*->4150*/
/*  4138*/            OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/*  4140*/            OPC_EmitMergeInputChains1_0,
/*  4141*/            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)
/*  4150*/          0, /*End of Scope*/
/*  4151*/        0, /*End of Scope*/
/*  4152*/      /*Scope*/ 11|128,1/*139*/, /*->4293*/
/*  4154*/        OPC_CheckChild1Type, MVT::f64,
/*  4156*/        OPC_RecordChild2, // #2 = $dst
/*  4157*/        OPC_Scope, 98, /*->4257*/ // 2 children in Scope
/*  4159*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  4161*/          OPC_CheckPredicate, 4, // Predicate_store
/*  4163*/          OPC_Scope, 14, /*->4179*/ // 4 children in Scope
/*  4165*/            OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/*  4167*/            OPC_CheckComplexPat, /*CP*/1, /*#*/2, // SelectAddrImmX4:$dst #3 #4
/*  4170*/            OPC_EmitMergeInputChains1_0,
/*  4171*/            OPC_MorphNodeTo0, TARGET_VAL(PPC::DFSTOREf64), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 1, 3, 4, 
                      // Src: (st f64:{ *:[f64] }:$XT, iaddrX4:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 413
                      // Dst: (DFSTOREf64 f64:{ *:[f64] }:$XT, iaddrX4:{ *:[iPTR] }:$dst)
/*  4179*/          /*Scope*/ 14, /*->4194*/
/*  4180*/            OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/*  4182*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  4185*/            OPC_EmitMergeInputChains1_0,
/*  4186*/            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)
/*  4194*/          /*Scope*/ 30, /*->4225*/
/*  4195*/            OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/*  4197*/            OPC_Scope, 12, /*->4211*/ // 2 children in Scope
/*  4199*/              OPC_CheckComplexPat, /*CP*/5, /*#*/2, // SelectAddrImm:$dst #3 #4
/*  4202*/              OPC_EmitMergeInputChains1_0,
/*  4203*/              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)
/*  4211*/            /*Scope*/ 12, /*->4224*/
/*  4212*/              OPC_CheckComplexPat, /*CP*/6, /*#*/2, // SelectAddrIdx:$dst #3 #4
/*  4215*/              OPC_EmitMergeInputChains1_0,
/*  4216*/              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)
/*  4224*/            0, /*End of Scope*/
/*  4225*/          /*Scope*/ 30, /*->4256*/
/*  4226*/            OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/*  4228*/            OPC_Scope, 12, /*->4242*/ // 2 children in Scope
/*  4230*/              OPC_CheckComplexPat, /*CP*/5, /*#*/2, // SelectAddrImm:$dst #3 #4
/*  4233*/              OPC_EmitMergeInputChains1_0,
/*  4234*/              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)
/*  4242*/            /*Scope*/ 12, /*->4255*/
/*  4243*/              OPC_CheckComplexPat, /*CP*/6, /*#*/2, // SelectAddrIdx:$dst #3 #4
/*  4246*/              OPC_EmitMergeInputChains1_0,
/*  4247*/              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)
/*  4255*/            0, /*End of Scope*/
/*  4256*/          0, /*End of Scope*/
/*  4257*/        /*Scope*/ 34, /*->4292*/
/*  4258*/          OPC_RecordChild3, // #3 = $ptroff
/*  4259*/          OPC_CheckPredicate, 4, // Predicate_istore
/*  4261*/          OPC_CheckPredicate, 7, // Predicate_pre_store
/*  4263*/          OPC_Scope, 13, /*->4278*/ // 2 children in Scope
/*  4265*/            OPC_CheckComplexPat, /*CP*/7, /*#*/3, // SelectAddrImmOffs:$ptroff #4
/*  4268*/            OPC_EmitMergeInputChains1_0,
/*  4269*/            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)
/*  4278*/          /*Scope*/ 12, /*->4291*/
/*  4279*/            OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/*  4281*/            OPC_EmitMergeInputChains1_0,
/*  4282*/            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)
/*  4291*/          0, /*End of Scope*/
/*  4292*/        0, /*End of Scope*/
/*  4293*/      /*Scope*/ 65, /*->4359*/
/*  4294*/        OPC_CheckChild1Type, MVT::f128,
/*  4296*/        OPC_RecordChild2, // #2 = $dst
/*  4297*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  4299*/        OPC_CheckPredicate, 4, // Predicate_store
/*  4301*/        OPC_Scope, 27, /*->4330*/ // 2 children in Scope
/*  4303*/          OPC_CheckPredicate, 5, // Predicate_quadwOffsetStore
/*  4305*/          OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/*  4307*/          OPC_CheckComplexPat, /*CP*/4, /*#*/2, // SelectAddrImmX16:$dst #3 #4
/*  4310*/          OPC_EmitMergeInputChains1_0,
/*  4311*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*  4314*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i32, 2/*#Ops*/, 1, 5,  // Results = #6
/*  4322*/          OPC_MorphNodeTo0, TARGET_VAL(PPC::STXV), 0|OPFL_Chain|OPFL_MemRefs,
                        3/*#Ops*/, 6, 3, 4, 
                    // Src: (st f128:{ *:[f128] }:$rS, iaddrX16:{ *:[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)
/*  4330*/        /*Scope*/ 27, /*->4358*/
/*  4331*/          OPC_CheckPredicate, 6, // Predicate_nonQuadwOffsetStore
/*  4333*/          OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/*  4335*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  4338*/          OPC_EmitMergeInputChains1_0,
/*  4339*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*  4342*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i32, 2/*#Ops*/, 1, 5,  // Results = #6
/*  4350*/          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)
/*  4358*/        0, /*End of Scope*/
/*  4359*/      /*Scope*/ 91|128,1/*219*/, /*->4580*/
/*  4361*/        OPC_CheckChild1Type, MVT::i32,
/*  4363*/        OPC_RecordChild2, // #2 = $dst
/*  4364*/        OPC_Scope, 104, /*->4470*/ // 2 children in Scope
/*  4366*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  4368*/          OPC_Scope, 34, /*->4404*/ // 4 children in Scope
/*  4370*/            OPC_CheckPredicate, 1, // Predicate_truncstore
/*  4372*/            OPC_Scope, 14, /*->4388*/ // 2 children in Scope
/*  4374*/              OPC_CheckPredicate, 2, // Predicate_truncstorei8
/*  4376*/              OPC_CheckComplexPat, /*CP*/5, /*#*/2, // SelectAddrImm:$dst #3 #4
/*  4379*/              OPC_EmitMergeInputChains1_0,
/*  4380*/              OPC_MorphNodeTo0, TARGET_VAL(PPC::STB), 0|OPFL_Chain|OPFL_MemRefs,
                            3/*#Ops*/, 1, 3, 4, 
                        // Src: (st i32:{ *:[i32] }:$rS, iaddr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei8>> - Complexity = 13
                        // Dst: (STB i32:{ *:[i32] }:$rS, iaddr:{ *:[iPTR] }:$dst)
/*  4388*/            /*Scope*/ 14, /*->4403*/
/*  4389*/              OPC_CheckPredicate, 3, // Predicate_truncstorei16
/*  4391*/              OPC_CheckComplexPat, /*CP*/5, /*#*/2, // SelectAddrImm:$dst #3 #4
/*  4394*/              OPC_EmitMergeInputChains1_0,
/*  4395*/              OPC_MorphNodeTo0, TARGET_VAL(PPC::STH), 0|OPFL_Chain|OPFL_MemRefs,
                            3/*#Ops*/, 1, 3, 4, 
                        // Src: (st i32:{ *:[i32] }:$rS, iaddr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei16>> - Complexity = 13
                        // Dst: (STH i32:{ *:[i32] }:$rS, iaddr:{ *:[iPTR] }:$dst)
/*  4403*/            0, /*End of Scope*/
/*  4404*/          /*Scope*/ 14, /*->4419*/
/*  4405*/            OPC_CheckPredicate, 4, // Predicate_store
/*  4407*/            OPC_CheckComplexPat, /*CP*/5, /*#*/2, // SelectAddrImm:$dst #3 #4
/*  4410*/            OPC_EmitMergeInputChains1_0,
/*  4411*/            OPC_MorphNodeTo0, TARGET_VAL(PPC::STW), 0|OPFL_Chain|OPFL_MemRefs,
                          3/*#Ops*/, 1, 3, 4, 
                      // Src: (st i32:{ *:[i32] }:$rS, iaddr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 13
                      // Dst: (STW i32:{ *:[i32] }:$rS, iaddr:{ *:[iPTR] }:$dst)
/*  4419*/          /*Scope*/ 34, /*->4454*/
/*  4420*/            OPC_CheckPredicate, 1, // Predicate_truncstore
/*  4422*/            OPC_Scope, 14, /*->4438*/ // 2 children in Scope
/*  4424*/              OPC_CheckPredicate, 2, // Predicate_truncstorei8
/*  4426*/              OPC_CheckComplexPat, /*CP*/6, /*#*/2, // SelectAddrIdx:$dst #3 #4
/*  4429*/              OPC_EmitMergeInputChains1_0,
/*  4430*/              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)
/*  4438*/            /*Scope*/ 14, /*->4453*/
/*  4439*/              OPC_CheckPredicate, 3, // Predicate_truncstorei16
/*  4441*/              OPC_CheckComplexPat, /*CP*/6, /*#*/2, // SelectAddrIdx:$dst #3 #4
/*  4444*/              OPC_EmitMergeInputChains1_0,
/*  4445*/              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)
/*  4453*/            0, /*End of Scope*/
/*  4454*/          /*Scope*/ 14, /*->4469*/
/*  4455*/            OPC_CheckPredicate, 4, // Predicate_store
/*  4457*/            OPC_CheckComplexPat, /*CP*/6, /*#*/2, // SelectAddrIdx:$dst #3 #4
/*  4460*/            OPC_EmitMergeInputChains1_0,
/*  4461*/            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)
/*  4469*/          0, /*End of Scope*/
/*  4470*/        /*Scope*/ 108, /*->4579*/
/*  4471*/          OPC_RecordChild3, // #3 = $ptroff
/*  4472*/          OPC_Scope, 38, /*->4512*/ // 4 children in Scope
/*  4474*/            OPC_CheckPredicate, 1, // Predicate_itruncstore
/*  4476*/            OPC_CheckPredicate, 7, // Predicate_pre_truncst
/*  4478*/            OPC_Scope, 15, /*->4495*/ // 2 children in Scope
/*  4480*/              OPC_CheckPredicate, 2, // Predicate_pre_truncsti8
/*  4482*/              OPC_CheckComplexPat, /*CP*/7, /*#*/3, // SelectAddrImmOffs:$ptroff #4
/*  4485*/              OPC_EmitMergeInputChains1_0,
/*  4486*/              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)
/*  4495*/            /*Scope*/ 15, /*->4511*/
/*  4496*/              OPC_CheckPredicate, 3, // Predicate_pre_truncsti16
/*  4498*/              OPC_CheckComplexPat, /*CP*/7, /*#*/3, // SelectAddrImmOffs:$ptroff #4
/*  4501*/              OPC_EmitMergeInputChains1_0,
/*  4502*/              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)
/*  4511*/            0, /*End of Scope*/
/*  4512*/          /*Scope*/ 17, /*->4530*/
/*  4513*/            OPC_CheckPredicate, 4, // Predicate_istore
/*  4515*/            OPC_CheckPredicate, 7, // Predicate_pre_store
/*  4517*/            OPC_CheckComplexPat, /*CP*/7, /*#*/3, // SelectAddrImmOffs:$ptroff #4
/*  4520*/            OPC_EmitMergeInputChains1_0,
/*  4521*/            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)
/*  4530*/          /*Scope*/ 32, /*->4563*/
/*  4531*/            OPC_CheckPredicate, 1, // Predicate_itruncstore
/*  4533*/            OPC_CheckPredicate, 7, // Predicate_pre_truncst
/*  4535*/            OPC_Scope, 12, /*->4549*/ // 2 children in Scope
/*  4537*/              OPC_CheckPredicate, 2, // Predicate_pre_truncsti8
/*  4539*/              OPC_EmitMergeInputChains1_0,
/*  4540*/              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)
/*  4549*/            /*Scope*/ 12, /*->4562*/
/*  4550*/              OPC_CheckPredicate, 3, // Predicate_pre_truncsti16
/*  4552*/              OPC_EmitMergeInputChains1_0,
/*  4553*/              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)
/*  4562*/            0, /*End of Scope*/
/*  4563*/          /*Scope*/ 14, /*->4578*/
/*  4564*/            OPC_CheckPredicate, 4, // Predicate_istore
/*  4566*/            OPC_CheckPredicate, 7, // Predicate_pre_store
/*  4568*/            OPC_EmitMergeInputChains1_0,
/*  4569*/            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)
/*  4578*/          0, /*End of Scope*/
/*  4579*/        0, /*End of Scope*/
/*  4580*/      /*Scope*/ 39|128,2/*295*/, /*->4877*/
/*  4582*/        OPC_CheckChild1Type, MVT::i64,
/*  4584*/        OPC_RecordChild2, // #2 = $src
/*  4585*/        OPC_Scope, 19|128,1/*147*/, /*->4735*/ // 2 children in Scope
/*  4588*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  4590*/          OPC_Scope, 94, /*->4686*/ // 2 children in Scope
/*  4592*/            OPC_CheckPredicate, 1, // Predicate_truncstore
/*  4594*/            OPC_Scope, 14, /*->4610*/ // 6 children in Scope
/*  4596*/              OPC_CheckPredicate, 2, // Predicate_truncstorei8
/*  4598*/              OPC_CheckComplexPat, /*CP*/5, /*#*/2, // SelectAddrImm:$src #3 #4
/*  4601*/              OPC_EmitMergeInputChains1_0,
/*  4602*/              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)
/*  4610*/            /*Scope*/ 14, /*->4625*/
/*  4611*/              OPC_CheckPredicate, 3, // Predicate_truncstorei16
/*  4613*/              OPC_CheckComplexPat, /*CP*/5, /*#*/2, // SelectAddrImm:$src #3 #4
/*  4616*/              OPC_EmitMergeInputChains1_0,
/*  4617*/              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)
/*  4625*/            /*Scope*/ 14, /*->4640*/
/*  4626*/              OPC_CheckPredicate, 8, // Predicate_truncstorei32
/*  4628*/              OPC_CheckComplexPat, /*CP*/5, /*#*/2, // SelectAddrImm:$src #3 #4
/*  4631*/              OPC_EmitMergeInputChains1_0,
/*  4632*/              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)
/*  4640*/            /*Scope*/ 14, /*->4655*/
/*  4641*/              OPC_CheckPredicate, 2, // Predicate_truncstorei8
/*  4643*/              OPC_CheckComplexPat, /*CP*/6, /*#*/2, // SelectAddrIdx:$dst #3 #4
/*  4646*/              OPC_EmitMergeInputChains1_0,
/*  4647*/              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)
/*  4655*/            /*Scope*/ 14, /*->4670*/
/*  4656*/              OPC_CheckPredicate, 3, // Predicate_truncstorei16
/*  4658*/              OPC_CheckComplexPat, /*CP*/6, /*#*/2, // SelectAddrIdx:$dst #3 #4
/*  4661*/              OPC_EmitMergeInputChains1_0,
/*  4662*/              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)
/*  4670*/            /*Scope*/ 14, /*->4685*/
/*  4671*/              OPC_CheckPredicate, 8, // Predicate_truncstorei32
/*  4673*/              OPC_CheckComplexPat, /*CP*/6, /*#*/2, // SelectAddrIdx:$dst #3 #4
/*  4676*/              OPC_EmitMergeInputChains1_0,
/*  4677*/              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)
/*  4685*/            0, /*End of Scope*/
/*  4686*/          /*Scope*/ 47, /*->4734*/
/*  4687*/            OPC_CheckPredicate, 4, // Predicate_store
/*  4689*/            OPC_Scope, 14, /*->4705*/ // 3 children in Scope
/*  4691*/              OPC_CheckPredicate, 9, // Predicate_aligned4store
/*  4693*/              OPC_CheckComplexPat, /*CP*/1, /*#*/2, // SelectAddrImmX4:$dst #3 #4
/*  4696*/              OPC_EmitMergeInputChains1_0,
/*  4697*/              OPC_MorphNodeTo0, TARGET_VAL(PPC::STD), 0|OPFL_Chain|OPFL_MemRefs,
                            3/*#Ops*/, 1, 3, 4, 
                        // Src: (st i64:{ *:[i64] }:$rS, iaddrX4:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_aligned4store>> - Complexity = 13
                        // Dst: (STD i64:{ *:[i64] }:$rS, iaddrX4:{ *:[iPTR] }:$dst)
/*  4705*/            /*Scope*/ 12, /*->4718*/
/*  4706*/              OPC_CheckComplexPat, /*CP*/2, /*#*/2, // SelectAddrIdxX4:$dst #3 #4
/*  4709*/              OPC_EmitMergeInputChains1_0,
/*  4710*/              OPC_MorphNodeTo0, TARGET_VAL(PPC::STDX), 0|OPFL_Chain|OPFL_MemRefs,
                            3/*#Ops*/, 1, 3, 4, 
                        // Src: (st i64:{ *:[i64] }:$rS, xaddrX4:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 13
                        // Dst: (STDX i64:{ *:[i64] }:$rS, xaddrX4:{ *:[iPTR] }:$dst)
/*  4718*/            /*Scope*/ 14, /*->4733*/
/*  4719*/              OPC_CheckPredicate, 10, // Predicate_unaligned4store
/*  4721*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  4724*/              OPC_EmitMergeInputChains1_0,
/*  4725*/              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)
/*  4733*/            0, /*End of Scope*/
/*  4734*/          0, /*End of Scope*/
/*  4735*/        /*Scope*/ 11|128,1/*139*/, /*->4876*/
/*  4737*/          OPC_RecordChild3, // #3 = $ptroff
/*  4738*/          OPC_Scope, 54, /*->4794*/ // 4 children in Scope
/*  4740*/            OPC_CheckPredicate, 1, // Predicate_itruncstore
/*  4742*/            OPC_CheckPredicate, 7, // Predicate_pre_truncst
/*  4744*/            OPC_Scope, 15, /*->4761*/ // 3 children in Scope
/*  4746*/              OPC_CheckPredicate, 2, // Predicate_pre_truncsti8
/*  4748*/              OPC_CheckComplexPat, /*CP*/7, /*#*/3, // SelectAddrImmOffs:$ptroff #4
/*  4751*/              OPC_EmitMergeInputChains1_0,
/*  4752*/              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)
/*  4761*/            /*Scope*/ 15, /*->4777*/
/*  4762*/              OPC_CheckPredicate, 3, // Predicate_pre_truncsti16
/*  4764*/              OPC_CheckComplexPat, /*CP*/7, /*#*/3, // SelectAddrImmOffs:$ptroff #4
/*  4767*/              OPC_EmitMergeInputChains1_0,
/*  4768*/              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)
/*  4777*/            /*Scope*/ 15, /*->4793*/
/*  4778*/              OPC_CheckPredicate, 8, // Predicate_pre_truncsti32
/*  4780*/              OPC_CheckComplexPat, /*CP*/7, /*#*/3, // SelectAddrImmOffs:$ptroff #4
/*  4783*/              OPC_EmitMergeInputChains1_0,
/*  4784*/              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)
/*  4793*/            0, /*End of Scope*/
/*  4794*/          /*Scope*/ 19, /*->4814*/
/*  4795*/            OPC_CheckPredicate, 4, // Predicate_istore
/*  4797*/            OPC_CheckPredicate, 7, // Predicate_pre_store
/*  4799*/            OPC_CheckPredicate, 9, // Predicate_aligned4pre_store
/*  4801*/            OPC_CheckComplexPat, /*CP*/7, /*#*/3, // SelectAddrImmOffs:$ptroff #4
/*  4804*/            OPC_EmitMergeInputChains1_0,
/*  4805*/            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)
/*  4814*/          /*Scope*/ 45, /*->4860*/
/*  4815*/            OPC_CheckPredicate, 1, // Predicate_itruncstore
/*  4817*/            OPC_CheckPredicate, 7, // Predicate_pre_truncst
/*  4819*/            OPC_Scope, 12, /*->4833*/ // 3 children in Scope
/*  4821*/              OPC_CheckPredicate, 2, // Predicate_pre_truncsti8
/*  4823*/              OPC_EmitMergeInputChains1_0,
/*  4824*/              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)
/*  4833*/            /*Scope*/ 12, /*->4846*/
/*  4834*/              OPC_CheckPredicate, 3, // Predicate_pre_truncsti16
/*  4836*/              OPC_EmitMergeInputChains1_0,
/*  4837*/              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)
/*  4846*/            /*Scope*/ 12, /*->4859*/
/*  4847*/              OPC_CheckPredicate, 8, // Predicate_pre_truncsti32
/*  4849*/              OPC_EmitMergeInputChains1_0,
/*  4850*/              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)
/*  4859*/            0, /*End of Scope*/
/*  4860*/          /*Scope*/ 14, /*->4875*/
/*  4861*/            OPC_CheckPredicate, 4, // Predicate_istore
/*  4863*/            OPC_CheckPredicate, 7, // Predicate_pre_store
/*  4865*/            OPC_EmitMergeInputChains1_0,
/*  4866*/            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)
/*  4875*/          0, /*End of Scope*/
/*  4876*/        0, /*End of Scope*/
/*  4877*/      /*Scope*/ 86, /*->4964*/
/*  4878*/        OPC_CheckChild1Type, MVT::v4f64,
/*  4880*/        OPC_RecordChild2, // #2 = $dst
/*  4881*/        OPC_Scope, 40, /*->4923*/ // 2 children in Scope
/*  4883*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  4885*/          OPC_Scope, 16, /*->4903*/ // 2 children in Scope
/*  4887*/            OPC_CheckPredicate, 4, // Predicate_store
/*  4889*/            OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/*  4891*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  4894*/            OPC_EmitMergeInputChains1_0,
/*  4895*/            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)
/*  4903*/          /*Scope*/ 18, /*->4922*/
/*  4904*/            OPC_CheckPredicate, 1, // Predicate_truncstore
/*  4906*/            OPC_CheckPredicate, 11, // Predicate_truncstorev4f32
/*  4908*/            OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/*  4910*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  4913*/            OPC_EmitMergeInputChains1_0,
/*  4914*/            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)
/*  4922*/          0, /*End of Scope*/
/*  4923*/        /*Scope*/ 39, /*->4963*/
/*  4924*/          OPC_RecordChild3, // #3 = $ptroff
/*  4925*/          OPC_Scope, 16, /*->4943*/ // 2 children in Scope
/*  4927*/            OPC_CheckPredicate, 4, // Predicate_istore
/*  4929*/            OPC_CheckPredicate, 7, // Predicate_pre_store
/*  4931*/            OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/*  4933*/            OPC_EmitMergeInputChains1_0,
/*  4934*/            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)
/*  4943*/          /*Scope*/ 18, /*->4962*/
/*  4944*/            OPC_CheckPredicate, 1, // Predicate_itruncstore
/*  4946*/            OPC_CheckPredicate, 7, // Predicate_pre_truncst
/*  4948*/            OPC_CheckPredicate, 11, // Predicate_pre_truncstv4f32
/*  4950*/            OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/*  4952*/            OPC_EmitMergeInputChains1_0,
/*  4953*/            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)
/*  4962*/          0, /*End of Scope*/
/*  4963*/        0, /*End of Scope*/
/*  4964*/      0, /*End of Scope*/
/*  4965*/    0, /*End of Scope*/
/*  4966*/  /*SwitchOpcode*/ 44|128,5/*684*/, TARGET_VAL(PPCISD::ST_VSR_SCAL_INT),// ->5654
/*  4970*/    OPC_RecordNode, // #0 = 'PPCstore_scal_int_from_vsr' chained node
/*  4971*/    OPC_MoveChild1,
/*  4972*/    OPC_SwitchOpcode /*2 cases */, 80|128,2/*336*/, TARGET_VAL(PPCISD::FP_TO_SINT_IN_VSR),// ->5313
/*  4977*/      OPC_RecordChild0, // #1 = $src
/*  4978*/      OPC_Scope, 21|128,1/*149*/, /*->5130*/ // 2 children in Scope
/*  4981*/        OPC_CheckChild0Type, MVT::f64,
/*  4983*/        OPC_MoveParent,
/*  4984*/        OPC_RecordChild2, // #2 = $dst
/*  4985*/        OPC_Scope, 23, /*->5010*/ // 4 children in Scope
/*  4987*/          OPC_CheckChild3Integer, 4, 
/*  4989*/          OPC_CheckPatternPredicate, 10, // (PPCSubTarget->hasP8Vector())
/*  4991*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  4994*/          OPC_EmitMergeInputChains1_0,
/*  4995*/          OPC_EmitNode1, TARGET_VAL(PPC::XSCVDPSXWS), 0,
                        MVT::f64, 1/*#Ops*/, 1,  // Results = #5
/*  5002*/          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)
/*  5010*/        /*Scope*/ 70, /*->5081*/
/*  5011*/          OPC_CheckChild3Integer, 8, 
/*  5013*/          OPC_Scope, 21, /*->5036*/ // 3 children in Scope
/*  5015*/            OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/*  5017*/            OPC_CheckComplexPat, /*CP*/1, /*#*/2, // SelectAddrImmX4:$dst #3 #4
/*  5020*/            OPC_EmitMergeInputChains1_0,
/*  5021*/            OPC_EmitNode1, TARGET_VAL(PPC::XSCVDPSXDS), 0,
                          MVT::f64, 1/*#Ops*/, 1,  // Results = #5
/*  5028*/            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), iaddrX4:{ *:[iPTR] }:$dst, 8:{ *:[iPTR] }) - Complexity = 420
                      // Dst: (STXSD (XSCVDPSXDS:{ *:[f64] } f64:{ *:[f64] }:$src), iaddrX4:{ *:[iPTR] }:$dst)
/*  5036*/          /*Scope*/ 21, /*->5058*/
/*  5037*/            OPC_CheckPatternPredicate, 14, // (!PPCSubTarget->hasP9Vector())
/*  5039*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  5042*/            OPC_EmitMergeInputChains1_0,
/*  5043*/            OPC_EmitNode1, TARGET_VAL(PPC::XSCVDPSXDS), 0,
                          MVT::f64, 1/*#Ops*/, 1,  // Results = #5
/*  5050*/            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)
/*  5058*/          /*Scope*/ 21, /*->5080*/
/*  5059*/            OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/*  5061*/            OPC_CheckComplexPat, /*CP*/2, /*#*/2, // SelectAddrIdxX4:$dst #3 #4
/*  5064*/            OPC_EmitMergeInputChains1_0,
/*  5065*/            OPC_EmitNode1, TARGET_VAL(PPC::XSCVDPSXDS), 0,
                          MVT::f64, 1/*#Ops*/, 1,  // Results = #5
/*  5072*/            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), xaddrX4:{ *:[iPTR] }:$dst, 8:{ *:[iPTR] }) - Complexity = 420
                      // Dst: (STXSDX (XSCVDPSXDS:{ *:[f64] } f64:{ *:[f64] }:$src), xaddrX4:{ *:[iPTR] }:$dst)
/*  5080*/          0, /*End of Scope*/
/*  5081*/        /*Scope*/ 23, /*->5105*/
/*  5082*/          OPC_CheckChild3Integer, 2, 
/*  5084*/          OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/*  5086*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  5089*/          OPC_EmitMergeInputChains1_0,
/*  5090*/          OPC_EmitNode1, TARGET_VAL(PPC::XSCVDPSXWS), 0,
                        MVT::f64, 1/*#Ops*/, 1,  // Results = #5
/*  5097*/          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)
/*  5105*/        /*Scope*/ 23, /*->5129*/
/*  5106*/          OPC_CheckChild3Integer, 1, 
/*  5108*/          OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/*  5110*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  5113*/          OPC_EmitMergeInputChains1_0,
/*  5114*/          OPC_EmitNode1, TARGET_VAL(PPC::XSCVDPSXWS), 0,
                        MVT::f64, 1/*#Ops*/, 1,  // Results = #5
/*  5121*/          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)
/*  5129*/        0, /*End of Scope*/
/*  5130*/      /*Scope*/ 52|128,1/*180*/, /*->5312*/
/*  5132*/        OPC_CheckChild0Type, MVT::f128,
/*  5134*/        OPC_MoveParent,
/*  5135*/        OPC_RecordChild2, // #2 = $dst
/*  5136*/        OPC_Scope, 68, /*->5206*/ // 4 children in Scope
/*  5138*/          OPC_CheckChild3Integer, 8, 
/*  5140*/          OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/*  5142*/          OPC_Scope, 30, /*->5174*/ // 2 children in Scope
/*  5144*/            OPC_CheckComplexPat, /*CP*/1, /*#*/2, // SelectAddrImmX4:$dst #3 #4
/*  5147*/            OPC_EmitMergeInputChains1_0,
/*  5148*/            OPC_EmitNode1, TARGET_VAL(PPC::XSCVQPSDZ), 0|OPFL_Chain,
                          MVT::f128, 1/*#Ops*/, 1,  // Results = #5
/*  5155*/            OPC_EmitInteger, MVT::i32, PPC::VFRCRegClassID,
/*  5158*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::f64, 2/*#Ops*/, 5, 6,  // Results = #7
/*  5166*/            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), iaddrX4:{ *:[iPTR] }:$dst, 8:{ *:[iPTR] }) - Complexity = 420
                      // Dst: (STXSD (COPY_TO_REGCLASS:{ *:[f64] } (XSCVQPSDZ:{ *:[f128] } f128:{ *:[f128] }:$src), VFRC:{ *:[i32] }), iaddrX4:{ *:[iPTR] }:$dst)
/*  5174*/          /*Scope*/ 30, /*->5205*/
/*  5175*/            OPC_CheckComplexPat, /*CP*/2, /*#*/2, // SelectAddrIdxX4:$dst #3 #4
/*  5178*/            OPC_EmitMergeInputChains1_0,
/*  5179*/            OPC_EmitNode1, TARGET_VAL(PPC::XSCVQPSDZ), 0|OPFL_Chain,
                          MVT::f128, 1/*#Ops*/, 1,  // Results = #5
/*  5186*/            OPC_EmitInteger, MVT::i32, PPC::VFRCRegClassID,
/*  5189*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::f64, 2/*#Ops*/, 5, 6,  // Results = #7
/*  5197*/            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), xaddrX4:{ *:[iPTR] }:$dst, 8:{ *:[iPTR] }) - Complexity = 420
                      // Dst: (STXSDX (COPY_TO_REGCLASS:{ *:[f64] } (XSCVQPSDZ:{ *:[f128] } f128:{ *:[f128] }:$src), VFRC:{ *:[i32] }), xaddrX4:{ *:[iPTR] }:$dst)
/*  5205*/          0, /*End of Scope*/
/*  5206*/        /*Scope*/ 34, /*->5241*/
/*  5207*/          OPC_CheckChild3Integer, 4, 
/*  5209*/          OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/*  5211*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  5214*/          OPC_EmitMergeInputChains1_0,
/*  5215*/          OPC_EmitNode1, TARGET_VAL(PPC::XSCVQPSWZ), 0|OPFL_Chain,
                        MVT::f128, 1/*#Ops*/, 1,  // Results = #5
/*  5222*/          OPC_EmitInteger, MVT::i32, PPC::VFRCRegClassID,
/*  5225*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::f64, 2/*#Ops*/, 5, 6,  // Results = #7
/*  5233*/          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)
/*  5241*/        /*Scope*/ 34, /*->5276*/
/*  5242*/          OPC_CheckChild3Integer, 2, 
/*  5244*/          OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/*  5246*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  5249*/          OPC_EmitMergeInputChains1_0,
/*  5250*/          OPC_EmitNode1, TARGET_VAL(PPC::XSCVQPSWZ), 0|OPFL_Chain,
                        MVT::f128, 1/*#Ops*/, 1,  // Results = #5
/*  5257*/          OPC_EmitInteger, MVT::i32, PPC::VFRCRegClassID,
/*  5260*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::f64, 2/*#Ops*/, 5, 6,  // Results = #7
/*  5268*/          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)
/*  5276*/        /*Scope*/ 34, /*->5311*/
/*  5277*/          OPC_CheckChild3Integer, 1, 
/*  5279*/          OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/*  5281*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  5284*/          OPC_EmitMergeInputChains1_0,
/*  5285*/          OPC_EmitNode1, TARGET_VAL(PPC::XSCVQPSWZ), 0|OPFL_Chain,
                        MVT::f128, 1/*#Ops*/, 1,  // Results = #5
/*  5292*/          OPC_EmitInteger, MVT::i32, PPC::VFRCRegClassID,
/*  5295*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::f64, 2/*#Ops*/, 5, 6,  // Results = #7
/*  5303*/          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)
/*  5311*/        0, /*End of Scope*/
/*  5312*/      0, /*End of Scope*/
/*  5313*/    /*SwitchOpcode*/ 80|128,2/*336*/, TARGET_VAL(PPCISD::FP_TO_UINT_IN_VSR),// ->5653
/*  5317*/      OPC_RecordChild0, // #1 = $src
/*  5318*/      OPC_Scope, 21|128,1/*149*/, /*->5470*/ // 2 children in Scope
/*  5321*/        OPC_CheckChild0Type, MVT::f64,
/*  5323*/        OPC_MoveParent,
/*  5324*/        OPC_RecordChild2, // #2 = $dst
/*  5325*/        OPC_Scope, 23, /*->5350*/ // 4 children in Scope
/*  5327*/          OPC_CheckChild3Integer, 4, 
/*  5329*/          OPC_CheckPatternPredicate, 10, // (PPCSubTarget->hasP8Vector())
/*  5331*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  5334*/          OPC_EmitMergeInputChains1_0,
/*  5335*/          OPC_EmitNode1, TARGET_VAL(PPC::XSCVDPUXWS), 0,
                        MVT::f64, 1/*#Ops*/, 1,  // Results = #5
/*  5342*/          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)
/*  5350*/        /*Scope*/ 70, /*->5421*/
/*  5351*/          OPC_CheckChild3Integer, 8, 
/*  5353*/          OPC_Scope, 21, /*->5376*/ // 3 children in Scope
/*  5355*/            OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/*  5357*/            OPC_CheckComplexPat, /*CP*/1, /*#*/2, // SelectAddrImmX4:$dst #3 #4
/*  5360*/            OPC_EmitMergeInputChains1_0,
/*  5361*/            OPC_EmitNode1, TARGET_VAL(PPC::XSCVDPUXDS), 0,
                          MVT::f64, 1/*#Ops*/, 1,  // Results = #5
/*  5368*/            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), iaddrX4:{ *:[iPTR] }:$dst, 8:{ *:[iPTR] }) - Complexity = 420
                      // Dst: (STXSD (XSCVDPUXDS:{ *:[f64] } f64:{ *:[f64] }:$src), iaddrX4:{ *:[iPTR] }:$dst)
/*  5376*/          /*Scope*/ 21, /*->5398*/
/*  5377*/            OPC_CheckPatternPredicate, 14, // (!PPCSubTarget->hasP9Vector())
/*  5379*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  5382*/            OPC_EmitMergeInputChains1_0,
/*  5383*/            OPC_EmitNode1, TARGET_VAL(PPC::XSCVDPUXDS), 0,
                          MVT::f64, 1/*#Ops*/, 1,  // Results = #5
/*  5390*/            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)
/*  5398*/          /*Scope*/ 21, /*->5420*/
/*  5399*/            OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/*  5401*/            OPC_CheckComplexPat, /*CP*/2, /*#*/2, // SelectAddrIdxX4:$dst #3 #4
/*  5404*/            OPC_EmitMergeInputChains1_0,
/*  5405*/            OPC_EmitNode1, TARGET_VAL(PPC::XSCVDPUXDS), 0,
                          MVT::f64, 1/*#Ops*/, 1,  // Results = #5
/*  5412*/            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), xaddrX4:{ *:[iPTR] }:$dst, 8:{ *:[iPTR] }) - Complexity = 420
                      // Dst: (STXSDX (XSCVDPUXDS:{ *:[f64] } f64:{ *:[f64] }:$src), xaddrX4:{ *:[iPTR] }:$dst)
/*  5420*/          0, /*End of Scope*/
/*  5421*/        /*Scope*/ 23, /*->5445*/
/*  5422*/          OPC_CheckChild3Integer, 2, 
/*  5424*/          OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/*  5426*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  5429*/          OPC_EmitMergeInputChains1_0,
/*  5430*/          OPC_EmitNode1, TARGET_VAL(PPC::XSCVDPUXWS), 0,
                        MVT::f64, 1/*#Ops*/, 1,  // Results = #5
/*  5437*/          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)
/*  5445*/        /*Scope*/ 23, /*->5469*/
/*  5446*/          OPC_CheckChild3Integer, 1, 
/*  5448*/          OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/*  5450*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  5453*/          OPC_EmitMergeInputChains1_0,
/*  5454*/          OPC_EmitNode1, TARGET_VAL(PPC::XSCVDPUXWS), 0,
                        MVT::f64, 1/*#Ops*/, 1,  // Results = #5
/*  5461*/          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)
/*  5469*/        0, /*End of Scope*/
/*  5470*/      /*Scope*/ 52|128,1/*180*/, /*->5652*/
/*  5472*/        OPC_CheckChild0Type, MVT::f128,
/*  5474*/        OPC_MoveParent,
/*  5475*/        OPC_RecordChild2, // #2 = $dst
/*  5476*/        OPC_Scope, 68, /*->5546*/ // 4 children in Scope
/*  5478*/          OPC_CheckChild3Integer, 8, 
/*  5480*/          OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/*  5482*/          OPC_Scope, 30, /*->5514*/ // 2 children in Scope
/*  5484*/            OPC_CheckComplexPat, /*CP*/1, /*#*/2, // SelectAddrImmX4:$dst #3 #4
/*  5487*/            OPC_EmitMergeInputChains1_0,
/*  5488*/            OPC_EmitNode1, TARGET_VAL(PPC::XSCVQPUDZ), 0|OPFL_Chain,
                          MVT::f128, 1/*#Ops*/, 1,  // Results = #5
/*  5495*/            OPC_EmitInteger, MVT::i32, PPC::VFRCRegClassID,
/*  5498*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::f64, 2/*#Ops*/, 5, 6,  // Results = #7
/*  5506*/            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), iaddrX4:{ *:[iPTR] }:$dst, 8:{ *:[iPTR] }) - Complexity = 420
                      // Dst: (STXSD (COPY_TO_REGCLASS:{ *:[f64] } (XSCVQPUDZ:{ *:[f128] } f128:{ *:[f128] }:$src), VFRC:{ *:[i32] }), iaddrX4:{ *:[iPTR] }:$dst)
/*  5514*/          /*Scope*/ 30, /*->5545*/
/*  5515*/            OPC_CheckComplexPat, /*CP*/2, /*#*/2, // SelectAddrIdxX4:$dst #3 #4
/*  5518*/            OPC_EmitMergeInputChains1_0,
/*  5519*/            OPC_EmitNode1, TARGET_VAL(PPC::XSCVQPUDZ), 0|OPFL_Chain,
                          MVT::f128, 1/*#Ops*/, 1,  // Results = #5
/*  5526*/            OPC_EmitInteger, MVT::i32, PPC::VFRCRegClassID,
/*  5529*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::f64, 2/*#Ops*/, 5, 6,  // Results = #7
/*  5537*/            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), xaddrX4:{ *:[iPTR] }:$dst, 8:{ *:[iPTR] }) - Complexity = 420
                      // Dst: (STXSDX (COPY_TO_REGCLASS:{ *:[f64] } (XSCVQPUDZ:{ *:[f128] } f128:{ *:[f128] }:$src), VFRC:{ *:[i32] }), xaddrX4:{ *:[iPTR] }:$dst)
/*  5545*/          0, /*End of Scope*/
/*  5546*/        /*Scope*/ 34, /*->5581*/
/*  5547*/          OPC_CheckChild3Integer, 4, 
/*  5549*/          OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/*  5551*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  5554*/          OPC_EmitMergeInputChains1_0,
/*  5555*/          OPC_EmitNode1, TARGET_VAL(PPC::XSCVQPUWZ), 0|OPFL_Chain,
                        MVT::f128, 1/*#Ops*/, 1,  // Results = #5
/*  5562*/          OPC_EmitInteger, MVT::i32, PPC::VFRCRegClassID,
/*  5565*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::f64, 2/*#Ops*/, 5, 6,  // Results = #7
/*  5573*/          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)
/*  5581*/        /*Scope*/ 34, /*->5616*/
/*  5582*/          OPC_CheckChild3Integer, 2, 
/*  5584*/          OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/*  5586*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  5589*/          OPC_EmitMergeInputChains1_0,
/*  5590*/          OPC_EmitNode1, TARGET_VAL(PPC::XSCVQPUWZ), 0|OPFL_Chain,
                        MVT::f128, 1/*#Ops*/, 1,  // Results = #5
/*  5597*/          OPC_EmitInteger, MVT::i32, PPC::VFRCRegClassID,
/*  5600*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::f64, 2/*#Ops*/, 5, 6,  // Results = #7
/*  5608*/          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)
/*  5616*/        /*Scope*/ 34, /*->5651*/
/*  5617*/          OPC_CheckChild3Integer, 1, 
/*  5619*/          OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/*  5621*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  5624*/          OPC_EmitMergeInputChains1_0,
/*  5625*/          OPC_EmitNode1, TARGET_VAL(PPC::XSCVQPUWZ), 0|OPFL_Chain,
                        MVT::f128, 1/*#Ops*/, 1,  // Results = #5
/*  5632*/          OPC_EmitInteger, MVT::i32, PPC::VFRCRegClassID,
/*  5635*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::f64, 2/*#Ops*/, 5, 6,  // Results = #7
/*  5643*/          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)
/*  5651*/        0, /*End of Scope*/
/*  5652*/      0, /*End of Scope*/
/*  5653*/    0, // EndSwitchOpcode
/*  5654*/  /*SwitchOpcode*/ 25|128,8/*1049*/, TARGET_VAL(ISD::INTRINSIC_VOID),// ->6707
/*  5658*/    OPC_RecordNode, // #0 = 'intrinsic_void' chained node
/*  5659*/    OPC_Scope, 53, /*->5714*/ // 43 children in Scope
/*  5661*/      OPC_CheckChild1Integer, 63|128,46/*5951*/, 
/*  5664*/      OPC_RecordChild2, // #1 = $rS
/*  5665*/      OPC_RecordChild3, // #2 = $dst
/*  5666*/      OPC_Scope, 14, /*->5682*/ // 2 children in Scope
/*  5668*/        OPC_CheckPatternPredicate, 15, // (!PPCSubTarget->hasP9Vector()) && (PPCSubTarget->hasVSX())
/*  5670*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  5673*/        OPC_EmitMergeInputChains1_0,
/*  5674*/        OPC_MorphNodeTo0, TARGET_VAL(PPC::STXVD2X), 0|OPFL_Chain,
                      3/*#Ops*/, 1, 3, 4, 
                  // Src: (intrinsic_void 5951:{ *:[iPTR] }, v2f64:{ *:[v2f64] }:$rS, xoaddr:{ *:[iPTR] }:$dst) - Complexity = 417
                  // Dst: (STXVD2X ?:{ *:[v2f64] }:$rS, xoaddr:{ *:[iPTR] }:$dst)
/*  5682*/      /*Scope*/ 30, /*->5713*/
/*  5683*/        OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/*  5685*/        OPC_Scope, 12, /*->5699*/ // 2 children in Scope
/*  5687*/          OPC_CheckComplexPat, /*CP*/4, /*#*/2, // SelectAddrImmX16:$dst #3 #4
/*  5690*/          OPC_EmitMergeInputChains1_0,
/*  5691*/          OPC_MorphNodeTo0, TARGET_VAL(PPC::STXV), 0|OPFL_Chain,
                        3/*#Ops*/, 1, 3, 4, 
                    // Src: (intrinsic_void 5951:{ *:[iPTR] }, v2f64:{ *:[v2f64] }:$rS, iaddrX16:{ *:[iPTR] }:$dst) - Complexity = 417
                    // Dst: (STXV ?:{ *:[v2f64] }:$rS, memrix16:{ *:[iPTR] }:$dst)
/*  5699*/        /*Scope*/ 12, /*->5712*/
/*  5700*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  5703*/          OPC_EmitMergeInputChains1_0,
/*  5704*/          OPC_MorphNodeTo0, TARGET_VAL(PPC::STXVX), 0|OPFL_Chain,
                        3/*#Ops*/, 1, 3, 4, 
                    // Src: (intrinsic_void 5951:{ *:[iPTR] }, v2f64:{ *:[v2f64] }:$rS, xoaddr:{ *:[iPTR] }:$dst) - Complexity = 417
                    // Dst: (STXVX ?:{ *:[v2f64] }:$rS, xoaddr:{ *:[iPTR] }:$dst)
/*  5712*/        0, /*End of Scope*/
/*  5713*/      0, /*End of Scope*/
/*  5714*/    /*Scope*/ 53, /*->5768*/
/*  5715*/      OPC_CheckChild1Integer, 67|128,46/*5955*/, 
/*  5718*/      OPC_RecordChild2, // #1 = $rS
/*  5719*/      OPC_RecordChild3, // #2 = $dst
/*  5720*/      OPC_Scope, 14, /*->5736*/ // 2 children in Scope
/*  5722*/        OPC_CheckPatternPredicate, 6, // (!PPCSubTarget->hasP9Vector()) && (PPCSubTarget->hasVSX()) && (!PPCSubTarget->isLittleEndian())
/*  5724*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  5727*/        OPC_EmitMergeInputChains1_0,
/*  5728*/        OPC_MorphNodeTo0, TARGET_VAL(PPC::STXVW4X), 0|OPFL_Chain,
                      3/*#Ops*/, 1, 3, 4, 
                  // Src: (intrinsic_void 5955:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$rS, xoaddr:{ *:[iPTR] }:$dst) - Complexity = 417
                  // Dst: (STXVW4X ?:{ *:[v4i32] }:$rS, xoaddr:{ *:[iPTR] }:$dst)
/*  5736*/      /*Scope*/ 30, /*->5767*/
/*  5737*/        OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/*  5739*/        OPC_Scope, 12, /*->5753*/ // 2 children in Scope
/*  5741*/          OPC_CheckComplexPat, /*CP*/4, /*#*/2, // SelectAddrImmX16:$dst #3 #4
/*  5744*/          OPC_EmitMergeInputChains1_0,
/*  5745*/          OPC_MorphNodeTo0, TARGET_VAL(PPC::STXV), 0|OPFL_Chain,
                        3/*#Ops*/, 1, 3, 4, 
                    // Src: (intrinsic_void 5955:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$rS, iaddrX16:{ *:[iPTR] }:$dst) - Complexity = 417
                    // Dst: (STXV ?:{ *:[v4i32] }:$rS, memrix16:{ *:[iPTR] }:$dst)
/*  5753*/        /*Scope*/ 12, /*->5766*/
/*  5754*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  5757*/          OPC_EmitMergeInputChains1_0,
/*  5758*/          OPC_MorphNodeTo0, TARGET_VAL(PPC::STXVX), 0|OPFL_Chain,
                        3/*#Ops*/, 1, 3, 4, 
                    // Src: (intrinsic_void 5955:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$rS, xoaddr:{ *:[iPTR] }:$dst) - Complexity = 417
                    // Dst: (STXVX ?:{ *:[v4i32] }:$rS, xoaddr:{ *:[iPTR] }:$dst)
/*  5766*/        0, /*End of Scope*/
/*  5767*/      0, /*End of Scope*/
/*  5768*/    /*Scope*/ 17, /*->5786*/
/*  5769*/      OPC_CheckChild1Integer, 64|128,46/*5952*/, 
/*  5772*/      OPC_RecordChild2, // #1 = $rS
/*  5773*/      OPC_RecordChild3, // #2 = $dst
/*  5774*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  5777*/      OPC_EmitMergeInputChains1_0,
/*  5778*/      OPC_MorphNodeTo0, TARGET_VAL(PPC::STXVD2X), 0|OPFL_Chain,
                    3/*#Ops*/, 1, 3, 4, 
                // Src: (intrinsic_void 5952:{ *:[iPTR] }, v2f64:{ *:[v2f64] }:$rS, xoaddr:{ *:[iPTR] }:$dst) - Complexity = 417
                // Dst: (STXVD2X ?:{ *:[v2f64] }:$rS, xoaddr:{ *:[iPTR] }:$dst)
/*  5786*/    /*Scope*/ 17, /*->5804*/
/*  5787*/      OPC_CheckChild1Integer, 68|128,46/*5956*/, 
/*  5790*/      OPC_RecordChild2, // #1 = $rS
/*  5791*/      OPC_RecordChild3, // #2 = $dst
/*  5792*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  5795*/      OPC_EmitMergeInputChains1_0,
/*  5796*/      OPC_MorphNodeTo0, TARGET_VAL(PPC::STXVW4X), 0|OPFL_Chain,
                    3/*#Ops*/, 1, 3, 4, 
                // Src: (intrinsic_void 5956:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$rS, xoaddr:{ *:[iPTR] }:$dst) - Complexity = 417
                // Dst: (STXVW4X ?:{ *:[v4i32] }:$rS, xoaddr:{ *:[iPTR] }:$dst)
/*  5804*/    /*Scope*/ 20, /*->5825*/
/*  5805*/      OPC_CheckChild1Integer, 65|128,46/*5953*/, 
/*  5808*/      OPC_RecordChild2, // #1 = $XT
/*  5809*/      OPC_RecordChild3, // #2 = $dst
/*  5810*/      OPC_RecordChild4, // #3 = $rB
/*  5811*/      OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/*  5813*/      OPC_CheckComplexPat, /*CP*/8, /*#*/2, // SelectAddr:$dst #4
/*  5816*/      OPC_EmitMergeInputChains1_0,
/*  5817*/      OPC_MorphNodeTo0, TARGET_VAL(PPC::STXVL), 0|OPFL_Chain,
                    3/*#Ops*/, 1, 4, 3, 
                // Src: (intrinsic_void 5953:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$XT, addr:{ *:[iPTR] }:$dst, i64:{ *:[i64] }:$rB) - Complexity = 414
                // Dst: (STXVL v4i32:{ *:[v4i32] }:$XT, addr:{ *:[iPTR] }:$dst, i64:{ *:[i64] }:$rB)
/*  5825*/    /*Scope*/ 20, /*->5846*/
/*  5826*/      OPC_CheckChild1Integer, 66|128,46/*5954*/, 
/*  5829*/      OPC_RecordChild2, // #1 = $XT
/*  5830*/      OPC_RecordChild3, // #2 = $dst
/*  5831*/      OPC_RecordChild4, // #3 = $rB
/*  5832*/      OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/*  5834*/      OPC_CheckComplexPat, /*CP*/8, /*#*/2, // SelectAddr:$dst #4
/*  5837*/      OPC_EmitMergeInputChains1_0,
/*  5838*/      OPC_MorphNodeTo0, TARGET_VAL(PPC::STXVLL), 0|OPFL_Chain,
                    3/*#Ops*/, 1, 4, 3, 
                // Src: (intrinsic_void 5954:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$XT, addr:{ *:[iPTR] }:$dst, i64:{ *:[i64] }:$rB) - Complexity = 414
                // Dst: (STXVLL v4i32:{ *:[v4i32] }:$XT, addr:{ *:[iPTR] }:$dst, i64:{ *:[i64] }:$rB)
/*  5846*/    /*Scope*/ 15, /*->5862*/
/*  5847*/      OPC_CheckChild1Integer, 54|128,45/*5814*/, 
/*  5850*/      OPC_RecordChild2, // #1 = $dst
/*  5851*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$dst #2 #3
/*  5854*/      OPC_EmitMergeInputChains1_0,
/*  5855*/      OPC_MorphNodeTo0, TARGET_VAL(PPC::DCBA), 0|OPFL_Chain,
                    2/*#Ops*/, 2, 3, 
                // Src: (intrinsic_void 5814:{ *:[iPTR] }, xoaddr:{ *:[iPTR] }:$dst) - Complexity = 17
                // Dst: (DCBA xoaddr:{ *:[iPTR] }:$dst)
/*  5862*/    /*Scope*/ 15, /*->5878*/
/*  5863*/      OPC_CheckChild1Integer, 56|128,45/*5816*/, 
/*  5866*/      OPC_RecordChild2, // #1 = $dst
/*  5867*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$dst #2 #3
/*  5870*/      OPC_EmitMergeInputChains1_0,
/*  5871*/      OPC_MorphNodeTo0, TARGET_VAL(PPC::DCBI), 0|OPFL_Chain,
                    2/*#Ops*/, 2, 3, 
                // Src: (intrinsic_void 5816:{ *:[iPTR] }, xoaddr:{ *:[iPTR] }:$dst) - Complexity = 17
                // Dst: (DCBI xoaddr:{ *:[iPTR] }:$dst)
/*  5878*/    /*Scope*/ 15, /*->5894*/
/*  5879*/      OPC_CheckChild1Integer, 57|128,45/*5817*/, 
/*  5882*/      OPC_RecordChild2, // #1 = $dst
/*  5883*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$dst #2 #3
/*  5886*/      OPC_EmitMergeInputChains1_0,
/*  5887*/      OPC_MorphNodeTo0, TARGET_VAL(PPC::DCBST), 0|OPFL_Chain,
                    2/*#Ops*/, 2, 3, 
                // Src: (intrinsic_void 5817:{ *:[iPTR] }, xoaddr:{ *:[iPTR] }:$dst) - Complexity = 17
                // Dst: (DCBST xoaddr:{ *:[iPTR] }:$dst)
/*  5894*/    /*Scope*/ 15, /*->5910*/
/*  5895*/      OPC_CheckChild1Integer, 60|128,45/*5820*/, 
/*  5898*/      OPC_RecordChild2, // #1 = $dst
/*  5899*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$dst #2 #3
/*  5902*/      OPC_EmitMergeInputChains1_0,
/*  5903*/      OPC_MorphNodeTo0, TARGET_VAL(PPC::DCBZ), 0|OPFL_Chain,
                    2/*#Ops*/, 2, 3, 
                // Src: (intrinsic_void 5820:{ *:[iPTR] }, xoaddr:{ *:[iPTR] }:$dst) - Complexity = 17
                // Dst: (DCBZ xoaddr:{ *:[iPTR] }:$dst)
/*  5910*/    /*Scope*/ 15, /*->5926*/
/*  5911*/      OPC_CheckChild1Integer, 61|128,45/*5821*/, 
/*  5914*/      OPC_RecordChild2, // #1 = $dst
/*  5915*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$dst #2 #3
/*  5918*/      OPC_EmitMergeInputChains1_0,
/*  5919*/      OPC_MorphNodeTo0, TARGET_VAL(PPC::DCBZL), 0|OPFL_Chain,
                    2/*#Ops*/, 2, 3, 
                // Src: (intrinsic_void 5821:{ *:[iPTR] }, xoaddr:{ *:[iPTR] }:$dst) - Complexity = 17
                // Dst: (DCBZL xoaddr:{ *:[iPTR] }:$dst)
/*  5926*/    /*Scope*/ 19, /*->5946*/
/*  5927*/      OPC_CheckChild1Integer, 58|128,45/*5818*/, 
/*  5930*/      OPC_RecordChild2, // #1 = $dst
/*  5931*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$dst #2 #3
/*  5934*/      OPC_EmitMergeInputChains1_0,
/*  5935*/      OPC_EmitInteger, MVT::i32, 0, 
/*  5938*/      OPC_MorphNodeTo0, TARGET_VAL(PPC::DCBT), 0|OPFL_Chain,
                    3/*#Ops*/, 4, 2, 3, 
                // Src: (intrinsic_void 5818:{ *:[iPTR] }, xoaddr:{ *:[iPTR] }:$dst) - Complexity = 17
                // Dst: (DCBT 0:{ *:[i32] }, xoaddr:{ *:[iPTR] }:$dst)
/*  5946*/    /*Scope*/ 19, /*->5966*/
/*  5947*/      OPC_CheckChild1Integer, 59|128,45/*5819*/, 
/*  5950*/      OPC_RecordChild2, // #1 = $dst
/*  5951*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$dst #2 #3
/*  5954*/      OPC_EmitMergeInputChains1_0,
/*  5955*/      OPC_EmitInteger, MVT::i32, 0, 
/*  5958*/      OPC_MorphNodeTo0, TARGET_VAL(PPC::DCBTST), 0|OPFL_Chain,
                    3/*#Ops*/, 4, 2, 3, 
                // Src: (intrinsic_void 5819:{ *:[iPTR] }, xoaddr:{ *:[iPTR] }:$dst) - Complexity = 17
                // Dst: (DCBTST 0:{ *:[i32] }, xoaddr:{ *:[iPTR] }:$dst)
/*  5966*/    /*Scope*/ 19, /*->5986*/
/*  5967*/      OPC_CheckChild1Integer, 55|128,45/*5815*/, 
/*  5970*/      OPC_RecordChild2, // #1 = $dst
/*  5971*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$dst #2 #3
/*  5974*/      OPC_EmitMergeInputChains1_0,
/*  5975*/      OPC_EmitInteger, MVT::i32, 0, 
/*  5978*/      OPC_MorphNodeTo0, TARGET_VAL(PPC::DCBF), 0|OPFL_Chain,
                    3/*#Ops*/, 4, 2, 3, 
                // Src: (intrinsic_void 5815:{ *:[iPTR] }, xoaddr:{ *:[iPTR] }:$dst) - Complexity = 17
                // Dst: (DCBF 0:{ *:[i32] }, xoaddr:{ *:[iPTR] }:$dst)
/*  5986*/    /*Scope*/ 19, /*->6006*/
/*  5987*/      OPC_CheckChild1Integer, 122|128,43/*5626*/, 
/*  5990*/      OPC_RecordChild2, // #1 = $rS
/*  5991*/      OPC_RecordChild3, // #2 = $dst
/*  5992*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/*  5994*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  5997*/      OPC_EmitMergeInputChains1_0,
/*  5998*/      OPC_MorphNodeTo0, TARGET_VAL(PPC::STVEBX), 0|OPFL_Chain,
                    3/*#Ops*/, 1, 3, 4, 
                // Src: (intrinsic_void 5626:{ *:[iPTR] }, v16i8:{ *:[v16i8] }:$rS, xoaddr:{ *:[iPTR] }:$dst) - Complexity = 17
                // Dst: (STVEBX v16i8:{ *:[v16i8] }:$rS, xoaddr:{ *:[iPTR] }:$dst)
/*  6006*/    /*Scope*/ 19, /*->6026*/
/*  6007*/      OPC_CheckChild1Integer, 123|128,43/*5627*/, 
/*  6010*/      OPC_RecordChild2, // #1 = $rS
/*  6011*/      OPC_RecordChild3, // #2 = $dst
/*  6012*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/*  6014*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  6017*/      OPC_EmitMergeInputChains1_0,
/*  6018*/      OPC_MorphNodeTo0, TARGET_VAL(PPC::STVEHX), 0|OPFL_Chain,
                    3/*#Ops*/, 1, 3, 4, 
                // Src: (intrinsic_void 5627:{ *:[iPTR] }, v8i16:{ *:[v8i16] }:$rS, xoaddr:{ *:[iPTR] }:$dst) - Complexity = 17
                // Dst: (STVEHX v8i16:{ *:[v8i16] }:$rS, xoaddr:{ *:[iPTR] }:$dst)
/*  6026*/    /*Scope*/ 19, /*->6046*/
/*  6027*/      OPC_CheckChild1Integer, 124|128,43/*5628*/, 
/*  6030*/      OPC_RecordChild2, // #1 = $rS
/*  6031*/      OPC_RecordChild3, // #2 = $dst
/*  6032*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/*  6034*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  6037*/      OPC_EmitMergeInputChains1_0,
/*  6038*/      OPC_MorphNodeTo0, TARGET_VAL(PPC::STVEWX), 0|OPFL_Chain,
                    3/*#Ops*/, 1, 3, 4, 
                // Src: (intrinsic_void 5628:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$rS, xoaddr:{ *:[iPTR] }:$dst) - Complexity = 17
                // Dst: (STVEWX v4i32:{ *:[v4i32] }:$rS, xoaddr:{ *:[iPTR] }:$dst)
/*  6046*/    /*Scope*/ 19, /*->6066*/
/*  6047*/      OPC_CheckChild1Integer, 125|128,43/*5629*/, 
/*  6050*/      OPC_RecordChild2, // #1 = $rS
/*  6051*/      OPC_RecordChild3, // #2 = $dst
/*  6052*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/*  6054*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  6057*/      OPC_EmitMergeInputChains1_0,
/*  6058*/      OPC_MorphNodeTo0, TARGET_VAL(PPC::STVX), 0|OPFL_Chain,
                    3/*#Ops*/, 1, 3, 4, 
                // Src: (intrinsic_void 5629:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$rS, xoaddr:{ *:[iPTR] }:$dst) - Complexity = 17
                // Dst: (STVX v4i32:{ *:[v4i32] }:$rS, xoaddr:{ *:[iPTR] }:$dst)
/*  6066*/    /*Scope*/ 19, /*->6086*/
/*  6067*/      OPC_CheckChild1Integer, 126|128,43/*5630*/, 
/*  6070*/      OPC_RecordChild2, // #1 = $rS
/*  6071*/      OPC_RecordChild3, // #2 = $dst
/*  6072*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/*  6074*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  6077*/      OPC_EmitMergeInputChains1_0,
/*  6078*/      OPC_MorphNodeTo0, TARGET_VAL(PPC::STVXL), 0|OPFL_Chain,
                    3/*#Ops*/, 1, 3, 4, 
                // Src: (intrinsic_void 5630:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$rS, xoaddr:{ *:[iPTR] }:$dst) - Complexity = 17
                // Dst: (STVXL v4i32:{ *:[v4i32] }:$rS, xoaddr:{ *:[iPTR] }:$dst)
/*  6086*/    /*Scope*/ 19, /*->6106*/
/*  6087*/      OPC_CheckChild1Integer, 25|128,46/*5913*/, 
/*  6090*/      OPC_RecordChild2, // #1 = $T
/*  6091*/      OPC_RecordChild3, // #2 = $dst
/*  6092*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/*  6094*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  6097*/      OPC_EmitMergeInputChains1_0,
/*  6098*/      OPC_MorphNodeTo0, TARGET_VAL(PPC::QVSTFDX), 0|OPFL_Chain,
                    3/*#Ops*/, 1, 3, 4, 
                // Src: (intrinsic_void 5913:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$T, xoaddr:{ *:[iPTR] }:$dst) - Complexity = 17
                // Dst: (QVSTFDX ?:{ *:[v4f64] }:$T, xoaddr:{ *:[iPTR] }:$dst)
/*  6106*/    /*Scope*/ 19, /*->6126*/
/*  6107*/      OPC_CheckChild1Integer, 29|128,46/*5917*/, 
/*  6110*/      OPC_RecordChild2, // #1 = $T
/*  6111*/      OPC_RecordChild3, // #2 = $dst
/*  6112*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/*  6114*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  6117*/      OPC_EmitMergeInputChains1_0,
/*  6118*/      OPC_MorphNodeTo0, TARGET_VAL(PPC::QVSTFSX), 0|OPFL_Chain,
                    3/*#Ops*/, 1, 3, 4, 
                // Src: (intrinsic_void 5917:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$T, xoaddr:{ *:[iPTR] }:$dst) - Complexity = 17
                // Dst: (QVSTFSX ?:{ *:[v4f64] }:$T, xoaddr:{ *:[iPTR] }:$dst)
/*  6126*/    /*Scope*/ 19, /*->6146*/
/*  6127*/      OPC_CheckChild1Integer, 22|128,46/*5910*/, 
/*  6130*/      OPC_RecordChild2, // #1 = $T
/*  6131*/      OPC_RecordChild3, // #2 = $dst
/*  6132*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/*  6134*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  6137*/      OPC_EmitMergeInputChains1_0,
/*  6138*/      OPC_MorphNodeTo0, TARGET_VAL(PPC::QVSTFCDXA), 0|OPFL_Chain,
                    3/*#Ops*/, 1, 3, 4, 
                // Src: (intrinsic_void 5910:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$T, xoaddr:{ *:[iPTR] }:$dst) - Complexity = 17
                // Dst: (QVSTFCDXA ?:{ *:[v4f64] }:$T, xoaddr:{ *:[iPTR] }:$dst)
/*  6146*/    /*Scope*/ 19, /*->6166*/
/*  6147*/      OPC_CheckChild1Integer, 21|128,46/*5909*/, 
/*  6150*/      OPC_RecordChild2, // #1 = $T
/*  6151*/      OPC_RecordChild3, // #2 = $dst
/*  6152*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/*  6154*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  6157*/      OPC_EmitMergeInputChains1_0,
/*  6158*/      OPC_MorphNodeTo0, TARGET_VAL(PPC::QVSTFCDX), 0|OPFL_Chain,
                    3/*#Ops*/, 1, 3, 4, 
                // Src: (intrinsic_void 5909:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$T, xoaddr:{ *:[iPTR] }:$dst) - Complexity = 17
                // Dst: (QVSTFCDX ?:{ *:[v4f64] }:$T, xoaddr:{ *:[iPTR] }:$dst)
/*  6166*/    /*Scope*/ 19, /*->6186*/
/*  6167*/      OPC_CheckChild1Integer, 24|128,46/*5912*/, 
/*  6170*/      OPC_RecordChild2, // #1 = $T
/*  6171*/      OPC_RecordChild3, // #2 = $dst
/*  6172*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/*  6174*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  6177*/      OPC_EmitMergeInputChains1_0,
/*  6178*/      OPC_MorphNodeTo0, TARGET_VAL(PPC::QVSTFCSXA), 0|OPFL_Chain,
                    3/*#Ops*/, 1, 3, 4, 
                // Src: (intrinsic_void 5912:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$T, xoaddr:{ *:[iPTR] }:$dst) - Complexity = 17
                // Dst: (QVSTFCSXA ?:{ *:[v4f64] }:$T, xoaddr:{ *:[iPTR] }:$dst)
/*  6186*/    /*Scope*/ 19, /*->6206*/
/*  6187*/      OPC_CheckChild1Integer, 23|128,46/*5911*/, 
/*  6190*/      OPC_RecordChild2, // #1 = $T
/*  6191*/      OPC_RecordChild3, // #2 = $dst
/*  6192*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/*  6194*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  6197*/      OPC_EmitMergeInputChains1_0,
/*  6198*/      OPC_MorphNodeTo0, TARGET_VAL(PPC::QVSTFCSX), 0|OPFL_Chain,
                    3/*#Ops*/, 1, 3, 4, 
                // Src: (intrinsic_void 5911:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$T, xoaddr:{ *:[iPTR] }:$dst) - Complexity = 17
                // Dst: (QVSTFCSX ?:{ *:[v4f64] }:$T, xoaddr:{ *:[iPTR] }:$dst)
/*  6206*/    /*Scope*/ 19, /*->6226*/
/*  6207*/      OPC_CheckChild1Integer, 26|128,46/*5914*/, 
/*  6210*/      OPC_RecordChild2, // #1 = $T
/*  6211*/      OPC_RecordChild3, // #2 = $dst
/*  6212*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/*  6214*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  6217*/      OPC_EmitMergeInputChains1_0,
/*  6218*/      OPC_MorphNodeTo0, TARGET_VAL(PPC::QVSTFDXA), 0|OPFL_Chain,
                    3/*#Ops*/, 1, 3, 4, 
                // Src: (intrinsic_void 5914:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$T, xoaddr:{ *:[iPTR] }:$dst) - Complexity = 17
                // Dst: (QVSTFDXA ?:{ *:[v4f64] }:$T, xoaddr:{ *:[iPTR] }:$dst)
/*  6226*/    /*Scope*/ 19, /*->6246*/
/*  6227*/      OPC_CheckChild1Integer, 28|128,46/*5916*/, 
/*  6230*/      OPC_RecordChild2, // #1 = $T
/*  6231*/      OPC_RecordChild3, // #2 = $dst
/*  6232*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/*  6234*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  6237*/      OPC_EmitMergeInputChains1_0,
/*  6238*/      OPC_MorphNodeTo0, TARGET_VAL(PPC::QVSTFIWXA), 0|OPFL_Chain,
                    3/*#Ops*/, 1, 3, 4, 
                // Src: (intrinsic_void 5916:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$T, xoaddr:{ *:[iPTR] }:$dst) - Complexity = 17
                // Dst: (QVSTFIWXA ?:{ *:[v4f64] }:$T, xoaddr:{ *:[iPTR] }:$dst)
/*  6246*/    /*Scope*/ 19, /*->6266*/
/*  6247*/      OPC_CheckChild1Integer, 27|128,46/*5915*/, 
/*  6250*/      OPC_RecordChild2, // #1 = $T
/*  6251*/      OPC_RecordChild3, // #2 = $dst
/*  6252*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/*  6254*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  6257*/      OPC_EmitMergeInputChains1_0,
/*  6258*/      OPC_MorphNodeTo0, TARGET_VAL(PPC::QVSTFIWX), 0|OPFL_Chain,
                    3/*#Ops*/, 1, 3, 4, 
                // Src: (intrinsic_void 5915:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$T, xoaddr:{ *:[iPTR] }:$dst) - Complexity = 17
                // Dst: (QVSTFIWX ?:{ *:[v4f64] }:$T, xoaddr:{ *:[iPTR] }:$dst)
/*  6266*/    /*Scope*/ 19, /*->6286*/
/*  6267*/      OPC_CheckChild1Integer, 30|128,46/*5918*/, 
/*  6270*/      OPC_RecordChild2, // #1 = $T
/*  6271*/      OPC_RecordChild3, // #2 = $dst
/*  6272*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/*  6274*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  6277*/      OPC_EmitMergeInputChains1_0,
/*  6278*/      OPC_MorphNodeTo0, TARGET_VAL(PPC::QVSTFSXA), 0|OPFL_Chain,
                    3/*#Ops*/, 1, 3, 4, 
                // Src: (intrinsic_void 5918:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$T, xoaddr:{ *:[iPTR] }:$dst) - Complexity = 17
                // Dst: (QVSTFSXA ?:{ *:[v4f64] }:$T, xoaddr:{ *:[iPTR] }:$dst)
/*  6286*/    /*Scope*/ 20, /*->6307*/
/*  6287*/      OPC_CheckChild1Integer, 107|128,43/*5611*/, 
/*  6290*/      OPC_RecordChild2, // #1 = $STRM
/*  6291*/      OPC_MoveChild2,
/*  6292*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  6295*/      OPC_MoveParent,
/*  6296*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/*  6298*/      OPC_EmitMergeInputChains1_0,
/*  6299*/      OPC_EmitConvertToTarget, 1,
/*  6301*/      OPC_MorphNodeTo0, TARGET_VAL(PPC::DSS), 0|OPFL_Chain,
                    1/*#Ops*/, 2, 
                // Src: (intrinsic_void 5611:{ *:[iPTR] }, (imm:{ *:[i32] }):$STRM) - Complexity = 11
                // Dst: (DSS (imm:{ *:[i32] }):$STRM)
/*  6307*/    /*Scope*/ 52, /*->6360*/
/*  6308*/      OPC_CheckChild1Integer, 109|128,43/*5613*/, 
/*  6311*/      OPC_RecordChild2, // #1 = $rA
/*  6312*/      OPC_Scope, 22, /*->6336*/ // 2 children in Scope
/*  6314*/        OPC_CheckChild2Type, MVT::i32,
/*  6316*/        OPC_RecordChild3, // #2 = $rB
/*  6317*/        OPC_RecordChild4, // #3 = $STRM
/*  6318*/        OPC_MoveChild4,
/*  6319*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  6322*/        OPC_MoveParent,
/*  6323*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/*  6325*/        OPC_EmitMergeInputChains1_0,
/*  6326*/        OPC_EmitConvertToTarget, 3,
/*  6328*/        OPC_MorphNodeTo0, TARGET_VAL(PPC::DST), 0|OPFL_Chain,
                      3/*#Ops*/, 4, 1, 2, 
                  // Src: (intrinsic_void 5613:{ *:[iPTR] }, i32:{ *:[i32] }:$rA, i32:{ *:[i32] }:$rB, (imm:{ *:[i32] }):$STRM) - Complexity = 11
                  // Dst: (DST (imm:{ *:[i32] }):$STRM, i32:{ *:[i32] }:$rA, i32:{ *:[i32] }:$rB)
/*  6336*/      /*Scope*/ 22, /*->6359*/
/*  6337*/        OPC_CheckChild2Type, MVT::i64,
/*  6339*/        OPC_RecordChild3, // #2 = $rB
/*  6340*/        OPC_RecordChild4, // #3 = $STRM
/*  6341*/        OPC_MoveChild4,
/*  6342*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  6345*/        OPC_MoveParent,
/*  6346*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/*  6348*/        OPC_EmitMergeInputChains1_0,
/*  6349*/        OPC_EmitConvertToTarget, 3,
/*  6351*/        OPC_MorphNodeTo0, TARGET_VAL(PPC::DST64), 0|OPFL_Chain,
                      3/*#Ops*/, 4, 1, 2, 
                  // Src: (intrinsic_void 5613:{ *:[iPTR] }, i64:{ *:[i64] }:$rA, i32:{ *:[i32] }:$rB, (imm:{ *:[i32] }):$STRM) - Complexity = 11
                  // Dst: (DST64 (imm:{ *:[i32] }):$STRM, i64:{ *:[i64] }:$rA, i32:{ *:[i32] }:$rB)
/*  6359*/      0, /*End of Scope*/
/*  6360*/    /*Scope*/ 52, /*->6413*/
/*  6361*/      OPC_CheckChild1Integer, 112|128,43/*5616*/, 
/*  6364*/      OPC_RecordChild2, // #1 = $rA
/*  6365*/      OPC_Scope, 22, /*->6389*/ // 2 children in Scope
/*  6367*/        OPC_CheckChild2Type, MVT::i32,
/*  6369*/        OPC_RecordChild3, // #2 = $rB
/*  6370*/        OPC_RecordChild4, // #3 = $STRM
/*  6371*/        OPC_MoveChild4,
/*  6372*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  6375*/        OPC_MoveParent,
/*  6376*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/*  6378*/        OPC_EmitMergeInputChains1_0,
/*  6379*/        OPC_EmitConvertToTarget, 3,
/*  6381*/        OPC_MorphNodeTo0, TARGET_VAL(PPC::DSTT), 0|OPFL_Chain,
                      3/*#Ops*/, 4, 1, 2, 
                  // Src: (intrinsic_void 5616:{ *:[iPTR] }, i32:{ *:[i32] }:$rA, i32:{ *:[i32] }:$rB, (imm:{ *:[i32] }):$STRM) - Complexity = 11
                  // Dst: (DSTT (imm:{ *:[i32] }):$STRM, i32:{ *:[i32] }:$rA, i32:{ *:[i32] }:$rB)
/*  6389*/      /*Scope*/ 22, /*->6412*/
/*  6390*/        OPC_CheckChild2Type, MVT::i64,
/*  6392*/        OPC_RecordChild3, // #2 = $rB
/*  6393*/        OPC_RecordChild4, // #3 = $STRM
/*  6394*/        OPC_MoveChild4,
/*  6395*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  6398*/        OPC_MoveParent,
/*  6399*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/*  6401*/        OPC_EmitMergeInputChains1_0,
/*  6402*/        OPC_EmitConvertToTarget, 3,
/*  6404*/        OPC_MorphNodeTo0, TARGET_VAL(PPC::DSTT64), 0|OPFL_Chain,
                      3/*#Ops*/, 4, 1, 2, 
                  // Src: (intrinsic_void 5616:{ *:[iPTR] }, i64:{ *:[i64] }:$rA, i32:{ *:[i32] }:$rB, (imm:{ *:[i32] }):$STRM) - Complexity = 11
                  // Dst: (DSTT64 (imm:{ *:[i32] }):$STRM, i64:{ *:[i64] }:$rA, i32:{ *:[i32] }:$rB)
/*  6412*/      0, /*End of Scope*/
/*  6413*/    /*Scope*/ 52, /*->6466*/
/*  6414*/      OPC_CheckChild1Integer, 110|128,43/*5614*/, 
/*  6417*/      OPC_RecordChild2, // #1 = $rA
/*  6418*/      OPC_Scope, 22, /*->6442*/ // 2 children in Scope
/*  6420*/        OPC_CheckChild2Type, MVT::i32,
/*  6422*/        OPC_RecordChild3, // #2 = $rB
/*  6423*/        OPC_RecordChild4, // #3 = $STRM
/*  6424*/        OPC_MoveChild4,
/*  6425*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  6428*/        OPC_MoveParent,
/*  6429*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/*  6431*/        OPC_EmitMergeInputChains1_0,
/*  6432*/        OPC_EmitConvertToTarget, 3,
/*  6434*/        OPC_MorphNodeTo0, TARGET_VAL(PPC::DSTST), 0|OPFL_Chain,
                      3/*#Ops*/, 4, 1, 2, 
                  // Src: (intrinsic_void 5614:{ *:[iPTR] }, i32:{ *:[i32] }:$rA, i32:{ *:[i32] }:$rB, (imm:{ *:[i32] }):$STRM) - Complexity = 11
                  // Dst: (DSTST (imm:{ *:[i32] }):$STRM, i32:{ *:[i32] }:$rA, i32:{ *:[i32] }:$rB)
/*  6442*/      /*Scope*/ 22, /*->6465*/
/*  6443*/        OPC_CheckChild2Type, MVT::i64,
/*  6445*/        OPC_RecordChild3, // #2 = $rB
/*  6446*/        OPC_RecordChild4, // #3 = $STRM
/*  6447*/        OPC_MoveChild4,
/*  6448*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  6451*/        OPC_MoveParent,
/*  6452*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/*  6454*/        OPC_EmitMergeInputChains1_0,
/*  6455*/        OPC_EmitConvertToTarget, 3,
/*  6457*/        OPC_MorphNodeTo0, TARGET_VAL(PPC::DSTST64), 0|OPFL_Chain,
                      3/*#Ops*/, 4, 1, 2, 
                  // Src: (intrinsic_void 5614:{ *:[iPTR] }, i64:{ *:[i64] }:$rA, i32:{ *:[i32] }:$rB, (imm:{ *:[i32] }):$STRM) - Complexity = 11
                  // Dst: (DSTST64 (imm:{ *:[i32] }):$STRM, i64:{ *:[i64] }:$rA, i32:{ *:[i32] }:$rB)
/*  6465*/      0, /*End of Scope*/
/*  6466*/    /*Scope*/ 52, /*->6519*/
/*  6467*/      OPC_CheckChild1Integer, 111|128,43/*5615*/, 
/*  6470*/      OPC_RecordChild2, // #1 = $rA
/*  6471*/      OPC_Scope, 22, /*->6495*/ // 2 children in Scope
/*  6473*/        OPC_CheckChild2Type, MVT::i32,
/*  6475*/        OPC_RecordChild3, // #2 = $rB
/*  6476*/        OPC_RecordChild4, // #3 = $STRM
/*  6477*/        OPC_MoveChild4,
/*  6478*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  6481*/        OPC_MoveParent,
/*  6482*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/*  6484*/        OPC_EmitMergeInputChains1_0,
/*  6485*/        OPC_EmitConvertToTarget, 3,
/*  6487*/        OPC_MorphNodeTo0, TARGET_VAL(PPC::DSTSTT), 0|OPFL_Chain,
                      3/*#Ops*/, 4, 1, 2, 
                  // Src: (intrinsic_void 5615:{ *:[iPTR] }, i32:{ *:[i32] }:$rA, i32:{ *:[i32] }:$rB, (imm:{ *:[i32] }):$STRM) - Complexity = 11
                  // Dst: (DSTSTT (imm:{ *:[i32] }):$STRM, i32:{ *:[i32] }:$rA, i32:{ *:[i32] }:$rB)
/*  6495*/      /*Scope*/ 22, /*->6518*/
/*  6496*/        OPC_CheckChild2Type, MVT::i64,
/*  6498*/        OPC_RecordChild3, // #2 = $rB
/*  6499*/        OPC_RecordChild4, // #3 = $STRM
/*  6500*/        OPC_MoveChild4,
/*  6501*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  6504*/        OPC_MoveParent,
/*  6505*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/*  6507*/        OPC_EmitMergeInputChains1_0,
/*  6508*/        OPC_EmitConvertToTarget, 3,
/*  6510*/        OPC_MorphNodeTo0, TARGET_VAL(PPC::DSTSTT64), 0|OPFL_Chain,
                      3/*#Ops*/, 4, 1, 2, 
                  // Src: (intrinsic_void 5615:{ *:[iPTR] }, i64:{ *:[i64] }:$rA, i32:{ *:[i32] }:$rB, (imm:{ *:[i32] }):$STRM) - Complexity = 11
                  // Dst: (DSTSTT64 (imm:{ *:[i32] }):$STRM, i64:{ *:[i64] }:$rA, i32:{ *:[i32] }:$rB)
/*  6518*/      0, /*End of Scope*/
/*  6519*/    /*Scope*/ 27, /*->6547*/
/*  6520*/      OPC_CheckChild1Integer, 40|128,46/*5928*/, 
/*  6523*/      OPC_Scope, 12, /*->6537*/ // 2 children in Scope
/*  6525*/        OPC_CheckPatternPredicate, 16, // (!PPCSubTarget->hasOnlyMSYNC())
/*  6527*/        OPC_EmitMergeInputChains1_0,
/*  6528*/        OPC_EmitInteger, MVT::i32, 0, 
/*  6531*/        OPC_MorphNodeTo0, TARGET_VAL(PPC::SYNC), 0|OPFL_Chain,
                      1/*#Ops*/, 1, 
                  // Src: (intrinsic_void 5928:{ *:[iPTR] }) - Complexity = 8
                  // Dst: (SYNC 0:{ *:[i32] })
/*  6537*/      /*Scope*/ 8, /*->6546*/
/*  6538*/        OPC_CheckPatternPredicate, 17, // (PPCSubTarget->hasOnlyMSYNC())
/*  6540*/        OPC_EmitMergeInputChains1_0,
/*  6541*/        OPC_MorphNodeTo0, TARGET_VAL(PPC::MSYNC), 0|OPFL_Chain,
                      0/*#Ops*/, 
                  // Src: (intrinsic_void 5928:{ *:[iPTR] }) - Complexity = 8
                  // Dst: (MSYNC)
/*  6546*/      0, /*End of Scope*/
/*  6547*/    /*Scope*/ 27, /*->6575*/
/*  6548*/      OPC_CheckChild1Integer, 73|128,45/*5833*/, 
/*  6551*/      OPC_Scope, 12, /*->6565*/ // 2 children in Scope
/*  6553*/        OPC_CheckPatternPredicate, 16, // (!PPCSubTarget->hasOnlyMSYNC())
/*  6555*/        OPC_EmitMergeInputChains1_0,
/*  6556*/        OPC_EmitInteger, MVT::i32, 1, 
/*  6559*/        OPC_MorphNodeTo0, TARGET_VAL(PPC::SYNC), 0|OPFL_Chain,
                      1/*#Ops*/, 1, 
                  // Src: (intrinsic_void 5833:{ *:[iPTR] }) - Complexity = 8
                  // Dst: (SYNC 1:{ *:[i32] })
/*  6565*/      /*Scope*/ 8, /*->6574*/
/*  6566*/        OPC_CheckPatternPredicate, 17, // (PPCSubTarget->hasOnlyMSYNC())
/*  6568*/        OPC_EmitMergeInputChains1_0,
/*  6569*/        OPC_MorphNodeTo0, TARGET_VAL(PPC::MSYNC), 0|OPFL_Chain,
                      0/*#Ops*/, 
                  // Src: (intrinsic_void 5833:{ *:[iPTR] }) - Complexity = 8
                  // Dst: (MSYNC)
/*  6574*/      0, /*End of Scope*/
/*  6575*/    /*Scope*/ 28, /*->6604*/
/*  6576*/      OPC_CheckChild1Integer, 103|128,1/*231*/, 
/*  6579*/      OPC_RecordChild2, // #1 = $rS
/*  6580*/      OPC_Scope, 10, /*->6592*/ // 2 children in Scope
/*  6582*/        OPC_CheckChild2Type, MVT::i32,
/*  6584*/        OPC_EmitMergeInputChains1_0,
/*  6585*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::MTCTRloop), 0|OPFL_Chain,
                      MVT::i32, 1/*#Ops*/, 1, 
                  // Src: (intrinsic_void 231:{ *:[iPTR] }, i32:{ *:[i32] }:$rS) - Complexity = 8
                  // Dst: (MTCTRloop:{ *:[i32] } i32:{ *:[i32] }:$rS)
/*  6592*/      /*Scope*/ 10, /*->6603*/
/*  6593*/        OPC_CheckChild2Type, MVT::i64,
/*  6595*/        OPC_EmitMergeInputChains1_0,
/*  6596*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::MTCTR8loop), 0|OPFL_Chain,
                      MVT::i64, 1/*#Ops*/, 1, 
                  // Src: (intrinsic_void 231:{ *:[iPTR] }, i64:{ *:[i64] }:$rS) - Complexity = 8
                  // Dst: (MTCTR8loop:{ *:[i64] } i64:{ *:[i64] }:$rS)
/*  6603*/      0, /*End of Scope*/
/*  6604*/    /*Scope*/ 11, /*->6616*/
/*  6605*/      OPC_CheckChild1Integer, 108|128,43/*5612*/, 
/*  6608*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/*  6610*/      OPC_EmitMergeInputChains1_0,
/*  6611*/      OPC_MorphNodeTo0, TARGET_VAL(PPC::DSSALL), 0|OPFL_Chain,
                    0/*#Ops*/, 
                // Src: (intrinsic_void 5612:{ *:[iPTR] }) - Complexity = 8
                // Dst: (DSSALL)
/*  6616*/    /*Scope*/ 13, /*->6630*/
/*  6617*/      OPC_CheckChild1Integer, 121|128,43/*5625*/, 
/*  6620*/      OPC_RecordChild2, // #1 = $vB
/*  6621*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/*  6623*/      OPC_EmitMergeInputChains1_0,
/*  6624*/      OPC_MorphNodeTo0, TARGET_VAL(PPC::MTVSCR), 0|OPFL_Chain,
                    1/*#Ops*/, 1, 
                // Src: (intrinsic_void 5625:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$vB) - Complexity = 8
                // Dst: (MTVSCR v4i32:{ *:[v4i32] }:$vB)
/*  6630*/    /*Scope*/ 18, /*->6649*/
/*  6631*/      OPC_CheckChild1Integer, 33|128,46/*5921*/, 
/*  6634*/      OPC_RecordChild2, // #1 = $V
/*  6635*/      OPC_CheckPatternPredicate, 18, // (PPCSubTarget->hasHTM())
/*  6637*/      OPC_EmitMergeInputChains1_0,
/*  6638*/      OPC_EmitInteger, MVT::i32, 2|128,1/*130*/, 
/*  6642*/      OPC_MorphNodeTo0, TARGET_VAL(PPC::MTSPR8), 0|OPFL_Chain,
                    2/*#Ops*/, 2, 1, 
                // Src: (intrinsic_void 5921:{ *:[iPTR] }, i64:{ *:[i64] }:$V) - Complexity = 8
                // Dst: (MTSPR8 130:{ *:[i32] }, ?:{ *:[i64] }:$V)
/*  6649*/    /*Scope*/ 18, /*->6668*/
/*  6650*/      OPC_CheckChild1Integer, 34|128,46/*5922*/, 
/*  6653*/      OPC_RecordChild2, // #1 = $V
/*  6654*/      OPC_CheckPatternPredicate, 18, // (PPCSubTarget->hasHTM())
/*  6656*/      OPC_EmitMergeInputChains1_0,
/*  6657*/      OPC_EmitInteger, MVT::i32, 3|128,1/*131*/, 
/*  6661*/      OPC_MorphNodeTo0, TARGET_VAL(PPC::MTSPR8), 0|OPFL_Chain,
                    2/*#Ops*/, 2, 1, 
                // Src: (intrinsic_void 5922:{ *:[iPTR] }, i64:{ *:[i64] }:$V) - Complexity = 8
                // Dst: (MTSPR8 131:{ *:[i32] }, ?:{ *:[i64] }:$V)
/*  6668*/    /*Scope*/ 18, /*->6687*/
/*  6669*/      OPC_CheckChild1Integer, 35|128,46/*5923*/, 
/*  6672*/      OPC_RecordChild2, // #1 = $V
/*  6673*/      OPC_CheckPatternPredicate, 18, // (PPCSubTarget->hasHTM())
/*  6675*/      OPC_EmitMergeInputChains1_0,
/*  6676*/      OPC_EmitInteger, MVT::i32, 0|128,1/*128*/, 
/*  6680*/      OPC_MorphNodeTo0, TARGET_VAL(PPC::MTSPR8), 0|OPFL_Chain,
                    2/*#Ops*/, 2, 1, 
                // Src: (intrinsic_void 5923:{ *:[iPTR] }, i64:{ *:[i64] }:$V) - Complexity = 8
                // Dst: (MTSPR8 128:{ *:[i32] }, ?:{ *:[i64] }:$V)
/*  6687*/    /*Scope*/ 18, /*->6706*/
/*  6688*/      OPC_CheckChild1Integer, 36|128,46/*5924*/, 
/*  6691*/      OPC_RecordChild2, // #1 = $V
/*  6692*/      OPC_CheckPatternPredicate, 18, // (PPCSubTarget->hasHTM())
/*  6694*/      OPC_EmitMergeInputChains1_0,
/*  6695*/      OPC_EmitInteger, MVT::i32, 1|128,1/*129*/, 
/*  6699*/      OPC_MorphNodeTo0, TARGET_VAL(PPC::MTSPR8), 0|OPFL_Chain,
                    2/*#Ops*/, 2, 1, 
                // Src: (intrinsic_void 5924:{ *:[iPTR] }, i64:{ *:[i64] }:$V) - Complexity = 8
                // Dst: (MTSPR8 129:{ *:[i32] }, ?:{ *:[i64] }:$V)
/*  6706*/    0, /*End of Scope*/
/*  6707*/  /*SwitchOpcode*/ 39, TARGET_VAL(PPCISD::STXSIX),// ->6749
/*  6710*/    OPC_RecordNode, // #0 = 'PPCstxsix' chained node
/*  6711*/    OPC_RecordChild1, // #1 = $XT
/*  6712*/    OPC_RecordChild2, // #2 = $dst
/*  6713*/    OPC_Scope, 16, /*->6731*/ // 2 children in Scope
/*  6715*/      OPC_CheckChild3Integer, 1, 
/*  6717*/      OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/*  6719*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  6722*/      OPC_EmitMergeInputChains1_0,
/*  6723*/      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)
/*  6731*/    /*Scope*/ 16, /*->6748*/
/*  6732*/      OPC_CheckChild3Integer, 2, 
/*  6734*/      OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/*  6736*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  6739*/      OPC_EmitMergeInputChains1_0,
/*  6740*/      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)
/*  6748*/    0, /*End of Scope*/
/*  6749*/  /*SwitchOpcode*/ 17, TARGET_VAL(PPCISD::STXVD2X),// ->6769
/*  6752*/    OPC_RecordNode, // #0 = 'PPCstxvd2x' chained node
/*  6753*/    OPC_RecordChild1, // #1 = $rS
/*  6754*/    OPC_RecordChild2, // #2 = $dst
/*  6755*/    OPC_CheckPatternPredicate, 15, // (!PPCSubTarget->hasP9Vector()) && (PPCSubTarget->hasVSX())
/*  6757*/    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  6760*/    OPC_EmitMergeInputChains1_0,
/*  6761*/    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)
/*  6769*/  /*SwitchOpcode*/ 6|128,1/*134*/, TARGET_VAL(PPCISD::STORE_VEC_BE),// ->6907
/*  6773*/    OPC_RecordNode, // #0 = 'PPCst_vec_be' chained node
/*  6774*/    OPC_RecordChild1, // #1 = $rS
/*  6775*/    OPC_Scope, 17, /*->6794*/ // 6 children in Scope
/*  6777*/      OPC_CheckChild1Type, MVT::v2f64,
/*  6779*/      OPC_RecordChild2, // #2 = $dst
/*  6780*/      OPC_CheckPatternPredicate, 19, // (PPCSubTarget->hasVSX()) && (PPCSubTarget->isLittleEndian())
/*  6782*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  6785*/      OPC_EmitMergeInputChains1_0,
/*  6786*/      OPC_MorphNodeTo0, TARGET_VAL(PPC::STXVD2X), 0|OPFL_Chain,
                    3/*#Ops*/, 1, 3, 4, 
                // Src: (PPCst_vec_be v2f64:{ *:[v2f64] }:$rS, xoaddr:{ *:[iPTR] }:$dst) - Complexity = 412
                // Dst: (STXVD2X ?:{ *:[v2f64] }:$rS, xoaddr:{ *:[iPTR] }:$dst)
/*  6794*/    /*Scope*/ 17, /*->6812*/
/*  6795*/      OPC_CheckChild1Type, MVT::v4f32,
/*  6797*/      OPC_RecordChild2, // #2 = $dst
/*  6798*/      OPC_CheckPatternPredicate, 19, // (PPCSubTarget->hasVSX()) && (PPCSubTarget->isLittleEndian())
/*  6800*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  6803*/      OPC_EmitMergeInputChains1_0,
/*  6804*/      OPC_MorphNodeTo0, TARGET_VAL(PPC::STXVW4X), 0|OPFL_Chain,
                    3/*#Ops*/, 1, 3, 4, 
                // Src: (PPCst_vec_be v4f32:{ *:[v4f32] }:$rS, xoaddr:{ *:[iPTR] }:$dst) - Complexity = 412
                // Dst: (STXVW4X ?:{ *:[v4f32] }:$rS, xoaddr:{ *:[iPTR] }:$dst)
/*  6812*/    /*Scope*/ 17, /*->6830*/
/*  6813*/      OPC_CheckChild1Type, MVT::v2i64,
/*  6815*/      OPC_RecordChild2, // #2 = $dst
/*  6816*/      OPC_CheckPatternPredicate, 19, // (PPCSubTarget->hasVSX()) && (PPCSubTarget->isLittleEndian())
/*  6818*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  6821*/      OPC_EmitMergeInputChains1_0,
/*  6822*/      OPC_MorphNodeTo0, TARGET_VAL(PPC::STXVD2X), 0|OPFL_Chain,
                    3/*#Ops*/, 1, 3, 4, 
                // Src: (PPCst_vec_be v2i64:{ *:[v2i64] }:$rS, xoaddr:{ *:[iPTR] }:$dst) - Complexity = 412
                // Dst: (STXVD2X ?:{ *:[v2i64] }:$rS, xoaddr:{ *:[iPTR] }:$dst)
/*  6830*/    /*Scope*/ 17, /*->6848*/
/*  6831*/      OPC_CheckChild1Type, MVT::v4i32,
/*  6833*/      OPC_RecordChild2, // #2 = $dst
/*  6834*/      OPC_CheckPatternPredicate, 19, // (PPCSubTarget->hasVSX()) && (PPCSubTarget->isLittleEndian())
/*  6836*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  6839*/      OPC_EmitMergeInputChains1_0,
/*  6840*/      OPC_MorphNodeTo0, TARGET_VAL(PPC::STXVW4X), 0|OPFL_Chain,
                    3/*#Ops*/, 1, 3, 4, 
                // Src: (PPCst_vec_be v4i32:{ *:[v4i32] }:$rS, xoaddr:{ *:[iPTR] }:$dst) - Complexity = 412
                // Dst: (STXVW4X ?:{ *:[v4i32] }:$rS, xoaddr:{ *:[iPTR] }:$dst)
/*  6848*/    /*Scope*/ 28, /*->6877*/
/*  6849*/      OPC_CheckChild1Type, MVT::v8i16,
/*  6851*/      OPC_RecordChild2, // #2 = $dst
/*  6852*/      OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/*  6854*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  6857*/      OPC_EmitMergeInputChains1_0,
/*  6858*/      OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*  6861*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::v4i32, 2/*#Ops*/, 1, 5,  // Results = #6
/*  6869*/      OPC_MorphNodeTo0, TARGET_VAL(PPC::STXVH8X), 0|OPFL_Chain,
                    3/*#Ops*/, 6, 3, 4, 
                // Src: (PPCst_vec_be v8i16:{ *:[v8i16] }:$rS, xoaddr:{ *:[iPTR] }:$dst) - Complexity = 412
                // Dst: (STXVH8X (COPY_TO_REGCLASS:{ *:[v4i32] } ?:{ *:[v8i16] }:$rS, VSRC:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$dst)
/*  6877*/    /*Scope*/ 28, /*->6906*/
/*  6878*/      OPC_CheckChild1Type, MVT::v16i8,
/*  6880*/      OPC_RecordChild2, // #2 = $dst
/*  6881*/      OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/*  6883*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  6886*/      OPC_EmitMergeInputChains1_0,
/*  6887*/      OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*  6890*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::v4i32, 2/*#Ops*/, 1, 5,  // Results = #6
/*  6898*/      OPC_MorphNodeTo0, TARGET_VAL(PPC::STXVB16X), 0|OPFL_Chain,
                    3/*#Ops*/, 6, 3, 4, 
                // Src: (PPCst_vec_be v16i8:{ *:[v16i8] }:$rS, xoaddr:{ *:[iPTR] }:$dst) - Complexity = 412
                // Dst: (STXVB16X (COPY_TO_REGCLASS:{ *:[v4i32] } ?:{ *:[v16i8] }:$rS, VSRC:{ *:[i32] }), xoaddr:{ *:[iPTR] }:$dst)
/*  6906*/    0, /*End of Scope*/
/*  6907*/  /*SwitchOpcode*/ 35, TARGET_VAL(PPCISD::STFIWX),// ->6945
/*  6910*/    OPC_RecordNode, // #0 = 'PPCstfiwx' chained node
/*  6911*/    OPC_RecordChild1, // #1 = $XT
/*  6912*/    OPC_RecordChild2, // #2 = $dst
/*  6913*/    OPC_Scope, 14, /*->6929*/ // 2 children in Scope
/*  6915*/      OPC_CheckPatternPredicate, 10, // (PPCSubTarget->hasP8Vector())
/*  6917*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  6920*/      OPC_EmitMergeInputChains1_0,
/*  6921*/      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)
/*  6929*/    /*Scope*/ 14, /*->6944*/
/*  6930*/      OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/*  6932*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/*  6935*/      OPC_EmitMergeInputChains1_0,
/*  6936*/      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)
/*  6944*/    0, /*End of Scope*/
/*  6945*/  /*SwitchOpcode*/ 85|128,77/*9941*/, TARGET_VAL(ISD::ANY_EXTEND),// ->16890
/*  6949*/    OPC_Scope, 117|128,76/*9845*/, /*->16797*/ // 2 children in Scope
/*  6952*/      OPC_MoveChild0,
/*  6953*/      OPC_SwitchOpcode /*2 cases */, 1|128,4/*513*/, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),// ->7471
/*  6958*/        OPC_RecordChild0, // #0 = $S
/*  6959*/        OPC_CheckType, MVT::i32,
/*  6961*/        OPC_Scope, 89|128,3/*473*/, /*->7437*/ // 2 children in Scope
/*  6964*/          OPC_CheckChild0Type, MVT::v8i16,
/*  6966*/          OPC_Scope, 49, /*->7017*/ // 9 children in Scope
/*  6968*/            OPC_CheckChild1Integer, 0, 
/*  6970*/            OPC_MoveParent,
/*  6971*/            OPC_CheckType, MVT::i64,
/*  6973*/            OPC_Scope, 20, /*->6995*/ // 2 children in Scope
/*  6975*/              OPC_CheckPatternPredicate, 20, // (PPCSubTarget->hasP9Altivec()) && (PPCSubTarget->isLittleEndian())
/*  6977*/              OPC_EmitInteger, MVT::i64, 0, 
/*  6980*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/*  6987*/              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)
/*  6995*/            /*Scope*/ 20, /*->7016*/
/*  6996*/              OPC_CheckPatternPredicate, 21, // (PPCSubTarget->hasP9Altivec()) && (!PPCSubTarget->isLittleEndian())
/*  6998*/              OPC_EmitInteger, MVT::i64, 0, 
/*  7001*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/*  7008*/              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)
/*  7016*/            0, /*End of Scope*/
/*  7017*/          /*Scope*/ 49, /*->7067*/
/*  7018*/            OPC_CheckChild1Integer, 1, 
/*  7020*/            OPC_MoveParent,
/*  7021*/            OPC_CheckType, MVT::i64,
/*  7023*/            OPC_Scope, 20, /*->7045*/ // 2 children in Scope
/*  7025*/              OPC_CheckPatternPredicate, 20, // (PPCSubTarget->hasP9Altivec()) && (PPCSubTarget->isLittleEndian())
/*  7027*/              OPC_EmitInteger, MVT::i64, 2, 
/*  7030*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/*  7037*/              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)
/*  7045*/            /*Scope*/ 20, /*->7066*/
/*  7046*/              OPC_CheckPatternPredicate, 21, // (PPCSubTarget->hasP9Altivec()) && (!PPCSubTarget->isLittleEndian())
/*  7048*/              OPC_EmitInteger, MVT::i64, 2, 
/*  7051*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/*  7058*/              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)
/*  7066*/            0, /*End of Scope*/
/*  7067*/          /*Scope*/ 49, /*->7117*/
/*  7068*/            OPC_CheckChild1Integer, 2, 
/*  7070*/            OPC_MoveParent,
/*  7071*/            OPC_CheckType, MVT::i64,
/*  7073*/            OPC_Scope, 20, /*->7095*/ // 2 children in Scope
/*  7075*/              OPC_CheckPatternPredicate, 20, // (PPCSubTarget->hasP9Altivec()) && (PPCSubTarget->isLittleEndian())
/*  7077*/              OPC_EmitInteger, MVT::i64, 4, 
/*  7080*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/*  7087*/              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)
/*  7095*/            /*Scope*/ 20, /*->7116*/
/*  7096*/              OPC_CheckPatternPredicate, 21, // (PPCSubTarget->hasP9Altivec()) && (!PPCSubTarget->isLittleEndian())
/*  7098*/              OPC_EmitInteger, MVT::i64, 4, 
/*  7101*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/*  7108*/              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)
/*  7116*/            0, /*End of Scope*/
/*  7117*/          /*Scope*/ 49, /*->7167*/
/*  7118*/            OPC_CheckChild1Integer, 3, 
/*  7120*/            OPC_MoveParent,
/*  7121*/            OPC_CheckType, MVT::i64,
/*  7123*/            OPC_Scope, 20, /*->7145*/ // 2 children in Scope
/*  7125*/              OPC_CheckPatternPredicate, 20, // (PPCSubTarget->hasP9Altivec()) && (PPCSubTarget->isLittleEndian())
/*  7127*/              OPC_EmitInteger, MVT::i64, 6, 
/*  7130*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/*  7137*/              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)
/*  7145*/            /*Scope*/ 20, /*->7166*/
/*  7146*/              OPC_CheckPatternPredicate, 21, // (PPCSubTarget->hasP9Altivec()) && (!PPCSubTarget->isLittleEndian())
/*  7148*/              OPC_EmitInteger, MVT::i64, 6, 
/*  7151*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/*  7158*/              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)
/*  7166*/            0, /*End of Scope*/
/*  7167*/          /*Scope*/ 49, /*->7217*/
/*  7168*/            OPC_CheckChild1Integer, 4, 
/*  7170*/            OPC_MoveParent,
/*  7171*/            OPC_CheckType, MVT::i64,
/*  7173*/            OPC_Scope, 20, /*->7195*/ // 2 children in Scope
/*  7175*/              OPC_CheckPatternPredicate, 20, // (PPCSubTarget->hasP9Altivec()) && (PPCSubTarget->isLittleEndian())
/*  7177*/              OPC_EmitInteger, MVT::i64, 8, 
/*  7180*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/*  7187*/              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)
/*  7195*/            /*Scope*/ 20, /*->7216*/
/*  7196*/              OPC_CheckPatternPredicate, 21, // (PPCSubTarget->hasP9Altivec()) && (!PPCSubTarget->isLittleEndian())
/*  7198*/              OPC_EmitInteger, MVT::i64, 8, 
/*  7201*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/*  7208*/              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)
/*  7216*/            0, /*End of Scope*/
/*  7217*/          /*Scope*/ 49, /*->7267*/
/*  7218*/            OPC_CheckChild1Integer, 5, 
/*  7220*/            OPC_MoveParent,
/*  7221*/            OPC_CheckType, MVT::i64,
/*  7223*/            OPC_Scope, 20, /*->7245*/ // 2 children in Scope
/*  7225*/              OPC_CheckPatternPredicate, 20, // (PPCSubTarget->hasP9Altivec()) && (PPCSubTarget->isLittleEndian())
/*  7227*/              OPC_EmitInteger, MVT::i64, 10, 
/*  7230*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/*  7237*/              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)
/*  7245*/            /*Scope*/ 20, /*->7266*/
/*  7246*/              OPC_CheckPatternPredicate, 21, // (PPCSubTarget->hasP9Altivec()) && (!PPCSubTarget->isLittleEndian())
/*  7248*/              OPC_EmitInteger, MVT::i64, 10, 
/*  7251*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/*  7258*/              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)
/*  7266*/            0, /*End of Scope*/
/*  7267*/          /*Scope*/ 49, /*->7317*/
/*  7268*/            OPC_CheckChild1Integer, 6, 
/*  7270*/            OPC_MoveParent,
/*  7271*/            OPC_CheckType, MVT::i64,
/*  7273*/            OPC_Scope, 20, /*->7295*/ // 2 children in Scope
/*  7275*/              OPC_CheckPatternPredicate, 20, // (PPCSubTarget->hasP9Altivec()) && (PPCSubTarget->isLittleEndian())
/*  7277*/              OPC_EmitInteger, MVT::i64, 12, 
/*  7280*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/*  7287*/              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)
/*  7295*/            /*Scope*/ 20, /*->7316*/
/*  7296*/              OPC_CheckPatternPredicate, 21, // (PPCSubTarget->hasP9Altivec()) && (!PPCSubTarget->isLittleEndian())
/*  7298*/              OPC_EmitInteger, MVT::i64, 12, 
/*  7301*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/*  7308*/              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)
/*  7316*/            0, /*End of Scope*/
/*  7317*/          /*Scope*/ 49, /*->7367*/
/*  7318*/            OPC_CheckChild1Integer, 7, 
/*  7320*/            OPC_MoveParent,
/*  7321*/            OPC_CheckType, MVT::i64,
/*  7323*/            OPC_Scope, 20, /*->7345*/ // 2 children in Scope
/*  7325*/              OPC_CheckPatternPredicate, 20, // (PPCSubTarget->hasP9Altivec()) && (PPCSubTarget->isLittleEndian())
/*  7327*/              OPC_EmitInteger, MVT::i64, 14, 
/*  7330*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/*  7337*/              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)
/*  7345*/            /*Scope*/ 20, /*->7366*/
/*  7346*/              OPC_CheckPatternPredicate, 21, // (PPCSubTarget->hasP9Altivec()) && (!PPCSubTarget->isLittleEndian())
/*  7348*/              OPC_EmitInteger, MVT::i64, 14, 
/*  7351*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/*  7358*/              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)
/*  7366*/            0, /*End of Scope*/
/*  7367*/          /*Scope*/ 68, /*->7436*/
/*  7368*/            OPC_RecordChild1, // #1 = $Idx
/*  7369*/            OPC_CheckChild1Type, MVT::i64,
/*  7371*/            OPC_MoveParent,
/*  7372*/            OPC_CheckType, MVT::i64,
/*  7374*/            OPC_Scope, 29, /*->7405*/ // 2 children in Scope
/*  7376*/              OPC_CheckPatternPredicate, 20, // (PPCSubTarget->hasP9Altivec()) && (PPCSubTarget->isLittleEndian())
/*  7378*/              OPC_EmitInteger, MVT::i32, 1, 
/*  7381*/              OPC_EmitInteger, MVT::i32, 28, 
/*  7384*/              OPC_EmitInteger, MVT::i32, 30, 
/*  7387*/              OPC_EmitNode1, TARGET_VAL(PPC::RLWINM8), 0,
                            MVT::i64, 4/*#Ops*/, 1, 2, 3, 4,  // Results = #5
/*  7397*/              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)
/*  7405*/            /*Scope*/ 29, /*->7435*/
/*  7406*/              OPC_CheckPatternPredicate, 21, // (PPCSubTarget->hasP9Altivec()) && (!PPCSubTarget->isLittleEndian())
/*  7408*/              OPC_EmitInteger, MVT::i32, 1, 
/*  7411*/              OPC_EmitInteger, MVT::i32, 28, 
/*  7414*/              OPC_EmitInteger, MVT::i32, 30, 
/*  7417*/              OPC_EmitNode1, TARGET_VAL(PPC::RLWINM8), 0,
                            MVT::i64, 4/*#Ops*/, 1, 2, 3, 4,  // Results = #5
/*  7427*/              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)
/*  7435*/            0, /*End of Scope*/
/*  7436*/          0, /*End of Scope*/
/*  7437*/        /*Scope*/ 32, /*->7470*/
/*  7438*/          OPC_CheckChild0Type, MVT::v16i8,
/*  7440*/          OPC_RecordChild1, // #1 = $Idx
/*  7441*/          OPC_CheckChild1Type, MVT::i64,
/*  7443*/          OPC_MoveParent,
/*  7444*/          OPC_CheckType, MVT::i64,
/*  7446*/          OPC_Scope, 10, /*->7458*/ // 2 children in Scope
/*  7448*/            OPC_CheckPatternPredicate, 20, // (PPCSubTarget->hasP9Altivec()) && (PPCSubTarget->isLittleEndian())
/*  7450*/            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)
/*  7458*/          /*Scope*/ 10, /*->7469*/
/*  7459*/            OPC_CheckPatternPredicate, 21, // (PPCSubTarget->hasP9Altivec()) && (!PPCSubTarget->isLittleEndian())
/*  7461*/            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)
/*  7469*/          0, /*End of Scope*/
/*  7470*/        0, /*End of Scope*/
/*  7471*/      /*SwitchOpcode*/ 105|128,72/*9321*/, TARGET_VAL(ISD::SETCC),// ->16796
/*  7475*/        OPC_Scope, 118|128,6/*886*/, /*->8364*/ // 2 children in Scope
/*  7478*/          OPC_MoveChild0,
/*  7479*/          OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/*  7482*/          OPC_Scope, 87, /*->7571*/ // 8 children in Scope
/*  7484*/            OPC_RecordChild0, // #0 = $s1
/*  7485*/            OPC_MoveChild1,
/*  7486*/            OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
/*  7489*/            OPC_CheckChild0Integer, 1, 
/*  7491*/            OPC_RecordChild1, // #1 = $sa
/*  7492*/            OPC_CheckChild1Type, MVT::i32,
/*  7494*/            OPC_MoveParent,
/*  7495*/            OPC_SwitchType /*2 cases */, 36, MVT::i32,// ->7534
/*  7498*/              OPC_MoveParent,
/*  7499*/              OPC_CheckChild1Integer, 0, 
/*  7501*/              OPC_CheckChild2CondCode, ISD::SETNE,
/*  7503*/              OPC_MoveParent,
/*  7504*/              OPC_CheckType, MVT::i32,
/*  7506*/              OPC_EmitInteger, MVT::i32, 32, 
/*  7509*/              OPC_EmitNode2, TARGET_VAL(PPC::SUBFIC), 0,
                            MVT::i32, MVT::i32, 2/*#Ops*/, 1, 2,  // Results = #3 #4
/*  7518*/              OPC_EmitInteger, MVT::i32, 31, 
/*  7521*/              OPC_EmitInteger, MVT::i32, 31, 
/*  7524*/              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] })
/*  7534*/            /*SwitchType*/ 34, MVT::i64,// ->7570
/*  7536*/              OPC_MoveParent,
/*  7537*/              OPC_CheckChild1Integer, 0, 
/*  7539*/              OPC_CheckChild2CondCode, ISD::SETNE,
/*  7541*/              OPC_CheckType, MVT::i1,
/*  7543*/              OPC_MoveParent,
/*  7544*/              OPC_CheckType, MVT::i64,
/*  7546*/              OPC_EmitInteger, MVT::i32, 64, 
/*  7549*/              OPC_EmitNode2, TARGET_VAL(PPC::SUBFIC), 0,
                            MVT::i32, MVT::i32, 2/*#Ops*/, 1, 2,  // Results = #3 #4
/*  7558*/              OPC_EmitInteger, MVT::i32, 63, 
/*  7561*/              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] })
/*  7570*/            0, // EndSwitchType
/*  7571*/          /*Scope*/ 87, /*->7659*/
/*  7572*/            OPC_MoveChild0,
/*  7573*/            OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
/*  7576*/            OPC_CheckChild0Integer, 1, 
/*  7578*/            OPC_RecordChild1, // #0 = $sa
/*  7579*/            OPC_CheckChild1Type, MVT::i32,
/*  7581*/            OPC_MoveParent,
/*  7582*/            OPC_RecordChild1, // #1 = $s1
/*  7583*/            OPC_SwitchType /*2 cases */, 36, MVT::i32,// ->7622
/*  7586*/              OPC_MoveParent,
/*  7587*/              OPC_CheckChild1Integer, 0, 
/*  7589*/              OPC_CheckChild2CondCode, ISD::SETNE,
/*  7591*/              OPC_MoveParent,
/*  7592*/              OPC_CheckType, MVT::i32,
/*  7594*/              OPC_EmitInteger, MVT::i32, 32, 
/*  7597*/              OPC_EmitNode2, TARGET_VAL(PPC::SUBFIC), 0,
                            MVT::i32, MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3 #4
/*  7606*/              OPC_EmitInteger, MVT::i32, 31, 
/*  7609*/              OPC_EmitInteger, MVT::i32, 31, 
/*  7612*/              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] })
/*  7622*/            /*SwitchType*/ 34, MVT::i64,// ->7658
/*  7624*/              OPC_MoveParent,
/*  7625*/              OPC_CheckChild1Integer, 0, 
/*  7627*/              OPC_CheckChild2CondCode, ISD::SETNE,
/*  7629*/              OPC_CheckType, MVT::i1,
/*  7631*/              OPC_MoveParent,
/*  7632*/              OPC_CheckType, MVT::i64,
/*  7634*/              OPC_EmitInteger, MVT::i32, 64, 
/*  7637*/              OPC_EmitNode2, TARGET_VAL(PPC::SUBFIC), 0,
                            MVT::i32, MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3 #4
/*  7646*/              OPC_EmitInteger, MVT::i32, 63, 
/*  7649*/              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] })
/*  7658*/            0, // EndSwitchType
/*  7659*/          /*Scope*/ 19|128,1/*147*/, /*->7808*/
/*  7661*/            OPC_RecordChild0, // #0 = $s1
/*  7662*/            OPC_MoveChild1,
/*  7663*/            OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
/*  7666*/            OPC_CheckChild0Integer, 1, 
/*  7668*/            OPC_RecordChild1, // #1 = $sa
/*  7669*/            OPC_CheckChild1Type, MVT::i32,
/*  7671*/            OPC_MoveParent,
/*  7672*/            OPC_SwitchType /*2 cases */, 86, MVT::i64,// ->7761
/*  7675*/              OPC_MoveParent,
/*  7676*/              OPC_CheckChild1Integer, 0, 
/*  7678*/              OPC_Scope, 40, /*->7720*/ // 2 children in Scope
/*  7680*/                OPC_CheckChild2CondCode, ISD::SETNE,
/*  7682*/                OPC_MoveParent,
/*  7683*/                OPC_CheckType, MVT::i32,
/*  7685*/                OPC_EmitInteger, MVT::i32, 64, 
/*  7688*/                OPC_EmitNode2, TARGET_VAL(PPC::SUBFIC), 0,
                              MVT::i32, MVT::i32, 2/*#Ops*/, 1, 2,  // Results = #3 #4
/*  7697*/                OPC_EmitInteger, MVT::i32, 63, 
/*  7700*/                OPC_EmitNode1, TARGET_VAL(PPC::RLDCL), 0,
                              MVT::i64, 3/*#Ops*/, 0, 3, 5,  // Results = #6
/*  7709*/                OPC_EmitInteger, MVT::i32, PPC::sub_32,
/*  7712*/                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] })
/*  7720*/              /*Scope*/ 39, /*->7760*/
/*  7721*/                OPC_CheckChild2CondCode, ISD::SETEQ,
/*  7723*/                OPC_CheckType, MVT::i1,
/*  7725*/                OPC_MoveParent,
/*  7726*/                OPC_CheckType, MVT::i64,
/*  7728*/                OPC_EmitNode1, TARGET_VAL(PPC::NOR8), 0,
                              MVT::i64, 2/*#Ops*/, 0, 0,  // Results = #2
/*  7736*/                OPC_EmitInteger, MVT::i32, 64, 
/*  7739*/                OPC_EmitNode2, TARGET_VAL(PPC::SUBFIC), 0,
                              MVT::i32, MVT::i32, 2/*#Ops*/, 1, 3,  // Results = #4 #5
/*  7748*/                OPC_EmitInteger, MVT::i32, 63, 
/*  7751*/                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] })
/*  7760*/              0, /*End of Scope*/
/*  7761*/            /*SwitchType*/ 44, MVT::i32,// ->7807
/*  7763*/              OPC_MoveParent,
/*  7764*/              OPC_CheckChild1Integer, 0, 
/*  7766*/              OPC_CheckChild2CondCode, ISD::SETEQ,
/*  7768*/              OPC_MoveParent,
/*  7769*/              OPC_CheckType, MVT::i32,
/*  7771*/              OPC_EmitNode1, TARGET_VAL(PPC::NOR), 0,
                            MVT::i32, 2/*#Ops*/, 0, 0,  // Results = #2
/*  7779*/              OPC_EmitInteger, MVT::i32, 32, 
/*  7782*/              OPC_EmitNode2, TARGET_VAL(PPC::SUBFIC), 0,
                            MVT::i32, MVT::i32, 2/*#Ops*/, 1, 3,  // Results = #4 #5
/*  7791*/              OPC_EmitInteger, MVT::i32, 31, 
/*  7794*/              OPC_EmitInteger, MVT::i32, 31, 
/*  7797*/              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] })
/*  7807*/            0, // EndSwitchType
/*  7808*/          /*Scope*/ 19|128,1/*147*/, /*->7957*/
/*  7810*/            OPC_MoveChild0,
/*  7811*/            OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
/*  7814*/            OPC_CheckChild0Integer, 1, 
/*  7816*/            OPC_RecordChild1, // #0 = $sa
/*  7817*/            OPC_CheckChild1Type, MVT::i32,
/*  7819*/            OPC_MoveParent,
/*  7820*/            OPC_RecordChild1, // #1 = $s1
/*  7821*/            OPC_SwitchType /*2 cases */, 86, MVT::i64,// ->7910
/*  7824*/              OPC_MoveParent,
/*  7825*/              OPC_CheckChild1Integer, 0, 
/*  7827*/              OPC_Scope, 40, /*->7869*/ // 2 children in Scope
/*  7829*/                OPC_CheckChild2CondCode, ISD::SETNE,
/*  7831*/                OPC_MoveParent,
/*  7832*/                OPC_CheckType, MVT::i32,
/*  7834*/                OPC_EmitInteger, MVT::i32, 64, 
/*  7837*/                OPC_EmitNode2, TARGET_VAL(PPC::SUBFIC), 0,
                              MVT::i32, MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3 #4
/*  7846*/                OPC_EmitInteger, MVT::i32, 63, 
/*  7849*/                OPC_EmitNode1, TARGET_VAL(PPC::RLDCL), 0,
                              MVT::i64, 3/*#Ops*/, 1, 3, 5,  // Results = #6
/*  7858*/                OPC_EmitInteger, MVT::i32, PPC::sub_32,
/*  7861*/                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] })
/*  7869*/              /*Scope*/ 39, /*->7909*/
/*  7870*/                OPC_CheckChild2CondCode, ISD::SETEQ,
/*  7872*/                OPC_CheckType, MVT::i1,
/*  7874*/                OPC_MoveParent,
/*  7875*/                OPC_CheckType, MVT::i64,
/*  7877*/                OPC_EmitNode1, TARGET_VAL(PPC::NOR8), 0,
                              MVT::i64, 2/*#Ops*/, 1, 1,  // Results = #2
/*  7885*/                OPC_EmitInteger, MVT::i32, 64, 
/*  7888*/                OPC_EmitNode2, TARGET_VAL(PPC::SUBFIC), 0,
                              MVT::i32, MVT::i32, 2/*#Ops*/, 0, 3,  // Results = #4 #5
/*  7897*/                OPC_EmitInteger, MVT::i32, 63, 
/*  7900*/                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] })
/*  7909*/              0, /*End of Scope*/
/*  7910*/            /*SwitchType*/ 44, MVT::i32,// ->7956
/*  7912*/              OPC_MoveParent,
/*  7913*/              OPC_CheckChild1Integer, 0, 
/*  7915*/              OPC_CheckChild2CondCode, ISD::SETEQ,
/*  7917*/              OPC_MoveParent,
/*  7918*/              OPC_CheckType, MVT::i32,
/*  7920*/              OPC_EmitNode1, TARGET_VAL(PPC::NOR), 0,
                            MVT::i32, 2/*#Ops*/, 1, 1,  // Results = #2
/*  7928*/              OPC_EmitInteger, MVT::i32, 32, 
/*  7931*/              OPC_EmitNode2, TARGET_VAL(PPC::SUBFIC), 0,
                            MVT::i32, MVT::i32, 2/*#Ops*/, 0, 3,  // Results = #4 #5
/*  7940*/              OPC_EmitInteger, MVT::i32, 31, 
/*  7943*/              OPC_EmitInteger, MVT::i32, 31, 
/*  7946*/              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] })
/*  7956*/            0, // EndSwitchType
/*  7957*/          /*Scope*/ 124, /*->8082*/
/*  7958*/            OPC_RecordChild0, // #0 = $s1
/*  7959*/            OPC_MoveChild1,
/*  7960*/            OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
/*  7963*/            OPC_CheckChild0Integer, 1, 
/*  7965*/            OPC_RecordChild1, // #1 = $sa
/*  7966*/            OPC_CheckChild1Type, MVT::i32,
/*  7968*/            OPC_MoveParent,
/*  7969*/            OPC_SwitchType /*2 cases */, 56, MVT::i32,// ->8028
/*  7972*/              OPC_MoveParent,
/*  7973*/              OPC_CheckChild1Integer, 0, 
/*  7975*/              OPC_CheckChild2CondCode, ISD::SETNE,
/*  7977*/              OPC_CheckType, MVT::i1,
/*  7979*/              OPC_MoveParent,
/*  7980*/              OPC_CheckType, MVT::i64,
/*  7982*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::i64, 0/*#Ops*/,  // Results = #2
/*  7988*/              OPC_EmitInteger, MVT::i32, 32, 
/*  7991*/              OPC_EmitNode2, TARGET_VAL(PPC::SUBFIC), 0,
                            MVT::i32, MVT::i32, 2/*#Ops*/, 1, 3,  // Results = #4 #5
/*  8000*/              OPC_EmitInteger, MVT::i32, 31, 
/*  8003*/              OPC_EmitInteger, MVT::i32, 31, 
/*  8006*/              OPC_EmitNode1, TARGET_VAL(PPC::RLWNM), 0,
                            MVT::i32, 4/*#Ops*/, 0, 4, 6, 7,  // Results = #8
/*  8016*/              OPC_EmitInteger, MVT::i32, PPC::sub_32,
/*  8019*/              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] })
/*  8028*/            /*SwitchType*/ 51, MVT::i64,// ->8081
/*  8030*/              OPC_MoveParent,
/*  8031*/              OPC_CheckChild1Integer, 0, 
/*  8033*/              OPC_CheckChild2CondCode, ISD::SETEQ,
/*  8035*/              OPC_MoveParent,
/*  8036*/              OPC_CheckType, MVT::i32,
/*  8038*/              OPC_EmitNode1, TARGET_VAL(PPC::NOR8), 0,
                            MVT::i64, 2/*#Ops*/, 0, 0,  // Results = #2
/*  8046*/              OPC_EmitInteger, MVT::i32, 64, 
/*  8049*/              OPC_EmitNode2, TARGET_VAL(PPC::SUBFIC), 0,
                            MVT::i32, MVT::i32, 2/*#Ops*/, 1, 3,  // Results = #4 #5
/*  8058*/              OPC_EmitInteger, MVT::i32, 63, 
/*  8061*/              OPC_EmitNode1, TARGET_VAL(PPC::RLDCL), 0,
                            MVT::i64, 3/*#Ops*/, 2, 4, 6,  // Results = #7
/*  8070*/              OPC_EmitInteger, MVT::i32, PPC::sub_32,
/*  8073*/              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] })
/*  8081*/            0, // EndSwitchType
/*  8082*/          /*Scope*/ 124, /*->8207*/
/*  8083*/            OPC_MoveChild0,
/*  8084*/            OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
/*  8087*/            OPC_CheckChild0Integer, 1, 
/*  8089*/            OPC_RecordChild1, // #0 = $sa
/*  8090*/            OPC_CheckChild1Type, MVT::i32,
/*  8092*/            OPC_MoveParent,
/*  8093*/            OPC_RecordChild1, // #1 = $s1
/*  8094*/            OPC_SwitchType /*2 cases */, 56, MVT::i32,// ->8153
/*  8097*/              OPC_MoveParent,
/*  8098*/              OPC_CheckChild1Integer, 0, 
/*  8100*/              OPC_CheckChild2CondCode, ISD::SETNE,
/*  8102*/              OPC_CheckType, MVT::i1,
/*  8104*/              OPC_MoveParent,
/*  8105*/              OPC_CheckType, MVT::i64,
/*  8107*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::i64, 0/*#Ops*/,  // Results = #2
/*  8113*/              OPC_EmitInteger, MVT::i32, 32, 
/*  8116*/              OPC_EmitNode2, TARGET_VAL(PPC::SUBFIC), 0,
                            MVT::i32, MVT::i32, 2/*#Ops*/, 0, 3,  // Results = #4 #5
/*  8125*/              OPC_EmitInteger, MVT::i32, 31, 
/*  8128*/              OPC_EmitInteger, MVT::i32, 31, 
/*  8131*/              OPC_EmitNode1, TARGET_VAL(PPC::RLWNM), 0,
                            MVT::i32, 4/*#Ops*/, 1, 4, 6, 7,  // Results = #8
/*  8141*/              OPC_EmitInteger, MVT::i32, PPC::sub_32,
/*  8144*/              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] })
/*  8153*/            /*SwitchType*/ 51, MVT::i64,// ->8206
/*  8155*/              OPC_MoveParent,
/*  8156*/              OPC_CheckChild1Integer, 0, 
/*  8158*/              OPC_CheckChild2CondCode, ISD::SETEQ,
/*  8160*/              OPC_MoveParent,
/*  8161*/              OPC_CheckType, MVT::i32,
/*  8163*/              OPC_EmitNode1, TARGET_VAL(PPC::NOR8), 0,
                            MVT::i64, 2/*#Ops*/, 1, 1,  // Results = #2
/*  8171*/              OPC_EmitInteger, MVT::i32, 64, 
/*  8174*/              OPC_EmitNode2, TARGET_VAL(PPC::SUBFIC), 0,
                            MVT::i32, MVT::i32, 2/*#Ops*/, 0, 3,  // Results = #4 #5
/*  8183*/              OPC_EmitInteger, MVT::i32, 63, 
/*  8186*/              OPC_EmitNode1, TARGET_VAL(PPC::RLDCL), 0,
                            MVT::i64, 3/*#Ops*/, 2, 4, 6,  // Results = #7
/*  8195*/              OPC_EmitInteger, MVT::i32, PPC::sub_32,
/*  8198*/              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] })
/*  8206*/            0, // EndSwitchType
/*  8207*/          /*Scope*/ 77, /*->8285*/
/*  8208*/            OPC_RecordChild0, // #0 = $s1
/*  8209*/            OPC_MoveChild1,
/*  8210*/            OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
/*  8213*/            OPC_CheckChild0Integer, 1, 
/*  8215*/            OPC_RecordChild1, // #1 = $sa
/*  8216*/            OPC_CheckChild1Type, MVT::i32,
/*  8218*/            OPC_MoveParent,
/*  8219*/            OPC_CheckType, MVT::i32,
/*  8221*/            OPC_MoveParent,
/*  8222*/            OPC_CheckChild1Integer, 0, 
/*  8224*/            OPC_CheckChild2CondCode, ISD::SETEQ,
/*  8226*/            OPC_CheckType, MVT::i1,
/*  8228*/            OPC_MoveParent,
/*  8229*/            OPC_CheckType, MVT::i64,
/*  8231*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::i64, 0/*#Ops*/,  // Results = #2
/*  8237*/            OPC_EmitNode1, TARGET_VAL(PPC::NOR), 0,
                          MVT::i32, 2/*#Ops*/, 0, 0,  // Results = #3
/*  8245*/            OPC_EmitInteger, MVT::i32, 32, 
/*  8248*/            OPC_EmitNode2, TARGET_VAL(PPC::SUBFIC), 0,
                          MVT::i32, MVT::i32, 2/*#Ops*/, 1, 4,  // Results = #5 #6
/*  8257*/            OPC_EmitInteger, MVT::i32, 31, 
/*  8260*/            OPC_EmitInteger, MVT::i32, 31, 
/*  8263*/            OPC_EmitNode1, TARGET_VAL(PPC::RLWNM), 0,
                          MVT::i32, 4/*#Ops*/, 3, 5, 7, 8,  // Results = #9
/*  8273*/            OPC_EmitInteger, MVT::i32, PPC::sub_32,
/*  8276*/            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] })
/*  8285*/          /*Scope*/ 77, /*->8363*/
/*  8286*/            OPC_MoveChild0,
/*  8287*/            OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
/*  8290*/            OPC_CheckChild0Integer, 1, 
/*  8292*/            OPC_RecordChild1, // #0 = $sa
/*  8293*/            OPC_CheckChild1Type, MVT::i32,
/*  8295*/            OPC_MoveParent,
/*  8296*/            OPC_RecordChild1, // #1 = $s1
/*  8297*/            OPC_CheckType, MVT::i32,
/*  8299*/            OPC_MoveParent,
/*  8300*/            OPC_CheckChild1Integer, 0, 
/*  8302*/            OPC_CheckChild2CondCode, ISD::SETEQ,
/*  8304*/            OPC_CheckType, MVT::i1,
/*  8306*/            OPC_MoveParent,
/*  8307*/            OPC_CheckType, MVT::i64,
/*  8309*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::i64, 0/*#Ops*/,  // Results = #2
/*  8315*/            OPC_EmitNode1, TARGET_VAL(PPC::NOR), 0,
                          MVT::i32, 2/*#Ops*/, 1, 1,  // Results = #3
/*  8323*/            OPC_EmitInteger, MVT::i32, 32, 
/*  8326*/            OPC_EmitNode2, TARGET_VAL(PPC::SUBFIC), 0,
                          MVT::i32, MVT::i32, 2/*#Ops*/, 0, 4,  // Results = #5 #6
/*  8335*/            OPC_EmitInteger, MVT::i32, 31, 
/*  8338*/            OPC_EmitInteger, MVT::i32, 31, 
/*  8341*/            OPC_EmitNode1, TARGET_VAL(PPC::RLWNM), 0,
                          MVT::i32, 4/*#Ops*/, 3, 5, 7, 8,  // Results = #9
/*  8351*/            OPC_EmitInteger, MVT::i32, PPC::sub_32,
/*  8354*/            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] })
/*  8363*/          0, /*End of Scope*/
/*  8364*/        /*Scope*/ 109|128,65/*8429*/, /*->16795*/
/*  8366*/          OPC_RecordChild0, // #0 = $s1
/*  8367*/          OPC_Scope, 73|128,18/*2377*/, /*->10747*/ // 5 children in Scope
/*  8370*/            OPC_CheckChild0Type, MVT::i32,
/*  8372*/            OPC_Scope, 46|128,4/*558*/, /*->8933*/ // 3 children in Scope
/*  8375*/              OPC_CheckChild1Integer, 0, 
/*  8377*/              OPC_Scope, 24, /*->8403*/ // 12 children in Scope
/*  8379*/                OPC_CheckChild2CondCode, ISD::SETLT,
/*  8381*/                OPC_MoveParent,
/*  8382*/                OPC_CheckType, MVT::i32,
/*  8384*/                OPC_EmitInteger, MVT::i32, 1, 
/*  8387*/                OPC_EmitInteger, MVT::i32, 31, 
/*  8390*/                OPC_EmitInteger, MVT::i32, 31, 
/*  8393*/                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] })
/*  8403*/              /*Scope*/ 31, /*->8435*/
/*  8404*/                OPC_CheckChild2CondCode, ISD::SETEQ,
/*  8406*/                OPC_MoveParent,
/*  8407*/                OPC_CheckType, MVT::i32,
/*  8409*/                OPC_EmitNode1, TARGET_VAL(PPC::CNTLZW), 0,
                              MVT::i32, 1/*#Ops*/, 0,  // Results = #1
/*  8416*/                OPC_EmitInteger, MVT::i32, 27, 
/*  8419*/                OPC_EmitInteger, MVT::i32, 31, 
/*  8422*/                OPC_EmitInteger, MVT::i32, 31, 
/*  8425*/                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] })
/*  8435*/              /*Scope*/ 32, /*->8468*/
/*  8436*/                OPC_CheckChild2CondCode, ISD::SETGE,
/*  8438*/                OPC_MoveParent,
/*  8439*/                OPC_CheckType, MVT::i32,
/*  8441*/                OPC_EmitNode1, TARGET_VAL(PPC::NOR), 0,
                              MVT::i32, 2/*#Ops*/, 0, 0,  // Results = #1
/*  8449*/                OPC_EmitInteger, MVT::i32, 1, 
/*  8452*/                OPC_EmitInteger, MVT::i32, 31, 
/*  8455*/                OPC_EmitInteger, MVT::i32, 31, 
/*  8458*/                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] })
/*  8468*/              /*Scope*/ 44, /*->8513*/
/*  8469*/                OPC_CheckChild2CondCode, ISD::SETLT,
/*  8471*/                OPC_CheckType, MVT::i1,
/*  8473*/                OPC_MoveParent,
/*  8474*/                OPC_CheckType, MVT::i64,
/*  8476*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                              MVT::i64, 0/*#Ops*/,  // Results = #1
/*  8482*/                OPC_EmitInteger, MVT::i32, 1, 
/*  8485*/                OPC_EmitInteger, MVT::i32, 31, 
/*  8488*/                OPC_EmitInteger, MVT::i32, 31, 
/*  8491*/                OPC_EmitNode1, TARGET_VAL(PPC::RLWINM), 0,
                              MVT::i32, 4/*#Ops*/, 0, 2, 3, 4,  // Results = #5
/*  8501*/                OPC_EmitInteger, MVT::i32, PPC::sub_32,
/*  8504*/                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] })
/*  8513*/              /*Scope*/ 39, /*->8553*/
/*  8514*/                OPC_CheckChild2CondCode, ISD::SETGT,
/*  8516*/                OPC_MoveParent,
/*  8517*/                OPC_CheckType, MVT::i32,
/*  8519*/                OPC_EmitNode1, TARGET_VAL(PPC::NEG), 0,
                              MVT::i32, 1/*#Ops*/, 0,  // Results = #1
/*  8526*/                OPC_EmitNode1, TARGET_VAL(PPC::ANDC), 0,
                              MVT::i32, 2/*#Ops*/, 1, 0,  // Results = #2
/*  8534*/                OPC_EmitInteger, MVT::i32, 1, 
/*  8537*/                OPC_EmitInteger, MVT::i32, 31, 
/*  8540*/                OPC_EmitInteger, MVT::i32, 31, 
/*  8543*/                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] })
/*  8553*/              /*Scope*/ 39, /*->8593*/
/*  8554*/                OPC_CheckChild2CondCode, ISD::SETLE,
/*  8556*/                OPC_MoveParent,
/*  8557*/                OPC_CheckType, MVT::i32,
/*  8559*/                OPC_EmitNode1, TARGET_VAL(PPC::NEG), 0,
                              MVT::i32, 1/*#Ops*/, 0,  // Results = #1
/*  8566*/                OPC_EmitNode1, TARGET_VAL(PPC::ORC), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/*  8574*/                OPC_EmitInteger, MVT::i32, 1, 
/*  8577*/                OPC_EmitInteger, MVT::i32, 31, 
/*  8580*/                OPC_EmitInteger, MVT::i32, 31, 
/*  8583*/                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] })
/*  8593*/              /*Scope*/ 51, /*->8645*/
/*  8594*/                OPC_CheckChild2CondCode, ISD::SETEQ,
/*  8596*/                OPC_CheckType, MVT::i1,
/*  8598*/                OPC_MoveParent,
/*  8599*/                OPC_CheckType, MVT::i64,
/*  8601*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                              MVT::i64, 0/*#Ops*/,  // Results = #1
/*  8607*/                OPC_EmitNode1, TARGET_VAL(PPC::CNTLZW), 0,
                              MVT::i32, 1/*#Ops*/, 0,  // Results = #2
/*  8614*/                OPC_EmitInteger, MVT::i32, 27, 
/*  8617*/                OPC_EmitInteger, MVT::i32, 31, 
/*  8620*/                OPC_EmitInteger, MVT::i32, 31, 
/*  8623*/                OPC_EmitNode1, TARGET_VAL(PPC::RLWINM), 0,
                              MVT::i32, 4/*#Ops*/, 2, 3, 4, 5,  // Results = #6
/*  8633*/                OPC_EmitInteger, MVT::i32, PPC::sub_32,
/*  8636*/                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] })
/*  8645*/              /*Scope*/ 46, /*->8692*/
/*  8646*/                OPC_CheckChild2CondCode, ISD::SETNE,
/*  8648*/                OPC_MoveParent,
/*  8649*/                OPC_CheckType, MVT::i32,
/*  8651*/                OPC_EmitNode1, TARGET_VAL(PPC::CNTLZW), 0,
                              MVT::i32, 1/*#Ops*/, 0,  // Results = #1
/*  8658*/                OPC_EmitNode1, TARGET_VAL(PPC::CNTLZW), 0,
                              MVT::i32, 1/*#Ops*/, 0,  // Results = #2
/*  8665*/                OPC_EmitNode1, TARGET_VAL(PPC::NOR), 0,
                              MVT::i32, 2/*#Ops*/, 1, 2,  // Results = #3
/*  8673*/                OPC_EmitInteger, MVT::i32, 27, 
/*  8676*/                OPC_EmitInteger, MVT::i32, 31, 
/*  8679*/                OPC_EmitInteger, MVT::i32, 31, 
/*  8682*/                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] })
/*  8692*/              /*Scope*/ 52, /*->8745*/
/*  8693*/                OPC_CheckChild2CondCode, ISD::SETGE,
/*  8695*/                OPC_CheckType, MVT::i1,
/*  8697*/                OPC_MoveParent,
/*  8698*/                OPC_CheckType, MVT::i64,
/*  8700*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                              MVT::i64, 0/*#Ops*/,  // Results = #1
/*  8706*/                OPC_EmitNode1, TARGET_VAL(PPC::NOR), 0,
                              MVT::i32, 2/*#Ops*/, 0, 0,  // Results = #2
/*  8714*/                OPC_EmitInteger, MVT::i32, 1, 
/*  8717*/                OPC_EmitInteger, MVT::i32, 31, 
/*  8720*/                OPC_EmitInteger, MVT::i32, 31, 
/*  8723*/                OPC_EmitNode1, TARGET_VAL(PPC::RLWINM), 0,
                              MVT::i32, 4/*#Ops*/, 2, 3, 4, 5,  // Results = #6
/*  8733*/                OPC_EmitInteger, MVT::i32, PPC::sub_32,
/*  8736*/                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] })
/*  8745*/              /*Scope*/ 59, /*->8805*/
/*  8746*/                OPC_CheckChild2CondCode, ISD::SETGT,
/*  8748*/                OPC_CheckType, MVT::i1,
/*  8750*/                OPC_MoveParent,
/*  8751*/                OPC_CheckType, MVT::i64,
/*  8753*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                              MVT::i64, 0/*#Ops*/,  // Results = #1
/*  8759*/                OPC_EmitNode1, TARGET_VAL(PPC::NEG), 0,
                              MVT::i32, 1/*#Ops*/, 0,  // Results = #2
/*  8766*/                OPC_EmitNode1, TARGET_VAL(PPC::ANDC), 0,
                              MVT::i32, 2/*#Ops*/, 2, 0,  // Results = #3
/*  8774*/                OPC_EmitInteger, MVT::i32, 1, 
/*  8777*/                OPC_EmitInteger, MVT::i32, 31, 
/*  8780*/                OPC_EmitInteger, MVT::i32, 31, 
/*  8783*/                OPC_EmitNode1, TARGET_VAL(PPC::RLWINM), 0,
                              MVT::i32, 4/*#Ops*/, 3, 4, 5, 6,  // Results = #7
/*  8793*/                OPC_EmitInteger, MVT::i32, PPC::sub_32,
/*  8796*/                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] })
/*  8805*/              /*Scope*/ 59, /*->8865*/
/*  8806*/                OPC_CheckChild2CondCode, ISD::SETLE,
/*  8808*/                OPC_CheckType, MVT::i1,
/*  8810*/                OPC_MoveParent,
/*  8811*/                OPC_CheckType, MVT::i64,
/*  8813*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                              MVT::i64, 0/*#Ops*/,  // Results = #1
/*  8819*/                OPC_EmitNode1, TARGET_VAL(PPC::NEG), 0,
                              MVT::i32, 1/*#Ops*/, 0,  // Results = #2
/*  8826*/                OPC_EmitNode1, TARGET_VAL(PPC::ORC), 0,
                              MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/*  8834*/                OPC_EmitInteger, MVT::i32, 1, 
/*  8837*/                OPC_EmitInteger, MVT::i32, 31, 
/*  8840*/                OPC_EmitInteger, MVT::i32, 31, 
/*  8843*/                OPC_EmitNode1, TARGET_VAL(PPC::RLWINM), 0,
                              MVT::i32, 4/*#Ops*/, 3, 4, 5, 6,  // Results = #7
/*  8853*/                OPC_EmitInteger, MVT::i32, PPC::sub_32,
/*  8856*/                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] })
/*  8865*/              /*Scope*/ 66, /*->8932*/
/*  8866*/                OPC_CheckChild2CondCode, ISD::SETNE,
/*  8868*/                OPC_CheckType, MVT::i1,
/*  8870*/                OPC_MoveParent,
/*  8871*/                OPC_CheckType, MVT::i64,
/*  8873*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                              MVT::i64, 0/*#Ops*/,  // Results = #1
/*  8879*/                OPC_EmitNode1, TARGET_VAL(PPC::CNTLZW), 0,
                              MVT::i32, 1/*#Ops*/, 0,  // Results = #2
/*  8886*/                OPC_EmitNode1, TARGET_VAL(PPC::CNTLZW), 0,
                              MVT::i32, 1/*#Ops*/, 0,  // Results = #3
/*  8893*/                OPC_EmitNode1, TARGET_VAL(PPC::NOR), 0,
                              MVT::i32, 2/*#Ops*/, 2, 3,  // Results = #4
/*  8901*/                OPC_EmitInteger, MVT::i32, 27, 
/*  8904*/                OPC_EmitInteger, MVT::i32, 31, 
/*  8907*/                OPC_EmitInteger, MVT::i32, 31, 
/*  8910*/                OPC_EmitNode1, TARGET_VAL(PPC::RLWINM), 0,
                              MVT::i32, 4/*#Ops*/, 4, 5, 6, 7,  // Results = #8
/*  8920*/                OPC_EmitInteger, MVT::i32, PPC::sub_32,
/*  8923*/                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] })
/*  8932*/              0, /*End of Scope*/
/*  8933*/            /*Scope*/ 1|128,3/*385*/, /*->9320*/
/*  8935*/              OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/*  8946*/              OPC_Scope, 24, /*->8972*/ // 8 children in Scope
/*  8948*/                OPC_CheckChild2CondCode, ISD::SETLE,
/*  8950*/                OPC_MoveParent,
/*  8951*/                OPC_CheckType, MVT::i32,
/*  8953*/                OPC_EmitInteger, MVT::i32, 1, 
/*  8956*/                OPC_EmitInteger, MVT::i32, 31, 
/*  8959*/                OPC_EmitInteger, MVT::i32, 31, 
/*  8962*/                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] })
/*  8972*/              /*Scope*/ 32, /*->9005*/
/*  8973*/                OPC_CheckChild2CondCode, ISD::SETGT,
/*  8975*/                OPC_MoveParent,
/*  8976*/                OPC_CheckType, MVT::i32,
/*  8978*/                OPC_EmitNode1, TARGET_VAL(PPC::NOR), 0,
                              MVT::i32, 2/*#Ops*/, 0, 0,  // Results = #1
/*  8986*/                OPC_EmitInteger, MVT::i32, 1, 
/*  8989*/                OPC_EmitInteger, MVT::i32, 31, 
/*  8992*/                OPC_EmitInteger, MVT::i32, 31, 
/*  8995*/                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] })
/*  9005*/              /*Scope*/ 43, /*->9049*/
/*  9006*/                OPC_CheckChild2CondCode, ISD::SETLT,
/*  9008*/                OPC_MoveParent,
/*  9009*/                OPC_CheckType, MVT::i32,
/*  9011*/                OPC_EmitInteger, MVT::i32, 1, 
/*  9014*/                OPC_EmitNode1, TARGET_VAL(PPC::ADDI), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/*  9022*/                OPC_EmitNode1, TARGET_VAL(PPC::AND), 0,
                              MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/*  9030*/                OPC_EmitInteger, MVT::i32, 1, 
/*  9033*/                OPC_EmitInteger, MVT::i32, 31, 
/*  9036*/                OPC_EmitInteger, MVT::i32, 31, 
/*  9039*/                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] })
/*  9049*/              /*Scope*/ 43, /*->9093*/
/*  9050*/                OPC_CheckChild2CondCode, ISD::SETGE,
/*  9052*/                OPC_MoveParent,
/*  9053*/                OPC_CheckType, MVT::i32,
/*  9055*/                OPC_EmitInteger, MVT::i32, 1, 
/*  9058*/                OPC_EmitNode1, TARGET_VAL(PPC::ADDI), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/*  9066*/                OPC_EmitNode1, TARGET_VAL(PPC::NAND), 0,
                              MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/*  9074*/                OPC_EmitInteger, MVT::i32, 1, 
/*  9077*/                OPC_EmitInteger, MVT::i32, 31, 
/*  9080*/                OPC_EmitInteger, MVT::i32, 31, 
/*  9083*/                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] })
/*  9093*/              /*Scope*/ 44, /*->9138*/
/*  9094*/                OPC_CheckChild2CondCode, ISD::SETLE,
/*  9096*/                OPC_CheckType, MVT::i1,
/*  9098*/                OPC_MoveParent,
/*  9099*/                OPC_CheckType, MVT::i64,
/*  9101*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                              MVT::i64, 0/*#Ops*/,  // Results = #1
/*  9107*/                OPC_EmitInteger, MVT::i32, 1, 
/*  9110*/                OPC_EmitInteger, MVT::i32, 31, 
/*  9113*/                OPC_EmitInteger, MVT::i32, 31, 
/*  9116*/                OPC_EmitNode1, TARGET_VAL(PPC::RLWINM), 0,
                              MVT::i32, 4/*#Ops*/, 0, 2, 3, 4,  // Results = #5
/*  9126*/                OPC_EmitInteger, MVT::i32, PPC::sub_32,
/*  9129*/                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] })
/*  9138*/              /*Scope*/ 52, /*->9191*/
/*  9139*/                OPC_CheckChild2CondCode, ISD::SETGT,
/*  9141*/                OPC_CheckType, MVT::i1,
/*  9143*/                OPC_MoveParent,
/*  9144*/                OPC_CheckType, MVT::i64,
/*  9146*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                              MVT::i64, 0/*#Ops*/,  // Results = #1
/*  9152*/                OPC_EmitNode1, TARGET_VAL(PPC::NOR), 0,
                              MVT::i32, 2/*#Ops*/, 0, 0,  // Results = #2
/*  9160*/                OPC_EmitInteger, MVT::i32, 1, 
/*  9163*/                OPC_EmitInteger, MVT::i32, 31, 
/*  9166*/                OPC_EmitInteger, MVT::i32, 31, 
/*  9169*/                OPC_EmitNode1, TARGET_VAL(PPC::RLWINM), 0,
                              MVT::i32, 4/*#Ops*/, 2, 3, 4, 5,  // Results = #6
/*  9179*/                OPC_EmitInteger, MVT::i32, PPC::sub_32,
/*  9182*/                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] })
/*  9191*/              /*Scope*/ 63, /*->9255*/
/*  9192*/                OPC_CheckChild2CondCode, ISD::SETLT,
/*  9194*/                OPC_CheckType, MVT::i1,
/*  9196*/                OPC_MoveParent,
/*  9197*/                OPC_CheckType, MVT::i64,
/*  9199*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                              MVT::i64, 0/*#Ops*/,  // Results = #1
/*  9205*/                OPC_EmitInteger, MVT::i32, 1, 
/*  9208*/                OPC_EmitNode1, TARGET_VAL(PPC::ADDI), 0,
                              MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/*  9216*/                OPC_EmitNode1, TARGET_VAL(PPC::AND), 0,
                              MVT::i32, 2/*#Ops*/, 0, 3,  // Results = #4
/*  9224*/                OPC_EmitInteger, MVT::i32, 1, 
/*  9227*/                OPC_EmitInteger, MVT::i32, 31, 
/*  9230*/                OPC_EmitInteger, MVT::i32, 31, 
/*  9233*/                OPC_EmitNode1, TARGET_VAL(PPC::RLWINM), 0,
                              MVT::i32, 4/*#Ops*/, 4, 5, 6, 7,  // Results = #8
/*  9243*/                OPC_EmitInteger, MVT::i32, PPC::sub_32,
/*  9246*/                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] })
/*  9255*/              /*Scope*/ 63, /*->9319*/
/*  9256*/                OPC_CheckChild2CondCode, ISD::SETGE,
/*  9258*/                OPC_CheckType, MVT::i1,
/*  9260*/                OPC_MoveParent,
/*  9261*/                OPC_CheckType, MVT::i64,
/*  9263*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                              MVT::i64, 0/*#Ops*/,  // Results = #1
/*  9269*/                OPC_EmitInteger, MVT::i32, 1, 
/*  9272*/                OPC_EmitNode1, TARGET_VAL(PPC::ADDI), 0,
                              MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/*  9280*/                OPC_EmitNode1, TARGET_VAL(PPC::NAND), 0,
                              MVT::i32, 2/*#Ops*/, 0, 3,  // Results = #4
/*  9288*/                OPC_EmitInteger, MVT::i32, 1, 
/*  9291*/                OPC_EmitInteger, MVT::i32, 31, 
/*  9294*/                OPC_EmitInteger, MVT::i32, 31, 
/*  9297*/                OPC_EmitNode1, TARGET_VAL(PPC::RLWINM), 0,
                              MVT::i32, 4/*#Ops*/, 4, 5, 6, 7,  // Results = #8
/*  9307*/                OPC_EmitInteger, MVT::i32, PPC::sub_32,
/*  9310*/                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] })
/*  9319*/              0, /*End of Scope*/
/*  9320*/            /*Scope*/ 16|128,11/*1424*/, /*->10746*/
/*  9322*/              OPC_RecordChild1, // #1 = $imm
/*  9323*/              OPC_Scope, 96|128,6/*864*/, /*->10190*/ // 6 children in Scope
/*  9326*/                OPC_MoveChild1,
/*  9327*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  9330*/                OPC_Scope, 117, /*->9449*/ // 6 children in Scope
/*  9332*/                  OPC_CheckPredicate, 12, // Predicate_immZExt16
/*  9334*/                  OPC_MoveParent,
/*  9335*/                  OPC_CheckChild2CondCode, ISD::SETUGE,
/*  9337*/                  OPC_Scope, 53, /*->9392*/ // 2 children in Scope
/*  9339*/                    OPC_MoveParent,
/*  9340*/                    OPC_CheckType, MVT::i32,
/*  9342*/                    OPC_EmitConvertToTarget, 1,
/*  9344*/                    OPC_EmitNode1, TARGET_VAL(PPC::CMPLWI), 0,
                                  MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/*  9352*/                    OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/*  9355*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                  MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/*  9363*/                    OPC_EmitInteger, MVT::i32, 0, 
/*  9366*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                  MVT::i32, 1/*#Ops*/, 6,  // Results = #7
/*  9373*/                    OPC_EmitInteger, MVT::i32, 1, 
/*  9376*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                  MVT::i32, 1/*#Ops*/, 8,  // Results = #9
/*  9383*/                    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] }))
/*  9392*/                  /*Scope*/ 55, /*->9448*/
/*  9393*/                    OPC_CheckType, MVT::i1,
/*  9395*/                    OPC_MoveParent,
/*  9396*/                    OPC_CheckType, MVT::i64,
/*  9398*/                    OPC_EmitConvertToTarget, 1,
/*  9400*/                    OPC_EmitNode1, TARGET_VAL(PPC::CMPLWI), 0,
                                  MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/*  9408*/                    OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/*  9411*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                  MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/*  9419*/                    OPC_EmitInteger, MVT::i64, 0, 
/*  9422*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                  MVT::i64, 1/*#Ops*/, 6,  // Results = #7
/*  9429*/                    OPC_EmitInteger, MVT::i64, 1, 
/*  9432*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                  MVT::i64, 1/*#Ops*/, 8,  // Results = #9
/*  9439*/                    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] }))
/*  9448*/                  0, /*End of Scope*/
/*  9449*/                /*Scope*/ 117, /*->9567*/
/*  9450*/                  OPC_CheckPredicate, 13, // Predicate_imm32SExt16
/*  9452*/                  OPC_MoveParent,
/*  9453*/                  OPC_CheckChild2CondCode, ISD::SETGE,
/*  9455*/                  OPC_Scope, 53, /*->9510*/ // 2 children in Scope
/*  9457*/                    OPC_MoveParent,
/*  9458*/                    OPC_CheckType, MVT::i32,
/*  9460*/                    OPC_EmitConvertToTarget, 1,
/*  9462*/                    OPC_EmitNode1, TARGET_VAL(PPC::CMPWI), 0,
                                  MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/*  9470*/                    OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/*  9473*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                  MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/*  9481*/                    OPC_EmitInteger, MVT::i32, 0, 
/*  9484*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                  MVT::i32, 1/*#Ops*/, 6,  // Results = #7
/*  9491*/                    OPC_EmitInteger, MVT::i32, 1, 
/*  9494*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                  MVT::i32, 1/*#Ops*/, 8,  // Results = #9
/*  9501*/                    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] }))
/*  9510*/                  /*Scope*/ 55, /*->9566*/
/*  9511*/                    OPC_CheckType, MVT::i1,
/*  9513*/                    OPC_MoveParent,
/*  9514*/                    OPC_CheckType, MVT::i64,
/*  9516*/                    OPC_EmitConvertToTarget, 1,
/*  9518*/                    OPC_EmitNode1, TARGET_VAL(PPC::CMPWI), 0,
                                  MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/*  9526*/                    OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/*  9529*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                  MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/*  9537*/                    OPC_EmitInteger, MVT::i64, 0, 
/*  9540*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                  MVT::i64, 1/*#Ops*/, 6,  // Results = #7
/*  9547*/                    OPC_EmitInteger, MVT::i64, 1, 
/*  9550*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                  MVT::i64, 1/*#Ops*/, 8,  // Results = #9
/*  9557*/                    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] }))
/*  9566*/                  0, /*End of Scope*/
/*  9567*/                /*Scope*/ 117, /*->9685*/
/*  9568*/                  OPC_CheckPredicate, 12, // Predicate_immZExt16
/*  9570*/                  OPC_MoveParent,
/*  9571*/                  OPC_CheckChild2CondCode, ISD::SETULE,
/*  9573*/                  OPC_Scope, 53, /*->9628*/ // 2 children in Scope
/*  9575*/                    OPC_MoveParent,
/*  9576*/                    OPC_CheckType, MVT::i32,
/*  9578*/                    OPC_EmitConvertToTarget, 1,
/*  9580*/                    OPC_EmitNode1, TARGET_VAL(PPC::CMPLWI), 0,
                                  MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/*  9588*/                    OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/*  9591*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                  MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/*  9599*/                    OPC_EmitInteger, MVT::i32, 0, 
/*  9602*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                  MVT::i32, 1/*#Ops*/, 6,  // Results = #7
/*  9609*/                    OPC_EmitInteger, MVT::i32, 1, 
/*  9612*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                  MVT::i32, 1/*#Ops*/, 8,  // Results = #9
/*  9619*/                    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] }))
/*  9628*/                  /*Scope*/ 55, /*->9684*/
/*  9629*/                    OPC_CheckType, MVT::i1,
/*  9631*/                    OPC_MoveParent,
/*  9632*/                    OPC_CheckType, MVT::i64,
/*  9634*/                    OPC_EmitConvertToTarget, 1,
/*  9636*/                    OPC_EmitNode1, TARGET_VAL(PPC::CMPLWI), 0,
                                  MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/*  9644*/                    OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/*  9647*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                  MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/*  9655*/                    OPC_EmitInteger, MVT::i64, 0, 
/*  9658*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                  MVT::i64, 1/*#Ops*/, 6,  // Results = #7
/*  9665*/                    OPC_EmitInteger, MVT::i64, 1, 
/*  9668*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                  MVT::i64, 1/*#Ops*/, 8,  // Results = #9
/*  9675*/                    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] }))
/*  9684*/                  0, /*End of Scope*/
/*  9685*/                /*Scope*/ 107|128,1/*235*/, /*->9922*/
/*  9687*/                  OPC_CheckPredicate, 13, // Predicate_imm32SExt16
/*  9689*/                  OPC_MoveParent,
/*  9690*/                  OPC_Scope, 114, /*->9806*/ // 2 children in Scope
/*  9692*/                    OPC_CheckChild2CondCode, ISD::SETLE,
/*  9694*/                    OPC_Scope, 53, /*->9749*/ // 2 children in Scope
/*  9696*/                      OPC_MoveParent,
/*  9697*/                      OPC_CheckType, MVT::i32,
/*  9699*/                      OPC_EmitConvertToTarget, 1,
/*  9701*/                      OPC_EmitNode1, TARGET_VAL(PPC::CMPWI), 0,
                                    MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/*  9709*/                      OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/*  9712*/                      OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                    MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/*  9720*/                      OPC_EmitInteger, MVT::i32, 0, 
/*  9723*/                      OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                    MVT::i32, 1/*#Ops*/, 6,  // Results = #7
/*  9730*/                      OPC_EmitInteger, MVT::i32, 1, 
/*  9733*/                      OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                    MVT::i32, 1/*#Ops*/, 8,  // Results = #9
/*  9740*/                      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] }))
/*  9749*/                    /*Scope*/ 55, /*->9805*/
/*  9750*/                      OPC_CheckType, MVT::i1,
/*  9752*/                      OPC_MoveParent,
/*  9753*/                      OPC_CheckType, MVT::i64,
/*  9755*/                      OPC_EmitConvertToTarget, 1,
/*  9757*/                      OPC_EmitNode1, TARGET_VAL(PPC::CMPWI), 0,
                                    MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/*  9765*/                      OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/*  9768*/                      OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                    MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/*  9776*/                      OPC_EmitInteger, MVT::i64, 0, 
/*  9779*/                      OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                    MVT::i64, 1/*#Ops*/, 6,  // Results = #7
/*  9786*/                      OPC_EmitInteger, MVT::i64, 1, 
/*  9789*/                      OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                    MVT::i64, 1/*#Ops*/, 8,  // Results = #9
/*  9796*/                      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] }))
/*  9805*/                    0, /*End of Scope*/
/*  9806*/                  /*Scope*/ 114, /*->9921*/
/*  9807*/                    OPC_CheckChild2CondCode, ISD::SETNE,
/*  9809*/                    OPC_Scope, 53, /*->9864*/ // 2 children in Scope
/*  9811*/                      OPC_MoveParent,
/*  9812*/                      OPC_CheckType, MVT::i32,
/*  9814*/                      OPC_EmitConvertToTarget, 1,
/*  9816*/                      OPC_EmitNode1, TARGET_VAL(PPC::CMPWI), 0,
                                    MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/*  9824*/                      OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/*  9827*/                      OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                    MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/*  9835*/                      OPC_EmitInteger, MVT::i32, 0, 
/*  9838*/                      OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                    MVT::i32, 1/*#Ops*/, 6,  // Results = #7
/*  9845*/                      OPC_EmitInteger, MVT::i32, 1, 
/*  9848*/                      OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                    MVT::i32, 1/*#Ops*/, 8,  // Results = #9
/*  9855*/                      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] }))
/*  9864*/                    /*Scope*/ 55, /*->9920*/
/*  9865*/                      OPC_CheckType, MVT::i1,
/*  9867*/                      OPC_MoveParent,
/*  9868*/                      OPC_CheckType, MVT::i64,
/*  9870*/                      OPC_EmitConvertToTarget, 1,
/*  9872*/                      OPC_EmitNode1, TARGET_VAL(PPC::CMPWI), 0,
                                    MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/*  9880*/                      OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/*  9883*/                      OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                    MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/*  9891*/                      OPC_EmitInteger, MVT::i64, 0, 
/*  9894*/                      OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                    MVT::i64, 1/*#Ops*/, 6,  // Results = #7
/*  9901*/                      OPC_EmitInteger, MVT::i64, 1, 
/*  9904*/                      OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                    MVT::i64, 1/*#Ops*/, 8,  // Results = #9
/*  9911*/                      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] }))
/*  9920*/                    0, /*End of Scope*/
/*  9921*/                  0, /*End of Scope*/
/*  9922*/                /*Scope*/ 117, /*->10040*/
/*  9923*/                  OPC_CheckPredicate, 12, // Predicate_immZExt16
/*  9925*/                  OPC_MoveParent,
/*  9926*/                  OPC_CheckChild2CondCode, ISD::SETNE,
/*  9928*/                  OPC_Scope, 53, /*->9983*/ // 2 children in Scope
/*  9930*/                    OPC_MoveParent,
/*  9931*/                    OPC_CheckType, MVT::i32,
/*  9933*/                    OPC_EmitConvertToTarget, 1,
/*  9935*/                    OPC_EmitNode1, TARGET_VAL(PPC::CMPLWI), 0,
                                  MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/*  9943*/                    OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/*  9946*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                  MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/*  9954*/                    OPC_EmitInteger, MVT::i32, 0, 
/*  9957*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                  MVT::i32, 1/*#Ops*/, 6,  // Results = #7
/*  9964*/                    OPC_EmitInteger, MVT::i32, 1, 
/*  9967*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                  MVT::i32, 1/*#Ops*/, 8,  // Results = #9
/*  9974*/                    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] }))
/*  9983*/                  /*Scope*/ 55, /*->10039*/
/*  9984*/                    OPC_CheckType, MVT::i1,
/*  9986*/                    OPC_MoveParent,
/*  9987*/                    OPC_CheckType, MVT::i64,
/*  9989*/                    OPC_EmitConvertToTarget, 1,
/*  9991*/                    OPC_EmitNode1, TARGET_VAL(PPC::CMPLWI), 0,
                                  MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/*  9999*/                    OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 10002*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                  MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 10010*/                    OPC_EmitInteger, MVT::i64, 0, 
/* 10013*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                  MVT::i64, 1/*#Ops*/, 6,  // Results = #7
/* 10020*/                    OPC_EmitInteger, MVT::i64, 1, 
/* 10023*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                  MVT::i64, 1/*#Ops*/, 8,  // Results = #9
/* 10030*/                    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] }))
/* 10039*/                  0, /*End of Scope*/
/* 10040*/                /*Scope*/ 19|128,1/*147*/, /*->10189*/
/* 10042*/                  OPC_MoveParent,
/* 10043*/                  OPC_CheckChild2CondCode, ISD::SETNE,
/* 10045*/                  OPC_Scope, 69, /*->10116*/ // 2 children in Scope
/* 10047*/                    OPC_MoveParent,
/* 10048*/                    OPC_CheckType, MVT::i32,
/* 10050*/                    OPC_EmitConvertToTarget, 1,
/* 10052*/                    OPC_EmitNodeXForm, 0, 2, // HI16
/* 10055*/                    OPC_EmitNode1, TARGET_VAL(PPC::XORIS), 0,
                                  MVT::i32, 2/*#Ops*/, 0, 3,  // Results = #4
/* 10063*/                    OPC_EmitConvertToTarget, 1,
/* 10065*/                    OPC_EmitNodeXForm, 1, 5, // LO16
/* 10068*/                    OPC_EmitNode1, TARGET_VAL(PPC::CMPLWI), 0,
                                  MVT::i32, 2/*#Ops*/, 4, 6,  // Results = #7
/* 10076*/                    OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 10079*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                  MVT::i1, 2/*#Ops*/, 7, 8,  // Results = #9
/* 10087*/                    OPC_EmitInteger, MVT::i32, 0, 
/* 10090*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                  MVT::i32, 1/*#Ops*/, 10,  // Results = #11
/* 10097*/                    OPC_EmitInteger, MVT::i32, 1, 
/* 10100*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                  MVT::i32, 1/*#Ops*/, 12,  // Results = #13
/* 10107*/                    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] }))
/* 10116*/                  /*Scope*/ 71, /*->10188*/
/* 10117*/                    OPC_CheckType, MVT::i1,
/* 10119*/                    OPC_MoveParent,
/* 10120*/                    OPC_CheckType, MVT::i64,
/* 10122*/                    OPC_EmitConvertToTarget, 1,
/* 10124*/                    OPC_EmitNodeXForm, 0, 2, // HI16
/* 10127*/                    OPC_EmitNode1, TARGET_VAL(PPC::XORIS), 0,
                                  MVT::i32, 2/*#Ops*/, 0, 3,  // Results = #4
/* 10135*/                    OPC_EmitConvertToTarget, 1,
/* 10137*/                    OPC_EmitNodeXForm, 1, 5, // LO16
/* 10140*/                    OPC_EmitNode1, TARGET_VAL(PPC::CMPLWI), 0,
                                  MVT::i32, 2/*#Ops*/, 4, 6,  // Results = #7
/* 10148*/                    OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 10151*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                  MVT::i1, 2/*#Ops*/, 7, 8,  // Results = #9
/* 10159*/                    OPC_EmitInteger, MVT::i64, 0, 
/* 10162*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                  MVT::i64, 1/*#Ops*/, 10,  // Results = #11
/* 10169*/                    OPC_EmitInteger, MVT::i64, 1, 
/* 10172*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                  MVT::i64, 1/*#Ops*/, 12,  // Results = #13
/* 10179*/                    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] }))
/* 10188*/                  0, /*End of Scope*/
/* 10189*/                0, /*End of Scope*/
/* 10190*/              /*Scope*/ 110, /*->10301*/
/* 10191*/                OPC_CheckChild2CondCode, ISD::SETUGE,
/* 10193*/                OPC_Scope, 51, /*->10246*/ // 2 children in Scope
/* 10195*/                  OPC_MoveParent,
/* 10196*/                  OPC_CheckType, MVT::i32,
/* 10198*/                  OPC_EmitNode1, TARGET_VAL(PPC::CMPLW), 0,
                                MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 10206*/                  OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 10209*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 10217*/                  OPC_EmitInteger, MVT::i32, 0, 
/* 10220*/                  OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 10227*/                  OPC_EmitInteger, MVT::i32, 1, 
/* 10230*/                  OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 10237*/                  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] }))
/* 10246*/                /*Scope*/ 53, /*->10300*/
/* 10247*/                  OPC_CheckType, MVT::i1,
/* 10249*/                  OPC_MoveParent,
/* 10250*/                  OPC_CheckType, MVT::i64,
/* 10252*/                  OPC_EmitNode1, TARGET_VAL(PPC::CMPLW), 0,
                                MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 10260*/                  OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 10263*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 10271*/                  OPC_EmitInteger, MVT::i64, 0, 
/* 10274*/                  OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 10281*/                  OPC_EmitInteger, MVT::i64, 1, 
/* 10284*/                  OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 10291*/                  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] }))
/* 10300*/                0, /*End of Scope*/
/* 10301*/              /*Scope*/ 110, /*->10412*/
/* 10302*/                OPC_CheckChild2CondCode, ISD::SETGE,
/* 10304*/                OPC_Scope, 51, /*->10357*/ // 2 children in Scope
/* 10306*/                  OPC_MoveParent,
/* 10307*/                  OPC_CheckType, MVT::i32,
/* 10309*/                  OPC_EmitNode1, TARGET_VAL(PPC::CMPW), 0,
                                MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 10317*/                  OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 10320*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 10328*/                  OPC_EmitInteger, MVT::i32, 0, 
/* 10331*/                  OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 10338*/                  OPC_EmitInteger, MVT::i32, 1, 
/* 10341*/                  OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 10348*/                  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] }))
/* 10357*/                /*Scope*/ 53, /*->10411*/
/* 10358*/                  OPC_CheckType, MVT::i1,
/* 10360*/                  OPC_MoveParent,
/* 10361*/                  OPC_CheckType, MVT::i64,
/* 10363*/                  OPC_EmitNode1, TARGET_VAL(PPC::CMPW), 0,
                                MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 10371*/                  OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 10374*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 10382*/                  OPC_EmitInteger, MVT::i64, 0, 
/* 10385*/                  OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 10392*/                  OPC_EmitInteger, MVT::i64, 1, 
/* 10395*/                  OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 10402*/                  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] }))
/* 10411*/                0, /*End of Scope*/
/* 10412*/              /*Scope*/ 110, /*->10523*/
/* 10413*/                OPC_CheckChild2CondCode, ISD::SETULE,
/* 10415*/                OPC_Scope, 51, /*->10468*/ // 2 children in Scope
/* 10417*/                  OPC_MoveParent,
/* 10418*/                  OPC_CheckType, MVT::i32,
/* 10420*/                  OPC_EmitNode1, TARGET_VAL(PPC::CMPLW), 0,
                                MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 10428*/                  OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 10431*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 10439*/                  OPC_EmitInteger, MVT::i32, 0, 
/* 10442*/                  OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 10449*/                  OPC_EmitInteger, MVT::i32, 1, 
/* 10452*/                  OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 10459*/                  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] }))
/* 10468*/                /*Scope*/ 53, /*->10522*/
/* 10469*/                  OPC_CheckType, MVT::i1,
/* 10471*/                  OPC_MoveParent,
/* 10472*/                  OPC_CheckType, MVT::i64,
/* 10474*/                  OPC_EmitNode1, TARGET_VAL(PPC::CMPLW), 0,
                                MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 10482*/                  OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 10485*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 10493*/                  OPC_EmitInteger, MVT::i64, 0, 
/* 10496*/                  OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 10503*/                  OPC_EmitInteger, MVT::i64, 1, 
/* 10506*/                  OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 10513*/                  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] }))
/* 10522*/                0, /*End of Scope*/
/* 10523*/              /*Scope*/ 110, /*->10634*/
/* 10524*/                OPC_CheckChild2CondCode, ISD::SETLE,
/* 10526*/                OPC_Scope, 51, /*->10579*/ // 2 children in Scope
/* 10528*/                  OPC_MoveParent,
/* 10529*/                  OPC_CheckType, MVT::i32,
/* 10531*/                  OPC_EmitNode1, TARGET_VAL(PPC::CMPW), 0,
                                MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 10539*/                  OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 10542*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 10550*/                  OPC_EmitInteger, MVT::i32, 0, 
/* 10553*/                  OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 10560*/                  OPC_EmitInteger, MVT::i32, 1, 
/* 10563*/                  OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 10570*/                  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] }))
/* 10579*/                /*Scope*/ 53, /*->10633*/
/* 10580*/                  OPC_CheckType, MVT::i1,
/* 10582*/                  OPC_MoveParent,
/* 10583*/                  OPC_CheckType, MVT::i64,
/* 10585*/                  OPC_EmitNode1, TARGET_VAL(PPC::CMPW), 0,
                                MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 10593*/                  OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 10596*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 10604*/                  OPC_EmitInteger, MVT::i64, 0, 
/* 10607*/                  OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 10614*/                  OPC_EmitInteger, MVT::i64, 1, 
/* 10617*/                  OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 10624*/                  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] }))
/* 10633*/                0, /*End of Scope*/
/* 10634*/              /*Scope*/ 110, /*->10745*/
/* 10635*/                OPC_CheckChild2CondCode, ISD::SETNE,
/* 10637*/                OPC_Scope, 51, /*->10690*/ // 2 children in Scope
/* 10639*/                  OPC_MoveParent,
/* 10640*/                  OPC_CheckType, MVT::i32,
/* 10642*/                  OPC_EmitNode1, TARGET_VAL(PPC::CMPW), 0,
                                MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 10650*/                  OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 10653*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 10661*/                  OPC_EmitInteger, MVT::i32, 0, 
/* 10664*/                  OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 10671*/                  OPC_EmitInteger, MVT::i32, 1, 
/* 10674*/                  OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 10681*/                  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] }))
/* 10690*/                /*Scope*/ 53, /*->10744*/
/* 10691*/                  OPC_CheckType, MVT::i1,
/* 10693*/                  OPC_MoveParent,
/* 10694*/                  OPC_CheckType, MVT::i64,
/* 10696*/                  OPC_EmitNode1, TARGET_VAL(PPC::CMPW), 0,
                                MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 10704*/                  OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 10707*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 10715*/                  OPC_EmitInteger, MVT::i64, 0, 
/* 10718*/                  OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 10725*/                  OPC_EmitInteger, MVT::i64, 1, 
/* 10728*/                  OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 10735*/                  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] }))
/* 10744*/                0, /*End of Scope*/
/* 10745*/              0, /*End of Scope*/
/* 10746*/            0, /*End of Scope*/
/* 10747*/          /*Scope*/ 53|128,17/*2229*/, /*->12978*/
/* 10749*/            OPC_CheckChild0Type, MVT::i64,
/* 10751*/            OPC_Scope, 84|128,3/*468*/, /*->11222*/ // 3 children in Scope
/* 10754*/              OPC_CheckChild1Integer, 0, 
/* 10756*/              OPC_Scope, 22, /*->10780*/ // 12 children in Scope
/* 10758*/                OPC_CheckChild2CondCode, ISD::SETLT,
/* 10760*/                OPC_CheckType, MVT::i1,
/* 10762*/                OPC_MoveParent,
/* 10763*/                OPC_CheckType, MVT::i64,
/* 10765*/                OPC_EmitInteger, MVT::i32, 1, 
/* 10768*/                OPC_EmitInteger, MVT::i32, 63, 
/* 10771*/                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] })
/* 10780*/              /*Scope*/ 29, /*->10810*/
/* 10781*/                OPC_CheckChild2CondCode, ISD::SETEQ,
/* 10783*/                OPC_CheckType, MVT::i1,
/* 10785*/                OPC_MoveParent,
/* 10786*/                OPC_CheckType, MVT::i64,
/* 10788*/                OPC_EmitNode1, TARGET_VAL(PPC::CNTLZD), 0,
                              MVT::i64, 1/*#Ops*/, 0,  // Results = #1
/* 10795*/                OPC_EmitInteger, MVT::i32, 58, 
/* 10798*/                OPC_EmitInteger, MVT::i32, 63, 
/* 10801*/                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] })
/* 10810*/              /*Scope*/ 31, /*->10842*/
/* 10811*/                OPC_CheckChild2CondCode, ISD::SETLT,
/* 10813*/                OPC_MoveParent,
/* 10814*/                OPC_CheckType, MVT::i32,
/* 10816*/                OPC_EmitInteger, MVT::i32, 1, 
/* 10819*/                OPC_EmitInteger, MVT::i32, 63, 
/* 10822*/                OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                              MVT::i64, 3/*#Ops*/, 0, 1, 2,  // Results = #3
/* 10831*/                OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 10834*/                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] })
/* 10842*/              /*Scope*/ 30, /*->10873*/
/* 10843*/                OPC_CheckChild2CondCode, ISD::SETGE,
/* 10845*/                OPC_CheckType, MVT::i1,
/* 10847*/                OPC_MoveParent,
/* 10848*/                OPC_CheckType, MVT::i64,
/* 10850*/                OPC_EmitNode1, TARGET_VAL(PPC::NOR8), 0,
                              MVT::i64, 2/*#Ops*/, 0, 0,  // Results = #1
/* 10858*/                OPC_EmitInteger, MVT::i32, 1, 
/* 10861*/                OPC_EmitInteger, MVT::i32, 63, 
/* 10864*/                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] })
/* 10873*/              /*Scope*/ 38, /*->10912*/
/* 10874*/                OPC_CheckChild2CondCode, ISD::SETEQ,
/* 10876*/                OPC_MoveParent,
/* 10877*/                OPC_CheckType, MVT::i32,
/* 10879*/                OPC_EmitNode1, TARGET_VAL(PPC::CNTLZD), 0,
                              MVT::i64, 1/*#Ops*/, 0,  // Results = #1
/* 10886*/                OPC_EmitInteger, MVT::i32, 58, 
/* 10889*/                OPC_EmitInteger, MVT::i32, 63, 
/* 10892*/                OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                              MVT::i64, 3/*#Ops*/, 1, 2, 3,  // Results = #4
/* 10901*/                OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 10904*/                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] })
/* 10912*/              /*Scope*/ 39, /*->10952*/
/* 10913*/                OPC_CheckChild2CondCode, ISD::SETGE,
/* 10915*/                OPC_MoveParent,
/* 10916*/                OPC_CheckType, MVT::i32,
/* 10918*/                OPC_EmitNode1, TARGET_VAL(PPC::NOR8), 0,
                              MVT::i64, 2/*#Ops*/, 0, 0,  // Results = #1
/* 10926*/                OPC_EmitInteger, MVT::i32, 1, 
/* 10929*/                OPC_EmitInteger, MVT::i32, 63, 
/* 10932*/                OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                              MVT::i64, 3/*#Ops*/, 1, 2, 3,  // Results = #4
/* 10941*/                OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 10944*/                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] })
/* 10952*/              /*Scope*/ 37, /*->10990*/
/* 10953*/                OPC_CheckChild2CondCode, ISD::SETGT,
/* 10955*/                OPC_CheckType, MVT::i1,
/* 10957*/                OPC_MoveParent,
/* 10958*/                OPC_CheckType, MVT::i64,
/* 10960*/                OPC_EmitNode1, TARGET_VAL(PPC::NEG8), 0,
                              MVT::i64, 1/*#Ops*/, 0,  // Results = #1
/* 10967*/                OPC_EmitNode1, TARGET_VAL(PPC::ANDC8), 0,
                              MVT::i64, 2/*#Ops*/, 1, 0,  // Results = #2
/* 10975*/                OPC_EmitInteger, MVT::i32, 1, 
/* 10978*/                OPC_EmitInteger, MVT::i32, 63, 
/* 10981*/                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] })
/* 10990*/              /*Scope*/ 37, /*->11028*/
/* 10991*/                OPC_CheckChild2CondCode, ISD::SETLE,
/* 10993*/                OPC_CheckType, MVT::i1,
/* 10995*/                OPC_MoveParent,
/* 10996*/                OPC_CheckType, MVT::i64,
/* 10998*/                OPC_EmitNode1, TARGET_VAL(PPC::NEG8), 0,
                              MVT::i64, 1/*#Ops*/, 0,  // Results = #1
/* 11005*/                OPC_EmitNode1, TARGET_VAL(PPC::ORC8), 0,
                              MVT::i64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 11013*/                OPC_EmitInteger, MVT::i32, 1, 
/* 11016*/                OPC_EmitInteger, MVT::i32, 63, 
/* 11019*/                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] })
/* 11028*/              /*Scope*/ 44, /*->11073*/
/* 11029*/                OPC_CheckChild2CondCode, ISD::SETNE,
/* 11031*/                OPC_CheckType, MVT::i1,
/* 11033*/                OPC_MoveParent,
/* 11034*/                OPC_CheckType, MVT::i64,
/* 11036*/                OPC_EmitNode1, TARGET_VAL(PPC::CNTLZD), 0,
                              MVT::i64, 1/*#Ops*/, 0,  // Results = #1
/* 11043*/                OPC_EmitNode1, TARGET_VAL(PPC::CNTLZD), 0,
                              MVT::i64, 1/*#Ops*/, 0,  // Results = #2
/* 11050*/                OPC_EmitNode1, TARGET_VAL(PPC::NOR8), 0,
                              MVT::i64, 2/*#Ops*/, 1, 2,  // Results = #3
/* 11058*/                OPC_EmitInteger, MVT::i32, 58, 
/* 11061*/                OPC_EmitInteger, MVT::i32, 63, 
/* 11064*/                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] })
/* 11073*/              /*Scope*/ 46, /*->11120*/
/* 11074*/                OPC_CheckChild2CondCode, ISD::SETGT,
/* 11076*/                OPC_MoveParent,
/* 11077*/                OPC_CheckType, MVT::i32,
/* 11079*/                OPC_EmitNode1, TARGET_VAL(PPC::NEG8), 0,
                              MVT::i64, 1/*#Ops*/, 0,  // Results = #1
/* 11086*/                OPC_EmitNode1, TARGET_VAL(PPC::ANDC8), 0,
                              MVT::i64, 2/*#Ops*/, 1, 0,  // Results = #2
/* 11094*/                OPC_EmitInteger, MVT::i32, 1, 
/* 11097*/                OPC_EmitInteger, MVT::i32, 63, 
/* 11100*/                OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                              MVT::i64, 3/*#Ops*/, 2, 3, 4,  // Results = #5
/* 11109*/                OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 11112*/                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] })
/* 11120*/              /*Scope*/ 46, /*->11167*/
/* 11121*/                OPC_CheckChild2CondCode, ISD::SETLE,
/* 11123*/                OPC_MoveParent,
/* 11124*/                OPC_CheckType, MVT::i32,
/* 11126*/                OPC_EmitNode1, TARGET_VAL(PPC::NEG8), 0,
                              MVT::i64, 1/*#Ops*/, 0,  // Results = #1
/* 11133*/                OPC_EmitNode1, TARGET_VAL(PPC::ORC8), 0,
                              MVT::i64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 11141*/                OPC_EmitInteger, MVT::i32, 1, 
/* 11144*/                OPC_EmitInteger, MVT::i32, 63, 
/* 11147*/                OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                              MVT::i64, 3/*#Ops*/, 2, 3, 4,  // Results = #5
/* 11156*/                OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 11159*/                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] })
/* 11167*/              /*Scope*/ 53, /*->11221*/
/* 11168*/                OPC_CheckChild2CondCode, ISD::SETNE,
/* 11170*/                OPC_MoveParent,
/* 11171*/                OPC_CheckType, MVT::i32,
/* 11173*/                OPC_EmitNode1, TARGET_VAL(PPC::CNTLZD), 0,
                              MVT::i64, 1/*#Ops*/, 0,  // Results = #1
/* 11180*/                OPC_EmitNode1, TARGET_VAL(PPC::CNTLZD), 0,
                              MVT::i64, 1/*#Ops*/, 0,  // Results = #2
/* 11187*/                OPC_EmitNode1, TARGET_VAL(PPC::NOR8), 0,
                              MVT::i64, 2/*#Ops*/, 1, 2,  // Results = #3
/* 11195*/                OPC_EmitInteger, MVT::i32, 58, 
/* 11198*/                OPC_EmitInteger, MVT::i32, 63, 
/* 11201*/                OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                              MVT::i64, 3/*#Ops*/, 3, 4, 5,  // Results = #6
/* 11210*/                OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 11213*/                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] })
/* 11221*/              0, /*End of Scope*/
/* 11222*/            /*Scope*/ 69|128,2/*325*/, /*->11549*/
/* 11224*/              OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 11235*/              OPC_Scope, 22, /*->11259*/ // 8 children in Scope
/* 11237*/                OPC_CheckChild2CondCode, ISD::SETLE,
/* 11239*/                OPC_CheckType, MVT::i1,
/* 11241*/                OPC_MoveParent,
/* 11242*/                OPC_CheckType, MVT::i64,
/* 11244*/                OPC_EmitInteger, MVT::i32, 1, 
/* 11247*/                OPC_EmitInteger, MVT::i32, 63, 
/* 11250*/                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] })
/* 11259*/              /*Scope*/ 30, /*->11290*/
/* 11260*/                OPC_CheckChild2CondCode, ISD::SETGT,
/* 11262*/                OPC_CheckType, MVT::i1,
/* 11264*/                OPC_MoveParent,
/* 11265*/                OPC_CheckType, MVT::i64,
/* 11267*/                OPC_EmitNode1, TARGET_VAL(PPC::NOR8), 0,
                              MVT::i64, 2/*#Ops*/, 0, 0,  // Results = #1
/* 11275*/                OPC_EmitInteger, MVT::i32, 1, 
/* 11278*/                OPC_EmitInteger, MVT::i32, 63, 
/* 11281*/                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] })
/* 11290*/              /*Scope*/ 31, /*->11322*/
/* 11291*/                OPC_CheckChild2CondCode, ISD::SETLE,
/* 11293*/                OPC_MoveParent,
/* 11294*/                OPC_CheckType, MVT::i32,
/* 11296*/                OPC_EmitInteger, MVT::i32, 1, 
/* 11299*/                OPC_EmitInteger, MVT::i32, 63, 
/* 11302*/                OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                              MVT::i64, 3/*#Ops*/, 0, 1, 2,  // Results = #3
/* 11311*/                OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 11314*/                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] })
/* 11322*/              /*Scope*/ 41, /*->11364*/
/* 11323*/                OPC_CheckChild2CondCode, ISD::SETLT,
/* 11325*/                OPC_CheckType, MVT::i1,
/* 11327*/                OPC_MoveParent,
/* 11328*/                OPC_CheckType, MVT::i64,
/* 11330*/                OPC_EmitInteger, MVT::i64, 1, 
/* 11333*/                OPC_EmitNode1, TARGET_VAL(PPC::ADDI8), 0,
                              MVT::i64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 11341*/                OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                              MVT::i64, 2/*#Ops*/, 0, 2,  // Results = #3
/* 11349*/                OPC_EmitInteger, MVT::i32, 1, 
/* 11352*/                OPC_EmitInteger, MVT::i32, 63, 
/* 11355*/                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] })
/* 11364*/              /*Scope*/ 41, /*->11406*/
/* 11365*/                OPC_CheckChild2CondCode, ISD::SETGE,
/* 11367*/                OPC_CheckType, MVT::i1,
/* 11369*/                OPC_MoveParent,
/* 11370*/                OPC_CheckType, MVT::i64,
/* 11372*/                OPC_EmitInteger, MVT::i64, 1, 
/* 11375*/                OPC_EmitNode1, TARGET_VAL(PPC::ADDI8), 0,
                              MVT::i64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 11383*/                OPC_EmitNode1, TARGET_VAL(PPC::NAND8), 0,
                              MVT::i64, 2/*#Ops*/, 0, 2,  // Results = #3
/* 11391*/                OPC_EmitInteger, MVT::i32, 1, 
/* 11394*/                OPC_EmitInteger, MVT::i32, 63, 
/* 11397*/                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] })
/* 11406*/              /*Scope*/ 39, /*->11446*/
/* 11407*/                OPC_CheckChild2CondCode, ISD::SETGT,
/* 11409*/                OPC_MoveParent,
/* 11410*/                OPC_CheckType, MVT::i32,
/* 11412*/                OPC_EmitNode1, TARGET_VAL(PPC::NOR8), 0,
                              MVT::i64, 2/*#Ops*/, 0, 0,  // Results = #1
/* 11420*/                OPC_EmitInteger, MVT::i32, 1, 
/* 11423*/                OPC_EmitInteger, MVT::i32, 63, 
/* 11426*/                OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                              MVT::i64, 3/*#Ops*/, 1, 2, 3,  // Results = #4
/* 11435*/                OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 11438*/                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] })
/* 11446*/              /*Scope*/ 50, /*->11497*/
/* 11447*/                OPC_CheckChild2CondCode, ISD::SETLT,
/* 11449*/                OPC_MoveParent,
/* 11450*/                OPC_CheckType, MVT::i32,
/* 11452*/                OPC_EmitInteger, MVT::i64, 1, 
/* 11455*/                OPC_EmitNode1, TARGET_VAL(PPC::ADDI8), 0,
                              MVT::i64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 11463*/                OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                              MVT::i64, 2/*#Ops*/, 0, 2,  // Results = #3
/* 11471*/                OPC_EmitInteger, MVT::i32, 1, 
/* 11474*/                OPC_EmitInteger, MVT::i32, 63, 
/* 11477*/                OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                              MVT::i64, 3/*#Ops*/, 3, 4, 5,  // Results = #6
/* 11486*/                OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 11489*/                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] })
/* 11497*/              /*Scope*/ 50, /*->11548*/
/* 11498*/                OPC_CheckChild2CondCode, ISD::SETGE,
/* 11500*/                OPC_MoveParent,
/* 11501*/                OPC_CheckType, MVT::i32,
/* 11503*/                OPC_EmitInteger, MVT::i64, 1, 
/* 11506*/                OPC_EmitNode1, TARGET_VAL(PPC::ADDI8), 0,
                              MVT::i64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 11514*/                OPC_EmitNode1, TARGET_VAL(PPC::NAND8), 0,
                              MVT::i64, 2/*#Ops*/, 0, 2,  // Results = #3
/* 11522*/                OPC_EmitInteger, MVT::i32, 1, 
/* 11525*/                OPC_EmitInteger, MVT::i32, 63, 
/* 11528*/                OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                              MVT::i64, 3/*#Ops*/, 3, 4, 5,  // Results = #6
/* 11537*/                OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 11540*/                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] })
/* 11548*/              0, /*End of Scope*/
/* 11549*/            /*Scope*/ 18|128,11/*1426*/, /*->12977*/
/* 11551*/              OPC_RecordChild1, // #1 = $imm
/* 11552*/              OPC_Scope, 98|128,6/*866*/, /*->12421*/ // 6 children in Scope
/* 11555*/                OPC_MoveChild1,
/* 11556*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 11559*/                OPC_Scope, 117, /*->11678*/ // 6 children in Scope
/* 11561*/                  OPC_CheckPredicate, 12, // Predicate_immZExt16
/* 11563*/                  OPC_MoveParent,
/* 11564*/                  OPC_CheckChild2CondCode, ISD::SETUGE,
/* 11566*/                  OPC_Scope, 53, /*->11621*/ // 2 children in Scope
/* 11568*/                    OPC_MoveParent,
/* 11569*/                    OPC_CheckType, MVT::i32,
/* 11571*/                    OPC_EmitConvertToTarget, 1,
/* 11573*/                    OPC_EmitNode1, TARGET_VAL(PPC::CMPLDI), 0,
                                  MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 11581*/                    OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 11584*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                  MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 11592*/                    OPC_EmitInteger, MVT::i32, 0, 
/* 11595*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                  MVT::i32, 1/*#Ops*/, 6,  // Results = #7
/* 11602*/                    OPC_EmitInteger, MVT::i32, 1, 
/* 11605*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                  MVT::i32, 1/*#Ops*/, 8,  // Results = #9
/* 11612*/                    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] }))
/* 11621*/                  /*Scope*/ 55, /*->11677*/
/* 11622*/                    OPC_CheckType, MVT::i1,
/* 11624*/                    OPC_MoveParent,
/* 11625*/                    OPC_CheckType, MVT::i64,
/* 11627*/                    OPC_EmitConvertToTarget, 1,
/* 11629*/                    OPC_EmitNode1, TARGET_VAL(PPC::CMPLDI), 0,
                                  MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 11637*/                    OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 11640*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                  MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 11648*/                    OPC_EmitInteger, MVT::i64, 0, 
/* 11651*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                  MVT::i64, 1/*#Ops*/, 6,  // Results = #7
/* 11658*/                    OPC_EmitInteger, MVT::i64, 1, 
/* 11661*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                  MVT::i64, 1/*#Ops*/, 8,  // Results = #9
/* 11668*/                    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] }))
/* 11677*/                  0, /*End of Scope*/
/* 11678*/                /*Scope*/ 117, /*->11796*/
/* 11679*/                  OPC_CheckPredicate, 14, // Predicate_imm64SExt16
/* 11681*/                  OPC_MoveParent,
/* 11682*/                  OPC_CheckChild2CondCode, ISD::SETGE,
/* 11684*/                  OPC_Scope, 53, /*->11739*/ // 2 children in Scope
/* 11686*/                    OPC_MoveParent,
/* 11687*/                    OPC_CheckType, MVT::i32,
/* 11689*/                    OPC_EmitConvertToTarget, 1,
/* 11691*/                    OPC_EmitNode1, TARGET_VAL(PPC::CMPDI), 0,
                                  MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 11699*/                    OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 11702*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                  MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 11710*/                    OPC_EmitInteger, MVT::i32, 0, 
/* 11713*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                  MVT::i32, 1/*#Ops*/, 6,  // Results = #7
/* 11720*/                    OPC_EmitInteger, MVT::i32, 1, 
/* 11723*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                  MVT::i32, 1/*#Ops*/, 8,  // Results = #9
/* 11730*/                    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] }))
/* 11739*/                  /*Scope*/ 55, /*->11795*/
/* 11740*/                    OPC_CheckType, MVT::i1,
/* 11742*/                    OPC_MoveParent,
/* 11743*/                    OPC_CheckType, MVT::i64,
/* 11745*/                    OPC_EmitConvertToTarget, 1,
/* 11747*/                    OPC_EmitNode1, TARGET_VAL(PPC::CMPDI), 0,
                                  MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 11755*/                    OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 11758*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                  MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 11766*/                    OPC_EmitInteger, MVT::i64, 0, 
/* 11769*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                  MVT::i64, 1/*#Ops*/, 6,  // Results = #7
/* 11776*/                    OPC_EmitInteger, MVT::i64, 1, 
/* 11779*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                  MVT::i64, 1/*#Ops*/, 8,  // Results = #9
/* 11786*/                    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] }))
/* 11795*/                  0, /*End of Scope*/
/* 11796*/                /*Scope*/ 117, /*->11914*/
/* 11797*/                  OPC_CheckPredicate, 12, // Predicate_immZExt16
/* 11799*/                  OPC_MoveParent,
/* 11800*/                  OPC_CheckChild2CondCode, ISD::SETULE,
/* 11802*/                  OPC_Scope, 53, /*->11857*/ // 2 children in Scope
/* 11804*/                    OPC_MoveParent,
/* 11805*/                    OPC_CheckType, MVT::i32,
/* 11807*/                    OPC_EmitConvertToTarget, 1,
/* 11809*/                    OPC_EmitNode1, TARGET_VAL(PPC::CMPLDI), 0,
                                  MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 11817*/                    OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 11820*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                  MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 11828*/                    OPC_EmitInteger, MVT::i32, 0, 
/* 11831*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                  MVT::i32, 1/*#Ops*/, 6,  // Results = #7
/* 11838*/                    OPC_EmitInteger, MVT::i32, 1, 
/* 11841*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                  MVT::i32, 1/*#Ops*/, 8,  // Results = #9
/* 11848*/                    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] }))
/* 11857*/                  /*Scope*/ 55, /*->11913*/
/* 11858*/                    OPC_CheckType, MVT::i1,
/* 11860*/                    OPC_MoveParent,
/* 11861*/                    OPC_CheckType, MVT::i64,
/* 11863*/                    OPC_EmitConvertToTarget, 1,
/* 11865*/                    OPC_EmitNode1, TARGET_VAL(PPC::CMPLDI), 0,
                                  MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 11873*/                    OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 11876*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                  MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 11884*/                    OPC_EmitInteger, MVT::i64, 0, 
/* 11887*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                  MVT::i64, 1/*#Ops*/, 6,  // Results = #7
/* 11894*/                    OPC_EmitInteger, MVT::i64, 1, 
/* 11897*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                  MVT::i64, 1/*#Ops*/, 8,  // Results = #9
/* 11904*/                    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] }))
/* 11913*/                  0, /*End of Scope*/
/* 11914*/                /*Scope*/ 107|128,1/*235*/, /*->12151*/
/* 11916*/                  OPC_CheckPredicate, 14, // Predicate_imm64SExt16
/* 11918*/                  OPC_MoveParent,
/* 11919*/                  OPC_Scope, 114, /*->12035*/ // 2 children in Scope
/* 11921*/                    OPC_CheckChild2CondCode, ISD::SETLE,
/* 11923*/                    OPC_Scope, 53, /*->11978*/ // 2 children in Scope
/* 11925*/                      OPC_MoveParent,
/* 11926*/                      OPC_CheckType, MVT::i32,
/* 11928*/                      OPC_EmitConvertToTarget, 1,
/* 11930*/                      OPC_EmitNode1, TARGET_VAL(PPC::CMPDI), 0,
                                    MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 11938*/                      OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 11941*/                      OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                    MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 11949*/                      OPC_EmitInteger, MVT::i32, 0, 
/* 11952*/                      OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                    MVT::i32, 1/*#Ops*/, 6,  // Results = #7
/* 11959*/                      OPC_EmitInteger, MVT::i32, 1, 
/* 11962*/                      OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                    MVT::i32, 1/*#Ops*/, 8,  // Results = #9
/* 11969*/                      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] }))
/* 11978*/                    /*Scope*/ 55, /*->12034*/
/* 11979*/                      OPC_CheckType, MVT::i1,
/* 11981*/                      OPC_MoveParent,
/* 11982*/                      OPC_CheckType, MVT::i64,
/* 11984*/                      OPC_EmitConvertToTarget, 1,
/* 11986*/                      OPC_EmitNode1, TARGET_VAL(PPC::CMPDI), 0,
                                    MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 11994*/                      OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 11997*/                      OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                    MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 12005*/                      OPC_EmitInteger, MVT::i64, 0, 
/* 12008*/                      OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                    MVT::i64, 1/*#Ops*/, 6,  // Results = #7
/* 12015*/                      OPC_EmitInteger, MVT::i64, 1, 
/* 12018*/                      OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                    MVT::i64, 1/*#Ops*/, 8,  // Results = #9
/* 12025*/                      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] }))
/* 12034*/                    0, /*End of Scope*/
/* 12035*/                  /*Scope*/ 114, /*->12150*/
/* 12036*/                    OPC_CheckChild2CondCode, ISD::SETNE,
/* 12038*/                    OPC_Scope, 53, /*->12093*/ // 2 children in Scope
/* 12040*/                      OPC_MoveParent,
/* 12041*/                      OPC_CheckType, MVT::i32,
/* 12043*/                      OPC_EmitConvertToTarget, 1,
/* 12045*/                      OPC_EmitNode1, TARGET_VAL(PPC::CMPDI), 0,
                                    MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 12053*/                      OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 12056*/                      OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                    MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 12064*/                      OPC_EmitInteger, MVT::i32, 0, 
/* 12067*/                      OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                    MVT::i32, 1/*#Ops*/, 6,  // Results = #7
/* 12074*/                      OPC_EmitInteger, MVT::i32, 1, 
/* 12077*/                      OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                    MVT::i32, 1/*#Ops*/, 8,  // Results = #9
/* 12084*/                      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] }))
/* 12093*/                    /*Scope*/ 55, /*->12149*/
/* 12094*/                      OPC_CheckType, MVT::i1,
/* 12096*/                      OPC_MoveParent,
/* 12097*/                      OPC_CheckType, MVT::i64,
/* 12099*/                      OPC_EmitConvertToTarget, 1,
/* 12101*/                      OPC_EmitNode1, TARGET_VAL(PPC::CMPDI), 0,
                                    MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 12109*/                      OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 12112*/                      OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                    MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 12120*/                      OPC_EmitInteger, MVT::i64, 0, 
/* 12123*/                      OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                    MVT::i64, 1/*#Ops*/, 6,  // Results = #7
/* 12130*/                      OPC_EmitInteger, MVT::i64, 1, 
/* 12133*/                      OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                    MVT::i64, 1/*#Ops*/, 8,  // Results = #9
/* 12140*/                      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] }))
/* 12149*/                    0, /*End of Scope*/
/* 12150*/                  0, /*End of Scope*/
/* 12151*/                /*Scope*/ 117, /*->12269*/
/* 12152*/                  OPC_CheckPredicate, 12, // Predicate_immZExt16
/* 12154*/                  OPC_MoveParent,
/* 12155*/                  OPC_CheckChild2CondCode, ISD::SETNE,
/* 12157*/                  OPC_Scope, 53, /*->12212*/ // 2 children in Scope
/* 12159*/                    OPC_MoveParent,
/* 12160*/                    OPC_CheckType, MVT::i32,
/* 12162*/                    OPC_EmitConvertToTarget, 1,
/* 12164*/                    OPC_EmitNode1, TARGET_VAL(PPC::CMPLDI), 0,
                                  MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 12172*/                    OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 12175*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                  MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 12183*/                    OPC_EmitInteger, MVT::i32, 0, 
/* 12186*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                  MVT::i32, 1/*#Ops*/, 6,  // Results = #7
/* 12193*/                    OPC_EmitInteger, MVT::i32, 1, 
/* 12196*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                  MVT::i32, 1/*#Ops*/, 8,  // Results = #9
/* 12203*/                    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] }))
/* 12212*/                  /*Scope*/ 55, /*->12268*/
/* 12213*/                    OPC_CheckType, MVT::i1,
/* 12215*/                    OPC_MoveParent,
/* 12216*/                    OPC_CheckType, MVT::i64,
/* 12218*/                    OPC_EmitConvertToTarget, 1,
/* 12220*/                    OPC_EmitNode1, TARGET_VAL(PPC::CMPLDI), 0,
                                  MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 12228*/                    OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 12231*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                  MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 12239*/                    OPC_EmitInteger, MVT::i64, 0, 
/* 12242*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                  MVT::i64, 1/*#Ops*/, 6,  // Results = #7
/* 12249*/                    OPC_EmitInteger, MVT::i64, 1, 
/* 12252*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                  MVT::i64, 1/*#Ops*/, 8,  // Results = #9
/* 12259*/                    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] }))
/* 12268*/                  0, /*End of Scope*/
/* 12269*/                /*Scope*/ 21|128,1/*149*/, /*->12420*/
/* 12271*/                  OPC_CheckPredicate, 15, // Predicate_imm64ZExt32
/* 12273*/                  OPC_MoveParent,
/* 12274*/                  OPC_CheckChild2CondCode, ISD::SETNE,
/* 12276*/                  OPC_Scope, 69, /*->12347*/ // 2 children in Scope
/* 12278*/                    OPC_MoveParent,
/* 12279*/                    OPC_CheckType, MVT::i32,
/* 12281*/                    OPC_EmitConvertToTarget, 1,
/* 12283*/                    OPC_EmitNodeXForm, 0, 2, // HI16
/* 12286*/                    OPC_EmitNode1, TARGET_VAL(PPC::XORIS8), 0,
                                  MVT::i64, 2/*#Ops*/, 0, 3,  // Results = #4
/* 12294*/                    OPC_EmitConvertToTarget, 1,
/* 12296*/                    OPC_EmitNodeXForm, 1, 5, // LO16
/* 12299*/                    OPC_EmitNode1, TARGET_VAL(PPC::CMPLDI), 0,
                                  MVT::i32, 2/*#Ops*/, 4, 6,  // Results = #7
/* 12307*/                    OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 12310*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                  MVT::i1, 2/*#Ops*/, 7, 8,  // Results = #9
/* 12318*/                    OPC_EmitInteger, MVT::i32, 0, 
/* 12321*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                  MVT::i32, 1/*#Ops*/, 10,  // Results = #11
/* 12328*/                    OPC_EmitInteger, MVT::i32, 1, 
/* 12331*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                  MVT::i32, 1/*#Ops*/, 12,  // Results = #13
/* 12338*/                    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] }))
/* 12347*/                  /*Scope*/ 71, /*->12419*/
/* 12348*/                    OPC_CheckType, MVT::i1,
/* 12350*/                    OPC_MoveParent,
/* 12351*/                    OPC_CheckType, MVT::i64,
/* 12353*/                    OPC_EmitConvertToTarget, 1,
/* 12355*/                    OPC_EmitNodeXForm, 0, 2, // HI16
/* 12358*/                    OPC_EmitNode1, TARGET_VAL(PPC::XORIS8), 0,
                                  MVT::i64, 2/*#Ops*/, 0, 3,  // Results = #4
/* 12366*/                    OPC_EmitConvertToTarget, 1,
/* 12368*/                    OPC_EmitNodeXForm, 1, 5, // LO16
/* 12371*/                    OPC_EmitNode1, TARGET_VAL(PPC::CMPLDI), 0,
                                  MVT::i32, 2/*#Ops*/, 4, 6,  // Results = #7
/* 12379*/                    OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 12382*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                  MVT::i1, 2/*#Ops*/, 7, 8,  // Results = #9
/* 12390*/                    OPC_EmitInteger, MVT::i64, 0, 
/* 12393*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                  MVT::i64, 1/*#Ops*/, 10,  // Results = #11
/* 12400*/                    OPC_EmitInteger, MVT::i64, 1, 
/* 12403*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                  MVT::i64, 1/*#Ops*/, 12,  // Results = #13
/* 12410*/                    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] }))
/* 12419*/                  0, /*End of Scope*/
/* 12420*/                0, /*End of Scope*/
/* 12421*/              /*Scope*/ 110, /*->12532*/
/* 12422*/                OPC_CheckChild2CondCode, ISD::SETUGE,
/* 12424*/                OPC_Scope, 51, /*->12477*/ // 2 children in Scope
/* 12426*/                  OPC_MoveParent,
/* 12427*/                  OPC_CheckType, MVT::i32,
/* 12429*/                  OPC_EmitNode1, TARGET_VAL(PPC::CMPLD), 0,
                                MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 12437*/                  OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 12440*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 12448*/                  OPC_EmitInteger, MVT::i32, 0, 
/* 12451*/                  OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 12458*/                  OPC_EmitInteger, MVT::i32, 1, 
/* 12461*/                  OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 12468*/                  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] }))
/* 12477*/                /*Scope*/ 53, /*->12531*/
/* 12478*/                  OPC_CheckType, MVT::i1,
/* 12480*/                  OPC_MoveParent,
/* 12481*/                  OPC_CheckType, MVT::i64,
/* 12483*/                  OPC_EmitNode1, TARGET_VAL(PPC::CMPLD), 0,
                                MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 12491*/                  OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 12494*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 12502*/                  OPC_EmitInteger, MVT::i64, 0, 
/* 12505*/                  OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 12512*/                  OPC_EmitInteger, MVT::i64, 1, 
/* 12515*/                  OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 12522*/                  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] }))
/* 12531*/                0, /*End of Scope*/
/* 12532*/              /*Scope*/ 110, /*->12643*/
/* 12533*/                OPC_CheckChild2CondCode, ISD::SETGE,
/* 12535*/                OPC_Scope, 51, /*->12588*/ // 2 children in Scope
/* 12537*/                  OPC_MoveParent,
/* 12538*/                  OPC_CheckType, MVT::i32,
/* 12540*/                  OPC_EmitNode1, TARGET_VAL(PPC::CMPD), 0,
                                MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 12548*/                  OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 12551*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 12559*/                  OPC_EmitInteger, MVT::i32, 0, 
/* 12562*/                  OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 12569*/                  OPC_EmitInteger, MVT::i32, 1, 
/* 12572*/                  OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 12579*/                  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] }))
/* 12588*/                /*Scope*/ 53, /*->12642*/
/* 12589*/                  OPC_CheckType, MVT::i1,
/* 12591*/                  OPC_MoveParent,
/* 12592*/                  OPC_CheckType, MVT::i64,
/* 12594*/                  OPC_EmitNode1, TARGET_VAL(PPC::CMPD), 0,
                                MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 12602*/                  OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 12605*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 12613*/                  OPC_EmitInteger, MVT::i64, 0, 
/* 12616*/                  OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 12623*/                  OPC_EmitInteger, MVT::i64, 1, 
/* 12626*/                  OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 12633*/                  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] }))
/* 12642*/                0, /*End of Scope*/
/* 12643*/              /*Scope*/ 110, /*->12754*/
/* 12644*/                OPC_CheckChild2CondCode, ISD::SETULE,
/* 12646*/                OPC_Scope, 51, /*->12699*/ // 2 children in Scope
/* 12648*/                  OPC_MoveParent,
/* 12649*/                  OPC_CheckType, MVT::i32,
/* 12651*/                  OPC_EmitNode1, TARGET_VAL(PPC::CMPLD), 0,
                                MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 12659*/                  OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 12662*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 12670*/                  OPC_EmitInteger, MVT::i32, 0, 
/* 12673*/                  OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 12680*/                  OPC_EmitInteger, MVT::i32, 1, 
/* 12683*/                  OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 12690*/                  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] }))
/* 12699*/                /*Scope*/ 53, /*->12753*/
/* 12700*/                  OPC_CheckType, MVT::i1,
/* 12702*/                  OPC_MoveParent,
/* 12703*/                  OPC_CheckType, MVT::i64,
/* 12705*/                  OPC_EmitNode1, TARGET_VAL(PPC::CMPLD), 0,
                                MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 12713*/                  OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 12716*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 12724*/                  OPC_EmitInteger, MVT::i64, 0, 
/* 12727*/                  OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 12734*/                  OPC_EmitInteger, MVT::i64, 1, 
/* 12737*/                  OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 12744*/                  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] }))
/* 12753*/                0, /*End of Scope*/
/* 12754*/              /*Scope*/ 110, /*->12865*/
/* 12755*/                OPC_CheckChild2CondCode, ISD::SETLE,
/* 12757*/                OPC_Scope, 51, /*->12810*/ // 2 children in Scope
/* 12759*/                  OPC_MoveParent,
/* 12760*/                  OPC_CheckType, MVT::i32,
/* 12762*/                  OPC_EmitNode1, TARGET_VAL(PPC::CMPD), 0,
                                MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 12770*/                  OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 12773*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 12781*/                  OPC_EmitInteger, MVT::i32, 0, 
/* 12784*/                  OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 12791*/                  OPC_EmitInteger, MVT::i32, 1, 
/* 12794*/                  OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 12801*/                  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] }))
/* 12810*/                /*Scope*/ 53, /*->12864*/
/* 12811*/                  OPC_CheckType, MVT::i1,
/* 12813*/                  OPC_MoveParent,
/* 12814*/                  OPC_CheckType, MVT::i64,
/* 12816*/                  OPC_EmitNode1, TARGET_VAL(PPC::CMPD), 0,
                                MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 12824*/                  OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 12827*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 12835*/                  OPC_EmitInteger, MVT::i64, 0, 
/* 12838*/                  OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 12845*/                  OPC_EmitInteger, MVT::i64, 1, 
/* 12848*/                  OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 12855*/                  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] }))
/* 12864*/                0, /*End of Scope*/
/* 12865*/              /*Scope*/ 110, /*->12976*/
/* 12866*/                OPC_CheckChild2CondCode, ISD::SETNE,
/* 12868*/                OPC_Scope, 51, /*->12921*/ // 2 children in Scope
/* 12870*/                  OPC_MoveParent,
/* 12871*/                  OPC_CheckType, MVT::i32,
/* 12873*/                  OPC_EmitNode1, TARGET_VAL(PPC::CMPD), 0,
                                MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 12881*/                  OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 12884*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 12892*/                  OPC_EmitInteger, MVT::i32, 0, 
/* 12895*/                  OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 12902*/                  OPC_EmitInteger, MVT::i32, 1, 
/* 12905*/                  OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 12912*/                  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] }))
/* 12921*/                /*Scope*/ 53, /*->12975*/
/* 12922*/                  OPC_CheckType, MVT::i1,
/* 12924*/                  OPC_MoveParent,
/* 12925*/                  OPC_CheckType, MVT::i64,
/* 12927*/                  OPC_EmitNode1, TARGET_VAL(PPC::CMPD), 0,
                                MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 12935*/                  OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 12938*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 12946*/                  OPC_EmitInteger, MVT::i64, 0, 
/* 12949*/                  OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 12956*/                  OPC_EmitInteger, MVT::i64, 1, 
/* 12959*/                  OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 12966*/                  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] }))
/* 12975*/                0, /*End of Scope*/
/* 12976*/              0, /*End of Scope*/
/* 12977*/            0, /*End of Scope*/
/* 12978*/          /*Scope*/ 92|128,11/*1500*/, /*->14480*/
/* 12980*/            OPC_CheckChild0Type, MVT::f32,
/* 12982*/            OPC_RecordChild1, // #1 = $s2
/* 12983*/            OPC_Scope, 114, /*->13099*/ // 13 children in Scope
/* 12985*/              OPC_CheckChild2CondCode, ISD::SETUGE,
/* 12987*/              OPC_Scope, 53, /*->13042*/ // 2 children in Scope
/* 12989*/                OPC_MoveParent,
/* 12990*/                OPC_CheckType, MVT::i32,
/* 12992*/                OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 12994*/                OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 13002*/                OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 13005*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 13013*/                OPC_EmitInteger, MVT::i32, 0, 
/* 13016*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 13023*/                OPC_EmitInteger, MVT::i32, 1, 
/* 13026*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 13033*/                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] }))
/* 13042*/              /*Scope*/ 55, /*->13098*/
/* 13043*/                OPC_CheckType, MVT::i1,
/* 13045*/                OPC_MoveParent,
/* 13046*/                OPC_CheckType, MVT::i64,
/* 13048*/                OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 13050*/                OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 13058*/                OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 13061*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 13069*/                OPC_EmitInteger, MVT::i64, 0, 
/* 13072*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 13079*/                OPC_EmitInteger, MVT::i64, 1, 
/* 13082*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 13089*/                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] }))
/* 13098*/              0, /*End of Scope*/
/* 13099*/            /*Scope*/ 114, /*->13214*/
/* 13100*/              OPC_CheckChild2CondCode, ISD::SETGE,
/* 13102*/              OPC_Scope, 53, /*->13157*/ // 2 children in Scope
/* 13104*/                OPC_MoveParent,
/* 13105*/                OPC_CheckType, MVT::i32,
/* 13107*/                OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 13109*/                OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 13117*/                OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 13120*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 13128*/                OPC_EmitInteger, MVT::i32, 0, 
/* 13131*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 13138*/                OPC_EmitInteger, MVT::i32, 1, 
/* 13141*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 13148*/                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] }))
/* 13157*/              /*Scope*/ 55, /*->13213*/
/* 13158*/                OPC_CheckType, MVT::i1,
/* 13160*/                OPC_MoveParent,
/* 13161*/                OPC_CheckType, MVT::i64,
/* 13163*/                OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 13165*/                OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 13173*/                OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 13176*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 13184*/                OPC_EmitInteger, MVT::i64, 0, 
/* 13187*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 13194*/                OPC_EmitInteger, MVT::i64, 1, 
/* 13197*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 13204*/                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] }))
/* 13213*/              0, /*End of Scope*/
/* 13214*/            /*Scope*/ 114, /*->13329*/
/* 13215*/              OPC_CheckChild2CondCode, ISD::SETULE,
/* 13217*/              OPC_Scope, 53, /*->13272*/ // 2 children in Scope
/* 13219*/                OPC_MoveParent,
/* 13220*/                OPC_CheckType, MVT::i32,
/* 13222*/                OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 13224*/                OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 13232*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 13235*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 13243*/                OPC_EmitInteger, MVT::i32, 0, 
/* 13246*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 13253*/                OPC_EmitInteger, MVT::i32, 1, 
/* 13256*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 13263*/                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] }))
/* 13272*/              /*Scope*/ 55, /*->13328*/
/* 13273*/                OPC_CheckType, MVT::i1,
/* 13275*/                OPC_MoveParent,
/* 13276*/                OPC_CheckType, MVT::i64,
/* 13278*/                OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 13280*/                OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 13288*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 13291*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 13299*/                OPC_EmitInteger, MVT::i64, 0, 
/* 13302*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 13309*/                OPC_EmitInteger, MVT::i64, 1, 
/* 13312*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 13319*/                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] }))
/* 13328*/              0, /*End of Scope*/
/* 13329*/            /*Scope*/ 114, /*->13444*/
/* 13330*/              OPC_CheckChild2CondCode, ISD::SETLE,
/* 13332*/              OPC_Scope, 53, /*->13387*/ // 2 children in Scope
/* 13334*/                OPC_MoveParent,
/* 13335*/                OPC_CheckType, MVT::i32,
/* 13337*/                OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 13339*/                OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 13347*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 13350*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 13358*/                OPC_EmitInteger, MVT::i32, 0, 
/* 13361*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 13368*/                OPC_EmitInteger, MVT::i32, 1, 
/* 13371*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 13378*/                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] }))
/* 13387*/              /*Scope*/ 55, /*->13443*/
/* 13388*/                OPC_CheckType, MVT::i1,
/* 13390*/                OPC_MoveParent,
/* 13391*/                OPC_CheckType, MVT::i64,
/* 13393*/                OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 13395*/                OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 13403*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 13406*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 13414*/                OPC_EmitInteger, MVT::i64, 0, 
/* 13417*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 13424*/                OPC_EmitInteger, MVT::i64, 1, 
/* 13427*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 13434*/                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] }))
/* 13443*/              0, /*End of Scope*/
/* 13444*/            /*Scope*/ 114, /*->13559*/
/* 13445*/              OPC_CheckChild2CondCode, ISD::SETUNE,
/* 13447*/              OPC_Scope, 53, /*->13502*/ // 2 children in Scope
/* 13449*/                OPC_MoveParent,
/* 13450*/                OPC_CheckType, MVT::i32,
/* 13452*/                OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 13454*/                OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 13462*/                OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 13465*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 13473*/                OPC_EmitInteger, MVT::i32, 0, 
/* 13476*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 13483*/                OPC_EmitInteger, MVT::i32, 1, 
/* 13486*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 13493*/                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] }))
/* 13502*/              /*Scope*/ 55, /*->13558*/
/* 13503*/                OPC_CheckType, MVT::i1,
/* 13505*/                OPC_MoveParent,
/* 13506*/                OPC_CheckType, MVT::i64,
/* 13508*/                OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 13510*/                OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 13518*/                OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 13521*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 13529*/                OPC_EmitInteger, MVT::i64, 0, 
/* 13532*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 13539*/                OPC_EmitInteger, MVT::i64, 1, 
/* 13542*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 13549*/                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] }))
/* 13558*/              0, /*End of Scope*/
/* 13559*/            /*Scope*/ 114, /*->13674*/
/* 13560*/              OPC_CheckChild2CondCode, ISD::SETNE,
/* 13562*/              OPC_Scope, 53, /*->13617*/ // 2 children in Scope
/* 13564*/                OPC_MoveParent,
/* 13565*/                OPC_CheckType, MVT::i32,
/* 13567*/                OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 13569*/                OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 13577*/                OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 13580*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 13588*/                OPC_EmitInteger, MVT::i32, 0, 
/* 13591*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 13598*/                OPC_EmitInteger, MVT::i32, 1, 
/* 13601*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 13608*/                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] }))
/* 13617*/              /*Scope*/ 55, /*->13673*/
/* 13618*/                OPC_CheckType, MVT::i1,
/* 13620*/                OPC_MoveParent,
/* 13621*/                OPC_CheckType, MVT::i64,
/* 13623*/                OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 13625*/                OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 13633*/                OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 13636*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 13644*/                OPC_EmitInteger, MVT::i64, 0, 
/* 13647*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 13654*/                OPC_EmitInteger, MVT::i64, 1, 
/* 13657*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 13664*/                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] }))
/* 13673*/              0, /*End of Scope*/
/* 13674*/            /*Scope*/ 114, /*->13789*/
/* 13675*/              OPC_CheckChild2CondCode, ISD::SETO,
/* 13677*/              OPC_Scope, 53, /*->13732*/ // 2 children in Scope
/* 13679*/                OPC_MoveParent,
/* 13680*/                OPC_CheckType, MVT::i32,
/* 13682*/                OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 13684*/                OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 13692*/                OPC_EmitInteger, MVT::i32, PPC::sub_un,
/* 13695*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 13703*/                OPC_EmitInteger, MVT::i32, 0, 
/* 13706*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 13713*/                OPC_EmitInteger, MVT::i32, 1, 
/* 13716*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 13723*/                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] }))
/* 13732*/              /*Scope*/ 55, /*->13788*/
/* 13733*/                OPC_CheckType, MVT::i1,
/* 13735*/                OPC_MoveParent,
/* 13736*/                OPC_CheckType, MVT::i64,
/* 13738*/                OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 13740*/                OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 13748*/                OPC_EmitInteger, MVT::i32, PPC::sub_un,
/* 13751*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 13759*/                OPC_EmitInteger, MVT::i64, 0, 
/* 13762*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 13769*/                OPC_EmitInteger, MVT::i64, 1, 
/* 13772*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 13779*/                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] }))
/* 13788*/              0, /*End of Scope*/
/* 13789*/            /*Scope*/ 114, /*->13904*/
/* 13790*/              OPC_CheckChild2CondCode, ISD::SETUGE,
/* 13792*/              OPC_Scope, 53, /*->13847*/ // 2 children in Scope
/* 13794*/                OPC_MoveParent,
/* 13795*/                OPC_CheckType, MVT::i32,
/* 13797*/                OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 13799*/                OPC_EmitNode1, TARGET_VAL(PPC::EFSCMPLT), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 13807*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 13810*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 13818*/                OPC_EmitInteger, MVT::i32, 0, 
/* 13821*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 13828*/                OPC_EmitInteger, MVT::i32, 1, 
/* 13831*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 13838*/                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] }))
/* 13847*/              /*Scope*/ 55, /*->13903*/
/* 13848*/                OPC_CheckType, MVT::i1,
/* 13850*/                OPC_MoveParent,
/* 13851*/                OPC_CheckType, MVT::i64,
/* 13853*/                OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 13855*/                OPC_EmitNode1, TARGET_VAL(PPC::EFSCMPLT), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 13863*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 13866*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 13874*/                OPC_EmitInteger, MVT::i64, 0, 
/* 13877*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 13884*/                OPC_EmitInteger, MVT::i64, 1, 
/* 13887*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 13894*/                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] }))
/* 13903*/              0, /*End of Scope*/
/* 13904*/            /*Scope*/ 114, /*->14019*/
/* 13905*/              OPC_CheckChild2CondCode, ISD::SETGE,
/* 13907*/              OPC_Scope, 53, /*->13962*/ // 2 children in Scope
/* 13909*/                OPC_MoveParent,
/* 13910*/                OPC_CheckType, MVT::i32,
/* 13912*/                OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 13914*/                OPC_EmitNode1, TARGET_VAL(PPC::EFSCMPLT), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 13922*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 13925*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 13933*/                OPC_EmitInteger, MVT::i32, 0, 
/* 13936*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 13943*/                OPC_EmitInteger, MVT::i32, 1, 
/* 13946*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 13953*/                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] }))
/* 13962*/              /*Scope*/ 55, /*->14018*/
/* 13963*/                OPC_CheckType, MVT::i1,
/* 13965*/                OPC_MoveParent,
/* 13966*/                OPC_CheckType, MVT::i64,
/* 13968*/                OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 13970*/                OPC_EmitNode1, TARGET_VAL(PPC::EFSCMPLT), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 13978*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 13981*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 13989*/                OPC_EmitInteger, MVT::i64, 0, 
/* 13992*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 13999*/                OPC_EmitInteger, MVT::i64, 1, 
/* 14002*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 14009*/                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] }))
/* 14018*/              0, /*End of Scope*/
/* 14019*/            /*Scope*/ 114, /*->14134*/
/* 14020*/              OPC_CheckChild2CondCode, ISD::SETULE,
/* 14022*/              OPC_Scope, 53, /*->14077*/ // 2 children in Scope
/* 14024*/                OPC_MoveParent,
/* 14025*/                OPC_CheckType, MVT::i32,
/* 14027*/                OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 14029*/                OPC_EmitNode1, TARGET_VAL(PPC::EFSCMPGT), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 14037*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 14040*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 14048*/                OPC_EmitInteger, MVT::i32, 0, 
/* 14051*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 14058*/                OPC_EmitInteger, MVT::i32, 1, 
/* 14061*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 14068*/                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] }))
/* 14077*/              /*Scope*/ 55, /*->14133*/
/* 14078*/                OPC_CheckType, MVT::i1,
/* 14080*/                OPC_MoveParent,
/* 14081*/                OPC_CheckType, MVT::i64,
/* 14083*/                OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 14085*/                OPC_EmitNode1, TARGET_VAL(PPC::EFSCMPGT), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 14093*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 14096*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 14104*/                OPC_EmitInteger, MVT::i64, 0, 
/* 14107*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 14114*/                OPC_EmitInteger, MVT::i64, 1, 
/* 14117*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 14124*/                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] }))
/* 14133*/              0, /*End of Scope*/
/* 14134*/            /*Scope*/ 114, /*->14249*/
/* 14135*/              OPC_CheckChild2CondCode, ISD::SETLE,
/* 14137*/              OPC_Scope, 53, /*->14192*/ // 2 children in Scope
/* 14139*/                OPC_MoveParent,
/* 14140*/                OPC_CheckType, MVT::i32,
/* 14142*/                OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 14144*/                OPC_EmitNode1, TARGET_VAL(PPC::EFSCMPGT), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 14152*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 14155*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 14163*/                OPC_EmitInteger, MVT::i32, 0, 
/* 14166*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 14173*/                OPC_EmitInteger, MVT::i32, 1, 
/* 14176*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 14183*/                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] }))
/* 14192*/              /*Scope*/ 55, /*->14248*/
/* 14193*/                OPC_CheckType, MVT::i1,
/* 14195*/                OPC_MoveParent,
/* 14196*/                OPC_CheckType, MVT::i64,
/* 14198*/                OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 14200*/                OPC_EmitNode1, TARGET_VAL(PPC::EFSCMPGT), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 14208*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 14211*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 14219*/                OPC_EmitInteger, MVT::i64, 0, 
/* 14222*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 14229*/                OPC_EmitInteger, MVT::i64, 1, 
/* 14232*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 14239*/                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] }))
/* 14248*/              0, /*End of Scope*/
/* 14249*/            /*Scope*/ 114, /*->14364*/
/* 14250*/              OPC_CheckChild2CondCode, ISD::SETUNE,
/* 14252*/              OPC_Scope, 53, /*->14307*/ // 2 children in Scope
/* 14254*/                OPC_MoveParent,
/* 14255*/                OPC_CheckType, MVT::i32,
/* 14257*/                OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 14259*/                OPC_EmitNode1, TARGET_VAL(PPC::EFSCMPEQ), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 14267*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 14270*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 14278*/                OPC_EmitInteger, MVT::i32, 0, 
/* 14281*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 14288*/                OPC_EmitInteger, MVT::i32, 1, 
/* 14291*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 14298*/                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] }))
/* 14307*/              /*Scope*/ 55, /*->14363*/
/* 14308*/                OPC_CheckType, MVT::i1,
/* 14310*/                OPC_MoveParent,
/* 14311*/                OPC_CheckType, MVT::i64,
/* 14313*/                OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 14315*/                OPC_EmitNode1, TARGET_VAL(PPC::EFSCMPEQ), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 14323*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 14326*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 14334*/                OPC_EmitInteger, MVT::i64, 0, 
/* 14337*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 14344*/                OPC_EmitInteger, MVT::i64, 1, 
/* 14347*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 14354*/                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] }))
/* 14363*/              0, /*End of Scope*/
/* 14364*/            /*Scope*/ 114, /*->14479*/
/* 14365*/              OPC_CheckChild2CondCode, ISD::SETNE,
/* 14367*/              OPC_Scope, 53, /*->14422*/ // 2 children in Scope
/* 14369*/                OPC_MoveParent,
/* 14370*/                OPC_CheckType, MVT::i32,
/* 14372*/                OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 14374*/                OPC_EmitNode1, TARGET_VAL(PPC::EFSCMPEQ), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 14382*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 14385*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 14393*/                OPC_EmitInteger, MVT::i32, 0, 
/* 14396*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 14403*/                OPC_EmitInteger, MVT::i32, 1, 
/* 14406*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 14413*/                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] }))
/* 14422*/              /*Scope*/ 55, /*->14478*/
/* 14423*/                OPC_CheckType, MVT::i1,
/* 14425*/                OPC_MoveParent,
/* 14426*/                OPC_CheckType, MVT::i64,
/* 14428*/                OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 14430*/                OPC_EmitNode1, TARGET_VAL(PPC::EFSCMPEQ), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 14438*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 14441*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 14449*/                OPC_EmitInteger, MVT::i64, 0, 
/* 14452*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 14459*/                OPC_EmitInteger, MVT::i64, 1, 
/* 14462*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 14469*/                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] }))
/* 14478*/              0, /*End of Scope*/
/* 14479*/            0, /*End of Scope*/
/* 14480*/          /*Scope*/ 92|128,11/*1500*/, /*->15982*/
/* 14482*/            OPC_CheckChild0Type, MVT::f64,
/* 14484*/            OPC_RecordChild1, // #1 = $s2
/* 14485*/            OPC_Scope, 114, /*->14601*/ // 13 children in Scope
/* 14487*/              OPC_CheckChild2CondCode, ISD::SETUGE,
/* 14489*/              OPC_Scope, 53, /*->14544*/ // 2 children in Scope
/* 14491*/                OPC_MoveParent,
/* 14492*/                OPC_CheckType, MVT::i32,
/* 14494*/                OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 14496*/                OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 14504*/                OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 14507*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 14515*/                OPC_EmitInteger, MVT::i32, 0, 
/* 14518*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 14525*/                OPC_EmitInteger, MVT::i32, 1, 
/* 14528*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 14535*/                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] }))
/* 14544*/              /*Scope*/ 55, /*->14600*/
/* 14545*/                OPC_CheckType, MVT::i1,
/* 14547*/                OPC_MoveParent,
/* 14548*/                OPC_CheckType, MVT::i64,
/* 14550*/                OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 14552*/                OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 14560*/                OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 14563*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 14571*/                OPC_EmitInteger, MVT::i64, 0, 
/* 14574*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 14581*/                OPC_EmitInteger, MVT::i64, 1, 
/* 14584*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 14591*/                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] }))
/* 14600*/              0, /*End of Scope*/
/* 14601*/            /*Scope*/ 114, /*->14716*/
/* 14602*/              OPC_CheckChild2CondCode, ISD::SETGE,
/* 14604*/              OPC_Scope, 53, /*->14659*/ // 2 children in Scope
/* 14606*/                OPC_MoveParent,
/* 14607*/                OPC_CheckType, MVT::i32,
/* 14609*/                OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 14611*/                OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 14619*/                OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 14622*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 14630*/                OPC_EmitInteger, MVT::i32, 0, 
/* 14633*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 14640*/                OPC_EmitInteger, MVT::i32, 1, 
/* 14643*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 14650*/                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] }))
/* 14659*/              /*Scope*/ 55, /*->14715*/
/* 14660*/                OPC_CheckType, MVT::i1,
/* 14662*/                OPC_MoveParent,
/* 14663*/                OPC_CheckType, MVT::i64,
/* 14665*/                OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 14667*/                OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 14675*/                OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 14678*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 14686*/                OPC_EmitInteger, MVT::i64, 0, 
/* 14689*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 14696*/                OPC_EmitInteger, MVT::i64, 1, 
/* 14699*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 14706*/                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] }))
/* 14715*/              0, /*End of Scope*/
/* 14716*/            /*Scope*/ 114, /*->14831*/
/* 14717*/              OPC_CheckChild2CondCode, ISD::SETULE,
/* 14719*/              OPC_Scope, 53, /*->14774*/ // 2 children in Scope
/* 14721*/                OPC_MoveParent,
/* 14722*/                OPC_CheckType, MVT::i32,
/* 14724*/                OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 14726*/                OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 14734*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 14737*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 14745*/                OPC_EmitInteger, MVT::i32, 0, 
/* 14748*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 14755*/                OPC_EmitInteger, MVT::i32, 1, 
/* 14758*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 14765*/                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] }))
/* 14774*/              /*Scope*/ 55, /*->14830*/
/* 14775*/                OPC_CheckType, MVT::i1,
/* 14777*/                OPC_MoveParent,
/* 14778*/                OPC_CheckType, MVT::i64,
/* 14780*/                OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 14782*/                OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 14790*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 14793*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 14801*/                OPC_EmitInteger, MVT::i64, 0, 
/* 14804*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 14811*/                OPC_EmitInteger, MVT::i64, 1, 
/* 14814*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 14821*/                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] }))
/* 14830*/              0, /*End of Scope*/
/* 14831*/            /*Scope*/ 114, /*->14946*/
/* 14832*/              OPC_CheckChild2CondCode, ISD::SETLE,
/* 14834*/              OPC_Scope, 53, /*->14889*/ // 2 children in Scope
/* 14836*/                OPC_MoveParent,
/* 14837*/                OPC_CheckType, MVT::i32,
/* 14839*/                OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 14841*/                OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 14849*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 14852*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 14860*/                OPC_EmitInteger, MVT::i32, 0, 
/* 14863*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 14870*/                OPC_EmitInteger, MVT::i32, 1, 
/* 14873*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 14880*/                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] }))
/* 14889*/              /*Scope*/ 55, /*->14945*/
/* 14890*/                OPC_CheckType, MVT::i1,
/* 14892*/                OPC_MoveParent,
/* 14893*/                OPC_CheckType, MVT::i64,
/* 14895*/                OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 14897*/                OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 14905*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 14908*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 14916*/                OPC_EmitInteger, MVT::i64, 0, 
/* 14919*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 14926*/                OPC_EmitInteger, MVT::i64, 1, 
/* 14929*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 14936*/                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] }))
/* 14945*/              0, /*End of Scope*/
/* 14946*/            /*Scope*/ 114, /*->15061*/
/* 14947*/              OPC_CheckChild2CondCode, ISD::SETUNE,
/* 14949*/              OPC_Scope, 53, /*->15004*/ // 2 children in Scope
/* 14951*/                OPC_MoveParent,
/* 14952*/                OPC_CheckType, MVT::i32,
/* 14954*/                OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 14956*/                OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 14964*/                OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 14967*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 14975*/                OPC_EmitInteger, MVT::i32, 0, 
/* 14978*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 14985*/                OPC_EmitInteger, MVT::i32, 1, 
/* 14988*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 14995*/                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] }))
/* 15004*/              /*Scope*/ 55, /*->15060*/
/* 15005*/                OPC_CheckType, MVT::i1,
/* 15007*/                OPC_MoveParent,
/* 15008*/                OPC_CheckType, MVT::i64,
/* 15010*/                OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 15012*/                OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 15020*/                OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 15023*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 15031*/                OPC_EmitInteger, MVT::i64, 0, 
/* 15034*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 15041*/                OPC_EmitInteger, MVT::i64, 1, 
/* 15044*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 15051*/                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] }))
/* 15060*/              0, /*End of Scope*/
/* 15061*/            /*Scope*/ 114, /*->15176*/
/* 15062*/              OPC_CheckChild2CondCode, ISD::SETNE,
/* 15064*/              OPC_Scope, 53, /*->15119*/ // 2 children in Scope
/* 15066*/                OPC_MoveParent,
/* 15067*/                OPC_CheckType, MVT::i32,
/* 15069*/                OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 15071*/                OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 15079*/                OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 15082*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 15090*/                OPC_EmitInteger, MVT::i32, 0, 
/* 15093*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 15100*/                OPC_EmitInteger, MVT::i32, 1, 
/* 15103*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 15110*/                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] }))
/* 15119*/              /*Scope*/ 55, /*->15175*/
/* 15120*/                OPC_CheckType, MVT::i1,
/* 15122*/                OPC_MoveParent,
/* 15123*/                OPC_CheckType, MVT::i64,
/* 15125*/                OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 15127*/                OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 15135*/                OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 15138*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 15146*/                OPC_EmitInteger, MVT::i64, 0, 
/* 15149*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 15156*/                OPC_EmitInteger, MVT::i64, 1, 
/* 15159*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 15166*/                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] }))
/* 15175*/              0, /*End of Scope*/
/* 15176*/            /*Scope*/ 114, /*->15291*/
/* 15177*/              OPC_CheckChild2CondCode, ISD::SETO,
/* 15179*/              OPC_Scope, 53, /*->15234*/ // 2 children in Scope
/* 15181*/                OPC_MoveParent,
/* 15182*/                OPC_CheckType, MVT::i32,
/* 15184*/                OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 15186*/                OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 15194*/                OPC_EmitInteger, MVT::i32, PPC::sub_un,
/* 15197*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 15205*/                OPC_EmitInteger, MVT::i32, 0, 
/* 15208*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 15215*/                OPC_EmitInteger, MVT::i32, 1, 
/* 15218*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 15225*/                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] }))
/* 15234*/              /*Scope*/ 55, /*->15290*/
/* 15235*/                OPC_CheckType, MVT::i1,
/* 15237*/                OPC_MoveParent,
/* 15238*/                OPC_CheckType, MVT::i64,
/* 15240*/                OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 15242*/                OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 15250*/                OPC_EmitInteger, MVT::i32, PPC::sub_un,
/* 15253*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 15261*/                OPC_EmitInteger, MVT::i64, 0, 
/* 15264*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 15271*/                OPC_EmitInteger, MVT::i64, 1, 
/* 15274*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 15281*/                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] }))
/* 15290*/              0, /*End of Scope*/
/* 15291*/            /*Scope*/ 114, /*->15406*/
/* 15292*/              OPC_CheckChild2CondCode, ISD::SETUGE,
/* 15294*/              OPC_Scope, 53, /*->15349*/ // 2 children in Scope
/* 15296*/                OPC_MoveParent,
/* 15297*/                OPC_CheckType, MVT::i32,
/* 15299*/                OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 15301*/                OPC_EmitNode1, TARGET_VAL(PPC::EFDCMPLT), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 15309*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 15312*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 15320*/                OPC_EmitInteger, MVT::i32, 0, 
/* 15323*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 15330*/                OPC_EmitInteger, MVT::i32, 1, 
/* 15333*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 15340*/                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] }))
/* 15349*/              /*Scope*/ 55, /*->15405*/
/* 15350*/                OPC_CheckType, MVT::i1,
/* 15352*/                OPC_MoveParent,
/* 15353*/                OPC_CheckType, MVT::i64,
/* 15355*/                OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 15357*/                OPC_EmitNode1, TARGET_VAL(PPC::EFDCMPLT), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 15365*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 15368*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 15376*/                OPC_EmitInteger, MVT::i64, 0, 
/* 15379*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 15386*/                OPC_EmitInteger, MVT::i64, 1, 
/* 15389*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 15396*/                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] }))
/* 15405*/              0, /*End of Scope*/
/* 15406*/            /*Scope*/ 114, /*->15521*/
/* 15407*/              OPC_CheckChild2CondCode, ISD::SETGE,
/* 15409*/              OPC_Scope, 53, /*->15464*/ // 2 children in Scope
/* 15411*/                OPC_MoveParent,
/* 15412*/                OPC_CheckType, MVT::i32,
/* 15414*/                OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 15416*/                OPC_EmitNode1, TARGET_VAL(PPC::EFDCMPLT), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 15424*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 15427*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 15435*/                OPC_EmitInteger, MVT::i32, 0, 
/* 15438*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 15445*/                OPC_EmitInteger, MVT::i32, 1, 
/* 15448*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 15455*/                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] }))
/* 15464*/              /*Scope*/ 55, /*->15520*/
/* 15465*/                OPC_CheckType, MVT::i1,
/* 15467*/                OPC_MoveParent,
/* 15468*/                OPC_CheckType, MVT::i64,
/* 15470*/                OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 15472*/                OPC_EmitNode1, TARGET_VAL(PPC::EFDCMPLT), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 15480*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 15483*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 15491*/                OPC_EmitInteger, MVT::i64, 0, 
/* 15494*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 15501*/                OPC_EmitInteger, MVT::i64, 1, 
/* 15504*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 15511*/                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] }))
/* 15520*/              0, /*End of Scope*/
/* 15521*/            /*Scope*/ 114, /*->15636*/
/* 15522*/              OPC_CheckChild2CondCode, ISD::SETULE,
/* 15524*/              OPC_Scope, 53, /*->15579*/ // 2 children in Scope
/* 15526*/                OPC_MoveParent,
/* 15527*/                OPC_CheckType, MVT::i32,
/* 15529*/                OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 15531*/                OPC_EmitNode1, TARGET_VAL(PPC::EFDCMPGT), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 15539*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 15542*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 15550*/                OPC_EmitInteger, MVT::i32, 0, 
/* 15553*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 15560*/                OPC_EmitInteger, MVT::i32, 1, 
/* 15563*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 15570*/                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] }))
/* 15579*/              /*Scope*/ 55, /*->15635*/
/* 15580*/                OPC_CheckType, MVT::i1,
/* 15582*/                OPC_MoveParent,
/* 15583*/                OPC_CheckType, MVT::i64,
/* 15585*/                OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 15587*/                OPC_EmitNode1, TARGET_VAL(PPC::EFDCMPGT), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 15595*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 15598*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 15606*/                OPC_EmitInteger, MVT::i64, 0, 
/* 15609*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 15616*/                OPC_EmitInteger, MVT::i64, 1, 
/* 15619*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 15626*/                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] }))
/* 15635*/              0, /*End of Scope*/
/* 15636*/            /*Scope*/ 114, /*->15751*/
/* 15637*/              OPC_CheckChild2CondCode, ISD::SETLE,
/* 15639*/              OPC_Scope, 53, /*->15694*/ // 2 children in Scope
/* 15641*/                OPC_MoveParent,
/* 15642*/                OPC_CheckType, MVT::i32,
/* 15644*/                OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 15646*/                OPC_EmitNode1, TARGET_VAL(PPC::EFDCMPGT), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 15654*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 15657*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 15665*/                OPC_EmitInteger, MVT::i32, 0, 
/* 15668*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 15675*/                OPC_EmitInteger, MVT::i32, 1, 
/* 15678*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 15685*/                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] }))
/* 15694*/              /*Scope*/ 55, /*->15750*/
/* 15695*/                OPC_CheckType, MVT::i1,
/* 15697*/                OPC_MoveParent,
/* 15698*/                OPC_CheckType, MVT::i64,
/* 15700*/                OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 15702*/                OPC_EmitNode1, TARGET_VAL(PPC::EFDCMPGT), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 15710*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 15713*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 15721*/                OPC_EmitInteger, MVT::i64, 0, 
/* 15724*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 15731*/                OPC_EmitInteger, MVT::i64, 1, 
/* 15734*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 15741*/                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] }))
/* 15750*/              0, /*End of Scope*/
/* 15751*/            /*Scope*/ 114, /*->15866*/
/* 15752*/              OPC_CheckChild2CondCode, ISD::SETUNE,
/* 15754*/              OPC_Scope, 53, /*->15809*/ // 2 children in Scope
/* 15756*/                OPC_MoveParent,
/* 15757*/                OPC_CheckType, MVT::i32,
/* 15759*/                OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 15761*/                OPC_EmitNode1, TARGET_VAL(PPC::EFDCMPEQ), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 15769*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 15772*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 15780*/                OPC_EmitInteger, MVT::i32, 0, 
/* 15783*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 15790*/                OPC_EmitInteger, MVT::i32, 1, 
/* 15793*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 15800*/                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] }))
/* 15809*/              /*Scope*/ 55, /*->15865*/
/* 15810*/                OPC_CheckType, MVT::i1,
/* 15812*/                OPC_MoveParent,
/* 15813*/                OPC_CheckType, MVT::i64,
/* 15815*/                OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 15817*/                OPC_EmitNode1, TARGET_VAL(PPC::EFDCMPEQ), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 15825*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 15828*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 15836*/                OPC_EmitInteger, MVT::i64, 0, 
/* 15839*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 15846*/                OPC_EmitInteger, MVT::i64, 1, 
/* 15849*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 15856*/                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] }))
/* 15865*/              0, /*End of Scope*/
/* 15866*/            /*Scope*/ 114, /*->15981*/
/* 15867*/              OPC_CheckChild2CondCode, ISD::SETNE,
/* 15869*/              OPC_Scope, 53, /*->15924*/ // 2 children in Scope
/* 15871*/                OPC_MoveParent,
/* 15872*/                OPC_CheckType, MVT::i32,
/* 15874*/                OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 15876*/                OPC_EmitNode1, TARGET_VAL(PPC::EFDCMPEQ), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 15884*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 15887*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 15895*/                OPC_EmitInteger, MVT::i32, 0, 
/* 15898*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 15905*/                OPC_EmitInteger, MVT::i32, 1, 
/* 15908*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 15915*/                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] }))
/* 15924*/              /*Scope*/ 55, /*->15980*/
/* 15925*/                OPC_CheckType, MVT::i1,
/* 15927*/                OPC_MoveParent,
/* 15928*/                OPC_CheckType, MVT::i64,
/* 15930*/                OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 15932*/                OPC_EmitNode1, TARGET_VAL(PPC::EFDCMPEQ), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 15940*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 15943*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 15951*/                OPC_EmitInteger, MVT::i64, 0, 
/* 15954*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 15961*/                OPC_EmitInteger, MVT::i64, 1, 
/* 15964*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 15971*/                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] }))
/* 15980*/              0, /*End of Scope*/
/* 15981*/            0, /*End of Scope*/
/* 15982*/          /*Scope*/ 42|128,6/*810*/, /*->16794*/
/* 15984*/            OPC_CheckChild0Type, MVT::f128,
/* 15986*/            OPC_RecordChild1, // #1 = $s2
/* 15987*/            OPC_Scope, 114, /*->16103*/ // 7 children in Scope
/* 15989*/              OPC_CheckChild2CondCode, ISD::SETUGE,
/* 15991*/              OPC_Scope, 53, /*->16046*/ // 2 children in Scope
/* 15993*/                OPC_MoveParent,
/* 15994*/                OPC_CheckType, MVT::i32,
/* 15996*/                OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 15998*/                OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 16006*/                OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 16009*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 16017*/                OPC_EmitInteger, MVT::i32, 0, 
/* 16020*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 16027*/                OPC_EmitInteger, MVT::i32, 1, 
/* 16030*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 16037*/                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] }))
/* 16046*/              /*Scope*/ 55, /*->16102*/
/* 16047*/                OPC_CheckType, MVT::i1,
/* 16049*/                OPC_MoveParent,
/* 16050*/                OPC_CheckType, MVT::i64,
/* 16052*/                OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 16054*/                OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 16062*/                OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 16065*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 16073*/                OPC_EmitInteger, MVT::i64, 0, 
/* 16076*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 16083*/                OPC_EmitInteger, MVT::i64, 1, 
/* 16086*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 16093*/                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] }))
/* 16102*/              0, /*End of Scope*/
/* 16103*/            /*Scope*/ 114, /*->16218*/
/* 16104*/              OPC_CheckChild2CondCode, ISD::SETGE,
/* 16106*/              OPC_Scope, 53, /*->16161*/ // 2 children in Scope
/* 16108*/                OPC_MoveParent,
/* 16109*/                OPC_CheckType, MVT::i32,
/* 16111*/                OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 16113*/                OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 16121*/                OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 16124*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 16132*/                OPC_EmitInteger, MVT::i32, 0, 
/* 16135*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 16142*/                OPC_EmitInteger, MVT::i32, 1, 
/* 16145*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 16152*/                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] }))
/* 16161*/              /*Scope*/ 55, /*->16217*/
/* 16162*/                OPC_CheckType, MVT::i1,
/* 16164*/                OPC_MoveParent,
/* 16165*/                OPC_CheckType, MVT::i64,
/* 16167*/                OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 16169*/                OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 16177*/                OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 16180*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 16188*/                OPC_EmitInteger, MVT::i64, 0, 
/* 16191*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 16198*/                OPC_EmitInteger, MVT::i64, 1, 
/* 16201*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 16208*/                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] }))
/* 16217*/              0, /*End of Scope*/
/* 16218*/            /*Scope*/ 114, /*->16333*/
/* 16219*/              OPC_CheckChild2CondCode, ISD::SETULE,
/* 16221*/              OPC_Scope, 53, /*->16276*/ // 2 children in Scope
/* 16223*/                OPC_MoveParent,
/* 16224*/                OPC_CheckType, MVT::i32,
/* 16226*/                OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 16228*/                OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 16236*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 16239*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 16247*/                OPC_EmitInteger, MVT::i32, 0, 
/* 16250*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 16257*/                OPC_EmitInteger, MVT::i32, 1, 
/* 16260*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 16267*/                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] }))
/* 16276*/              /*Scope*/ 55, /*->16332*/
/* 16277*/                OPC_CheckType, MVT::i1,
/* 16279*/                OPC_MoveParent,
/* 16280*/                OPC_CheckType, MVT::i64,
/* 16282*/                OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 16284*/                OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 16292*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 16295*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 16303*/                OPC_EmitInteger, MVT::i64, 0, 
/* 16306*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 16313*/                OPC_EmitInteger, MVT::i64, 1, 
/* 16316*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 16323*/                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] }))
/* 16332*/              0, /*End of Scope*/
/* 16333*/            /*Scope*/ 114, /*->16448*/
/* 16334*/              OPC_CheckChild2CondCode, ISD::SETLE,
/* 16336*/              OPC_Scope, 53, /*->16391*/ // 2 children in Scope
/* 16338*/                OPC_MoveParent,
/* 16339*/                OPC_CheckType, MVT::i32,
/* 16341*/                OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 16343*/                OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 16351*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 16354*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 16362*/                OPC_EmitInteger, MVT::i32, 0, 
/* 16365*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 16372*/                OPC_EmitInteger, MVT::i32, 1, 
/* 16375*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 16382*/                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] }))
/* 16391*/              /*Scope*/ 55, /*->16447*/
/* 16392*/                OPC_CheckType, MVT::i1,
/* 16394*/                OPC_MoveParent,
/* 16395*/                OPC_CheckType, MVT::i64,
/* 16397*/                OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 16399*/                OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 16407*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 16410*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 16418*/                OPC_EmitInteger, MVT::i64, 0, 
/* 16421*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 16428*/                OPC_EmitInteger, MVT::i64, 1, 
/* 16431*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 16438*/                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] }))
/* 16447*/              0, /*End of Scope*/
/* 16448*/            /*Scope*/ 114, /*->16563*/
/* 16449*/              OPC_CheckChild2CondCode, ISD::SETUNE,
/* 16451*/              OPC_Scope, 53, /*->16506*/ // 2 children in Scope
/* 16453*/                OPC_MoveParent,
/* 16454*/                OPC_CheckType, MVT::i32,
/* 16456*/                OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 16458*/                OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 16466*/                OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 16469*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 16477*/                OPC_EmitInteger, MVT::i32, 0, 
/* 16480*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 16487*/                OPC_EmitInteger, MVT::i32, 1, 
/* 16490*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 16497*/                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] }))
/* 16506*/              /*Scope*/ 55, /*->16562*/
/* 16507*/                OPC_CheckType, MVT::i1,
/* 16509*/                OPC_MoveParent,
/* 16510*/                OPC_CheckType, MVT::i64,
/* 16512*/                OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 16514*/                OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 16522*/                OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 16525*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 16533*/                OPC_EmitInteger, MVT::i64, 0, 
/* 16536*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 16543*/                OPC_EmitInteger, MVT::i64, 1, 
/* 16546*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 16553*/                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] }))
/* 16562*/              0, /*End of Scope*/
/* 16563*/            /*Scope*/ 114, /*->16678*/
/* 16564*/              OPC_CheckChild2CondCode, ISD::SETNE,
/* 16566*/              OPC_Scope, 53, /*->16621*/ // 2 children in Scope
/* 16568*/                OPC_MoveParent,
/* 16569*/                OPC_CheckType, MVT::i32,
/* 16571*/                OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 16573*/                OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 16581*/                OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 16584*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 16592*/                OPC_EmitInteger, MVT::i32, 0, 
/* 16595*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 16602*/                OPC_EmitInteger, MVT::i32, 1, 
/* 16605*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 16612*/                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] }))
/* 16621*/              /*Scope*/ 55, /*->16677*/
/* 16622*/                OPC_CheckType, MVT::i1,
/* 16624*/                OPC_MoveParent,
/* 16625*/                OPC_CheckType, MVT::i64,
/* 16627*/                OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 16629*/                OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 16637*/                OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 16640*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 16648*/                OPC_EmitInteger, MVT::i64, 0, 
/* 16651*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 16658*/                OPC_EmitInteger, MVT::i64, 1, 
/* 16661*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 16668*/                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] }))
/* 16677*/              0, /*End of Scope*/
/* 16678*/            /*Scope*/ 114, /*->16793*/
/* 16679*/              OPC_CheckChild2CondCode, ISD::SETO,
/* 16681*/              OPC_Scope, 53, /*->16736*/ // 2 children in Scope
/* 16683*/                OPC_MoveParent,
/* 16684*/                OPC_CheckType, MVT::i32,
/* 16686*/                OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 16688*/                OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 16696*/                OPC_EmitInteger, MVT::i32, PPC::sub_un,
/* 16699*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 16707*/                OPC_EmitInteger, MVT::i32, 0, 
/* 16710*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 16717*/                OPC_EmitInteger, MVT::i32, 1, 
/* 16720*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 16727*/                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] }))
/* 16736*/              /*Scope*/ 55, /*->16792*/
/* 16737*/                OPC_CheckType, MVT::i1,
/* 16739*/                OPC_MoveParent,
/* 16740*/                OPC_CheckType, MVT::i64,
/* 16742*/                OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 16744*/                OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 16752*/                OPC_EmitInteger, MVT::i32, PPC::sub_un,
/* 16755*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 16763*/                OPC_EmitInteger, MVT::i64, 0, 
/* 16766*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 16773*/                OPC_EmitInteger, MVT::i64, 1, 
/* 16776*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 16783*/                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] }))
/* 16792*/              0, /*End of Scope*/
/* 16793*/            0, /*End of Scope*/
/* 16794*/          0, /*End of Scope*/
/* 16795*/        0, /*End of Scope*/
/* 16796*/      0, // EndSwitchOpcode
/* 16797*/    /*Scope*/ 91, /*->16889*/
/* 16798*/      OPC_RecordChild0, // #0 = $in
/* 16799*/      OPC_SwitchType /*2 cases */, 55, MVT::i64,// ->16857
/* 16802*/        OPC_Scope, 20, /*->16824*/ // 2 children in Scope
/* 16804*/          OPC_CheckChild0Type, MVT::i32,
/* 16806*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::i64, 0/*#Ops*/,  // Results = #1
/* 16812*/          OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 16815*/          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] })
/* 16824*/        /*Scope*/ 31, /*->16856*/
/* 16825*/          OPC_CheckChild0Type, MVT::i1,
/* 16827*/          OPC_EmitInteger, MVT::i64, 1, 
/* 16830*/          OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                        MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 16837*/          OPC_EmitInteger, MVT::i64, 0, 
/* 16840*/          OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                        MVT::i64, 1/*#Ops*/, 3,  // Results = #4
/* 16847*/          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] }))
/* 16856*/        0, /*End of Scope*/
/* 16857*/      /*SwitchType*/ 29, MVT::i32,// ->16888
/* 16859*/        OPC_EmitInteger, MVT::i32, 1, 
/* 16862*/        OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                      MVT::i32, 1/*#Ops*/, 1,  // Results = #2
/* 16869*/        OPC_EmitInteger, MVT::i32, 0, 
/* 16872*/        OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                      MVT::i32, 1/*#Ops*/, 3,  // Results = #4
/* 16879*/        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] }))
/* 16888*/      0, // EndSwitchType
/* 16889*/    0, /*End of Scope*/
/* 16890*/  /*SwitchOpcode*/ 49|128,76/*9777*/, TARGET_VAL(ISD::ZERO_EXTEND),// ->26671
/* 16894*/    OPC_Scope, 66|128,75/*9666*/, /*->26563*/ // 2 children in Scope
/* 16897*/      OPC_MoveChild0,
/* 16898*/      OPC_SwitchOpcode /*2 cases */, 78|128,2/*334*/, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),// ->17237
/* 16903*/        OPC_RecordChild0, // #0 = $S
/* 16904*/        OPC_CheckChild0Type, MVT::v4i32,
/* 16906*/        OPC_CheckType, MVT::i32,
/* 16908*/        OPC_Scope, 49, /*->16959*/ // 5 children in Scope
/* 16910*/          OPC_CheckChild1Integer, 0, 
/* 16912*/          OPC_MoveParent,
/* 16913*/          OPC_CheckType, MVT::i64,
/* 16915*/          OPC_Scope, 20, /*->16937*/ // 2 children in Scope
/* 16917*/            OPC_CheckPatternPredicate, 20, // (PPCSubTarget->hasP9Altivec()) && (PPCSubTarget->isLittleEndian())
/* 16919*/            OPC_EmitInteger, MVT::i64, 0, 
/* 16922*/            OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                          MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 16929*/            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)
/* 16937*/          /*Scope*/ 20, /*->16958*/
/* 16938*/            OPC_CheckPatternPredicate, 21, // (PPCSubTarget->hasP9Altivec()) && (!PPCSubTarget->isLittleEndian())
/* 16940*/            OPC_EmitInteger, MVT::i64, 0, 
/* 16943*/            OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                          MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 16950*/            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)
/* 16958*/          0, /*End of Scope*/
/* 16959*/        /*Scope*/ 78, /*->17038*/
/* 16960*/          OPC_CheckChild1Integer, 1, 
/* 16962*/          OPC_MoveParent,
/* 16963*/          OPC_CheckType, MVT::i64,
/* 16965*/          OPC_Scope, 20, /*->16987*/ // 2 children in Scope
/* 16967*/            OPC_CheckPatternPredicate, 20, // (PPCSubTarget->hasP9Altivec()) && (PPCSubTarget->isLittleEndian())
/* 16969*/            OPC_EmitInteger, MVT::i64, 4, 
/* 16972*/            OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                          MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 16979*/            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)
/* 16987*/          /*Scope*/ 49, /*->17037*/
/* 16988*/            OPC_CheckPatternPredicate, 21, // (PPCSubTarget->hasP9Altivec()) && (!PPCSubTarget->isLittleEndian())
/* 16990*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::i64, 0/*#Ops*/,  // Results = #1
/* 16996*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 16999*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2i64, 2/*#Ops*/, 0, 2,  // Results = #3
/* 17007*/            OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 17010*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::f64, 2/*#Ops*/, 3, 4,  // Results = #5
/* 17018*/            OPC_EmitNode1, TARGET_VAL(PPC::MFVSRWZ), 0,
                          MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 17025*/            OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 17028*/            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] })
/* 17037*/          0, /*End of Scope*/
/* 17038*/        /*Scope*/ 49, /*->17088*/
/* 17039*/          OPC_CheckChild1Integer, 3, 
/* 17041*/          OPC_MoveParent,
/* 17042*/          OPC_CheckType, MVT::i64,
/* 17044*/          OPC_Scope, 20, /*->17066*/ // 2 children in Scope
/* 17046*/            OPC_CheckPatternPredicate, 20, // (PPCSubTarget->hasP9Altivec()) && (PPCSubTarget->isLittleEndian())
/* 17048*/            OPC_EmitInteger, MVT::i64, 12, 
/* 17051*/            OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                          MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 17058*/            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)
/* 17066*/          /*Scope*/ 20, /*->17087*/
/* 17067*/            OPC_CheckPatternPredicate, 21, // (PPCSubTarget->hasP9Altivec()) && (!PPCSubTarget->isLittleEndian())
/* 17069*/            OPC_EmitInteger, MVT::i64, 12, 
/* 17072*/            OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                          MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 17079*/            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)
/* 17087*/          0, /*End of Scope*/
/* 17088*/        /*Scope*/ 78, /*->17167*/
/* 17089*/          OPC_CheckChild1Integer, 2, 
/* 17091*/          OPC_MoveParent,
/* 17092*/          OPC_CheckType, MVT::i64,
/* 17094*/          OPC_Scope, 20, /*->17116*/ // 2 children in Scope
/* 17096*/            OPC_CheckPatternPredicate, 21, // (PPCSubTarget->hasP9Altivec()) && (!PPCSubTarget->isLittleEndian())
/* 17098*/            OPC_EmitInteger, MVT::i64, 8, 
/* 17101*/            OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                          MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 17108*/            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)
/* 17116*/          /*Scope*/ 49, /*->17166*/
/* 17117*/            OPC_CheckPatternPredicate, 20, // (PPCSubTarget->hasP9Altivec()) && (PPCSubTarget->isLittleEndian())
/* 17119*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::i64, 0/*#Ops*/,  // Results = #1
/* 17125*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 17128*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2i64, 2/*#Ops*/, 0, 2,  // Results = #3
/* 17136*/            OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 17139*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::f64, 2/*#Ops*/, 3, 4,  // Results = #5
/* 17147*/            OPC_EmitNode1, TARGET_VAL(PPC::MFVSRWZ), 0,
                          MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 17154*/            OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 17157*/            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] })
/* 17166*/          0, /*End of Scope*/
/* 17167*/        /*Scope*/ 68, /*->17236*/
/* 17168*/          OPC_RecordChild1, // #1 = $Idx
/* 17169*/          OPC_CheckChild1Type, MVT::i64,
/* 17171*/          OPC_MoveParent,
/* 17172*/          OPC_CheckType, MVT::i64,
/* 17174*/          OPC_Scope, 29, /*->17205*/ // 2 children in Scope
/* 17176*/            OPC_CheckPatternPredicate, 20, // (PPCSubTarget->hasP9Altivec()) && (PPCSubTarget->isLittleEndian())
/* 17178*/            OPC_EmitInteger, MVT::i32, 2, 
/* 17181*/            OPC_EmitInteger, MVT::i32, 28, 
/* 17184*/            OPC_EmitInteger, MVT::i32, 29, 
/* 17187*/            OPC_EmitNode1, TARGET_VAL(PPC::RLWINM8), 0,
                          MVT::i64, 4/*#Ops*/, 1, 2, 3, 4,  // Results = #5
/* 17197*/            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)
/* 17205*/          /*Scope*/ 29, /*->17235*/
/* 17206*/            OPC_CheckPatternPredicate, 21, // (PPCSubTarget->hasP9Altivec()) && (!PPCSubTarget->isLittleEndian())
/* 17208*/            OPC_EmitInteger, MVT::i32, 2, 
/* 17211*/            OPC_EmitInteger, MVT::i32, 28, 
/* 17214*/            OPC_EmitInteger, MVT::i32, 29, 
/* 17217*/            OPC_EmitNode1, TARGET_VAL(PPC::RLWINM8), 0,
                          MVT::i64, 4/*#Ops*/, 1, 2, 3, 4,  // Results = #5
/* 17227*/            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)
/* 17235*/          0, /*End of Scope*/
/* 17236*/        0, /*End of Scope*/
/* 17237*/      /*SwitchOpcode*/ 105|128,72/*9321*/, TARGET_VAL(ISD::SETCC),// ->26562
/* 17241*/        OPC_Scope, 118|128,6/*886*/, /*->18130*/ // 2 children in Scope
/* 17244*/          OPC_MoveChild0,
/* 17245*/          OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 17248*/          OPC_Scope, 87, /*->17337*/ // 8 children in Scope
/* 17250*/            OPC_RecordChild0, // #0 = $s1
/* 17251*/            OPC_MoveChild1,
/* 17252*/            OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
/* 17255*/            OPC_CheckChild0Integer, 1, 
/* 17257*/            OPC_RecordChild1, // #1 = $sa
/* 17258*/            OPC_CheckChild1Type, MVT::i32,
/* 17260*/            OPC_MoveParent,
/* 17261*/            OPC_SwitchType /*2 cases */, 36, MVT::i32,// ->17300
/* 17264*/              OPC_MoveParent,
/* 17265*/              OPC_CheckChild1Integer, 0, 
/* 17267*/              OPC_CheckChild2CondCode, ISD::SETNE,
/* 17269*/              OPC_MoveParent,
/* 17270*/              OPC_CheckType, MVT::i32,
/* 17272*/              OPC_EmitInteger, MVT::i32, 32, 
/* 17275*/              OPC_EmitNode2, TARGET_VAL(PPC::SUBFIC), 0,
                            MVT::i32, MVT::i32, 2/*#Ops*/, 1, 2,  // Results = #3 #4
/* 17284*/              OPC_EmitInteger, MVT::i32, 31, 
/* 17287*/              OPC_EmitInteger, MVT::i32, 31, 
/* 17290*/              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] })
/* 17300*/            /*SwitchType*/ 34, MVT::i64,// ->17336
/* 17302*/              OPC_MoveParent,
/* 17303*/              OPC_CheckChild1Integer, 0, 
/* 17305*/              OPC_CheckChild2CondCode, ISD::SETNE,
/* 17307*/              OPC_CheckType, MVT::i1,
/* 17309*/              OPC_MoveParent,
/* 17310*/              OPC_CheckType, MVT::i64,
/* 17312*/              OPC_EmitInteger, MVT::i32, 64, 
/* 17315*/              OPC_EmitNode2, TARGET_VAL(PPC::SUBFIC), 0,
                            MVT::i32, MVT::i32, 2/*#Ops*/, 1, 2,  // Results = #3 #4
/* 17324*/              OPC_EmitInteger, MVT::i32, 63, 
/* 17327*/              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] })
/* 17336*/            0, // EndSwitchType
/* 17337*/          /*Scope*/ 87, /*->17425*/
/* 17338*/            OPC_MoveChild0,
/* 17339*/            OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
/* 17342*/            OPC_CheckChild0Integer, 1, 
/* 17344*/            OPC_RecordChild1, // #0 = $sa
/* 17345*/            OPC_CheckChild1Type, MVT::i32,
/* 17347*/            OPC_MoveParent,
/* 17348*/            OPC_RecordChild1, // #1 = $s1
/* 17349*/            OPC_SwitchType /*2 cases */, 36, MVT::i32,// ->17388
/* 17352*/              OPC_MoveParent,
/* 17353*/              OPC_CheckChild1Integer, 0, 
/* 17355*/              OPC_CheckChild2CondCode, ISD::SETNE,
/* 17357*/              OPC_MoveParent,
/* 17358*/              OPC_CheckType, MVT::i32,
/* 17360*/              OPC_EmitInteger, MVT::i32, 32, 
/* 17363*/              OPC_EmitNode2, TARGET_VAL(PPC::SUBFIC), 0,
                            MVT::i32, MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3 #4
/* 17372*/              OPC_EmitInteger, MVT::i32, 31, 
/* 17375*/              OPC_EmitInteger, MVT::i32, 31, 
/* 17378*/              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] })
/* 17388*/            /*SwitchType*/ 34, MVT::i64,// ->17424
/* 17390*/              OPC_MoveParent,
/* 17391*/              OPC_CheckChild1Integer, 0, 
/* 17393*/              OPC_CheckChild2CondCode, ISD::SETNE,
/* 17395*/              OPC_CheckType, MVT::i1,
/* 17397*/              OPC_MoveParent,
/* 17398*/              OPC_CheckType, MVT::i64,
/* 17400*/              OPC_EmitInteger, MVT::i32, 64, 
/* 17403*/              OPC_EmitNode2, TARGET_VAL(PPC::SUBFIC), 0,
                            MVT::i32, MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3 #4
/* 17412*/              OPC_EmitInteger, MVT::i32, 63, 
/* 17415*/              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] })
/* 17424*/            0, // EndSwitchType
/* 17425*/          /*Scope*/ 19|128,1/*147*/, /*->17574*/
/* 17427*/            OPC_RecordChild0, // #0 = $s1
/* 17428*/            OPC_MoveChild1,
/* 17429*/            OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
/* 17432*/            OPC_CheckChild0Integer, 1, 
/* 17434*/            OPC_RecordChild1, // #1 = $sa
/* 17435*/            OPC_CheckChild1Type, MVT::i32,
/* 17437*/            OPC_MoveParent,
/* 17438*/            OPC_SwitchType /*2 cases */, 86, MVT::i64,// ->17527
/* 17441*/              OPC_MoveParent,
/* 17442*/              OPC_CheckChild1Integer, 0, 
/* 17444*/              OPC_Scope, 40, /*->17486*/ // 2 children in Scope
/* 17446*/                OPC_CheckChild2CondCode, ISD::SETNE,
/* 17448*/                OPC_MoveParent,
/* 17449*/                OPC_CheckType, MVT::i32,
/* 17451*/                OPC_EmitInteger, MVT::i32, 64, 
/* 17454*/                OPC_EmitNode2, TARGET_VAL(PPC::SUBFIC), 0,
                              MVT::i32, MVT::i32, 2/*#Ops*/, 1, 2,  // Results = #3 #4
/* 17463*/                OPC_EmitInteger, MVT::i32, 63, 
/* 17466*/                OPC_EmitNode1, TARGET_VAL(PPC::RLDCL), 0,
                              MVT::i64, 3/*#Ops*/, 0, 3, 5,  // Results = #6
/* 17475*/                OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 17478*/                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] })
/* 17486*/              /*Scope*/ 39, /*->17526*/
/* 17487*/                OPC_CheckChild2CondCode, ISD::SETEQ,
/* 17489*/                OPC_CheckType, MVT::i1,
/* 17491*/                OPC_MoveParent,
/* 17492*/                OPC_CheckType, MVT::i64,
/* 17494*/                OPC_EmitNode1, TARGET_VAL(PPC::NOR8), 0,
                              MVT::i64, 2/*#Ops*/, 0, 0,  // Results = #2
/* 17502*/                OPC_EmitInteger, MVT::i32, 64, 
/* 17505*/                OPC_EmitNode2, TARGET_VAL(PPC::SUBFIC), 0,
                              MVT::i32, MVT::i32, 2/*#Ops*/, 1, 3,  // Results = #4 #5
/* 17514*/                OPC_EmitInteger, MVT::i32, 63, 
/* 17517*/                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] })
/* 17526*/              0, /*End of Scope*/
/* 17527*/            /*SwitchType*/ 44, MVT::i32,// ->17573
/* 17529*/              OPC_MoveParent,
/* 17530*/              OPC_CheckChild1Integer, 0, 
/* 17532*/              OPC_CheckChild2CondCode, ISD::SETEQ,
/* 17534*/              OPC_MoveParent,
/* 17535*/              OPC_CheckType, MVT::i32,
/* 17537*/              OPC_EmitNode1, TARGET_VAL(PPC::NOR), 0,
                            MVT::i32, 2/*#Ops*/, 0, 0,  // Results = #2
/* 17545*/              OPC_EmitInteger, MVT::i32, 32, 
/* 17548*/              OPC_EmitNode2, TARGET_VAL(PPC::SUBFIC), 0,
                            MVT::i32, MVT::i32, 2/*#Ops*/, 1, 3,  // Results = #4 #5
/* 17557*/              OPC_EmitInteger, MVT::i32, 31, 
/* 17560*/              OPC_EmitInteger, MVT::i32, 31, 
/* 17563*/              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] })
/* 17573*/            0, // EndSwitchType
/* 17574*/          /*Scope*/ 19|128,1/*147*/, /*->17723*/
/* 17576*/            OPC_MoveChild0,
/* 17577*/            OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
/* 17580*/            OPC_CheckChild0Integer, 1, 
/* 17582*/            OPC_RecordChild1, // #0 = $sa
/* 17583*/            OPC_CheckChild1Type, MVT::i32,
/* 17585*/            OPC_MoveParent,
/* 17586*/            OPC_RecordChild1, // #1 = $s1
/* 17587*/            OPC_SwitchType /*2 cases */, 86, MVT::i64,// ->17676
/* 17590*/              OPC_MoveParent,
/* 17591*/              OPC_CheckChild1Integer, 0, 
/* 17593*/              OPC_Scope, 40, /*->17635*/ // 2 children in Scope
/* 17595*/                OPC_CheckChild2CondCode, ISD::SETNE,
/* 17597*/                OPC_MoveParent,
/* 17598*/                OPC_CheckType, MVT::i32,
/* 17600*/                OPC_EmitInteger, MVT::i32, 64, 
/* 17603*/                OPC_EmitNode2, TARGET_VAL(PPC::SUBFIC), 0,
                              MVT::i32, MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3 #4
/* 17612*/                OPC_EmitInteger, MVT::i32, 63, 
/* 17615*/                OPC_EmitNode1, TARGET_VAL(PPC::RLDCL), 0,
                              MVT::i64, 3/*#Ops*/, 1, 3, 5,  // Results = #6
/* 17624*/                OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 17627*/                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] })
/* 17635*/              /*Scope*/ 39, /*->17675*/
/* 17636*/                OPC_CheckChild2CondCode, ISD::SETEQ,
/* 17638*/                OPC_CheckType, MVT::i1,
/* 17640*/                OPC_MoveParent,
/* 17641*/                OPC_CheckType, MVT::i64,
/* 17643*/                OPC_EmitNode1, TARGET_VAL(PPC::NOR8), 0,
                              MVT::i64, 2/*#Ops*/, 1, 1,  // Results = #2
/* 17651*/                OPC_EmitInteger, MVT::i32, 64, 
/* 17654*/                OPC_EmitNode2, TARGET_VAL(PPC::SUBFIC), 0,
                              MVT::i32, MVT::i32, 2/*#Ops*/, 0, 3,  // Results = #4 #5
/* 17663*/                OPC_EmitInteger, MVT::i32, 63, 
/* 17666*/                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] })
/* 17675*/              0, /*End of Scope*/
/* 17676*/            /*SwitchType*/ 44, MVT::i32,// ->17722
/* 17678*/              OPC_MoveParent,
/* 17679*/              OPC_CheckChild1Integer, 0, 
/* 17681*/              OPC_CheckChild2CondCode, ISD::SETEQ,
/* 17683*/              OPC_MoveParent,
/* 17684*/              OPC_CheckType, MVT::i32,
/* 17686*/              OPC_EmitNode1, TARGET_VAL(PPC::NOR), 0,
                            MVT::i32, 2/*#Ops*/, 1, 1,  // Results = #2
/* 17694*/              OPC_EmitInteger, MVT::i32, 32, 
/* 17697*/              OPC_EmitNode2, TARGET_VAL(PPC::SUBFIC), 0,
                            MVT::i32, MVT::i32, 2/*#Ops*/, 0, 3,  // Results = #4 #5
/* 17706*/              OPC_EmitInteger, MVT::i32, 31, 
/* 17709*/              OPC_EmitInteger, MVT::i32, 31, 
/* 17712*/              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] })
/* 17722*/            0, // EndSwitchType
/* 17723*/          /*Scope*/ 124, /*->17848*/
/* 17724*/            OPC_RecordChild0, // #0 = $s1
/* 17725*/            OPC_MoveChild1,
/* 17726*/            OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
/* 17729*/            OPC_CheckChild0Integer, 1, 
/* 17731*/            OPC_RecordChild1, // #1 = $sa
/* 17732*/            OPC_CheckChild1Type, MVT::i32,
/* 17734*/            OPC_MoveParent,
/* 17735*/            OPC_SwitchType /*2 cases */, 56, MVT::i32,// ->17794
/* 17738*/              OPC_MoveParent,
/* 17739*/              OPC_CheckChild1Integer, 0, 
/* 17741*/              OPC_CheckChild2CondCode, ISD::SETNE,
/* 17743*/              OPC_CheckType, MVT::i1,
/* 17745*/              OPC_MoveParent,
/* 17746*/              OPC_CheckType, MVT::i64,
/* 17748*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::i64, 0/*#Ops*/,  // Results = #2
/* 17754*/              OPC_EmitInteger, MVT::i32, 32, 
/* 17757*/              OPC_EmitNode2, TARGET_VAL(PPC::SUBFIC), 0,
                            MVT::i32, MVT::i32, 2/*#Ops*/, 1, 3,  // Results = #4 #5
/* 17766*/              OPC_EmitInteger, MVT::i32, 31, 
/* 17769*/              OPC_EmitInteger, MVT::i32, 31, 
/* 17772*/              OPC_EmitNode1, TARGET_VAL(PPC::RLWNM), 0,
                            MVT::i32, 4/*#Ops*/, 0, 4, 6, 7,  // Results = #8
/* 17782*/              OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 17785*/              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] })
/* 17794*/            /*SwitchType*/ 51, MVT::i64,// ->17847
/* 17796*/              OPC_MoveParent,
/* 17797*/              OPC_CheckChild1Integer, 0, 
/* 17799*/              OPC_CheckChild2CondCode, ISD::SETEQ,
/* 17801*/              OPC_MoveParent,
/* 17802*/              OPC_CheckType, MVT::i32,
/* 17804*/              OPC_EmitNode1, TARGET_VAL(PPC::NOR8), 0,
                            MVT::i64, 2/*#Ops*/, 0, 0,  // Results = #2
/* 17812*/              OPC_EmitInteger, MVT::i32, 64, 
/* 17815*/              OPC_EmitNode2, TARGET_VAL(PPC::SUBFIC), 0,
                            MVT::i32, MVT::i32, 2/*#Ops*/, 1, 3,  // Results = #4 #5
/* 17824*/              OPC_EmitInteger, MVT::i32, 63, 
/* 17827*/              OPC_EmitNode1, TARGET_VAL(PPC::RLDCL), 0,
                            MVT::i64, 3/*#Ops*/, 2, 4, 6,  // Results = #7
/* 17836*/              OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 17839*/              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] })
/* 17847*/            0, // EndSwitchType
/* 17848*/          /*Scope*/ 124, /*->17973*/
/* 17849*/            OPC_MoveChild0,
/* 17850*/            OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
/* 17853*/            OPC_CheckChild0Integer, 1, 
/* 17855*/            OPC_RecordChild1, // #0 = $sa
/* 17856*/            OPC_CheckChild1Type, MVT::i32,
/* 17858*/            OPC_MoveParent,
/* 17859*/            OPC_RecordChild1, // #1 = $s1
/* 17860*/            OPC_SwitchType /*2 cases */, 56, MVT::i32,// ->17919
/* 17863*/              OPC_MoveParent,
/* 17864*/              OPC_CheckChild1Integer, 0, 
/* 17866*/              OPC_CheckChild2CondCode, ISD::SETNE,
/* 17868*/              OPC_CheckType, MVT::i1,
/* 17870*/              OPC_MoveParent,
/* 17871*/              OPC_CheckType, MVT::i64,
/* 17873*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::i64, 0/*#Ops*/,  // Results = #2
/* 17879*/              OPC_EmitInteger, MVT::i32, 32, 
/* 17882*/              OPC_EmitNode2, TARGET_VAL(PPC::SUBFIC), 0,
                            MVT::i32, MVT::i32, 2/*#Ops*/, 0, 3,  // Results = #4 #5
/* 17891*/              OPC_EmitInteger, MVT::i32, 31, 
/* 17894*/              OPC_EmitInteger, MVT::i32, 31, 
/* 17897*/              OPC_EmitNode1, TARGET_VAL(PPC::RLWNM), 0,
                            MVT::i32, 4/*#Ops*/, 1, 4, 6, 7,  // Results = #8
/* 17907*/              OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 17910*/              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] })
/* 17919*/            /*SwitchType*/ 51, MVT::i64,// ->17972
/* 17921*/              OPC_MoveParent,
/* 17922*/              OPC_CheckChild1Integer, 0, 
/* 17924*/              OPC_CheckChild2CondCode, ISD::SETEQ,
/* 17926*/              OPC_MoveParent,
/* 17927*/              OPC_CheckType, MVT::i32,
/* 17929*/              OPC_EmitNode1, TARGET_VAL(PPC::NOR8), 0,
                            MVT::i64, 2/*#Ops*/, 1, 1,  // Results = #2
/* 17937*/              OPC_EmitInteger, MVT::i32, 64, 
/* 17940*/              OPC_EmitNode2, TARGET_VAL(PPC::SUBFIC), 0,
                            MVT::i32, MVT::i32, 2/*#Ops*/, 0, 3,  // Results = #4 #5
/* 17949*/              OPC_EmitInteger, MVT::i32, 63, 
/* 17952*/              OPC_EmitNode1, TARGET_VAL(PPC::RLDCL), 0,
                            MVT::i64, 3/*#Ops*/, 2, 4, 6,  // Results = #7
/* 17961*/              OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 17964*/              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] })
/* 17972*/            0, // EndSwitchType
/* 17973*/          /*Scope*/ 77, /*->18051*/
/* 17974*/            OPC_RecordChild0, // #0 = $s1
/* 17975*/            OPC_MoveChild1,
/* 17976*/            OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
/* 17979*/            OPC_CheckChild0Integer, 1, 
/* 17981*/            OPC_RecordChild1, // #1 = $sa
/* 17982*/            OPC_CheckChild1Type, MVT::i32,
/* 17984*/            OPC_MoveParent,
/* 17985*/            OPC_CheckType, MVT::i32,
/* 17987*/            OPC_MoveParent,
/* 17988*/            OPC_CheckChild1Integer, 0, 
/* 17990*/            OPC_CheckChild2CondCode, ISD::SETEQ,
/* 17992*/            OPC_CheckType, MVT::i1,
/* 17994*/            OPC_MoveParent,
/* 17995*/            OPC_CheckType, MVT::i64,
/* 17997*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::i64, 0/*#Ops*/,  // Results = #2
/* 18003*/            OPC_EmitNode1, TARGET_VAL(PPC::NOR), 0,
                          MVT::i32, 2/*#Ops*/, 0, 0,  // Results = #3
/* 18011*/            OPC_EmitInteger, MVT::i32, 32, 
/* 18014*/            OPC_EmitNode2, TARGET_VAL(PPC::SUBFIC), 0,
                          MVT::i32, MVT::i32, 2/*#Ops*/, 1, 4,  // Results = #5 #6
/* 18023*/            OPC_EmitInteger, MVT::i32, 31, 
/* 18026*/            OPC_EmitInteger, MVT::i32, 31, 
/* 18029*/            OPC_EmitNode1, TARGET_VAL(PPC::RLWNM), 0,
                          MVT::i32, 4/*#Ops*/, 3, 5, 7, 8,  // Results = #9
/* 18039*/            OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 18042*/            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] })
/* 18051*/          /*Scope*/ 77, /*->18129*/
/* 18052*/            OPC_MoveChild0,
/* 18053*/            OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
/* 18056*/            OPC_CheckChild0Integer, 1, 
/* 18058*/            OPC_RecordChild1, // #0 = $sa
/* 18059*/            OPC_CheckChild1Type, MVT::i32,
/* 18061*/            OPC_MoveParent,
/* 18062*/            OPC_RecordChild1, // #1 = $s1
/* 18063*/            OPC_CheckType, MVT::i32,
/* 18065*/            OPC_MoveParent,
/* 18066*/            OPC_CheckChild1Integer, 0, 
/* 18068*/            OPC_CheckChild2CondCode, ISD::SETEQ,
/* 18070*/            OPC_CheckType, MVT::i1,
/* 18072*/            OPC_MoveParent,
/* 18073*/            OPC_CheckType, MVT::i64,
/* 18075*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::i64, 0/*#Ops*/,  // Results = #2
/* 18081*/            OPC_EmitNode1, TARGET_VAL(PPC::NOR), 0,
                          MVT::i32, 2/*#Ops*/, 1, 1,  // Results = #3
/* 18089*/            OPC_EmitInteger, MVT::i32, 32, 
/* 18092*/            OPC_EmitNode2, TARGET_VAL(PPC::SUBFIC), 0,
                          MVT::i32, MVT::i32, 2/*#Ops*/, 0, 4,  // Results = #5 #6
/* 18101*/            OPC_EmitInteger, MVT::i32, 31, 
/* 18104*/            OPC_EmitInteger, MVT::i32, 31, 
/* 18107*/            OPC_EmitNode1, TARGET_VAL(PPC::RLWNM), 0,
                          MVT::i32, 4/*#Ops*/, 3, 5, 7, 8,  // Results = #9
/* 18117*/            OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 18120*/            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] })
/* 18129*/          0, /*End of Scope*/
/* 18130*/        /*Scope*/ 109|128,65/*8429*/, /*->26561*/
/* 18132*/          OPC_RecordChild0, // #0 = $s1
/* 18133*/          OPC_Scope, 73|128,18/*2377*/, /*->20513*/ // 5 children in Scope
/* 18136*/            OPC_CheckChild0Type, MVT::i32,
/* 18138*/            OPC_Scope, 46|128,4/*558*/, /*->18699*/ // 3 children in Scope
/* 18141*/              OPC_CheckChild1Integer, 0, 
/* 18143*/              OPC_Scope, 24, /*->18169*/ // 12 children in Scope
/* 18145*/                OPC_CheckChild2CondCode, ISD::SETLT,
/* 18147*/                OPC_MoveParent,
/* 18148*/                OPC_CheckType, MVT::i32,
/* 18150*/                OPC_EmitInteger, MVT::i32, 1, 
/* 18153*/                OPC_EmitInteger, MVT::i32, 31, 
/* 18156*/                OPC_EmitInteger, MVT::i32, 31, 
/* 18159*/                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] })
/* 18169*/              /*Scope*/ 31, /*->18201*/
/* 18170*/                OPC_CheckChild2CondCode, ISD::SETEQ,
/* 18172*/                OPC_MoveParent,
/* 18173*/                OPC_CheckType, MVT::i32,
/* 18175*/                OPC_EmitNode1, TARGET_VAL(PPC::CNTLZW), 0,
                              MVT::i32, 1/*#Ops*/, 0,  // Results = #1
/* 18182*/                OPC_EmitInteger, MVT::i32, 27, 
/* 18185*/                OPC_EmitInteger, MVT::i32, 31, 
/* 18188*/                OPC_EmitInteger, MVT::i32, 31, 
/* 18191*/                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] })
/* 18201*/              /*Scope*/ 32, /*->18234*/
/* 18202*/                OPC_CheckChild2CondCode, ISD::SETGE,
/* 18204*/                OPC_MoveParent,
/* 18205*/                OPC_CheckType, MVT::i32,
/* 18207*/                OPC_EmitNode1, TARGET_VAL(PPC::NOR), 0,
                              MVT::i32, 2/*#Ops*/, 0, 0,  // Results = #1
/* 18215*/                OPC_EmitInteger, MVT::i32, 1, 
/* 18218*/                OPC_EmitInteger, MVT::i32, 31, 
/* 18221*/                OPC_EmitInteger, MVT::i32, 31, 
/* 18224*/                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] })
/* 18234*/              /*Scope*/ 44, /*->18279*/
/* 18235*/                OPC_CheckChild2CondCode, ISD::SETLT,
/* 18237*/                OPC_CheckType, MVT::i1,
/* 18239*/                OPC_MoveParent,
/* 18240*/                OPC_CheckType, MVT::i64,
/* 18242*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                              MVT::i64, 0/*#Ops*/,  // Results = #1
/* 18248*/                OPC_EmitInteger, MVT::i32, 1, 
/* 18251*/                OPC_EmitInteger, MVT::i32, 31, 
/* 18254*/                OPC_EmitInteger, MVT::i32, 31, 
/* 18257*/                OPC_EmitNode1, TARGET_VAL(PPC::RLWINM), 0,
                              MVT::i32, 4/*#Ops*/, 0, 2, 3, 4,  // Results = #5
/* 18267*/                OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 18270*/                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] })
/* 18279*/              /*Scope*/ 39, /*->18319*/
/* 18280*/                OPC_CheckChild2CondCode, ISD::SETGT,
/* 18282*/                OPC_MoveParent,
/* 18283*/                OPC_CheckType, MVT::i32,
/* 18285*/                OPC_EmitNode1, TARGET_VAL(PPC::NEG), 0,
                              MVT::i32, 1/*#Ops*/, 0,  // Results = #1
/* 18292*/                OPC_EmitNode1, TARGET_VAL(PPC::ANDC), 0,
                              MVT::i32, 2/*#Ops*/, 1, 0,  // Results = #2
/* 18300*/                OPC_EmitInteger, MVT::i32, 1, 
/* 18303*/                OPC_EmitInteger, MVT::i32, 31, 
/* 18306*/                OPC_EmitInteger, MVT::i32, 31, 
/* 18309*/                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] })
/* 18319*/              /*Scope*/ 39, /*->18359*/
/* 18320*/                OPC_CheckChild2CondCode, ISD::SETLE,
/* 18322*/                OPC_MoveParent,
/* 18323*/                OPC_CheckType, MVT::i32,
/* 18325*/                OPC_EmitNode1, TARGET_VAL(PPC::NEG), 0,
                              MVT::i32, 1/*#Ops*/, 0,  // Results = #1
/* 18332*/                OPC_EmitNode1, TARGET_VAL(PPC::ORC), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 18340*/                OPC_EmitInteger, MVT::i32, 1, 
/* 18343*/                OPC_EmitInteger, MVT::i32, 31, 
/* 18346*/                OPC_EmitInteger, MVT::i32, 31, 
/* 18349*/                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] })
/* 18359*/              /*Scope*/ 51, /*->18411*/
/* 18360*/                OPC_CheckChild2CondCode, ISD::SETEQ,
/* 18362*/                OPC_CheckType, MVT::i1,
/* 18364*/                OPC_MoveParent,
/* 18365*/                OPC_CheckType, MVT::i64,
/* 18367*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                              MVT::i64, 0/*#Ops*/,  // Results = #1
/* 18373*/                OPC_EmitNode1, TARGET_VAL(PPC::CNTLZW), 0,
                              MVT::i32, 1/*#Ops*/, 0,  // Results = #2
/* 18380*/                OPC_EmitInteger, MVT::i32, 27, 
/* 18383*/                OPC_EmitInteger, MVT::i32, 31, 
/* 18386*/                OPC_EmitInteger, MVT::i32, 31, 
/* 18389*/                OPC_EmitNode1, TARGET_VAL(PPC::RLWINM), 0,
                              MVT::i32, 4/*#Ops*/, 2, 3, 4, 5,  // Results = #6
/* 18399*/                OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 18402*/                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] })
/* 18411*/              /*Scope*/ 46, /*->18458*/
/* 18412*/                OPC_CheckChild2CondCode, ISD::SETNE,
/* 18414*/                OPC_MoveParent,
/* 18415*/                OPC_CheckType, MVT::i32,
/* 18417*/                OPC_EmitNode1, TARGET_VAL(PPC::CNTLZW), 0,
                              MVT::i32, 1/*#Ops*/, 0,  // Results = #1
/* 18424*/                OPC_EmitNode1, TARGET_VAL(PPC::CNTLZW), 0,
                              MVT::i32, 1/*#Ops*/, 0,  // Results = #2
/* 18431*/                OPC_EmitNode1, TARGET_VAL(PPC::NOR), 0,
                              MVT::i32, 2/*#Ops*/, 1, 2,  // Results = #3
/* 18439*/                OPC_EmitInteger, MVT::i32, 27, 
/* 18442*/                OPC_EmitInteger, MVT::i32, 31, 
/* 18445*/                OPC_EmitInteger, MVT::i32, 31, 
/* 18448*/                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] })
/* 18458*/              /*Scope*/ 52, /*->18511*/
/* 18459*/                OPC_CheckChild2CondCode, ISD::SETGE,
/* 18461*/                OPC_CheckType, MVT::i1,
/* 18463*/                OPC_MoveParent,
/* 18464*/                OPC_CheckType, MVT::i64,
/* 18466*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                              MVT::i64, 0/*#Ops*/,  // Results = #1
/* 18472*/                OPC_EmitNode1, TARGET_VAL(PPC::NOR), 0,
                              MVT::i32, 2/*#Ops*/, 0, 0,  // Results = #2
/* 18480*/                OPC_EmitInteger, MVT::i32, 1, 
/* 18483*/                OPC_EmitInteger, MVT::i32, 31, 
/* 18486*/                OPC_EmitInteger, MVT::i32, 31, 
/* 18489*/                OPC_EmitNode1, TARGET_VAL(PPC::RLWINM), 0,
                              MVT::i32, 4/*#Ops*/, 2, 3, 4, 5,  // Results = #6
/* 18499*/                OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 18502*/                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] })
/* 18511*/              /*Scope*/ 59, /*->18571*/
/* 18512*/                OPC_CheckChild2CondCode, ISD::SETGT,
/* 18514*/                OPC_CheckType, MVT::i1,
/* 18516*/                OPC_MoveParent,
/* 18517*/                OPC_CheckType, MVT::i64,
/* 18519*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                              MVT::i64, 0/*#Ops*/,  // Results = #1
/* 18525*/                OPC_EmitNode1, TARGET_VAL(PPC::NEG), 0,
                              MVT::i32, 1/*#Ops*/, 0,  // Results = #2
/* 18532*/                OPC_EmitNode1, TARGET_VAL(PPC::ANDC), 0,
                              MVT::i32, 2/*#Ops*/, 2, 0,  // Results = #3
/* 18540*/                OPC_EmitInteger, MVT::i32, 1, 
/* 18543*/                OPC_EmitInteger, MVT::i32, 31, 
/* 18546*/                OPC_EmitInteger, MVT::i32, 31, 
/* 18549*/                OPC_EmitNode1, TARGET_VAL(PPC::RLWINM), 0,
                              MVT::i32, 4/*#Ops*/, 3, 4, 5, 6,  // Results = #7
/* 18559*/                OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 18562*/                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] })
/* 18571*/              /*Scope*/ 59, /*->18631*/
/* 18572*/                OPC_CheckChild2CondCode, ISD::SETLE,
/* 18574*/                OPC_CheckType, MVT::i1,
/* 18576*/                OPC_MoveParent,
/* 18577*/                OPC_CheckType, MVT::i64,
/* 18579*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                              MVT::i64, 0/*#Ops*/,  // Results = #1
/* 18585*/                OPC_EmitNode1, TARGET_VAL(PPC::NEG), 0,
                              MVT::i32, 1/*#Ops*/, 0,  // Results = #2
/* 18592*/                OPC_EmitNode1, TARGET_VAL(PPC::ORC), 0,
                              MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 18600*/                OPC_EmitInteger, MVT::i32, 1, 
/* 18603*/                OPC_EmitInteger, MVT::i32, 31, 
/* 18606*/                OPC_EmitInteger, MVT::i32, 31, 
/* 18609*/                OPC_EmitNode1, TARGET_VAL(PPC::RLWINM), 0,
                              MVT::i32, 4/*#Ops*/, 3, 4, 5, 6,  // Results = #7
/* 18619*/                OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 18622*/                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] })
/* 18631*/              /*Scope*/ 66, /*->18698*/
/* 18632*/                OPC_CheckChild2CondCode, ISD::SETNE,
/* 18634*/                OPC_CheckType, MVT::i1,
/* 18636*/                OPC_MoveParent,
/* 18637*/                OPC_CheckType, MVT::i64,
/* 18639*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                              MVT::i64, 0/*#Ops*/,  // Results = #1
/* 18645*/                OPC_EmitNode1, TARGET_VAL(PPC::CNTLZW), 0,
                              MVT::i32, 1/*#Ops*/, 0,  // Results = #2
/* 18652*/                OPC_EmitNode1, TARGET_VAL(PPC::CNTLZW), 0,
                              MVT::i32, 1/*#Ops*/, 0,  // Results = #3
/* 18659*/                OPC_EmitNode1, TARGET_VAL(PPC::NOR), 0,
                              MVT::i32, 2/*#Ops*/, 2, 3,  // Results = #4
/* 18667*/                OPC_EmitInteger, MVT::i32, 27, 
/* 18670*/                OPC_EmitInteger, MVT::i32, 31, 
/* 18673*/                OPC_EmitInteger, MVT::i32, 31, 
/* 18676*/                OPC_EmitNode1, TARGET_VAL(PPC::RLWINM), 0,
                              MVT::i32, 4/*#Ops*/, 4, 5, 6, 7,  // Results = #8
/* 18686*/                OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 18689*/                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] })
/* 18698*/              0, /*End of Scope*/
/* 18699*/            /*Scope*/ 1|128,3/*385*/, /*->19086*/
/* 18701*/              OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 18712*/              OPC_Scope, 24, /*->18738*/ // 8 children in Scope
/* 18714*/                OPC_CheckChild2CondCode, ISD::SETLE,
/* 18716*/                OPC_MoveParent,
/* 18717*/                OPC_CheckType, MVT::i32,
/* 18719*/                OPC_EmitInteger, MVT::i32, 1, 
/* 18722*/                OPC_EmitInteger, MVT::i32, 31, 
/* 18725*/                OPC_EmitInteger, MVT::i32, 31, 
/* 18728*/                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] })
/* 18738*/              /*Scope*/ 32, /*->18771*/
/* 18739*/                OPC_CheckChild2CondCode, ISD::SETGT,
/* 18741*/                OPC_MoveParent,
/* 18742*/                OPC_CheckType, MVT::i32,
/* 18744*/                OPC_EmitNode1, TARGET_VAL(PPC::NOR), 0,
                              MVT::i32, 2/*#Ops*/, 0, 0,  // Results = #1
/* 18752*/                OPC_EmitInteger, MVT::i32, 1, 
/* 18755*/                OPC_EmitInteger, MVT::i32, 31, 
/* 18758*/                OPC_EmitInteger, MVT::i32, 31, 
/* 18761*/                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] })
/* 18771*/              /*Scope*/ 43, /*->18815*/
/* 18772*/                OPC_CheckChild2CondCode, ISD::SETLT,
/* 18774*/                OPC_MoveParent,
/* 18775*/                OPC_CheckType, MVT::i32,
/* 18777*/                OPC_EmitInteger, MVT::i32, 1, 
/* 18780*/                OPC_EmitNode1, TARGET_VAL(PPC::ADDI), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 18788*/                OPC_EmitNode1, TARGET_VAL(PPC::AND), 0,
                              MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 18796*/                OPC_EmitInteger, MVT::i32, 1, 
/* 18799*/                OPC_EmitInteger, MVT::i32, 31, 
/* 18802*/                OPC_EmitInteger, MVT::i32, 31, 
/* 18805*/                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] })
/* 18815*/              /*Scope*/ 43, /*->18859*/
/* 18816*/                OPC_CheckChild2CondCode, ISD::SETGE,
/* 18818*/                OPC_MoveParent,
/* 18819*/                OPC_CheckType, MVT::i32,
/* 18821*/                OPC_EmitInteger, MVT::i32, 1, 
/* 18824*/                OPC_EmitNode1, TARGET_VAL(PPC::ADDI), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 18832*/                OPC_EmitNode1, TARGET_VAL(PPC::NAND), 0,
                              MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 18840*/                OPC_EmitInteger, MVT::i32, 1, 
/* 18843*/                OPC_EmitInteger, MVT::i32, 31, 
/* 18846*/                OPC_EmitInteger, MVT::i32, 31, 
/* 18849*/                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] })
/* 18859*/              /*Scope*/ 44, /*->18904*/
/* 18860*/                OPC_CheckChild2CondCode, ISD::SETLE,
/* 18862*/                OPC_CheckType, MVT::i1,
/* 18864*/                OPC_MoveParent,
/* 18865*/                OPC_CheckType, MVT::i64,
/* 18867*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                              MVT::i64, 0/*#Ops*/,  // Results = #1
/* 18873*/                OPC_EmitInteger, MVT::i32, 1, 
/* 18876*/                OPC_EmitInteger, MVT::i32, 31, 
/* 18879*/                OPC_EmitInteger, MVT::i32, 31, 
/* 18882*/                OPC_EmitNode1, TARGET_VAL(PPC::RLWINM), 0,
                              MVT::i32, 4/*#Ops*/, 0, 2, 3, 4,  // Results = #5
/* 18892*/                OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 18895*/                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] })
/* 18904*/              /*Scope*/ 52, /*->18957*/
/* 18905*/                OPC_CheckChild2CondCode, ISD::SETGT,
/* 18907*/                OPC_CheckType, MVT::i1,
/* 18909*/                OPC_MoveParent,
/* 18910*/                OPC_CheckType, MVT::i64,
/* 18912*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                              MVT::i64, 0/*#Ops*/,  // Results = #1
/* 18918*/                OPC_EmitNode1, TARGET_VAL(PPC::NOR), 0,
                              MVT::i32, 2/*#Ops*/, 0, 0,  // Results = #2
/* 18926*/                OPC_EmitInteger, MVT::i32, 1, 
/* 18929*/                OPC_EmitInteger, MVT::i32, 31, 
/* 18932*/                OPC_EmitInteger, MVT::i32, 31, 
/* 18935*/                OPC_EmitNode1, TARGET_VAL(PPC::RLWINM), 0,
                              MVT::i32, 4/*#Ops*/, 2, 3, 4, 5,  // Results = #6
/* 18945*/                OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 18948*/                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] })
/* 18957*/              /*Scope*/ 63, /*->19021*/
/* 18958*/                OPC_CheckChild2CondCode, ISD::SETLT,
/* 18960*/                OPC_CheckType, MVT::i1,
/* 18962*/                OPC_MoveParent,
/* 18963*/                OPC_CheckType, MVT::i64,
/* 18965*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                              MVT::i64, 0/*#Ops*/,  // Results = #1
/* 18971*/                OPC_EmitInteger, MVT::i32, 1, 
/* 18974*/                OPC_EmitNode1, TARGET_VAL(PPC::ADDI), 0,
                              MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 18982*/                OPC_EmitNode1, TARGET_VAL(PPC::AND), 0,
                              MVT::i32, 2/*#Ops*/, 0, 3,  // Results = #4
/* 18990*/                OPC_EmitInteger, MVT::i32, 1, 
/* 18993*/                OPC_EmitInteger, MVT::i32, 31, 
/* 18996*/                OPC_EmitInteger, MVT::i32, 31, 
/* 18999*/                OPC_EmitNode1, TARGET_VAL(PPC::RLWINM), 0,
                              MVT::i32, 4/*#Ops*/, 4, 5, 6, 7,  // Results = #8
/* 19009*/                OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 19012*/                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] })
/* 19021*/              /*Scope*/ 63, /*->19085*/
/* 19022*/                OPC_CheckChild2CondCode, ISD::SETGE,
/* 19024*/                OPC_CheckType, MVT::i1,
/* 19026*/                OPC_MoveParent,
/* 19027*/                OPC_CheckType, MVT::i64,
/* 19029*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                              MVT::i64, 0/*#Ops*/,  // Results = #1
/* 19035*/                OPC_EmitInteger, MVT::i32, 1, 
/* 19038*/                OPC_EmitNode1, TARGET_VAL(PPC::ADDI), 0,
                              MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 19046*/                OPC_EmitNode1, TARGET_VAL(PPC::NAND), 0,
                              MVT::i32, 2/*#Ops*/, 0, 3,  // Results = #4
/* 19054*/                OPC_EmitInteger, MVT::i32, 1, 
/* 19057*/                OPC_EmitInteger, MVT::i32, 31, 
/* 19060*/                OPC_EmitInteger, MVT::i32, 31, 
/* 19063*/                OPC_EmitNode1, TARGET_VAL(PPC::RLWINM), 0,
                              MVT::i32, 4/*#Ops*/, 4, 5, 6, 7,  // Results = #8
/* 19073*/                OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 19076*/                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] })
/* 19085*/              0, /*End of Scope*/
/* 19086*/            /*Scope*/ 16|128,11/*1424*/, /*->20512*/
/* 19088*/              OPC_RecordChild1, // #1 = $imm
/* 19089*/              OPC_Scope, 96|128,6/*864*/, /*->19956*/ // 6 children in Scope
/* 19092*/                OPC_MoveChild1,
/* 19093*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 19096*/                OPC_Scope, 117, /*->19215*/ // 6 children in Scope
/* 19098*/                  OPC_CheckPredicate, 12, // Predicate_immZExt16
/* 19100*/                  OPC_MoveParent,
/* 19101*/                  OPC_CheckChild2CondCode, ISD::SETUGE,
/* 19103*/                  OPC_Scope, 53, /*->19158*/ // 2 children in Scope
/* 19105*/                    OPC_MoveParent,
/* 19106*/                    OPC_CheckType, MVT::i32,
/* 19108*/                    OPC_EmitConvertToTarget, 1,
/* 19110*/                    OPC_EmitNode1, TARGET_VAL(PPC::CMPLWI), 0,
                                  MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 19118*/                    OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 19121*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                  MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 19129*/                    OPC_EmitInteger, MVT::i32, 0, 
/* 19132*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                  MVT::i32, 1/*#Ops*/, 6,  // Results = #7
/* 19139*/                    OPC_EmitInteger, MVT::i32, 1, 
/* 19142*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                  MVT::i32, 1/*#Ops*/, 8,  // Results = #9
/* 19149*/                    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] }))
/* 19158*/                  /*Scope*/ 55, /*->19214*/
/* 19159*/                    OPC_CheckType, MVT::i1,
/* 19161*/                    OPC_MoveParent,
/* 19162*/                    OPC_CheckType, MVT::i64,
/* 19164*/                    OPC_EmitConvertToTarget, 1,
/* 19166*/                    OPC_EmitNode1, TARGET_VAL(PPC::CMPLWI), 0,
                                  MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 19174*/                    OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 19177*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                  MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 19185*/                    OPC_EmitInteger, MVT::i64, 0, 
/* 19188*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                  MVT::i64, 1/*#Ops*/, 6,  // Results = #7
/* 19195*/                    OPC_EmitInteger, MVT::i64, 1, 
/* 19198*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                  MVT::i64, 1/*#Ops*/, 8,  // Results = #9
/* 19205*/                    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] }))
/* 19214*/                  0, /*End of Scope*/
/* 19215*/                /*Scope*/ 117, /*->19333*/
/* 19216*/                  OPC_CheckPredicate, 13, // Predicate_imm32SExt16
/* 19218*/                  OPC_MoveParent,
/* 19219*/                  OPC_CheckChild2CondCode, ISD::SETGE,
/* 19221*/                  OPC_Scope, 53, /*->19276*/ // 2 children in Scope
/* 19223*/                    OPC_MoveParent,
/* 19224*/                    OPC_CheckType, MVT::i32,
/* 19226*/                    OPC_EmitConvertToTarget, 1,
/* 19228*/                    OPC_EmitNode1, TARGET_VAL(PPC::CMPWI), 0,
                                  MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 19236*/                    OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 19239*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                  MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 19247*/                    OPC_EmitInteger, MVT::i32, 0, 
/* 19250*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                  MVT::i32, 1/*#Ops*/, 6,  // Results = #7
/* 19257*/                    OPC_EmitInteger, MVT::i32, 1, 
/* 19260*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                  MVT::i32, 1/*#Ops*/, 8,  // Results = #9
/* 19267*/                    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] }))
/* 19276*/                  /*Scope*/ 55, /*->19332*/
/* 19277*/                    OPC_CheckType, MVT::i1,
/* 19279*/                    OPC_MoveParent,
/* 19280*/                    OPC_CheckType, MVT::i64,
/* 19282*/                    OPC_EmitConvertToTarget, 1,
/* 19284*/                    OPC_EmitNode1, TARGET_VAL(PPC::CMPWI), 0,
                                  MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 19292*/                    OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 19295*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                  MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 19303*/                    OPC_EmitInteger, MVT::i64, 0, 
/* 19306*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                  MVT::i64, 1/*#Ops*/, 6,  // Results = #7
/* 19313*/                    OPC_EmitInteger, MVT::i64, 1, 
/* 19316*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                  MVT::i64, 1/*#Ops*/, 8,  // Results = #9
/* 19323*/                    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] }))
/* 19332*/                  0, /*End of Scope*/
/* 19333*/                /*Scope*/ 117, /*->19451*/
/* 19334*/                  OPC_CheckPredicate, 12, // Predicate_immZExt16
/* 19336*/                  OPC_MoveParent,
/* 19337*/                  OPC_CheckChild2CondCode, ISD::SETULE,
/* 19339*/                  OPC_Scope, 53, /*->19394*/ // 2 children in Scope
/* 19341*/                    OPC_MoveParent,
/* 19342*/                    OPC_CheckType, MVT::i32,
/* 19344*/                    OPC_EmitConvertToTarget, 1,
/* 19346*/                    OPC_EmitNode1, TARGET_VAL(PPC::CMPLWI), 0,
                                  MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 19354*/                    OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 19357*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                  MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 19365*/                    OPC_EmitInteger, MVT::i32, 0, 
/* 19368*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                  MVT::i32, 1/*#Ops*/, 6,  // Results = #7
/* 19375*/                    OPC_EmitInteger, MVT::i32, 1, 
/* 19378*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                  MVT::i32, 1/*#Ops*/, 8,  // Results = #9
/* 19385*/                    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] }))
/* 19394*/                  /*Scope*/ 55, /*->19450*/
/* 19395*/                    OPC_CheckType, MVT::i1,
/* 19397*/                    OPC_MoveParent,
/* 19398*/                    OPC_CheckType, MVT::i64,
/* 19400*/                    OPC_EmitConvertToTarget, 1,
/* 19402*/                    OPC_EmitNode1, TARGET_VAL(PPC::CMPLWI), 0,
                                  MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 19410*/                    OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 19413*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                  MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 19421*/                    OPC_EmitInteger, MVT::i64, 0, 
/* 19424*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                  MVT::i64, 1/*#Ops*/, 6,  // Results = #7
/* 19431*/                    OPC_EmitInteger, MVT::i64, 1, 
/* 19434*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                  MVT::i64, 1/*#Ops*/, 8,  // Results = #9
/* 19441*/                    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] }))
/* 19450*/                  0, /*End of Scope*/
/* 19451*/                /*Scope*/ 107|128,1/*235*/, /*->19688*/
/* 19453*/                  OPC_CheckPredicate, 13, // Predicate_imm32SExt16
/* 19455*/                  OPC_MoveParent,
/* 19456*/                  OPC_Scope, 114, /*->19572*/ // 2 children in Scope
/* 19458*/                    OPC_CheckChild2CondCode, ISD::SETLE,
/* 19460*/                    OPC_Scope, 53, /*->19515*/ // 2 children in Scope
/* 19462*/                      OPC_MoveParent,
/* 19463*/                      OPC_CheckType, MVT::i32,
/* 19465*/                      OPC_EmitConvertToTarget, 1,
/* 19467*/                      OPC_EmitNode1, TARGET_VAL(PPC::CMPWI), 0,
                                    MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 19475*/                      OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 19478*/                      OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                    MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 19486*/                      OPC_EmitInteger, MVT::i32, 0, 
/* 19489*/                      OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                    MVT::i32, 1/*#Ops*/, 6,  // Results = #7
/* 19496*/                      OPC_EmitInteger, MVT::i32, 1, 
/* 19499*/                      OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                    MVT::i32, 1/*#Ops*/, 8,  // Results = #9
/* 19506*/                      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] }))
/* 19515*/                    /*Scope*/ 55, /*->19571*/
/* 19516*/                      OPC_CheckType, MVT::i1,
/* 19518*/                      OPC_MoveParent,
/* 19519*/                      OPC_CheckType, MVT::i64,
/* 19521*/                      OPC_EmitConvertToTarget, 1,
/* 19523*/                      OPC_EmitNode1, TARGET_VAL(PPC::CMPWI), 0,
                                    MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 19531*/                      OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 19534*/                      OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                    MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 19542*/                      OPC_EmitInteger, MVT::i64, 0, 
/* 19545*/                      OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                    MVT::i64, 1/*#Ops*/, 6,  // Results = #7
/* 19552*/                      OPC_EmitInteger, MVT::i64, 1, 
/* 19555*/                      OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                    MVT::i64, 1/*#Ops*/, 8,  // Results = #9
/* 19562*/                      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] }))
/* 19571*/                    0, /*End of Scope*/
/* 19572*/                  /*Scope*/ 114, /*->19687*/
/* 19573*/                    OPC_CheckChild2CondCode, ISD::SETNE,
/* 19575*/                    OPC_Scope, 53, /*->19630*/ // 2 children in Scope
/* 19577*/                      OPC_MoveParent,
/* 19578*/                      OPC_CheckType, MVT::i32,
/* 19580*/                      OPC_EmitConvertToTarget, 1,
/* 19582*/                      OPC_EmitNode1, TARGET_VAL(PPC::CMPWI), 0,
                                    MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 19590*/                      OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 19593*/                      OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                    MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 19601*/                      OPC_EmitInteger, MVT::i32, 0, 
/* 19604*/                      OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                    MVT::i32, 1/*#Ops*/, 6,  // Results = #7
/* 19611*/                      OPC_EmitInteger, MVT::i32, 1, 
/* 19614*/                      OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                    MVT::i32, 1/*#Ops*/, 8,  // Results = #9
/* 19621*/                      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] }))
/* 19630*/                    /*Scope*/ 55, /*->19686*/
/* 19631*/                      OPC_CheckType, MVT::i1,
/* 19633*/                      OPC_MoveParent,
/* 19634*/                      OPC_CheckType, MVT::i64,
/* 19636*/                      OPC_EmitConvertToTarget, 1,
/* 19638*/                      OPC_EmitNode1, TARGET_VAL(PPC::CMPWI), 0,
                                    MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 19646*/                      OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 19649*/                      OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                    MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 19657*/                      OPC_EmitInteger, MVT::i64, 0, 
/* 19660*/                      OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                    MVT::i64, 1/*#Ops*/, 6,  // Results = #7
/* 19667*/                      OPC_EmitInteger, MVT::i64, 1, 
/* 19670*/                      OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                    MVT::i64, 1/*#Ops*/, 8,  // Results = #9
/* 19677*/                      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] }))
/* 19686*/                    0, /*End of Scope*/
/* 19687*/                  0, /*End of Scope*/
/* 19688*/                /*Scope*/ 117, /*->19806*/
/* 19689*/                  OPC_CheckPredicate, 12, // Predicate_immZExt16
/* 19691*/                  OPC_MoveParent,
/* 19692*/                  OPC_CheckChild2CondCode, ISD::SETNE,
/* 19694*/                  OPC_Scope, 53, /*->19749*/ // 2 children in Scope
/* 19696*/                    OPC_MoveParent,
/* 19697*/                    OPC_CheckType, MVT::i32,
/* 19699*/                    OPC_EmitConvertToTarget, 1,
/* 19701*/                    OPC_EmitNode1, TARGET_VAL(PPC::CMPLWI), 0,
                                  MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 19709*/                    OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 19712*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                  MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 19720*/                    OPC_EmitInteger, MVT::i32, 0, 
/* 19723*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                  MVT::i32, 1/*#Ops*/, 6,  // Results = #7
/* 19730*/                    OPC_EmitInteger, MVT::i32, 1, 
/* 19733*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                  MVT::i32, 1/*#Ops*/, 8,  // Results = #9
/* 19740*/                    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] }))
/* 19749*/                  /*Scope*/ 55, /*->19805*/
/* 19750*/                    OPC_CheckType, MVT::i1,
/* 19752*/                    OPC_MoveParent,
/* 19753*/                    OPC_CheckType, MVT::i64,
/* 19755*/                    OPC_EmitConvertToTarget, 1,
/* 19757*/                    OPC_EmitNode1, TARGET_VAL(PPC::CMPLWI), 0,
                                  MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 19765*/                    OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 19768*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                  MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 19776*/                    OPC_EmitInteger, MVT::i64, 0, 
/* 19779*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                  MVT::i64, 1/*#Ops*/, 6,  // Results = #7
/* 19786*/                    OPC_EmitInteger, MVT::i64, 1, 
/* 19789*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                  MVT::i64, 1/*#Ops*/, 8,  // Results = #9
/* 19796*/                    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] }))
/* 19805*/                  0, /*End of Scope*/
/* 19806*/                /*Scope*/ 19|128,1/*147*/, /*->19955*/
/* 19808*/                  OPC_MoveParent,
/* 19809*/                  OPC_CheckChild2CondCode, ISD::SETNE,
/* 19811*/                  OPC_Scope, 69, /*->19882*/ // 2 children in Scope
/* 19813*/                    OPC_MoveParent,
/* 19814*/                    OPC_CheckType, MVT::i32,
/* 19816*/                    OPC_EmitConvertToTarget, 1,
/* 19818*/                    OPC_EmitNodeXForm, 0, 2, // HI16
/* 19821*/                    OPC_EmitNode1, TARGET_VAL(PPC::XORIS), 0,
                                  MVT::i32, 2/*#Ops*/, 0, 3,  // Results = #4
/* 19829*/                    OPC_EmitConvertToTarget, 1,
/* 19831*/                    OPC_EmitNodeXForm, 1, 5, // LO16
/* 19834*/                    OPC_EmitNode1, TARGET_VAL(PPC::CMPLWI), 0,
                                  MVT::i32, 2/*#Ops*/, 4, 6,  // Results = #7
/* 19842*/                    OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 19845*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                  MVT::i1, 2/*#Ops*/, 7, 8,  // Results = #9
/* 19853*/                    OPC_EmitInteger, MVT::i32, 0, 
/* 19856*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                  MVT::i32, 1/*#Ops*/, 10,  // Results = #11
/* 19863*/                    OPC_EmitInteger, MVT::i32, 1, 
/* 19866*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                  MVT::i32, 1/*#Ops*/, 12,  // Results = #13
/* 19873*/                    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] }))
/* 19882*/                  /*Scope*/ 71, /*->19954*/
/* 19883*/                    OPC_CheckType, MVT::i1,
/* 19885*/                    OPC_MoveParent,
/* 19886*/                    OPC_CheckType, MVT::i64,
/* 19888*/                    OPC_EmitConvertToTarget, 1,
/* 19890*/                    OPC_EmitNodeXForm, 0, 2, // HI16
/* 19893*/                    OPC_EmitNode1, TARGET_VAL(PPC::XORIS), 0,
                                  MVT::i32, 2/*#Ops*/, 0, 3,  // Results = #4
/* 19901*/                    OPC_EmitConvertToTarget, 1,
/* 19903*/                    OPC_EmitNodeXForm, 1, 5, // LO16
/* 19906*/                    OPC_EmitNode1, TARGET_VAL(PPC::CMPLWI), 0,
                                  MVT::i32, 2/*#Ops*/, 4, 6,  // Results = #7
/* 19914*/                    OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 19917*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                  MVT::i1, 2/*#Ops*/, 7, 8,  // Results = #9
/* 19925*/                    OPC_EmitInteger, MVT::i64, 0, 
/* 19928*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                  MVT::i64, 1/*#Ops*/, 10,  // Results = #11
/* 19935*/                    OPC_EmitInteger, MVT::i64, 1, 
/* 19938*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                  MVT::i64, 1/*#Ops*/, 12,  // Results = #13
/* 19945*/                    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] }))
/* 19954*/                  0, /*End of Scope*/
/* 19955*/                0, /*End of Scope*/
/* 19956*/              /*Scope*/ 110, /*->20067*/
/* 19957*/                OPC_CheckChild2CondCode, ISD::SETUGE,
/* 19959*/                OPC_Scope, 51, /*->20012*/ // 2 children in Scope
/* 19961*/                  OPC_MoveParent,
/* 19962*/                  OPC_CheckType, MVT::i32,
/* 19964*/                  OPC_EmitNode1, TARGET_VAL(PPC::CMPLW), 0,
                                MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 19972*/                  OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 19975*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 19983*/                  OPC_EmitInteger, MVT::i32, 0, 
/* 19986*/                  OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 19993*/                  OPC_EmitInteger, MVT::i32, 1, 
/* 19996*/                  OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 20003*/                  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] }))
/* 20012*/                /*Scope*/ 53, /*->20066*/
/* 20013*/                  OPC_CheckType, MVT::i1,
/* 20015*/                  OPC_MoveParent,
/* 20016*/                  OPC_CheckType, MVT::i64,
/* 20018*/                  OPC_EmitNode1, TARGET_VAL(PPC::CMPLW), 0,
                                MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 20026*/                  OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 20029*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 20037*/                  OPC_EmitInteger, MVT::i64, 0, 
/* 20040*/                  OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 20047*/                  OPC_EmitInteger, MVT::i64, 1, 
/* 20050*/                  OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 20057*/                  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] }))
/* 20066*/                0, /*End of Scope*/
/* 20067*/              /*Scope*/ 110, /*->20178*/
/* 20068*/                OPC_CheckChild2CondCode, ISD::SETGE,
/* 20070*/                OPC_Scope, 51, /*->20123*/ // 2 children in Scope
/* 20072*/                  OPC_MoveParent,
/* 20073*/                  OPC_CheckType, MVT::i32,
/* 20075*/                  OPC_EmitNode1, TARGET_VAL(PPC::CMPW), 0,
                                MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 20083*/                  OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 20086*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 20094*/                  OPC_EmitInteger, MVT::i32, 0, 
/* 20097*/                  OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 20104*/                  OPC_EmitInteger, MVT::i32, 1, 
/* 20107*/                  OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 20114*/                  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] }))
/* 20123*/                /*Scope*/ 53, /*->20177*/
/* 20124*/                  OPC_CheckType, MVT::i1,
/* 20126*/                  OPC_MoveParent,
/* 20127*/                  OPC_CheckType, MVT::i64,
/* 20129*/                  OPC_EmitNode1, TARGET_VAL(PPC::CMPW), 0,
                                MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 20137*/                  OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 20140*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 20148*/                  OPC_EmitInteger, MVT::i64, 0, 
/* 20151*/                  OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 20158*/                  OPC_EmitInteger, MVT::i64, 1, 
/* 20161*/                  OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 20168*/                  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] }))
/* 20177*/                0, /*End of Scope*/
/* 20178*/              /*Scope*/ 110, /*->20289*/
/* 20179*/                OPC_CheckChild2CondCode, ISD::SETULE,
/* 20181*/                OPC_Scope, 51, /*->20234*/ // 2 children in Scope
/* 20183*/                  OPC_MoveParent,
/* 20184*/                  OPC_CheckType, MVT::i32,
/* 20186*/                  OPC_EmitNode1, TARGET_VAL(PPC::CMPLW), 0,
                                MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 20194*/                  OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 20197*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 20205*/                  OPC_EmitInteger, MVT::i32, 0, 
/* 20208*/                  OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 20215*/                  OPC_EmitInteger, MVT::i32, 1, 
/* 20218*/                  OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 20225*/                  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] }))
/* 20234*/                /*Scope*/ 53, /*->20288*/
/* 20235*/                  OPC_CheckType, MVT::i1,
/* 20237*/                  OPC_MoveParent,
/* 20238*/                  OPC_CheckType, MVT::i64,
/* 20240*/                  OPC_EmitNode1, TARGET_VAL(PPC::CMPLW), 0,
                                MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 20248*/                  OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 20251*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 20259*/                  OPC_EmitInteger, MVT::i64, 0, 
/* 20262*/                  OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 20269*/                  OPC_EmitInteger, MVT::i64, 1, 
/* 20272*/                  OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 20279*/                  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] }))
/* 20288*/                0, /*End of Scope*/
/* 20289*/              /*Scope*/ 110, /*->20400*/
/* 20290*/                OPC_CheckChild2CondCode, ISD::SETLE,
/* 20292*/                OPC_Scope, 51, /*->20345*/ // 2 children in Scope
/* 20294*/                  OPC_MoveParent,
/* 20295*/                  OPC_CheckType, MVT::i32,
/* 20297*/                  OPC_EmitNode1, TARGET_VAL(PPC::CMPW), 0,
                                MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 20305*/                  OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 20308*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 20316*/                  OPC_EmitInteger, MVT::i32, 0, 
/* 20319*/                  OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 20326*/                  OPC_EmitInteger, MVT::i32, 1, 
/* 20329*/                  OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 20336*/                  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] }))
/* 20345*/                /*Scope*/ 53, /*->20399*/
/* 20346*/                  OPC_CheckType, MVT::i1,
/* 20348*/                  OPC_MoveParent,
/* 20349*/                  OPC_CheckType, MVT::i64,
/* 20351*/                  OPC_EmitNode1, TARGET_VAL(PPC::CMPW), 0,
                                MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 20359*/                  OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 20362*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 20370*/                  OPC_EmitInteger, MVT::i64, 0, 
/* 20373*/                  OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 20380*/                  OPC_EmitInteger, MVT::i64, 1, 
/* 20383*/                  OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 20390*/                  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] }))
/* 20399*/                0, /*End of Scope*/
/* 20400*/              /*Scope*/ 110, /*->20511*/
/* 20401*/                OPC_CheckChild2CondCode, ISD::SETNE,
/* 20403*/                OPC_Scope, 51, /*->20456*/ // 2 children in Scope
/* 20405*/                  OPC_MoveParent,
/* 20406*/                  OPC_CheckType, MVT::i32,
/* 20408*/                  OPC_EmitNode1, TARGET_VAL(PPC::CMPW), 0,
                                MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 20416*/                  OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 20419*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 20427*/                  OPC_EmitInteger, MVT::i32, 0, 
/* 20430*/                  OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 20437*/                  OPC_EmitInteger, MVT::i32, 1, 
/* 20440*/                  OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 20447*/                  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] }))
/* 20456*/                /*Scope*/ 53, /*->20510*/
/* 20457*/                  OPC_CheckType, MVT::i1,
/* 20459*/                  OPC_MoveParent,
/* 20460*/                  OPC_CheckType, MVT::i64,
/* 20462*/                  OPC_EmitNode1, TARGET_VAL(PPC::CMPW), 0,
                                MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 20470*/                  OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 20473*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 20481*/                  OPC_EmitInteger, MVT::i64, 0, 
/* 20484*/                  OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 20491*/                  OPC_EmitInteger, MVT::i64, 1, 
/* 20494*/                  OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 20501*/                  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] }))
/* 20510*/                0, /*End of Scope*/
/* 20511*/              0, /*End of Scope*/
/* 20512*/            0, /*End of Scope*/
/* 20513*/          /*Scope*/ 53|128,17/*2229*/, /*->22744*/
/* 20515*/            OPC_CheckChild0Type, MVT::i64,
/* 20517*/            OPC_Scope, 84|128,3/*468*/, /*->20988*/ // 3 children in Scope
/* 20520*/              OPC_CheckChild1Integer, 0, 
/* 20522*/              OPC_Scope, 22, /*->20546*/ // 12 children in Scope
/* 20524*/                OPC_CheckChild2CondCode, ISD::SETLT,
/* 20526*/                OPC_CheckType, MVT::i1,
/* 20528*/                OPC_MoveParent,
/* 20529*/                OPC_CheckType, MVT::i64,
/* 20531*/                OPC_EmitInteger, MVT::i32, 1, 
/* 20534*/                OPC_EmitInteger, MVT::i32, 63, 
/* 20537*/                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] })
/* 20546*/              /*Scope*/ 29, /*->20576*/
/* 20547*/                OPC_CheckChild2CondCode, ISD::SETEQ,
/* 20549*/                OPC_CheckType, MVT::i1,
/* 20551*/                OPC_MoveParent,
/* 20552*/                OPC_CheckType, MVT::i64,
/* 20554*/                OPC_EmitNode1, TARGET_VAL(PPC::CNTLZD), 0,
                              MVT::i64, 1/*#Ops*/, 0,  // Results = #1
/* 20561*/                OPC_EmitInteger, MVT::i32, 58, 
/* 20564*/                OPC_EmitInteger, MVT::i32, 63, 
/* 20567*/                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] })
/* 20576*/              /*Scope*/ 31, /*->20608*/
/* 20577*/                OPC_CheckChild2CondCode, ISD::SETLT,
/* 20579*/                OPC_MoveParent,
/* 20580*/                OPC_CheckType, MVT::i32,
/* 20582*/                OPC_EmitInteger, MVT::i32, 1, 
/* 20585*/                OPC_EmitInteger, MVT::i32, 63, 
/* 20588*/                OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                              MVT::i64, 3/*#Ops*/, 0, 1, 2,  // Results = #3
/* 20597*/                OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 20600*/                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] })
/* 20608*/              /*Scope*/ 30, /*->20639*/
/* 20609*/                OPC_CheckChild2CondCode, ISD::SETGE,
/* 20611*/                OPC_CheckType, MVT::i1,
/* 20613*/                OPC_MoveParent,
/* 20614*/                OPC_CheckType, MVT::i64,
/* 20616*/                OPC_EmitNode1, TARGET_VAL(PPC::NOR8), 0,
                              MVT::i64, 2/*#Ops*/, 0, 0,  // Results = #1
/* 20624*/                OPC_EmitInteger, MVT::i32, 1, 
/* 20627*/                OPC_EmitInteger, MVT::i32, 63, 
/* 20630*/                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] })
/* 20639*/              /*Scope*/ 38, /*->20678*/
/* 20640*/                OPC_CheckChild2CondCode, ISD::SETEQ,
/* 20642*/                OPC_MoveParent,
/* 20643*/                OPC_CheckType, MVT::i32,
/* 20645*/                OPC_EmitNode1, TARGET_VAL(PPC::CNTLZD), 0,
                              MVT::i64, 1/*#Ops*/, 0,  // Results = #1
/* 20652*/                OPC_EmitInteger, MVT::i32, 58, 
/* 20655*/                OPC_EmitInteger, MVT::i32, 63, 
/* 20658*/                OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                              MVT::i64, 3/*#Ops*/, 1, 2, 3,  // Results = #4
/* 20667*/                OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 20670*/                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] })
/* 20678*/              /*Scope*/ 39, /*->20718*/
/* 20679*/                OPC_CheckChild2CondCode, ISD::SETGE,
/* 20681*/                OPC_MoveParent,
/* 20682*/                OPC_CheckType, MVT::i32,
/* 20684*/                OPC_EmitNode1, TARGET_VAL(PPC::NOR8), 0,
                              MVT::i64, 2/*#Ops*/, 0, 0,  // Results = #1
/* 20692*/                OPC_EmitInteger, MVT::i32, 1, 
/* 20695*/                OPC_EmitInteger, MVT::i32, 63, 
/* 20698*/                OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                              MVT::i64, 3/*#Ops*/, 1, 2, 3,  // Results = #4
/* 20707*/                OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 20710*/                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] })
/* 20718*/              /*Scope*/ 37, /*->20756*/
/* 20719*/                OPC_CheckChild2CondCode, ISD::SETGT,
/* 20721*/                OPC_CheckType, MVT::i1,
/* 20723*/                OPC_MoveParent,
/* 20724*/                OPC_CheckType, MVT::i64,
/* 20726*/                OPC_EmitNode1, TARGET_VAL(PPC::NEG8), 0,
                              MVT::i64, 1/*#Ops*/, 0,  // Results = #1
/* 20733*/                OPC_EmitNode1, TARGET_VAL(PPC::ANDC8), 0,
                              MVT::i64, 2/*#Ops*/, 1, 0,  // Results = #2
/* 20741*/                OPC_EmitInteger, MVT::i32, 1, 
/* 20744*/                OPC_EmitInteger, MVT::i32, 63, 
/* 20747*/                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] })
/* 20756*/              /*Scope*/ 37, /*->20794*/
/* 20757*/                OPC_CheckChild2CondCode, ISD::SETLE,
/* 20759*/                OPC_CheckType, MVT::i1,
/* 20761*/                OPC_MoveParent,
/* 20762*/                OPC_CheckType, MVT::i64,
/* 20764*/                OPC_EmitNode1, TARGET_VAL(PPC::NEG8), 0,
                              MVT::i64, 1/*#Ops*/, 0,  // Results = #1
/* 20771*/                OPC_EmitNode1, TARGET_VAL(PPC::ORC8), 0,
                              MVT::i64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 20779*/                OPC_EmitInteger, MVT::i32, 1, 
/* 20782*/                OPC_EmitInteger, MVT::i32, 63, 
/* 20785*/                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] })
/* 20794*/              /*Scope*/ 44, /*->20839*/
/* 20795*/                OPC_CheckChild2CondCode, ISD::SETNE,
/* 20797*/                OPC_CheckType, MVT::i1,
/* 20799*/                OPC_MoveParent,
/* 20800*/                OPC_CheckType, MVT::i64,
/* 20802*/                OPC_EmitNode1, TARGET_VAL(PPC::CNTLZD), 0,
                              MVT::i64, 1/*#Ops*/, 0,  // Results = #1
/* 20809*/                OPC_EmitNode1, TARGET_VAL(PPC::CNTLZD), 0,
                              MVT::i64, 1/*#Ops*/, 0,  // Results = #2
/* 20816*/                OPC_EmitNode1, TARGET_VAL(PPC::NOR8), 0,
                              MVT::i64, 2/*#Ops*/, 1, 2,  // Results = #3
/* 20824*/                OPC_EmitInteger, MVT::i32, 58, 
/* 20827*/                OPC_EmitInteger, MVT::i32, 63, 
/* 20830*/                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] })
/* 20839*/              /*Scope*/ 46, /*->20886*/
/* 20840*/                OPC_CheckChild2CondCode, ISD::SETGT,
/* 20842*/                OPC_MoveParent,
/* 20843*/                OPC_CheckType, MVT::i32,
/* 20845*/                OPC_EmitNode1, TARGET_VAL(PPC::NEG8), 0,
                              MVT::i64, 1/*#Ops*/, 0,  // Results = #1
/* 20852*/                OPC_EmitNode1, TARGET_VAL(PPC::ANDC8), 0,
                              MVT::i64, 2/*#Ops*/, 1, 0,  // Results = #2
/* 20860*/                OPC_EmitInteger, MVT::i32, 1, 
/* 20863*/                OPC_EmitInteger, MVT::i32, 63, 
/* 20866*/                OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                              MVT::i64, 3/*#Ops*/, 2, 3, 4,  // Results = #5
/* 20875*/                OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 20878*/                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] })
/* 20886*/              /*Scope*/ 46, /*->20933*/
/* 20887*/                OPC_CheckChild2CondCode, ISD::SETLE,
/* 20889*/                OPC_MoveParent,
/* 20890*/                OPC_CheckType, MVT::i32,
/* 20892*/                OPC_EmitNode1, TARGET_VAL(PPC::NEG8), 0,
                              MVT::i64, 1/*#Ops*/, 0,  // Results = #1
/* 20899*/                OPC_EmitNode1, TARGET_VAL(PPC::ORC8), 0,
                              MVT::i64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 20907*/                OPC_EmitInteger, MVT::i32, 1, 
/* 20910*/                OPC_EmitInteger, MVT::i32, 63, 
/* 20913*/                OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                              MVT::i64, 3/*#Ops*/, 2, 3, 4,  // Results = #5
/* 20922*/                OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 20925*/                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] })
/* 20933*/              /*Scope*/ 53, /*->20987*/
/* 20934*/                OPC_CheckChild2CondCode, ISD::SETNE,
/* 20936*/                OPC_MoveParent,
/* 20937*/                OPC_CheckType, MVT::i32,
/* 20939*/                OPC_EmitNode1, TARGET_VAL(PPC::CNTLZD), 0,
                              MVT::i64, 1/*#Ops*/, 0,  // Results = #1
/* 20946*/                OPC_EmitNode1, TARGET_VAL(PPC::CNTLZD), 0,
                              MVT::i64, 1/*#Ops*/, 0,  // Results = #2
/* 20953*/                OPC_EmitNode1, TARGET_VAL(PPC::NOR8), 0,
                              MVT::i64, 2/*#Ops*/, 1, 2,  // Results = #3
/* 20961*/                OPC_EmitInteger, MVT::i32, 58, 
/* 20964*/                OPC_EmitInteger, MVT::i32, 63, 
/* 20967*/                OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                              MVT::i64, 3/*#Ops*/, 3, 4, 5,  // Results = #6
/* 20976*/                OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 20979*/                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] })
/* 20987*/              0, /*End of Scope*/
/* 20988*/            /*Scope*/ 69|128,2/*325*/, /*->21315*/
/* 20990*/              OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 21001*/              OPC_Scope, 22, /*->21025*/ // 8 children in Scope
/* 21003*/                OPC_CheckChild2CondCode, ISD::SETLE,
/* 21005*/                OPC_CheckType, MVT::i1,
/* 21007*/                OPC_MoveParent,
/* 21008*/                OPC_CheckType, MVT::i64,
/* 21010*/                OPC_EmitInteger, MVT::i32, 1, 
/* 21013*/                OPC_EmitInteger, MVT::i32, 63, 
/* 21016*/                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] })
/* 21025*/              /*Scope*/ 30, /*->21056*/
/* 21026*/                OPC_CheckChild2CondCode, ISD::SETGT,
/* 21028*/                OPC_CheckType, MVT::i1,
/* 21030*/                OPC_MoveParent,
/* 21031*/                OPC_CheckType, MVT::i64,
/* 21033*/                OPC_EmitNode1, TARGET_VAL(PPC::NOR8), 0,
                              MVT::i64, 2/*#Ops*/, 0, 0,  // Results = #1
/* 21041*/                OPC_EmitInteger, MVT::i32, 1, 
/* 21044*/                OPC_EmitInteger, MVT::i32, 63, 
/* 21047*/                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] })
/* 21056*/              /*Scope*/ 31, /*->21088*/
/* 21057*/                OPC_CheckChild2CondCode, ISD::SETLE,
/* 21059*/                OPC_MoveParent,
/* 21060*/                OPC_CheckType, MVT::i32,
/* 21062*/                OPC_EmitInteger, MVT::i32, 1, 
/* 21065*/                OPC_EmitInteger, MVT::i32, 63, 
/* 21068*/                OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                              MVT::i64, 3/*#Ops*/, 0, 1, 2,  // Results = #3
/* 21077*/                OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 21080*/                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] })
/* 21088*/              /*Scope*/ 41, /*->21130*/
/* 21089*/                OPC_CheckChild2CondCode, ISD::SETLT,
/* 21091*/                OPC_CheckType, MVT::i1,
/* 21093*/                OPC_MoveParent,
/* 21094*/                OPC_CheckType, MVT::i64,
/* 21096*/                OPC_EmitInteger, MVT::i64, 1, 
/* 21099*/                OPC_EmitNode1, TARGET_VAL(PPC::ADDI8), 0,
                              MVT::i64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 21107*/                OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                              MVT::i64, 2/*#Ops*/, 0, 2,  // Results = #3
/* 21115*/                OPC_EmitInteger, MVT::i32, 1, 
/* 21118*/                OPC_EmitInteger, MVT::i32, 63, 
/* 21121*/                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] })
/* 21130*/              /*Scope*/ 41, /*->21172*/
/* 21131*/                OPC_CheckChild2CondCode, ISD::SETGE,
/* 21133*/                OPC_CheckType, MVT::i1,
/* 21135*/                OPC_MoveParent,
/* 21136*/                OPC_CheckType, MVT::i64,
/* 21138*/                OPC_EmitInteger, MVT::i64, 1, 
/* 21141*/                OPC_EmitNode1, TARGET_VAL(PPC::ADDI8), 0,
                              MVT::i64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 21149*/                OPC_EmitNode1, TARGET_VAL(PPC::NAND8), 0,
                              MVT::i64, 2/*#Ops*/, 0, 2,  // Results = #3
/* 21157*/                OPC_EmitInteger, MVT::i32, 1, 
/* 21160*/                OPC_EmitInteger, MVT::i32, 63, 
/* 21163*/                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] })
/* 21172*/              /*Scope*/ 39, /*->21212*/
/* 21173*/                OPC_CheckChild2CondCode, ISD::SETGT,
/* 21175*/                OPC_MoveParent,
/* 21176*/                OPC_CheckType, MVT::i32,
/* 21178*/                OPC_EmitNode1, TARGET_VAL(PPC::NOR8), 0,
                              MVT::i64, 2/*#Ops*/, 0, 0,  // Results = #1
/* 21186*/                OPC_EmitInteger, MVT::i32, 1, 
/* 21189*/                OPC_EmitInteger, MVT::i32, 63, 
/* 21192*/                OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                              MVT::i64, 3/*#Ops*/, 1, 2, 3,  // Results = #4
/* 21201*/                OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 21204*/                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] })
/* 21212*/              /*Scope*/ 50, /*->21263*/
/* 21213*/                OPC_CheckChild2CondCode, ISD::SETLT,
/* 21215*/                OPC_MoveParent,
/* 21216*/                OPC_CheckType, MVT::i32,
/* 21218*/                OPC_EmitInteger, MVT::i64, 1, 
/* 21221*/                OPC_EmitNode1, TARGET_VAL(PPC::ADDI8), 0,
                              MVT::i64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 21229*/                OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                              MVT::i64, 2/*#Ops*/, 0, 2,  // Results = #3
/* 21237*/                OPC_EmitInteger, MVT::i32, 1, 
/* 21240*/                OPC_EmitInteger, MVT::i32, 63, 
/* 21243*/                OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                              MVT::i64, 3/*#Ops*/, 3, 4, 5,  // Results = #6
/* 21252*/                OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 21255*/                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] })
/* 21263*/              /*Scope*/ 50, /*->21314*/
/* 21264*/                OPC_CheckChild2CondCode, ISD::SETGE,
/* 21266*/                OPC_MoveParent,
/* 21267*/                OPC_CheckType, MVT::i32,
/* 21269*/                OPC_EmitInteger, MVT::i64, 1, 
/* 21272*/                OPC_EmitNode1, TARGET_VAL(PPC::ADDI8), 0,
                              MVT::i64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 21280*/                OPC_EmitNode1, TARGET_VAL(PPC::NAND8), 0,
                              MVT::i64, 2/*#Ops*/, 0, 2,  // Results = #3
/* 21288*/                OPC_EmitInteger, MVT::i32, 1, 
/* 21291*/                OPC_EmitInteger, MVT::i32, 63, 
/* 21294*/                OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                              MVT::i64, 3/*#Ops*/, 3, 4, 5,  // Results = #6
/* 21303*/                OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 21306*/                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] })
/* 21314*/              0, /*End of Scope*/
/* 21315*/            /*Scope*/ 18|128,11/*1426*/, /*->22743*/
/* 21317*/              OPC_RecordChild1, // #1 = $imm
/* 21318*/              OPC_Scope, 98|128,6/*866*/, /*->22187*/ // 6 children in Scope
/* 21321*/                OPC_MoveChild1,
/* 21322*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 21325*/                OPC_Scope, 117, /*->21444*/ // 6 children in Scope
/* 21327*/                  OPC_CheckPredicate, 12, // Predicate_immZExt16
/* 21329*/                  OPC_MoveParent,
/* 21330*/                  OPC_CheckChild2CondCode, ISD::SETUGE,
/* 21332*/                  OPC_Scope, 53, /*->21387*/ // 2 children in Scope
/* 21334*/                    OPC_MoveParent,
/* 21335*/                    OPC_CheckType, MVT::i32,
/* 21337*/                    OPC_EmitConvertToTarget, 1,
/* 21339*/                    OPC_EmitNode1, TARGET_VAL(PPC::CMPLDI), 0,
                                  MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 21347*/                    OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 21350*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                  MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 21358*/                    OPC_EmitInteger, MVT::i32, 0, 
/* 21361*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                  MVT::i32, 1/*#Ops*/, 6,  // Results = #7
/* 21368*/                    OPC_EmitInteger, MVT::i32, 1, 
/* 21371*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                  MVT::i32, 1/*#Ops*/, 8,  // Results = #9
/* 21378*/                    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] }))
/* 21387*/                  /*Scope*/ 55, /*->21443*/
/* 21388*/                    OPC_CheckType, MVT::i1,
/* 21390*/                    OPC_MoveParent,
/* 21391*/                    OPC_CheckType, MVT::i64,
/* 21393*/                    OPC_EmitConvertToTarget, 1,
/* 21395*/                    OPC_EmitNode1, TARGET_VAL(PPC::CMPLDI), 0,
                                  MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 21403*/                    OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 21406*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                  MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 21414*/                    OPC_EmitInteger, MVT::i64, 0, 
/* 21417*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                  MVT::i64, 1/*#Ops*/, 6,  // Results = #7
/* 21424*/                    OPC_EmitInteger, MVT::i64, 1, 
/* 21427*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                  MVT::i64, 1/*#Ops*/, 8,  // Results = #9
/* 21434*/                    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] }))
/* 21443*/                  0, /*End of Scope*/
/* 21444*/                /*Scope*/ 117, /*->21562*/
/* 21445*/                  OPC_CheckPredicate, 14, // Predicate_imm64SExt16
/* 21447*/                  OPC_MoveParent,
/* 21448*/                  OPC_CheckChild2CondCode, ISD::SETGE,
/* 21450*/                  OPC_Scope, 53, /*->21505*/ // 2 children in Scope
/* 21452*/                    OPC_MoveParent,
/* 21453*/                    OPC_CheckType, MVT::i32,
/* 21455*/                    OPC_EmitConvertToTarget, 1,
/* 21457*/                    OPC_EmitNode1, TARGET_VAL(PPC::CMPDI), 0,
                                  MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 21465*/                    OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 21468*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                  MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 21476*/                    OPC_EmitInteger, MVT::i32, 0, 
/* 21479*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                  MVT::i32, 1/*#Ops*/, 6,  // Results = #7
/* 21486*/                    OPC_EmitInteger, MVT::i32, 1, 
/* 21489*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                  MVT::i32, 1/*#Ops*/, 8,  // Results = #9
/* 21496*/                    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] }))
/* 21505*/                  /*Scope*/ 55, /*->21561*/
/* 21506*/                    OPC_CheckType, MVT::i1,
/* 21508*/                    OPC_MoveParent,
/* 21509*/                    OPC_CheckType, MVT::i64,
/* 21511*/                    OPC_EmitConvertToTarget, 1,
/* 21513*/                    OPC_EmitNode1, TARGET_VAL(PPC::CMPDI), 0,
                                  MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 21521*/                    OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 21524*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                  MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 21532*/                    OPC_EmitInteger, MVT::i64, 0, 
/* 21535*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                  MVT::i64, 1/*#Ops*/, 6,  // Results = #7
/* 21542*/                    OPC_EmitInteger, MVT::i64, 1, 
/* 21545*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                  MVT::i64, 1/*#Ops*/, 8,  // Results = #9
/* 21552*/                    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] }))
/* 21561*/                  0, /*End of Scope*/
/* 21562*/                /*Scope*/ 117, /*->21680*/
/* 21563*/                  OPC_CheckPredicate, 12, // Predicate_immZExt16
/* 21565*/                  OPC_MoveParent,
/* 21566*/                  OPC_CheckChild2CondCode, ISD::SETULE,
/* 21568*/                  OPC_Scope, 53, /*->21623*/ // 2 children in Scope
/* 21570*/                    OPC_MoveParent,
/* 21571*/                    OPC_CheckType, MVT::i32,
/* 21573*/                    OPC_EmitConvertToTarget, 1,
/* 21575*/                    OPC_EmitNode1, TARGET_VAL(PPC::CMPLDI), 0,
                                  MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 21583*/                    OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 21586*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                  MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 21594*/                    OPC_EmitInteger, MVT::i32, 0, 
/* 21597*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                  MVT::i32, 1/*#Ops*/, 6,  // Results = #7
/* 21604*/                    OPC_EmitInteger, MVT::i32, 1, 
/* 21607*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                  MVT::i32, 1/*#Ops*/, 8,  // Results = #9
/* 21614*/                    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] }))
/* 21623*/                  /*Scope*/ 55, /*->21679*/
/* 21624*/                    OPC_CheckType, MVT::i1,
/* 21626*/                    OPC_MoveParent,
/* 21627*/                    OPC_CheckType, MVT::i64,
/* 21629*/                    OPC_EmitConvertToTarget, 1,
/* 21631*/                    OPC_EmitNode1, TARGET_VAL(PPC::CMPLDI), 0,
                                  MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 21639*/                    OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 21642*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                  MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 21650*/                    OPC_EmitInteger, MVT::i64, 0, 
/* 21653*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                  MVT::i64, 1/*#Ops*/, 6,  // Results = #7
/* 21660*/                    OPC_EmitInteger, MVT::i64, 1, 
/* 21663*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                  MVT::i64, 1/*#Ops*/, 8,  // Results = #9
/* 21670*/                    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] }))
/* 21679*/                  0, /*End of Scope*/
/* 21680*/                /*Scope*/ 107|128,1/*235*/, /*->21917*/
/* 21682*/                  OPC_CheckPredicate, 14, // Predicate_imm64SExt16
/* 21684*/                  OPC_MoveParent,
/* 21685*/                  OPC_Scope, 114, /*->21801*/ // 2 children in Scope
/* 21687*/                    OPC_CheckChild2CondCode, ISD::SETLE,
/* 21689*/                    OPC_Scope, 53, /*->21744*/ // 2 children in Scope
/* 21691*/                      OPC_MoveParent,
/* 21692*/                      OPC_CheckType, MVT::i32,
/* 21694*/                      OPC_EmitConvertToTarget, 1,
/* 21696*/                      OPC_EmitNode1, TARGET_VAL(PPC::CMPDI), 0,
                                    MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 21704*/                      OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 21707*/                      OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                    MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 21715*/                      OPC_EmitInteger, MVT::i32, 0, 
/* 21718*/                      OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                    MVT::i32, 1/*#Ops*/, 6,  // Results = #7
/* 21725*/                      OPC_EmitInteger, MVT::i32, 1, 
/* 21728*/                      OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                    MVT::i32, 1/*#Ops*/, 8,  // Results = #9
/* 21735*/                      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] }))
/* 21744*/                    /*Scope*/ 55, /*->21800*/
/* 21745*/                      OPC_CheckType, MVT::i1,
/* 21747*/                      OPC_MoveParent,
/* 21748*/                      OPC_CheckType, MVT::i64,
/* 21750*/                      OPC_EmitConvertToTarget, 1,
/* 21752*/                      OPC_EmitNode1, TARGET_VAL(PPC::CMPDI), 0,
                                    MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 21760*/                      OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 21763*/                      OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                    MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 21771*/                      OPC_EmitInteger, MVT::i64, 0, 
/* 21774*/                      OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                    MVT::i64, 1/*#Ops*/, 6,  // Results = #7
/* 21781*/                      OPC_EmitInteger, MVT::i64, 1, 
/* 21784*/                      OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                    MVT::i64, 1/*#Ops*/, 8,  // Results = #9
/* 21791*/                      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] }))
/* 21800*/                    0, /*End of Scope*/
/* 21801*/                  /*Scope*/ 114, /*->21916*/
/* 21802*/                    OPC_CheckChild2CondCode, ISD::SETNE,
/* 21804*/                    OPC_Scope, 53, /*->21859*/ // 2 children in Scope
/* 21806*/                      OPC_MoveParent,
/* 21807*/                      OPC_CheckType, MVT::i32,
/* 21809*/                      OPC_EmitConvertToTarget, 1,
/* 21811*/                      OPC_EmitNode1, TARGET_VAL(PPC::CMPDI), 0,
                                    MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 21819*/                      OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 21822*/                      OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                    MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 21830*/                      OPC_EmitInteger, MVT::i32, 0, 
/* 21833*/                      OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                    MVT::i32, 1/*#Ops*/, 6,  // Results = #7
/* 21840*/                      OPC_EmitInteger, MVT::i32, 1, 
/* 21843*/                      OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                    MVT::i32, 1/*#Ops*/, 8,  // Results = #9
/* 21850*/                      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] }))
/* 21859*/                    /*Scope*/ 55, /*->21915*/
/* 21860*/                      OPC_CheckType, MVT::i1,
/* 21862*/                      OPC_MoveParent,
/* 21863*/                      OPC_CheckType, MVT::i64,
/* 21865*/                      OPC_EmitConvertToTarget, 1,
/* 21867*/                      OPC_EmitNode1, TARGET_VAL(PPC::CMPDI), 0,
                                    MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 21875*/                      OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 21878*/                      OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                    MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 21886*/                      OPC_EmitInteger, MVT::i64, 0, 
/* 21889*/                      OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                    MVT::i64, 1/*#Ops*/, 6,  // Results = #7
/* 21896*/                      OPC_EmitInteger, MVT::i64, 1, 
/* 21899*/                      OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                    MVT::i64, 1/*#Ops*/, 8,  // Results = #9
/* 21906*/                      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] }))
/* 21915*/                    0, /*End of Scope*/
/* 21916*/                  0, /*End of Scope*/
/* 21917*/                /*Scope*/ 117, /*->22035*/
/* 21918*/                  OPC_CheckPredicate, 12, // Predicate_immZExt16
/* 21920*/                  OPC_MoveParent,
/* 21921*/                  OPC_CheckChild2CondCode, ISD::SETNE,
/* 21923*/                  OPC_Scope, 53, /*->21978*/ // 2 children in Scope
/* 21925*/                    OPC_MoveParent,
/* 21926*/                    OPC_CheckType, MVT::i32,
/* 21928*/                    OPC_EmitConvertToTarget, 1,
/* 21930*/                    OPC_EmitNode1, TARGET_VAL(PPC::CMPLDI), 0,
                                  MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 21938*/                    OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 21941*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                  MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 21949*/                    OPC_EmitInteger, MVT::i32, 0, 
/* 21952*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                  MVT::i32, 1/*#Ops*/, 6,  // Results = #7
/* 21959*/                    OPC_EmitInteger, MVT::i32, 1, 
/* 21962*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                  MVT::i32, 1/*#Ops*/, 8,  // Results = #9
/* 21969*/                    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] }))
/* 21978*/                  /*Scope*/ 55, /*->22034*/
/* 21979*/                    OPC_CheckType, MVT::i1,
/* 21981*/                    OPC_MoveParent,
/* 21982*/                    OPC_CheckType, MVT::i64,
/* 21984*/                    OPC_EmitConvertToTarget, 1,
/* 21986*/                    OPC_EmitNode1, TARGET_VAL(PPC::CMPLDI), 0,
                                  MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 21994*/                    OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 21997*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                  MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 22005*/                    OPC_EmitInteger, MVT::i64, 0, 
/* 22008*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                  MVT::i64, 1/*#Ops*/, 6,  // Results = #7
/* 22015*/                    OPC_EmitInteger, MVT::i64, 1, 
/* 22018*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                  MVT::i64, 1/*#Ops*/, 8,  // Results = #9
/* 22025*/                    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] }))
/* 22034*/                  0, /*End of Scope*/
/* 22035*/                /*Scope*/ 21|128,1/*149*/, /*->22186*/
/* 22037*/                  OPC_CheckPredicate, 15, // Predicate_imm64ZExt32
/* 22039*/                  OPC_MoveParent,
/* 22040*/                  OPC_CheckChild2CondCode, ISD::SETNE,
/* 22042*/                  OPC_Scope, 69, /*->22113*/ // 2 children in Scope
/* 22044*/                    OPC_MoveParent,
/* 22045*/                    OPC_CheckType, MVT::i32,
/* 22047*/                    OPC_EmitConvertToTarget, 1,
/* 22049*/                    OPC_EmitNodeXForm, 0, 2, // HI16
/* 22052*/                    OPC_EmitNode1, TARGET_VAL(PPC::XORIS8), 0,
                                  MVT::i64, 2/*#Ops*/, 0, 3,  // Results = #4
/* 22060*/                    OPC_EmitConvertToTarget, 1,
/* 22062*/                    OPC_EmitNodeXForm, 1, 5, // LO16
/* 22065*/                    OPC_EmitNode1, TARGET_VAL(PPC::CMPLDI), 0,
                                  MVT::i32, 2/*#Ops*/, 4, 6,  // Results = #7
/* 22073*/                    OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 22076*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                  MVT::i1, 2/*#Ops*/, 7, 8,  // Results = #9
/* 22084*/                    OPC_EmitInteger, MVT::i32, 0, 
/* 22087*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                  MVT::i32, 1/*#Ops*/, 10,  // Results = #11
/* 22094*/                    OPC_EmitInteger, MVT::i32, 1, 
/* 22097*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                  MVT::i32, 1/*#Ops*/, 12,  // Results = #13
/* 22104*/                    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] }))
/* 22113*/                  /*Scope*/ 71, /*->22185*/
/* 22114*/                    OPC_CheckType, MVT::i1,
/* 22116*/                    OPC_MoveParent,
/* 22117*/                    OPC_CheckType, MVT::i64,
/* 22119*/                    OPC_EmitConvertToTarget, 1,
/* 22121*/                    OPC_EmitNodeXForm, 0, 2, // HI16
/* 22124*/                    OPC_EmitNode1, TARGET_VAL(PPC::XORIS8), 0,
                                  MVT::i64, 2/*#Ops*/, 0, 3,  // Results = #4
/* 22132*/                    OPC_EmitConvertToTarget, 1,
/* 22134*/                    OPC_EmitNodeXForm, 1, 5, // LO16
/* 22137*/                    OPC_EmitNode1, TARGET_VAL(PPC::CMPLDI), 0,
                                  MVT::i32, 2/*#Ops*/, 4, 6,  // Results = #7
/* 22145*/                    OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 22148*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                  MVT::i1, 2/*#Ops*/, 7, 8,  // Results = #9
/* 22156*/                    OPC_EmitInteger, MVT::i64, 0, 
/* 22159*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                  MVT::i64, 1/*#Ops*/, 10,  // Results = #11
/* 22166*/                    OPC_EmitInteger, MVT::i64, 1, 
/* 22169*/                    OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                  MVT::i64, 1/*#Ops*/, 12,  // Results = #13
/* 22176*/                    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] }))
/* 22185*/                  0, /*End of Scope*/
/* 22186*/                0, /*End of Scope*/
/* 22187*/              /*Scope*/ 110, /*->22298*/
/* 22188*/                OPC_CheckChild2CondCode, ISD::SETUGE,
/* 22190*/                OPC_Scope, 51, /*->22243*/ // 2 children in Scope
/* 22192*/                  OPC_MoveParent,
/* 22193*/                  OPC_CheckType, MVT::i32,
/* 22195*/                  OPC_EmitNode1, TARGET_VAL(PPC::CMPLD), 0,
                                MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 22203*/                  OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 22206*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 22214*/                  OPC_EmitInteger, MVT::i32, 0, 
/* 22217*/                  OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 22224*/                  OPC_EmitInteger, MVT::i32, 1, 
/* 22227*/                  OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 22234*/                  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] }))
/* 22243*/                /*Scope*/ 53, /*->22297*/
/* 22244*/                  OPC_CheckType, MVT::i1,
/* 22246*/                  OPC_MoveParent,
/* 22247*/                  OPC_CheckType, MVT::i64,
/* 22249*/                  OPC_EmitNode1, TARGET_VAL(PPC::CMPLD), 0,
                                MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 22257*/                  OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 22260*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 22268*/                  OPC_EmitInteger, MVT::i64, 0, 
/* 22271*/                  OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 22278*/                  OPC_EmitInteger, MVT::i64, 1, 
/* 22281*/                  OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 22288*/                  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] }))
/* 22297*/                0, /*End of Scope*/
/* 22298*/              /*Scope*/ 110, /*->22409*/
/* 22299*/                OPC_CheckChild2CondCode, ISD::SETGE,
/* 22301*/                OPC_Scope, 51, /*->22354*/ // 2 children in Scope
/* 22303*/                  OPC_MoveParent,
/* 22304*/                  OPC_CheckType, MVT::i32,
/* 22306*/                  OPC_EmitNode1, TARGET_VAL(PPC::CMPD), 0,
                                MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 22314*/                  OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 22317*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 22325*/                  OPC_EmitInteger, MVT::i32, 0, 
/* 22328*/                  OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 22335*/                  OPC_EmitInteger, MVT::i32, 1, 
/* 22338*/                  OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 22345*/                  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] }))
/* 22354*/                /*Scope*/ 53, /*->22408*/
/* 22355*/                  OPC_CheckType, MVT::i1,
/* 22357*/                  OPC_MoveParent,
/* 22358*/                  OPC_CheckType, MVT::i64,
/* 22360*/                  OPC_EmitNode1, TARGET_VAL(PPC::CMPD), 0,
                                MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 22368*/                  OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 22371*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 22379*/                  OPC_EmitInteger, MVT::i64, 0, 
/* 22382*/                  OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 22389*/                  OPC_EmitInteger, MVT::i64, 1, 
/* 22392*/                  OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 22399*/                  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] }))
/* 22408*/                0, /*End of Scope*/
/* 22409*/              /*Scope*/ 110, /*->22520*/
/* 22410*/                OPC_CheckChild2CondCode, ISD::SETULE,
/* 22412*/                OPC_Scope, 51, /*->22465*/ // 2 children in Scope
/* 22414*/                  OPC_MoveParent,
/* 22415*/                  OPC_CheckType, MVT::i32,
/* 22417*/                  OPC_EmitNode1, TARGET_VAL(PPC::CMPLD), 0,
                                MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 22425*/                  OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 22428*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 22436*/                  OPC_EmitInteger, MVT::i32, 0, 
/* 22439*/                  OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 22446*/                  OPC_EmitInteger, MVT::i32, 1, 
/* 22449*/                  OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 22456*/                  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] }))
/* 22465*/                /*Scope*/ 53, /*->22519*/
/* 22466*/                  OPC_CheckType, MVT::i1,
/* 22468*/                  OPC_MoveParent,
/* 22469*/                  OPC_CheckType, MVT::i64,
/* 22471*/                  OPC_EmitNode1, TARGET_VAL(PPC::CMPLD), 0,
                                MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 22479*/                  OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 22482*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 22490*/                  OPC_EmitInteger, MVT::i64, 0, 
/* 22493*/                  OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 22500*/                  OPC_EmitInteger, MVT::i64, 1, 
/* 22503*/                  OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 22510*/                  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] }))
/* 22519*/                0, /*End of Scope*/
/* 22520*/              /*Scope*/ 110, /*->22631*/
/* 22521*/                OPC_CheckChild2CondCode, ISD::SETLE,
/* 22523*/                OPC_Scope, 51, /*->22576*/ // 2 children in Scope
/* 22525*/                  OPC_MoveParent,
/* 22526*/                  OPC_CheckType, MVT::i32,
/* 22528*/                  OPC_EmitNode1, TARGET_VAL(PPC::CMPD), 0,
                                MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 22536*/                  OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 22539*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 22547*/                  OPC_EmitInteger, MVT::i32, 0, 
/* 22550*/                  OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 22557*/                  OPC_EmitInteger, MVT::i32, 1, 
/* 22560*/                  OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 22567*/                  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] }))
/* 22576*/                /*Scope*/ 53, /*->22630*/
/* 22577*/                  OPC_CheckType, MVT::i1,
/* 22579*/                  OPC_MoveParent,
/* 22580*/                  OPC_CheckType, MVT::i64,
/* 22582*/                  OPC_EmitNode1, TARGET_VAL(PPC::CMPD), 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] } 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] }))
/* 22630*/                0, /*End of Scope*/
/* 22631*/              /*Scope*/ 110, /*->22742*/
/* 22632*/                OPC_CheckChild2CondCode, ISD::SETNE,
/* 22634*/                OPC_Scope, 51, /*->22687*/ // 2 children in Scope
/* 22636*/                  OPC_MoveParent,
/* 22637*/                  OPC_CheckType, MVT::i32,
/* 22639*/                  OPC_EmitNode1, TARGET_VAL(PPC::CMPD), 0,
                                MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 22647*/                  OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 22650*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 22658*/                  OPC_EmitInteger, MVT::i32, 0, 
/* 22661*/                  OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 22668*/                  OPC_EmitInteger, MVT::i32, 1, 
/* 22671*/                  OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 22678*/                  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] }))
/* 22687*/                /*Scope*/ 53, /*->22741*/
/* 22688*/                  OPC_CheckType, MVT::i1,
/* 22690*/                  OPC_MoveParent,
/* 22691*/                  OPC_CheckType, MVT::i64,
/* 22693*/                  OPC_EmitNode1, TARGET_VAL(PPC::CMPD), 0,
                                MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 22701*/                  OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 22704*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 22712*/                  OPC_EmitInteger, MVT::i64, 0, 
/* 22715*/                  OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 22722*/                  OPC_EmitInteger, MVT::i64, 1, 
/* 22725*/                  OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 22732*/                  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] }))
/* 22741*/                0, /*End of Scope*/
/* 22742*/              0, /*End of Scope*/
/* 22743*/            0, /*End of Scope*/
/* 22744*/          /*Scope*/ 92|128,11/*1500*/, /*->24246*/
/* 22746*/            OPC_CheckChild0Type, MVT::f32,
/* 22748*/            OPC_RecordChild1, // #1 = $s2
/* 22749*/            OPC_Scope, 114, /*->22865*/ // 13 children in Scope
/* 22751*/              OPC_CheckChild2CondCode, ISD::SETUGE,
/* 22753*/              OPC_Scope, 53, /*->22808*/ // 2 children in Scope
/* 22755*/                OPC_MoveParent,
/* 22756*/                OPC_CheckType, MVT::i32,
/* 22758*/                OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 22760*/                OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 22768*/                OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 22771*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 22779*/                OPC_EmitInteger, MVT::i32, 0, 
/* 22782*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 22789*/                OPC_EmitInteger, MVT::i32, 1, 
/* 22792*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 22799*/                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] }))
/* 22808*/              /*Scope*/ 55, /*->22864*/
/* 22809*/                OPC_CheckType, MVT::i1,
/* 22811*/                OPC_MoveParent,
/* 22812*/                OPC_CheckType, MVT::i64,
/* 22814*/                OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 22816*/                OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 22824*/                OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 22827*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 22835*/                OPC_EmitInteger, MVT::i64, 0, 
/* 22838*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 22845*/                OPC_EmitInteger, MVT::i64, 1, 
/* 22848*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 22855*/                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] }))
/* 22864*/              0, /*End of Scope*/
/* 22865*/            /*Scope*/ 114, /*->22980*/
/* 22866*/              OPC_CheckChild2CondCode, ISD::SETGE,
/* 22868*/              OPC_Scope, 53, /*->22923*/ // 2 children in Scope
/* 22870*/                OPC_MoveParent,
/* 22871*/                OPC_CheckType, MVT::i32,
/* 22873*/                OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 22875*/                OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 22883*/                OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 22886*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 22894*/                OPC_EmitInteger, MVT::i32, 0, 
/* 22897*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 22904*/                OPC_EmitInteger, MVT::i32, 1, 
/* 22907*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 22914*/                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] }))
/* 22923*/              /*Scope*/ 55, /*->22979*/
/* 22924*/                OPC_CheckType, MVT::i1,
/* 22926*/                OPC_MoveParent,
/* 22927*/                OPC_CheckType, MVT::i64,
/* 22929*/                OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 22931*/                OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 22939*/                OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 22942*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 22950*/                OPC_EmitInteger, MVT::i64, 0, 
/* 22953*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 22960*/                OPC_EmitInteger, MVT::i64, 1, 
/* 22963*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 22970*/                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] }))
/* 22979*/              0, /*End of Scope*/
/* 22980*/            /*Scope*/ 114, /*->23095*/
/* 22981*/              OPC_CheckChild2CondCode, ISD::SETULE,
/* 22983*/              OPC_Scope, 53, /*->23038*/ // 2 children in Scope
/* 22985*/                OPC_MoveParent,
/* 22986*/                OPC_CheckType, MVT::i32,
/* 22988*/                OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 22990*/                OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 22998*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 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] } 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] }))
/* 23038*/              /*Scope*/ 55, /*->23094*/
/* 23039*/                OPC_CheckType, MVT::i1,
/* 23041*/                OPC_MoveParent,
/* 23042*/                OPC_CheckType, MVT::i64,
/* 23044*/                OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 23046*/                OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 23054*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 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] } 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] }))
/* 23094*/              0, /*End of Scope*/
/* 23095*/            /*Scope*/ 114, /*->23210*/
/* 23096*/              OPC_CheckChild2CondCode, ISD::SETLE,
/* 23098*/              OPC_Scope, 53, /*->23153*/ // 2 children in Scope
/* 23100*/                OPC_MoveParent,
/* 23101*/                OPC_CheckType, MVT::i32,
/* 23103*/                OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 23105*/                OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 23113*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 23116*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 23124*/                OPC_EmitInteger, MVT::i32, 0, 
/* 23127*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 23134*/                OPC_EmitInteger, MVT::i32, 1, 
/* 23137*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 23144*/                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] }))
/* 23153*/              /*Scope*/ 55, /*->23209*/
/* 23154*/                OPC_CheckType, MVT::i1,
/* 23156*/                OPC_MoveParent,
/* 23157*/                OPC_CheckType, MVT::i64,
/* 23159*/                OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 23161*/                OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 23169*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 23172*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 23180*/                OPC_EmitInteger, MVT::i64, 0, 
/* 23183*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 23190*/                OPC_EmitInteger, MVT::i64, 1, 
/* 23193*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 23200*/                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] }))
/* 23209*/              0, /*End of Scope*/
/* 23210*/            /*Scope*/ 114, /*->23325*/
/* 23211*/              OPC_CheckChild2CondCode, ISD::SETUNE,
/* 23213*/              OPC_Scope, 53, /*->23268*/ // 2 children in Scope
/* 23215*/                OPC_MoveParent,
/* 23216*/                OPC_CheckType, MVT::i32,
/* 23218*/                OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 23220*/                OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 23228*/                OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 23231*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 23239*/                OPC_EmitInteger, MVT::i32, 0, 
/* 23242*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 23249*/                OPC_EmitInteger, MVT::i32, 1, 
/* 23252*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 23259*/                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] }))
/* 23268*/              /*Scope*/ 55, /*->23324*/
/* 23269*/                OPC_CheckType, MVT::i1,
/* 23271*/                OPC_MoveParent,
/* 23272*/                OPC_CheckType, MVT::i64,
/* 23274*/                OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 23276*/                OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 23284*/                OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 23287*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 23295*/                OPC_EmitInteger, MVT::i64, 0, 
/* 23298*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 23305*/                OPC_EmitInteger, MVT::i64, 1, 
/* 23308*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 23315*/                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] }))
/* 23324*/              0, /*End of Scope*/
/* 23325*/            /*Scope*/ 114, /*->23440*/
/* 23326*/              OPC_CheckChild2CondCode, ISD::SETNE,
/* 23328*/              OPC_Scope, 53, /*->23383*/ // 2 children in Scope
/* 23330*/                OPC_MoveParent,
/* 23331*/                OPC_CheckType, MVT::i32,
/* 23333*/                OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 23335*/                OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 23343*/                OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 23346*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 23354*/                OPC_EmitInteger, MVT::i32, 0, 
/* 23357*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 23364*/                OPC_EmitInteger, MVT::i32, 1, 
/* 23367*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 23374*/                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] }))
/* 23383*/              /*Scope*/ 55, /*->23439*/
/* 23384*/                OPC_CheckType, MVT::i1,
/* 23386*/                OPC_MoveParent,
/* 23387*/                OPC_CheckType, MVT::i64,
/* 23389*/                OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 23391*/                OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 23399*/                OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 23402*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 23410*/                OPC_EmitInteger, MVT::i64, 0, 
/* 23413*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 23420*/                OPC_EmitInteger, MVT::i64, 1, 
/* 23423*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 23430*/                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] }))
/* 23439*/              0, /*End of Scope*/
/* 23440*/            /*Scope*/ 114, /*->23555*/
/* 23441*/              OPC_CheckChild2CondCode, ISD::SETO,
/* 23443*/              OPC_Scope, 53, /*->23498*/ // 2 children in Scope
/* 23445*/                OPC_MoveParent,
/* 23446*/                OPC_CheckType, MVT::i32,
/* 23448*/                OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 23450*/                OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 23458*/                OPC_EmitInteger, MVT::i32, PPC::sub_un,
/* 23461*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 23469*/                OPC_EmitInteger, MVT::i32, 0, 
/* 23472*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 23479*/                OPC_EmitInteger, MVT::i32, 1, 
/* 23482*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 23489*/                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] }))
/* 23498*/              /*Scope*/ 55, /*->23554*/
/* 23499*/                OPC_CheckType, MVT::i1,
/* 23501*/                OPC_MoveParent,
/* 23502*/                OPC_CheckType, MVT::i64,
/* 23504*/                OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 23506*/                OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 23514*/                OPC_EmitInteger, MVT::i32, PPC::sub_un,
/* 23517*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 23525*/                OPC_EmitInteger, MVT::i64, 0, 
/* 23528*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 23535*/                OPC_EmitInteger, MVT::i64, 1, 
/* 23538*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 23545*/                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] }))
/* 23554*/              0, /*End of Scope*/
/* 23555*/            /*Scope*/ 114, /*->23670*/
/* 23556*/              OPC_CheckChild2CondCode, ISD::SETUGE,
/* 23558*/              OPC_Scope, 53, /*->23613*/ // 2 children in Scope
/* 23560*/                OPC_MoveParent,
/* 23561*/                OPC_CheckType, MVT::i32,
/* 23563*/                OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 23565*/                OPC_EmitNode1, TARGET_VAL(PPC::EFSCMPLT), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 23573*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 23576*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 23584*/                OPC_EmitInteger, MVT::i32, 0, 
/* 23587*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 23594*/                OPC_EmitInteger, MVT::i32, 1, 
/* 23597*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 23604*/                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] }))
/* 23613*/              /*Scope*/ 55, /*->23669*/
/* 23614*/                OPC_CheckType, MVT::i1,
/* 23616*/                OPC_MoveParent,
/* 23617*/                OPC_CheckType, MVT::i64,
/* 23619*/                OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 23621*/                OPC_EmitNode1, TARGET_VAL(PPC::EFSCMPLT), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 23629*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 23632*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 23640*/                OPC_EmitInteger, MVT::i64, 0, 
/* 23643*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 23650*/                OPC_EmitInteger, MVT::i64, 1, 
/* 23653*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 23660*/                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] }))
/* 23669*/              0, /*End of Scope*/
/* 23670*/            /*Scope*/ 114, /*->23785*/
/* 23671*/              OPC_CheckChild2CondCode, ISD::SETGE,
/* 23673*/              OPC_Scope, 53, /*->23728*/ // 2 children in Scope
/* 23675*/                OPC_MoveParent,
/* 23676*/                OPC_CheckType, MVT::i32,
/* 23678*/                OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 23680*/                OPC_EmitNode1, TARGET_VAL(PPC::EFSCMPLT), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 23688*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 23691*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 23699*/                OPC_EmitInteger, MVT::i32, 0, 
/* 23702*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 23709*/                OPC_EmitInteger, MVT::i32, 1, 
/* 23712*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 23719*/                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] }))
/* 23728*/              /*Scope*/ 55, /*->23784*/
/* 23729*/                OPC_CheckType, MVT::i1,
/* 23731*/                OPC_MoveParent,
/* 23732*/                OPC_CheckType, MVT::i64,
/* 23734*/                OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 23736*/                OPC_EmitNode1, TARGET_VAL(PPC::EFSCMPLT), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 23744*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 23747*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 23755*/                OPC_EmitInteger, MVT::i64, 0, 
/* 23758*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 23765*/                OPC_EmitInteger, MVT::i64, 1, 
/* 23768*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 23775*/                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] }))
/* 23784*/              0, /*End of Scope*/
/* 23785*/            /*Scope*/ 114, /*->23900*/
/* 23786*/              OPC_CheckChild2CondCode, ISD::SETULE,
/* 23788*/              OPC_Scope, 53, /*->23843*/ // 2 children in Scope
/* 23790*/                OPC_MoveParent,
/* 23791*/                OPC_CheckType, MVT::i32,
/* 23793*/                OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 23795*/                OPC_EmitNode1, TARGET_VAL(PPC::EFSCMPGT), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 23803*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 23806*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 23814*/                OPC_EmitInteger, MVT::i32, 0, 
/* 23817*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 23824*/                OPC_EmitInteger, MVT::i32, 1, 
/* 23827*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 23834*/                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] }))
/* 23843*/              /*Scope*/ 55, /*->23899*/
/* 23844*/                OPC_CheckType, MVT::i1,
/* 23846*/                OPC_MoveParent,
/* 23847*/                OPC_CheckType, MVT::i64,
/* 23849*/                OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 23851*/                OPC_EmitNode1, TARGET_VAL(PPC::EFSCMPGT), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 23859*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 23862*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 23870*/                OPC_EmitInteger, MVT::i64, 0, 
/* 23873*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 23880*/                OPC_EmitInteger, MVT::i64, 1, 
/* 23883*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 23890*/                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] }))
/* 23899*/              0, /*End of Scope*/
/* 23900*/            /*Scope*/ 114, /*->24015*/
/* 23901*/              OPC_CheckChild2CondCode, ISD::SETLE,
/* 23903*/              OPC_Scope, 53, /*->23958*/ // 2 children in Scope
/* 23905*/                OPC_MoveParent,
/* 23906*/                OPC_CheckType, MVT::i32,
/* 23908*/                OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 23910*/                OPC_EmitNode1, TARGET_VAL(PPC::EFSCMPGT), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 23918*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 23921*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 23929*/                OPC_EmitInteger, MVT::i32, 0, 
/* 23932*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 23939*/                OPC_EmitInteger, MVT::i32, 1, 
/* 23942*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 23949*/                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] }))
/* 23958*/              /*Scope*/ 55, /*->24014*/
/* 23959*/                OPC_CheckType, MVT::i1,
/* 23961*/                OPC_MoveParent,
/* 23962*/                OPC_CheckType, MVT::i64,
/* 23964*/                OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 23966*/                OPC_EmitNode1, TARGET_VAL(PPC::EFSCMPGT), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 23974*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 23977*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 23985*/                OPC_EmitInteger, MVT::i64, 0, 
/* 23988*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 23995*/                OPC_EmitInteger, MVT::i64, 1, 
/* 23998*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 24005*/                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] }))
/* 24014*/              0, /*End of Scope*/
/* 24015*/            /*Scope*/ 114, /*->24130*/
/* 24016*/              OPC_CheckChild2CondCode, ISD::SETUNE,
/* 24018*/              OPC_Scope, 53, /*->24073*/ // 2 children in Scope
/* 24020*/                OPC_MoveParent,
/* 24021*/                OPC_CheckType, MVT::i32,
/* 24023*/                OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 24025*/                OPC_EmitNode1, TARGET_VAL(PPC::EFSCMPEQ), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 24033*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 24036*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 24044*/                OPC_EmitInteger, MVT::i32, 0, 
/* 24047*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 24054*/                OPC_EmitInteger, MVT::i32, 1, 
/* 24057*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 24064*/                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] }))
/* 24073*/              /*Scope*/ 55, /*->24129*/
/* 24074*/                OPC_CheckType, MVT::i1,
/* 24076*/                OPC_MoveParent,
/* 24077*/                OPC_CheckType, MVT::i64,
/* 24079*/                OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 24081*/                OPC_EmitNode1, TARGET_VAL(PPC::EFSCMPEQ), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 24089*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 24092*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 24100*/                OPC_EmitInteger, MVT::i64, 0, 
/* 24103*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 24110*/                OPC_EmitInteger, MVT::i64, 1, 
/* 24113*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 24120*/                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] }))
/* 24129*/              0, /*End of Scope*/
/* 24130*/            /*Scope*/ 114, /*->24245*/
/* 24131*/              OPC_CheckChild2CondCode, ISD::SETNE,
/* 24133*/              OPC_Scope, 53, /*->24188*/ // 2 children in Scope
/* 24135*/                OPC_MoveParent,
/* 24136*/                OPC_CheckType, MVT::i32,
/* 24138*/                OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 24140*/                OPC_EmitNode1, TARGET_VAL(PPC::EFSCMPEQ), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 24148*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 24151*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 24159*/                OPC_EmitInteger, MVT::i32, 0, 
/* 24162*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 24169*/                OPC_EmitInteger, MVT::i32, 1, 
/* 24172*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 24179*/                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] }))
/* 24188*/              /*Scope*/ 55, /*->24244*/
/* 24189*/                OPC_CheckType, MVT::i1,
/* 24191*/                OPC_MoveParent,
/* 24192*/                OPC_CheckType, MVT::i64,
/* 24194*/                OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 24196*/                OPC_EmitNode1, TARGET_VAL(PPC::EFSCMPEQ), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 24204*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 24207*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 24215*/                OPC_EmitInteger, MVT::i64, 0, 
/* 24218*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 24225*/                OPC_EmitInteger, MVT::i64, 1, 
/* 24228*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 24235*/                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] }))
/* 24244*/              0, /*End of Scope*/
/* 24245*/            0, /*End of Scope*/
/* 24246*/          /*Scope*/ 92|128,11/*1500*/, /*->25748*/
/* 24248*/            OPC_CheckChild0Type, MVT::f64,
/* 24250*/            OPC_RecordChild1, // #1 = $s2
/* 24251*/            OPC_Scope, 114, /*->24367*/ // 13 children in Scope
/* 24253*/              OPC_CheckChild2CondCode, ISD::SETUGE,
/* 24255*/              OPC_Scope, 53, /*->24310*/ // 2 children in Scope
/* 24257*/                OPC_MoveParent,
/* 24258*/                OPC_CheckType, MVT::i32,
/* 24260*/                OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 24262*/                OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 24270*/                OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 24273*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 24281*/                OPC_EmitInteger, MVT::i32, 0, 
/* 24284*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 24291*/                OPC_EmitInteger, MVT::i32, 1, 
/* 24294*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 24301*/                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] }))
/* 24310*/              /*Scope*/ 55, /*->24366*/
/* 24311*/                OPC_CheckType, MVT::i1,
/* 24313*/                OPC_MoveParent,
/* 24314*/                OPC_CheckType, MVT::i64,
/* 24316*/                OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 24318*/                OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 24326*/                OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 24329*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 24337*/                OPC_EmitInteger, MVT::i64, 0, 
/* 24340*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 24347*/                OPC_EmitInteger, MVT::i64, 1, 
/* 24350*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 24357*/                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] }))
/* 24366*/              0, /*End of Scope*/
/* 24367*/            /*Scope*/ 114, /*->24482*/
/* 24368*/              OPC_CheckChild2CondCode, ISD::SETGE,
/* 24370*/              OPC_Scope, 53, /*->24425*/ // 2 children in Scope
/* 24372*/                OPC_MoveParent,
/* 24373*/                OPC_CheckType, MVT::i32,
/* 24375*/                OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 24377*/                OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 24385*/                OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 24388*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 24396*/                OPC_EmitInteger, MVT::i32, 0, 
/* 24399*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 24406*/                OPC_EmitInteger, MVT::i32, 1, 
/* 24409*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 24416*/                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] }))
/* 24425*/              /*Scope*/ 55, /*->24481*/
/* 24426*/                OPC_CheckType, MVT::i1,
/* 24428*/                OPC_MoveParent,
/* 24429*/                OPC_CheckType, MVT::i64,
/* 24431*/                OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 24433*/                OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 24441*/                OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 24444*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 24452*/                OPC_EmitInteger, MVT::i64, 0, 
/* 24455*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 24462*/                OPC_EmitInteger, MVT::i64, 1, 
/* 24465*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 24472*/                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] }))
/* 24481*/              0, /*End of Scope*/
/* 24482*/            /*Scope*/ 114, /*->24597*/
/* 24483*/              OPC_CheckChild2CondCode, ISD::SETULE,
/* 24485*/              OPC_Scope, 53, /*->24540*/ // 2 children in Scope
/* 24487*/                OPC_MoveParent,
/* 24488*/                OPC_CheckType, MVT::i32,
/* 24490*/                OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 24492*/                OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 24500*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 24503*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 24511*/                OPC_EmitInteger, MVT::i32, 0, 
/* 24514*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 24521*/                OPC_EmitInteger, MVT::i32, 1, 
/* 24524*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 24531*/                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] }))
/* 24540*/              /*Scope*/ 55, /*->24596*/
/* 24541*/                OPC_CheckType, MVT::i1,
/* 24543*/                OPC_MoveParent,
/* 24544*/                OPC_CheckType, MVT::i64,
/* 24546*/                OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 24548*/                OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 24556*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 24559*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 24567*/                OPC_EmitInteger, MVT::i64, 0, 
/* 24570*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 24577*/                OPC_EmitInteger, MVT::i64, 1, 
/* 24580*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 24587*/                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] }))
/* 24596*/              0, /*End of Scope*/
/* 24597*/            /*Scope*/ 114, /*->24712*/
/* 24598*/              OPC_CheckChild2CondCode, ISD::SETLE,
/* 24600*/              OPC_Scope, 53, /*->24655*/ // 2 children in Scope
/* 24602*/                OPC_MoveParent,
/* 24603*/                OPC_CheckType, MVT::i32,
/* 24605*/                OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 24607*/                OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 24615*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 24618*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 24626*/                OPC_EmitInteger, MVT::i32, 0, 
/* 24629*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 24636*/                OPC_EmitInteger, MVT::i32, 1, 
/* 24639*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 24646*/                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] }))
/* 24655*/              /*Scope*/ 55, /*->24711*/
/* 24656*/                OPC_CheckType, MVT::i1,
/* 24658*/                OPC_MoveParent,
/* 24659*/                OPC_CheckType, MVT::i64,
/* 24661*/                OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 24663*/                OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 24671*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 24674*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 24682*/                OPC_EmitInteger, MVT::i64, 0, 
/* 24685*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 24692*/                OPC_EmitInteger, MVT::i64, 1, 
/* 24695*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 24702*/                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] }))
/* 24711*/              0, /*End of Scope*/
/* 24712*/            /*Scope*/ 114, /*->24827*/
/* 24713*/              OPC_CheckChild2CondCode, ISD::SETUNE,
/* 24715*/              OPC_Scope, 53, /*->24770*/ // 2 children in Scope
/* 24717*/                OPC_MoveParent,
/* 24718*/                OPC_CheckType, MVT::i32,
/* 24720*/                OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 24722*/                OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 24730*/                OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 24733*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 24741*/                OPC_EmitInteger, MVT::i32, 0, 
/* 24744*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 24751*/                OPC_EmitInteger, MVT::i32, 1, 
/* 24754*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 24761*/                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] }))
/* 24770*/              /*Scope*/ 55, /*->24826*/
/* 24771*/                OPC_CheckType, MVT::i1,
/* 24773*/                OPC_MoveParent,
/* 24774*/                OPC_CheckType, MVT::i64,
/* 24776*/                OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 24778*/                OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 24786*/                OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 24789*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 24797*/                OPC_EmitInteger, MVT::i64, 0, 
/* 24800*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 24807*/                OPC_EmitInteger, MVT::i64, 1, 
/* 24810*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 24817*/                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] }))
/* 24826*/              0, /*End of Scope*/
/* 24827*/            /*Scope*/ 114, /*->24942*/
/* 24828*/              OPC_CheckChild2CondCode, ISD::SETNE,
/* 24830*/              OPC_Scope, 53, /*->24885*/ // 2 children in Scope
/* 24832*/                OPC_MoveParent,
/* 24833*/                OPC_CheckType, MVT::i32,
/* 24835*/                OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 24837*/                OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 24845*/                OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 24848*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 24856*/                OPC_EmitInteger, MVT::i32, 0, 
/* 24859*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 24866*/                OPC_EmitInteger, MVT::i32, 1, 
/* 24869*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 24876*/                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] }))
/* 24885*/              /*Scope*/ 55, /*->24941*/
/* 24886*/                OPC_CheckType, MVT::i1,
/* 24888*/                OPC_MoveParent,
/* 24889*/                OPC_CheckType, MVT::i64,
/* 24891*/                OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 24893*/                OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 24901*/                OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 24904*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 24912*/                OPC_EmitInteger, MVT::i64, 0, 
/* 24915*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 24922*/                OPC_EmitInteger, MVT::i64, 1, 
/* 24925*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 24932*/                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] }))
/* 24941*/              0, /*End of Scope*/
/* 24942*/            /*Scope*/ 114, /*->25057*/
/* 24943*/              OPC_CheckChild2CondCode, ISD::SETO,
/* 24945*/              OPC_Scope, 53, /*->25000*/ // 2 children in Scope
/* 24947*/                OPC_MoveParent,
/* 24948*/                OPC_CheckType, MVT::i32,
/* 24950*/                OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 24952*/                OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 24960*/                OPC_EmitInteger, MVT::i32, PPC::sub_un,
/* 24963*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 24971*/                OPC_EmitInteger, MVT::i32, 0, 
/* 24974*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 24981*/                OPC_EmitInteger, MVT::i32, 1, 
/* 24984*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 24991*/                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] }))
/* 25000*/              /*Scope*/ 55, /*->25056*/
/* 25001*/                OPC_CheckType, MVT::i1,
/* 25003*/                OPC_MoveParent,
/* 25004*/                OPC_CheckType, MVT::i64,
/* 25006*/                OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 25008*/                OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 25016*/                OPC_EmitInteger, MVT::i32, PPC::sub_un,
/* 25019*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 25027*/                OPC_EmitInteger, MVT::i64, 0, 
/* 25030*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 25037*/                OPC_EmitInteger, MVT::i64, 1, 
/* 25040*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 25047*/                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] }))
/* 25056*/              0, /*End of Scope*/
/* 25057*/            /*Scope*/ 114, /*->25172*/
/* 25058*/              OPC_CheckChild2CondCode, ISD::SETUGE,
/* 25060*/              OPC_Scope, 53, /*->25115*/ // 2 children in Scope
/* 25062*/                OPC_MoveParent,
/* 25063*/                OPC_CheckType, MVT::i32,
/* 25065*/                OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 25067*/                OPC_EmitNode1, TARGET_VAL(PPC::EFDCMPLT), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 25075*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 25078*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 25086*/                OPC_EmitInteger, MVT::i32, 0, 
/* 25089*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 25096*/                OPC_EmitInteger, MVT::i32, 1, 
/* 25099*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 25106*/                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] }))
/* 25115*/              /*Scope*/ 55, /*->25171*/
/* 25116*/                OPC_CheckType, MVT::i1,
/* 25118*/                OPC_MoveParent,
/* 25119*/                OPC_CheckType, MVT::i64,
/* 25121*/                OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 25123*/                OPC_EmitNode1, TARGET_VAL(PPC::EFDCMPLT), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 25131*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 25134*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 25142*/                OPC_EmitInteger, MVT::i64, 0, 
/* 25145*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 25152*/                OPC_EmitInteger, MVT::i64, 1, 
/* 25155*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 25162*/                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] }))
/* 25171*/              0, /*End of Scope*/
/* 25172*/            /*Scope*/ 114, /*->25287*/
/* 25173*/              OPC_CheckChild2CondCode, ISD::SETGE,
/* 25175*/              OPC_Scope, 53, /*->25230*/ // 2 children in Scope
/* 25177*/                OPC_MoveParent,
/* 25178*/                OPC_CheckType, MVT::i32,
/* 25180*/                OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 25182*/                OPC_EmitNode1, TARGET_VAL(PPC::EFDCMPLT), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 25190*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 25193*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 25201*/                OPC_EmitInteger, MVT::i32, 0, 
/* 25204*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 25211*/                OPC_EmitInteger, MVT::i32, 1, 
/* 25214*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 25221*/                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] }))
/* 25230*/              /*Scope*/ 55, /*->25286*/
/* 25231*/                OPC_CheckType, MVT::i1,
/* 25233*/                OPC_MoveParent,
/* 25234*/                OPC_CheckType, MVT::i64,
/* 25236*/                OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 25238*/                OPC_EmitNode1, TARGET_VAL(PPC::EFDCMPLT), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 25246*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 25249*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 25257*/                OPC_EmitInteger, MVT::i64, 0, 
/* 25260*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 25267*/                OPC_EmitInteger, MVT::i64, 1, 
/* 25270*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 25277*/                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] }))
/* 25286*/              0, /*End of Scope*/
/* 25287*/            /*Scope*/ 114, /*->25402*/
/* 25288*/              OPC_CheckChild2CondCode, ISD::SETULE,
/* 25290*/              OPC_Scope, 53, /*->25345*/ // 2 children in Scope
/* 25292*/                OPC_MoveParent,
/* 25293*/                OPC_CheckType, MVT::i32,
/* 25295*/                OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 25297*/                OPC_EmitNode1, TARGET_VAL(PPC::EFDCMPGT), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 25305*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 25308*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 25316*/                OPC_EmitInteger, MVT::i32, 0, 
/* 25319*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 25326*/                OPC_EmitInteger, MVT::i32, 1, 
/* 25329*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 25336*/                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] }))
/* 25345*/              /*Scope*/ 55, /*->25401*/
/* 25346*/                OPC_CheckType, MVT::i1,
/* 25348*/                OPC_MoveParent,
/* 25349*/                OPC_CheckType, MVT::i64,
/* 25351*/                OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 25353*/                OPC_EmitNode1, TARGET_VAL(PPC::EFDCMPGT), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 25361*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 25364*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 25372*/                OPC_EmitInteger, MVT::i64, 0, 
/* 25375*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 25382*/                OPC_EmitInteger, MVT::i64, 1, 
/* 25385*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 25392*/                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] }))
/* 25401*/              0, /*End of Scope*/
/* 25402*/            /*Scope*/ 114, /*->25517*/
/* 25403*/              OPC_CheckChild2CondCode, ISD::SETLE,
/* 25405*/              OPC_Scope, 53, /*->25460*/ // 2 children in Scope
/* 25407*/                OPC_MoveParent,
/* 25408*/                OPC_CheckType, MVT::i32,
/* 25410*/                OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 25412*/                OPC_EmitNode1, TARGET_VAL(PPC::EFDCMPGT), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 25420*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 25423*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 25431*/                OPC_EmitInteger, MVT::i32, 0, 
/* 25434*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 25441*/                OPC_EmitInteger, MVT::i32, 1, 
/* 25444*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 25451*/                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] }))
/* 25460*/              /*Scope*/ 55, /*->25516*/
/* 25461*/                OPC_CheckType, MVT::i1,
/* 25463*/                OPC_MoveParent,
/* 25464*/                OPC_CheckType, MVT::i64,
/* 25466*/                OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 25468*/                OPC_EmitNode1, TARGET_VAL(PPC::EFDCMPGT), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 25476*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 25479*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 25487*/                OPC_EmitInteger, MVT::i64, 0, 
/* 25490*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 25497*/                OPC_EmitInteger, MVT::i64, 1, 
/* 25500*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 25507*/                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] }))
/* 25516*/              0, /*End of Scope*/
/* 25517*/            /*Scope*/ 114, /*->25632*/
/* 25518*/              OPC_CheckChild2CondCode, ISD::SETUNE,
/* 25520*/              OPC_Scope, 53, /*->25575*/ // 2 children in Scope
/* 25522*/                OPC_MoveParent,
/* 25523*/                OPC_CheckType, MVT::i32,
/* 25525*/                OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 25527*/                OPC_EmitNode1, TARGET_VAL(PPC::EFDCMPEQ), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 25535*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 25538*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 25546*/                OPC_EmitInteger, MVT::i32, 0, 
/* 25549*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 25556*/                OPC_EmitInteger, MVT::i32, 1, 
/* 25559*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 25566*/                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] }))
/* 25575*/              /*Scope*/ 55, /*->25631*/
/* 25576*/                OPC_CheckType, MVT::i1,
/* 25578*/                OPC_MoveParent,
/* 25579*/                OPC_CheckType, MVT::i64,
/* 25581*/                OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 25583*/                OPC_EmitNode1, TARGET_VAL(PPC::EFDCMPEQ), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 25591*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 25594*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 25602*/                OPC_EmitInteger, MVT::i64, 0, 
/* 25605*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 25612*/                OPC_EmitInteger, MVT::i64, 1, 
/* 25615*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 25622*/                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] }))
/* 25631*/              0, /*End of Scope*/
/* 25632*/            /*Scope*/ 114, /*->25747*/
/* 25633*/              OPC_CheckChild2CondCode, ISD::SETNE,
/* 25635*/              OPC_Scope, 53, /*->25690*/ // 2 children in Scope
/* 25637*/                OPC_MoveParent,
/* 25638*/                OPC_CheckType, MVT::i32,
/* 25640*/                OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 25642*/                OPC_EmitNode1, TARGET_VAL(PPC::EFDCMPEQ), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 25650*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 25653*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 25661*/                OPC_EmitInteger, MVT::i32, 0, 
/* 25664*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 25671*/                OPC_EmitInteger, MVT::i32, 1, 
/* 25674*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 25681*/                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] }))
/* 25690*/              /*Scope*/ 55, /*->25746*/
/* 25691*/                OPC_CheckType, MVT::i1,
/* 25693*/                OPC_MoveParent,
/* 25694*/                OPC_CheckType, MVT::i64,
/* 25696*/                OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 25698*/                OPC_EmitNode1, TARGET_VAL(PPC::EFDCMPEQ), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 25706*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 25709*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 25717*/                OPC_EmitInteger, MVT::i64, 0, 
/* 25720*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 25727*/                OPC_EmitInteger, MVT::i64, 1, 
/* 25730*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 25737*/                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] }))
/* 25746*/              0, /*End of Scope*/
/* 25747*/            0, /*End of Scope*/
/* 25748*/          /*Scope*/ 42|128,6/*810*/, /*->26560*/
/* 25750*/            OPC_CheckChild0Type, MVT::f128,
/* 25752*/            OPC_RecordChild1, // #1 = $s2
/* 25753*/            OPC_Scope, 114, /*->25869*/ // 7 children in Scope
/* 25755*/              OPC_CheckChild2CondCode, ISD::SETUGE,
/* 25757*/              OPC_Scope, 53, /*->25812*/ // 2 children in Scope
/* 25759*/                OPC_MoveParent,
/* 25760*/                OPC_CheckType, MVT::i32,
/* 25762*/                OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 25764*/                OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 25772*/                OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 25775*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 25783*/                OPC_EmitInteger, MVT::i32, 0, 
/* 25786*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 25793*/                OPC_EmitInteger, MVT::i32, 1, 
/* 25796*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 25803*/                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] }))
/* 25812*/              /*Scope*/ 55, /*->25868*/
/* 25813*/                OPC_CheckType, MVT::i1,
/* 25815*/                OPC_MoveParent,
/* 25816*/                OPC_CheckType, MVT::i64,
/* 25818*/                OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 25820*/                OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 25828*/                OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 25831*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 25839*/                OPC_EmitInteger, MVT::i64, 0, 
/* 25842*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 25849*/                OPC_EmitInteger, MVT::i64, 1, 
/* 25852*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 25859*/                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] }))
/* 25868*/              0, /*End of Scope*/
/* 25869*/            /*Scope*/ 114, /*->25984*/
/* 25870*/              OPC_CheckChild2CondCode, ISD::SETGE,
/* 25872*/              OPC_Scope, 53, /*->25927*/ // 2 children in Scope
/* 25874*/                OPC_MoveParent,
/* 25875*/                OPC_CheckType, MVT::i32,
/* 25877*/                OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 25879*/                OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 25887*/                OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 25890*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 25898*/                OPC_EmitInteger, MVT::i32, 0, 
/* 25901*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 25908*/                OPC_EmitInteger, MVT::i32, 1, 
/* 25911*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 25918*/                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] }))
/* 25927*/              /*Scope*/ 55, /*->25983*/
/* 25928*/                OPC_CheckType, MVT::i1,
/* 25930*/                OPC_MoveParent,
/* 25931*/                OPC_CheckType, MVT::i64,
/* 25933*/                OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 25935*/                OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 25943*/                OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 25946*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 25954*/                OPC_EmitInteger, MVT::i64, 0, 
/* 25957*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 25964*/                OPC_EmitInteger, MVT::i64, 1, 
/* 25967*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 25974*/                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] }))
/* 25983*/              0, /*End of Scope*/
/* 25984*/            /*Scope*/ 114, /*->26099*/
/* 25985*/              OPC_CheckChild2CondCode, ISD::SETULE,
/* 25987*/              OPC_Scope, 53, /*->26042*/ // 2 children in Scope
/* 25989*/                OPC_MoveParent,
/* 25990*/                OPC_CheckType, MVT::i32,
/* 25992*/                OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 25994*/                OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 26002*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 26005*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 26013*/                OPC_EmitInteger, MVT::i32, 0, 
/* 26016*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 26023*/                OPC_EmitInteger, MVT::i32, 1, 
/* 26026*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 26033*/                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] }))
/* 26042*/              /*Scope*/ 55, /*->26098*/
/* 26043*/                OPC_CheckType, MVT::i1,
/* 26045*/                OPC_MoveParent,
/* 26046*/                OPC_CheckType, MVT::i64,
/* 26048*/                OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 26050*/                OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 26058*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 26061*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 26069*/                OPC_EmitInteger, MVT::i64, 0, 
/* 26072*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 26079*/                OPC_EmitInteger, MVT::i64, 1, 
/* 26082*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 26089*/                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] }))
/* 26098*/              0, /*End of Scope*/
/* 26099*/            /*Scope*/ 114, /*->26214*/
/* 26100*/              OPC_CheckChild2CondCode, ISD::SETLE,
/* 26102*/              OPC_Scope, 53, /*->26157*/ // 2 children in Scope
/* 26104*/                OPC_MoveParent,
/* 26105*/                OPC_CheckType, MVT::i32,
/* 26107*/                OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 26109*/                OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 26117*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 26120*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 26128*/                OPC_EmitInteger, MVT::i32, 0, 
/* 26131*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 26138*/                OPC_EmitInteger, MVT::i32, 1, 
/* 26141*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 26148*/                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] }))
/* 26157*/              /*Scope*/ 55, /*->26213*/
/* 26158*/                OPC_CheckType, MVT::i1,
/* 26160*/                OPC_MoveParent,
/* 26161*/                OPC_CheckType, MVT::i64,
/* 26163*/                OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 26165*/                OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 26173*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 26176*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 26184*/                OPC_EmitInteger, MVT::i64, 0, 
/* 26187*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 26194*/                OPC_EmitInteger, MVT::i64, 1, 
/* 26197*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 26204*/                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] }))
/* 26213*/              0, /*End of Scope*/
/* 26214*/            /*Scope*/ 114, /*->26329*/
/* 26215*/              OPC_CheckChild2CondCode, ISD::SETUNE,
/* 26217*/              OPC_Scope, 53, /*->26272*/ // 2 children in Scope
/* 26219*/                OPC_MoveParent,
/* 26220*/                OPC_CheckType, MVT::i32,
/* 26222*/                OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 26224*/                OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 26232*/                OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 26235*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 26243*/                OPC_EmitInteger, MVT::i32, 0, 
/* 26246*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 26253*/                OPC_EmitInteger, MVT::i32, 1, 
/* 26256*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 26263*/                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] }))
/* 26272*/              /*Scope*/ 55, /*->26328*/
/* 26273*/                OPC_CheckType, MVT::i1,
/* 26275*/                OPC_MoveParent,
/* 26276*/                OPC_CheckType, MVT::i64,
/* 26278*/                OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 26280*/                OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 26288*/                OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 26291*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 26299*/                OPC_EmitInteger, MVT::i64, 0, 
/* 26302*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 26309*/                OPC_EmitInteger, MVT::i64, 1, 
/* 26312*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 26319*/                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] }))
/* 26328*/              0, /*End of Scope*/
/* 26329*/            /*Scope*/ 114, /*->26444*/
/* 26330*/              OPC_CheckChild2CondCode, ISD::SETNE,
/* 26332*/              OPC_Scope, 53, /*->26387*/ // 2 children in Scope
/* 26334*/                OPC_MoveParent,
/* 26335*/                OPC_CheckType, MVT::i32,
/* 26337*/                OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 26339*/                OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 26347*/                OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 26350*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 26358*/                OPC_EmitInteger, MVT::i32, 0, 
/* 26361*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 26368*/                OPC_EmitInteger, MVT::i32, 1, 
/* 26371*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 26378*/                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] }))
/* 26387*/              /*Scope*/ 55, /*->26443*/
/* 26388*/                OPC_CheckType, MVT::i1,
/* 26390*/                OPC_MoveParent,
/* 26391*/                OPC_CheckType, MVT::i64,
/* 26393*/                OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 26395*/                OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 26403*/                OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 26406*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 26414*/                OPC_EmitInteger, MVT::i64, 0, 
/* 26417*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 26424*/                OPC_EmitInteger, MVT::i64, 1, 
/* 26427*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 26434*/                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] }))
/* 26443*/              0, /*End of Scope*/
/* 26444*/            /*Scope*/ 114, /*->26559*/
/* 26445*/              OPC_CheckChild2CondCode, ISD::SETO,
/* 26447*/              OPC_Scope, 53, /*->26502*/ // 2 children in Scope
/* 26449*/                OPC_MoveParent,
/* 26450*/                OPC_CheckType, MVT::i32,
/* 26452*/                OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 26454*/                OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 26462*/                OPC_EmitInteger, MVT::i32, PPC::sub_un,
/* 26465*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 26473*/                OPC_EmitInteger, MVT::i32, 0, 
/* 26476*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 26483*/                OPC_EmitInteger, MVT::i32, 1, 
/* 26486*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 26493*/                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] }))
/* 26502*/              /*Scope*/ 55, /*->26558*/
/* 26503*/                OPC_CheckType, MVT::i1,
/* 26505*/                OPC_MoveParent,
/* 26506*/                OPC_CheckType, MVT::i64,
/* 26508*/                OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 26510*/                OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                              MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 26518*/                OPC_EmitInteger, MVT::i32, PPC::sub_un,
/* 26521*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 26529*/                OPC_EmitInteger, MVT::i64, 0, 
/* 26532*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 26539*/                OPC_EmitInteger, MVT::i64, 1, 
/* 26542*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 26549*/                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] }))
/* 26558*/              0, /*End of Scope*/
/* 26559*/            0, /*End of Scope*/
/* 26560*/          0, /*End of Scope*/
/* 26561*/        0, /*End of Scope*/
/* 26562*/      0, // EndSwitchOpcode
/* 26563*/    /*Scope*/ 106, /*->26670*/
/* 26564*/      OPC_RecordChild0, // #0 = $in
/* 26565*/      OPC_SwitchType /*2 cases */, 70, MVT::i64,// ->26638
/* 26568*/        OPC_Scope, 35, /*->26605*/ // 2 children in Scope
/* 26570*/          OPC_CheckChild0Type, MVT::i32,
/* 26572*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::i64, 0/*#Ops*/,  // Results = #1
/* 26578*/          OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 26581*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::i64, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/* 26590*/          OPC_EmitInteger, MVT::i32, 0, 
/* 26593*/          OPC_EmitInteger, MVT::i32, 32, 
/* 26596*/          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] })
/* 26605*/        /*Scope*/ 31, /*->26637*/
/* 26606*/          OPC_CheckChild0Type, MVT::i1,
/* 26608*/          OPC_EmitInteger, MVT::i64, 1, 
/* 26611*/          OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                        MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 26618*/          OPC_EmitInteger, MVT::i64, 0, 
/* 26621*/          OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                        MVT::i64, 1/*#Ops*/, 3,  // Results = #4
/* 26628*/          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] }))
/* 26637*/        0, /*End of Scope*/
/* 26638*/      /*SwitchType*/ 29, MVT::i32,// ->26669
/* 26640*/        OPC_EmitInteger, MVT::i32, 1, 
/* 26643*/        OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                      MVT::i32, 1/*#Ops*/, 1,  // Results = #2
/* 26650*/        OPC_EmitInteger, MVT::i32, 0, 
/* 26653*/        OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                      MVT::i32, 1/*#Ops*/, 3,  // Results = #4
/* 26660*/        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] }))
/* 26669*/      0, // EndSwitchType
/* 26670*/    0, /*End of Scope*/
/* 26671*/  /*SwitchOpcode*/ 84|128,64/*8276*/, TARGET_VAL(ISD::SIGN_EXTEND),// ->34951
/* 26675*/    OPC_Scope, 109|128,63/*8173*/, /*->34851*/ // 2 children in Scope
/* 26678*/      OPC_MoveChild0,
/* 26679*/      OPC_SwitchOpcode /*2 cases */, 20|128,3/*404*/, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),// ->27088
/* 26684*/        OPC_RecordChild0, // #0 = $S
/* 26685*/        OPC_CheckChild0Type, MVT::v4i32,
/* 26687*/        OPC_CheckType, MVT::i32,
/* 26689*/        OPC_Scope, 63, /*->26754*/ // 5 children in Scope
/* 26691*/          OPC_CheckChild1Integer, 0, 
/* 26693*/          OPC_MoveParent,
/* 26694*/          OPC_CheckType, MVT::i64,
/* 26696*/          OPC_Scope, 27, /*->26725*/ // 2 children in Scope
/* 26698*/            OPC_CheckPatternPredicate, 20, // (PPCSubTarget->hasP9Altivec()) && (PPCSubTarget->isLittleEndian())
/* 26700*/            OPC_EmitInteger, MVT::i64, 0, 
/* 26703*/            OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                          MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 26710*/            OPC_EmitNode1, TARGET_VAL(PPC::VEXTUWRX), 0,
                          MVT::i64, 2/*#Ops*/, 2, 0,  // Results = #3
/* 26718*/            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))
/* 26725*/          /*Scope*/ 27, /*->26753*/
/* 26726*/            OPC_CheckPatternPredicate, 21, // (PPCSubTarget->hasP9Altivec()) && (!PPCSubTarget->isLittleEndian())
/* 26728*/            OPC_EmitInteger, MVT::i64, 0, 
/* 26731*/            OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                          MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 26738*/            OPC_EmitNode1, TARGET_VAL(PPC::VEXTUWLX), 0,
                          MVT::i64, 2/*#Ops*/, 2, 0,  // Results = #3
/* 26746*/            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))
/* 26753*/          0, /*End of Scope*/
/* 26754*/        /*Scope*/ 92, /*->26847*/
/* 26755*/          OPC_CheckChild1Integer, 1, 
/* 26757*/          OPC_MoveParent,
/* 26758*/          OPC_CheckType, MVT::i64,
/* 26760*/          OPC_Scope, 27, /*->26789*/ // 2 children in Scope
/* 26762*/            OPC_CheckPatternPredicate, 20, // (PPCSubTarget->hasP9Altivec()) && (PPCSubTarget->isLittleEndian())
/* 26764*/            OPC_EmitInteger, MVT::i64, 4, 
/* 26767*/            OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                          MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 26774*/            OPC_EmitNode1, TARGET_VAL(PPC::VEXTUWRX), 0,
                          MVT::i64, 2/*#Ops*/, 2, 0,  // Results = #3
/* 26782*/            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))
/* 26789*/          /*Scope*/ 56, /*->26846*/
/* 26790*/            OPC_CheckPatternPredicate, 21, // (PPCSubTarget->hasP9Altivec()) && (!PPCSubTarget->isLittleEndian())
/* 26792*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::i64, 0/*#Ops*/,  // Results = #1
/* 26798*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 26801*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2i64, 2/*#Ops*/, 0, 2,  // Results = #3
/* 26809*/            OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 26812*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::f64, 2/*#Ops*/, 3, 4,  // Results = #5
/* 26820*/            OPC_EmitNode1, TARGET_VAL(PPC::MFVSRWZ), 0,
                          MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 26827*/            OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 26830*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::i64, 3/*#Ops*/, 1, 6, 7,  // Results = #8
/* 26839*/            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] }))
/* 26846*/          0, /*End of Scope*/
/* 26847*/        /*Scope*/ 63, /*->26911*/
/* 26848*/          OPC_CheckChild1Integer, 3, 
/* 26850*/          OPC_MoveParent,
/* 26851*/          OPC_CheckType, MVT::i64,
/* 26853*/          OPC_Scope, 27, /*->26882*/ // 2 children in Scope
/* 26855*/            OPC_CheckPatternPredicate, 20, // (PPCSubTarget->hasP9Altivec()) && (PPCSubTarget->isLittleEndian())
/* 26857*/            OPC_EmitInteger, MVT::i64, 12, 
/* 26860*/            OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                          MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 26867*/            OPC_EmitNode1, TARGET_VAL(PPC::VEXTUWRX), 0,
                          MVT::i64, 2/*#Ops*/, 2, 0,  // Results = #3
/* 26875*/            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))
/* 26882*/          /*Scope*/ 27, /*->26910*/
/* 26883*/            OPC_CheckPatternPredicate, 21, // (PPCSubTarget->hasP9Altivec()) && (!PPCSubTarget->isLittleEndian())
/* 26885*/            OPC_EmitInteger, MVT::i64, 12, 
/* 26888*/            OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                          MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 26895*/            OPC_EmitNode1, TARGET_VAL(PPC::VEXTUWLX), 0,
                          MVT::i64, 2/*#Ops*/, 2, 0,  // Results = #3
/* 26903*/            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))
/* 26910*/          0, /*End of Scope*/
/* 26911*/        /*Scope*/ 92, /*->27004*/
/* 26912*/          OPC_CheckChild1Integer, 2, 
/* 26914*/          OPC_MoveParent,
/* 26915*/          OPC_CheckType, MVT::i64,
/* 26917*/          OPC_Scope, 27, /*->26946*/ // 2 children in Scope
/* 26919*/            OPC_CheckPatternPredicate, 21, // (PPCSubTarget->hasP9Altivec()) && (!PPCSubTarget->isLittleEndian())
/* 26921*/            OPC_EmitInteger, MVT::i64, 8, 
/* 26924*/            OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                          MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 26931*/            OPC_EmitNode1, TARGET_VAL(PPC::VEXTUWLX), 0,
                          MVT::i64, 2/*#Ops*/, 2, 0,  // Results = #3
/* 26939*/            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))
/* 26946*/          /*Scope*/ 56, /*->27003*/
/* 26947*/            OPC_CheckPatternPredicate, 20, // (PPCSubTarget->hasP9Altivec()) && (PPCSubTarget->isLittleEndian())
/* 26949*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::i64, 0/*#Ops*/,  // Results = #1
/* 26955*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 26958*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2i64, 2/*#Ops*/, 0, 2,  // Results = #3
/* 26966*/            OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 26969*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::f64, 2/*#Ops*/, 3, 4,  // Results = #5
/* 26977*/            OPC_EmitNode1, TARGET_VAL(PPC::MFVSRWZ), 0,
                          MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 26984*/            OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 26987*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::i64, 3/*#Ops*/, 1, 6, 7,  // Results = #8
/* 26996*/            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] }))
/* 27003*/          0, /*End of Scope*/
/* 27004*/        /*Scope*/ 82, /*->27087*/
/* 27005*/          OPC_RecordChild1, // #1 = $Idx
/* 27006*/          OPC_CheckChild1Type, MVT::i64,
/* 27008*/          OPC_MoveParent,
/* 27009*/          OPC_CheckType, MVT::i64,
/* 27011*/          OPC_Scope, 36, /*->27049*/ // 2 children in Scope
/* 27013*/            OPC_CheckPatternPredicate, 20, // (PPCSubTarget->hasP9Altivec()) && (PPCSubTarget->isLittleEndian())
/* 27015*/            OPC_EmitInteger, MVT::i32, 2, 
/* 27018*/            OPC_EmitInteger, MVT::i32, 28, 
/* 27021*/            OPC_EmitInteger, MVT::i32, 29, 
/* 27024*/            OPC_EmitNode1, TARGET_VAL(PPC::RLWINM8), 0,
                          MVT::i64, 4/*#Ops*/, 1, 2, 3, 4,  // Results = #5
/* 27034*/            OPC_EmitNode1, TARGET_VAL(PPC::VEXTUWRX), 0,
                          MVT::i64, 2/*#Ops*/, 5, 0,  // Results = #6
/* 27042*/            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))
/* 27049*/          /*Scope*/ 36, /*->27086*/
/* 27050*/            OPC_CheckPatternPredicate, 21, // (PPCSubTarget->hasP9Altivec()) && (!PPCSubTarget->isLittleEndian())
/* 27052*/            OPC_EmitInteger, MVT::i32, 2, 
/* 27055*/            OPC_EmitInteger, MVT::i32, 28, 
/* 27058*/            OPC_EmitInteger, MVT::i32, 29, 
/* 27061*/            OPC_EmitNode1, TARGET_VAL(PPC::RLWINM8), 0,
                          MVT::i64, 4/*#Ops*/, 1, 2, 3, 4,  // Results = #5
/* 27071*/            OPC_EmitNode1, TARGET_VAL(PPC::VEXTUWLX), 0,
                          MVT::i64, 2/*#Ops*/, 5, 0,  // Results = #6
/* 27079*/            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))
/* 27086*/          0, /*End of Scope*/
/* 27087*/        0, /*End of Scope*/
/* 27088*/      /*SwitchOpcode*/ 78|128,60/*7758*/, TARGET_VAL(ISD::SETCC),// ->34850
/* 27092*/        OPC_RecordChild0, // #0 = $s1
/* 27093*/        OPC_Scope, 117|128,12/*1653*/, /*->28749*/ // 5 children in Scope
/* 27096*/          OPC_CheckChild0Type, MVT::i32,
/* 27098*/          OPC_RecordChild1, // #1 = $imm
/* 27099*/          OPC_Scope, 100|128,7/*996*/, /*->28098*/ // 6 children in Scope
/* 27102*/            OPC_MoveChild1,
/* 27103*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 27106*/            OPC_Scope, 7|128,1/*135*/, /*->27244*/ // 6 children in Scope
/* 27109*/              OPC_CheckPredicate, 12, // Predicate_immZExt16
/* 27111*/              OPC_MoveParent,
/* 27112*/              OPC_CheckChild2CondCode, ISD::SETUGE,
/* 27114*/              OPC_Scope, 62, /*->27178*/ // 2 children in Scope
/* 27116*/                OPC_MoveParent,
/* 27117*/                OPC_CheckType, MVT::i32,
/* 27119*/                OPC_EmitConvertToTarget, 1,
/* 27121*/                OPC_EmitNode1, TARGET_VAL(PPC::CMPLWI), 0,
                              MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 27129*/                OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 27132*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 27140*/                OPC_EmitInteger, MVT::i32, 0, 
/* 27143*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 6,  // Results = #7
/* 27150*/                OPC_EmitInteger, MVT::i32, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 27162*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 8,  // Results = #9
/* 27169*/                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] }))
/* 27178*/              /*Scope*/ 64, /*->27243*/
/* 27179*/                OPC_CheckType, MVT::i1,
/* 27181*/                OPC_MoveParent,
/* 27182*/                OPC_CheckType, MVT::i64,
/* 27184*/                OPC_EmitConvertToTarget, 1,
/* 27186*/                OPC_EmitNode1, TARGET_VAL(PPC::CMPLWI), 0,
                              MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 27194*/                OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 27197*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 27205*/                OPC_EmitInteger, MVT::i64, 0, 
/* 27208*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 6,  // Results = #7
/* 27215*/                OPC_EmitInteger, MVT::i64, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 27227*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 8,  // Results = #9
/* 27234*/                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] }))
/* 27243*/              0, /*End of Scope*/
/* 27244*/            /*Scope*/ 7|128,1/*135*/, /*->27381*/
/* 27246*/              OPC_CheckPredicate, 13, // Predicate_imm32SExt16
/* 27248*/              OPC_MoveParent,
/* 27249*/              OPC_CheckChild2CondCode, ISD::SETGE,
/* 27251*/              OPC_Scope, 62, /*->27315*/ // 2 children in Scope
/* 27253*/                OPC_MoveParent,
/* 27254*/                OPC_CheckType, MVT::i32,
/* 27256*/                OPC_EmitConvertToTarget, 1,
/* 27258*/                OPC_EmitNode1, TARGET_VAL(PPC::CMPWI), 0,
                              MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 27266*/                OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 27269*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 27277*/                OPC_EmitInteger, MVT::i32, 0, 
/* 27280*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 6,  // Results = #7
/* 27287*/                OPC_EmitInteger, MVT::i32, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 27299*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 8,  // Results = #9
/* 27306*/                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] }))
/* 27315*/              /*Scope*/ 64, /*->27380*/
/* 27316*/                OPC_CheckType, MVT::i1,
/* 27318*/                OPC_MoveParent,
/* 27319*/                OPC_CheckType, MVT::i64,
/* 27321*/                OPC_EmitConvertToTarget, 1,
/* 27323*/                OPC_EmitNode1, TARGET_VAL(PPC::CMPWI), 0,
                              MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 27331*/                OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 27334*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 27342*/                OPC_EmitInteger, MVT::i64, 0, 
/* 27345*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 6,  // Results = #7
/* 27352*/                OPC_EmitInteger, MVT::i64, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 27364*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 8,  // Results = #9
/* 27371*/                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] }))
/* 27380*/              0, /*End of Scope*/
/* 27381*/            /*Scope*/ 7|128,1/*135*/, /*->27518*/
/* 27383*/              OPC_CheckPredicate, 12, // Predicate_immZExt16
/* 27385*/              OPC_MoveParent,
/* 27386*/              OPC_CheckChild2CondCode, ISD::SETULE,
/* 27388*/              OPC_Scope, 62, /*->27452*/ // 2 children in Scope
/* 27390*/                OPC_MoveParent,
/* 27391*/                OPC_CheckType, MVT::i32,
/* 27393*/                OPC_EmitConvertToTarget, 1,
/* 27395*/                OPC_EmitNode1, TARGET_VAL(PPC::CMPLWI), 0,
                              MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 27403*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 27406*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 27414*/                OPC_EmitInteger, MVT::i32, 0, 
/* 27417*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 6,  // Results = #7
/* 27424*/                OPC_EmitInteger, MVT::i32, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 27436*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 8,  // Results = #9
/* 27443*/                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] }))
/* 27452*/              /*Scope*/ 64, /*->27517*/
/* 27453*/                OPC_CheckType, MVT::i1,
/* 27455*/                OPC_MoveParent,
/* 27456*/                OPC_CheckType, MVT::i64,
/* 27458*/                OPC_EmitConvertToTarget, 1,
/* 27460*/                OPC_EmitNode1, TARGET_VAL(PPC::CMPLWI), 0,
                              MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 27468*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 27471*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 27479*/                OPC_EmitInteger, MVT::i64, 0, 
/* 27482*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 6,  // Results = #7
/* 27489*/                OPC_EmitInteger, MVT::i64, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 27501*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 8,  // Results = #9
/* 27508*/                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] }))
/* 27517*/              0, /*End of Scope*/
/* 27518*/            /*Scope*/ 17|128,2/*273*/, /*->27793*/
/* 27520*/              OPC_CheckPredicate, 13, // Predicate_imm32SExt16
/* 27522*/              OPC_MoveParent,
/* 27523*/              OPC_Scope, 4|128,1/*132*/, /*->27658*/ // 2 children in Scope
/* 27526*/                OPC_CheckChild2CondCode, ISD::SETLE,
/* 27528*/                OPC_Scope, 62, /*->27592*/ // 2 children in Scope
/* 27530*/                  OPC_MoveParent,
/* 27531*/                  OPC_CheckType, MVT::i32,
/* 27533*/                  OPC_EmitConvertToTarget, 1,
/* 27535*/                  OPC_EmitNode1, TARGET_VAL(PPC::CMPWI), 0,
                                MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 27543*/                  OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 27546*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 27554*/                  OPC_EmitInteger, MVT::i32, 0, 
/* 27557*/                  OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                MVT::i32, 1/*#Ops*/, 6,  // Results = #7
/* 27564*/                  OPC_EmitInteger, MVT::i32, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 27576*/                  OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                MVT::i32, 1/*#Ops*/, 8,  // Results = #9
/* 27583*/                  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] }))
/* 27592*/                /*Scope*/ 64, /*->27657*/
/* 27593*/                  OPC_CheckType, MVT::i1,
/* 27595*/                  OPC_MoveParent,
/* 27596*/                  OPC_CheckType, MVT::i64,
/* 27598*/                  OPC_EmitConvertToTarget, 1,
/* 27600*/                  OPC_EmitNode1, TARGET_VAL(PPC::CMPWI), 0,
                                MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 27608*/                  OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 27611*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 27619*/                  OPC_EmitInteger, MVT::i64, 0, 
/* 27622*/                  OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                MVT::i64, 1/*#Ops*/, 6,  // Results = #7
/* 27629*/                  OPC_EmitInteger, MVT::i64, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 27641*/                  OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                MVT::i64, 1/*#Ops*/, 8,  // Results = #9
/* 27648*/                  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] }))
/* 27657*/                0, /*End of Scope*/
/* 27658*/              /*Scope*/ 4|128,1/*132*/, /*->27792*/
/* 27660*/                OPC_CheckChild2CondCode, ISD::SETNE,
/* 27662*/                OPC_Scope, 62, /*->27726*/ // 2 children in Scope
/* 27664*/                  OPC_MoveParent,
/* 27665*/                  OPC_CheckType, MVT::i32,
/* 27667*/                  OPC_EmitConvertToTarget, 1,
/* 27669*/                  OPC_EmitNode1, TARGET_VAL(PPC::CMPWI), 0,
                                MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 27677*/                  OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 27680*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 27688*/                  OPC_EmitInteger, MVT::i32, 0, 
/* 27691*/                  OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                MVT::i32, 1/*#Ops*/, 6,  // Results = #7
/* 27698*/                  OPC_EmitInteger, MVT::i32, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 27710*/                  OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                MVT::i32, 1/*#Ops*/, 8,  // Results = #9
/* 27717*/                  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] }))
/* 27726*/                /*Scope*/ 64, /*->27791*/
/* 27727*/                  OPC_CheckType, MVT::i1,
/* 27729*/                  OPC_MoveParent,
/* 27730*/                  OPC_CheckType, MVT::i64,
/* 27732*/                  OPC_EmitConvertToTarget, 1,
/* 27734*/                  OPC_EmitNode1, TARGET_VAL(PPC::CMPWI), 0,
                                MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 27742*/                  OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 27745*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 27753*/                  OPC_EmitInteger, MVT::i64, 0, 
/* 27756*/                  OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                MVT::i64, 1/*#Ops*/, 6,  // Results = #7
/* 27763*/                  OPC_EmitInteger, MVT::i64, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 27775*/                  OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                MVT::i64, 1/*#Ops*/, 8,  // Results = #9
/* 27782*/                  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] }))
/* 27791*/                0, /*End of Scope*/
/* 27792*/              0, /*End of Scope*/
/* 27793*/            /*Scope*/ 7|128,1/*135*/, /*->27930*/
/* 27795*/              OPC_CheckPredicate, 12, // Predicate_immZExt16
/* 27797*/              OPC_MoveParent,
/* 27798*/              OPC_CheckChild2CondCode, ISD::SETNE,
/* 27800*/              OPC_Scope, 62, /*->27864*/ // 2 children in Scope
/* 27802*/                OPC_MoveParent,
/* 27803*/                OPC_CheckType, MVT::i32,
/* 27805*/                OPC_EmitConvertToTarget, 1,
/* 27807*/                OPC_EmitNode1, TARGET_VAL(PPC::CMPLWI), 0,
                              MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 27815*/                OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 27818*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 27826*/                OPC_EmitInteger, MVT::i32, 0, 
/* 27829*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 6,  // Results = #7
/* 27836*/                OPC_EmitInteger, MVT::i32, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 27848*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 8,  // Results = #9
/* 27855*/                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] }))
/* 27864*/              /*Scope*/ 64, /*->27929*/
/* 27865*/                OPC_CheckType, MVT::i1,
/* 27867*/                OPC_MoveParent,
/* 27868*/                OPC_CheckType, MVT::i64,
/* 27870*/                OPC_EmitConvertToTarget, 1,
/* 27872*/                OPC_EmitNode1, TARGET_VAL(PPC::CMPLWI), 0,
                              MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 27880*/                OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 27883*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 27891*/                OPC_EmitInteger, MVT::i64, 0, 
/* 27894*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 6,  // Results = #7
/* 27901*/                OPC_EmitInteger, MVT::i64, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 27913*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 8,  // Results = #9
/* 27920*/                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] }))
/* 27929*/              0, /*End of Scope*/
/* 27930*/            /*Scope*/ 37|128,1/*165*/, /*->28097*/
/* 27932*/              OPC_MoveParent,
/* 27933*/              OPC_CheckChild2CondCode, ISD::SETNE,
/* 27935*/              OPC_Scope, 78, /*->28015*/ // 2 children in Scope
/* 27937*/                OPC_MoveParent,
/* 27938*/                OPC_CheckType, MVT::i32,
/* 27940*/                OPC_EmitConvertToTarget, 1,
/* 27942*/                OPC_EmitNodeXForm, 0, 2, // HI16
/* 27945*/                OPC_EmitNode1, TARGET_VAL(PPC::XORIS), 0,
                              MVT::i32, 2/*#Ops*/, 0, 3,  // Results = #4
/* 27953*/                OPC_EmitConvertToTarget, 1,
/* 27955*/                OPC_EmitNodeXForm, 1, 5, // LO16
/* 27958*/                OPC_EmitNode1, TARGET_VAL(PPC::CMPLWI), 0,
                              MVT::i32, 2/*#Ops*/, 4, 6,  // Results = #7
/* 27966*/                OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 27969*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 7, 8,  // Results = #9
/* 27977*/                OPC_EmitInteger, MVT::i32, 0, 
/* 27980*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 10,  // Results = #11
/* 27987*/                OPC_EmitInteger, MVT::i32, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 27999*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 12,  // Results = #13
/* 28006*/                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] }))
/* 28015*/              /*Scope*/ 80, /*->28096*/
/* 28016*/                OPC_CheckType, MVT::i1,
/* 28018*/                OPC_MoveParent,
/* 28019*/                OPC_CheckType, MVT::i64,
/* 28021*/                OPC_EmitConvertToTarget, 1,
/* 28023*/                OPC_EmitNodeXForm, 0, 2, // HI16
/* 28026*/                OPC_EmitNode1, TARGET_VAL(PPC::XORIS), 0,
                              MVT::i32, 2/*#Ops*/, 0, 3,  // Results = #4
/* 28034*/                OPC_EmitConvertToTarget, 1,
/* 28036*/                OPC_EmitNodeXForm, 1, 5, // LO16
/* 28039*/                OPC_EmitNode1, TARGET_VAL(PPC::CMPLWI), 0,
                              MVT::i32, 2/*#Ops*/, 4, 6,  // Results = #7
/* 28047*/                OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 28050*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 7, 8,  // Results = #9
/* 28058*/                OPC_EmitInteger, MVT::i64, 0, 
/* 28061*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 10,  // Results = #11
/* 28068*/                OPC_EmitInteger, MVT::i64, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 28080*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 12,  // Results = #13
/* 28087*/                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] }))
/* 28096*/              0, /*End of Scope*/
/* 28097*/            0, /*End of Scope*/
/* 28098*/          /*Scope*/ 0|128,1/*128*/, /*->28228*/
/* 28100*/            OPC_CheckChild2CondCode, ISD::SETUGE,
/* 28102*/            OPC_Scope, 60, /*->28164*/ // 2 children in Scope
/* 28104*/              OPC_MoveParent,
/* 28105*/              OPC_CheckType, MVT::i32,
/* 28107*/              OPC_EmitNode1, TARGET_VAL(PPC::CMPLW), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 28115*/              OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 28118*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 28126*/              OPC_EmitInteger, MVT::i32, 0, 
/* 28129*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 28136*/              OPC_EmitInteger, MVT::i32, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 28148*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 28155*/              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] }))
/* 28164*/            /*Scope*/ 62, /*->28227*/
/* 28165*/              OPC_CheckType, MVT::i1,
/* 28167*/              OPC_MoveParent,
/* 28168*/              OPC_CheckType, MVT::i64,
/* 28170*/              OPC_EmitNode1, TARGET_VAL(PPC::CMPLW), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 28178*/              OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 28181*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 28189*/              OPC_EmitInteger, MVT::i64, 0, 
/* 28192*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 28199*/              OPC_EmitInteger, MVT::i64, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 28211*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 28218*/              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] }))
/* 28227*/            0, /*End of Scope*/
/* 28228*/          /*Scope*/ 0|128,1/*128*/, /*->28358*/
/* 28230*/            OPC_CheckChild2CondCode, ISD::SETGE,
/* 28232*/            OPC_Scope, 60, /*->28294*/ // 2 children in Scope
/* 28234*/              OPC_MoveParent,
/* 28235*/              OPC_CheckType, MVT::i32,
/* 28237*/              OPC_EmitNode1, TARGET_VAL(PPC::CMPW), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 28245*/              OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 28248*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 28256*/              OPC_EmitInteger, MVT::i32, 0, 
/* 28259*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 28266*/              OPC_EmitInteger, MVT::i32, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 28278*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 28285*/              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] }))
/* 28294*/            /*Scope*/ 62, /*->28357*/
/* 28295*/              OPC_CheckType, MVT::i1,
/* 28297*/              OPC_MoveParent,
/* 28298*/              OPC_CheckType, MVT::i64,
/* 28300*/              OPC_EmitNode1, TARGET_VAL(PPC::CMPW), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 28308*/              OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 28311*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 28319*/              OPC_EmitInteger, MVT::i64, 0, 
/* 28322*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 28329*/              OPC_EmitInteger, MVT::i64, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 28341*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 28348*/              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] }))
/* 28357*/            0, /*End of Scope*/
/* 28358*/          /*Scope*/ 0|128,1/*128*/, /*->28488*/
/* 28360*/            OPC_CheckChild2CondCode, ISD::SETULE,
/* 28362*/            OPC_Scope, 60, /*->28424*/ // 2 children in Scope
/* 28364*/              OPC_MoveParent,
/* 28365*/              OPC_CheckType, MVT::i32,
/* 28367*/              OPC_EmitNode1, TARGET_VAL(PPC::CMPLW), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 28375*/              OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 28378*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 28386*/              OPC_EmitInteger, MVT::i32, 0, 
/* 28389*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 28396*/              OPC_EmitInteger, MVT::i32, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 28408*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 28415*/              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] }))
/* 28424*/            /*Scope*/ 62, /*->28487*/
/* 28425*/              OPC_CheckType, MVT::i1,
/* 28427*/              OPC_MoveParent,
/* 28428*/              OPC_CheckType, MVT::i64,
/* 28430*/              OPC_EmitNode1, TARGET_VAL(PPC::CMPLW), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 28438*/              OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 28441*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 28449*/              OPC_EmitInteger, MVT::i64, 0, 
/* 28452*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 28459*/              OPC_EmitInteger, MVT::i64, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 28471*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 28478*/              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] }))
/* 28487*/            0, /*End of Scope*/
/* 28488*/          /*Scope*/ 0|128,1/*128*/, /*->28618*/
/* 28490*/            OPC_CheckChild2CondCode, ISD::SETLE,
/* 28492*/            OPC_Scope, 60, /*->28554*/ // 2 children in Scope
/* 28494*/              OPC_MoveParent,
/* 28495*/              OPC_CheckType, MVT::i32,
/* 28497*/              OPC_EmitNode1, TARGET_VAL(PPC::CMPW), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 28505*/              OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 28508*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 28516*/              OPC_EmitInteger, MVT::i32, 0, 
/* 28519*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 28526*/              OPC_EmitInteger, MVT::i32, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 28538*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 28545*/              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] }))
/* 28554*/            /*Scope*/ 62, /*->28617*/
/* 28555*/              OPC_CheckType, MVT::i1,
/* 28557*/              OPC_MoveParent,
/* 28558*/              OPC_CheckType, MVT::i64,
/* 28560*/              OPC_EmitNode1, TARGET_VAL(PPC::CMPW), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 28568*/              OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 28571*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 28579*/              OPC_EmitInteger, MVT::i64, 0, 
/* 28582*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 28589*/              OPC_EmitInteger, MVT::i64, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 28601*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 28608*/              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] }))
/* 28617*/            0, /*End of Scope*/
/* 28618*/          /*Scope*/ 0|128,1/*128*/, /*->28748*/
/* 28620*/            OPC_CheckChild2CondCode, ISD::SETNE,
/* 28622*/            OPC_Scope, 60, /*->28684*/ // 2 children in Scope
/* 28624*/              OPC_MoveParent,
/* 28625*/              OPC_CheckType, MVT::i32,
/* 28627*/              OPC_EmitNode1, TARGET_VAL(PPC::CMPW), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 28635*/              OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 28638*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 28646*/              OPC_EmitInteger, MVT::i32, 0, 
/* 28649*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 28656*/              OPC_EmitInteger, MVT::i32, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 28668*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 28675*/              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] }))
/* 28684*/            /*Scope*/ 62, /*->28747*/
/* 28685*/              OPC_CheckType, MVT::i1,
/* 28687*/              OPC_MoveParent,
/* 28688*/              OPC_CheckType, MVT::i64,
/* 28690*/              OPC_EmitNode1, TARGET_VAL(PPC::CMPW), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 28698*/              OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 28701*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 28709*/              OPC_EmitInteger, MVT::i64, 0, 
/* 28712*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 28719*/              OPC_EmitInteger, MVT::i64, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 28731*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 28738*/              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] }))
/* 28747*/            0, /*End of Scope*/
/* 28748*/          0, /*End of Scope*/
/* 28749*/        /*Scope*/ 119|128,12/*1655*/, /*->30406*/
/* 28751*/          OPC_CheckChild0Type, MVT::i64,
/* 28753*/          OPC_RecordChild1, // #1 = $imm
/* 28754*/          OPC_Scope, 102|128,7/*998*/, /*->29755*/ // 6 children in Scope
/* 28757*/            OPC_MoveChild1,
/* 28758*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 28761*/            OPC_Scope, 7|128,1/*135*/, /*->28899*/ // 6 children in Scope
/* 28764*/              OPC_CheckPredicate, 12, // Predicate_immZExt16
/* 28766*/              OPC_MoveParent,
/* 28767*/              OPC_CheckChild2CondCode, ISD::SETUGE,
/* 28769*/              OPC_Scope, 62, /*->28833*/ // 2 children in Scope
/* 28771*/                OPC_MoveParent,
/* 28772*/                OPC_CheckType, MVT::i32,
/* 28774*/                OPC_EmitConvertToTarget, 1,
/* 28776*/                OPC_EmitNode1, TARGET_VAL(PPC::CMPLDI), 0,
                              MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 28784*/                OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 28787*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 28795*/                OPC_EmitInteger, MVT::i32, 0, 
/* 28798*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 6,  // Results = #7
/* 28805*/                OPC_EmitInteger, MVT::i32, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 28817*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 8,  // Results = #9
/* 28824*/                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] }))
/* 28833*/              /*Scope*/ 64, /*->28898*/
/* 28834*/                OPC_CheckType, MVT::i1,
/* 28836*/                OPC_MoveParent,
/* 28837*/                OPC_CheckType, MVT::i64,
/* 28839*/                OPC_EmitConvertToTarget, 1,
/* 28841*/                OPC_EmitNode1, TARGET_VAL(PPC::CMPLDI), 0,
                              MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 28849*/                OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 28852*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 28860*/                OPC_EmitInteger, MVT::i64, 0, 
/* 28863*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 6,  // Results = #7
/* 28870*/                OPC_EmitInteger, MVT::i64, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 28882*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 8,  // Results = #9
/* 28889*/                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] }))
/* 28898*/              0, /*End of Scope*/
/* 28899*/            /*Scope*/ 7|128,1/*135*/, /*->29036*/
/* 28901*/              OPC_CheckPredicate, 14, // Predicate_imm64SExt16
/* 28903*/              OPC_MoveParent,
/* 28904*/              OPC_CheckChild2CondCode, ISD::SETGE,
/* 28906*/              OPC_Scope, 62, /*->28970*/ // 2 children in Scope
/* 28908*/                OPC_MoveParent,
/* 28909*/                OPC_CheckType, MVT::i32,
/* 28911*/                OPC_EmitConvertToTarget, 1,
/* 28913*/                OPC_EmitNode1, TARGET_VAL(PPC::CMPDI), 0,
                              MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 28921*/                OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 28924*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 28932*/                OPC_EmitInteger, MVT::i32, 0, 
/* 28935*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 6,  // Results = #7
/* 28942*/                OPC_EmitInteger, MVT::i32, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 28954*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 8,  // Results = #9
/* 28961*/                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] }))
/* 28970*/              /*Scope*/ 64, /*->29035*/
/* 28971*/                OPC_CheckType, MVT::i1,
/* 28973*/                OPC_MoveParent,
/* 28974*/                OPC_CheckType, MVT::i64,
/* 28976*/                OPC_EmitConvertToTarget, 1,
/* 28978*/                OPC_EmitNode1, TARGET_VAL(PPC::CMPDI), 0,
                              MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 28986*/                OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 28989*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 28997*/                OPC_EmitInteger, MVT::i64, 0, 
/* 29000*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 6,  // Results = #7
/* 29007*/                OPC_EmitInteger, MVT::i64, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 29019*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 8,  // Results = #9
/* 29026*/                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] }))
/* 29035*/              0, /*End of Scope*/
/* 29036*/            /*Scope*/ 7|128,1/*135*/, /*->29173*/
/* 29038*/              OPC_CheckPredicate, 12, // Predicate_immZExt16
/* 29040*/              OPC_MoveParent,
/* 29041*/              OPC_CheckChild2CondCode, ISD::SETULE,
/* 29043*/              OPC_Scope, 62, /*->29107*/ // 2 children in Scope
/* 29045*/                OPC_MoveParent,
/* 29046*/                OPC_CheckType, MVT::i32,
/* 29048*/                OPC_EmitConvertToTarget, 1,
/* 29050*/                OPC_EmitNode1, TARGET_VAL(PPC::CMPLDI), 0,
                              MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 29058*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 29061*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 29069*/                OPC_EmitInteger, MVT::i32, 0, 
/* 29072*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 6,  // Results = #7
/* 29079*/                OPC_EmitInteger, MVT::i32, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 29091*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 8,  // Results = #9
/* 29098*/                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] }))
/* 29107*/              /*Scope*/ 64, /*->29172*/
/* 29108*/                OPC_CheckType, MVT::i1,
/* 29110*/                OPC_MoveParent,
/* 29111*/                OPC_CheckType, MVT::i64,
/* 29113*/                OPC_EmitConvertToTarget, 1,
/* 29115*/                OPC_EmitNode1, TARGET_VAL(PPC::CMPLDI), 0,
                              MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 29123*/                OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 29126*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 29134*/                OPC_EmitInteger, MVT::i64, 0, 
/* 29137*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 6,  // Results = #7
/* 29144*/                OPC_EmitInteger, MVT::i64, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 29156*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 8,  // Results = #9
/* 29163*/                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] }))
/* 29172*/              0, /*End of Scope*/
/* 29173*/            /*Scope*/ 17|128,2/*273*/, /*->29448*/
/* 29175*/              OPC_CheckPredicate, 14, // Predicate_imm64SExt16
/* 29177*/              OPC_MoveParent,
/* 29178*/              OPC_Scope, 4|128,1/*132*/, /*->29313*/ // 2 children in Scope
/* 29181*/                OPC_CheckChild2CondCode, ISD::SETLE,
/* 29183*/                OPC_Scope, 62, /*->29247*/ // 2 children in Scope
/* 29185*/                  OPC_MoveParent,
/* 29186*/                  OPC_CheckType, MVT::i32,
/* 29188*/                  OPC_EmitConvertToTarget, 1,
/* 29190*/                  OPC_EmitNode1, TARGET_VAL(PPC::CMPDI), 0,
                                MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 29198*/                  OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 29201*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 29209*/                  OPC_EmitInteger, MVT::i32, 0, 
/* 29212*/                  OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                MVT::i32, 1/*#Ops*/, 6,  // Results = #7
/* 29219*/                  OPC_EmitInteger, MVT::i32, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 29231*/                  OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                MVT::i32, 1/*#Ops*/, 8,  // Results = #9
/* 29238*/                  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] }))
/* 29247*/                /*Scope*/ 64, /*->29312*/
/* 29248*/                  OPC_CheckType, MVT::i1,
/* 29250*/                  OPC_MoveParent,
/* 29251*/                  OPC_CheckType, MVT::i64,
/* 29253*/                  OPC_EmitConvertToTarget, 1,
/* 29255*/                  OPC_EmitNode1, TARGET_VAL(PPC::CMPDI), 0,
                                MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 29263*/                  OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 29266*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 29274*/                  OPC_EmitInteger, MVT::i64, 0, 
/* 29277*/                  OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                MVT::i64, 1/*#Ops*/, 6,  // Results = #7
/* 29284*/                  OPC_EmitInteger, MVT::i64, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 29296*/                  OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                MVT::i64, 1/*#Ops*/, 8,  // Results = #9
/* 29303*/                  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] }))
/* 29312*/                0, /*End of Scope*/
/* 29313*/              /*Scope*/ 4|128,1/*132*/, /*->29447*/
/* 29315*/                OPC_CheckChild2CondCode, ISD::SETNE,
/* 29317*/                OPC_Scope, 62, /*->29381*/ // 2 children in Scope
/* 29319*/                  OPC_MoveParent,
/* 29320*/                  OPC_CheckType, MVT::i32,
/* 29322*/                  OPC_EmitConvertToTarget, 1,
/* 29324*/                  OPC_EmitNode1, TARGET_VAL(PPC::CMPDI), 0,
                                MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 29332*/                  OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 29335*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 29343*/                  OPC_EmitInteger, MVT::i32, 0, 
/* 29346*/                  OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                MVT::i32, 1/*#Ops*/, 6,  // Results = #7
/* 29353*/                  OPC_EmitInteger, MVT::i32, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 29365*/                  OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                                MVT::i32, 1/*#Ops*/, 8,  // Results = #9
/* 29372*/                  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] }))
/* 29381*/                /*Scope*/ 64, /*->29446*/
/* 29382*/                  OPC_CheckType, MVT::i1,
/* 29384*/                  OPC_MoveParent,
/* 29385*/                  OPC_CheckType, MVT::i64,
/* 29387*/                  OPC_EmitConvertToTarget, 1,
/* 29389*/                  OPC_EmitNode1, TARGET_VAL(PPC::CMPDI), 0,
                                MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 29397*/                  OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 29400*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                                MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 29408*/                  OPC_EmitInteger, MVT::i64, 0, 
/* 29411*/                  OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                MVT::i64, 1/*#Ops*/, 6,  // Results = #7
/* 29418*/                  OPC_EmitInteger, MVT::i64, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 29430*/                  OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                                MVT::i64, 1/*#Ops*/, 8,  // Results = #9
/* 29437*/                  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] }))
/* 29446*/                0, /*End of Scope*/
/* 29447*/              0, /*End of Scope*/
/* 29448*/            /*Scope*/ 7|128,1/*135*/, /*->29585*/
/* 29450*/              OPC_CheckPredicate, 12, // Predicate_immZExt16
/* 29452*/              OPC_MoveParent,
/* 29453*/              OPC_CheckChild2CondCode, ISD::SETNE,
/* 29455*/              OPC_Scope, 62, /*->29519*/ // 2 children in Scope
/* 29457*/                OPC_MoveParent,
/* 29458*/                OPC_CheckType, MVT::i32,
/* 29460*/                OPC_EmitConvertToTarget, 1,
/* 29462*/                OPC_EmitNode1, TARGET_VAL(PPC::CMPLDI), 0,
                              MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 29470*/                OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 29473*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 29481*/                OPC_EmitInteger, MVT::i32, 0, 
/* 29484*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 6,  // Results = #7
/* 29491*/                OPC_EmitInteger, MVT::i32, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 29503*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 8,  // Results = #9
/* 29510*/                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] }))
/* 29519*/              /*Scope*/ 64, /*->29584*/
/* 29520*/                OPC_CheckType, MVT::i1,
/* 29522*/                OPC_MoveParent,
/* 29523*/                OPC_CheckType, MVT::i64,
/* 29525*/                OPC_EmitConvertToTarget, 1,
/* 29527*/                OPC_EmitNode1, TARGET_VAL(PPC::CMPLDI), 0,
                              MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 29535*/                OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 29538*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 29546*/                OPC_EmitInteger, MVT::i64, 0, 
/* 29549*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 6,  // Results = #7
/* 29556*/                OPC_EmitInteger, MVT::i64, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 29568*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 8,  // Results = #9
/* 29575*/                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] }))
/* 29584*/              0, /*End of Scope*/
/* 29585*/            /*Scope*/ 39|128,1/*167*/, /*->29754*/
/* 29587*/              OPC_CheckPredicate, 15, // Predicate_imm64ZExt32
/* 29589*/              OPC_MoveParent,
/* 29590*/              OPC_CheckChild2CondCode, ISD::SETNE,
/* 29592*/              OPC_Scope, 78, /*->29672*/ // 2 children in Scope
/* 29594*/                OPC_MoveParent,
/* 29595*/                OPC_CheckType, MVT::i32,
/* 29597*/                OPC_EmitConvertToTarget, 1,
/* 29599*/                OPC_EmitNodeXForm, 0, 2, // HI16
/* 29602*/                OPC_EmitNode1, TARGET_VAL(PPC::XORIS8), 0,
                              MVT::i64, 2/*#Ops*/, 0, 3,  // Results = #4
/* 29610*/                OPC_EmitConvertToTarget, 1,
/* 29612*/                OPC_EmitNodeXForm, 1, 5, // LO16
/* 29615*/                OPC_EmitNode1, TARGET_VAL(PPC::CMPLDI), 0,
                              MVT::i32, 2/*#Ops*/, 4, 6,  // Results = #7
/* 29623*/                OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 29626*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 7, 8,  // Results = #9
/* 29634*/                OPC_EmitInteger, MVT::i32, 0, 
/* 29637*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 10,  // Results = #11
/* 29644*/                OPC_EmitInteger, MVT::i32, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 29656*/                OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                              MVT::i32, 1/*#Ops*/, 12,  // Results = #13
/* 29663*/                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] }))
/* 29672*/              /*Scope*/ 80, /*->29753*/
/* 29673*/                OPC_CheckType, MVT::i1,
/* 29675*/                OPC_MoveParent,
/* 29676*/                OPC_CheckType, MVT::i64,
/* 29678*/                OPC_EmitConvertToTarget, 1,
/* 29680*/                OPC_EmitNodeXForm, 0, 2, // HI16
/* 29683*/                OPC_EmitNode1, TARGET_VAL(PPC::XORIS8), 0,
                              MVT::i64, 2/*#Ops*/, 0, 3,  // Results = #4
/* 29691*/                OPC_EmitConvertToTarget, 1,
/* 29693*/                OPC_EmitNodeXForm, 1, 5, // LO16
/* 29696*/                OPC_EmitNode1, TARGET_VAL(PPC::CMPLDI), 0,
                              MVT::i32, 2/*#Ops*/, 4, 6,  // Results = #7
/* 29704*/                OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 29707*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                              MVT::i1, 2/*#Ops*/, 7, 8,  // Results = #9
/* 29715*/                OPC_EmitInteger, MVT::i64, 0, 
/* 29718*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 10,  // Results = #11
/* 29725*/                OPC_EmitInteger, MVT::i64, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 29737*/                OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                              MVT::i64, 1/*#Ops*/, 12,  // Results = #13
/* 29744*/                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] }))
/* 29753*/              0, /*End of Scope*/
/* 29754*/            0, /*End of Scope*/
/* 29755*/          /*Scope*/ 0|128,1/*128*/, /*->29885*/
/* 29757*/            OPC_CheckChild2CondCode, ISD::SETUGE,
/* 29759*/            OPC_Scope, 60, /*->29821*/ // 2 children in Scope
/* 29761*/              OPC_MoveParent,
/* 29762*/              OPC_CheckType, MVT::i32,
/* 29764*/              OPC_EmitNode1, TARGET_VAL(PPC::CMPLD), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 29772*/              OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 29775*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 29783*/              OPC_EmitInteger, MVT::i32, 0, 
/* 29786*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 29793*/              OPC_EmitInteger, MVT::i32, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 29805*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 29812*/              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] }))
/* 29821*/            /*Scope*/ 62, /*->29884*/
/* 29822*/              OPC_CheckType, MVT::i1,
/* 29824*/              OPC_MoveParent,
/* 29825*/              OPC_CheckType, MVT::i64,
/* 29827*/              OPC_EmitNode1, TARGET_VAL(PPC::CMPLD), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 29835*/              OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 29838*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 29846*/              OPC_EmitInteger, MVT::i64, 0, 
/* 29849*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 29856*/              OPC_EmitInteger, MVT::i64, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 29868*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 29875*/              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] }))
/* 29884*/            0, /*End of Scope*/
/* 29885*/          /*Scope*/ 0|128,1/*128*/, /*->30015*/
/* 29887*/            OPC_CheckChild2CondCode, ISD::SETGE,
/* 29889*/            OPC_Scope, 60, /*->29951*/ // 2 children in Scope
/* 29891*/              OPC_MoveParent,
/* 29892*/              OPC_CheckType, MVT::i32,
/* 29894*/              OPC_EmitNode1, TARGET_VAL(PPC::CMPD), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 29902*/              OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 29905*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 29913*/              OPC_EmitInteger, MVT::i32, 0, 
/* 29916*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 29923*/              OPC_EmitInteger, MVT::i32, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 29935*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 29942*/              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] }))
/* 29951*/            /*Scope*/ 62, /*->30014*/
/* 29952*/              OPC_CheckType, MVT::i1,
/* 29954*/              OPC_MoveParent,
/* 29955*/              OPC_CheckType, MVT::i64,
/* 29957*/              OPC_EmitNode1, TARGET_VAL(PPC::CMPD), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 29965*/              OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 29968*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 29976*/              OPC_EmitInteger, MVT::i64, 0, 
/* 29979*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 29986*/              OPC_EmitInteger, MVT::i64, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 29998*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 30005*/              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] }))
/* 30014*/            0, /*End of Scope*/
/* 30015*/          /*Scope*/ 0|128,1/*128*/, /*->30145*/
/* 30017*/            OPC_CheckChild2CondCode, ISD::SETULE,
/* 30019*/            OPC_Scope, 60, /*->30081*/ // 2 children in Scope
/* 30021*/              OPC_MoveParent,
/* 30022*/              OPC_CheckType, MVT::i32,
/* 30024*/              OPC_EmitNode1, TARGET_VAL(PPC::CMPLD), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 30032*/              OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 30035*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 30043*/              OPC_EmitInteger, MVT::i32, 0, 
/* 30046*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 30053*/              OPC_EmitInteger, MVT::i32, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 30065*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 30072*/              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] }))
/* 30081*/            /*Scope*/ 62, /*->30144*/
/* 30082*/              OPC_CheckType, MVT::i1,
/* 30084*/              OPC_MoveParent,
/* 30085*/              OPC_CheckType, MVT::i64,
/* 30087*/              OPC_EmitNode1, TARGET_VAL(PPC::CMPLD), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 30095*/              OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 30098*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 30106*/              OPC_EmitInteger, MVT::i64, 0, 
/* 30109*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 30116*/              OPC_EmitInteger, MVT::i64, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 30128*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 30135*/              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] }))
/* 30144*/            0, /*End of Scope*/
/* 30145*/          /*Scope*/ 0|128,1/*128*/, /*->30275*/
/* 30147*/            OPC_CheckChild2CondCode, ISD::SETLE,
/* 30149*/            OPC_Scope, 60, /*->30211*/ // 2 children in Scope
/* 30151*/              OPC_MoveParent,
/* 30152*/              OPC_CheckType, MVT::i32,
/* 30154*/              OPC_EmitNode1, TARGET_VAL(PPC::CMPD), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 30162*/              OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 30165*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 30173*/              OPC_EmitInteger, MVT::i32, 0, 
/* 30176*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 30183*/              OPC_EmitInteger, MVT::i32, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 30195*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 30202*/              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] }))
/* 30211*/            /*Scope*/ 62, /*->30274*/
/* 30212*/              OPC_CheckType, MVT::i1,
/* 30214*/              OPC_MoveParent,
/* 30215*/              OPC_CheckType, MVT::i64,
/* 30217*/              OPC_EmitNode1, TARGET_VAL(PPC::CMPD), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 30225*/              OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 30228*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 30236*/              OPC_EmitInteger, MVT::i64, 0, 
/* 30239*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 30246*/              OPC_EmitInteger, MVT::i64, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 30258*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 30265*/              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] }))
/* 30274*/            0, /*End of Scope*/
/* 30275*/          /*Scope*/ 0|128,1/*128*/, /*->30405*/
/* 30277*/            OPC_CheckChild2CondCode, ISD::SETNE,
/* 30279*/            OPC_Scope, 60, /*->30341*/ // 2 children in Scope
/* 30281*/              OPC_MoveParent,
/* 30282*/              OPC_CheckType, MVT::i32,
/* 30284*/              OPC_EmitNode1, TARGET_VAL(PPC::CMPD), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 30292*/              OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 30295*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 30303*/              OPC_EmitInteger, MVT::i32, 0, 
/* 30306*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 30313*/              OPC_EmitInteger, MVT::i32, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 30325*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 30332*/              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] }))
/* 30341*/            /*Scope*/ 62, /*->30404*/
/* 30342*/              OPC_CheckType, MVT::i1,
/* 30344*/              OPC_MoveParent,
/* 30345*/              OPC_CheckType, MVT::i64,
/* 30347*/              OPC_EmitNode1, TARGET_VAL(PPC::CMPD), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 30355*/              OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 30358*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 30366*/              OPC_EmitInteger, MVT::i64, 0, 
/* 30369*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 30376*/              OPC_EmitInteger, MVT::i64, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 30388*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 30395*/              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] }))
/* 30404*/            0, /*End of Scope*/
/* 30405*/          0, /*End of Scope*/
/* 30406*/        /*Scope*/ 83|128,13/*1747*/, /*->32155*/
/* 30408*/          OPC_CheckChild0Type, MVT::f32,
/* 30410*/          OPC_RecordChild1, // #1 = $s2
/* 30411*/          OPC_Scope, 4|128,1/*132*/, /*->30546*/ // 13 children in Scope
/* 30414*/            OPC_CheckChild2CondCode, ISD::SETUGE,
/* 30416*/            OPC_Scope, 62, /*->30480*/ // 2 children in Scope
/* 30418*/              OPC_MoveParent,
/* 30419*/              OPC_CheckType, MVT::i32,
/* 30421*/              OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 30423*/              OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 30431*/              OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 30434*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 30442*/              OPC_EmitInteger, MVT::i32, 0, 
/* 30445*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 30452*/              OPC_EmitInteger, MVT::i32, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 30464*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 30471*/              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] }))
/* 30480*/            /*Scope*/ 64, /*->30545*/
/* 30481*/              OPC_CheckType, MVT::i1,
/* 30483*/              OPC_MoveParent,
/* 30484*/              OPC_CheckType, MVT::i64,
/* 30486*/              OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 30488*/              OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 30496*/              OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 30499*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 30507*/              OPC_EmitInteger, MVT::i64, 0, 
/* 30510*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 30517*/              OPC_EmitInteger, MVT::i64, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 30529*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 30536*/              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] }))
/* 30545*/            0, /*End of Scope*/
/* 30546*/          /*Scope*/ 4|128,1/*132*/, /*->30680*/
/* 30548*/            OPC_CheckChild2CondCode, ISD::SETGE,
/* 30550*/            OPC_Scope, 62, /*->30614*/ // 2 children in Scope
/* 30552*/              OPC_MoveParent,
/* 30553*/              OPC_CheckType, MVT::i32,
/* 30555*/              OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 30557*/              OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 30565*/              OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 30568*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 30576*/              OPC_EmitInteger, MVT::i32, 0, 
/* 30579*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 30586*/              OPC_EmitInteger, MVT::i32, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 30598*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 30605*/              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] }))
/* 30614*/            /*Scope*/ 64, /*->30679*/
/* 30615*/              OPC_CheckType, MVT::i1,
/* 30617*/              OPC_MoveParent,
/* 30618*/              OPC_CheckType, MVT::i64,
/* 30620*/              OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 30622*/              OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 30630*/              OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 30633*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 30641*/              OPC_EmitInteger, MVT::i64, 0, 
/* 30644*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 30651*/              OPC_EmitInteger, MVT::i64, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 30663*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 30670*/              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] }))
/* 30679*/            0, /*End of Scope*/
/* 30680*/          /*Scope*/ 4|128,1/*132*/, /*->30814*/
/* 30682*/            OPC_CheckChild2CondCode, ISD::SETULE,
/* 30684*/            OPC_Scope, 62, /*->30748*/ // 2 children in Scope
/* 30686*/              OPC_MoveParent,
/* 30687*/              OPC_CheckType, MVT::i32,
/* 30689*/              OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 30691*/              OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 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] } 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] }))
/* 30748*/            /*Scope*/ 64, /*->30813*/
/* 30749*/              OPC_CheckType, MVT::i1,
/* 30751*/              OPC_MoveParent,
/* 30752*/              OPC_CheckType, MVT::i64,
/* 30754*/              OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 30756*/              OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 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] } 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] }))
/* 30813*/            0, /*End of Scope*/
/* 30814*/          /*Scope*/ 4|128,1/*132*/, /*->30948*/
/* 30816*/            OPC_CheckChild2CondCode, ISD::SETLE,
/* 30818*/            OPC_Scope, 62, /*->30882*/ // 2 children in Scope
/* 30820*/              OPC_MoveParent,
/* 30821*/              OPC_CheckType, MVT::i32,
/* 30823*/              OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 30825*/              OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 30833*/              OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 30836*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 30844*/              OPC_EmitInteger, MVT::i32, 0, 
/* 30847*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 30854*/              OPC_EmitInteger, MVT::i32, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 30866*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 30873*/              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] }))
/* 30882*/            /*Scope*/ 64, /*->30947*/
/* 30883*/              OPC_CheckType, MVT::i1,
/* 30885*/              OPC_MoveParent,
/* 30886*/              OPC_CheckType, MVT::i64,
/* 30888*/              OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 30890*/              OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 30898*/              OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 30901*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 30909*/              OPC_EmitInteger, MVT::i64, 0, 
/* 30912*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 30919*/              OPC_EmitInteger, MVT::i64, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 30931*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 30938*/              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] }))
/* 30947*/            0, /*End of Scope*/
/* 30948*/          /*Scope*/ 4|128,1/*132*/, /*->31082*/
/* 30950*/            OPC_CheckChild2CondCode, ISD::SETUNE,
/* 30952*/            OPC_Scope, 62, /*->31016*/ // 2 children in Scope
/* 30954*/              OPC_MoveParent,
/* 30955*/              OPC_CheckType, MVT::i32,
/* 30957*/              OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 30959*/              OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 30967*/              OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 30970*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 30978*/              OPC_EmitInteger, MVT::i32, 0, 
/* 30981*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 30988*/              OPC_EmitInteger, MVT::i32, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 31000*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 31007*/              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] }))
/* 31016*/            /*Scope*/ 64, /*->31081*/
/* 31017*/              OPC_CheckType, MVT::i1,
/* 31019*/              OPC_MoveParent,
/* 31020*/              OPC_CheckType, MVT::i64,
/* 31022*/              OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 31024*/              OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 31032*/              OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 31035*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 31043*/              OPC_EmitInteger, MVT::i64, 0, 
/* 31046*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 31053*/              OPC_EmitInteger, MVT::i64, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 31065*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 31072*/              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] }))
/* 31081*/            0, /*End of Scope*/
/* 31082*/          /*Scope*/ 4|128,1/*132*/, /*->31216*/
/* 31084*/            OPC_CheckChild2CondCode, ISD::SETNE,
/* 31086*/            OPC_Scope, 62, /*->31150*/ // 2 children in Scope
/* 31088*/              OPC_MoveParent,
/* 31089*/              OPC_CheckType, MVT::i32,
/* 31091*/              OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 31093*/              OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 31101*/              OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 31104*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 31112*/              OPC_EmitInteger, MVT::i32, 0, 
/* 31115*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 31122*/              OPC_EmitInteger, MVT::i32, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 31134*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 31141*/              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] }))
/* 31150*/            /*Scope*/ 64, /*->31215*/
/* 31151*/              OPC_CheckType, MVT::i1,
/* 31153*/              OPC_MoveParent,
/* 31154*/              OPC_CheckType, MVT::i64,
/* 31156*/              OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 31158*/              OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 31166*/              OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 31169*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 31177*/              OPC_EmitInteger, MVT::i64, 0, 
/* 31180*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 31187*/              OPC_EmitInteger, MVT::i64, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 31199*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 31206*/              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] }))
/* 31215*/            0, /*End of Scope*/
/* 31216*/          /*Scope*/ 4|128,1/*132*/, /*->31350*/
/* 31218*/            OPC_CheckChild2CondCode, ISD::SETO,
/* 31220*/            OPC_Scope, 62, /*->31284*/ // 2 children in Scope
/* 31222*/              OPC_MoveParent,
/* 31223*/              OPC_CheckType, MVT::i32,
/* 31225*/              OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 31227*/              OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 31235*/              OPC_EmitInteger, MVT::i32, PPC::sub_un,
/* 31238*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 31246*/              OPC_EmitInteger, MVT::i32, 0, 
/* 31249*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 31256*/              OPC_EmitInteger, MVT::i32, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 31268*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 31275*/              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] }))
/* 31284*/            /*Scope*/ 64, /*->31349*/
/* 31285*/              OPC_CheckType, MVT::i1,
/* 31287*/              OPC_MoveParent,
/* 31288*/              OPC_CheckType, MVT::i64,
/* 31290*/              OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 31292*/              OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 31300*/              OPC_EmitInteger, MVT::i32, PPC::sub_un,
/* 31303*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 31311*/              OPC_EmitInteger, MVT::i64, 0, 
/* 31314*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 31321*/              OPC_EmitInteger, MVT::i64, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 31333*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 31340*/              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] }))
/* 31349*/            0, /*End of Scope*/
/* 31350*/          /*Scope*/ 4|128,1/*132*/, /*->31484*/
/* 31352*/            OPC_CheckChild2CondCode, ISD::SETUGE,
/* 31354*/            OPC_Scope, 62, /*->31418*/ // 2 children in Scope
/* 31356*/              OPC_MoveParent,
/* 31357*/              OPC_CheckType, MVT::i32,
/* 31359*/              OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 31361*/              OPC_EmitNode1, TARGET_VAL(PPC::EFSCMPLT), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 31369*/              OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 31372*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 31380*/              OPC_EmitInteger, MVT::i32, 0, 
/* 31383*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 31390*/              OPC_EmitInteger, MVT::i32, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 31402*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 31409*/              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] }))
/* 31418*/            /*Scope*/ 64, /*->31483*/
/* 31419*/              OPC_CheckType, MVT::i1,
/* 31421*/              OPC_MoveParent,
/* 31422*/              OPC_CheckType, MVT::i64,
/* 31424*/              OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 31426*/              OPC_EmitNode1, TARGET_VAL(PPC::EFSCMPLT), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 31434*/              OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 31437*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 31445*/              OPC_EmitInteger, MVT::i64, 0, 
/* 31448*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 31455*/              OPC_EmitInteger, MVT::i64, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 31467*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 31474*/              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] }))
/* 31483*/            0, /*End of Scope*/
/* 31484*/          /*Scope*/ 4|128,1/*132*/, /*->31618*/
/* 31486*/            OPC_CheckChild2CondCode, ISD::SETGE,
/* 31488*/            OPC_Scope, 62, /*->31552*/ // 2 children in Scope
/* 31490*/              OPC_MoveParent,
/* 31491*/              OPC_CheckType, MVT::i32,
/* 31493*/              OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 31495*/              OPC_EmitNode1, TARGET_VAL(PPC::EFSCMPLT), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 31503*/              OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 31506*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 31514*/              OPC_EmitInteger, MVT::i32, 0, 
/* 31517*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 31524*/              OPC_EmitInteger, MVT::i32, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 31536*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 31543*/              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] }))
/* 31552*/            /*Scope*/ 64, /*->31617*/
/* 31553*/              OPC_CheckType, MVT::i1,
/* 31555*/              OPC_MoveParent,
/* 31556*/              OPC_CheckType, MVT::i64,
/* 31558*/              OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 31560*/              OPC_EmitNode1, TARGET_VAL(PPC::EFSCMPLT), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 31568*/              OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 31571*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 31579*/              OPC_EmitInteger, MVT::i64, 0, 
/* 31582*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 31589*/              OPC_EmitInteger, MVT::i64, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 31601*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 31608*/              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] }))
/* 31617*/            0, /*End of Scope*/
/* 31618*/          /*Scope*/ 4|128,1/*132*/, /*->31752*/
/* 31620*/            OPC_CheckChild2CondCode, ISD::SETULE,
/* 31622*/            OPC_Scope, 62, /*->31686*/ // 2 children in Scope
/* 31624*/              OPC_MoveParent,
/* 31625*/              OPC_CheckType, MVT::i32,
/* 31627*/              OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 31629*/              OPC_EmitNode1, TARGET_VAL(PPC::EFSCMPGT), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 31637*/              OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 31640*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 31648*/              OPC_EmitInteger, MVT::i32, 0, 
/* 31651*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 31658*/              OPC_EmitInteger, MVT::i32, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 31670*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 31677*/              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] }))
/* 31686*/            /*Scope*/ 64, /*->31751*/
/* 31687*/              OPC_CheckType, MVT::i1,
/* 31689*/              OPC_MoveParent,
/* 31690*/              OPC_CheckType, MVT::i64,
/* 31692*/              OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 31694*/              OPC_EmitNode1, TARGET_VAL(PPC::EFSCMPGT), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 31702*/              OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 31705*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 31713*/              OPC_EmitInteger, MVT::i64, 0, 
/* 31716*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 31723*/              OPC_EmitInteger, MVT::i64, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 31735*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 31742*/              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] }))
/* 31751*/            0, /*End of Scope*/
/* 31752*/          /*Scope*/ 4|128,1/*132*/, /*->31886*/
/* 31754*/            OPC_CheckChild2CondCode, ISD::SETLE,
/* 31756*/            OPC_Scope, 62, /*->31820*/ // 2 children in Scope
/* 31758*/              OPC_MoveParent,
/* 31759*/              OPC_CheckType, MVT::i32,
/* 31761*/              OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 31763*/              OPC_EmitNode1, TARGET_VAL(PPC::EFSCMPGT), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 31771*/              OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 31774*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 31782*/              OPC_EmitInteger, MVT::i32, 0, 
/* 31785*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 31792*/              OPC_EmitInteger, MVT::i32, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 31804*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 31811*/              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] }))
/* 31820*/            /*Scope*/ 64, /*->31885*/
/* 31821*/              OPC_CheckType, MVT::i1,
/* 31823*/              OPC_MoveParent,
/* 31824*/              OPC_CheckType, MVT::i64,
/* 31826*/              OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 31828*/              OPC_EmitNode1, TARGET_VAL(PPC::EFSCMPGT), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 31836*/              OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 31839*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 31847*/              OPC_EmitInteger, MVT::i64, 0, 
/* 31850*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 31857*/              OPC_EmitInteger, MVT::i64, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 31869*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 31876*/              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] }))
/* 31885*/            0, /*End of Scope*/
/* 31886*/          /*Scope*/ 4|128,1/*132*/, /*->32020*/
/* 31888*/            OPC_CheckChild2CondCode, ISD::SETUNE,
/* 31890*/            OPC_Scope, 62, /*->31954*/ // 2 children in Scope
/* 31892*/              OPC_MoveParent,
/* 31893*/              OPC_CheckType, MVT::i32,
/* 31895*/              OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 31897*/              OPC_EmitNode1, TARGET_VAL(PPC::EFSCMPEQ), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 31905*/              OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 31908*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 31916*/              OPC_EmitInteger, MVT::i32, 0, 
/* 31919*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 31926*/              OPC_EmitInteger, MVT::i32, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 31938*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 31945*/              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] }))
/* 31954*/            /*Scope*/ 64, /*->32019*/
/* 31955*/              OPC_CheckType, MVT::i1,
/* 31957*/              OPC_MoveParent,
/* 31958*/              OPC_CheckType, MVT::i64,
/* 31960*/              OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 31962*/              OPC_EmitNode1, TARGET_VAL(PPC::EFSCMPEQ), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 31970*/              OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 31973*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 31981*/              OPC_EmitInteger, MVT::i64, 0, 
/* 31984*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 31991*/              OPC_EmitInteger, MVT::i64, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 32003*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 32010*/              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] }))
/* 32019*/            0, /*End of Scope*/
/* 32020*/          /*Scope*/ 4|128,1/*132*/, /*->32154*/
/* 32022*/            OPC_CheckChild2CondCode, ISD::SETNE,
/* 32024*/            OPC_Scope, 62, /*->32088*/ // 2 children in Scope
/* 32026*/              OPC_MoveParent,
/* 32027*/              OPC_CheckType, MVT::i32,
/* 32029*/              OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 32031*/              OPC_EmitNode1, TARGET_VAL(PPC::EFSCMPEQ), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 32039*/              OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 32042*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 32050*/              OPC_EmitInteger, MVT::i32, 0, 
/* 32053*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 32060*/              OPC_EmitInteger, MVT::i32, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 32072*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 32079*/              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] }))
/* 32088*/            /*Scope*/ 64, /*->32153*/
/* 32089*/              OPC_CheckType, MVT::i1,
/* 32091*/              OPC_MoveParent,
/* 32092*/              OPC_CheckType, MVT::i64,
/* 32094*/              OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 32096*/              OPC_EmitNode1, TARGET_VAL(PPC::EFSCMPEQ), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 32104*/              OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 32107*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 32115*/              OPC_EmitInteger, MVT::i64, 0, 
/* 32118*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 32125*/              OPC_EmitInteger, MVT::i64, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 32137*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 32144*/              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] }))
/* 32153*/            0, /*End of Scope*/
/* 32154*/          0, /*End of Scope*/
/* 32155*/        /*Scope*/ 83|128,13/*1747*/, /*->33904*/
/* 32157*/          OPC_CheckChild0Type, MVT::f64,
/* 32159*/          OPC_RecordChild1, // #1 = $s2
/* 32160*/          OPC_Scope, 4|128,1/*132*/, /*->32295*/ // 13 children in Scope
/* 32163*/            OPC_CheckChild2CondCode, ISD::SETUGE,
/* 32165*/            OPC_Scope, 62, /*->32229*/ // 2 children in Scope
/* 32167*/              OPC_MoveParent,
/* 32168*/              OPC_CheckType, MVT::i32,
/* 32170*/              OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 32172*/              OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 32180*/              OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 32183*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 32191*/              OPC_EmitInteger, MVT::i32, 0, 
/* 32194*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 32201*/              OPC_EmitInteger, MVT::i32, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 32213*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 32220*/              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] }))
/* 32229*/            /*Scope*/ 64, /*->32294*/
/* 32230*/              OPC_CheckType, MVT::i1,
/* 32232*/              OPC_MoveParent,
/* 32233*/              OPC_CheckType, MVT::i64,
/* 32235*/              OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 32237*/              OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 32245*/              OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 32248*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 32256*/              OPC_EmitInteger, MVT::i64, 0, 
/* 32259*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 32266*/              OPC_EmitInteger, MVT::i64, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 32278*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 32285*/              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] }))
/* 32294*/            0, /*End of Scope*/
/* 32295*/          /*Scope*/ 4|128,1/*132*/, /*->32429*/
/* 32297*/            OPC_CheckChild2CondCode, ISD::SETGE,
/* 32299*/            OPC_Scope, 62, /*->32363*/ // 2 children in Scope
/* 32301*/              OPC_MoveParent,
/* 32302*/              OPC_CheckType, MVT::i32,
/* 32304*/              OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 32306*/              OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 32314*/              OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 32317*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 32325*/              OPC_EmitInteger, MVT::i32, 0, 
/* 32328*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 32335*/              OPC_EmitInteger, MVT::i32, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 32347*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 32354*/              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] }))
/* 32363*/            /*Scope*/ 64, /*->32428*/
/* 32364*/              OPC_CheckType, MVT::i1,
/* 32366*/              OPC_MoveParent,
/* 32367*/              OPC_CheckType, MVT::i64,
/* 32369*/              OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 32371*/              OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 32379*/              OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 32382*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 32390*/              OPC_EmitInteger, MVT::i64, 0, 
/* 32393*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 32400*/              OPC_EmitInteger, MVT::i64, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 32412*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 32419*/              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] }))
/* 32428*/            0, /*End of Scope*/
/* 32429*/          /*Scope*/ 4|128,1/*132*/, /*->32563*/
/* 32431*/            OPC_CheckChild2CondCode, ISD::SETULE,
/* 32433*/            OPC_Scope, 62, /*->32497*/ // 2 children in Scope
/* 32435*/              OPC_MoveParent,
/* 32436*/              OPC_CheckType, MVT::i32,
/* 32438*/              OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 32440*/              OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 32448*/              OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 32451*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 32459*/              OPC_EmitInteger, MVT::i32, 0, 
/* 32462*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 32469*/              OPC_EmitInteger, MVT::i32, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 32481*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 32488*/              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] }))
/* 32497*/            /*Scope*/ 64, /*->32562*/
/* 32498*/              OPC_CheckType, MVT::i1,
/* 32500*/              OPC_MoveParent,
/* 32501*/              OPC_CheckType, MVT::i64,
/* 32503*/              OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 32505*/              OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 32513*/              OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 32516*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 32524*/              OPC_EmitInteger, MVT::i64, 0, 
/* 32527*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 32534*/              OPC_EmitInteger, MVT::i64, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 32546*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 32553*/              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] }))
/* 32562*/            0, /*End of Scope*/
/* 32563*/          /*Scope*/ 4|128,1/*132*/, /*->32697*/
/* 32565*/            OPC_CheckChild2CondCode, ISD::SETLE,
/* 32567*/            OPC_Scope, 62, /*->32631*/ // 2 children in Scope
/* 32569*/              OPC_MoveParent,
/* 32570*/              OPC_CheckType, MVT::i32,
/* 32572*/              OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 32574*/              OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 32582*/              OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 32585*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 32593*/              OPC_EmitInteger, MVT::i32, 0, 
/* 32596*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 32603*/              OPC_EmitInteger, MVT::i32, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 32615*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 32622*/              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] }))
/* 32631*/            /*Scope*/ 64, /*->32696*/
/* 32632*/              OPC_CheckType, MVT::i1,
/* 32634*/              OPC_MoveParent,
/* 32635*/              OPC_CheckType, MVT::i64,
/* 32637*/              OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 32639*/              OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 32647*/              OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 32650*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 32658*/              OPC_EmitInteger, MVT::i64, 0, 
/* 32661*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 32668*/              OPC_EmitInteger, MVT::i64, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 32680*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 32687*/              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] }))
/* 32696*/            0, /*End of Scope*/
/* 32697*/          /*Scope*/ 4|128,1/*132*/, /*->32831*/
/* 32699*/            OPC_CheckChild2CondCode, ISD::SETUNE,
/* 32701*/            OPC_Scope, 62, /*->32765*/ // 2 children in Scope
/* 32703*/              OPC_MoveParent,
/* 32704*/              OPC_CheckType, MVT::i32,
/* 32706*/              OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 32708*/              OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 32716*/              OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 32719*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 32727*/              OPC_EmitInteger, MVT::i32, 0, 
/* 32730*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 32737*/              OPC_EmitInteger, MVT::i32, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 32749*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 32756*/              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] }))
/* 32765*/            /*Scope*/ 64, /*->32830*/
/* 32766*/              OPC_CheckType, MVT::i1,
/* 32768*/              OPC_MoveParent,
/* 32769*/              OPC_CheckType, MVT::i64,
/* 32771*/              OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 32773*/              OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 32781*/              OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 32784*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 32792*/              OPC_EmitInteger, MVT::i64, 0, 
/* 32795*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 32802*/              OPC_EmitInteger, MVT::i64, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 32814*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 32821*/              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] }))
/* 32830*/            0, /*End of Scope*/
/* 32831*/          /*Scope*/ 4|128,1/*132*/, /*->32965*/
/* 32833*/            OPC_CheckChild2CondCode, ISD::SETNE,
/* 32835*/            OPC_Scope, 62, /*->32899*/ // 2 children in Scope
/* 32837*/              OPC_MoveParent,
/* 32838*/              OPC_CheckType, MVT::i32,
/* 32840*/              OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 32842*/              OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 32850*/              OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 32853*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 32861*/              OPC_EmitInteger, MVT::i32, 0, 
/* 32864*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 32871*/              OPC_EmitInteger, MVT::i32, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 32883*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 32890*/              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] }))
/* 32899*/            /*Scope*/ 64, /*->32964*/
/* 32900*/              OPC_CheckType, MVT::i1,
/* 32902*/              OPC_MoveParent,
/* 32903*/              OPC_CheckType, MVT::i64,
/* 32905*/              OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 32907*/              OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 32915*/              OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 32918*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 32926*/              OPC_EmitInteger, MVT::i64, 0, 
/* 32929*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 32936*/              OPC_EmitInteger, MVT::i64, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 32948*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 32955*/              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] }))
/* 32964*/            0, /*End of Scope*/
/* 32965*/          /*Scope*/ 4|128,1/*132*/, /*->33099*/
/* 32967*/            OPC_CheckChild2CondCode, ISD::SETO,
/* 32969*/            OPC_Scope, 62, /*->33033*/ // 2 children in Scope
/* 32971*/              OPC_MoveParent,
/* 32972*/              OPC_CheckType, MVT::i32,
/* 32974*/              OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 32976*/              OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 32984*/              OPC_EmitInteger, MVT::i32, PPC::sub_un,
/* 32987*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 32995*/              OPC_EmitInteger, MVT::i32, 0, 
/* 32998*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 33005*/              OPC_EmitInteger, MVT::i32, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 33017*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 33024*/              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] }))
/* 33033*/            /*Scope*/ 64, /*->33098*/
/* 33034*/              OPC_CheckType, MVT::i1,
/* 33036*/              OPC_MoveParent,
/* 33037*/              OPC_CheckType, MVT::i64,
/* 33039*/              OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 33041*/              OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 33049*/              OPC_EmitInteger, MVT::i32, PPC::sub_un,
/* 33052*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 33060*/              OPC_EmitInteger, MVT::i64, 0, 
/* 33063*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 33070*/              OPC_EmitInteger, MVT::i64, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 33082*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 33089*/              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] }))
/* 33098*/            0, /*End of Scope*/
/* 33099*/          /*Scope*/ 4|128,1/*132*/, /*->33233*/
/* 33101*/            OPC_CheckChild2CondCode, ISD::SETUGE,
/* 33103*/            OPC_Scope, 62, /*->33167*/ // 2 children in Scope
/* 33105*/              OPC_MoveParent,
/* 33106*/              OPC_CheckType, MVT::i32,
/* 33108*/              OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 33110*/              OPC_EmitNode1, TARGET_VAL(PPC::EFDCMPLT), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 33118*/              OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 33121*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 33129*/              OPC_EmitInteger, MVT::i32, 0, 
/* 33132*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 33139*/              OPC_EmitInteger, MVT::i32, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 33151*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 33158*/              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] }))
/* 33167*/            /*Scope*/ 64, /*->33232*/
/* 33168*/              OPC_CheckType, MVT::i1,
/* 33170*/              OPC_MoveParent,
/* 33171*/              OPC_CheckType, MVT::i64,
/* 33173*/              OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 33175*/              OPC_EmitNode1, TARGET_VAL(PPC::EFDCMPLT), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 33183*/              OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 33186*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 33194*/              OPC_EmitInteger, MVT::i64, 0, 
/* 33197*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 33204*/              OPC_EmitInteger, MVT::i64, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 33216*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 33223*/              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] }))
/* 33232*/            0, /*End of Scope*/
/* 33233*/          /*Scope*/ 4|128,1/*132*/, /*->33367*/
/* 33235*/            OPC_CheckChild2CondCode, ISD::SETGE,
/* 33237*/            OPC_Scope, 62, /*->33301*/ // 2 children in Scope
/* 33239*/              OPC_MoveParent,
/* 33240*/              OPC_CheckType, MVT::i32,
/* 33242*/              OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 33244*/              OPC_EmitNode1, TARGET_VAL(PPC::EFDCMPLT), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 33252*/              OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 33255*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 33263*/              OPC_EmitInteger, MVT::i32, 0, 
/* 33266*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 33273*/              OPC_EmitInteger, MVT::i32, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 33285*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 33292*/              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] }))
/* 33301*/            /*Scope*/ 64, /*->33366*/
/* 33302*/              OPC_CheckType, MVT::i1,
/* 33304*/              OPC_MoveParent,
/* 33305*/              OPC_CheckType, MVT::i64,
/* 33307*/              OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 33309*/              OPC_EmitNode1, TARGET_VAL(PPC::EFDCMPLT), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 33317*/              OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 33320*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 33328*/              OPC_EmitInteger, MVT::i64, 0, 
/* 33331*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 33338*/              OPC_EmitInteger, MVT::i64, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 33350*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 33357*/              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] }))
/* 33366*/            0, /*End of Scope*/
/* 33367*/          /*Scope*/ 4|128,1/*132*/, /*->33501*/
/* 33369*/            OPC_CheckChild2CondCode, ISD::SETULE,
/* 33371*/            OPC_Scope, 62, /*->33435*/ // 2 children in Scope
/* 33373*/              OPC_MoveParent,
/* 33374*/              OPC_CheckType, MVT::i32,
/* 33376*/              OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 33378*/              OPC_EmitNode1, TARGET_VAL(PPC::EFDCMPGT), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 33386*/              OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 33389*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 33397*/              OPC_EmitInteger, MVT::i32, 0, 
/* 33400*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 33407*/              OPC_EmitInteger, MVT::i32, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 33419*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 33426*/              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] }))
/* 33435*/            /*Scope*/ 64, /*->33500*/
/* 33436*/              OPC_CheckType, MVT::i1,
/* 33438*/              OPC_MoveParent,
/* 33439*/              OPC_CheckType, MVT::i64,
/* 33441*/              OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 33443*/              OPC_EmitNode1, TARGET_VAL(PPC::EFDCMPGT), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 33451*/              OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 33454*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 33462*/              OPC_EmitInteger, MVT::i64, 0, 
/* 33465*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 33472*/              OPC_EmitInteger, MVT::i64, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 33484*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 33491*/              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] }))
/* 33500*/            0, /*End of Scope*/
/* 33501*/          /*Scope*/ 4|128,1/*132*/, /*->33635*/
/* 33503*/            OPC_CheckChild2CondCode, ISD::SETLE,
/* 33505*/            OPC_Scope, 62, /*->33569*/ // 2 children in Scope
/* 33507*/              OPC_MoveParent,
/* 33508*/              OPC_CheckType, MVT::i32,
/* 33510*/              OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 33512*/              OPC_EmitNode1, TARGET_VAL(PPC::EFDCMPGT), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 33520*/              OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 33523*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 33531*/              OPC_EmitInteger, MVT::i32, 0, 
/* 33534*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 33541*/              OPC_EmitInteger, MVT::i32, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 33553*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 33560*/              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] }))
/* 33569*/            /*Scope*/ 64, /*->33634*/
/* 33570*/              OPC_CheckType, MVT::i1,
/* 33572*/              OPC_MoveParent,
/* 33573*/              OPC_CheckType, MVT::i64,
/* 33575*/              OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 33577*/              OPC_EmitNode1, TARGET_VAL(PPC::EFDCMPGT), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 33585*/              OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 33588*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 33596*/              OPC_EmitInteger, MVT::i64, 0, 
/* 33599*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 33606*/              OPC_EmitInteger, MVT::i64, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 33618*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 33625*/              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] }))
/* 33634*/            0, /*End of Scope*/
/* 33635*/          /*Scope*/ 4|128,1/*132*/, /*->33769*/
/* 33637*/            OPC_CheckChild2CondCode, ISD::SETUNE,
/* 33639*/            OPC_Scope, 62, /*->33703*/ // 2 children in Scope
/* 33641*/              OPC_MoveParent,
/* 33642*/              OPC_CheckType, MVT::i32,
/* 33644*/              OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 33646*/              OPC_EmitNode1, TARGET_VAL(PPC::EFDCMPEQ), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 33654*/              OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 33657*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 33665*/              OPC_EmitInteger, MVT::i32, 0, 
/* 33668*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 33675*/              OPC_EmitInteger, MVT::i32, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 33687*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 33694*/              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] }))
/* 33703*/            /*Scope*/ 64, /*->33768*/
/* 33704*/              OPC_CheckType, MVT::i1,
/* 33706*/              OPC_MoveParent,
/* 33707*/              OPC_CheckType, MVT::i64,
/* 33709*/              OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 33711*/              OPC_EmitNode1, TARGET_VAL(PPC::EFDCMPEQ), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 33719*/              OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 33722*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 33730*/              OPC_EmitInteger, MVT::i64, 0, 
/* 33733*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 33740*/              OPC_EmitInteger, MVT::i64, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 33752*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 33759*/              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] }))
/* 33768*/            0, /*End of Scope*/
/* 33769*/          /*Scope*/ 4|128,1/*132*/, /*->33903*/
/* 33771*/            OPC_CheckChild2CondCode, ISD::SETNE,
/* 33773*/            OPC_Scope, 62, /*->33837*/ // 2 children in Scope
/* 33775*/              OPC_MoveParent,
/* 33776*/              OPC_CheckType, MVT::i32,
/* 33778*/              OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 33780*/              OPC_EmitNode1, TARGET_VAL(PPC::EFDCMPEQ), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 33788*/              OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 33791*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 33799*/              OPC_EmitInteger, MVT::i32, 0, 
/* 33802*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 33809*/              OPC_EmitInteger, MVT::i32, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 33821*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 33828*/              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] }))
/* 33837*/            /*Scope*/ 64, /*->33902*/
/* 33838*/              OPC_CheckType, MVT::i1,
/* 33840*/              OPC_MoveParent,
/* 33841*/              OPC_CheckType, MVT::i64,
/* 33843*/              OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 33845*/              OPC_EmitNode1, TARGET_VAL(PPC::EFDCMPEQ), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 33853*/              OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 33856*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 33864*/              OPC_EmitInteger, MVT::i64, 0, 
/* 33867*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 33874*/              OPC_EmitInteger, MVT::i64, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 33886*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 33893*/              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] }))
/* 33902*/            0, /*End of Scope*/
/* 33903*/          0, /*End of Scope*/
/* 33904*/        /*Scope*/ 47|128,7/*943*/, /*->34849*/
/* 33906*/          OPC_CheckChild0Type, MVT::f128,
/* 33908*/          OPC_RecordChild1, // #1 = $s2
/* 33909*/          OPC_Scope, 4|128,1/*132*/, /*->34044*/ // 7 children in Scope
/* 33912*/            OPC_CheckChild2CondCode, ISD::SETUGE,
/* 33914*/            OPC_Scope, 62, /*->33978*/ // 2 children in Scope
/* 33916*/              OPC_MoveParent,
/* 33917*/              OPC_CheckType, MVT::i32,
/* 33919*/              OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 33921*/              OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 33929*/              OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 33932*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 33940*/              OPC_EmitInteger, MVT::i32, 0, 
/* 33943*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 33950*/              OPC_EmitInteger, MVT::i32, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 33962*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 33969*/              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] }))
/* 33978*/            /*Scope*/ 64, /*->34043*/
/* 33979*/              OPC_CheckType, MVT::i1,
/* 33981*/              OPC_MoveParent,
/* 33982*/              OPC_CheckType, MVT::i64,
/* 33984*/              OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 33986*/              OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 33994*/              OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 33997*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 34005*/              OPC_EmitInteger, MVT::i64, 0, 
/* 34008*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 34015*/              OPC_EmitInteger, MVT::i64, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 34027*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 34034*/              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] }))
/* 34043*/            0, /*End of Scope*/
/* 34044*/          /*Scope*/ 4|128,1/*132*/, /*->34178*/
/* 34046*/            OPC_CheckChild2CondCode, ISD::SETGE,
/* 34048*/            OPC_Scope, 62, /*->34112*/ // 2 children in Scope
/* 34050*/              OPC_MoveParent,
/* 34051*/              OPC_CheckType, MVT::i32,
/* 34053*/              OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 34055*/              OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 34063*/              OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 34066*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 34074*/              OPC_EmitInteger, MVT::i32, 0, 
/* 34077*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 34084*/              OPC_EmitInteger, MVT::i32, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 34096*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 34103*/              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] }))
/* 34112*/            /*Scope*/ 64, /*->34177*/
/* 34113*/              OPC_CheckType, MVT::i1,
/* 34115*/              OPC_MoveParent,
/* 34116*/              OPC_CheckType, MVT::i64,
/* 34118*/              OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 34120*/              OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 34128*/              OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 34131*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 34139*/              OPC_EmitInteger, MVT::i64, 0, 
/* 34142*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 34149*/              OPC_EmitInteger, MVT::i64, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 34161*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 34168*/              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] }))
/* 34177*/            0, /*End of Scope*/
/* 34178*/          /*Scope*/ 4|128,1/*132*/, /*->34312*/
/* 34180*/            OPC_CheckChild2CondCode, ISD::SETULE,
/* 34182*/            OPC_Scope, 62, /*->34246*/ // 2 children in Scope
/* 34184*/              OPC_MoveParent,
/* 34185*/              OPC_CheckType, MVT::i32,
/* 34187*/              OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 34189*/              OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 34197*/              OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 34200*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 34208*/              OPC_EmitInteger, MVT::i32, 0, 
/* 34211*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 34218*/              OPC_EmitInteger, MVT::i32, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 34230*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 34237*/              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] }))
/* 34246*/            /*Scope*/ 64, /*->34311*/
/* 34247*/              OPC_CheckType, MVT::i1,
/* 34249*/              OPC_MoveParent,
/* 34250*/              OPC_CheckType, MVT::i64,
/* 34252*/              OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 34254*/              OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 34262*/              OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 34265*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 34273*/              OPC_EmitInteger, MVT::i64, 0, 
/* 34276*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 34283*/              OPC_EmitInteger, MVT::i64, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 34295*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 34302*/              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] }))
/* 34311*/            0, /*End of Scope*/
/* 34312*/          /*Scope*/ 4|128,1/*132*/, /*->34446*/
/* 34314*/            OPC_CheckChild2CondCode, ISD::SETLE,
/* 34316*/            OPC_Scope, 62, /*->34380*/ // 2 children in Scope
/* 34318*/              OPC_MoveParent,
/* 34319*/              OPC_CheckType, MVT::i32,
/* 34321*/              OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 34323*/              OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 34331*/              OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 34334*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 34342*/              OPC_EmitInteger, MVT::i32, 0, 
/* 34345*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 34352*/              OPC_EmitInteger, MVT::i32, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 34364*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 34371*/              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] }))
/* 34380*/            /*Scope*/ 64, /*->34445*/
/* 34381*/              OPC_CheckType, MVT::i1,
/* 34383*/              OPC_MoveParent,
/* 34384*/              OPC_CheckType, MVT::i64,
/* 34386*/              OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 34388*/              OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 34396*/              OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 34399*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 34407*/              OPC_EmitInteger, MVT::i64, 0, 
/* 34410*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 34417*/              OPC_EmitInteger, MVT::i64, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 34429*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 34436*/              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] }))
/* 34445*/            0, /*End of Scope*/
/* 34446*/          /*Scope*/ 4|128,1/*132*/, /*->34580*/
/* 34448*/            OPC_CheckChild2CondCode, ISD::SETUNE,
/* 34450*/            OPC_Scope, 62, /*->34514*/ // 2 children in Scope
/* 34452*/              OPC_MoveParent,
/* 34453*/              OPC_CheckType, MVT::i32,
/* 34455*/              OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 34457*/              OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 34465*/              OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 34468*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 34476*/              OPC_EmitInteger, MVT::i32, 0, 
/* 34479*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 34486*/              OPC_EmitInteger, MVT::i32, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 34498*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 34505*/              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] }))
/* 34514*/            /*Scope*/ 64, /*->34579*/
/* 34515*/              OPC_CheckType, MVT::i1,
/* 34517*/              OPC_MoveParent,
/* 34518*/              OPC_CheckType, MVT::i64,
/* 34520*/              OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 34522*/              OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 34530*/              OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 34533*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 34541*/              OPC_EmitInteger, MVT::i64, 0, 
/* 34544*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 34551*/              OPC_EmitInteger, MVT::i64, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 34563*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 34570*/              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] }))
/* 34579*/            0, /*End of Scope*/
/* 34580*/          /*Scope*/ 4|128,1/*132*/, /*->34714*/
/* 34582*/            OPC_CheckChild2CondCode, ISD::SETNE,
/* 34584*/            OPC_Scope, 62, /*->34648*/ // 2 children in Scope
/* 34586*/              OPC_MoveParent,
/* 34587*/              OPC_CheckType, MVT::i32,
/* 34589*/              OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 34591*/              OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 34599*/              OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 34602*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 34610*/              OPC_EmitInteger, MVT::i32, 0, 
/* 34613*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 34620*/              OPC_EmitInteger, MVT::i32, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 34632*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 34639*/              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] }))
/* 34648*/            /*Scope*/ 64, /*->34713*/
/* 34649*/              OPC_CheckType, MVT::i1,
/* 34651*/              OPC_MoveParent,
/* 34652*/              OPC_CheckType, MVT::i64,
/* 34654*/              OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 34656*/              OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 34664*/              OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 34667*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 34675*/              OPC_EmitInteger, MVT::i64, 0, 
/* 34678*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 34685*/              OPC_EmitInteger, MVT::i64, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 34697*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 34704*/              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] }))
/* 34713*/            0, /*End of Scope*/
/* 34714*/          /*Scope*/ 4|128,1/*132*/, /*->34848*/
/* 34716*/            OPC_CheckChild2CondCode, ISD::SETO,
/* 34718*/            OPC_Scope, 62, /*->34782*/ // 2 children in Scope
/* 34720*/              OPC_MoveParent,
/* 34721*/              OPC_CheckType, MVT::i32,
/* 34723*/              OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 34725*/              OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 34733*/              OPC_EmitInteger, MVT::i32, PPC::sub_un,
/* 34736*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 34744*/              OPC_EmitInteger, MVT::i32, 0, 
/* 34747*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 34754*/              OPC_EmitInteger, MVT::i32, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 34766*/              OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                            MVT::i32, 1/*#Ops*/, 7,  // Results = #8
/* 34773*/              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] }))
/* 34782*/            /*Scope*/ 64, /*->34847*/
/* 34783*/              OPC_CheckType, MVT::i1,
/* 34785*/              OPC_MoveParent,
/* 34786*/              OPC_CheckType, MVT::i64,
/* 34788*/              OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 34790*/              OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                            MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 34798*/              OPC_EmitInteger, MVT::i32, PPC::sub_un,
/* 34801*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 34809*/              OPC_EmitInteger, MVT::i64, 0, 
/* 34812*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 5,  // Results = #6
/* 34819*/              OPC_EmitInteger, MVT::i64, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 34831*/              OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                            MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 34838*/              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] }))
/* 34847*/            0, /*End of Scope*/
/* 34848*/          0, /*End of Scope*/
/* 34849*/        0, /*End of Scope*/
/* 34850*/      0, // EndSwitchOpcode
/* 34851*/    /*Scope*/ 98, /*->34950*/
/* 34852*/      OPC_RecordChild0, // #0 = $rS
/* 34853*/      OPC_SwitchType /*2 cases */, 53, MVT::i64,// ->34909
/* 34856*/        OPC_Scope, 9, /*->34867*/ // 2 children in Scope
/* 34858*/          OPC_CheckChild0Type, MVT::i32,
/* 34860*/          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)
/* 34867*/        /*Scope*/ 40, /*->34908*/
/* 34868*/          OPC_CheckChild0Type, MVT::i1,
/* 34870*/          OPC_EmitInteger, MVT::i64, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 34882*/          OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                        MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 34889*/          OPC_EmitInteger, MVT::i64, 0, 
/* 34892*/          OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                        MVT::i64, 1/*#Ops*/, 3,  // Results = #4
/* 34899*/          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] }))
/* 34908*/        0, /*End of Scope*/
/* 34909*/      /*SwitchType*/ 38, MVT::i32,// ->34949
/* 34911*/        OPC_EmitInteger, MVT::i32, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 34923*/        OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                      MVT::i32, 1/*#Ops*/, 1,  // Results = #2
/* 34930*/        OPC_EmitInteger, MVT::i32, 0, 
/* 34933*/        OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                      MVT::i32, 1/*#Ops*/, 3,  // Results = #4
/* 34940*/        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] }))
/* 34949*/      0, // EndSwitchType
/* 34950*/    0, /*End of Scope*/
/* 34951*/  /*SwitchOpcode*/ 102|128,62/*8038*/, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),// ->42993
/* 34955*/    OPC_RecordChild0, // #0 = $A
/* 34956*/    OPC_Scope, 28|128,5/*668*/, /*->35627*/ // 29 children in Scope
/* 34959*/      OPC_CheckChild1Integer, 1, 
/* 34961*/      OPC_SwitchType /*2 cases */, 104, MVT::i64,// ->35068
/* 34964*/        OPC_Scope, 9, /*->34975*/ // 2 children in Scope
/* 34966*/          OPC_CheckPatternPredicate, 22, // (PPCSubTarget->hasDirectMove()) && (!PPCSubTarget->isLittleEndian()) && (PPCSubTarget->isISA3_0())
/* 34968*/          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)
/* 34975*/        /*Scope*/ 91, /*->35067*/
/* 34976*/          OPC_CheckChild0Type, MVT::v2i64,
/* 34978*/          OPC_Scope, 31, /*->35011*/ // 2 children in Scope
/* 34980*/            OPC_CheckPatternPredicate, 23, // (PPCSubTarget->hasDirectMove()) && (PPCSubTarget->isLittleEndian())
/* 34982*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 34985*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2i64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 34993*/            OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 34996*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 35004*/            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] }))
/* 35011*/          /*Scope*/ 54, /*->35066*/
/* 35012*/            OPC_CheckPatternPredicate, 24, // (PPCSubTarget->hasDirectMove()) && (!PPCSubTarget->isLittleEndian())
/* 35014*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 35017*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 35025*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 35028*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i32, 2/*#Ops*/, 0, 3,  // Results = #4
/* 35036*/            OPC_EmitInteger, MVT::i32, 2, 
/* 35039*/            OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                          MVT::v4i32, 3/*#Ops*/, 2, 4, 5,  // Results = #6
/* 35048*/            OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 35051*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::f64, 2/*#Ops*/, 6, 7,  // Results = #8
/* 35059*/            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] }))
/* 35066*/          0, /*End of Scope*/
/* 35067*/        0, /*End of Scope*/
/* 35068*/      /*SwitchType*/ 43|128,4/*555*/, MVT::i32,// ->35626
/* 35071*/        OPC_Scope, 5|128,1/*133*/, /*->35207*/ // 3 children in Scope
/* 35074*/          OPC_CheckChild0Type, MVT::v4i32,
/* 35076*/          OPC_Scope, 31, /*->35109*/ // 4 children in Scope
/* 35078*/            OPC_CheckPatternPredicate, 25, // (PPCSubTarget->hasDirectMove()) && (!PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec())
/* 35080*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 35083*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2i64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 35091*/            OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 35094*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 35102*/            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] }))
/* 35109*/          /*Scope*/ 31, /*->35141*/
/* 35110*/            OPC_CheckPatternPredicate, 20, // (PPCSubTarget->hasP9Altivec()) && (PPCSubTarget->isLittleEndian())
/* 35112*/            OPC_EmitInteger, MVT::i64, 4, 
/* 35115*/            OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                          MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 35122*/            OPC_EmitNode1, TARGET_VAL(PPC::VEXTUWRX), 0,
                          MVT::i64, 2/*#Ops*/, 2, 0,  // Results = #3
/* 35130*/            OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 35133*/            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] })
/* 35141*/          /*Scope*/ 31, /*->35173*/
/* 35142*/            OPC_CheckPatternPredicate, 21, // (PPCSubTarget->hasP9Altivec()) && (!PPCSubTarget->isLittleEndian())
/* 35144*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 35147*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2i64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 35155*/            OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 35158*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 35166*/            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] }))
/* 35173*/          /*Scope*/ 32, /*->35206*/
/* 35174*/            OPC_CheckPatternPredicate, 26, // (PPCSubTarget->hasDirectMove()) && (PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec())
/* 35176*/            OPC_EmitInteger, MVT::i32, 1, 
/* 35179*/            OPC_EmitNode1, TARGET_VAL(PPC::XXSLDWI), 0,
                          MVT::v4i32, 3/*#Ops*/, 0, 0, 1,  // Results = #2
/* 35188*/            OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 35191*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 35199*/            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] }))
/* 35206*/          0, /*End of Scope*/
/* 35207*/        /*Scope*/ 79|128,1/*207*/, /*->35416*/
/* 35209*/          OPC_CheckChild0Type, MVT::v16i8,
/* 35211*/          OPC_Scope, 31, /*->35244*/ // 4 children in Scope
/* 35213*/            OPC_CheckPatternPredicate, 20, // (PPCSubTarget->hasP9Altivec()) && (PPCSubTarget->isLittleEndian())
/* 35215*/            OPC_EmitInteger, MVT::i64, 1, 
/* 35218*/            OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                          MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 35225*/            OPC_EmitNode1, TARGET_VAL(PPC::VEXTUBRX), 0,
                          MVT::i64, 2/*#Ops*/, 2, 0,  // Results = #3
/* 35233*/            OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 35236*/            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] })
/* 35244*/          /*Scope*/ 31, /*->35276*/
/* 35245*/            OPC_CheckPatternPredicate, 21, // (PPCSubTarget->hasP9Altivec()) && (!PPCSubTarget->isLittleEndian())
/* 35247*/            OPC_EmitInteger, MVT::i64, 1, 
/* 35250*/            OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                          MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 35257*/            OPC_EmitNode1, TARGET_VAL(PPC::VEXTUBLX), 0,
                          MVT::i64, 2/*#Ops*/, 2, 0,  // Results = #3
/* 35265*/            OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 35268*/            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] })
/* 35276*/          /*Scope*/ 57, /*->35334*/
/* 35277*/            OPC_CheckPatternPredicate, 25, // (PPCSubTarget->hasDirectMove()) && (!PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec())
/* 35279*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 35282*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2i64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 35290*/            OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 35293*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 35301*/            OPC_EmitNode1, TARGET_VAL(PPC::MFVSRD), 0,
                          MVT::i64, 1/*#Ops*/, 4,  // Results = #5
/* 35308*/            OPC_EmitInteger, MVT::i32, 16, 
/* 35311*/            OPC_EmitInteger, MVT::i32, 56, 
/* 35314*/            OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                          MVT::i64, 3/*#Ops*/, 5, 6, 7,  // Results = #8
/* 35323*/            OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 35326*/            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] })
/* 35334*/          /*Scope*/ 80, /*->35415*/
/* 35335*/            OPC_CheckPatternPredicate, 26, // (PPCSubTarget->hasDirectMove()) && (PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec())
/* 35337*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 35340*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 35348*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 35351*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i32, 2/*#Ops*/, 0, 3,  // Results = #4
/* 35359*/            OPC_EmitInteger, MVT::i32, 2, 
/* 35362*/            OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                          MVT::v4i32, 3/*#Ops*/, 2, 4, 5,  // Results = #6
/* 35371*/            OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 35374*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::f64, 2/*#Ops*/, 6, 7,  // Results = #8
/* 35382*/            OPC_EmitNode1, TARGET_VAL(PPC::MFVSRD), 0,
                          MVT::i64, 1/*#Ops*/, 8,  // Results = #9
/* 35389*/            OPC_EmitInteger, MVT::i32, 56, 
/* 35392*/            OPC_EmitInteger, MVT::i32, 56, 
/* 35395*/            OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                          MVT::i64, 3/*#Ops*/, 9, 10, 11,  // Results = #12
/* 35404*/            OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 35407*/            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] })
/* 35415*/          0, /*End of Scope*/
/* 35416*/        /*Scope*/ 79|128,1/*207*/, /*->35625*/
/* 35418*/          OPC_CheckChild0Type, MVT::v8i16,
/* 35420*/          OPC_Scope, 31, /*->35453*/ // 4 children in Scope
/* 35422*/            OPC_CheckPatternPredicate, 20, // (PPCSubTarget->hasP9Altivec()) && (PPCSubTarget->isLittleEndian())
/* 35424*/            OPC_EmitInteger, MVT::i64, 2, 
/* 35427*/            OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                          MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 35434*/            OPC_EmitNode1, TARGET_VAL(PPC::VEXTUHRX), 0,
                          MVT::i64, 2/*#Ops*/, 2, 0,  // Results = #3
/* 35442*/            OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 35445*/            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] })
/* 35453*/          /*Scope*/ 31, /*->35485*/
/* 35454*/            OPC_CheckPatternPredicate, 21, // (PPCSubTarget->hasP9Altivec()) && (!PPCSubTarget->isLittleEndian())
/* 35456*/            OPC_EmitInteger, MVT::i64, 2, 
/* 35459*/            OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                          MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 35466*/            OPC_EmitNode1, TARGET_VAL(PPC::VEXTUHLX), 0,
                          MVT::i64, 2/*#Ops*/, 2, 0,  // Results = #3
/* 35474*/            OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 35477*/            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] })
/* 35485*/          /*Scope*/ 57, /*->35543*/
/* 35486*/            OPC_CheckPatternPredicate, 25, // (PPCSubTarget->hasDirectMove()) && (!PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec())
/* 35488*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 35491*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2i64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 35499*/            OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 35502*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 35510*/            OPC_EmitNode1, TARGET_VAL(PPC::MFVSRD), 0,
                          MVT::i64, 1/*#Ops*/, 4,  // Results = #5
/* 35517*/            OPC_EmitInteger, MVT::i32, 32, 
/* 35520*/            OPC_EmitInteger, MVT::i32, 48, 
/* 35523*/            OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                          MVT::i64, 3/*#Ops*/, 5, 6, 7,  // Results = #8
/* 35532*/            OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 35535*/            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] })
/* 35543*/          /*Scope*/ 80, /*->35624*/
/* 35544*/            OPC_CheckPatternPredicate, 26, // (PPCSubTarget->hasDirectMove()) && (PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec())
/* 35546*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 35549*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 35557*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 35560*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i32, 2/*#Ops*/, 0, 3,  // Results = #4
/* 35568*/            OPC_EmitInteger, MVT::i32, 2, 
/* 35571*/            OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                          MVT::v4i32, 3/*#Ops*/, 2, 4, 5,  // Results = #6
/* 35580*/            OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 35583*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::f64, 2/*#Ops*/, 6, 7,  // Results = #8
/* 35591*/            OPC_EmitNode1, TARGET_VAL(PPC::MFVSRD), 0,
                          MVT::i64, 1/*#Ops*/, 8,  // Results = #9
/* 35598*/            OPC_EmitInteger, MVT::i32, 48, 
/* 35601*/            OPC_EmitInteger, MVT::i32, 48, 
/* 35604*/            OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                          MVT::i64, 3/*#Ops*/, 9, 10, 11,  // Results = #12
/* 35613*/            OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 35616*/            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] })
/* 35624*/          0, /*End of Scope*/
/* 35625*/        0, /*End of Scope*/
/* 35626*/      0, // EndSwitchType
/* 35627*/    /*Scope*/ 29|128,5/*669*/, /*->36298*/
/* 35629*/      OPC_CheckChild1Integer, 0, 
/* 35631*/      OPC_SwitchType /*2 cases */, 104, MVT::i64,// ->35738
/* 35634*/        OPC_Scope, 9, /*->35645*/ // 2 children in Scope
/* 35636*/          OPC_CheckPatternPredicate, 27, // (PPCSubTarget->hasDirectMove()) && (PPCSubTarget->isISA3_0()) && (PPCSubTarget->isLittleEndian())
/* 35638*/          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)
/* 35645*/        /*Scope*/ 91, /*->35737*/
/* 35646*/          OPC_CheckChild0Type, MVT::v2i64,
/* 35648*/          OPC_Scope, 31, /*->35681*/ // 2 children in Scope
/* 35650*/            OPC_CheckPatternPredicate, 24, // (PPCSubTarget->hasDirectMove()) && (!PPCSubTarget->isLittleEndian())
/* 35652*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 35655*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2i64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 35663*/            OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 35666*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 35674*/            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] }))
/* 35681*/          /*Scope*/ 54, /*->35736*/
/* 35682*/            OPC_CheckPatternPredicate, 23, // (PPCSubTarget->hasDirectMove()) && (PPCSubTarget->isLittleEndian())
/* 35684*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 35687*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 35695*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 35698*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i32, 2/*#Ops*/, 0, 3,  // Results = #4
/* 35706*/            OPC_EmitInteger, MVT::i32, 2, 
/* 35709*/            OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                          MVT::v4i32, 3/*#Ops*/, 2, 4, 5,  // Results = #6
/* 35718*/            OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 35721*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::f64, 2/*#Ops*/, 6, 7,  // Results = #8
/* 35729*/            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] }))
/* 35736*/          0, /*End of Scope*/
/* 35737*/        0, /*End of Scope*/
/* 35738*/      /*SwitchType*/ 44|128,4/*556*/, MVT::i32,// ->36297
/* 35741*/        OPC_Scope, 6|128,1/*134*/, /*->35878*/ // 3 children in Scope
/* 35744*/          OPC_CheckChild0Type, MVT::v4i32,
/* 35746*/          OPC_Scope, 32, /*->35780*/ // 4 children in Scope
/* 35748*/            OPC_CheckPatternPredicate, 25, // (PPCSubTarget->hasDirectMove()) && (!PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec())
/* 35750*/            OPC_EmitInteger, MVT::i32, 3, 
/* 35753*/            OPC_EmitNode1, TARGET_VAL(PPC::XXSLDWI), 0,
                          MVT::v4i32, 3/*#Ops*/, 0, 0, 1,  // Results = #2
/* 35762*/            OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 35765*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 35773*/            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] }))
/* 35780*/          /*Scope*/ 31, /*->35812*/
/* 35781*/            OPC_CheckPatternPredicate, 20, // (PPCSubTarget->hasP9Altivec()) && (PPCSubTarget->isLittleEndian())
/* 35783*/            OPC_EmitInteger, MVT::i64, 0, 
/* 35786*/            OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                          MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 35793*/            OPC_EmitNode1, TARGET_VAL(PPC::VEXTUWRX), 0,
                          MVT::i64, 2/*#Ops*/, 2, 0,  // Results = #3
/* 35801*/            OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 35804*/            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] })
/* 35812*/          /*Scope*/ 31, /*->35844*/
/* 35813*/            OPC_CheckPatternPredicate, 21, // (PPCSubTarget->hasP9Altivec()) && (!PPCSubTarget->isLittleEndian())
/* 35815*/            OPC_EmitInteger, MVT::i64, 0, 
/* 35818*/            OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                          MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 35825*/            OPC_EmitNode1, TARGET_VAL(PPC::VEXTUWLX), 0,
                          MVT::i64, 2/*#Ops*/, 2, 0,  // Results = #3
/* 35833*/            OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 35836*/            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] })
/* 35844*/          /*Scope*/ 32, /*->35877*/
/* 35845*/            OPC_CheckPatternPredicate, 26, // (PPCSubTarget->hasDirectMove()) && (PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec())
/* 35847*/            OPC_EmitInteger, MVT::i32, 2, 
/* 35850*/            OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                          MVT::v4i32, 3/*#Ops*/, 0, 0, 1,  // Results = #2
/* 35859*/            OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 35862*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 35870*/            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] }))
/* 35877*/          0, /*End of Scope*/
/* 35878*/        /*Scope*/ 79|128,1/*207*/, /*->36087*/
/* 35880*/          OPC_CheckChild0Type, MVT::v16i8,
/* 35882*/          OPC_Scope, 31, /*->35915*/ // 4 children in Scope
/* 35884*/            OPC_CheckPatternPredicate, 20, // (PPCSubTarget->hasP9Altivec()) && (PPCSubTarget->isLittleEndian())
/* 35886*/            OPC_EmitInteger, MVT::i64, 0, 
/* 35889*/            OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                          MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 35896*/            OPC_EmitNode1, TARGET_VAL(PPC::VEXTUBRX), 0,
                          MVT::i64, 2/*#Ops*/, 2, 0,  // Results = #3
/* 35904*/            OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 35907*/            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] })
/* 35915*/          /*Scope*/ 31, /*->35947*/
/* 35916*/            OPC_CheckPatternPredicate, 21, // (PPCSubTarget->hasP9Altivec()) && (!PPCSubTarget->isLittleEndian())
/* 35918*/            OPC_EmitInteger, MVT::i64, 0, 
/* 35921*/            OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                          MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 35928*/            OPC_EmitNode1, TARGET_VAL(PPC::VEXTUBLX), 0,
                          MVT::i64, 2/*#Ops*/, 2, 0,  // Results = #3
/* 35936*/            OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 35939*/            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] })
/* 35947*/          /*Scope*/ 57, /*->36005*/
/* 35948*/            OPC_CheckPatternPredicate, 25, // (PPCSubTarget->hasDirectMove()) && (!PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec())
/* 35950*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 35953*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2i64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 35961*/            OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 35964*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 35972*/            OPC_EmitNode1, TARGET_VAL(PPC::MFVSRD), 0,
                          MVT::i64, 1/*#Ops*/, 4,  // Results = #5
/* 35979*/            OPC_EmitInteger, MVT::i32, 8, 
/* 35982*/            OPC_EmitInteger, MVT::i32, 56, 
/* 35985*/            OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                          MVT::i64, 3/*#Ops*/, 5, 6, 7,  // Results = #8
/* 35994*/            OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 35997*/            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] })
/* 36005*/          /*Scope*/ 80, /*->36086*/
/* 36006*/            OPC_CheckPatternPredicate, 26, // (PPCSubTarget->hasDirectMove()) && (PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec())
/* 36008*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 36011*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 36019*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 36022*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i32, 2/*#Ops*/, 0, 3,  // Results = #4
/* 36030*/            OPC_EmitInteger, MVT::i32, 2, 
/* 36033*/            OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                          MVT::v4i32, 3/*#Ops*/, 2, 4, 5,  // Results = #6
/* 36042*/            OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 36045*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::f64, 2/*#Ops*/, 6, 7,  // Results = #8
/* 36053*/            OPC_EmitNode1, TARGET_VAL(PPC::MFVSRD), 0,
                          MVT::i64, 1/*#Ops*/, 8,  // Results = #9
/* 36060*/            OPC_EmitInteger, MVT::i32, 0, 
/* 36063*/            OPC_EmitInteger, MVT::i32, 56, 
/* 36066*/            OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                          MVT::i64, 3/*#Ops*/, 9, 10, 11,  // Results = #12
/* 36075*/            OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 36078*/            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] })
/* 36086*/          0, /*End of Scope*/
/* 36087*/        /*Scope*/ 79|128,1/*207*/, /*->36296*/
/* 36089*/          OPC_CheckChild0Type, MVT::v8i16,
/* 36091*/          OPC_Scope, 31, /*->36124*/ // 4 children in Scope
/* 36093*/            OPC_CheckPatternPredicate, 20, // (PPCSubTarget->hasP9Altivec()) && (PPCSubTarget->isLittleEndian())
/* 36095*/            OPC_EmitInteger, MVT::i64, 0, 
/* 36098*/            OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                          MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 36105*/            OPC_EmitNode1, TARGET_VAL(PPC::VEXTUHRX), 0,
                          MVT::i64, 2/*#Ops*/, 2, 0,  // Results = #3
/* 36113*/            OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 36116*/            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] })
/* 36124*/          /*Scope*/ 31, /*->36156*/
/* 36125*/            OPC_CheckPatternPredicate, 21, // (PPCSubTarget->hasP9Altivec()) && (!PPCSubTarget->isLittleEndian())
/* 36127*/            OPC_EmitInteger, MVT::i64, 0, 
/* 36130*/            OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                          MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 36137*/            OPC_EmitNode1, TARGET_VAL(PPC::VEXTUHLX), 0,
                          MVT::i64, 2/*#Ops*/, 2, 0,  // Results = #3
/* 36145*/            OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 36148*/            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] })
/* 36156*/          /*Scope*/ 57, /*->36214*/
/* 36157*/            OPC_CheckPatternPredicate, 25, // (PPCSubTarget->hasDirectMove()) && (!PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec())
/* 36159*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 36162*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2i64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 36170*/            OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 36173*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 36181*/            OPC_EmitNode1, TARGET_VAL(PPC::MFVSRD), 0,
                          MVT::i64, 1/*#Ops*/, 4,  // Results = #5
/* 36188*/            OPC_EmitInteger, MVT::i32, 16, 
/* 36191*/            OPC_EmitInteger, MVT::i32, 48, 
/* 36194*/            OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                          MVT::i64, 3/*#Ops*/, 5, 6, 7,  // Results = #8
/* 36203*/            OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 36206*/            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] })
/* 36214*/          /*Scope*/ 80, /*->36295*/
/* 36215*/            OPC_CheckPatternPredicate, 26, // (PPCSubTarget->hasDirectMove()) && (PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec())
/* 36217*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 36220*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 36228*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 36231*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i32, 2/*#Ops*/, 0, 3,  // Results = #4
/* 36239*/            OPC_EmitInteger, MVT::i32, 2, 
/* 36242*/            OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                          MVT::v4i32, 3/*#Ops*/, 2, 4, 5,  // Results = #6
/* 36251*/            OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 36254*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::f64, 2/*#Ops*/, 6, 7,  // Results = #8
/* 36262*/            OPC_EmitNode1, TARGET_VAL(PPC::MFVSRD), 0,
                          MVT::i64, 1/*#Ops*/, 8,  // Results = #9
/* 36269*/            OPC_EmitInteger, MVT::i32, 0, 
/* 36272*/            OPC_EmitInteger, MVT::i32, 48, 
/* 36275*/            OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                          MVT::i64, 3/*#Ops*/, 9, 10, 11,  // Results = #12
/* 36284*/            OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 36287*/            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] })
/* 36295*/          0, /*End of Scope*/
/* 36296*/        0, /*End of Scope*/
/* 36297*/      0, // EndSwitchType
/* 36298*/    /*Scope*/ 47|128,4/*559*/, /*->36859*/
/* 36300*/      OPC_CheckChild1Integer, 2, 
/* 36302*/      OPC_CheckType, MVT::i32,
/* 36304*/      OPC_Scope, 5|128,1/*133*/, /*->36440*/ // 3 children in Scope
/* 36307*/        OPC_CheckChild0Type, MVT::v4i32,
/* 36309*/        OPC_Scope, 32, /*->36343*/ // 4 children in Scope
/* 36311*/          OPC_CheckPatternPredicate, 25, // (PPCSubTarget->hasDirectMove()) && (!PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec())
/* 36313*/          OPC_EmitInteger, MVT::i32, 1, 
/* 36316*/          OPC_EmitNode1, TARGET_VAL(PPC::XXSLDWI), 0,
                        MVT::v4i32, 3/*#Ops*/, 0, 0, 1,  // Results = #2
/* 36325*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 36328*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 36336*/          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] }))
/* 36343*/        /*Scope*/ 31, /*->36375*/
/* 36344*/          OPC_CheckPatternPredicate, 20, // (PPCSubTarget->hasP9Altivec()) && (PPCSubTarget->isLittleEndian())
/* 36346*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 36349*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 36357*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 36360*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 36368*/          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] }))
/* 36375*/        /*Scope*/ 31, /*->36407*/
/* 36376*/          OPC_CheckPatternPredicate, 21, // (PPCSubTarget->hasP9Altivec()) && (!PPCSubTarget->isLittleEndian())
/* 36378*/          OPC_EmitInteger, MVT::i64, 8, 
/* 36381*/          OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                        MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 36388*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTUWLX), 0,
                        MVT::i64, 2/*#Ops*/, 2, 0,  // Results = #3
/* 36396*/          OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 36399*/          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] })
/* 36407*/        /*Scope*/ 31, /*->36439*/
/* 36408*/          OPC_CheckPatternPredicate, 26, // (PPCSubTarget->hasDirectMove()) && (PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec())
/* 36410*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 36413*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 36421*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 36424*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 36432*/          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] }))
/* 36439*/        0, /*End of Scope*/
/* 36440*/      /*Scope*/ 79|128,1/*207*/, /*->36649*/
/* 36442*/        OPC_CheckChild0Type, MVT::v16i8,
/* 36444*/        OPC_Scope, 31, /*->36477*/ // 4 children in Scope
/* 36446*/          OPC_CheckPatternPredicate, 20, // (PPCSubTarget->hasP9Altivec()) && (PPCSubTarget->isLittleEndian())
/* 36448*/          OPC_EmitInteger, MVT::i64, 2, 
/* 36451*/          OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                        MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 36458*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTUBRX), 0,
                        MVT::i64, 2/*#Ops*/, 2, 0,  // Results = #3
/* 36466*/          OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 36469*/          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] })
/* 36477*/        /*Scope*/ 31, /*->36509*/
/* 36478*/          OPC_CheckPatternPredicate, 21, // (PPCSubTarget->hasP9Altivec()) && (!PPCSubTarget->isLittleEndian())
/* 36480*/          OPC_EmitInteger, MVT::i64, 2, 
/* 36483*/          OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                        MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 36490*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTUBLX), 0,
                        MVT::i64, 2/*#Ops*/, 2, 0,  // Results = #3
/* 36498*/          OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 36501*/          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] })
/* 36509*/        /*Scope*/ 57, /*->36567*/
/* 36510*/          OPC_CheckPatternPredicate, 25, // (PPCSubTarget->hasDirectMove()) && (!PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec())
/* 36512*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 36515*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 36523*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 36526*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 36534*/          OPC_EmitNode1, TARGET_VAL(PPC::MFVSRD), 0,
                        MVT::i64, 1/*#Ops*/, 4,  // Results = #5
/* 36541*/          OPC_EmitInteger, MVT::i32, 24, 
/* 36544*/          OPC_EmitInteger, MVT::i32, 56, 
/* 36547*/          OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                        MVT::i64, 3/*#Ops*/, 5, 6, 7,  // Results = #8
/* 36556*/          OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 36559*/          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] })
/* 36567*/        /*Scope*/ 80, /*->36648*/
/* 36568*/          OPC_CheckPatternPredicate, 26, // (PPCSubTarget->hasDirectMove()) && (PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec())
/* 36570*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 36573*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 36581*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 36584*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 3,  // Results = #4
/* 36592*/          OPC_EmitInteger, MVT::i32, 2, 
/* 36595*/          OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                        MVT::v4i32, 3/*#Ops*/, 2, 4, 5,  // Results = #6
/* 36604*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 36607*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 6, 7,  // Results = #8
/* 36615*/          OPC_EmitNode1, TARGET_VAL(PPC::MFVSRD), 0,
                        MVT::i64, 1/*#Ops*/, 8,  // Results = #9
/* 36622*/          OPC_EmitInteger, MVT::i32, 48, 
/* 36625*/          OPC_EmitInteger, MVT::i32, 56, 
/* 36628*/          OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                        MVT::i64, 3/*#Ops*/, 9, 10, 11,  // Results = #12
/* 36637*/          OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 36640*/          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] })
/* 36648*/        0, /*End of Scope*/
/* 36649*/      /*Scope*/ 79|128,1/*207*/, /*->36858*/
/* 36651*/        OPC_CheckChild0Type, MVT::v8i16,
/* 36653*/        OPC_Scope, 31, /*->36686*/ // 4 children in Scope
/* 36655*/          OPC_CheckPatternPredicate, 20, // (PPCSubTarget->hasP9Altivec()) && (PPCSubTarget->isLittleEndian())
/* 36657*/          OPC_EmitInteger, MVT::i64, 4, 
/* 36660*/          OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                        MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 36667*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTUHRX), 0,
                        MVT::i64, 2/*#Ops*/, 2, 0,  // Results = #3
/* 36675*/          OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 36678*/          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] })
/* 36686*/        /*Scope*/ 31, /*->36718*/
/* 36687*/          OPC_CheckPatternPredicate, 21, // (PPCSubTarget->hasP9Altivec()) && (!PPCSubTarget->isLittleEndian())
/* 36689*/          OPC_EmitInteger, MVT::i64, 4, 
/* 36692*/          OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                        MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 36699*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTUHLX), 0,
                        MVT::i64, 2/*#Ops*/, 2, 0,  // Results = #3
/* 36707*/          OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 36710*/          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] })
/* 36718*/        /*Scope*/ 57, /*->36776*/
/* 36719*/          OPC_CheckPatternPredicate, 25, // (PPCSubTarget->hasDirectMove()) && (!PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec())
/* 36721*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 36724*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 36732*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 36735*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 36743*/          OPC_EmitNode1, TARGET_VAL(PPC::MFVSRD), 0,
                        MVT::i64, 1/*#Ops*/, 4,  // Results = #5
/* 36750*/          OPC_EmitInteger, MVT::i32, 48, 
/* 36753*/          OPC_EmitInteger, MVT::i32, 48, 
/* 36756*/          OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                        MVT::i64, 3/*#Ops*/, 5, 6, 7,  // Results = #8
/* 36765*/          OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 36768*/          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] })
/* 36776*/        /*Scope*/ 80, /*->36857*/
/* 36777*/          OPC_CheckPatternPredicate, 26, // (PPCSubTarget->hasDirectMove()) && (PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec())
/* 36779*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 36782*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 36790*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 36793*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 3,  // Results = #4
/* 36801*/          OPC_EmitInteger, MVT::i32, 2, 
/* 36804*/          OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                        MVT::v4i32, 3/*#Ops*/, 2, 4, 5,  // Results = #6
/* 36813*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 36816*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 6, 7,  // Results = #8
/* 36824*/          OPC_EmitNode1, TARGET_VAL(PPC::MFVSRD), 0,
                        MVT::i64, 1/*#Ops*/, 8,  // Results = #9
/* 36831*/          OPC_EmitInteger, MVT::i32, 32, 
/* 36834*/          OPC_EmitInteger, MVT::i32, 48, 
/* 36837*/          OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                        MVT::i64, 3/*#Ops*/, 9, 10, 11,  // Results = #12
/* 36846*/          OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 36849*/          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] })
/* 36857*/        0, /*End of Scope*/
/* 36858*/      0, /*End of Scope*/
/* 36859*/    /*Scope*/ 48|128,4/*560*/, /*->37421*/
/* 36861*/      OPC_CheckChild1Integer, 3, 
/* 36863*/      OPC_CheckType, MVT::i32,
/* 36865*/      OPC_Scope, 6|128,1/*134*/, /*->37002*/ // 3 children in Scope
/* 36868*/        OPC_CheckChild0Type, MVT::v4i32,
/* 36870*/        OPC_Scope, 32, /*->36904*/ // 4 children in Scope
/* 36872*/          OPC_CheckPatternPredicate, 25, // (PPCSubTarget->hasDirectMove()) && (!PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec())
/* 36874*/          OPC_EmitInteger, MVT::i32, 2, 
/* 36877*/          OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                        MVT::v4i32, 3/*#Ops*/, 0, 0, 1,  // Results = #2
/* 36886*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 36889*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 36897*/          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] }))
/* 36904*/        /*Scope*/ 31, /*->36936*/
/* 36905*/          OPC_CheckPatternPredicate, 20, // (PPCSubTarget->hasP9Altivec()) && (PPCSubTarget->isLittleEndian())
/* 36907*/          OPC_EmitInteger, MVT::i64, 12, 
/* 36910*/          OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                        MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 36917*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTUWRX), 0,
                        MVT::i64, 2/*#Ops*/, 2, 0,  // Results = #3
/* 36925*/          OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 36928*/          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] })
/* 36936*/        /*Scope*/ 31, /*->36968*/
/* 36937*/          OPC_CheckPatternPredicate, 21, // (PPCSubTarget->hasP9Altivec()) && (!PPCSubTarget->isLittleEndian())
/* 36939*/          OPC_EmitInteger, MVT::i64, 12, 
/* 36942*/          OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                        MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 36949*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTUWLX), 0,
                        MVT::i64, 2/*#Ops*/, 2, 0,  // Results = #3
/* 36957*/          OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 36960*/          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] })
/* 36968*/        /*Scope*/ 32, /*->37001*/
/* 36969*/          OPC_CheckPatternPredicate, 26, // (PPCSubTarget->hasDirectMove()) && (PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec())
/* 36971*/          OPC_EmitInteger, MVT::i32, 3, 
/* 36974*/          OPC_EmitNode1, TARGET_VAL(PPC::XXSLDWI), 0,
                        MVT::v4i32, 3/*#Ops*/, 0, 0, 1,  // Results = #2
/* 36983*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 36986*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 36994*/          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] }))
/* 37001*/        0, /*End of Scope*/
/* 37002*/      /*Scope*/ 79|128,1/*207*/, /*->37211*/
/* 37004*/        OPC_CheckChild0Type, MVT::v16i8,
/* 37006*/        OPC_Scope, 31, /*->37039*/ // 4 children in Scope
/* 37008*/          OPC_CheckPatternPredicate, 20, // (PPCSubTarget->hasP9Altivec()) && (PPCSubTarget->isLittleEndian())
/* 37010*/          OPC_EmitInteger, MVT::i64, 3, 
/* 37013*/          OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                        MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 37020*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTUBRX), 0,
                        MVT::i64, 2/*#Ops*/, 2, 0,  // Results = #3
/* 37028*/          OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 37031*/          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] })
/* 37039*/        /*Scope*/ 31, /*->37071*/
/* 37040*/          OPC_CheckPatternPredicate, 21, // (PPCSubTarget->hasP9Altivec()) && (!PPCSubTarget->isLittleEndian())
/* 37042*/          OPC_EmitInteger, MVT::i64, 3, 
/* 37045*/          OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                        MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 37052*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTUBLX), 0,
                        MVT::i64, 2/*#Ops*/, 2, 0,  // Results = #3
/* 37060*/          OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 37063*/          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] })
/* 37071*/        /*Scope*/ 57, /*->37129*/
/* 37072*/          OPC_CheckPatternPredicate, 25, // (PPCSubTarget->hasDirectMove()) && (!PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec())
/* 37074*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 37077*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 37085*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 37088*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 37096*/          OPC_EmitNode1, TARGET_VAL(PPC::MFVSRD), 0,
                        MVT::i64, 1/*#Ops*/, 4,  // Results = #5
/* 37103*/          OPC_EmitInteger, MVT::i32, 32, 
/* 37106*/          OPC_EmitInteger, MVT::i32, 56, 
/* 37109*/          OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                        MVT::i64, 3/*#Ops*/, 5, 6, 7,  // Results = #8
/* 37118*/          OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 37121*/          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] })
/* 37129*/        /*Scope*/ 80, /*->37210*/
/* 37130*/          OPC_CheckPatternPredicate, 26, // (PPCSubTarget->hasDirectMove()) && (PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec())
/* 37132*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 37135*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 37143*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 37146*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 3,  // Results = #4
/* 37154*/          OPC_EmitInteger, MVT::i32, 2, 
/* 37157*/          OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                        MVT::v4i32, 3/*#Ops*/, 2, 4, 5,  // Results = #6
/* 37166*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 37169*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 6, 7,  // Results = #8
/* 37177*/          OPC_EmitNode1, TARGET_VAL(PPC::MFVSRD), 0,
                        MVT::i64, 1/*#Ops*/, 8,  // Results = #9
/* 37184*/          OPC_EmitInteger, MVT::i32, 40, 
/* 37187*/          OPC_EmitInteger, MVT::i32, 56, 
/* 37190*/          OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                        MVT::i64, 3/*#Ops*/, 9, 10, 11,  // Results = #12
/* 37199*/          OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 37202*/          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] })
/* 37210*/        0, /*End of Scope*/
/* 37211*/      /*Scope*/ 79|128,1/*207*/, /*->37420*/
/* 37213*/        OPC_CheckChild0Type, MVT::v8i16,
/* 37215*/        OPC_Scope, 31, /*->37248*/ // 4 children in Scope
/* 37217*/          OPC_CheckPatternPredicate, 20, // (PPCSubTarget->hasP9Altivec()) && (PPCSubTarget->isLittleEndian())
/* 37219*/          OPC_EmitInteger, MVT::i64, 6, 
/* 37222*/          OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                        MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 37229*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTUHRX), 0,
                        MVT::i64, 2/*#Ops*/, 2, 0,  // Results = #3
/* 37237*/          OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 37240*/          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] })
/* 37248*/        /*Scope*/ 31, /*->37280*/
/* 37249*/          OPC_CheckPatternPredicate, 21, // (PPCSubTarget->hasP9Altivec()) && (!PPCSubTarget->isLittleEndian())
/* 37251*/          OPC_EmitInteger, MVT::i64, 6, 
/* 37254*/          OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                        MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 37261*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTUHLX), 0,
                        MVT::i64, 2/*#Ops*/, 2, 0,  // Results = #3
/* 37269*/          OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 37272*/          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] })
/* 37280*/        /*Scope*/ 57, /*->37338*/
/* 37281*/          OPC_CheckPatternPredicate, 25, // (PPCSubTarget->hasDirectMove()) && (!PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec())
/* 37283*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 37286*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 37294*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 37297*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 37305*/          OPC_EmitNode1, TARGET_VAL(PPC::MFVSRD), 0,
                        MVT::i64, 1/*#Ops*/, 4,  // Results = #5
/* 37312*/          OPC_EmitInteger, MVT::i32, 0, 
/* 37315*/          OPC_EmitInteger, MVT::i32, 48, 
/* 37318*/          OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                        MVT::i64, 3/*#Ops*/, 5, 6, 7,  // Results = #8
/* 37327*/          OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 37330*/          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] })
/* 37338*/        /*Scope*/ 80, /*->37419*/
/* 37339*/          OPC_CheckPatternPredicate, 26, // (PPCSubTarget->hasDirectMove()) && (PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec())
/* 37341*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 37344*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 37352*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 37355*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 3,  // Results = #4
/* 37363*/          OPC_EmitInteger, MVT::i32, 2, 
/* 37366*/          OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                        MVT::v4i32, 3/*#Ops*/, 2, 4, 5,  // Results = #6
/* 37375*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 37378*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 6, 7,  // Results = #8
/* 37386*/          OPC_EmitNode1, TARGET_VAL(PPC::MFVSRD), 0,
                        MVT::i64, 1/*#Ops*/, 8,  // Results = #9
/* 37393*/          OPC_EmitInteger, MVT::i32, 16, 
/* 37396*/          OPC_EmitInteger, MVT::i32, 48, 
/* 37399*/          OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                        MVT::i64, 3/*#Ops*/, 9, 10, 11,  // Results = #12
/* 37408*/          OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 37411*/          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] })
/* 37419*/        0, /*End of Scope*/
/* 37420*/      0, /*End of Scope*/
/* 37421*/    /*Scope*/ 40|128,3/*424*/, /*->37847*/
/* 37423*/      OPC_CheckChild1Integer, 4, 
/* 37425*/      OPC_CheckType, MVT::i32,
/* 37427*/      OPC_Scope, 79|128,1/*207*/, /*->37637*/ // 2 children in Scope
/* 37430*/        OPC_CheckChild0Type, MVT::v16i8,
/* 37432*/        OPC_Scope, 31, /*->37465*/ // 4 children in Scope
/* 37434*/          OPC_CheckPatternPredicate, 20, // (PPCSubTarget->hasP9Altivec()) && (PPCSubTarget->isLittleEndian())
/* 37436*/          OPC_EmitInteger, MVT::i64, 4, 
/* 37439*/          OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                        MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 37446*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTUBRX), 0,
                        MVT::i64, 2/*#Ops*/, 2, 0,  // Results = #3
/* 37454*/          OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 37457*/          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] })
/* 37465*/        /*Scope*/ 31, /*->37497*/
/* 37466*/          OPC_CheckPatternPredicate, 21, // (PPCSubTarget->hasP9Altivec()) && (!PPCSubTarget->isLittleEndian())
/* 37468*/          OPC_EmitInteger, MVT::i64, 4, 
/* 37471*/          OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                        MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 37478*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTUBLX), 0,
                        MVT::i64, 2/*#Ops*/, 2, 0,  // Results = #3
/* 37486*/          OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 37489*/          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] })
/* 37497*/        /*Scope*/ 57, /*->37555*/
/* 37498*/          OPC_CheckPatternPredicate, 25, // (PPCSubTarget->hasDirectMove()) && (!PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec())
/* 37500*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 37503*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 37511*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 37514*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 37522*/          OPC_EmitNode1, TARGET_VAL(PPC::MFVSRD), 0,
                        MVT::i64, 1/*#Ops*/, 4,  // Results = #5
/* 37529*/          OPC_EmitInteger, MVT::i32, 40, 
/* 37532*/          OPC_EmitInteger, MVT::i32, 56, 
/* 37535*/          OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                        MVT::i64, 3/*#Ops*/, 5, 6, 7,  // Results = #8
/* 37544*/          OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 37547*/          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] })
/* 37555*/        /*Scope*/ 80, /*->37636*/
/* 37556*/          OPC_CheckPatternPredicate, 26, // (PPCSubTarget->hasDirectMove()) && (PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec())
/* 37558*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 37561*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 37569*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 37572*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 3,  // Results = #4
/* 37580*/          OPC_EmitInteger, MVT::i32, 2, 
/* 37583*/          OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                        MVT::v4i32, 3/*#Ops*/, 2, 4, 5,  // Results = #6
/* 37592*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 37595*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 6, 7,  // Results = #8
/* 37603*/          OPC_EmitNode1, TARGET_VAL(PPC::MFVSRD), 0,
                        MVT::i64, 1/*#Ops*/, 8,  // Results = #9
/* 37610*/          OPC_EmitInteger, MVT::i32, 32, 
/* 37613*/          OPC_EmitInteger, MVT::i32, 56, 
/* 37616*/          OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                        MVT::i64, 3/*#Ops*/, 9, 10, 11,  // Results = #12
/* 37625*/          OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 37628*/          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] })
/* 37636*/        0, /*End of Scope*/
/* 37637*/      /*Scope*/ 79|128,1/*207*/, /*->37846*/
/* 37639*/        OPC_CheckChild0Type, MVT::v8i16,
/* 37641*/        OPC_Scope, 31, /*->37674*/ // 4 children in Scope
/* 37643*/          OPC_CheckPatternPredicate, 20, // (PPCSubTarget->hasP9Altivec()) && (PPCSubTarget->isLittleEndian())
/* 37645*/          OPC_EmitInteger, MVT::i64, 8, 
/* 37648*/          OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                        MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 37655*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTUHRX), 0,
                        MVT::i64, 2/*#Ops*/, 2, 0,  // Results = #3
/* 37663*/          OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 37666*/          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] })
/* 37674*/        /*Scope*/ 31, /*->37706*/
/* 37675*/          OPC_CheckPatternPredicate, 21, // (PPCSubTarget->hasP9Altivec()) && (!PPCSubTarget->isLittleEndian())
/* 37677*/          OPC_EmitInteger, MVT::i64, 8, 
/* 37680*/          OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                        MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 37687*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTUHLX), 0,
                        MVT::i64, 2/*#Ops*/, 2, 0,  // Results = #3
/* 37695*/          OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 37698*/          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] })
/* 37706*/        /*Scope*/ 57, /*->37764*/
/* 37707*/          OPC_CheckPatternPredicate, 26, // (PPCSubTarget->hasDirectMove()) && (PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec())
/* 37709*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 37712*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 37720*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 37723*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 37731*/          OPC_EmitNode1, TARGET_VAL(PPC::MFVSRD), 0,
                        MVT::i64, 1/*#Ops*/, 4,  // Results = #5
/* 37738*/          OPC_EmitInteger, MVT::i32, 0, 
/* 37741*/          OPC_EmitInteger, MVT::i32, 48, 
/* 37744*/          OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                        MVT::i64, 3/*#Ops*/, 5, 6, 7,  // Results = #8
/* 37753*/          OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 37756*/          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] })
/* 37764*/        /*Scope*/ 80, /*->37845*/
/* 37765*/          OPC_CheckPatternPredicate, 25, // (PPCSubTarget->hasDirectMove()) && (!PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec())
/* 37767*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 37770*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 37778*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 37781*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 3,  // Results = #4
/* 37789*/          OPC_EmitInteger, MVT::i32, 2, 
/* 37792*/          OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                        MVT::v4i32, 3/*#Ops*/, 2, 4, 5,  // Results = #6
/* 37801*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 37804*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 6, 7,  // Results = #8
/* 37812*/          OPC_EmitNode1, TARGET_VAL(PPC::MFVSRD), 0,
                        MVT::i64, 1/*#Ops*/, 8,  // Results = #9
/* 37819*/          OPC_EmitInteger, MVT::i32, 16, 
/* 37822*/          OPC_EmitInteger, MVT::i32, 48, 
/* 37825*/          OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                        MVT::i64, 3/*#Ops*/, 9, 10, 11,  // Results = #12
/* 37834*/          OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 37837*/          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] })
/* 37845*/        0, /*End of Scope*/
/* 37846*/      0, /*End of Scope*/
/* 37847*/    /*Scope*/ 40|128,3/*424*/, /*->38273*/
/* 37849*/      OPC_CheckChild1Integer, 5, 
/* 37851*/      OPC_CheckType, MVT::i32,
/* 37853*/      OPC_Scope, 79|128,1/*207*/, /*->38063*/ // 2 children in Scope
/* 37856*/        OPC_CheckChild0Type, MVT::v16i8,
/* 37858*/        OPC_Scope, 31, /*->37891*/ // 4 children in Scope
/* 37860*/          OPC_CheckPatternPredicate, 20, // (PPCSubTarget->hasP9Altivec()) && (PPCSubTarget->isLittleEndian())
/* 37862*/          OPC_EmitInteger, MVT::i64, 5, 
/* 37865*/          OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                        MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 37872*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTUBRX), 0,
                        MVT::i64, 2/*#Ops*/, 2, 0,  // Results = #3
/* 37880*/          OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 37883*/          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] })
/* 37891*/        /*Scope*/ 31, /*->37923*/
/* 37892*/          OPC_CheckPatternPredicate, 21, // (PPCSubTarget->hasP9Altivec()) && (!PPCSubTarget->isLittleEndian())
/* 37894*/          OPC_EmitInteger, MVT::i64, 5, 
/* 37897*/          OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                        MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 37904*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTUBLX), 0,
                        MVT::i64, 2/*#Ops*/, 2, 0,  // Results = #3
/* 37912*/          OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 37915*/          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] })
/* 37923*/        /*Scope*/ 57, /*->37981*/
/* 37924*/          OPC_CheckPatternPredicate, 25, // (PPCSubTarget->hasDirectMove()) && (!PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec())
/* 37926*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 37929*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 37937*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 37940*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 37948*/          OPC_EmitNode1, TARGET_VAL(PPC::MFVSRD), 0,
                        MVT::i64, 1/*#Ops*/, 4,  // Results = #5
/* 37955*/          OPC_EmitInteger, MVT::i32, 48, 
/* 37958*/          OPC_EmitInteger, MVT::i32, 56, 
/* 37961*/          OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                        MVT::i64, 3/*#Ops*/, 5, 6, 7,  // Results = #8
/* 37970*/          OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 37973*/          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] })
/* 37981*/        /*Scope*/ 80, /*->38062*/
/* 37982*/          OPC_CheckPatternPredicate, 26, // (PPCSubTarget->hasDirectMove()) && (PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec())
/* 37984*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 37987*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 37995*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 37998*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 3,  // Results = #4
/* 38006*/          OPC_EmitInteger, MVT::i32, 2, 
/* 38009*/          OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                        MVT::v4i32, 3/*#Ops*/, 2, 4, 5,  // Results = #6
/* 38018*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 38021*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 6, 7,  // Results = #8
/* 38029*/          OPC_EmitNode1, TARGET_VAL(PPC::MFVSRD), 0,
                        MVT::i64, 1/*#Ops*/, 8,  // Results = #9
/* 38036*/          OPC_EmitInteger, MVT::i32, 24, 
/* 38039*/          OPC_EmitInteger, MVT::i32, 56, 
/* 38042*/          OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                        MVT::i64, 3/*#Ops*/, 9, 10, 11,  // Results = #12
/* 38051*/          OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 38054*/          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] })
/* 38062*/        0, /*End of Scope*/
/* 38063*/      /*Scope*/ 79|128,1/*207*/, /*->38272*/
/* 38065*/        OPC_CheckChild0Type, MVT::v8i16,
/* 38067*/        OPC_Scope, 31, /*->38100*/ // 4 children in Scope
/* 38069*/          OPC_CheckPatternPredicate, 20, // (PPCSubTarget->hasP9Altivec()) && (PPCSubTarget->isLittleEndian())
/* 38071*/          OPC_EmitInteger, MVT::i64, 10, 
/* 38074*/          OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                        MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 38081*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTUHRX), 0,
                        MVT::i64, 2/*#Ops*/, 2, 0,  // Results = #3
/* 38089*/          OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 38092*/          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] })
/* 38100*/        /*Scope*/ 31, /*->38132*/
/* 38101*/          OPC_CheckPatternPredicate, 21, // (PPCSubTarget->hasP9Altivec()) && (!PPCSubTarget->isLittleEndian())
/* 38103*/          OPC_EmitInteger, MVT::i64, 10, 
/* 38106*/          OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                        MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 38113*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTUHLX), 0,
                        MVT::i64, 2/*#Ops*/, 2, 0,  // Results = #3
/* 38121*/          OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 38124*/          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] })
/* 38132*/        /*Scope*/ 57, /*->38190*/
/* 38133*/          OPC_CheckPatternPredicate, 26, // (PPCSubTarget->hasDirectMove()) && (PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec())
/* 38135*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 38138*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 38146*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 38149*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 38157*/          OPC_EmitNode1, TARGET_VAL(PPC::MFVSRD), 0,
                        MVT::i64, 1/*#Ops*/, 4,  // Results = #5
/* 38164*/          OPC_EmitInteger, MVT::i32, 48, 
/* 38167*/          OPC_EmitInteger, MVT::i32, 48, 
/* 38170*/          OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                        MVT::i64, 3/*#Ops*/, 5, 6, 7,  // Results = #8
/* 38179*/          OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 38182*/          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] })
/* 38190*/        /*Scope*/ 80, /*->38271*/
/* 38191*/          OPC_CheckPatternPredicate, 25, // (PPCSubTarget->hasDirectMove()) && (!PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec())
/* 38193*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 38196*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 38204*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 38207*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 3,  // Results = #4
/* 38215*/          OPC_EmitInteger, MVT::i32, 2, 
/* 38218*/          OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                        MVT::v4i32, 3/*#Ops*/, 2, 4, 5,  // Results = #6
/* 38227*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 38230*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 6, 7,  // Results = #8
/* 38238*/          OPC_EmitNode1, TARGET_VAL(PPC::MFVSRD), 0,
                        MVT::i64, 1/*#Ops*/, 8,  // Results = #9
/* 38245*/          OPC_EmitInteger, MVT::i32, 32, 
/* 38248*/          OPC_EmitInteger, MVT::i32, 48, 
/* 38251*/          OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                        MVT::i64, 3/*#Ops*/, 9, 10, 11,  // Results = #12
/* 38260*/          OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 38263*/          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] })
/* 38271*/        0, /*End of Scope*/
/* 38272*/      0, /*End of Scope*/
/* 38273*/    /*Scope*/ 106|128,3/*490*/, /*->38765*/
/* 38275*/      OPC_CheckChild1Integer, 6, 
/* 38277*/      OPC_CheckType, MVT::i32,
/* 38279*/      OPC_Scope, 79|128,1/*207*/, /*->38489*/ // 2 children in Scope
/* 38282*/        OPC_CheckChild0Type, MVT::v16i8,
/* 38284*/        OPC_Scope, 31, /*->38317*/ // 4 children in Scope
/* 38286*/          OPC_CheckPatternPredicate, 20, // (PPCSubTarget->hasP9Altivec()) && (PPCSubTarget->isLittleEndian())
/* 38288*/          OPC_EmitInteger, MVT::i64, 6, 
/* 38291*/          OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                        MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 38298*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTUBRX), 0,
                        MVT::i64, 2/*#Ops*/, 2, 0,  // Results = #3
/* 38306*/          OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 38309*/          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] })
/* 38317*/        /*Scope*/ 31, /*->38349*/
/* 38318*/          OPC_CheckPatternPredicate, 21, // (PPCSubTarget->hasP9Altivec()) && (!PPCSubTarget->isLittleEndian())
/* 38320*/          OPC_EmitInteger, MVT::i64, 6, 
/* 38323*/          OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                        MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 38330*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTUBLX), 0,
                        MVT::i64, 2/*#Ops*/, 2, 0,  // Results = #3
/* 38338*/          OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 38341*/          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] })
/* 38349*/        /*Scope*/ 57, /*->38407*/
/* 38350*/          OPC_CheckPatternPredicate, 25, // (PPCSubTarget->hasDirectMove()) && (!PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec())
/* 38352*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 38355*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 38363*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 38366*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 38374*/          OPC_EmitNode1, TARGET_VAL(PPC::MFVSRD), 0,
                        MVT::i64, 1/*#Ops*/, 4,  // Results = #5
/* 38381*/          OPC_EmitInteger, MVT::i32, 56, 
/* 38384*/          OPC_EmitInteger, MVT::i32, 56, 
/* 38387*/          OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                        MVT::i64, 3/*#Ops*/, 5, 6, 7,  // Results = #8
/* 38396*/          OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 38399*/          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] })
/* 38407*/        /*Scope*/ 80, /*->38488*/
/* 38408*/          OPC_CheckPatternPredicate, 26, // (PPCSubTarget->hasDirectMove()) && (PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec())
/* 38410*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 38413*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 38421*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 38424*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 3,  // Results = #4
/* 38432*/          OPC_EmitInteger, MVT::i32, 2, 
/* 38435*/          OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                        MVT::v4i32, 3/*#Ops*/, 2, 4, 5,  // Results = #6
/* 38444*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 38447*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 6, 7,  // Results = #8
/* 38455*/          OPC_EmitNode1, TARGET_VAL(PPC::MFVSRD), 0,
                        MVT::i64, 1/*#Ops*/, 8,  // Results = #9
/* 38462*/          OPC_EmitInteger, MVT::i32, 16, 
/* 38465*/          OPC_EmitInteger, MVT::i32, 56, 
/* 38468*/          OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                        MVT::i64, 3/*#Ops*/, 9, 10, 11,  // Results = #12
/* 38477*/          OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 38480*/          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] })
/* 38488*/        0, /*End of Scope*/
/* 38489*/      /*Scope*/ 17|128,2/*273*/, /*->38764*/
/* 38491*/        OPC_CheckChild0Type, MVT::v8i16,
/* 38493*/        OPC_Scope, 64, /*->38559*/ // 4 children in Scope
/* 38495*/          OPC_CheckPatternPredicate, 20, // (PPCSubTarget->hasP9Altivec()) && (PPCSubTarget->isLittleEndian())
/* 38497*/          OPC_Scope, 29, /*->38528*/ // 2 children in Scope
/* 38499*/            OPC_EmitInteger, MVT::i64, 12, 
/* 38502*/            OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                          MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 38509*/            OPC_EmitNode1, TARGET_VAL(PPC::VEXTUHRX), 0,
                          MVT::i64, 2/*#Ops*/, 2, 0,  // Results = #3
/* 38517*/            OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 38520*/            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] })
/* 38528*/          /*Scope*/ 29, /*->38558*/
/* 38529*/            OPC_EmitInteger, MVT::i64, 14, 
/* 38532*/            OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                          MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 38539*/            OPC_EmitNode1, TARGET_VAL(PPC::VEXTUHRX), 0,
                          MVT::i64, 2/*#Ops*/, 2, 0,  // Results = #3
/* 38547*/            OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 38550*/            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] })
/* 38558*/          0, /*End of Scope*/
/* 38559*/        /*Scope*/ 64, /*->38624*/
/* 38560*/          OPC_CheckPatternPredicate, 21, // (PPCSubTarget->hasP9Altivec()) && (!PPCSubTarget->isLittleEndian())
/* 38562*/          OPC_Scope, 29, /*->38593*/ // 2 children in Scope
/* 38564*/            OPC_EmitInteger, MVT::i64, 12, 
/* 38567*/            OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                          MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 38574*/            OPC_EmitNode1, TARGET_VAL(PPC::VEXTUHLX), 0,
                          MVT::i64, 2/*#Ops*/, 2, 0,  // Results = #3
/* 38582*/            OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 38585*/            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] })
/* 38593*/          /*Scope*/ 29, /*->38623*/
/* 38594*/            OPC_EmitInteger, MVT::i64, 14, 
/* 38597*/            OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                          MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 38604*/            OPC_EmitNode1, TARGET_VAL(PPC::VEXTUHLX), 0,
                          MVT::i64, 2/*#Ops*/, 2, 0,  // Results = #3
/* 38612*/            OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 38615*/            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] })
/* 38623*/          0, /*End of Scope*/
/* 38624*/        /*Scope*/ 57, /*->38682*/
/* 38625*/          OPC_CheckPatternPredicate, 26, // (PPCSubTarget->hasDirectMove()) && (PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec())
/* 38627*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 38630*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 38638*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 38641*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 38649*/          OPC_EmitNode1, TARGET_VAL(PPC::MFVSRD), 0,
                        MVT::i64, 1/*#Ops*/, 4,  // Results = #5
/* 38656*/          OPC_EmitInteger, MVT::i32, 32, 
/* 38659*/          OPC_EmitInteger, MVT::i32, 48, 
/* 38662*/          OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                        MVT::i64, 3/*#Ops*/, 5, 6, 7,  // Results = #8
/* 38671*/          OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 38674*/          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] })
/* 38682*/        /*Scope*/ 80, /*->38763*/
/* 38683*/          OPC_CheckPatternPredicate, 25, // (PPCSubTarget->hasDirectMove()) && (!PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec())
/* 38685*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 38688*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 38696*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 38699*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 3,  // Results = #4
/* 38707*/          OPC_EmitInteger, MVT::i32, 2, 
/* 38710*/          OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                        MVT::v4i32, 3/*#Ops*/, 2, 4, 5,  // Results = #6
/* 38719*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 38722*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 6, 7,  // Results = #8
/* 38730*/          OPC_EmitNode1, TARGET_VAL(PPC::MFVSRD), 0,
                        MVT::i64, 1/*#Ops*/, 8,  // Results = #9
/* 38737*/          OPC_EmitInteger, MVT::i32, 48, 
/* 38740*/          OPC_EmitInteger, MVT::i32, 48, 
/* 38743*/          OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                        MVT::i64, 3/*#Ops*/, 9, 10, 11,  // Results = #12
/* 38752*/          OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 38755*/          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] })
/* 38763*/        0, /*End of Scope*/
/* 38764*/      0, /*End of Scope*/
/* 38765*/    /*Scope*/ 104|128,2/*360*/, /*->39127*/
/* 38767*/      OPC_CheckChild1Integer, 7, 
/* 38769*/      OPC_CheckType, MVT::i32,
/* 38771*/      OPC_Scope, 79|128,1/*207*/, /*->38981*/ // 2 children in Scope
/* 38774*/        OPC_CheckChild0Type, MVT::v16i8,
/* 38776*/        OPC_Scope, 31, /*->38809*/ // 4 children in Scope
/* 38778*/          OPC_CheckPatternPredicate, 20, // (PPCSubTarget->hasP9Altivec()) && (PPCSubTarget->isLittleEndian())
/* 38780*/          OPC_EmitInteger, MVT::i64, 7, 
/* 38783*/          OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                        MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 38790*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTUBRX), 0,
                        MVT::i64, 2/*#Ops*/, 2, 0,  // Results = #3
/* 38798*/          OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 38801*/          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] })
/* 38809*/        /*Scope*/ 31, /*->38841*/
/* 38810*/          OPC_CheckPatternPredicate, 21, // (PPCSubTarget->hasP9Altivec()) && (!PPCSubTarget->isLittleEndian())
/* 38812*/          OPC_EmitInteger, MVT::i64, 7, 
/* 38815*/          OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                        MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 38822*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTUBLX), 0,
                        MVT::i64, 2/*#Ops*/, 2, 0,  // Results = #3
/* 38830*/          OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 38833*/          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] })
/* 38841*/        /*Scope*/ 57, /*->38899*/
/* 38842*/          OPC_CheckPatternPredicate, 25, // (PPCSubTarget->hasDirectMove()) && (!PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec())
/* 38844*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 38847*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 38855*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 38858*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 38866*/          OPC_EmitNode1, TARGET_VAL(PPC::MFVSRD), 0,
                        MVT::i64, 1/*#Ops*/, 4,  // Results = #5
/* 38873*/          OPC_EmitInteger, MVT::i32, 0, 
/* 38876*/          OPC_EmitInteger, MVT::i32, 56, 
/* 38879*/          OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                        MVT::i64, 3/*#Ops*/, 5, 6, 7,  // Results = #8
/* 38888*/          OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 38891*/          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] })
/* 38899*/        /*Scope*/ 80, /*->38980*/
/* 38900*/          OPC_CheckPatternPredicate, 26, // (PPCSubTarget->hasDirectMove()) && (PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec())
/* 38902*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 38905*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 38913*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 38916*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 3,  // Results = #4
/* 38924*/          OPC_EmitInteger, MVT::i32, 2, 
/* 38927*/          OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                        MVT::v4i32, 3/*#Ops*/, 2, 4, 5,  // Results = #6
/* 38936*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 38939*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 6, 7,  // Results = #8
/* 38947*/          OPC_EmitNode1, TARGET_VAL(PPC::MFVSRD), 0,
                        MVT::i64, 1/*#Ops*/, 8,  // Results = #9
/* 38954*/          OPC_EmitInteger, MVT::i32, 8, 
/* 38957*/          OPC_EmitInteger, MVT::i32, 56, 
/* 38960*/          OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                        MVT::i64, 3/*#Ops*/, 9, 10, 11,  // Results = #12
/* 38969*/          OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 38972*/          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] })
/* 38980*/        0, /*End of Scope*/
/* 38981*/      /*Scope*/ 15|128,1/*143*/, /*->39126*/
/* 38983*/        OPC_CheckChild0Type, MVT::v8i16,
/* 38985*/        OPC_Scope, 57, /*->39044*/ // 2 children in Scope
/* 38987*/          OPC_CheckPatternPredicate, 26, // (PPCSubTarget->hasDirectMove()) && (PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec())
/* 38989*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 38992*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 39000*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 39003*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 39011*/          OPC_EmitNode1, TARGET_VAL(PPC::MFVSRD), 0,
                        MVT::i64, 1/*#Ops*/, 4,  // Results = #5
/* 39018*/          OPC_EmitInteger, MVT::i32, 16, 
/* 39021*/          OPC_EmitInteger, MVT::i32, 48, 
/* 39024*/          OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                        MVT::i64, 3/*#Ops*/, 5, 6, 7,  // Results = #8
/* 39033*/          OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 39036*/          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] })
/* 39044*/        /*Scope*/ 80, /*->39125*/
/* 39045*/          OPC_CheckPatternPredicate, 25, // (PPCSubTarget->hasDirectMove()) && (!PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec())
/* 39047*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 39050*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 39058*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 39061*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 3,  // Results = #4
/* 39069*/          OPC_EmitInteger, MVT::i32, 2, 
/* 39072*/          OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                        MVT::v4i32, 3/*#Ops*/, 2, 4, 5,  // Results = #6
/* 39081*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 39084*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 6, 7,  // Results = #8
/* 39092*/          OPC_EmitNode1, TARGET_VAL(PPC::MFVSRD), 0,
                        MVT::i64, 1/*#Ops*/, 8,  // Results = #9
/* 39099*/          OPC_EmitInteger, MVT::i32, 0, 
/* 39102*/          OPC_EmitInteger, MVT::i32, 48, 
/* 39105*/          OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                        MVT::i64, 3/*#Ops*/, 9, 10, 11,  // Results = #12
/* 39114*/          OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 39117*/          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] })
/* 39125*/        0, /*End of Scope*/
/* 39126*/      0, /*End of Scope*/
/* 39127*/    /*Scope*/ 83|128,1/*211*/, /*->39340*/
/* 39129*/      OPC_CheckChild1Integer, 8, 
/* 39131*/      OPC_CheckChild0Type, MVT::v16i8,
/* 39133*/      OPC_CheckType, MVT::i32,
/* 39135*/      OPC_Scope, 31, /*->39168*/ // 4 children in Scope
/* 39137*/        OPC_CheckPatternPredicate, 20, // (PPCSubTarget->hasP9Altivec()) && (PPCSubTarget->isLittleEndian())
/* 39139*/        OPC_EmitInteger, MVT::i64, 8, 
/* 39142*/        OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                      MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 39149*/        OPC_EmitNode1, TARGET_VAL(PPC::VEXTUBRX), 0,
                      MVT::i64, 2/*#Ops*/, 2, 0,  // Results = #3
/* 39157*/        OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 39160*/        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] })
/* 39168*/      /*Scope*/ 31, /*->39200*/
/* 39169*/        OPC_CheckPatternPredicate, 21, // (PPCSubTarget->hasP9Altivec()) && (!PPCSubTarget->isLittleEndian())
/* 39171*/        OPC_EmitInteger, MVT::i64, 8, 
/* 39174*/        OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                      MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 39181*/        OPC_EmitNode1, TARGET_VAL(PPC::VEXTUBLX), 0,
                      MVT::i64, 2/*#Ops*/, 2, 0,  // Results = #3
/* 39189*/        OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 39192*/        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] })
/* 39200*/      /*Scope*/ 57, /*->39258*/
/* 39201*/        OPC_CheckPatternPredicate, 26, // (PPCSubTarget->hasDirectMove()) && (PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec())
/* 39203*/        OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 39206*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v2i64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 39214*/        OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 39217*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 39225*/        OPC_EmitNode1, TARGET_VAL(PPC::MFVSRD), 0,
                      MVT::i64, 1/*#Ops*/, 4,  // Results = #5
/* 39232*/        OPC_EmitInteger, MVT::i32, 0, 
/* 39235*/        OPC_EmitInteger, MVT::i32, 56, 
/* 39238*/        OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                      MVT::i64, 3/*#Ops*/, 5, 6, 7,  // Results = #8
/* 39247*/        OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 39250*/        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] })
/* 39258*/      /*Scope*/ 80, /*->39339*/
/* 39259*/        OPC_CheckPatternPredicate, 25, // (PPCSubTarget->hasDirectMove()) && (!PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec())
/* 39261*/        OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 39264*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v4i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 39272*/        OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 39275*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v4i32, 2/*#Ops*/, 0, 3,  // Results = #4
/* 39283*/        OPC_EmitInteger, MVT::i32, 2, 
/* 39286*/        OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                      MVT::v4i32, 3/*#Ops*/, 2, 4, 5,  // Results = #6
/* 39295*/        OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 39298*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f64, 2/*#Ops*/, 6, 7,  // Results = #8
/* 39306*/        OPC_EmitNode1, TARGET_VAL(PPC::MFVSRD), 0,
                      MVT::i64, 1/*#Ops*/, 8,  // Results = #9
/* 39313*/        OPC_EmitInteger, MVT::i32, 8, 
/* 39316*/        OPC_EmitInteger, MVT::i32, 56, 
/* 39319*/        OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                      MVT::i64, 3/*#Ops*/, 9, 10, 11,  // Results = #12
/* 39328*/        OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 39331*/        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] })
/* 39339*/      0, /*End of Scope*/
/* 39340*/    /*Scope*/ 83|128,1/*211*/, /*->39553*/
/* 39342*/      OPC_CheckChild1Integer, 9, 
/* 39344*/      OPC_CheckChild0Type, MVT::v16i8,
/* 39346*/      OPC_CheckType, MVT::i32,
/* 39348*/      OPC_Scope, 31, /*->39381*/ // 4 children in Scope
/* 39350*/        OPC_CheckPatternPredicate, 20, // (PPCSubTarget->hasP9Altivec()) && (PPCSubTarget->isLittleEndian())
/* 39352*/        OPC_EmitInteger, MVT::i64, 9, 
/* 39355*/        OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                      MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 39362*/        OPC_EmitNode1, TARGET_VAL(PPC::VEXTUBRX), 0,
                      MVT::i64, 2/*#Ops*/, 2, 0,  // Results = #3
/* 39370*/        OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 39373*/        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] })
/* 39381*/      /*Scope*/ 31, /*->39413*/
/* 39382*/        OPC_CheckPatternPredicate, 21, // (PPCSubTarget->hasP9Altivec()) && (!PPCSubTarget->isLittleEndian())
/* 39384*/        OPC_EmitInteger, MVT::i64, 9, 
/* 39387*/        OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                      MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 39394*/        OPC_EmitNode1, TARGET_VAL(PPC::VEXTUBLX), 0,
                      MVT::i64, 2/*#Ops*/, 2, 0,  // Results = #3
/* 39402*/        OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 39405*/        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] })
/* 39413*/      /*Scope*/ 57, /*->39471*/
/* 39414*/        OPC_CheckPatternPredicate, 26, // (PPCSubTarget->hasDirectMove()) && (PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec())
/* 39416*/        OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 39419*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v2i64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 39427*/        OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 39430*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 39438*/        OPC_EmitNode1, TARGET_VAL(PPC::MFVSRD), 0,
                      MVT::i64, 1/*#Ops*/, 4,  // Results = #5
/* 39445*/        OPC_EmitInteger, MVT::i32, 56, 
/* 39448*/        OPC_EmitInteger, MVT::i32, 56, 
/* 39451*/        OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                      MVT::i64, 3/*#Ops*/, 5, 6, 7,  // Results = #8
/* 39460*/        OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 39463*/        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] })
/* 39471*/      /*Scope*/ 80, /*->39552*/
/* 39472*/        OPC_CheckPatternPredicate, 25, // (PPCSubTarget->hasDirectMove()) && (!PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec())
/* 39474*/        OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 39477*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v4i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 39485*/        OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 39488*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v4i32, 2/*#Ops*/, 0, 3,  // Results = #4
/* 39496*/        OPC_EmitInteger, MVT::i32, 2, 
/* 39499*/        OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                      MVT::v4i32, 3/*#Ops*/, 2, 4, 5,  // Results = #6
/* 39508*/        OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 39511*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f64, 2/*#Ops*/, 6, 7,  // Results = #8
/* 39519*/        OPC_EmitNode1, TARGET_VAL(PPC::MFVSRD), 0,
                      MVT::i64, 1/*#Ops*/, 8,  // Results = #9
/* 39526*/        OPC_EmitInteger, MVT::i32, 16, 
/* 39529*/        OPC_EmitInteger, MVT::i32, 56, 
/* 39532*/        OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                      MVT::i64, 3/*#Ops*/, 9, 10, 11,  // Results = #12
/* 39541*/        OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 39544*/        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] })
/* 39552*/      0, /*End of Scope*/
/* 39553*/    /*Scope*/ 83|128,1/*211*/, /*->39766*/
/* 39555*/      OPC_CheckChild1Integer, 10, 
/* 39557*/      OPC_CheckChild0Type, MVT::v16i8,
/* 39559*/      OPC_CheckType, MVT::i32,
/* 39561*/      OPC_Scope, 31, /*->39594*/ // 4 children in Scope
/* 39563*/        OPC_CheckPatternPredicate, 20, // (PPCSubTarget->hasP9Altivec()) && (PPCSubTarget->isLittleEndian())
/* 39565*/        OPC_EmitInteger, MVT::i64, 10, 
/* 39568*/        OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                      MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 39575*/        OPC_EmitNode1, TARGET_VAL(PPC::VEXTUBRX), 0,
                      MVT::i64, 2/*#Ops*/, 2, 0,  // Results = #3
/* 39583*/        OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 39586*/        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] })
/* 39594*/      /*Scope*/ 31, /*->39626*/
/* 39595*/        OPC_CheckPatternPredicate, 21, // (PPCSubTarget->hasP9Altivec()) && (!PPCSubTarget->isLittleEndian())
/* 39597*/        OPC_EmitInteger, MVT::i64, 10, 
/* 39600*/        OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                      MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 39607*/        OPC_EmitNode1, TARGET_VAL(PPC::VEXTUBLX), 0,
                      MVT::i64, 2/*#Ops*/, 2, 0,  // Results = #3
/* 39615*/        OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 39618*/        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] })
/* 39626*/      /*Scope*/ 57, /*->39684*/
/* 39627*/        OPC_CheckPatternPredicate, 26, // (PPCSubTarget->hasDirectMove()) && (PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec())
/* 39629*/        OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 39632*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v2i64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 39640*/        OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 39643*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 39651*/        OPC_EmitNode1, TARGET_VAL(PPC::MFVSRD), 0,
                      MVT::i64, 1/*#Ops*/, 4,  // Results = #5
/* 39658*/        OPC_EmitInteger, MVT::i32, 48, 
/* 39661*/        OPC_EmitInteger, MVT::i32, 56, 
/* 39664*/        OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                      MVT::i64, 3/*#Ops*/, 5, 6, 7,  // Results = #8
/* 39673*/        OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 39676*/        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] })
/* 39684*/      /*Scope*/ 80, /*->39765*/
/* 39685*/        OPC_CheckPatternPredicate, 25, // (PPCSubTarget->hasDirectMove()) && (!PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec())
/* 39687*/        OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 39690*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v4i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 39698*/        OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 39701*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v4i32, 2/*#Ops*/, 0, 3,  // Results = #4
/* 39709*/        OPC_EmitInteger, MVT::i32, 2, 
/* 39712*/        OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                      MVT::v4i32, 3/*#Ops*/, 2, 4, 5,  // Results = #6
/* 39721*/        OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 39724*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f64, 2/*#Ops*/, 6, 7,  // Results = #8
/* 39732*/        OPC_EmitNode1, TARGET_VAL(PPC::MFVSRD), 0,
                      MVT::i64, 1/*#Ops*/, 8,  // Results = #9
/* 39739*/        OPC_EmitInteger, MVT::i32, 24, 
/* 39742*/        OPC_EmitInteger, MVT::i32, 56, 
/* 39745*/        OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                      MVT::i64, 3/*#Ops*/, 9, 10, 11,  // Results = #12
/* 39754*/        OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 39757*/        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] })
/* 39765*/      0, /*End of Scope*/
/* 39766*/    /*Scope*/ 83|128,1/*211*/, /*->39979*/
/* 39768*/      OPC_CheckChild1Integer, 11, 
/* 39770*/      OPC_CheckChild0Type, MVT::v16i8,
/* 39772*/      OPC_CheckType, MVT::i32,
/* 39774*/      OPC_Scope, 31, /*->39807*/ // 4 children in Scope
/* 39776*/        OPC_CheckPatternPredicate, 20, // (PPCSubTarget->hasP9Altivec()) && (PPCSubTarget->isLittleEndian())
/* 39778*/        OPC_EmitInteger, MVT::i64, 11, 
/* 39781*/        OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                      MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 39788*/        OPC_EmitNode1, TARGET_VAL(PPC::VEXTUBRX), 0,
                      MVT::i64, 2/*#Ops*/, 2, 0,  // Results = #3
/* 39796*/        OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 39799*/        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] })
/* 39807*/      /*Scope*/ 31, /*->39839*/
/* 39808*/        OPC_CheckPatternPredicate, 21, // (PPCSubTarget->hasP9Altivec()) && (!PPCSubTarget->isLittleEndian())
/* 39810*/        OPC_EmitInteger, MVT::i64, 11, 
/* 39813*/        OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                      MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 39820*/        OPC_EmitNode1, TARGET_VAL(PPC::VEXTUBLX), 0,
                      MVT::i64, 2/*#Ops*/, 2, 0,  // Results = #3
/* 39828*/        OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 39831*/        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] })
/* 39839*/      /*Scope*/ 57, /*->39897*/
/* 39840*/        OPC_CheckPatternPredicate, 26, // (PPCSubTarget->hasDirectMove()) && (PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec())
/* 39842*/        OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 39845*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v2i64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 39853*/        OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 39856*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 39864*/        OPC_EmitNode1, TARGET_VAL(PPC::MFVSRD), 0,
                      MVT::i64, 1/*#Ops*/, 4,  // Results = #5
/* 39871*/        OPC_EmitInteger, MVT::i32, 40, 
/* 39874*/        OPC_EmitInteger, MVT::i32, 56, 
/* 39877*/        OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                      MVT::i64, 3/*#Ops*/, 5, 6, 7,  // Results = #8
/* 39886*/        OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 39889*/        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] })
/* 39897*/      /*Scope*/ 80, /*->39978*/
/* 39898*/        OPC_CheckPatternPredicate, 25, // (PPCSubTarget->hasDirectMove()) && (!PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec())
/* 39900*/        OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 39903*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v4i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 39911*/        OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 39914*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v4i32, 2/*#Ops*/, 0, 3,  // Results = #4
/* 39922*/        OPC_EmitInteger, MVT::i32, 2, 
/* 39925*/        OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                      MVT::v4i32, 3/*#Ops*/, 2, 4, 5,  // Results = #6
/* 39934*/        OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 39937*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f64, 2/*#Ops*/, 6, 7,  // Results = #8
/* 39945*/        OPC_EmitNode1, TARGET_VAL(PPC::MFVSRD), 0,
                      MVT::i64, 1/*#Ops*/, 8,  // Results = #9
/* 39952*/        OPC_EmitInteger, MVT::i32, 32, 
/* 39955*/        OPC_EmitInteger, MVT::i32, 56, 
/* 39958*/        OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                      MVT::i64, 3/*#Ops*/, 9, 10, 11,  // Results = #12
/* 39967*/        OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 39970*/        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] })
/* 39978*/      0, /*End of Scope*/
/* 39979*/    /*Scope*/ 83|128,1/*211*/, /*->40192*/
/* 39981*/      OPC_CheckChild1Integer, 12, 
/* 39983*/      OPC_CheckChild0Type, MVT::v16i8,
/* 39985*/      OPC_CheckType, MVT::i32,
/* 39987*/      OPC_Scope, 31, /*->40020*/ // 4 children in Scope
/* 39989*/        OPC_CheckPatternPredicate, 20, // (PPCSubTarget->hasP9Altivec()) && (PPCSubTarget->isLittleEndian())
/* 39991*/        OPC_EmitInteger, MVT::i64, 12, 
/* 39994*/        OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                      MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 40001*/        OPC_EmitNode1, TARGET_VAL(PPC::VEXTUBRX), 0,
                      MVT::i64, 2/*#Ops*/, 2, 0,  // Results = #3
/* 40009*/        OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 40012*/        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] })
/* 40020*/      /*Scope*/ 31, /*->40052*/
/* 40021*/        OPC_CheckPatternPredicate, 21, // (PPCSubTarget->hasP9Altivec()) && (!PPCSubTarget->isLittleEndian())
/* 40023*/        OPC_EmitInteger, MVT::i64, 12, 
/* 40026*/        OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                      MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 40033*/        OPC_EmitNode1, TARGET_VAL(PPC::VEXTUBLX), 0,
                      MVT::i64, 2/*#Ops*/, 2, 0,  // Results = #3
/* 40041*/        OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 40044*/        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] })
/* 40052*/      /*Scope*/ 57, /*->40110*/
/* 40053*/        OPC_CheckPatternPredicate, 26, // (PPCSubTarget->hasDirectMove()) && (PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec())
/* 40055*/        OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 40058*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v2i64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 40066*/        OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 40069*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 40077*/        OPC_EmitNode1, TARGET_VAL(PPC::MFVSRD), 0,
                      MVT::i64, 1/*#Ops*/, 4,  // Results = #5
/* 40084*/        OPC_EmitInteger, MVT::i32, 32, 
/* 40087*/        OPC_EmitInteger, MVT::i32, 56, 
/* 40090*/        OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                      MVT::i64, 3/*#Ops*/, 5, 6, 7,  // Results = #8
/* 40099*/        OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 40102*/        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] })
/* 40110*/      /*Scope*/ 80, /*->40191*/
/* 40111*/        OPC_CheckPatternPredicate, 25, // (PPCSubTarget->hasDirectMove()) && (!PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec())
/* 40113*/        OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 40116*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v4i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 40124*/        OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 40127*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v4i32, 2/*#Ops*/, 0, 3,  // Results = #4
/* 40135*/        OPC_EmitInteger, MVT::i32, 2, 
/* 40138*/        OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                      MVT::v4i32, 3/*#Ops*/, 2, 4, 5,  // Results = #6
/* 40147*/        OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 40150*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f64, 2/*#Ops*/, 6, 7,  // Results = #8
/* 40158*/        OPC_EmitNode1, TARGET_VAL(PPC::MFVSRD), 0,
                      MVT::i64, 1/*#Ops*/, 8,  // Results = #9
/* 40165*/        OPC_EmitInteger, MVT::i32, 40, 
/* 40168*/        OPC_EmitInteger, MVT::i32, 56, 
/* 40171*/        OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                      MVT::i64, 3/*#Ops*/, 9, 10, 11,  // Results = #12
/* 40180*/        OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 40183*/        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] })
/* 40191*/      0, /*End of Scope*/
/* 40192*/    /*Scope*/ 83|128,1/*211*/, /*->40405*/
/* 40194*/      OPC_CheckChild1Integer, 13, 
/* 40196*/      OPC_CheckChild0Type, MVT::v16i8,
/* 40198*/      OPC_CheckType, MVT::i32,
/* 40200*/      OPC_Scope, 31, /*->40233*/ // 4 children in Scope
/* 40202*/        OPC_CheckPatternPredicate, 20, // (PPCSubTarget->hasP9Altivec()) && (PPCSubTarget->isLittleEndian())
/* 40204*/        OPC_EmitInteger, MVT::i64, 13, 
/* 40207*/        OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                      MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 40214*/        OPC_EmitNode1, TARGET_VAL(PPC::VEXTUBRX), 0,
                      MVT::i64, 2/*#Ops*/, 2, 0,  // Results = #3
/* 40222*/        OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 40225*/        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] })
/* 40233*/      /*Scope*/ 31, /*->40265*/
/* 40234*/        OPC_CheckPatternPredicate, 21, // (PPCSubTarget->hasP9Altivec()) && (!PPCSubTarget->isLittleEndian())
/* 40236*/        OPC_EmitInteger, MVT::i64, 13, 
/* 40239*/        OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                      MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 40246*/        OPC_EmitNode1, TARGET_VAL(PPC::VEXTUBLX), 0,
                      MVT::i64, 2/*#Ops*/, 2, 0,  // Results = #3
/* 40254*/        OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 40257*/        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] })
/* 40265*/      /*Scope*/ 57, /*->40323*/
/* 40266*/        OPC_CheckPatternPredicate, 26, // (PPCSubTarget->hasDirectMove()) && (PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec())
/* 40268*/        OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 40271*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v2i64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 40279*/        OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 40282*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 40290*/        OPC_EmitNode1, TARGET_VAL(PPC::MFVSRD), 0,
                      MVT::i64, 1/*#Ops*/, 4,  // Results = #5
/* 40297*/        OPC_EmitInteger, MVT::i32, 24, 
/* 40300*/        OPC_EmitInteger, MVT::i32, 56, 
/* 40303*/        OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                      MVT::i64, 3/*#Ops*/, 5, 6, 7,  // Results = #8
/* 40312*/        OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 40315*/        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] })
/* 40323*/      /*Scope*/ 80, /*->40404*/
/* 40324*/        OPC_CheckPatternPredicate, 25, // (PPCSubTarget->hasDirectMove()) && (!PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec())
/* 40326*/        OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 40329*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v4i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 40337*/        OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 40340*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v4i32, 2/*#Ops*/, 0, 3,  // Results = #4
/* 40348*/        OPC_EmitInteger, MVT::i32, 2, 
/* 40351*/        OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                      MVT::v4i32, 3/*#Ops*/, 2, 4, 5,  // Results = #6
/* 40360*/        OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 40363*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f64, 2/*#Ops*/, 6, 7,  // Results = #8
/* 40371*/        OPC_EmitNode1, TARGET_VAL(PPC::MFVSRD), 0,
                      MVT::i64, 1/*#Ops*/, 8,  // Results = #9
/* 40378*/        OPC_EmitInteger, MVT::i32, 48, 
/* 40381*/        OPC_EmitInteger, MVT::i32, 56, 
/* 40384*/        OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                      MVT::i64, 3/*#Ops*/, 9, 10, 11,  // Results = #12
/* 40393*/        OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 40396*/        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] })
/* 40404*/      0, /*End of Scope*/
/* 40405*/    /*Scope*/ 83|128,1/*211*/, /*->40618*/
/* 40407*/      OPC_CheckChild1Integer, 14, 
/* 40409*/      OPC_CheckChild0Type, MVT::v16i8,
/* 40411*/      OPC_CheckType, MVT::i32,
/* 40413*/      OPC_Scope, 31, /*->40446*/ // 4 children in Scope
/* 40415*/        OPC_CheckPatternPredicate, 20, // (PPCSubTarget->hasP9Altivec()) && (PPCSubTarget->isLittleEndian())
/* 40417*/        OPC_EmitInteger, MVT::i64, 14, 
/* 40420*/        OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                      MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 40427*/        OPC_EmitNode1, TARGET_VAL(PPC::VEXTUBRX), 0,
                      MVT::i64, 2/*#Ops*/, 2, 0,  // Results = #3
/* 40435*/        OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 40438*/        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] })
/* 40446*/      /*Scope*/ 31, /*->40478*/
/* 40447*/        OPC_CheckPatternPredicate, 21, // (PPCSubTarget->hasP9Altivec()) && (!PPCSubTarget->isLittleEndian())
/* 40449*/        OPC_EmitInteger, MVT::i64, 14, 
/* 40452*/        OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                      MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 40459*/        OPC_EmitNode1, TARGET_VAL(PPC::VEXTUBLX), 0,
                      MVT::i64, 2/*#Ops*/, 2, 0,  // Results = #3
/* 40467*/        OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 40470*/        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] })
/* 40478*/      /*Scope*/ 57, /*->40536*/
/* 40479*/        OPC_CheckPatternPredicate, 26, // (PPCSubTarget->hasDirectMove()) && (PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec())
/* 40481*/        OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 40484*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v2i64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 40492*/        OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 40495*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 40503*/        OPC_EmitNode1, TARGET_VAL(PPC::MFVSRD), 0,
                      MVT::i64, 1/*#Ops*/, 4,  // Results = #5
/* 40510*/        OPC_EmitInteger, MVT::i32, 16, 
/* 40513*/        OPC_EmitInteger, MVT::i32, 56, 
/* 40516*/        OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                      MVT::i64, 3/*#Ops*/, 5, 6, 7,  // Results = #8
/* 40525*/        OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 40528*/        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] })
/* 40536*/      /*Scope*/ 80, /*->40617*/
/* 40537*/        OPC_CheckPatternPredicate, 25, // (PPCSubTarget->hasDirectMove()) && (!PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec())
/* 40539*/        OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 40542*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v4i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 40550*/        OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 40553*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v4i32, 2/*#Ops*/, 0, 3,  // Results = #4
/* 40561*/        OPC_EmitInteger, MVT::i32, 2, 
/* 40564*/        OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                      MVT::v4i32, 3/*#Ops*/, 2, 4, 5,  // Results = #6
/* 40573*/        OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 40576*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f64, 2/*#Ops*/, 6, 7,  // Results = #8
/* 40584*/        OPC_EmitNode1, TARGET_VAL(PPC::MFVSRD), 0,
                      MVT::i64, 1/*#Ops*/, 8,  // Results = #9
/* 40591*/        OPC_EmitInteger, MVT::i32, 56, 
/* 40594*/        OPC_EmitInteger, MVT::i32, 56, 
/* 40597*/        OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                      MVT::i64, 3/*#Ops*/, 9, 10, 11,  // Results = #12
/* 40606*/        OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 40609*/        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] })
/* 40617*/      0, /*End of Scope*/
/* 40618*/    /*Scope*/ 83|128,1/*211*/, /*->40831*/
/* 40620*/      OPC_CheckChild1Integer, 15, 
/* 40622*/      OPC_CheckChild0Type, MVT::v16i8,
/* 40624*/      OPC_CheckType, MVT::i32,
/* 40626*/      OPC_Scope, 31, /*->40659*/ // 4 children in Scope
/* 40628*/        OPC_CheckPatternPredicate, 20, // (PPCSubTarget->hasP9Altivec()) && (PPCSubTarget->isLittleEndian())
/* 40630*/        OPC_EmitInteger, MVT::i64, 15, 
/* 40633*/        OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                      MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 40640*/        OPC_EmitNode1, TARGET_VAL(PPC::VEXTUBRX), 0,
                      MVT::i64, 2/*#Ops*/, 2, 0,  // Results = #3
/* 40648*/        OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 40651*/        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] })
/* 40659*/      /*Scope*/ 31, /*->40691*/
/* 40660*/        OPC_CheckPatternPredicate, 21, // (PPCSubTarget->hasP9Altivec()) && (!PPCSubTarget->isLittleEndian())
/* 40662*/        OPC_EmitInteger, MVT::i64, 15, 
/* 40665*/        OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                      MVT::i64, 1/*#Ops*/, 1,  // Results = #2
/* 40672*/        OPC_EmitNode1, TARGET_VAL(PPC::VEXTUBLX), 0,
                      MVT::i64, 2/*#Ops*/, 2, 0,  // Results = #3
/* 40680*/        OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 40683*/        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] })
/* 40691*/      /*Scope*/ 57, /*->40749*/
/* 40692*/        OPC_CheckPatternPredicate, 26, // (PPCSubTarget->hasDirectMove()) && (PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec())
/* 40694*/        OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 40697*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v2i64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 40705*/        OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 40708*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 40716*/        OPC_EmitNode1, TARGET_VAL(PPC::MFVSRD), 0,
                      MVT::i64, 1/*#Ops*/, 4,  // Results = #5
/* 40723*/        OPC_EmitInteger, MVT::i32, 8, 
/* 40726*/        OPC_EmitInteger, MVT::i32, 56, 
/* 40729*/        OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                      MVT::i64, 3/*#Ops*/, 5, 6, 7,  // Results = #8
/* 40738*/        OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 40741*/        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] })
/* 40749*/      /*Scope*/ 80, /*->40830*/
/* 40750*/        OPC_CheckPatternPredicate, 25, // (PPCSubTarget->hasDirectMove()) && (!PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec())
/* 40752*/        OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 40755*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v4i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 40763*/        OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 40766*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v4i32, 2/*#Ops*/, 0, 3,  // Results = #4
/* 40774*/        OPC_EmitInteger, MVT::i32, 2, 
/* 40777*/        OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                      MVT::v4i32, 3/*#Ops*/, 2, 4, 5,  // Results = #6
/* 40786*/        OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 40789*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f64, 2/*#Ops*/, 6, 7,  // Results = #8
/* 40797*/        OPC_EmitNode1, TARGET_VAL(PPC::MFVSRD), 0,
                      MVT::i64, 1/*#Ops*/, 8,  // Results = #9
/* 40804*/        OPC_EmitInteger, MVT::i32, 0, 
/* 40807*/        OPC_EmitInteger, MVT::i32, 56, 
/* 40810*/        OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                      MVT::i64, 3/*#Ops*/, 9, 10, 11,  // Results = #12
/* 40819*/        OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 40822*/        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] })
/* 40830*/      0, /*End of Scope*/
/* 40831*/    /*Scope*/ 60|128,2/*316*/, /*->41149*/
/* 40833*/      OPC_CheckChild0Type, MVT::v16i8,
/* 40835*/      OPC_RecordChild1, // #1 = $Idx
/* 40836*/      OPC_CheckChild1Type, MVT::i64,
/* 40838*/      OPC_CheckType, MVT::i32,
/* 40840*/      OPC_Scope, 21, /*->40863*/ // 4 children in Scope
/* 40842*/        OPC_CheckPatternPredicate, 20, // (PPCSubTarget->hasP9Altivec()) && (PPCSubTarget->isLittleEndian())
/* 40844*/        OPC_EmitNode1, TARGET_VAL(PPC::VEXTUBRX), 0,
                      MVT::i64, 2/*#Ops*/, 1, 0,  // Results = #2
/* 40852*/        OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 40855*/        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] })
/* 40863*/      /*Scope*/ 21, /*->40885*/
/* 40864*/        OPC_CheckPatternPredicate, 21, // (PPCSubTarget->hasP9Altivec()) && (!PPCSubTarget->isLittleEndian())
/* 40866*/        OPC_EmitNode1, TARGET_VAL(PPC::VEXTUBLX), 0,
                      MVT::i64, 2/*#Ops*/, 1, 0,  // Results = #2
/* 40874*/        OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 40877*/        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] })
/* 40885*/      /*Scope*/ 127, /*->41013*/
/* 40886*/        OPC_CheckPatternPredicate, 25, // (PPCSubTarget->hasDirectMove()) && (!PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec())
/* 40888*/        OPC_EmitRegister2, MVT::i64, TARGET_VAL(PPC::ZERO8),
/* 40892*/        OPC_EmitInteger, MVT::i64, 8, 
/* 40895*/        OPC_EmitNode2, TARGET_VAL(PPC::ANDI8_rec), 0,
                      MVT::i64, MVT::i32, 2/*#Ops*/, 1, 3,  // Results = #4 #5
/* 40904*/        OPC_EmitNode1, TARGET_VAL(PPC::LVSL), 0,
                      MVT::v16i8, 2/*#Ops*/, 2, 4,  // Results = #6
/* 40912*/        OPC_EmitNode1, TARGET_VAL(PPC::VPERM), 0,
                      MVT::v16i8, 3/*#Ops*/, 0, 0, 6,  // Results = #7
/* 40921*/        OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 40924*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v2i64, 2/*#Ops*/, 7, 8,  // Results = #9
/* 40932*/        OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 40935*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f64, 2/*#Ops*/, 9, 10,  // Results = #11
/* 40943*/        OPC_EmitNode1, TARGET_VAL(PPC::MFVSRD), 0,
                      MVT::i64, 1/*#Ops*/, 11,  // Results = #12
/* 40950*/        OPC_EmitInteger, MVT::i64, 7, 
/* 40953*/        OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                      MVT::i64, 1/*#Ops*/, 13,  // Results = #14
/* 40960*/        OPC_EmitNode1, TARGET_VAL(PPC::ANDC8), 0,
                      MVT::i64, 2/*#Ops*/, 14, 1,  // Results = #15
/* 40968*/        OPC_EmitInteger, MVT::i32, 3, 
/* 40971*/        OPC_EmitInteger, MVT::i32, 60, 
/* 40974*/        OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                      MVT::i64, 3/*#Ops*/, 15, 16, 17,  // Results = #18
/* 40983*/        OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 40986*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i32, 2/*#Ops*/, 18, 19,  // Results = #20
/* 40994*/        OPC_EmitNode1, TARGET_VAL(PPC::SRD), 0,
                      MVT::i64, 2/*#Ops*/, 12, 20,  // Results = #21
/* 41002*/        OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 41005*/        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] }, (ANDI8_rec:{ *:[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] })
/* 41013*/      /*Scope*/ 5|128,1/*133*/, /*->41148*/
/* 41015*/        OPC_CheckPatternPredicate, 26, // (PPCSubTarget->hasDirectMove()) && (PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec())
/* 41017*/        OPC_EmitRegister2, MVT::i64, TARGET_VAL(PPC::ZERO8),
/* 41021*/        OPC_EmitInteger, MVT::i64, 8, 
/* 41024*/        OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                      MVT::i64, 1/*#Ops*/, 3,  // Results = #4
/* 41031*/        OPC_EmitNode1, TARGET_VAL(PPC::ANDC8), 0,
                      MVT::i64, 2/*#Ops*/, 4, 1,  // Results = #5
/* 41039*/        OPC_EmitNode1, TARGET_VAL(PPC::LVSL), 0,
                      MVT::v16i8, 2/*#Ops*/, 2, 5,  // Results = #6
/* 41047*/        OPC_EmitNode1, TARGET_VAL(PPC::VPERM), 0,
                      MVT::v16i8, 3/*#Ops*/, 0, 0, 6,  // Results = #7
/* 41056*/        OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 41059*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v2i64, 2/*#Ops*/, 7, 8,  // Results = #9
/* 41067*/        OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 41070*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f64, 2/*#Ops*/, 9, 10,  // Results = #11
/* 41078*/        OPC_EmitNode1, TARGET_VAL(PPC::MFVSRD), 0,
                      MVT::i64, 1/*#Ops*/, 11,  // Results = #12
/* 41085*/        OPC_EmitInteger, MVT::i64, 7, 
/* 41088*/        OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                      MVT::i64, 1/*#Ops*/, 13,  // Results = #14
/* 41095*/        OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                      MVT::i64, 2/*#Ops*/, 14, 1,  // Results = #15
/* 41103*/        OPC_EmitInteger, MVT::i32, 3, 
/* 41106*/        OPC_EmitInteger, MVT::i32, 60, 
/* 41109*/        OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                      MVT::i64, 3/*#Ops*/, 15, 16, 17,  // Results = #18
/* 41118*/        OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 41121*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i32, 2/*#Ops*/, 18, 19,  // Results = #20
/* 41129*/        OPC_EmitNode1, TARGET_VAL(PPC::SRD), 0,
                      MVT::i64, 2/*#Ops*/, 12, 20,  // Results = #21
/* 41137*/        OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 41140*/        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] })
/* 41148*/      0, /*End of Scope*/
/* 41149*/    /*Scope*/ 1|128,3/*385*/, /*->41536*/
/* 41151*/      OPC_CheckChild0Type, MVT::v8i16,
/* 41153*/      OPC_RecordChild1, // #1 = $Idx
/* 41154*/      OPC_CheckChild1Type, MVT::i64,
/* 41156*/      OPC_CheckType, MVT::i32,
/* 41158*/      OPC_Scope, 40, /*->41200*/ // 4 children in Scope
/* 41160*/        OPC_CheckPatternPredicate, 20, // (PPCSubTarget->hasP9Altivec()) && (PPCSubTarget->isLittleEndian())
/* 41162*/        OPC_EmitInteger, MVT::i32, 1, 
/* 41165*/        OPC_EmitInteger, MVT::i32, 28, 
/* 41168*/        OPC_EmitInteger, MVT::i32, 30, 
/* 41171*/        OPC_EmitNode1, TARGET_VAL(PPC::RLWINM8), 0,
                      MVT::i64, 4/*#Ops*/, 1, 2, 3, 4,  // Results = #5
/* 41181*/        OPC_EmitNode1, TARGET_VAL(PPC::VEXTUHRX), 0,
                      MVT::i64, 2/*#Ops*/, 5, 0,  // Results = #6
/* 41189*/        OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 41192*/        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] })
/* 41200*/      /*Scope*/ 40, /*->41241*/
/* 41201*/        OPC_CheckPatternPredicate, 21, // (PPCSubTarget->hasP9Altivec()) && (!PPCSubTarget->isLittleEndian())
/* 41203*/        OPC_EmitInteger, MVT::i32, 1, 
/* 41206*/        OPC_EmitInteger, MVT::i32, 28, 
/* 41209*/        OPC_EmitInteger, MVT::i32, 30, 
/* 41212*/        OPC_EmitNode1, TARGET_VAL(PPC::RLWINM8), 0,
                      MVT::i64, 4/*#Ops*/, 1, 2, 3, 4,  // Results = #5
/* 41222*/        OPC_EmitNode1, TARGET_VAL(PPC::VEXTUHLX), 0,
                      MVT::i64, 2/*#Ops*/, 5, 0,  // Results = #6
/* 41230*/        OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 41233*/        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] })
/* 41241*/      /*Scope*/ 14|128,1/*142*/, /*->41385*/
/* 41243*/        OPC_CheckPatternPredicate, 25, // (PPCSubTarget->hasDirectMove()) && (!PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec())
/* 41245*/        OPC_EmitRegister2, MVT::i64, TARGET_VAL(PPC::ZERO8),
/* 41249*/        OPC_EmitInteger, MVT::i64, 4, 
/* 41252*/        OPC_EmitNode2, TARGET_VAL(PPC::ANDI8_rec), 0,
                      MVT::i64, MVT::i32, 2/*#Ops*/, 1, 3,  // Results = #4 #5
/* 41261*/        OPC_EmitInteger, MVT::i32, 1, 
/* 41264*/        OPC_EmitInteger, MVT::i32, 62, 
/* 41267*/        OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                      MVT::i64, 3/*#Ops*/, 4, 6, 7,  // Results = #8
/* 41276*/        OPC_EmitNode1, TARGET_VAL(PPC::LVSL), 0,
                      MVT::v16i8, 2/*#Ops*/, 2, 8,  // Results = #9
/* 41284*/        OPC_EmitNode1, TARGET_VAL(PPC::VPERM), 0,
                      MVT::v16i8, 3/*#Ops*/, 0, 0, 9,  // Results = #10
/* 41293*/        OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 41296*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v2i64, 2/*#Ops*/, 10, 11,  // Results = #12
/* 41304*/        OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 41307*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f64, 2/*#Ops*/, 12, 13,  // Results = #14
/* 41315*/        OPC_EmitNode1, TARGET_VAL(PPC::MFVSRD), 0,
                      MVT::i64, 1/*#Ops*/, 14,  // Results = #15
/* 41322*/        OPC_EmitInteger, MVT::i64, 3, 
/* 41325*/        OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                      MVT::i64, 1/*#Ops*/, 16,  // Results = #17
/* 41332*/        OPC_EmitNode1, TARGET_VAL(PPC::ANDC8), 0,
                      MVT::i64, 2/*#Ops*/, 17, 1,  // Results = #18
/* 41340*/        OPC_EmitInteger, MVT::i32, 4, 
/* 41343*/        OPC_EmitInteger, MVT::i32, 59, 
/* 41346*/        OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                      MVT::i64, 3/*#Ops*/, 18, 19, 20,  // Results = #21
/* 41355*/        OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 41358*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i32, 2/*#Ops*/, 21, 22,  // Results = #23
/* 41366*/        OPC_EmitNode1, TARGET_VAL(PPC::SRD), 0,
                      MVT::i64, 2/*#Ops*/, 15, 23,  // Results = #24
/* 41374*/        OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 41377*/        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] } (ANDI8_rec:{ *:[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] })
/* 41385*/      /*Scope*/ 20|128,1/*148*/, /*->41535*/
/* 41387*/        OPC_CheckPatternPredicate, 26, // (PPCSubTarget->hasDirectMove()) && (PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec())
/* 41389*/        OPC_EmitRegister2, MVT::i64, TARGET_VAL(PPC::ZERO8),
/* 41393*/        OPC_EmitInteger, MVT::i64, 4, 
/* 41396*/        OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                      MVT::i64, 1/*#Ops*/, 3,  // Results = #4
/* 41403*/        OPC_EmitNode1, TARGET_VAL(PPC::ANDC8), 0,
                      MVT::i64, 2/*#Ops*/, 4, 1,  // Results = #5
/* 41411*/        OPC_EmitInteger, MVT::i32, 1, 
/* 41414*/        OPC_EmitInteger, MVT::i32, 62, 
/* 41417*/        OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                      MVT::i64, 3/*#Ops*/, 5, 6, 7,  // Results = #8
/* 41426*/        OPC_EmitNode1, TARGET_VAL(PPC::LVSL), 0,
                      MVT::v16i8, 2/*#Ops*/, 2, 8,  // Results = #9
/* 41434*/        OPC_EmitNode1, TARGET_VAL(PPC::VPERM), 0,
                      MVT::v16i8, 3/*#Ops*/, 0, 0, 9,  // Results = #10
/* 41443*/        OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 41446*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v2i64, 2/*#Ops*/, 10, 11,  // Results = #12
/* 41454*/        OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 41457*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f64, 2/*#Ops*/, 12, 13,  // Results = #14
/* 41465*/        OPC_EmitNode1, TARGET_VAL(PPC::MFVSRD), 0,
                      MVT::i64, 1/*#Ops*/, 14,  // Results = #15
/* 41472*/        OPC_EmitInteger, MVT::i64, 3, 
/* 41475*/        OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                      MVT::i64, 1/*#Ops*/, 16,  // Results = #17
/* 41482*/        OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                      MVT::i64, 2/*#Ops*/, 17, 1,  // Results = #18
/* 41490*/        OPC_EmitInteger, MVT::i32, 4, 
/* 41493*/        OPC_EmitInteger, MVT::i32, 59, 
/* 41496*/        OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                      MVT::i64, 3/*#Ops*/, 18, 19, 20,  // Results = #21
/* 41505*/        OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 41508*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i32, 2/*#Ops*/, 21, 22,  // Results = #23
/* 41516*/        OPC_EmitNode1, TARGET_VAL(PPC::SRD), 0,
                      MVT::i64, 2/*#Ops*/, 15, 23,  // Results = #24
/* 41524*/        OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 41527*/        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] })
/* 41535*/      0, /*End of Scope*/
/* 41536*/    /*Scope*/ 1|128,3/*385*/, /*->41923*/
/* 41538*/      OPC_CheckChild0Type, MVT::v4i32,
/* 41540*/      OPC_RecordChild1, // #1 = $Idx
/* 41541*/      OPC_CheckChild1Type, MVT::i64,
/* 41543*/      OPC_CheckType, MVT::i32,
/* 41545*/      OPC_Scope, 40, /*->41587*/ // 4 children in Scope
/* 41547*/        OPC_CheckPatternPredicate, 20, // (PPCSubTarget->hasP9Altivec()) && (PPCSubTarget->isLittleEndian())
/* 41549*/        OPC_EmitInteger, MVT::i32, 2, 
/* 41552*/        OPC_EmitInteger, MVT::i32, 28, 
/* 41555*/        OPC_EmitInteger, MVT::i32, 29, 
/* 41558*/        OPC_EmitNode1, TARGET_VAL(PPC::RLWINM8), 0,
                      MVT::i64, 4/*#Ops*/, 1, 2, 3, 4,  // Results = #5
/* 41568*/        OPC_EmitNode1, TARGET_VAL(PPC::VEXTUWRX), 0,
                      MVT::i64, 2/*#Ops*/, 5, 0,  // Results = #6
/* 41576*/        OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 41579*/        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] })
/* 41587*/      /*Scope*/ 40, /*->41628*/
/* 41588*/        OPC_CheckPatternPredicate, 21, // (PPCSubTarget->hasP9Altivec()) && (!PPCSubTarget->isLittleEndian())
/* 41590*/        OPC_EmitInteger, MVT::i32, 2, 
/* 41593*/        OPC_EmitInteger, MVT::i32, 28, 
/* 41596*/        OPC_EmitInteger, MVT::i32, 29, 
/* 41599*/        OPC_EmitNode1, TARGET_VAL(PPC::RLWINM8), 0,
                      MVT::i64, 4/*#Ops*/, 1, 2, 3, 4,  // Results = #5
/* 41609*/        OPC_EmitNode1, TARGET_VAL(PPC::VEXTUWLX), 0,
                      MVT::i64, 2/*#Ops*/, 5, 0,  // Results = #6
/* 41617*/        OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 41620*/        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] })
/* 41628*/      /*Scope*/ 14|128,1/*142*/, /*->41772*/
/* 41630*/        OPC_CheckPatternPredicate, 25, // (PPCSubTarget->hasDirectMove()) && (!PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec())
/* 41632*/        OPC_EmitRegister2, MVT::i64, TARGET_VAL(PPC::ZERO8),
/* 41636*/        OPC_EmitInteger, MVT::i64, 2, 
/* 41639*/        OPC_EmitNode2, TARGET_VAL(PPC::ANDI8_rec), 0,
                      MVT::i64, MVT::i32, 2/*#Ops*/, 1, 3,  // Results = #4 #5
/* 41648*/        OPC_EmitInteger, MVT::i32, 2, 
/* 41651*/        OPC_EmitInteger, MVT::i32, 61, 
/* 41654*/        OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                      MVT::i64, 3/*#Ops*/, 4, 6, 7,  // Results = #8
/* 41663*/        OPC_EmitNode1, TARGET_VAL(PPC::LVSL), 0,
                      MVT::v16i8, 2/*#Ops*/, 2, 8,  // Results = #9
/* 41671*/        OPC_EmitNode1, TARGET_VAL(PPC::VPERM), 0,
                      MVT::v16i8, 3/*#Ops*/, 0, 0, 9,  // Results = #10
/* 41680*/        OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 41683*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v2i64, 2/*#Ops*/, 10, 11,  // Results = #12
/* 41691*/        OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 41694*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f64, 2/*#Ops*/, 12, 13,  // Results = #14
/* 41702*/        OPC_EmitNode1, TARGET_VAL(PPC::MFVSRD), 0,
                      MVT::i64, 1/*#Ops*/, 14,  // Results = #15
/* 41709*/        OPC_EmitInteger, MVT::i64, 1, 
/* 41712*/        OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                      MVT::i64, 1/*#Ops*/, 16,  // Results = #17
/* 41719*/        OPC_EmitNode1, TARGET_VAL(PPC::ANDC8), 0,
                      MVT::i64, 2/*#Ops*/, 17, 1,  // Results = #18
/* 41727*/        OPC_EmitInteger, MVT::i32, 5, 
/* 41730*/        OPC_EmitInteger, MVT::i32, 58, 
/* 41733*/        OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                      MVT::i64, 3/*#Ops*/, 18, 19, 20,  // Results = #21
/* 41742*/        OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 41745*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i32, 2/*#Ops*/, 21, 22,  // Results = #23
/* 41753*/        OPC_EmitNode1, TARGET_VAL(PPC::SRD), 0,
                      MVT::i64, 2/*#Ops*/, 15, 23,  // Results = #24
/* 41761*/        OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 41764*/        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] } (ANDI8_rec:{ *:[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] })
/* 41772*/      /*Scope*/ 20|128,1/*148*/, /*->41922*/
/* 41774*/        OPC_CheckPatternPredicate, 26, // (PPCSubTarget->hasDirectMove()) && (PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Altivec())
/* 41776*/        OPC_EmitRegister2, MVT::i64, TARGET_VAL(PPC::ZERO8),
/* 41780*/        OPC_EmitInteger, MVT::i64, 2, 
/* 41783*/        OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                      MVT::i64, 1/*#Ops*/, 3,  // Results = #4
/* 41790*/        OPC_EmitNode1, TARGET_VAL(PPC::ANDC8), 0,
                      MVT::i64, 2/*#Ops*/, 4, 1,  // Results = #5
/* 41798*/        OPC_EmitInteger, MVT::i32, 2, 
/* 41801*/        OPC_EmitInteger, MVT::i32, 61, 
/* 41804*/        OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                      MVT::i64, 3/*#Ops*/, 5, 6, 7,  // Results = #8
/* 41813*/        OPC_EmitNode1, TARGET_VAL(PPC::LVSL), 0,
                      MVT::v16i8, 2/*#Ops*/, 2, 8,  // Results = #9
/* 41821*/        OPC_EmitNode1, TARGET_VAL(PPC::VPERM), 0,
                      MVT::v16i8, 3/*#Ops*/, 0, 0, 9,  // Results = #10
/* 41830*/        OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 41833*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v2i64, 2/*#Ops*/, 10, 11,  // Results = #12
/* 41841*/        OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 41844*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f64, 2/*#Ops*/, 12, 13,  // Results = #14
/* 41852*/        OPC_EmitNode1, TARGET_VAL(PPC::MFVSRD), 0,
                      MVT::i64, 1/*#Ops*/, 14,  // Results = #15
/* 41859*/        OPC_EmitInteger, MVT::i64, 1, 
/* 41862*/        OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                      MVT::i64, 1/*#Ops*/, 16,  // Results = #17
/* 41869*/        OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                      MVT::i64, 2/*#Ops*/, 17, 1,  // Results = #18
/* 41877*/        OPC_EmitInteger, MVT::i32, 5, 
/* 41880*/        OPC_EmitInteger, MVT::i32, 58, 
/* 41883*/        OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                      MVT::i64, 3/*#Ops*/, 18, 19, 20,  // Results = #21
/* 41892*/        OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 41895*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i32, 2/*#Ops*/, 21, 22,  // Results = #23
/* 41903*/        OPC_EmitNode1, TARGET_VAL(PPC::SRD), 0,
                      MVT::i64, 2/*#Ops*/, 15, 23,  // Results = #24
/* 41911*/        OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 41914*/        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] })
/* 41922*/      0, /*End of Scope*/
/* 41923*/    /*Scope*/ 47|128,1/*175*/, /*->42100*/
/* 41925*/      OPC_CheckChild0Type, MVT::v2i64,
/* 41927*/      OPC_RecordChild1, // #1 = $Idx
/* 41928*/      OPC_CheckChild1Type, MVT::i64,
/* 41930*/      OPC_CheckType, MVT::i64,
/* 41932*/      OPC_Scope, 79, /*->42013*/ // 2 children in Scope
/* 41934*/        OPC_CheckPatternPredicate, 24, // (PPCSubTarget->hasDirectMove()) && (!PPCSubTarget->isLittleEndian())
/* 41936*/        OPC_EmitRegister2, MVT::i64, TARGET_VAL(PPC::ZERO8),
/* 41940*/        OPC_EmitInteger, MVT::i64, 1, 
/* 41943*/        OPC_EmitNode2, TARGET_VAL(PPC::ANDI8_rec), 0,
                      MVT::i64, MVT::i32, 2/*#Ops*/, 1, 3,  // Results = #4 #5
/* 41952*/        OPC_EmitInteger, MVT::i32, 3, 
/* 41955*/        OPC_EmitInteger, MVT::i32, 60, 
/* 41958*/        OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                      MVT::i64, 3/*#Ops*/, 4, 6, 7,  // Results = #8
/* 41967*/        OPC_EmitNode1, TARGET_VAL(PPC::LVSL), 0,
                      MVT::v16i8, 2/*#Ops*/, 2, 8,  // Results = #9
/* 41975*/        OPC_EmitNode1, TARGET_VAL(PPC::VPERM), 0,
                      MVT::v16i8, 3/*#Ops*/, 0, 0, 9,  // Results = #10
/* 41984*/        OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 41987*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v2i64, 2/*#Ops*/, 10, 11,  // Results = #12
/* 41995*/        OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 41998*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f64, 2/*#Ops*/, 12, 13,  // Results = #14
/* 42006*/        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] } (ANDI8_rec:{ *:[i64] }:{ *:[i32] } ?:{ *:[i64] }:$Idx, 1:{ *:[i64] }), 3:{ *:[i32] }, 60:{ *:[i32] }))), VSRC:{ *:[i32] }), sub_64:{ *:[i32] }))
/* 42013*/      /*Scope*/ 85, /*->42099*/
/* 42014*/        OPC_CheckPatternPredicate, 23, // (PPCSubTarget->hasDirectMove()) && (PPCSubTarget->isLittleEndian())
/* 42016*/        OPC_EmitRegister2, MVT::i64, TARGET_VAL(PPC::ZERO8),
/* 42020*/        OPC_EmitInteger, MVT::i64, 1, 
/* 42023*/        OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                      MVT::i64, 1/*#Ops*/, 3,  // Results = #4
/* 42030*/        OPC_EmitNode1, TARGET_VAL(PPC::ANDC8), 0,
                      MVT::i64, 2/*#Ops*/, 4, 1,  // Results = #5
/* 42038*/        OPC_EmitInteger, MVT::i32, 3, 
/* 42041*/        OPC_EmitInteger, MVT::i32, 60, 
/* 42044*/        OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                      MVT::i64, 3/*#Ops*/, 5, 6, 7,  // Results = #8
/* 42053*/        OPC_EmitNode1, TARGET_VAL(PPC::LVSL), 0,
                      MVT::v16i8, 2/*#Ops*/, 2, 8,  // Results = #9
/* 42061*/        OPC_EmitNode1, TARGET_VAL(PPC::VPERM), 0,
                      MVT::v16i8, 3/*#Ops*/, 0, 0, 9,  // Results = #10
/* 42070*/        OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 42073*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v2i64, 2/*#Ops*/, 10, 11,  // Results = #12
/* 42081*/        OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 42084*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f64, 2/*#Ops*/, 12, 13,  // Results = #14
/* 42092*/        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] }))
/* 42099*/      0, /*End of Scope*/
/* 42100*/    /*Scope*/ 21|128,2/*277*/, /*->42379*/
/* 42102*/      OPC_CheckChild0Type, MVT::v2f64,
/* 42104*/      OPC_CheckType, MVT::f64,
/* 42106*/      OPC_Scope, 44, /*->42152*/ // 3 children in Scope
/* 42108*/        OPC_CheckChild1Integer, 0, 
/* 42110*/        OPC_Scope, 13, /*->42125*/ // 2 children in Scope
/* 42112*/          OPC_CheckPatternPredicate, 28, // (!PPCSubTarget->isLittleEndian())
/* 42114*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 42117*/          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] })
/* 42125*/        /*Scope*/ 25, /*->42151*/
/* 42126*/          OPC_CheckPatternPredicate, 29, // (PPCSubTarget->isLittleEndian())
/* 42128*/          OPC_EmitInteger, MVT::i32, 2, 
/* 42131*/          OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                        MVT::v4i32, 3/*#Ops*/, 0, 0, 1,  // Results = #2
/* 42140*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 42143*/          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] })
/* 42151*/        0, /*End of Scope*/
/* 42152*/      /*Scope*/ 44, /*->42197*/
/* 42153*/        OPC_CheckChild1Integer, 1, 
/* 42155*/        OPC_Scope, 13, /*->42170*/ // 2 children in Scope
/* 42157*/          OPC_CheckPatternPredicate, 29, // (PPCSubTarget->isLittleEndian())
/* 42159*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 42162*/          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] })
/* 42170*/        /*Scope*/ 25, /*->42196*/
/* 42171*/          OPC_CheckPatternPredicate, 28, // (!PPCSubTarget->isLittleEndian())
/* 42173*/          OPC_EmitInteger, MVT::i32, 2, 
/* 42176*/          OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                        MVT::v4i32, 3/*#Ops*/, 0, 0, 1,  // Results = #2
/* 42185*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 42188*/          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] })
/* 42196*/        0, /*End of Scope*/
/* 42197*/      /*Scope*/ 51|128,1/*179*/, /*->42378*/
/* 42199*/        OPC_RecordChild1, // #1 = $Idx
/* 42200*/        OPC_CheckChild1Type, MVT::i64,
/* 42202*/        OPC_Scope, 83, /*->42287*/ // 2 children in Scope
/* 42204*/          OPC_CheckPatternPredicate, 30, // (PPCSubTarget->hasVSX()) && (!PPCSubTarget->isLittleEndian())
/* 42206*/          OPC_EmitInteger, MVT::i32, PPC::VRRCRegClassID,
/* 42209*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i8, 2/*#Ops*/, 0, 2,  // Results = #3
/* 42217*/          OPC_EmitInteger, MVT::i32, PPC::VRRCRegClassID,
/* 42220*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i8, 2/*#Ops*/, 0, 4,  // Results = #5
/* 42228*/          OPC_EmitRegister2, MVT::i64, TARGET_VAL(PPC::ZERO8),
/* 42232*/          OPC_EmitInteger, MVT::i64, 1, 
/* 42235*/          OPC_EmitNode2, TARGET_VAL(PPC::ANDI8_rec), 0,
                        MVT::i64, MVT::i32, 2/*#Ops*/, 1, 7,  // Results = #8 #9
/* 42244*/          OPC_EmitInteger, MVT::i32, 3, 
/* 42247*/          OPC_EmitInteger, MVT::i32, 60, 
/* 42250*/          OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                        MVT::i64, 3/*#Ops*/, 8, 10, 11,  // Results = #12
/* 42259*/          OPC_EmitNode1, TARGET_VAL(PPC::LVSL), 0,
                        MVT::v16i8, 2/*#Ops*/, 6, 12,  // Results = #13
/* 42267*/          OPC_EmitNode1, TARGET_VAL(PPC::VPERM), 0,
                        MVT::v16i8, 3/*#Ops*/, 3, 5, 13,  // Results = #14
/* 42276*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 42279*/          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] } (ANDI8_rec:{ *:[i64] }:{ *:[i32] } ?:{ *:[i64] }:$Idx, 1:{ *:[i64] }), 3:{ *:[i32] }, 60:{ *:[i32] }))), VSRC:{ *:[i32] })
/* 42287*/        /*Scope*/ 89, /*->42377*/
/* 42288*/          OPC_CheckPatternPredicate, 19, // (PPCSubTarget->hasVSX()) && (PPCSubTarget->isLittleEndian())
/* 42290*/          OPC_EmitInteger, MVT::i32, PPC::VRRCRegClassID,
/* 42293*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i8, 2/*#Ops*/, 0, 2,  // Results = #3
/* 42301*/          OPC_EmitInteger, MVT::i32, PPC::VRRCRegClassID,
/* 42304*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i8, 2/*#Ops*/, 0, 4,  // Results = #5
/* 42312*/          OPC_EmitRegister2, MVT::i64, TARGET_VAL(PPC::ZERO8),
/* 42316*/          OPC_EmitInteger, MVT::i64, 1, 
/* 42319*/          OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                        MVT::i64, 1/*#Ops*/, 7,  // Results = #8
/* 42326*/          OPC_EmitNode1, TARGET_VAL(PPC::ANDC8), 0,
                        MVT::i64, 2/*#Ops*/, 8, 1,  // Results = #9
/* 42334*/          OPC_EmitInteger, MVT::i32, 3, 
/* 42337*/          OPC_EmitInteger, MVT::i32, 60, 
/* 42340*/          OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                        MVT::i64, 3/*#Ops*/, 9, 10, 11,  // Results = #12
/* 42349*/          OPC_EmitNode1, TARGET_VAL(PPC::LVSL), 0,
                        MVT::v16i8, 2/*#Ops*/, 6, 12,  // Results = #13
/* 42357*/          OPC_EmitNode1, TARGET_VAL(PPC::VPERM), 0,
                        MVT::v16i8, 3/*#Ops*/, 3, 5, 13,  // Results = #14
/* 42366*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 42369*/          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] })
/* 42377*/        0, /*End of Scope*/
/* 42378*/      0, /*End of Scope*/
/* 42379*/    /*Scope*/ 38|128,2/*294*/, /*->42675*/
/* 42381*/      OPC_CheckChild0Type, MVT::v4f32,
/* 42383*/      OPC_CheckType, MVT::f32,
/* 42385*/      OPC_Scope, 36, /*->42423*/ // 5 children in Scope
/* 42387*/        OPC_CheckChild1Integer, 0, 
/* 42389*/        OPC_Scope, 9, /*->42400*/ // 2 children in Scope
/* 42391*/          OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasP8Vector()) && (!PPCSubTarget->isLittleEndian())
/* 42393*/          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)
/* 42400*/        /*Scope*/ 21, /*->42422*/
/* 42401*/          OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasP8Vector()) && (PPCSubTarget->isLittleEndian())
/* 42403*/          OPC_EmitInteger, MVT::i32, 3, 
/* 42406*/          OPC_EmitNode1, TARGET_VAL(PPC::XXSLDWI), 0,
                        MVT::v4i32, 3/*#Ops*/, 0, 0, 1,  // Results = #2
/* 42415*/          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] }))
/* 42422*/        0, /*End of Scope*/
/* 42423*/      /*Scope*/ 36, /*->42460*/
/* 42424*/        OPC_CheckChild1Integer, 3, 
/* 42426*/        OPC_Scope, 9, /*->42437*/ // 2 children in Scope
/* 42428*/          OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasP8Vector()) && (PPCSubTarget->isLittleEndian())
/* 42430*/          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)
/* 42437*/        /*Scope*/ 21, /*->42459*/
/* 42438*/          OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasP8Vector()) && (!PPCSubTarget->isLittleEndian())
/* 42440*/          OPC_EmitInteger, MVT::i32, 3, 
/* 42443*/          OPC_EmitNode1, TARGET_VAL(PPC::XXSLDWI), 0,
                        MVT::v4i32, 3/*#Ops*/, 0, 0, 1,  // Results = #2
/* 42452*/          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] }))
/* 42459*/        0, /*End of Scope*/
/* 42460*/      /*Scope*/ 48, /*->42509*/
/* 42461*/        OPC_CheckChild1Integer, 1, 
/* 42463*/        OPC_Scope, 21, /*->42486*/ // 2 children in Scope
/* 42465*/          OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasP8Vector()) && (!PPCSubTarget->isLittleEndian())
/* 42467*/          OPC_EmitInteger, MVT::i32, 1, 
/* 42470*/          OPC_EmitNode1, TARGET_VAL(PPC::XXSLDWI), 0,
                        MVT::v4i32, 3/*#Ops*/, 0, 0, 1,  // Results = #2
/* 42479*/          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] }))
/* 42486*/        /*Scope*/ 21, /*->42508*/
/* 42487*/          OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasP8Vector()) && (PPCSubTarget->isLittleEndian())
/* 42489*/          OPC_EmitInteger, MVT::i32, 2, 
/* 42492*/          OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                        MVT::v4i32, 3/*#Ops*/, 0, 0, 1,  // Results = #2
/* 42501*/          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] }))
/* 42508*/        0, /*End of Scope*/
/* 42509*/      /*Scope*/ 48, /*->42558*/
/* 42510*/        OPC_CheckChild1Integer, 2, 
/* 42512*/        OPC_Scope, 21, /*->42535*/ // 2 children in Scope
/* 42514*/          OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasP8Vector()) && (!PPCSubTarget->isLittleEndian())
/* 42516*/          OPC_EmitInteger, MVT::i32, 2, 
/* 42519*/          OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                        MVT::v4i32, 3/*#Ops*/, 0, 0, 1,  // Results = #2
/* 42528*/          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] }))
/* 42535*/        /*Scope*/ 21, /*->42557*/
/* 42536*/          OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasP8Vector()) && (PPCSubTarget->isLittleEndian())
/* 42538*/          OPC_EmitInteger, MVT::i32, 1, 
/* 42541*/          OPC_EmitNode1, TARGET_VAL(PPC::XXSLDWI), 0,
                        MVT::v4i32, 3/*#Ops*/, 0, 0, 1,  // Results = #2
/* 42550*/          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] }))
/* 42557*/        0, /*End of Scope*/
/* 42558*/      /*Scope*/ 115, /*->42674*/
/* 42559*/        OPC_RecordChild1, // #1 = $Idx
/* 42560*/        OPC_CheckChild1Type, MVT::i64,
/* 42562*/        OPC_Scope, 45, /*->42609*/ // 2 children in Scope
/* 42564*/          OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasP8Vector()) && (!PPCSubTarget->isLittleEndian())
/* 42566*/          OPC_EmitRegister2, MVT::i64, TARGET_VAL(PPC::ZERO8),
/* 42570*/          OPC_EmitInteger, MVT::i32, 2, 
/* 42573*/          OPC_EmitInteger, MVT::i32, 61, 
/* 42576*/          OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                        MVT::i64, 3/*#Ops*/, 1, 3, 4,  // Results = #5
/* 42585*/          OPC_EmitNode1, TARGET_VAL(PPC::LVSL), 0,
                        MVT::v16i8, 2/*#Ops*/, 2, 5,  // Results = #6
/* 42593*/          OPC_EmitNode1, TARGET_VAL(PPC::VPERM), 0,
                        MVT::v4i32, 3/*#Ops*/, 0, 0, 6,  // Results = #7
/* 42602*/          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] }))))
/* 42609*/        /*Scope*/ 63, /*->42673*/
/* 42610*/          OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasP8Vector()) && (PPCSubTarget->isLittleEndian())
/* 42612*/          OPC_EmitRegister2, MVT::i64, TARGET_VAL(PPC::ZERO8),
/* 42616*/          OPC_EmitInteger, MVT::i64, 3, 
/* 42619*/          OPC_EmitNode1, TARGET_VAL(PPC::LI8), 0,
                        MVT::i64, 1/*#Ops*/, 3,  // Results = #4
/* 42626*/          OPC_EmitNode1, TARGET_VAL(PPC::XOR8), 0,
                        MVT::i64, 2/*#Ops*/, 4, 1,  // Results = #5
/* 42634*/          OPC_EmitInteger, MVT::i32, 2, 
/* 42637*/          OPC_EmitInteger, MVT::i32, 61, 
/* 42640*/          OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                        MVT::i64, 3/*#Ops*/, 5, 6, 7,  // Results = #8
/* 42649*/          OPC_EmitNode1, TARGET_VAL(PPC::LVSL), 0,
                        MVT::v16i8, 2/*#Ops*/, 2, 8,  // Results = #9
/* 42657*/          OPC_EmitNode1, TARGET_VAL(PPC::VPERM), 0,
                        MVT::v4i32, 3/*#Ops*/, 0, 0, 9,  // Results = #10
/* 42666*/          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] }))))
/* 42673*/        0, /*End of Scope*/
/* 42674*/      0, /*End of Scope*/
/* 42675*/    /*Scope*/ 19, /*->42695*/
/* 42676*/      OPC_CheckChild0Type, MVT::v4f64,
/* 42678*/      OPC_CheckChild1Integer, 0, 
/* 42680*/      OPC_CheckType, MVT::f64,
/* 42682*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 42684*/      OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 42687*/      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] })
/* 42695*/    /*Scope*/ 17, /*->42713*/
/* 42696*/      OPC_CheckChild1Integer, 0, 
/* 42698*/      OPC_CheckType, MVT::f32,
/* 42700*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 42702*/      OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 42705*/      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] })
/* 42713*/    /*Scope*/ 58, /*->42772*/
/* 42714*/      OPC_CheckChild1Integer, 1, 
/* 42716*/      OPC_SwitchType /*2 cases */, 26, MVT::f64,// ->42745
/* 42719*/        OPC_CheckChild0Type, MVT::v4f64,
/* 42721*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 42723*/        OPC_EmitInteger, MVT::i32, 1, 
/* 42726*/        OPC_EmitNode1, TARGET_VAL(PPC::QVESPLATI), 0,
                      MVT::v4f64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 42734*/        OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 42737*/        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] })
/* 42745*/      /*SwitchType*/ 24, MVT::f32,// ->42771
/* 42747*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 42749*/        OPC_EmitInteger, MVT::i32, 1, 
/* 42752*/        OPC_EmitNode1, TARGET_VAL(PPC::QVESPLATIs), 0,
                      MVT::v4f32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 42760*/        OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 42763*/        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] })
/* 42771*/      0, // EndSwitchType
/* 42772*/    /*Scope*/ 58, /*->42831*/
/* 42773*/      OPC_CheckChild1Integer, 2, 
/* 42775*/      OPC_SwitchType /*2 cases */, 26, MVT::f64,// ->42804
/* 42778*/        OPC_CheckChild0Type, MVT::v4f64,
/* 42780*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 42782*/        OPC_EmitInteger, MVT::i32, 2, 
/* 42785*/        OPC_EmitNode1, TARGET_VAL(PPC::QVESPLATI), 0,
                      MVT::v4f64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 42793*/        OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 42796*/        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] })
/* 42804*/      /*SwitchType*/ 24, MVT::f32,// ->42830
/* 42806*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 42808*/        OPC_EmitInteger, MVT::i32, 2, 
/* 42811*/        OPC_EmitNode1, TARGET_VAL(PPC::QVESPLATIs), 0,
                      MVT::v4f32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 42819*/        OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 42822*/        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] })
/* 42830*/      0, // EndSwitchType
/* 42831*/    /*Scope*/ 58, /*->42890*/
/* 42832*/      OPC_CheckChild1Integer, 3, 
/* 42834*/      OPC_SwitchType /*2 cases */, 26, MVT::f64,// ->42863
/* 42837*/        OPC_CheckChild0Type, MVT::v4f64,
/* 42839*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 42841*/        OPC_EmitInteger, MVT::i32, 3, 
/* 42844*/        OPC_EmitNode1, TARGET_VAL(PPC::QVESPLATI), 0,
                      MVT::v4f64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 42852*/        OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 42855*/        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] })
/* 42863*/      /*SwitchType*/ 24, MVT::f32,// ->42889
/* 42865*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 42867*/        OPC_EmitInteger, MVT::i32, 3, 
/* 42870*/        OPC_EmitNode1, TARGET_VAL(PPC::QVESPLATIs), 0,
                      MVT::v4f32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 42878*/        OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 42881*/        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] })
/* 42889*/      0, // EndSwitchType
/* 42890*/    /*Scope*/ 51, /*->42942*/
/* 42891*/      OPC_CheckChild0Type, MVT::v4f64,
/* 42893*/      OPC_RecordChild1, // #1 = $F
/* 42894*/      OPC_CheckChild1Type, MVT::i64,
/* 42896*/      OPC_CheckType, MVT::f64,
/* 42898*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 42900*/      OPC_EmitInteger, MVT::i32, 2, 
/* 42903*/      OPC_EmitInteger, MVT::i32, 61, 
/* 42906*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 1, 2, 3,  // Results = #4
/* 42915*/      OPC_EmitNode1, TARGET_VAL(PPC::QVLPCLSXint), 0,
                    MVT::v4f64, 1/*#Ops*/, 4,  // Results = #5
/* 42922*/      OPC_EmitNode1, TARGET_VAL(PPC::QVFPERM), 0,
                    MVT::v4f64, 3/*#Ops*/, 0, 0, 5,  // Results = #6
/* 42931*/      OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 42934*/      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] })
/* 42942*/    /*Scope*/ 49, /*->42992*/
/* 42943*/      OPC_RecordChild1, // #1 = $F
/* 42944*/      OPC_CheckChild1Type, MVT::i64,
/* 42946*/      OPC_CheckType, MVT::f32,
/* 42948*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 42950*/      OPC_EmitInteger, MVT::i32, 2, 
/* 42953*/      OPC_EmitInteger, MVT::i32, 61, 
/* 42956*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 1, 2, 3,  // Results = #4
/* 42965*/      OPC_EmitNode1, TARGET_VAL(PPC::QVLPCLSXint), 0,
                    MVT::v4f64, 1/*#Ops*/, 4,  // Results = #5
/* 42972*/      OPC_EmitNode1, TARGET_VAL(PPC::QVFPERMs), 0,
                    MVT::v4f32, 3/*#Ops*/, 0, 0, 5,  // Results = #6
/* 42981*/      OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 42984*/      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] })
/* 42992*/    0, /*End of Scope*/
/* 42993*/  /*SwitchOpcode*/ 58|128,34/*4410*/, TARGET_VAL(ISD::INTRINSIC_WO_CHAIN),// ->47407
/* 42997*/    OPC_Scope, 31, /*->43030*/ // 265 children in Scope
/* 42999*/      OPC_CheckChild0Integer, 31|128,46/*5919*/, 
/* 43002*/      OPC_RecordChild1, // #0 = $vA
/* 43003*/      OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/* 43005*/      OPC_EmitNode1, TARGET_VAL(PPC::XSXEXPQP), 0,
                    MVT::v2i64, 1/*#Ops*/, 0,  // Results = #1
/* 43012*/      OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 43015*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                    MVT::f64, 2/*#Ops*/, 1, 2,  // Results = #3
/* 43023*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::MFVSRD), 0,
                    MVT::i64, 1/*#Ops*/, 3, 
                // Src: (intrinsic_wo_chain:{ *:[i64] } 5919:{ *:[iPTR] }, f128:{ *:[f128] }:$vA) - Complexity = 408
                // Dst: (MFVSRD:{ *:[i64] } (EXTRACT_SUBREG:{ *:[f64] } (XSXEXPQP:{ *:[v2i64] } ?:{ *:[f128] }:$vA), sub_64:{ *:[i32] }))
/* 43030*/    /*Scope*/ 15, /*->43046*/
/* 43031*/      OPC_CheckChild0Integer, 65|128,45/*5825*/, 
/* 43034*/      OPC_RecordChild1, // #0 = $rA
/* 43035*/      OPC_RecordChild2, // #1 = $rB
/* 43036*/      OPC_CheckPatternPredicate, 31, // (PPCSubTarget->hasExtDiv())
/* 43038*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::DIVWE), 0,
                    MVT::i32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[i32] } 5825:{ *:[iPTR] }, gprc:{ *:[i32] }:$rA, gprc:{ *:[i32] }:$rB) - Complexity = 8
                // Dst: (DIVWE:{ *:[i32] } gprc:{ *:[i32] }:$rA, gprc:{ *:[i32] }:$rB)
/* 43046*/    /*Scope*/ 15, /*->43062*/
/* 43047*/      OPC_CheckChild0Integer, 66|128,45/*5826*/, 
/* 43050*/      OPC_RecordChild1, // #0 = $rA
/* 43051*/      OPC_RecordChild2, // #1 = $rB
/* 43052*/      OPC_CheckPatternPredicate, 31, // (PPCSubTarget->hasExtDiv())
/* 43054*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::DIVWEU), 0,
                    MVT::i32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[i32] } 5826:{ *:[iPTR] }, gprc:{ *:[i32] }:$rA, gprc:{ *:[i32] }:$rB) - Complexity = 8
                // Dst: (DIVWEU:{ *:[i32] } gprc:{ *:[i32] }:$rA, gprc:{ *:[i32] }:$rB)
/* 43062*/    /*Scope*/ 13, /*->43076*/
/* 43063*/      OPC_CheckChild0Integer, 21|128,44/*5653*/, 
/* 43066*/      OPC_RecordChild1, // #0 = $vB
/* 43067*/      OPC_CheckPatternPredicate, 32, // (PPCSubTarget->hasP9Altivec())
/* 43069*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VCLZLSBB), 0,
                    MVT::i32, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[i32] } 5653:{ *:[iPTR] }, v16i8:{ *:[v16i8] }:$vB) - Complexity = 8
                // Dst: (VCLZLSBB:{ *:[i32] } v16i8:{ *:[v16i8] }:$vB)
/* 43076*/    /*Scope*/ 13, /*->43090*/
/* 43077*/      OPC_CheckChild0Integer, 68|128,44/*5700*/, 
/* 43080*/      OPC_RecordChild1, // #0 = $vB
/* 43081*/      OPC_CheckPatternPredicate, 32, // (PPCSubTarget->hasP9Altivec())
/* 43083*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VCTZLSBB), 0,
                    MVT::i32, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[i32] } 5700:{ *:[iPTR] }, v16i8:{ *:[v16i8] }:$vB) - Complexity = 8
                // Dst: (VCTZLSBB:{ *:[i32] } v16i8:{ *:[v16i8] }:$vB)
/* 43090*/    /*Scope*/ 15, /*->43106*/
/* 43091*/      OPC_CheckChild0Integer, 52|128,45/*5812*/, 
/* 43094*/      OPC_RecordChild1, // #0 = $rS
/* 43095*/      OPC_RecordChild2, // #1 = $rB
/* 43096*/      OPC_CheckPatternPredicate, 33, // (PPCSubTarget->hasBPERMD())
/* 43098*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::BPERMD), 0,
                    MVT::i64, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[i64] } 5812:{ *:[iPTR] }, g8rc:{ *:[i64] }:$rS, g8rc:{ *:[i64] }:$rB) - Complexity = 8
                // Dst: (BPERMD:{ *:[i64] } g8rc:{ *:[i64] }:$rS, g8rc:{ *:[i64] }:$rB)
/* 43106*/    /*Scope*/ 15, /*->43122*/
/* 43107*/      OPC_CheckChild0Integer, 62|128,45/*5822*/, 
/* 43110*/      OPC_RecordChild1, // #0 = $rA
/* 43111*/      OPC_RecordChild2, // #1 = $rB
/* 43112*/      OPC_CheckPatternPredicate, 31, // (PPCSubTarget->hasExtDiv())
/* 43114*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::DIVDE), 0,
                    MVT::i64, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[i64] } 5822:{ *:[iPTR] }, g8rc:{ *:[i64] }:$rA, g8rc:{ *:[i64] }:$rB) - Complexity = 8
                // Dst: (DIVDE:{ *:[i64] } g8rc:{ *:[i64] }:$rA, g8rc:{ *:[i64] }:$rB)
/* 43122*/    /*Scope*/ 15, /*->43138*/
/* 43123*/      OPC_CheckChild0Integer, 63|128,45/*5823*/, 
/* 43126*/      OPC_RecordChild1, // #0 = $rA
/* 43127*/      OPC_RecordChild2, // #1 = $rB
/* 43128*/      OPC_CheckPatternPredicate, 31, // (PPCSubTarget->hasExtDiv())
/* 43130*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::DIVDEU), 0,
                    MVT::i64, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[i64] } 5823:{ *:[iPTR] }, g8rc:{ *:[i64] }:$rA, g8rc:{ *:[i64] }:$rB) - Complexity = 8
                // Dst: (DIVDEU:{ *:[i64] } g8rc:{ *:[i64] }:$rA, g8rc:{ *:[i64] }:$rB)
/* 43138*/    /*Scope*/ 38, /*->43177*/
/* 43139*/      OPC_CheckChild0Integer, 67|128,45/*5827*/, 
/* 43142*/      OPC_RecordChild1, // #0 = $vA
/* 43143*/      OPC_RecordChild2, // #1 = $vB
/* 43144*/      OPC_Scope, 17, /*->43163*/ // 2 children in Scope
/* 43146*/        OPC_MoveChild3,
/* 43147*/        OPC_CheckOpcode, TARGET_VAL(ISD::FNEG),
/* 43150*/        OPC_RecordChild0, // #2 = $vTi
/* 43151*/        OPC_MoveParent,
/* 43152*/        OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/* 43154*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::XSMSUBQPO), 0,
                      MVT::f128, 3/*#Ops*/, 2, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[f128] } 5827:{ *:[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)
/* 43163*/      /*Scope*/ 12, /*->43176*/
/* 43164*/        OPC_RecordChild3, // #2 = $vTi
/* 43165*/        OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/* 43167*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::XSMADDQPO), 0,
                      MVT::f128, 3/*#Ops*/, 2, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[f128] } 5827:{ *:[iPTR] }, f128:{ *:[f128] }:$vA, f128:{ *:[f128] }:$vB, f128:{ *:[f128] }:$vTi) - Complexity = 408
                  // Dst: (XSMADDQPO:{ *:[f128] } f128:{ *:[f128] }:$vTi, f128:{ *:[f128] }:$vA, f128:{ *:[f128] }:$vB)
/* 43176*/      0, /*End of Scope*/
/* 43177*/    /*Scope*/ 15, /*->43193*/
/* 43178*/      OPC_CheckChild0Integer, 69|128,46/*5957*/, 
/* 43181*/      OPC_RecordChild1, // #0 = $XA
/* 43182*/      OPC_RecordChild2, // #1 = $XB
/* 43183*/      OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 43185*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XSMAXDP), 0,
                    MVT::f64, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[f64] } 5957:{ *:[iPTR] }, vsfrc:{ *:[f64] }:$XA, vsfrc:{ *:[f64] }:$XB) - Complexity = 408
                // Dst: (XSMAXDP:{ *:[f64] } vsfrc:{ *:[f64] }:$XA, vsfrc:{ *:[f64] }:$XB)
/* 43193*/    /*Scope*/ 15, /*->43209*/
/* 43194*/      OPC_CheckChild0Integer, 70|128,46/*5958*/, 
/* 43197*/      OPC_RecordChild1, // #0 = $XA
/* 43198*/      OPC_RecordChild2, // #1 = $XB
/* 43199*/      OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 43201*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XSMINDP), 0,
                    MVT::f64, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[f64] } 5958:{ *:[iPTR] }, vsfrc:{ *:[f64] }:$XA, vsfrc:{ *:[f64] }:$XB) - Complexity = 408
                // Dst: (XSMINDP:{ *:[f64] } vsfrc:{ *:[f64] }:$XA, vsfrc:{ *:[f64] }:$XB)
/* 43209*/    /*Scope*/ 15, /*->43225*/
/* 43210*/      OPC_CheckChild0Integer, 94|128,43/*5598*/, 
/* 43213*/      OPC_RecordChild1, // #0 = $vA
/* 43214*/      OPC_RecordChild2, // #1 = $vB
/* 43215*/      OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/* 43217*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XSADDQPO), 0,
                    MVT::f128, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[f128] } 5598:{ *:[iPTR] }, f128:{ *:[f128] }:$vA, f128:{ *:[f128] }:$vB) - Complexity = 408
                // Dst: (XSADDQPO:{ *:[f128] } f128:{ *:[f128] }:$vA, f128:{ *:[f128] }:$vB)
/* 43225*/    /*Scope*/ 15, /*->43241*/
/* 43226*/      OPC_CheckChild0Integer, 75|128,45/*5835*/, 
/* 43229*/      OPC_RecordChild1, // #0 = $vA
/* 43230*/      OPC_RecordChild2, // #1 = $vB
/* 43231*/      OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/* 43233*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XSMULQPO), 0,
                    MVT::f128, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[f128] } 5835:{ *:[iPTR] }, f128:{ *:[f128] }:$vA, f128:{ *:[f128] }:$vB) - Complexity = 408
                // Dst: (XSMULQPO:{ *:[f128] } f128:{ *:[f128] }:$vA, f128:{ *:[f128] }:$vB)
/* 43241*/    /*Scope*/ 15, /*->43257*/
/* 43242*/      OPC_CheckChild0Integer, 39|128,46/*5927*/, 
/* 43245*/      OPC_RecordChild1, // #0 = $vA
/* 43246*/      OPC_RecordChild2, // #1 = $vB
/* 43247*/      OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/* 43249*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XSSUBQPO), 0,
                    MVT::f128, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[f128] } 5927:{ *:[iPTR] }, f128:{ *:[f128] }:$vA, f128:{ *:[f128] }:$vB) - Complexity = 408
                // Dst: (XSSUBQPO:{ *:[f128] } f128:{ *:[f128] }:$vA, f128:{ *:[f128] }:$vB)
/* 43257*/    /*Scope*/ 15, /*->43273*/
/* 43258*/      OPC_CheckChild0Integer, 64|128,45/*5824*/, 
/* 43261*/      OPC_RecordChild1, // #0 = $vA
/* 43262*/      OPC_RecordChild2, // #1 = $vB
/* 43263*/      OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/* 43265*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XSDIVQPO), 0,
                    MVT::f128, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[f128] } 5824:{ *:[iPTR] }, f128:{ *:[f128] }:$vA, f128:{ *:[f128] }:$vB) - Complexity = 408
                // Dst: (XSDIVQPO:{ *:[f128] } f128:{ *:[f128] }:$vA, f128:{ *:[f128] }:$vB)
/* 43273*/    /*Scope*/ 13, /*->43287*/
/* 43274*/      OPC_CheckChild0Integer, 38|128,46/*5926*/, 
/* 43277*/      OPC_RecordChild1, // #0 = $vB
/* 43278*/      OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/* 43280*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XSSQRTQPO), 0,
                    MVT::f128, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[f128] } 5926:{ *:[iPTR] }, f128:{ *:[f128] }:$vB) - Complexity = 408
                // Dst: (XSSQRTQPO:{ *:[f128] } f128:{ *:[f128] }:$vB)
/* 43287*/    /*Scope*/ 13, /*->43301*/
/* 43288*/      OPC_CheckChild0Integer, 53|128,46/*5941*/, 
/* 43291*/      OPC_RecordChild1, // #0 = $vB
/* 43292*/      OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/* 43294*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVQPDPO), 0,
                    MVT::f64, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[f64] } 5941:{ *:[iPTR] }, f128:{ *:[f128] }:$vB) - Complexity = 408
                // Dst: (XSCVQPDPO:{ *:[f64] } f128:{ *:[f128] }:$vB)
/* 43301*/    /*Scope*/ 22, /*->43324*/
/* 43302*/      OPC_CheckChild0Integer, 32|128,46/*5920*/, 
/* 43305*/      OPC_RecordChild1, // #0 = $vA
/* 43306*/      OPC_RecordChild2, // #1 = $vB
/* 43307*/      OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/* 43309*/      OPC_EmitNode1, TARGET_VAL(PPC::MTVSRD), 0,
                    MVT::f64, 1/*#Ops*/, 1,  // Results = #2
/* 43316*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XSIEXPQP), 0,
                    MVT::f128, 2/*#Ops*/, 0, 2, 
                // Src: (intrinsic_wo_chain:{ *:[f128] } 5920:{ *:[iPTR] }, f128:{ *:[f128] }:$vA, i64:{ *:[i64] }:$vB) - Complexity = 408
                // Dst: (XSIEXPQP:{ *:[f128] } ?:{ *:[f128] }:$vA, (MTVSRD:{ *:[f64] } ?:{ *:[i64] }:$vB))
/* 43324*/    /*Scope*/ 24, /*->43349*/
/* 43325*/      OPC_CheckChild0Integer, 114|128,46/*6002*/, 
/* 43328*/      OPC_RecordChild1, // #0 = $A
/* 43329*/      OPC_RecordChild2, // #1 = $B
/* 43330*/      OPC_RecordChild3, // #2 = $IMM
/* 43331*/      OPC_MoveChild3,
/* 43332*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 43335*/      OPC_MoveParent,
/* 43336*/      OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/* 43338*/      OPC_EmitConvertToTarget, 2,
/* 43340*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XXINSERTW), 0,
                    MVT::v4i32, 3/*#Ops*/, 0, 1, 3, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 6002:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$A, v2i64:{ *:[v2i64] }:$B, (imm:{ *:[i32] }):$IMM) - Complexity = 411
                // Dst: (XXINSERTW:{ *:[v4i32] } ?:{ *:[v4i32] }:$A, ?:{ *:[v2i64] }:$B, (imm:{ *:[i32] }):$IMM)
/* 43349*/    /*Scope*/ 20, /*->43370*/
/* 43350*/      OPC_CheckChild0Integer, 108|128,46/*5996*/, 
/* 43353*/      OPC_RecordChild1, // #0 = $XB
/* 43354*/      OPC_RecordChild2, // #1 = $DCMX
/* 43355*/      OPC_MoveChild2,
/* 43356*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 43359*/      OPC_MoveParent,
/* 43360*/      OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/* 43362*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XVTSTDCSP), 0,
                    MVT::v4i32, 2/*#Ops*/, 1, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 5996:{ *:[iPTR] }, v4f32:{ *:[v4f32] }:$XB, (timm:{ *:[i32] }):$DCMX) - Complexity = 411
                // Dst: (XVTSTDCSP:{ *:[v4i32] } (timm:{ *:[i32] }):$DCMX, v4f32:{ *:[v4f32] }:$XB)
/* 43370*/    /*Scope*/ 20, /*->43391*/
/* 43371*/      OPC_CheckChild0Integer, 107|128,46/*5995*/, 
/* 43374*/      OPC_RecordChild1, // #0 = $XB
/* 43375*/      OPC_RecordChild2, // #1 = $DCMX
/* 43376*/      OPC_MoveChild2,
/* 43377*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 43380*/      OPC_MoveParent,
/* 43381*/      OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/* 43383*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XVTSTDCDP), 0,
                    MVT::v2i64, 2/*#Ops*/, 1, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v2i64] } 5995:{ *:[iPTR] }, v2f64:{ *:[v2f64] }:$XB, (timm:{ *:[i32] }):$DCMX) - Complexity = 411
                // Dst: (XVTSTDCDP:{ *:[v2i64] } (timm:{ *:[i32] }):$DCMX, v2f64:{ *:[v2f64] }:$XB)
/* 43391*/    /*Scope*/ 33, /*->43425*/
/* 43392*/      OPC_CheckChild0Integer, 113|128,46/*6001*/, 
/* 43395*/      OPC_RecordChild1, // #0 = $A
/* 43396*/      OPC_RecordChild2, // #1 = $IMM
/* 43397*/      OPC_MoveChild2,
/* 43398*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 43401*/      OPC_MoveParent,
/* 43402*/      OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/* 43404*/      OPC_EmitConvertToTarget, 1,
/* 43406*/      OPC_EmitNode1, TARGET_VAL(PPC::XXEXTRACTUW), 0,
                    MVT::f64, 2/*#Ops*/, 0, 2,  // Results = #3
/* 43414*/      OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 43417*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::v2i64, 2/*#Ops*/, 3, 4, 
                // Src: (intrinsic_wo_chain:{ *:[v2i64] } 6001:{ *:[iPTR] }, v2i64:{ *:[v2i64] }:$A, (imm:{ *:[i32] }):$IMM) - Complexity = 411
                // Dst: (COPY_TO_REGCLASS:{ *:[v2i64] } (XXEXTRACTUW:{ *:[f64] } ?:{ *:[v2i64] }:$A, (imm:{ *:[i32] }):$IMM), VSRC:{ *:[i32] })
/* 43425*/    /*Scope*/ 15, /*->43441*/
/* 43426*/      OPC_CheckChild0Integer, 71|128,46/*5959*/, 
/* 43429*/      OPC_RecordChild1, // #0 = $XA
/* 43430*/      OPC_RecordChild2, // #1 = $XB
/* 43431*/      OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 43433*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XVCMPEQDP), 0,
                    MVT::v2i64, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v2i64] } 5959:{ *:[iPTR] }, v2f64:{ *:[v2f64] }:$XA, v2f64:{ *:[v2f64] }:$XB) - Complexity = 408
                // Dst: (XVCMPEQDP:{ *:[v2i64] } v2f64:{ *:[v2f64] }:$XA, v2f64:{ *:[v2f64] }:$XB)
/* 43441*/    /*Scope*/ 15, /*->43457*/
/* 43442*/      OPC_CheckChild0Integer, 73|128,46/*5961*/, 
/* 43445*/      OPC_RecordChild1, // #0 = $XA
/* 43446*/      OPC_RecordChild2, // #1 = $XB
/* 43447*/      OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 43449*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XVCMPEQSP), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 5961:{ *:[iPTR] }, v4f32:{ *:[v4f32] }:$XA, v4f32:{ *:[v4f32] }:$XB) - Complexity = 408
                // Dst: (XVCMPEQSP:{ *:[v4i32] } v4f32:{ *:[v4f32] }:$XA, v4f32:{ *:[v4f32] }:$XB)
/* 43457*/    /*Scope*/ 15, /*->43473*/
/* 43458*/      OPC_CheckChild0Integer, 75|128,46/*5963*/, 
/* 43461*/      OPC_RecordChild1, // #0 = $XA
/* 43462*/      OPC_RecordChild2, // #1 = $XB
/* 43463*/      OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 43465*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XVCMPGEDP), 0,
                    MVT::v2i64, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v2i64] } 5963:{ *:[iPTR] }, v2f64:{ *:[v2f64] }:$XA, v2f64:{ *:[v2f64] }:$XB) - Complexity = 408
                // Dst: (XVCMPGEDP:{ *:[v2i64] } v2f64:{ *:[v2f64] }:$XA, v2f64:{ *:[v2f64] }:$XB)
/* 43473*/    /*Scope*/ 15, /*->43489*/
/* 43474*/      OPC_CheckChild0Integer, 77|128,46/*5965*/, 
/* 43477*/      OPC_RecordChild1, // #0 = $XA
/* 43478*/      OPC_RecordChild2, // #1 = $XB
/* 43479*/      OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 43481*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XVCMPGESP), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 5965:{ *:[iPTR] }, v4f32:{ *:[v4f32] }:$XA, v4f32:{ *:[v4f32] }:$XB) - Complexity = 408
                // Dst: (XVCMPGESP:{ *:[v4i32] } v4f32:{ *:[v4f32] }:$XA, v4f32:{ *:[v4f32] }:$XB)
/* 43489*/    /*Scope*/ 15, /*->43505*/
/* 43490*/      OPC_CheckChild0Integer, 79|128,46/*5967*/, 
/* 43493*/      OPC_RecordChild1, // #0 = $XA
/* 43494*/      OPC_RecordChild2, // #1 = $XB
/* 43495*/      OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 43497*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XVCMPGTDP), 0,
                    MVT::v2i64, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v2i64] } 5967:{ *:[iPTR] }, v2f64:{ *:[v2f64] }:$XA, v2f64:{ *:[v2f64] }:$XB) - Complexity = 408
                // Dst: (XVCMPGTDP:{ *:[v2i64] } v2f64:{ *:[v2f64] }:$XA, v2f64:{ *:[v2f64] }:$XB)
/* 43505*/    /*Scope*/ 15, /*->43521*/
/* 43506*/      OPC_CheckChild0Integer, 81|128,46/*5969*/, 
/* 43509*/      OPC_RecordChild1, // #0 = $XA
/* 43510*/      OPC_RecordChild2, // #1 = $XB
/* 43511*/      OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 43513*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XVCMPGTSP), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 5969:{ *:[iPTR] }, v4f32:{ *:[v4f32] }:$XA, v4f32:{ *:[v4f32] }:$XB) - Complexity = 408
                // Dst: (XVCMPGTSP:{ *:[v4i32] } v4f32:{ *:[v4f32] }:$XA, v4f32:{ *:[v4f32] }:$XB)
/* 43521*/    /*Scope*/ 13, /*->43535*/
/* 43522*/      OPC_CheckChild0Integer, 84|128,46/*5972*/, 
/* 43525*/      OPC_RecordChild1, // #0 = $XB
/* 43526*/      OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 43528*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XVCVDPSXWS), 0,
                    MVT::v4i32, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 5972:{ *:[iPTR] }, v2f64:{ *:[v2f64] }:$XB) - Complexity = 408
                // Dst: (XVCVDPSXWS:{ *:[v4i32] } v2f64:{ *:[v2f64] }:$XB)
/* 43535*/    /*Scope*/ 13, /*->43549*/
/* 43536*/      OPC_CheckChild0Integer, 85|128,46/*5973*/, 
/* 43539*/      OPC_RecordChild1, // #0 = $XB
/* 43540*/      OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 43542*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XVCVDPUXWS), 0,
                    MVT::v4i32, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 5973:{ *:[iPTR] }, v2f64:{ *:[v2f64] }:$XB) - Complexity = 408
                // Dst: (XVCVDPUXWS:{ *:[v4i32] } v2f64:{ *:[v2f64] }:$XB)
/* 43549*/    /*Scope*/ 15, /*->43565*/
/* 43550*/      OPC_CheckChild0Integer, 115|128,46/*6003*/, 
/* 43553*/      OPC_RecordChild1, // #0 = $A
/* 43554*/      OPC_RecordChild2, // #1 = $B
/* 43555*/      OPC_CheckPatternPredicate, 10, // (PPCSubTarget->hasP8Vector())
/* 43557*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XXLEQV), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 6003:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$A, v4i32:{ *:[v4i32] }:$B) - Complexity = 408
                // Dst: (XXLEQV:{ *:[v4i32] } ?:{ *:[v4i32] }:$A, ?:{ *:[v4i32] }:$B)
/* 43565*/    /*Scope*/ 13, /*->43579*/
/* 43566*/      OPC_CheckChild0Integer, 109|128,46/*5997*/, 
/* 43569*/      OPC_RecordChild1, // #0 = $XB
/* 43570*/      OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/* 43572*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XVXEXPDP), 0,
                    MVT::v2i64, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v2i64] } 5997:{ *:[iPTR] }, v2f64:{ *:[v2f64] }:$XB) - Complexity = 408
                // Dst: (XVXEXPDP:{ *:[v2i64] } v2f64:{ *:[v2f64] }:$XB)
/* 43579*/    /*Scope*/ 13, /*->43593*/
/* 43580*/      OPC_CheckChild0Integer, 110|128,46/*5998*/, 
/* 43583*/      OPC_RecordChild1, // #0 = $XB
/* 43584*/      OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/* 43586*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XVXEXPSP), 0,
                    MVT::v4i32, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 5998:{ *:[iPTR] }, v4f32:{ *:[v4f32] }:$XB) - Complexity = 408
                // Dst: (XVXEXPSP:{ *:[v4i32] } v4f32:{ *:[v4f32] }:$XB)
/* 43593*/    /*Scope*/ 13, /*->43607*/
/* 43594*/      OPC_CheckChild0Integer, 111|128,46/*5999*/, 
/* 43597*/      OPC_RecordChild1, // #0 = $XB
/* 43598*/      OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/* 43600*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XVXSIGDP), 0,
                    MVT::v2i64, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v2i64] } 5999:{ *:[iPTR] }, v2f64:{ *:[v2f64] }:$XB) - Complexity = 408
                // Dst: (XVXSIGDP:{ *:[v2i64] } v2f64:{ *:[v2f64] }:$XB)
/* 43607*/    /*Scope*/ 13, /*->43621*/
/* 43608*/      OPC_CheckChild0Integer, 112|128,46/*6000*/, 
/* 43611*/      OPC_RecordChild1, // #0 = $XB
/* 43612*/      OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/* 43614*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XVXSIGSP), 0,
                    MVT::v4i32, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 6000:{ *:[iPTR] }, v4f32:{ *:[v4f32] }:$XB) - Complexity = 408
                // Dst: (XVXSIGSP:{ *:[v4i32] } v4f32:{ *:[v4f32] }:$XB)
/* 43621*/    /*Scope*/ 17, /*->43639*/
/* 43622*/      OPC_CheckChild0Integer, 116|128,43/*5620*/, 
/* 43625*/      OPC_RecordChild1, // #0 = $src
/* 43626*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 43628*/      OPC_CheckComplexPat, /*CP*/0, /*#*/0, // SelectAddrIdxOnly:$src #1 #2
/* 43631*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::LVSL), 0,
                    MVT::v16i8, 2/*#Ops*/, 1, 2, 
                // Src: (intrinsic_wo_chain:{ *:[v16i8] } 5620:{ *:[iPTR] }, xoaddr:{ *:[iPTR] }:$src) - Complexity = 17
                // Dst: (LVSL:{ *:[v16i8] } xoaddr:{ *:[iPTR] }:$src)
/* 43639*/    /*Scope*/ 17, /*->43657*/
/* 43640*/      OPC_CheckChild0Integer, 117|128,43/*5621*/, 
/* 43643*/      OPC_RecordChild1, // #0 = $src
/* 43644*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 43646*/      OPC_CheckComplexPat, /*CP*/0, /*#*/0, // SelectAddrIdxOnly:$src #1 #2
/* 43649*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::LVSR), 0,
                    MVT::v16i8, 2/*#Ops*/, 1, 2, 
                // Src: (intrinsic_wo_chain:{ *:[v16i8] } 5621:{ *:[iPTR] }, xoaddr:{ *:[iPTR] }:$src) - Complexity = 17
                // Dst: (LVSR:{ *:[v16i8] } xoaddr:{ *:[iPTR] }:$src)
/* 43657*/    /*Scope*/ 27, /*->43685*/
/* 43658*/      OPC_CheckChild0Integer, 106|128,43/*5610*/, 
/* 43661*/      OPC_RecordChild1, // #0 = $vA
/* 43662*/      OPC_RecordChild2, // #1 = $ST
/* 43663*/      OPC_MoveChild2,
/* 43664*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 43667*/      OPC_MoveParent,
/* 43668*/      OPC_RecordChild3, // #2 = $SIX
/* 43669*/      OPC_MoveChild3,
/* 43670*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 43673*/      OPC_MoveParent,
/* 43674*/      OPC_CheckPatternPredicate, 34, // (PPCSubTarget->hasP8Crypto())
/* 43676*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VSHASIGMAW), 0,
                    MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 5610:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$vA, (timm:{ *:[i32] }):$ST, (timm:{ *:[i32] }):$SIX) - Complexity = 14
                // Dst: (VSHASIGMAW:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, (timm:{ *:[i32] }):$ST, (timm:{ *:[i32] }):$SIX)
/* 43685*/    /*Scope*/ 27, /*->43713*/
/* 43686*/      OPC_CheckChild0Integer, 105|128,43/*5609*/, 
/* 43689*/      OPC_RecordChild1, // #0 = $vA
/* 43690*/      OPC_RecordChild2, // #1 = $ST
/* 43691*/      OPC_MoveChild2,
/* 43692*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 43695*/      OPC_MoveParent,
/* 43696*/      OPC_RecordChild3, // #2 = $SIX
/* 43697*/      OPC_MoveChild3,
/* 43698*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 43701*/      OPC_MoveParent,
/* 43702*/      OPC_CheckPatternPredicate, 34, // (PPCSubTarget->hasP8Crypto())
/* 43704*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VSHASIGMAD), 0,
                    MVT::v2i64, 3/*#Ops*/, 0, 1, 2, 
                // Src: (intrinsic_wo_chain:{ *:[v2i64] } 5609:{ *:[iPTR] }, v2i64:{ *:[v2i64] }:$vA, (timm:{ *:[i32] }):$ST, (timm:{ *:[i32] }):$SIX) - Complexity = 14
                // Dst: (VSHASIGMAD:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vA, (timm:{ *:[i32] }):$ST, (timm:{ *:[i32] }):$SIX)
/* 43713*/    /*Scope*/ 35, /*->43749*/
/* 43714*/      OPC_CheckChild0Integer, 67|128,44/*5699*/, 
/* 43717*/      OPC_RecordChild1, // #0 = $vB
/* 43718*/      OPC_Scope, 11, /*->43731*/ // 2 children in Scope
/* 43720*/        OPC_CheckChild2Integer, 0, 
/* 43722*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 43724*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::VCTUXS_0), 0,
                      MVT::v4i32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 5699:{ *:[iPTR] }, v4f32:{ *:[v4f32] }:$vB, 0:{ *:[i32] }) - Complexity = 13
                  // Dst: (VCTUXS_0:{ *:[v4i32] } v4f32:{ *:[v4f32] }:$vB)
/* 43731*/      /*Scope*/ 16, /*->43748*/
/* 43732*/        OPC_RecordChild2, // #1 = $UIMM
/* 43733*/        OPC_MoveChild2,
/* 43734*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 43737*/        OPC_MoveParent,
/* 43738*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 43740*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::VCTUXS), 0,
                      MVT::v4i32, 2/*#Ops*/, 1, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 5699:{ *:[iPTR] }, v4f32:{ *:[v4f32] }:$vB, (timm:{ *:[i32] }):$UIMM) - Complexity = 11
                  // Dst: (VCTUXS:{ *:[v4i32] } (timm:{ *:[i32] }):$UIMM, v4f32:{ *:[v4f32] }:$vB)
/* 43748*/      0, /*End of Scope*/
/* 43749*/    /*Scope*/ 35, /*->43785*/
/* 43750*/      OPC_CheckChild0Integer, 66|128,44/*5698*/, 
/* 43753*/      OPC_RecordChild1, // #0 = $vB
/* 43754*/      OPC_Scope, 11, /*->43767*/ // 2 children in Scope
/* 43756*/        OPC_CheckChild2Integer, 0, 
/* 43758*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 43760*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::VCTSXS_0), 0,
                      MVT::v4i32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 5698:{ *:[iPTR] }, v4f32:{ *:[v4f32] }:$vB, 0:{ *:[i32] }) - Complexity = 13
                  // Dst: (VCTSXS_0:{ *:[v4i32] } v4f32:{ *:[v4f32] }:$vB)
/* 43767*/      /*Scope*/ 16, /*->43784*/
/* 43768*/        OPC_RecordChild2, // #1 = $UIMM
/* 43769*/        OPC_MoveChild2,
/* 43770*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 43773*/        OPC_MoveParent,
/* 43774*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 43776*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::VCTSXS), 0,
                      MVT::v4i32, 2/*#Ops*/, 1, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 5698:{ *:[iPTR] }, v4f32:{ *:[v4f32] }:$vB, (timm:{ *:[i32] }):$UIMM) - Complexity = 11
                  // Dst: (VCTSXS:{ *:[v4i32] } (timm:{ *:[i32] }):$UIMM, v4f32:{ *:[v4f32] }:$vB)
/* 43784*/      0, /*End of Scope*/
/* 43785*/    /*Scope*/ 17, /*->43803*/
/* 43786*/      OPC_CheckChild0Integer, 82|128,44/*5714*/, 
/* 43789*/      OPC_RecordChild1, // #0 = $vA
/* 43790*/      OPC_RecordChild2, // #1 = $vB
/* 43791*/      OPC_RecordChild3, // #2 = $vC
/* 43792*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 43794*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VMHADDSHS), 0,
                    MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                // Src: (intrinsic_wo_chain:{ *:[v8i16] } 5714:{ *:[iPTR] }, v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB, v8i16:{ *:[v8i16] }:$vC) - Complexity = 8
                // Dst: (VMHADDSHS:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB, v8i16:{ *:[v8i16] }:$vC)
/* 43803*/    /*Scope*/ 17, /*->43821*/
/* 43804*/      OPC_CheckChild0Integer, 83|128,44/*5715*/, 
/* 43807*/      OPC_RecordChild1, // #0 = $vA
/* 43808*/      OPC_RecordChild2, // #1 = $vB
/* 43809*/      OPC_RecordChild3, // #2 = $vC
/* 43810*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 43812*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VMHRADDSHS), 0,
                    MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                // Src: (intrinsic_wo_chain:{ *:[v8i16] } 5715:{ *:[iPTR] }, v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB, v8i16:{ *:[v8i16] }:$vC) - Complexity = 8
                // Dst: (VMHRADDSHS:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB, v8i16:{ *:[v8i16] }:$vC)
/* 43821*/    /*Scope*/ 17, /*->43839*/
/* 43822*/      OPC_CheckChild0Integer, 93|128,44/*5725*/, 
/* 43825*/      OPC_RecordChild1, // #0 = $vA
/* 43826*/      OPC_RecordChild2, // #1 = $vB
/* 43827*/      OPC_RecordChild3, // #2 = $vC
/* 43828*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 43830*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VMLADDUHM), 0,
                    MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                // Src: (intrinsic_wo_chain:{ *:[v8i16] } 5725:{ *:[iPTR] }, v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB, v8i16:{ *:[v8i16] }:$vC) - Complexity = 8
                // Dst: (VMLADDUHM:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB, v8i16:{ *:[v8i16] }:$vC)
/* 43839*/    /*Scope*/ 17, /*->43857*/
/* 43840*/      OPC_CheckChild0Integer, 113|128,44/*5745*/, 
/* 43843*/      OPC_RecordChild1, // #0 = $vA
/* 43844*/      OPC_RecordChild2, // #1 = $vB
/* 43845*/      OPC_RecordChild3, // #2 = $vC
/* 43846*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 43848*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VPERM), 0,
                    MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 5745:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB, v16i8:{ *:[v16i8] }:$vC) - Complexity = 8
                // Dst: (VPERM:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB, v16i8:{ *:[v16i8] }:$vC)
/* 43857*/    /*Scope*/ 17, /*->43875*/
/* 43858*/      OPC_CheckChild0Integer, 13|128,45/*5773*/, 
/* 43861*/      OPC_RecordChild1, // #0 = $vA
/* 43862*/      OPC_RecordChild2, // #1 = $vB
/* 43863*/      OPC_RecordChild3, // #2 = $vC
/* 43864*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 43866*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VSEL), 0,
                    MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 5773:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB, v4i32:{ *:[v4i32] }:$vC) - Complexity = 8
                // Dst: (VSEL:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB, v4i32:{ *:[v4i32] }:$vC)
/* 43875*/    /*Scope*/ 15, /*->43891*/
/* 43876*/      OPC_CheckChild0Integer, 3|128,44/*5635*/, 
/* 43879*/      OPC_RecordChild1, // #0 = $vA
/* 43880*/      OPC_RecordChild2, // #1 = $vB
/* 43881*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 43883*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VADDCUW), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 5635:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB) - Complexity = 8
                // Dst: (VADDCUW:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/* 43891*/    /*Scope*/ 15, /*->43907*/
/* 43892*/      OPC_CheckChild0Integer, 6|128,44/*5638*/, 
/* 43895*/      OPC_RecordChild1, // #0 = $vA
/* 43896*/      OPC_RecordChild2, // #1 = $vB
/* 43897*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 43899*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VADDSBS), 0,
                    MVT::v16i8, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v16i8] } 5638:{ *:[iPTR] }, v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB) - Complexity = 8
                // Dst: (VADDSBS:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB)
/* 43907*/    /*Scope*/ 15, /*->43923*/
/* 43908*/      OPC_CheckChild0Integer, 7|128,44/*5639*/, 
/* 43911*/      OPC_RecordChild1, // #0 = $vA
/* 43912*/      OPC_RecordChild2, // #1 = $vB
/* 43913*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 43915*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VADDSHS), 0,
                    MVT::v8i16, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v8i16] } 5639:{ *:[iPTR] }, v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB) - Complexity = 8
                // Dst: (VADDSHS:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB)
/* 43923*/    /*Scope*/ 15, /*->43939*/
/* 43924*/      OPC_CheckChild0Integer, 8|128,44/*5640*/, 
/* 43927*/      OPC_RecordChild1, // #0 = $vA
/* 43928*/      OPC_RecordChild2, // #1 = $vB
/* 43929*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 43931*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VADDSWS), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 5640:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB) - Complexity = 8
                // Dst: (VADDSWS:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/* 43939*/    /*Scope*/ 15, /*->43955*/
/* 43940*/      OPC_CheckChild0Integer, 9|128,44/*5641*/, 
/* 43943*/      OPC_RecordChild1, // #0 = $vA
/* 43944*/      OPC_RecordChild2, // #1 = $vB
/* 43945*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 43947*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VADDUBS), 0,
                    MVT::v16i8, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v16i8] } 5641:{ *:[iPTR] }, v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB) - Complexity = 8
                // Dst: (VADDUBS:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB)
/* 43955*/    /*Scope*/ 15, /*->43971*/
/* 43956*/      OPC_CheckChild0Integer, 10|128,44/*5642*/, 
/* 43959*/      OPC_RecordChild1, // #0 = $vA
/* 43960*/      OPC_RecordChild2, // #1 = $vB
/* 43961*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 43963*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VADDUHS), 0,
                    MVT::v8i16, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v8i16] } 5642:{ *:[iPTR] }, v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB) - Complexity = 8
                // Dst: (VADDUHS:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB)
/* 43971*/    /*Scope*/ 15, /*->43987*/
/* 43972*/      OPC_CheckChild0Integer, 11|128,44/*5643*/, 
/* 43975*/      OPC_RecordChild1, // #0 = $vA
/* 43976*/      OPC_RecordChild2, // #1 = $vB
/* 43977*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 43979*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VADDUWS), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 5643:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB) - Complexity = 8
                // Dst: (VADDUWS:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/* 43987*/    /*Scope*/ 15, /*->44003*/
/* 43988*/      OPC_CheckChild0Integer, 12|128,44/*5644*/, 
/* 43991*/      OPC_RecordChild1, // #0 = $vA
/* 43992*/      OPC_RecordChild2, // #1 = $vB
/* 43993*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 43995*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VAVGSB), 0,
                    MVT::v16i8, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v16i8] } 5644:{ *:[iPTR] }, v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB) - Complexity = 8
                // Dst: (VAVGSB:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB)
/* 44003*/    /*Scope*/ 15, /*->44019*/
/* 44004*/      OPC_CheckChild0Integer, 13|128,44/*5645*/, 
/* 44007*/      OPC_RecordChild1, // #0 = $vA
/* 44008*/      OPC_RecordChild2, // #1 = $vB
/* 44009*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 44011*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VAVGSH), 0,
                    MVT::v8i16, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v8i16] } 5645:{ *:[iPTR] }, v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB) - Complexity = 8
                // Dst: (VAVGSH:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB)
/* 44019*/    /*Scope*/ 15, /*->44035*/
/* 44020*/      OPC_CheckChild0Integer, 14|128,44/*5646*/, 
/* 44023*/      OPC_RecordChild1, // #0 = $vA
/* 44024*/      OPC_RecordChild2, // #1 = $vB
/* 44025*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 44027*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VAVGSW), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 5646:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB) - Complexity = 8
                // Dst: (VAVGSW:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/* 44035*/    /*Scope*/ 15, /*->44051*/
/* 44036*/      OPC_CheckChild0Integer, 15|128,44/*5647*/, 
/* 44039*/      OPC_RecordChild1, // #0 = $vA
/* 44040*/      OPC_RecordChild2, // #1 = $vB
/* 44041*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 44043*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VAVGUB), 0,
                    MVT::v16i8, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v16i8] } 5647:{ *:[iPTR] }, v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB) - Complexity = 8
                // Dst: (VAVGUB:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB)
/* 44051*/    /*Scope*/ 15, /*->44067*/
/* 44052*/      OPC_CheckChild0Integer, 16|128,44/*5648*/, 
/* 44055*/      OPC_RecordChild1, // #0 = $vA
/* 44056*/      OPC_RecordChild2, // #1 = $vB
/* 44057*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 44059*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VAVGUH), 0,
                    MVT::v8i16, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v8i16] } 5648:{ *:[iPTR] }, v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB) - Complexity = 8
                // Dst: (VAVGUH:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB)
/* 44067*/    /*Scope*/ 15, /*->44083*/
/* 44068*/      OPC_CheckChild0Integer, 17|128,44/*5649*/, 
/* 44071*/      OPC_RecordChild1, // #0 = $vA
/* 44072*/      OPC_RecordChild2, // #1 = $vB
/* 44073*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 44075*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VAVGUW), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 5649:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB) - Complexity = 8
                // Dst: (VAVGUW:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/* 44083*/    /*Scope*/ 15, /*->44099*/
/* 44084*/      OPC_CheckChild0Integer, 74|128,44/*5706*/, 
/* 44087*/      OPC_RecordChild1, // #0 = $vA
/* 44088*/      OPC_RecordChild2, // #1 = $vB
/* 44089*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 44091*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VMAXSB), 0,
                    MVT::v16i8, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v16i8] } 5706:{ *:[iPTR] }, v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB) - Complexity = 8
                // Dst: (VMAXSB:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB)
/* 44099*/    /*Scope*/ 15, /*->44115*/
/* 44100*/      OPC_CheckChild0Integer, 76|128,44/*5708*/, 
/* 44103*/      OPC_RecordChild1, // #0 = $vA
/* 44104*/      OPC_RecordChild2, // #1 = $vB
/* 44105*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 44107*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VMAXSH), 0,
                    MVT::v8i16, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v8i16] } 5708:{ *:[iPTR] }, v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB) - Complexity = 8
                // Dst: (VMAXSH:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB)
/* 44115*/    /*Scope*/ 15, /*->44131*/
/* 44116*/      OPC_CheckChild0Integer, 77|128,44/*5709*/, 
/* 44119*/      OPC_RecordChild1, // #0 = $vA
/* 44120*/      OPC_RecordChild2, // #1 = $vB
/* 44121*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 44123*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VMAXSW), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 5709:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB) - Complexity = 8
                // Dst: (VMAXSW:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/* 44131*/    /*Scope*/ 15, /*->44147*/
/* 44132*/      OPC_CheckChild0Integer, 78|128,44/*5710*/, 
/* 44135*/      OPC_RecordChild1, // #0 = $vA
/* 44136*/      OPC_RecordChild2, // #1 = $vB
/* 44137*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 44139*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VMAXUB), 0,
                    MVT::v16i8, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v16i8] } 5710:{ *:[iPTR] }, v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB) - Complexity = 8
                // Dst: (VMAXUB:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB)
/* 44147*/    /*Scope*/ 15, /*->44163*/
/* 44148*/      OPC_CheckChild0Integer, 80|128,44/*5712*/, 
/* 44151*/      OPC_RecordChild1, // #0 = $vA
/* 44152*/      OPC_RecordChild2, // #1 = $vB
/* 44153*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 44155*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VMAXUH), 0,
                    MVT::v8i16, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v8i16] } 5712:{ *:[iPTR] }, v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB) - Complexity = 8
                // Dst: (VMAXUH:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB)
/* 44163*/    /*Scope*/ 15, /*->44179*/
/* 44164*/      OPC_CheckChild0Integer, 81|128,44/*5713*/, 
/* 44167*/      OPC_RecordChild1, // #0 = $vA
/* 44168*/      OPC_RecordChild2, // #1 = $vB
/* 44169*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 44171*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VMAXUW), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 5713:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB) - Complexity = 8
                // Dst: (VMAXUW:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/* 44179*/    /*Scope*/ 15, /*->44195*/
/* 44180*/      OPC_CheckChild0Integer, 85|128,44/*5717*/, 
/* 44183*/      OPC_RecordChild1, // #0 = $vA
/* 44184*/      OPC_RecordChild2, // #1 = $vB
/* 44185*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 44187*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VMINSB), 0,
                    MVT::v16i8, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v16i8] } 5717:{ *:[iPTR] }, v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB) - Complexity = 8
                // Dst: (VMINSB:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB)
/* 44195*/    /*Scope*/ 15, /*->44211*/
/* 44196*/      OPC_CheckChild0Integer, 87|128,44/*5719*/, 
/* 44199*/      OPC_RecordChild1, // #0 = $vA
/* 44200*/      OPC_RecordChild2, // #1 = $vB
/* 44201*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 44203*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VMINSH), 0,
                    MVT::v8i16, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v8i16] } 5719:{ *:[iPTR] }, v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB) - Complexity = 8
                // Dst: (VMINSH:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB)
/* 44211*/    /*Scope*/ 15, /*->44227*/
/* 44212*/      OPC_CheckChild0Integer, 88|128,44/*5720*/, 
/* 44215*/      OPC_RecordChild1, // #0 = $vA
/* 44216*/      OPC_RecordChild2, // #1 = $vB
/* 44217*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 44219*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VMINSW), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 5720:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB) - Complexity = 8
                // Dst: (VMINSW:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/* 44227*/    /*Scope*/ 15, /*->44243*/
/* 44228*/      OPC_CheckChild0Integer, 89|128,44/*5721*/, 
/* 44231*/      OPC_RecordChild1, // #0 = $vA
/* 44232*/      OPC_RecordChild2, // #1 = $vB
/* 44233*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 44235*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VMINUB), 0,
                    MVT::v16i8, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v16i8] } 5721:{ *:[iPTR] }, v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB) - Complexity = 8
                // Dst: (VMINUB:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB)
/* 44243*/    /*Scope*/ 15, /*->44259*/
/* 44244*/      OPC_CheckChild0Integer, 91|128,44/*5723*/, 
/* 44247*/      OPC_RecordChild1, // #0 = $vA
/* 44248*/      OPC_RecordChild2, // #1 = $vB
/* 44249*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 44251*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VMINUH), 0,
                    MVT::v8i16, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v8i16] } 5723:{ *:[iPTR] }, v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB) - Complexity = 8
                // Dst: (VMINUH:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB)
/* 44259*/    /*Scope*/ 15, /*->44275*/
/* 44260*/      OPC_CheckChild0Integer, 92|128,44/*5724*/, 
/* 44263*/      OPC_RecordChild1, // #0 = $vA
/* 44264*/      OPC_RecordChild2, // #1 = $vB
/* 44265*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 44267*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VMINUW), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 5724:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB) - Complexity = 8
                // Dst: (VMINUW:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/* 44275*/    /*Scope*/ 17, /*->44293*/
/* 44276*/      OPC_CheckChild0Integer, 94|128,44/*5726*/, 
/* 44279*/      OPC_RecordChild1, // #0 = $vA
/* 44280*/      OPC_RecordChild2, // #1 = $vB
/* 44281*/      OPC_RecordChild3, // #2 = $vC
/* 44282*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 44284*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VMSUMMBM), 0,
                    MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 5726:{ *:[iPTR] }, v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB, v4i32:{ *:[v4i32] }:$vC) - Complexity = 8
                // Dst: (VMSUMMBM:{ *:[v4i32] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB, v4i32:{ *:[v4i32] }:$vC)
/* 44293*/    /*Scope*/ 17, /*->44311*/
/* 44294*/      OPC_CheckChild0Integer, 95|128,44/*5727*/, 
/* 44297*/      OPC_RecordChild1, // #0 = $vA
/* 44298*/      OPC_RecordChild2, // #1 = $vB
/* 44299*/      OPC_RecordChild3, // #2 = $vC
/* 44300*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 44302*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VMSUMSHM), 0,
                    MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 5727:{ *:[iPTR] }, v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB, v4i32:{ *:[v4i32] }:$vC) - Complexity = 8
                // Dst: (VMSUMSHM:{ *:[v4i32] } v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB, v4i32:{ *:[v4i32] }:$vC)
/* 44311*/    /*Scope*/ 17, /*->44329*/
/* 44312*/      OPC_CheckChild0Integer, 96|128,44/*5728*/, 
/* 44315*/      OPC_RecordChild1, // #0 = $vA
/* 44316*/      OPC_RecordChild2, // #1 = $vB
/* 44317*/      OPC_RecordChild3, // #2 = $vC
/* 44318*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 44320*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VMSUMSHS), 0,
                    MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 5728:{ *:[iPTR] }, v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB, v4i32:{ *:[v4i32] }:$vC) - Complexity = 8
                // Dst: (VMSUMSHS:{ *:[v4i32] } v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB, v4i32:{ *:[v4i32] }:$vC)
/* 44329*/    /*Scope*/ 17, /*->44347*/
/* 44330*/      OPC_CheckChild0Integer, 97|128,44/*5729*/, 
/* 44333*/      OPC_RecordChild1, // #0 = $vA
/* 44334*/      OPC_RecordChild2, // #1 = $vB
/* 44335*/      OPC_RecordChild3, // #2 = $vC
/* 44336*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 44338*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VMSUMUBM), 0,
                    MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 5729:{ *:[iPTR] }, v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB, v4i32:{ *:[v4i32] }:$vC) - Complexity = 8
                // Dst: (VMSUMUBM:{ *:[v4i32] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB, v4i32:{ *:[v4i32] }:$vC)
/* 44347*/    /*Scope*/ 17, /*->44365*/
/* 44348*/      OPC_CheckChild0Integer, 98|128,44/*5730*/, 
/* 44351*/      OPC_RecordChild1, // #0 = $vA
/* 44352*/      OPC_RecordChild2, // #1 = $vB
/* 44353*/      OPC_RecordChild3, // #2 = $vC
/* 44354*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 44356*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VMSUMUHM), 0,
                    MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 5730:{ *:[iPTR] }, v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB, v4i32:{ *:[v4i32] }:$vC) - Complexity = 8
                // Dst: (VMSUMUHM:{ *:[v4i32] } v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB, v4i32:{ *:[v4i32] }:$vC)
/* 44365*/    /*Scope*/ 17, /*->44383*/
/* 44366*/      OPC_CheckChild0Integer, 99|128,44/*5731*/, 
/* 44369*/      OPC_RecordChild1, // #0 = $vA
/* 44370*/      OPC_RecordChild2, // #1 = $vB
/* 44371*/      OPC_RecordChild3, // #2 = $vC
/* 44372*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 44374*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VMSUMUHS), 0,
                    MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 5731:{ *:[iPTR] }, v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB, v4i32:{ *:[v4i32] }:$vC) - Complexity = 8
                // Dst: (VMSUMUHS:{ *:[v4i32] } v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB, v4i32:{ *:[v4i32] }:$vC)
/* 44383*/    /*Scope*/ 15, /*->44399*/
/* 44384*/      OPC_CheckChild0Integer, 100|128,44/*5732*/, 
/* 44387*/      OPC_RecordChild1, // #0 = $vA
/* 44388*/      OPC_RecordChild2, // #1 = $vB
/* 44389*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 44391*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VMULESB), 0,
                    MVT::v8i16, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v8i16] } 5732:{ *:[iPTR] }, v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB) - Complexity = 8
                // Dst: (VMULESB:{ *:[v8i16] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB)
/* 44399*/    /*Scope*/ 15, /*->44415*/
/* 44400*/      OPC_CheckChild0Integer, 101|128,44/*5733*/, 
/* 44403*/      OPC_RecordChild1, // #0 = $vA
/* 44404*/      OPC_RecordChild2, // #1 = $vB
/* 44405*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 44407*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VMULESH), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 5733:{ *:[iPTR] }, v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB) - Complexity = 8
                // Dst: (VMULESH:{ *:[v4i32] } v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB)
/* 44415*/    /*Scope*/ 15, /*->44431*/
/* 44416*/      OPC_CheckChild0Integer, 103|128,44/*5735*/, 
/* 44419*/      OPC_RecordChild1, // #0 = $vA
/* 44420*/      OPC_RecordChild2, // #1 = $vB
/* 44421*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 44423*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VMULEUB), 0,
                    MVT::v8i16, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v8i16] } 5735:{ *:[iPTR] }, v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB) - Complexity = 8
                // Dst: (VMULEUB:{ *:[v8i16] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB)
/* 44431*/    /*Scope*/ 15, /*->44447*/
/* 44432*/      OPC_CheckChild0Integer, 104|128,44/*5736*/, 
/* 44435*/      OPC_RecordChild1, // #0 = $vA
/* 44436*/      OPC_RecordChild2, // #1 = $vB
/* 44437*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 44439*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VMULEUH), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 5736:{ *:[iPTR] }, v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB) - Complexity = 8
                // Dst: (VMULEUH:{ *:[v4i32] } v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB)
/* 44447*/    /*Scope*/ 15, /*->44463*/
/* 44448*/      OPC_CheckChild0Integer, 106|128,44/*5738*/, 
/* 44451*/      OPC_RecordChild1, // #0 = $vA
/* 44452*/      OPC_RecordChild2, // #1 = $vB
/* 44453*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 44455*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VMULOSB), 0,
                    MVT::v8i16, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v8i16] } 5738:{ *:[iPTR] }, v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB) - Complexity = 8
                // Dst: (VMULOSB:{ *:[v8i16] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB)
/* 44463*/    /*Scope*/ 15, /*->44479*/
/* 44464*/      OPC_CheckChild0Integer, 107|128,44/*5739*/, 
/* 44467*/      OPC_RecordChild1, // #0 = $vA
/* 44468*/      OPC_RecordChild2, // #1 = $vB
/* 44469*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 44471*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VMULOSH), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 5739:{ *:[iPTR] }, v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB) - Complexity = 8
                // Dst: (VMULOSH:{ *:[v4i32] } v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB)
/* 44479*/    /*Scope*/ 15, /*->44495*/
/* 44480*/      OPC_CheckChild0Integer, 109|128,44/*5741*/, 
/* 44483*/      OPC_RecordChild1, // #0 = $vA
/* 44484*/      OPC_RecordChild2, // #1 = $vB
/* 44485*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 44487*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VMULOUB), 0,
                    MVT::v8i16, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v8i16] } 5741:{ *:[iPTR] }, v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB) - Complexity = 8
                // Dst: (VMULOUB:{ *:[v8i16] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB)
/* 44495*/    /*Scope*/ 15, /*->44511*/
/* 44496*/      OPC_CheckChild0Integer, 110|128,44/*5742*/, 
/* 44499*/      OPC_RecordChild1, // #0 = $vA
/* 44500*/      OPC_RecordChild2, // #1 = $vB
/* 44501*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 44503*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VMULOUH), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 5742:{ *:[iPTR] }, v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB) - Complexity = 8
                // Dst: (VMULOUH:{ *:[v4i32] } v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB)
/* 44511*/    /*Scope*/ 15, /*->44527*/
/* 44512*/      OPC_CheckChild0Integer, 30|128,45/*5790*/, 
/* 44515*/      OPC_RecordChild1, // #0 = $vA
/* 44516*/      OPC_RecordChild2, // #1 = $vB
/* 44517*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 44519*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VSUBCUW), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 5790:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB) - Complexity = 8
                // Dst: (VSUBCUW:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/* 44527*/    /*Scope*/ 15, /*->44543*/
/* 44528*/      OPC_CheckChild0Integer, 33|128,45/*5793*/, 
/* 44531*/      OPC_RecordChild1, // #0 = $vA
/* 44532*/      OPC_RecordChild2, // #1 = $vB
/* 44533*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 44535*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VSUBSBS), 0,
                    MVT::v16i8, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v16i8] } 5793:{ *:[iPTR] }, v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB) - Complexity = 8
                // Dst: (VSUBSBS:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB)
/* 44543*/    /*Scope*/ 15, /*->44559*/
/* 44544*/      OPC_CheckChild0Integer, 34|128,45/*5794*/, 
/* 44547*/      OPC_RecordChild1, // #0 = $vA
/* 44548*/      OPC_RecordChild2, // #1 = $vB
/* 44549*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 44551*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VSUBSHS), 0,
                    MVT::v8i16, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v8i16] } 5794:{ *:[iPTR] }, v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB) - Complexity = 8
                // Dst: (VSUBSHS:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB)
/* 44559*/    /*Scope*/ 15, /*->44575*/
/* 44560*/      OPC_CheckChild0Integer, 35|128,45/*5795*/, 
/* 44563*/      OPC_RecordChild1, // #0 = $vA
/* 44564*/      OPC_RecordChild2, // #1 = $vB
/* 44565*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 44567*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VSUBSWS), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 5795:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB) - Complexity = 8
                // Dst: (VSUBSWS:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/* 44575*/    /*Scope*/ 15, /*->44591*/
/* 44576*/      OPC_CheckChild0Integer, 36|128,45/*5796*/, 
/* 44579*/      OPC_RecordChild1, // #0 = $vA
/* 44580*/      OPC_RecordChild2, // #1 = $vB
/* 44581*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 44583*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VSUBUBS), 0,
                    MVT::v16i8, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v16i8] } 5796:{ *:[iPTR] }, v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB) - Complexity = 8
                // Dst: (VSUBUBS:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB)
/* 44591*/    /*Scope*/ 15, /*->44607*/
/* 44592*/      OPC_CheckChild0Integer, 37|128,45/*5797*/, 
/* 44595*/      OPC_RecordChild1, // #0 = $vA
/* 44596*/      OPC_RecordChild2, // #1 = $vB
/* 44597*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 44599*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VSUBUHS), 0,
                    MVT::v8i16, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v8i16] } 5797:{ *:[iPTR] }, v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB) - Complexity = 8
                // Dst: (VSUBUHS:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB)
/* 44607*/    /*Scope*/ 15, /*->44623*/
/* 44608*/      OPC_CheckChild0Integer, 38|128,45/*5798*/, 
/* 44611*/      OPC_RecordChild1, // #0 = $vA
/* 44612*/      OPC_RecordChild2, // #1 = $vB
/* 44613*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 44615*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VSUBUWS), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 5798:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB) - Complexity = 8
                // Dst: (VSUBUWS:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/* 44623*/    /*Scope*/ 15, /*->44639*/
/* 44624*/      OPC_CheckChild0Integer, 43|128,45/*5803*/, 
/* 44627*/      OPC_RecordChild1, // #0 = $vA
/* 44628*/      OPC_RecordChild2, // #1 = $vB
/* 44629*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 44631*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VSUMSWS), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 5803:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB) - Complexity = 8
                // Dst: (VSUMSWS:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/* 44639*/    /*Scope*/ 15, /*->44655*/
/* 44640*/      OPC_CheckChild0Integer, 39|128,45/*5799*/, 
/* 44643*/      OPC_RecordChild1, // #0 = $vA
/* 44644*/      OPC_RecordChild2, // #1 = $vB
/* 44645*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 44647*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VSUM2SWS), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 5799:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB) - Complexity = 8
                // Dst: (VSUM2SWS:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/* 44655*/    /*Scope*/ 15, /*->44671*/
/* 44656*/      OPC_CheckChild0Integer, 40|128,45/*5800*/, 
/* 44659*/      OPC_RecordChild1, // #0 = $vA
/* 44660*/      OPC_RecordChild2, // #1 = $vB
/* 44661*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 44663*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VSUM4SBS), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 5800:{ *:[iPTR] }, v16i8:{ *:[v16i8] }:$vA, v4i32:{ *:[v4i32] }:$vB) - Complexity = 8
                // Dst: (VSUM4SBS:{ *:[v4i32] } v16i8:{ *:[v16i8] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/* 44671*/    /*Scope*/ 15, /*->44687*/
/* 44672*/      OPC_CheckChild0Integer, 41|128,45/*5801*/, 
/* 44675*/      OPC_RecordChild1, // #0 = $vA
/* 44676*/      OPC_RecordChild2, // #1 = $vB
/* 44677*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 44679*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VSUM4SHS), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 5801:{ *:[iPTR] }, v8i16:{ *:[v8i16] }:$vA, v4i32:{ *:[v4i32] }:$vB) - Complexity = 8
                // Dst: (VSUM4SHS:{ *:[v4i32] } v8i16:{ *:[v8i16] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/* 44687*/    /*Scope*/ 15, /*->44703*/
/* 44688*/      OPC_CheckChild0Integer, 42|128,45/*5802*/, 
/* 44691*/      OPC_RecordChild1, // #0 = $vA
/* 44692*/      OPC_RecordChild2, // #1 = $vB
/* 44693*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 44695*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VSUM4UBS), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 5802:{ *:[iPTR] }, v16i8:{ *:[v16i8] }:$vA, v4i32:{ *:[v4i32] }:$vB) - Complexity = 8
                // Dst: (VSUM4UBS:{ *:[v4i32] } v16i8:{ *:[v16i8] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/* 44703*/    /*Scope*/ 15, /*->44719*/
/* 44704*/      OPC_CheckChild0Integer, 4|128,45/*5764*/, 
/* 44707*/      OPC_RecordChild1, // #0 = $vA
/* 44708*/      OPC_RecordChild2, // #1 = $vB
/* 44709*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 44711*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VRLB), 0,
                    MVT::v16i8, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v16i8] } 5764:{ *:[iPTR] }, v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB) - Complexity = 8
                // Dst: (VRLB:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB)
/* 44719*/    /*Scope*/ 15, /*->44735*/
/* 44720*/      OPC_CheckChild0Integer, 8|128,45/*5768*/, 
/* 44723*/      OPC_RecordChild1, // #0 = $vA
/* 44724*/      OPC_RecordChild2, // #1 = $vB
/* 44725*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 44727*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VRLH), 0,
                    MVT::v8i16, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v8i16] } 5768:{ *:[iPTR] }, v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB) - Complexity = 8
                // Dst: (VRLH:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB)
/* 44735*/    /*Scope*/ 15, /*->44751*/
/* 44736*/      OPC_CheckChild0Integer, 9|128,45/*5769*/, 
/* 44739*/      OPC_RecordChild1, // #0 = $vA
/* 44740*/      OPC_RecordChild2, // #1 = $vB
/* 44741*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 44743*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VRLW), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 5769:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB) - Complexity = 8
                // Dst: (VRLW:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/* 44751*/    /*Scope*/ 15, /*->44767*/
/* 44752*/      OPC_CheckChild0Integer, 14|128,45/*5774*/, 
/* 44755*/      OPC_RecordChild1, // #0 = $vA
/* 44756*/      OPC_RecordChild2, // #1 = $vB
/* 44757*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 44759*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VSL), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 5774:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB) - Complexity = 8
                // Dst: (VSL:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/* 44767*/    /*Scope*/ 15, /*->44783*/
/* 44768*/      OPC_CheckChild0Integer, 17|128,45/*5777*/, 
/* 44771*/      OPC_RecordChild1, // #0 = $vA
/* 44772*/      OPC_RecordChild2, // #1 = $vB
/* 44773*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 44775*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VSLO), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 5777:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB) - Complexity = 8
                // Dst: (VSLO:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/* 44783*/    /*Scope*/ 15, /*->44799*/
/* 44784*/      OPC_CheckChild0Integer, 15|128,45/*5775*/, 
/* 44787*/      OPC_RecordChild1, // #0 = $vA
/* 44788*/      OPC_RecordChild2, // #1 = $vB
/* 44789*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 44791*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VSLB), 0,
                    MVT::v16i8, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v16i8] } 5775:{ *:[iPTR] }, v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB) - Complexity = 8
                // Dst: (VSLB:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB)
/* 44799*/    /*Scope*/ 15, /*->44815*/
/* 44800*/      OPC_CheckChild0Integer, 16|128,45/*5776*/, 
/* 44803*/      OPC_RecordChild1, // #0 = $vA
/* 44804*/      OPC_RecordChild2, // #1 = $vB
/* 44805*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 44807*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VSLH), 0,
                    MVT::v8i16, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v8i16] } 5776:{ *:[iPTR] }, v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB) - Complexity = 8
                // Dst: (VSLH:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB)
/* 44815*/    /*Scope*/ 15, /*->44831*/
/* 44816*/      OPC_CheckChild0Integer, 19|128,45/*5779*/, 
/* 44819*/      OPC_RecordChild1, // #0 = $vA
/* 44820*/      OPC_RecordChild2, // #1 = $vB
/* 44821*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 44823*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VSLW), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 5779:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB) - Complexity = 8
                // Dst: (VSLW:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/* 44831*/    /*Scope*/ 15, /*->44847*/
/* 44832*/      OPC_CheckChild0Integer, 20|128,45/*5780*/, 
/* 44835*/      OPC_RecordChild1, // #0 = $vA
/* 44836*/      OPC_RecordChild2, // #1 = $vB
/* 44837*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 44839*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VSR), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 5780:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB) - Complexity = 8
                // Dst: (VSR:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/* 44847*/    /*Scope*/ 15, /*->44863*/
/* 44848*/      OPC_CheckChild0Integer, 26|128,45/*5786*/, 
/* 44851*/      OPC_RecordChild1, // #0 = $vA
/* 44852*/      OPC_RecordChild2, // #1 = $vB
/* 44853*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 44855*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VSRO), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 5786:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB) - Complexity = 8
                // Dst: (VSRO:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/* 44863*/    /*Scope*/ 15, /*->44879*/
/* 44864*/      OPC_CheckChild0Integer, 21|128,45/*5781*/, 
/* 44867*/      OPC_RecordChild1, // #0 = $vA
/* 44868*/      OPC_RecordChild2, // #1 = $vB
/* 44869*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 44871*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VSRAB), 0,
                    MVT::v16i8, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v16i8] } 5781:{ *:[iPTR] }, v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB) - Complexity = 8
                // Dst: (VSRAB:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB)
/* 44879*/    /*Scope*/ 15, /*->44895*/
/* 44880*/      OPC_CheckChild0Integer, 22|128,45/*5782*/, 
/* 44883*/      OPC_RecordChild1, // #0 = $vA
/* 44884*/      OPC_RecordChild2, // #1 = $vB
/* 44885*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 44887*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VSRAH), 0,
                    MVT::v8i16, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v8i16] } 5782:{ *:[iPTR] }, v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB) - Complexity = 8
                // Dst: (VSRAH:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB)
/* 44895*/    /*Scope*/ 15, /*->44911*/
/* 44896*/      OPC_CheckChild0Integer, 23|128,45/*5783*/, 
/* 44899*/      OPC_RecordChild1, // #0 = $vA
/* 44900*/      OPC_RecordChild2, // #1 = $vB
/* 44901*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 44903*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VSRAW), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 5783:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB) - Complexity = 8
                // Dst: (VSRAW:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/* 44911*/    /*Scope*/ 15, /*->44927*/
/* 44912*/      OPC_CheckChild0Integer, 24|128,45/*5784*/, 
/* 44915*/      OPC_RecordChild1, // #0 = $vA
/* 44916*/      OPC_RecordChild2, // #1 = $vB
/* 44917*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 44919*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VSRB), 0,
                    MVT::v16i8, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v16i8] } 5784:{ *:[iPTR] }, v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB) - Complexity = 8
                // Dst: (VSRB:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB)
/* 44927*/    /*Scope*/ 15, /*->44943*/
/* 44928*/      OPC_CheckChild0Integer, 25|128,45/*5785*/, 
/* 44931*/      OPC_RecordChild1, // #0 = $vA
/* 44932*/      OPC_RecordChild2, // #1 = $vB
/* 44933*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 44935*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VSRH), 0,
                    MVT::v8i16, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v8i16] } 5785:{ *:[iPTR] }, v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB) - Complexity = 8
                // Dst: (VSRH:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB)
/* 44943*/    /*Scope*/ 15, /*->44959*/
/* 44944*/      OPC_CheckChild0Integer, 28|128,45/*5788*/, 
/* 44947*/      OPC_RecordChild1, // #0 = $vA
/* 44948*/      OPC_RecordChild2, // #1 = $vB
/* 44949*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 44951*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VSRW), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 5788:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB) - Complexity = 8
                // Dst: (VSRW:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/* 44959*/    /*Scope*/ 15, /*->44975*/
/* 44960*/      OPC_CheckChild0Integer, 114|128,44/*5746*/, 
/* 44963*/      OPC_RecordChild1, // #0 = $vA
/* 44964*/      OPC_RecordChild2, // #1 = $vB
/* 44965*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 44967*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VPKPX), 0,
                    MVT::v8i16, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v8i16] } 5746:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB) - Complexity = 8
                // Dst: (VPKPX:{ *:[v8i16] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/* 44975*/    /*Scope*/ 15, /*->44991*/
/* 44976*/      OPC_CheckChild0Integer, 117|128,44/*5749*/, 
/* 44979*/      OPC_RecordChild1, // #0 = $vA
/* 44980*/      OPC_RecordChild2, // #1 = $vB
/* 44981*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 44983*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VPKSHSS), 0,
                    MVT::v16i8, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v16i8] } 5749:{ *:[iPTR] }, v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB) - Complexity = 8
                // Dst: (VPKSHSS:{ *:[v16i8] } v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB)
/* 44991*/    /*Scope*/ 15, /*->45007*/
/* 44992*/      OPC_CheckChild0Integer, 118|128,44/*5750*/, 
/* 44995*/      OPC_RecordChild1, // #0 = $vA
/* 44996*/      OPC_RecordChild2, // #1 = $vB
/* 44997*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 44999*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VPKSHUS), 0,
                    MVT::v16i8, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v16i8] } 5750:{ *:[iPTR] }, v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB) - Complexity = 8
                // Dst: (VPKSHUS:{ *:[v16i8] } v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB)
/* 45007*/    /*Scope*/ 15, /*->45023*/
/* 45008*/      OPC_CheckChild0Integer, 119|128,44/*5751*/, 
/* 45011*/      OPC_RecordChild1, // #0 = $vA
/* 45012*/      OPC_RecordChild2, // #1 = $vB
/* 45013*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 45015*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VPKSWSS), 0,
                    MVT::v8i16, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v8i16] } 5751:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB) - Complexity = 8
                // Dst: (VPKSWSS:{ *:[v8i16] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/* 45023*/    /*Scope*/ 15, /*->45039*/
/* 45024*/      OPC_CheckChild0Integer, 120|128,44/*5752*/, 
/* 45027*/      OPC_RecordChild1, // #0 = $vA
/* 45028*/      OPC_RecordChild2, // #1 = $vB
/* 45029*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 45031*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VPKSWUS), 0,
                    MVT::v8i16, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v8i16] } 5752:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB) - Complexity = 8
                // Dst: (VPKSWUS:{ *:[v8i16] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/* 45039*/    /*Scope*/ 15, /*->45055*/
/* 45040*/      OPC_CheckChild0Integer, 122|128,44/*5754*/, 
/* 45043*/      OPC_RecordChild1, // #0 = $vA
/* 45044*/      OPC_RecordChild2, // #1 = $vB
/* 45045*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 45047*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VPKUHUS), 0,
                    MVT::v16i8, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v16i8] } 5754:{ *:[iPTR] }, v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB) - Complexity = 8
                // Dst: (VPKUHUS:{ *:[v16i8] } v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB)
/* 45055*/    /*Scope*/ 15, /*->45071*/
/* 45056*/      OPC_CheckChild0Integer, 123|128,44/*5755*/, 
/* 45059*/      OPC_RecordChild1, // #0 = $vA
/* 45060*/      OPC_RecordChild2, // #1 = $vB
/* 45061*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 45063*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VPKUWUS), 0,
                    MVT::v8i16, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v8i16] } 5755:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB) - Complexity = 8
                // Dst: (VPKUWUS:{ *:[v8i16] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/* 45071*/    /*Scope*/ 13, /*->45085*/
/* 45072*/      OPC_CheckChild0Integer, 44|128,45/*5804*/, 
/* 45075*/      OPC_RecordChild1, // #0 = $vB
/* 45076*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 45078*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VUPKHPX), 0,
                    MVT::v4i32, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 5804:{ *:[iPTR] }, v8i16:{ *:[v8i16] }:$vB) - Complexity = 8
                // Dst: (VUPKHPX:{ *:[v4i32] } v8i16:{ *:[v8i16] }:$vB)
/* 45085*/    /*Scope*/ 13, /*->45099*/
/* 45086*/      OPC_CheckChild0Integer, 45|128,45/*5805*/, 
/* 45089*/      OPC_RecordChild1, // #0 = $vB
/* 45090*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 45092*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VUPKHSB), 0,
                    MVT::v8i16, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v8i16] } 5805:{ *:[iPTR] }, v16i8:{ *:[v16i8] }:$vB) - Complexity = 8
                // Dst: (VUPKHSB:{ *:[v8i16] } v16i8:{ *:[v16i8] }:$vB)
/* 45099*/    /*Scope*/ 13, /*->45113*/
/* 45100*/      OPC_CheckChild0Integer, 46|128,45/*5806*/, 
/* 45103*/      OPC_RecordChild1, // #0 = $vB
/* 45104*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 45106*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VUPKHSH), 0,
                    MVT::v4i32, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 5806:{ *:[iPTR] }, v8i16:{ *:[v8i16] }:$vB) - Complexity = 8
                // Dst: (VUPKHSH:{ *:[v4i32] } v8i16:{ *:[v8i16] }:$vB)
/* 45113*/    /*Scope*/ 13, /*->45127*/
/* 45114*/      OPC_CheckChild0Integer, 48|128,45/*5808*/, 
/* 45117*/      OPC_RecordChild1, // #0 = $vB
/* 45118*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 45120*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VUPKLPX), 0,
                    MVT::v4i32, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 5808:{ *:[iPTR] }, v8i16:{ *:[v8i16] }:$vB) - Complexity = 8
                // Dst: (VUPKLPX:{ *:[v4i32] } v8i16:{ *:[v8i16] }:$vB)
/* 45127*/    /*Scope*/ 13, /*->45141*/
/* 45128*/      OPC_CheckChild0Integer, 49|128,45/*5809*/, 
/* 45131*/      OPC_RecordChild1, // #0 = $vB
/* 45132*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 45134*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VUPKLSB), 0,
                    MVT::v8i16, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v8i16] } 5809:{ *:[iPTR] }, v16i8:{ *:[v16i8] }:$vB) - Complexity = 8
                // Dst: (VUPKLSB:{ *:[v8i16] } v16i8:{ *:[v16i8] }:$vB)
/* 45141*/    /*Scope*/ 13, /*->45155*/
/* 45142*/      OPC_CheckChild0Integer, 50|128,45/*5810*/, 
/* 45145*/      OPC_RecordChild1, // #0 = $vB
/* 45146*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 45148*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VUPKLSH), 0,
                    MVT::v4i32, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 5810:{ *:[iPTR] }, v8i16:{ *:[v8i16] }:$vB) - Complexity = 8
                // Dst: (VUPKLSH:{ *:[v4i32] } v8i16:{ *:[v8i16] }:$vB)
/* 45155*/    /*Scope*/ 15, /*->45171*/
/* 45156*/      OPC_CheckChild0Integer, 102|128,44/*5734*/, 
/* 45159*/      OPC_RecordChild1, // #0 = $vA
/* 45160*/      OPC_RecordChild2, // #1 = $vB
/* 45161*/      OPC_CheckPatternPredicate, 35, // (PPCSubTarget->hasP8Altivec())
/* 45163*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VMULESW), 0,
                    MVT::v2i64, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v2i64] } 5734:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB) - Complexity = 8
                // Dst: (VMULESW:{ *:[v2i64] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/* 45171*/    /*Scope*/ 15, /*->45187*/
/* 45172*/      OPC_CheckChild0Integer, 105|128,44/*5737*/, 
/* 45175*/      OPC_RecordChild1, // #0 = $vA
/* 45176*/      OPC_RecordChild2, // #1 = $vB
/* 45177*/      OPC_CheckPatternPredicate, 35, // (PPCSubTarget->hasP8Altivec())
/* 45179*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VMULEUW), 0,
                    MVT::v2i64, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v2i64] } 5737:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB) - Complexity = 8
                // Dst: (VMULEUW:{ *:[v2i64] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/* 45187*/    /*Scope*/ 15, /*->45203*/
/* 45188*/      OPC_CheckChild0Integer, 108|128,44/*5740*/, 
/* 45191*/      OPC_RecordChild1, // #0 = $vA
/* 45192*/      OPC_RecordChild2, // #1 = $vB
/* 45193*/      OPC_CheckPatternPredicate, 35, // (PPCSubTarget->hasP8Altivec())
/* 45195*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VMULOSW), 0,
                    MVT::v2i64, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v2i64] } 5740:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB) - Complexity = 8
                // Dst: (VMULOSW:{ *:[v2i64] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/* 45203*/    /*Scope*/ 15, /*->45219*/
/* 45204*/      OPC_CheckChild0Integer, 111|128,44/*5743*/, 
/* 45207*/      OPC_RecordChild1, // #0 = $vA
/* 45208*/      OPC_RecordChild2, // #1 = $vB
/* 45209*/      OPC_CheckPatternPredicate, 35, // (PPCSubTarget->hasP8Altivec())
/* 45211*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VMULOUW), 0,
                    MVT::v2i64, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v2i64] } 5743:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB) - Complexity = 8
                // Dst: (VMULOUW:{ *:[v2i64] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/* 45219*/    /*Scope*/ 15, /*->45235*/
/* 45220*/      OPC_CheckChild0Integer, 75|128,44/*5707*/, 
/* 45223*/      OPC_RecordChild1, // #0 = $vA
/* 45224*/      OPC_RecordChild2, // #1 = $vB
/* 45225*/      OPC_CheckPatternPredicate, 35, // (PPCSubTarget->hasP8Altivec())
/* 45227*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VMAXSD), 0,
                    MVT::v2i64, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v2i64] } 5707:{ *:[iPTR] }, v2i64:{ *:[v2i64] }:$vA, v2i64:{ *:[v2i64] }:$vB) - Complexity = 8
                // Dst: (VMAXSD:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vA, v2i64:{ *:[v2i64] }:$vB)
/* 45235*/    /*Scope*/ 15, /*->45251*/
/* 45236*/      OPC_CheckChild0Integer, 79|128,44/*5711*/, 
/* 45239*/      OPC_RecordChild1, // #0 = $vA
/* 45240*/      OPC_RecordChild2, // #1 = $vB
/* 45241*/      OPC_CheckPatternPredicate, 35, // (PPCSubTarget->hasP8Altivec())
/* 45243*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VMAXUD), 0,
                    MVT::v2i64, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v2i64] } 5711:{ *:[iPTR] }, v2i64:{ *:[v2i64] }:$vA, v2i64:{ *:[v2i64] }:$vB) - Complexity = 8
                // Dst: (VMAXUD:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vA, v2i64:{ *:[v2i64] }:$vB)
/* 45251*/    /*Scope*/ 15, /*->45267*/
/* 45252*/      OPC_CheckChild0Integer, 86|128,44/*5718*/, 
/* 45255*/      OPC_RecordChild1, // #0 = $vA
/* 45256*/      OPC_RecordChild2, // #1 = $vB
/* 45257*/      OPC_CheckPatternPredicate, 35, // (PPCSubTarget->hasP8Altivec())
/* 45259*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VMINSD), 0,
                    MVT::v2i64, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v2i64] } 5718:{ *:[iPTR] }, v2i64:{ *:[v2i64] }:$vA, v2i64:{ *:[v2i64] }:$vB) - Complexity = 8
                // Dst: (VMINSD:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vA, v2i64:{ *:[v2i64] }:$vB)
/* 45267*/    /*Scope*/ 15, /*->45283*/
/* 45268*/      OPC_CheckChild0Integer, 90|128,44/*5722*/, 
/* 45271*/      OPC_RecordChild1, // #0 = $vA
/* 45272*/      OPC_RecordChild2, // #1 = $vB
/* 45273*/      OPC_CheckPatternPredicate, 35, // (PPCSubTarget->hasP8Altivec())
/* 45275*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VMINUD), 0,
                    MVT::v2i64, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v2i64] } 5722:{ *:[iPTR] }, v2i64:{ *:[v2i64] }:$vA, v2i64:{ *:[v2i64] }:$vB) - Complexity = 8
                // Dst: (VMINUD:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vA, v2i64:{ *:[v2i64] }:$vB)
/* 45283*/    /*Scope*/ 15, /*->45299*/
/* 45284*/      OPC_CheckChild0Integer, 5|128,45/*5765*/, 
/* 45287*/      OPC_RecordChild1, // #0 = $vA
/* 45288*/      OPC_RecordChild2, // #1 = $vB
/* 45289*/      OPC_CheckPatternPredicate, 35, // (PPCSubTarget->hasP8Altivec())
/* 45291*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VRLD), 0,
                    MVT::v2i64, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v2i64] } 5765:{ *:[iPTR] }, v2i64:{ *:[v2i64] }:$vA, v2i64:{ *:[v2i64] }:$vB) - Complexity = 8
                // Dst: (VRLD:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vA, v2i64:{ *:[v2i64] }:$vB)
/* 45299*/    /*Scope*/ 17, /*->45317*/
/* 45300*/      OPC_CheckChild0Integer, 5|128,44/*5637*/, 
/* 45303*/      OPC_RecordChild1, // #0 = $vA
/* 45304*/      OPC_RecordChild2, // #1 = $vB
/* 45305*/      OPC_RecordChild3, // #2 = $vC
/* 45306*/      OPC_CheckPatternPredicate, 35, // (PPCSubTarget->hasP8Altivec())
/* 45308*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VADDEUQM), 0,
                    MVT::v1i128, 3/*#Ops*/, 0, 1, 2, 
                // Src: (intrinsic_wo_chain:{ *:[v1i128] } 5637:{ *:[iPTR] }, v1i128:{ *:[v1i128] }:$vA, v1i128:{ *:[v1i128] }:$vB, v1i128:{ *:[v1i128] }:$vC) - Complexity = 8
                // Dst: (VADDEUQM:{ *:[v1i128] } v1i128:{ *:[v1i128] }:$vA, v1i128:{ *:[v1i128] }:$vB, v1i128:{ *:[v1i128] }:$vC)
/* 45317*/    /*Scope*/ 15, /*->45333*/
/* 45318*/      OPC_CheckChild0Integer, 2|128,44/*5634*/, 
/* 45321*/      OPC_RecordChild1, // #0 = $vA
/* 45322*/      OPC_RecordChild2, // #1 = $vB
/* 45323*/      OPC_CheckPatternPredicate, 35, // (PPCSubTarget->hasP8Altivec())
/* 45325*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VADDCUQ), 0,
                    MVT::v1i128, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v1i128] } 5634:{ *:[iPTR] }, v1i128:{ *:[v1i128] }:$vA, v1i128:{ *:[v1i128] }:$vB) - Complexity = 8
                // Dst: (VADDCUQ:{ *:[v1i128] } v1i128:{ *:[v1i128] }:$vA, v1i128:{ *:[v1i128] }:$vB)
/* 45333*/    /*Scope*/ 17, /*->45351*/
/* 45334*/      OPC_CheckChild0Integer, 4|128,44/*5636*/, 
/* 45337*/      OPC_RecordChild1, // #0 = $vA
/* 45338*/      OPC_RecordChild2, // #1 = $vB
/* 45339*/      OPC_RecordChild3, // #2 = $vC
/* 45340*/      OPC_CheckPatternPredicate, 35, // (PPCSubTarget->hasP8Altivec())
/* 45342*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VADDECUQ), 0,
                    MVT::v1i128, 3/*#Ops*/, 0, 1, 2, 
                // Src: (intrinsic_wo_chain:{ *:[v1i128] } 5636:{ *:[iPTR] }, v1i128:{ *:[v1i128] }:$vA, v1i128:{ *:[v1i128] }:$vB, v1i128:{ *:[v1i128] }:$vC) - Complexity = 8
                // Dst: (VADDECUQ:{ *:[v1i128] } v1i128:{ *:[v1i128] }:$vA, v1i128:{ *:[v1i128] }:$vB, v1i128:{ *:[v1i128] }:$vC)
/* 45351*/    /*Scope*/ 17, /*->45369*/
/* 45352*/      OPC_CheckChild0Integer, 32|128,45/*5792*/, 
/* 45355*/      OPC_RecordChild1, // #0 = $vA
/* 45356*/      OPC_RecordChild2, // #1 = $vB
/* 45357*/      OPC_RecordChild3, // #2 = $vC
/* 45358*/      OPC_CheckPatternPredicate, 35, // (PPCSubTarget->hasP8Altivec())
/* 45360*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VSUBEUQM), 0,
                    MVT::v1i128, 3/*#Ops*/, 0, 1, 2, 
                // Src: (intrinsic_wo_chain:{ *:[v1i128] } 5792:{ *:[iPTR] }, v1i128:{ *:[v1i128] }:$vA, v1i128:{ *:[v1i128] }:$vB, v1i128:{ *:[v1i128] }:$vC) - Complexity = 8
                // Dst: (VSUBEUQM:{ *:[v1i128] } v1i128:{ *:[v1i128] }:$vA, v1i128:{ *:[v1i128] }:$vB, v1i128:{ *:[v1i128] }:$vC)
/* 45369*/    /*Scope*/ 15, /*->45385*/
/* 45370*/      OPC_CheckChild0Integer, 29|128,45/*5789*/, 
/* 45373*/      OPC_RecordChild1, // #0 = $vA
/* 45374*/      OPC_RecordChild2, // #1 = $vB
/* 45375*/      OPC_CheckPatternPredicate, 35, // (PPCSubTarget->hasP8Altivec())
/* 45377*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VSUBCUQ), 0,
                    MVT::v1i128, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v1i128] } 5789:{ *:[iPTR] }, v1i128:{ *:[v1i128] }:$vA, v1i128:{ *:[v1i128] }:$vB) - Complexity = 8
                // Dst: (VSUBCUQ:{ *:[v1i128] } v1i128:{ *:[v1i128] }:$vA, v1i128:{ *:[v1i128] }:$vB)
/* 45385*/    /*Scope*/ 17, /*->45403*/
/* 45386*/      OPC_CheckChild0Integer, 31|128,45/*5791*/, 
/* 45389*/      OPC_RecordChild1, // #0 = $vA
/* 45390*/      OPC_RecordChild2, // #1 = $vB
/* 45391*/      OPC_RecordChild3, // #2 = $vC
/* 45392*/      OPC_CheckPatternPredicate, 35, // (PPCSubTarget->hasP8Altivec())
/* 45394*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VSUBECUQ), 0,
                    MVT::v1i128, 3/*#Ops*/, 0, 1, 2, 
                // Src: (intrinsic_wo_chain:{ *:[v1i128] } 5791:{ *:[iPTR] }, v1i128:{ *:[v1i128] }:$vA, v1i128:{ *:[v1i128] }:$vB, v1i128:{ *:[v1i128] }:$vC) - Complexity = 8
                // Dst: (VSUBECUQ:{ *:[v1i128] } v1i128:{ *:[v1i128] }:$vA, v1i128:{ *:[v1i128] }:$vB, v1i128:{ *:[v1i128] }:$vC)
/* 45403*/    /*Scope*/ 15, /*->45419*/
/* 45404*/      OPC_CheckChild0Integer, 100|128,43/*5604*/, 
/* 45407*/      OPC_RecordChild1, // #0 = $vA
/* 45408*/      OPC_RecordChild2, // #1 = $vB
/* 45409*/      OPC_CheckPatternPredicate, 35, // (PPCSubTarget->hasP8Altivec())
/* 45411*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VPMSUMB), 0,
                    MVT::v16i8, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v16i8] } 5604:{ *:[iPTR] }, v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB) - Complexity = 8
                // Dst: (VPMSUMB:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB)
/* 45419*/    /*Scope*/ 15, /*->45435*/
/* 45420*/      OPC_CheckChild0Integer, 102|128,43/*5606*/, 
/* 45423*/      OPC_RecordChild1, // #0 = $vA
/* 45424*/      OPC_RecordChild2, // #1 = $vB
/* 45425*/      OPC_CheckPatternPredicate, 35, // (PPCSubTarget->hasP8Altivec())
/* 45427*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VPMSUMH), 0,
                    MVT::v8i16, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v8i16] } 5606:{ *:[iPTR] }, v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB) - Complexity = 8
                // Dst: (VPMSUMH:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB)
/* 45435*/    /*Scope*/ 15, /*->45451*/
/* 45436*/      OPC_CheckChild0Integer, 103|128,43/*5607*/, 
/* 45439*/      OPC_RecordChild1, // #0 = $vA
/* 45440*/      OPC_RecordChild2, // #1 = $vB
/* 45441*/      OPC_CheckPatternPredicate, 35, // (PPCSubTarget->hasP8Altivec())
/* 45443*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VPMSUMW), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 5607:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB) - Complexity = 8
                // Dst: (VPMSUMW:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/* 45451*/    /*Scope*/ 15, /*->45467*/
/* 45452*/      OPC_CheckChild0Integer, 101|128,43/*5605*/, 
/* 45455*/      OPC_RecordChild1, // #0 = $vA
/* 45456*/      OPC_RecordChild2, // #1 = $vB
/* 45457*/      OPC_CheckPatternPredicate, 35, // (PPCSubTarget->hasP8Altivec())
/* 45459*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VPMSUMD), 0,
                    MVT::v2i64, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v2i64] } 5605:{ *:[iPTR] }, v2i64:{ *:[v2i64] }:$vA, v2i64:{ *:[v2i64] }:$vB) - Complexity = 8
                // Dst: (VPMSUMD:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vA, v2i64:{ *:[v2i64] }:$vB)
/* 45467*/    /*Scope*/ 17, /*->45485*/
/* 45468*/      OPC_CheckChild0Integer, 99|128,43/*5603*/, 
/* 45471*/      OPC_RecordChild1, // #0 = $vA
/* 45472*/      OPC_RecordChild2, // #1 = $vB
/* 45473*/      OPC_RecordChild3, // #2 = $vC
/* 45474*/      OPC_CheckPatternPredicate, 35, // (PPCSubTarget->hasP8Altivec())
/* 45476*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VPERMXOR), 0,
                    MVT::v16i8, 3/*#Ops*/, 0, 1, 2, 
                // Src: (intrinsic_wo_chain:{ *:[v16i8] } 5603:{ *:[iPTR] }, v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB, v16i8:{ *:[v16i8] }:$vC) - Complexity = 8
                // Dst: (VPERMXOR:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB, v16i8:{ *:[v16i8] }:$vC)
/* 45485*/    /*Scope*/ 15, /*->45501*/
/* 45486*/      OPC_CheckChild0Integer, 115|128,44/*5747*/, 
/* 45489*/      OPC_RecordChild1, // #0 = $vA
/* 45490*/      OPC_RecordChild2, // #1 = $vB
/* 45491*/      OPC_CheckPatternPredicate, 35, // (PPCSubTarget->hasP8Altivec())
/* 45493*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VPKSDSS), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 5747:{ *:[iPTR] }, v2i64:{ *:[v2i64] }:$vA, v2i64:{ *:[v2i64] }:$vB) - Complexity = 8
                // Dst: (VPKSDSS:{ *:[v4i32] } v2i64:{ *:[v2i64] }:$vA, v2i64:{ *:[v2i64] }:$vB)
/* 45501*/    /*Scope*/ 15, /*->45517*/
/* 45502*/      OPC_CheckChild0Integer, 116|128,44/*5748*/, 
/* 45505*/      OPC_RecordChild1, // #0 = $vA
/* 45506*/      OPC_RecordChild2, // #1 = $vB
/* 45507*/      OPC_CheckPatternPredicate, 35, // (PPCSubTarget->hasP8Altivec())
/* 45509*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VPKSDUS), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 5748:{ *:[iPTR] }, v2i64:{ *:[v2i64] }:$vA, v2i64:{ *:[v2i64] }:$vB) - Complexity = 8
                // Dst: (VPKSDUS:{ *:[v4i32] } v2i64:{ *:[v2i64] }:$vA, v2i64:{ *:[v2i64] }:$vB)
/* 45517*/    /*Scope*/ 15, /*->45533*/
/* 45518*/      OPC_CheckChild0Integer, 121|128,44/*5753*/, 
/* 45521*/      OPC_RecordChild1, // #0 = $vA
/* 45522*/      OPC_RecordChild2, // #1 = $vB
/* 45523*/      OPC_CheckPatternPredicate, 35, // (PPCSubTarget->hasP8Altivec())
/* 45525*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VPKUDUS), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 5753:{ *:[iPTR] }, v2i64:{ *:[v2i64] }:$vA, v2i64:{ *:[v2i64] }:$vB) - Complexity = 8
                // Dst: (VPKUDUS:{ *:[v4i32] } v2i64:{ *:[v2i64] }:$vA, v2i64:{ *:[v2i64] }:$vB)
/* 45533*/    /*Scope*/ 13, /*->45547*/
/* 45534*/      OPC_CheckChild0Integer, 47|128,45/*5807*/, 
/* 45537*/      OPC_RecordChild1, // #0 = $vB
/* 45538*/      OPC_CheckPatternPredicate, 35, // (PPCSubTarget->hasP8Altivec())
/* 45540*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VUPKHSW), 0,
                    MVT::v2i64, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v2i64] } 5807:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$vB) - Complexity = 8
                // Dst: (VUPKHSW:{ *:[v2i64] } v4i32:{ *:[v4i32] }:$vB)
/* 45547*/    /*Scope*/ 13, /*->45561*/
/* 45548*/      OPC_CheckChild0Integer, 51|128,45/*5811*/, 
/* 45551*/      OPC_RecordChild1, // #0 = $vB
/* 45552*/      OPC_CheckPatternPredicate, 35, // (PPCSubTarget->hasP8Altivec())
/* 45554*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VUPKLSW), 0,
                    MVT::v2i64, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v2i64] } 5811:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$vB) - Complexity = 8
                // Dst: (VUPKLSW:{ *:[v2i64] } v4i32:{ *:[v4i32] }:$vB)
/* 45561*/    /*Scope*/ 13, /*->45575*/
/* 45562*/      OPC_CheckChild0Integer, 70|128,44/*5702*/, 
/* 45565*/      OPC_RecordChild1, // #0 = $vB
/* 45566*/      OPC_CheckPatternPredicate, 35, // (PPCSubTarget->hasP8Altivec())
/* 45568*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VGBBD), 0,
                    MVT::v16i8, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v16i8] } 5702:{ *:[iPTR] }, v16i8:{ *:[v16i8] }:$vB) - Complexity = 8
                // Dst: (VGBBD:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vB)
/* 45575*/    /*Scope*/ 15, /*->45591*/
/* 45576*/      OPC_CheckChild0Integer, 18|128,44/*5650*/, 
/* 45579*/      OPC_RecordChild1, // #0 = $vA
/* 45580*/      OPC_RecordChild2, // #1 = $vB
/* 45581*/      OPC_CheckPatternPredicate, 35, // (PPCSubTarget->hasP8Altivec())
/* 45583*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VBPERMQ), 0,
                    MVT::v2i64, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v2i64] } 5650:{ *:[iPTR] }, v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB) - Complexity = 8
                // Dst: (VBPERMQ:{ *:[v2i64] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB)
/* 45591*/    /*Scope*/ 15, /*->45607*/
/* 45592*/      OPC_CheckChild0Integer, 95|128,43/*5599*/, 
/* 45595*/      OPC_RecordChild1, // #0 = $vA
/* 45596*/      OPC_RecordChild2, // #1 = $vB
/* 45597*/      OPC_CheckPatternPredicate, 34, // (PPCSubTarget->hasP8Crypto())
/* 45599*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VCIPHER), 0,
                    MVT::v2i64, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v2i64] } 5599:{ *:[iPTR] }, v2i64:{ *:[v2i64] }:$vA, v2i64:{ *:[v2i64] }:$vB) - Complexity = 8
                // Dst: (VCIPHER:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vA, v2i64:{ *:[v2i64] }:$vB)
/* 45607*/    /*Scope*/ 15, /*->45623*/
/* 45608*/      OPC_CheckChild0Integer, 96|128,43/*5600*/, 
/* 45611*/      OPC_RecordChild1, // #0 = $vA
/* 45612*/      OPC_RecordChild2, // #1 = $vB
/* 45613*/      OPC_CheckPatternPredicate, 34, // (PPCSubTarget->hasP8Crypto())
/* 45615*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VCIPHERLAST), 0,
                    MVT::v2i64, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v2i64] } 5600:{ *:[iPTR] }, v2i64:{ *:[v2i64] }:$vA, v2i64:{ *:[v2i64] }:$vB) - Complexity = 8
                // Dst: (VCIPHERLAST:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vA, v2i64:{ *:[v2i64] }:$vB)
/* 45623*/    /*Scope*/ 15, /*->45639*/
/* 45624*/      OPC_CheckChild0Integer, 97|128,43/*5601*/, 
/* 45627*/      OPC_RecordChild1, // #0 = $vA
/* 45628*/      OPC_RecordChild2, // #1 = $vB
/* 45629*/      OPC_CheckPatternPredicate, 34, // (PPCSubTarget->hasP8Crypto())
/* 45631*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VNCIPHER), 0,
                    MVT::v2i64, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v2i64] } 5601:{ *:[iPTR] }, v2i64:{ *:[v2i64] }:$vA, v2i64:{ *:[v2i64] }:$vB) - Complexity = 8
                // Dst: (VNCIPHER:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vA, v2i64:{ *:[v2i64] }:$vB)
/* 45639*/    /*Scope*/ 15, /*->45655*/
/* 45640*/      OPC_CheckChild0Integer, 98|128,43/*5602*/, 
/* 45643*/      OPC_RecordChild1, // #0 = $vA
/* 45644*/      OPC_RecordChild2, // #1 = $vB
/* 45645*/      OPC_CheckPatternPredicate, 34, // (PPCSubTarget->hasP8Crypto())
/* 45647*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VNCIPHERLAST), 0,
                    MVT::v2i64, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v2i64] } 5602:{ *:[iPTR] }, v2i64:{ *:[v2i64] }:$vA, v2i64:{ *:[v2i64] }:$vB) - Complexity = 8
                // Dst: (VNCIPHERLAST:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vA, v2i64:{ *:[v2i64] }:$vB)
/* 45655*/    /*Scope*/ 13, /*->45669*/
/* 45656*/      OPC_CheckChild0Integer, 104|128,43/*5608*/, 
/* 45659*/      OPC_RecordChild1, // #0 = $vA
/* 45660*/      OPC_CheckPatternPredicate, 34, // (PPCSubTarget->hasP8Crypto())
/* 45662*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VSBOX), 0,
                    MVT::v2i64, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v2i64] } 5608:{ *:[iPTR] }, v2i64:{ *:[v2i64] }:$vA) - Complexity = 8
                // Dst: (VSBOX:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vA)
/* 45669*/    /*Scope*/ 13, /*->45683*/
/* 45670*/      OPC_CheckChild0Integer, 126|128,44/*5758*/, 
/* 45673*/      OPC_RecordChild1, // #0 = $vB
/* 45674*/      OPC_CheckPatternPredicate, 32, // (PPCSubTarget->hasP9Altivec())
/* 45676*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VPRTYBW), 0,
                    MVT::v4i32, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 5758:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$vB) - Complexity = 8
                // Dst: (VPRTYBW:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vB)
/* 45683*/    /*Scope*/ 13, /*->45697*/
/* 45684*/      OPC_CheckChild0Integer, 124|128,44/*5756*/, 
/* 45687*/      OPC_RecordChild1, // #0 = $vB
/* 45688*/      OPC_CheckPatternPredicate, 32, // (PPCSubTarget->hasP9Altivec())
/* 45690*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VPRTYBD), 0,
                    MVT::v2i64, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v2i64] } 5756:{ *:[iPTR] }, v2i64:{ *:[v2i64] }:$vB) - Complexity = 8
                // Dst: (VPRTYBD:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vB)
/* 45697*/    /*Scope*/ 13, /*->45711*/
/* 45698*/      OPC_CheckChild0Integer, 125|128,44/*5757*/, 
/* 45701*/      OPC_RecordChild1, // #0 = $vB
/* 45702*/      OPC_CheckPatternPredicate, 32, // (PPCSubTarget->hasP9Altivec())
/* 45704*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VPRTYBQ), 0,
                    MVT::v1i128, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v1i128] } 5757:{ *:[iPTR] }, v1i128:{ *:[v1i128] }:$vB) - Complexity = 8
                // Dst: (VPRTYBQ:{ *:[v1i128] } v1i128:{ *:[v1i128] }:$vB)
/* 45711*/    /*Scope*/ 15, /*->45727*/
/* 45712*/      OPC_CheckChild0Integer, 11|128,45/*5771*/, 
/* 45715*/      OPC_RecordChild1, // #0 = $vA
/* 45716*/      OPC_RecordChild2, // #1 = $vB
/* 45717*/      OPC_CheckPatternPredicate, 32, // (PPCSubTarget->hasP9Altivec())
/* 45719*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VRLWNM), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 5771:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB) - Complexity = 8
                // Dst: (VRLWNM:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/* 45727*/    /*Scope*/ 17, /*->45745*/
/* 45728*/      OPC_CheckChild0Integer, 10|128,45/*5770*/, 
/* 45731*/      OPC_RecordChild1, // #0 = $vA
/* 45732*/      OPC_RecordChild2, // #1 = $vB
/* 45733*/      OPC_RecordChild3, // #2 = $vDi
/* 45734*/      OPC_CheckPatternPredicate, 32, // (PPCSubTarget->hasP9Altivec())
/* 45736*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VRLWMI), 0,
                    MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 5770:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB, v4i32:{ *:[v4i32] }:$vDi) - Complexity = 8
                // Dst: (VRLWMI:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB, v4i32:{ *:[v4i32] }:$vDi)
/* 45745*/    /*Scope*/ 15, /*->45761*/
/* 45746*/      OPC_CheckChild0Integer, 7|128,45/*5767*/, 
/* 45749*/      OPC_RecordChild1, // #0 = $vA
/* 45750*/      OPC_RecordChild2, // #1 = $vB
/* 45751*/      OPC_CheckPatternPredicate, 32, // (PPCSubTarget->hasP9Altivec())
/* 45753*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VRLDNM), 0,
                    MVT::v2i64, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v2i64] } 5767:{ *:[iPTR] }, v2i64:{ *:[v2i64] }:$vA, v2i64:{ *:[v2i64] }:$vB) - Complexity = 8
                // Dst: (VRLDNM:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vA, v2i64:{ *:[v2i64] }:$vB)
/* 45761*/    /*Scope*/ 17, /*->45779*/
/* 45762*/      OPC_CheckChild0Integer, 6|128,45/*5766*/, 
/* 45765*/      OPC_RecordChild1, // #0 = $vA
/* 45766*/      OPC_RecordChild2, // #1 = $vB
/* 45767*/      OPC_RecordChild3, // #2 = $vDi
/* 45768*/      OPC_CheckPatternPredicate, 32, // (PPCSubTarget->hasP9Altivec())
/* 45770*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VRLDMI), 0,
                    MVT::v2i64, 3/*#Ops*/, 0, 1, 2, 
                // Src: (intrinsic_wo_chain:{ *:[v2i64] } 5766:{ *:[iPTR] }, v2i64:{ *:[v2i64] }:$vA, v2i64:{ *:[v2i64] }:$vB, v2i64:{ *:[v2i64] }:$vDi) - Complexity = 8
                // Dst: (VRLDMI:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vA, v2i64:{ *:[v2i64] }:$vB, v2i64:{ *:[v2i64] }:$vDi)
/* 45779*/    /*Scope*/ 15, /*->45795*/
/* 45780*/      OPC_CheckChild0Integer, 18|128,45/*5778*/, 
/* 45783*/      OPC_RecordChild1, // #0 = $vA
/* 45784*/      OPC_RecordChild2, // #1 = $vB
/* 45785*/      OPC_CheckPatternPredicate, 32, // (PPCSubTarget->hasP9Altivec())
/* 45787*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VSLV), 0,
                    MVT::v16i8, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v16i8] } 5778:{ *:[iPTR] }, v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB) - Complexity = 8
                // Dst: (VSLV:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB)
/* 45795*/    /*Scope*/ 15, /*->45811*/
/* 45796*/      OPC_CheckChild0Integer, 27|128,45/*5787*/, 
/* 45799*/      OPC_RecordChild1, // #0 = $vA
/* 45800*/      OPC_RecordChild2, // #1 = $vB
/* 45801*/      OPC_CheckPatternPredicate, 32, // (PPCSubTarget->hasP9Altivec())
/* 45803*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VSRV), 0,
                    MVT::v16i8, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v16i8] } 5787:{ *:[iPTR] }, v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB) - Complexity = 8
                // Dst: (VSRV:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB)
/* 45811*/    /*Scope*/ 15, /*->45827*/
/* 45812*/      OPC_CheckChild0Integer, 127|128,43/*5631*/, 
/* 45815*/      OPC_RecordChild1, // #0 = $vA
/* 45816*/      OPC_RecordChild2, // #1 = $vB
/* 45817*/      OPC_CheckPatternPredicate, 32, // (PPCSubTarget->hasP9Altivec())
/* 45819*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VABSDUB), 0,
                    MVT::v16i8, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v16i8] } 5631:{ *:[iPTR] }, v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB) - Complexity = 8
                // Dst: (VABSDUB:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB)
/* 45827*/    /*Scope*/ 15, /*->45843*/
/* 45828*/      OPC_CheckChild0Integer, 0|128,44/*5632*/, 
/* 45831*/      OPC_RecordChild1, // #0 = $vA
/* 45832*/      OPC_RecordChild2, // #1 = $vB
/* 45833*/      OPC_CheckPatternPredicate, 32, // (PPCSubTarget->hasP9Altivec())
/* 45835*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VABSDUH), 0,
                    MVT::v8i16, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v8i16] } 5632:{ *:[iPTR] }, v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB) - Complexity = 8
                // Dst: (VABSDUH:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB)
/* 45843*/    /*Scope*/ 15, /*->45859*/
/* 45844*/      OPC_CheckChild0Integer, 1|128,44/*5633*/, 
/* 45847*/      OPC_RecordChild1, // #0 = $vA
/* 45848*/      OPC_RecordChild2, // #1 = $vB
/* 45849*/      OPC_CheckPatternPredicate, 32, // (PPCSubTarget->hasP9Altivec())
/* 45851*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VABSDUW), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 5633:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB) - Complexity = 8
                // Dst: (VABSDUW:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/* 45859*/    /*Scope*/ 13, /*->45873*/
/* 45860*/      OPC_CheckChild0Integer, 83|128,46/*5971*/, 
/* 45863*/      OPC_RecordChild1, // #0 = $XB
/* 45864*/      OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 45866*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XVCVDPSP), 0,
                    MVT::v4f32, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v4f32] } 5971:{ *:[iPTR] }, v2f64:{ *:[v2f64] }:$XB) - Complexity = 408
                // Dst: (XVCVDPSP:{ *:[v4f32] } v2f64:{ *:[v2f64] }:$XB)
/* 45873*/    /*Scope*/ 13, /*->45887*/
/* 45874*/      OPC_CheckChild0Integer, 87|128,46/*5975*/, 
/* 45877*/      OPC_RecordChild1, // #0 = $XB
/* 45878*/      OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 45880*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XVCVSPDP), 0,
                    MVT::v2f64, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v2f64] } 5975:{ *:[iPTR] }, v4f32:{ *:[v4f32] }:$XB) - Complexity = 408
                // Dst: (XVCVSPDP:{ *:[v2f64] } v4f32:{ *:[v4f32] }:$XB)
/* 45887*/    /*Scope*/ 13, /*->45901*/
/* 45888*/      OPC_CheckChild0Integer, 89|128,46/*5977*/, 
/* 45891*/      OPC_RecordChild1, // #0 = $XB
/* 45892*/      OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 45894*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XVCVSXDSP), 0,
                    MVT::v4f32, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v4f32] } 5977:{ *:[iPTR] }, v2i64:{ *:[v2i64] }:$XB) - Complexity = 408
                // Dst: (XVCVSXDSP:{ *:[v4f32] } v2i64:{ *:[v2i64] }:$XB)
/* 45901*/    /*Scope*/ 13, /*->45915*/
/* 45902*/      OPC_CheckChild0Integer, 90|128,46/*5978*/, 
/* 45905*/      OPC_RecordChild1, // #0 = $XB
/* 45906*/      OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 45908*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XVCVSXWDP), 0,
                    MVT::v2f64, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v2f64] } 5978:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$XB) - Complexity = 408
                // Dst: (XVCVSXWDP:{ *:[v2f64] } v4i32:{ *:[v4i32] }:$XB)
/* 45915*/    /*Scope*/ 13, /*->45929*/
/* 45916*/      OPC_CheckChild0Integer, 91|128,46/*5979*/, 
/* 45919*/      OPC_RecordChild1, // #0 = $XB
/* 45920*/      OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 45922*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XVCVUXDSP), 0,
                    MVT::v4f32, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v4f32] } 5979:{ *:[iPTR] }, v2i64:{ *:[v2i64] }:$XB) - Complexity = 408
                // Dst: (XVCVUXDSP:{ *:[v4f32] } v2i64:{ *:[v2i64] }:$XB)
/* 45929*/    /*Scope*/ 13, /*->45943*/
/* 45930*/      OPC_CheckChild0Integer, 92|128,46/*5980*/, 
/* 45933*/      OPC_RecordChild1, // #0 = $XB
/* 45934*/      OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 45936*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XVCVUXWDP), 0,
                    MVT::v2f64, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v2f64] } 5980:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$XB) - Complexity = 408
                // Dst: (XVCVUXWDP:{ *:[v2f64] } v4i32:{ *:[v4i32] }:$XB)
/* 45943*/    /*Scope*/ 15, /*->45959*/
/* 45944*/      OPC_CheckChild0Integer, 97|128,46/*5985*/, 
/* 45947*/      OPC_RecordChild1, // #0 = $XA
/* 45948*/      OPC_RecordChild2, // #1 = $XB
/* 45949*/      OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 45951*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XVMAXDP), 0,
                    MVT::v2f64, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v2f64] } 5985:{ *:[iPTR] }, vsrc:{ *:[v2f64] }:$XA, vsrc:{ *:[v2f64] }:$XB) - Complexity = 408
                // Dst: (XVMAXDP:{ *:[v2f64] } vsrc:{ *:[v2f64] }:$XA, vsrc:{ *:[v2f64] }:$XB)
/* 45959*/    /*Scope*/ 15, /*->45975*/
/* 45960*/      OPC_CheckChild0Integer, 99|128,46/*5987*/, 
/* 45963*/      OPC_RecordChild1, // #0 = $XA
/* 45964*/      OPC_RecordChild2, // #1 = $XB
/* 45965*/      OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 45967*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XVMINDP), 0,
                    MVT::v2f64, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v2f64] } 5987:{ *:[iPTR] }, vsrc:{ *:[v2f64] }:$XA, vsrc:{ *:[v2f64] }:$XB) - Complexity = 408
                // Dst: (XVMINDP:{ *:[v2f64] } vsrc:{ *:[v2f64] }:$XA, vsrc:{ *:[v2f64] }:$XB)
/* 45975*/    /*Scope*/ 15, /*->45991*/
/* 45976*/      OPC_CheckChild0Integer, 98|128,46/*5986*/, 
/* 45979*/      OPC_RecordChild1, // #0 = $XA
/* 45980*/      OPC_RecordChild2, // #1 = $XB
/* 45981*/      OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 45983*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XVMAXSP), 0,
                    MVT::v4f32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v4f32] } 5986:{ *:[iPTR] }, vsrc:{ *:[v4f32] }:$XA, vsrc:{ *:[v4f32] }:$XB) - Complexity = 408
                // Dst: (XVMAXSP:{ *:[v4f32] } vsrc:{ *:[v4f32] }:$XA, vsrc:{ *:[v4f32] }:$XB)
/* 45991*/    /*Scope*/ 15, /*->46007*/
/* 45992*/      OPC_CheckChild0Integer, 100|128,46/*5988*/, 
/* 45995*/      OPC_RecordChild1, // #0 = $XA
/* 45996*/      OPC_RecordChild2, // #1 = $XB
/* 45997*/      OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 45999*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XVMINSP), 0,
                    MVT::v4f32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v4f32] } 5988:{ *:[iPTR] }, vsrc:{ *:[v4f32] }:$XA, vsrc:{ *:[v4f32] }:$XB) - Complexity = 408
                // Dst: (XVMINSP:{ *:[v4f32] } vsrc:{ *:[v4f32] }:$XA, vsrc:{ *:[v4f32] }:$XB)
/* 46007*/    /*Scope*/ 15, /*->46023*/
/* 46008*/      OPC_CheckChild0Integer, 94|128,46/*5982*/, 
/* 46011*/      OPC_RecordChild1, // #0 = $A
/* 46012*/      OPC_RecordChild2, // #1 = $B
/* 46013*/      OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 46015*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XVDIVSP), 0,
                    MVT::v4f32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v4f32] } 5982:{ *:[iPTR] }, v4f32:{ *:[v4f32] }:$A, v4f32:{ *:[v4f32] }:$B) - Complexity = 408
                // Dst: (XVDIVSP:{ *:[v4f32] } ?:{ *:[v4f32] }:$A, ?:{ *:[v4f32] }:$B)
/* 46023*/    /*Scope*/ 15, /*->46039*/
/* 46024*/      OPC_CheckChild0Integer, 93|128,46/*5981*/, 
/* 46027*/      OPC_RecordChild1, // #0 = $A
/* 46028*/      OPC_RecordChild2, // #1 = $B
/* 46029*/      OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 46031*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XVDIVDP), 0,
                    MVT::v2f64, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v2f64] } 5981:{ *:[iPTR] }, v2f64:{ *:[v2f64] }:$A, v2f64:{ *:[v2f64] }:$B) - Complexity = 408
                // Dst: (XVDIVDP:{ *:[v2f64] } ?:{ *:[v2f64] }:$A, ?:{ *:[v2f64] }:$B)
/* 46039*/    /*Scope*/ 13, /*->46053*/
/* 46040*/      OPC_CheckChild0Integer, 103|128,46/*5991*/, 
/* 46043*/      OPC_RecordChild1, // #0 = $A
/* 46044*/      OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 46046*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XVRESP), 0,
                    MVT::v4f32, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v4f32] } 5991:{ *:[iPTR] }, v4f32:{ *:[v4f32] }:$A) - Complexity = 408
                // Dst: (XVRESP:{ *:[v4f32] } ?:{ *:[v4f32] }:$A)
/* 46053*/    /*Scope*/ 13, /*->46067*/
/* 46054*/      OPC_CheckChild0Integer, 102|128,46/*5990*/, 
/* 46057*/      OPC_RecordChild1, // #0 = $A
/* 46058*/      OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 46060*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XVREDP), 0,
                    MVT::v2f64, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v2f64] } 5990:{ *:[iPTR] }, v2f64:{ *:[v2f64] }:$A) - Complexity = 408
                // Dst: (XVREDP:{ *:[v2f64] } ?:{ *:[v2f64] }:$A)
/* 46067*/    /*Scope*/ 13, /*->46081*/
/* 46068*/      OPC_CheckChild0Integer, 106|128,46/*5994*/, 
/* 46071*/      OPC_RecordChild1, // #0 = $A
/* 46072*/      OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 46074*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XVRSQRTESP), 0,
                    MVT::v4f32, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v4f32] } 5994:{ *:[iPTR] }, v4f32:{ *:[v4f32] }:$A) - Complexity = 408
                // Dst: (XVRSQRTESP:{ *:[v4f32] } ?:{ *:[v4f32] }:$A)
/* 46081*/    /*Scope*/ 13, /*->46095*/
/* 46082*/      OPC_CheckChild0Integer, 105|128,46/*5993*/, 
/* 46085*/      OPC_RecordChild1, // #0 = $A
/* 46086*/      OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 46088*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XVRSQRTEDP), 0,
                    MVT::v2f64, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v2f64] } 5993:{ *:[iPTR] }, v2f64:{ *:[v2f64] }:$A) - Complexity = 408
                // Dst: (XVRSQRTEDP:{ *:[v2f64] } ?:{ *:[v2f64] }:$A)
/* 46095*/    /*Scope*/ 13, /*->46109*/
/* 46096*/      OPC_CheckChild0Integer, 88|128,46/*5976*/, 
/* 46099*/      OPC_RecordChild1, // #0 = $XB
/* 46100*/      OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/* 46102*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XVCVSPHP), 0,
                    MVT::v4f32, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v4f32] } 5976:{ *:[iPTR] }, v4f32:{ *:[v4f32] }:$XB) - Complexity = 408
                // Dst: (XVCVSPHP:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$XB)
/* 46109*/    /*Scope*/ 15, /*->46125*/
/* 46110*/      OPC_CheckChild0Integer, 95|128,46/*5983*/, 
/* 46113*/      OPC_RecordChild1, // #0 = $XA
/* 46114*/      OPC_RecordChild2, // #1 = $XB
/* 46115*/      OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/* 46117*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XVIEXPDP), 0,
                    MVT::v2f64, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v2f64] } 5983:{ *:[iPTR] }, v2i64:{ *:[v2i64] }:$XA, v2i64:{ *:[v2i64] }:$XB) - Complexity = 408
                // Dst: (XVIEXPDP:{ *:[v2f64] } v2i64:{ *:[v2i64] }:$XA, v2i64:{ *:[v2i64] }:$XB)
/* 46125*/    /*Scope*/ 15, /*->46141*/
/* 46126*/      OPC_CheckChild0Integer, 96|128,46/*5984*/, 
/* 46129*/      OPC_RecordChild1, // #0 = $XA
/* 46130*/      OPC_RecordChild2, // #1 = $XB
/* 46131*/      OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/* 46133*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XVIEXPSP), 0,
                    MVT::v4f32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v4f32] } 5984:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$XA, v4i32:{ *:[v4i32] }:$XB) - Complexity = 408
                // Dst: (XVIEXPSP:{ *:[v4f32] } v4i32:{ *:[v4i32] }:$XA, v4i32:{ *:[v4i32] }:$XB)
/* 46141*/    /*Scope*/ 24, /*->46166*/
/* 46142*/      OPC_CheckChild0Integer, 86|128,46/*5974*/, 
/* 46145*/      OPC_RecordChild1, // #0 = $A
/* 46146*/      OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/* 46148*/      OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 46151*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 46159*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XVCVHPSP), 0,
                    MVT::v4f32, 1/*#Ops*/, 2, 
                // Src: (intrinsic_wo_chain:{ *:[v4f32] } 5974:{ *:[iPTR] }, v8i16:{ *:[v8i16] }:$A) - Complexity = 408
                // Dst: (XVCVHPSP:{ *:[v4f32] } (COPY_TO_REGCLASS:{ *:[v4i32] } ?:{ *:[v8i16] }:$A, VSRC:{ *:[i32] }))
/* 46166*/    /*Scope*/ 17, /*->46184*/
/* 46167*/      OPC_CheckChild0Integer, 17|128,46/*5905*/, 
/* 46170*/      OPC_RecordChild1, // #0 = $src
/* 46171*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 46173*/      OPC_CheckComplexPat, /*CP*/0, /*#*/0, // SelectAddrIdxOnly:$src #1 #2
/* 46176*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVLPCLDX), 0,
                    MVT::v4f64, 2/*#Ops*/, 1, 2, 
                // Src: (intrinsic_wo_chain:{ *:[v4f64] } 5905:{ *:[iPTR] }, xoaddr:{ *:[iPTR] }:$src) - Complexity = 17
                // Dst: (QVLPCLDX:{ *:[v4f64] } xoaddr:{ *:[iPTR] }:$src)
/* 46184*/    /*Scope*/ 17, /*->46202*/
/* 46185*/      OPC_CheckChild0Integer, 18|128,46/*5906*/, 
/* 46188*/      OPC_RecordChild1, // #0 = $src
/* 46189*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 46191*/      OPC_CheckComplexPat, /*CP*/0, /*#*/0, // SelectAddrIdxOnly:$src #1 #2
/* 46194*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVLPCLSX), 0,
                    MVT::v4f64, 2/*#Ops*/, 1, 2, 
                // Src: (intrinsic_wo_chain:{ *:[v4f64] } 5906:{ *:[iPTR] }, xoaddr:{ *:[iPTR] }:$src) - Complexity = 17
                // Dst: (QVLPCLSX:{ *:[v4f64] } xoaddr:{ *:[iPTR] }:$src)
/* 46202*/    /*Scope*/ 17, /*->46220*/
/* 46203*/      OPC_CheckChild0Integer, 19|128,46/*5907*/, 
/* 46206*/      OPC_RecordChild1, // #0 = $src
/* 46207*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 46209*/      OPC_CheckComplexPat, /*CP*/0, /*#*/0, // SelectAddrIdxOnly:$src #1 #2
/* 46212*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVLPCRDX), 0,
                    MVT::v4f64, 2/*#Ops*/, 1, 2, 
                // Src: (intrinsic_wo_chain:{ *:[v4f64] } 5907:{ *:[iPTR] }, xoaddr:{ *:[iPTR] }:$src) - Complexity = 17
                // Dst: (QVLPCRDX:{ *:[v4f64] } xoaddr:{ *:[iPTR] }:$src)
/* 46220*/    /*Scope*/ 17, /*->46238*/
/* 46221*/      OPC_CheckChild0Integer, 20|128,46/*5908*/, 
/* 46224*/      OPC_RecordChild1, // #0 = $src
/* 46225*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 46227*/      OPC_CheckComplexPat, /*CP*/0, /*#*/0, // SelectAddrIdxOnly:$src #1 #2
/* 46230*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVLPCRSX), 0,
                    MVT::v4f64, 2/*#Ops*/, 1, 2, 
                // Src: (intrinsic_wo_chain:{ *:[v4f64] } 5908:{ *:[iPTR] }, xoaddr:{ *:[iPTR] }:$src) - Complexity = 17
                // Dst: (QVLPCRSX:{ *:[v4f64] } xoaddr:{ *:[iPTR] }:$src)
/* 46238*/    /*Scope*/ 35, /*->46274*/
/* 46239*/      OPC_CheckChild0Integer, 19|128,44/*5651*/, 
/* 46242*/      OPC_RecordChild1, // #0 = $vB
/* 46243*/      OPC_Scope, 11, /*->46256*/ // 2 children in Scope
/* 46245*/        OPC_CheckChild2Integer, 0, 
/* 46247*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 46249*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::VCFSX_0), 0,
                      MVT::v4f32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f32] } 5651:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$vB, 0:{ *:[i32] }) - Complexity = 13
                  // Dst: (VCFSX_0:{ *:[v4f32] } v4i32:{ *:[v4i32] }:$vB)
/* 46256*/      /*Scope*/ 16, /*->46273*/
/* 46257*/        OPC_RecordChild2, // #1 = $UIMM
/* 46258*/        OPC_MoveChild2,
/* 46259*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 46262*/        OPC_MoveParent,
/* 46263*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 46265*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::VCFSX), 0,
                      MVT::v4f32, 2/*#Ops*/, 1, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f32] } 5651:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$vB, (timm:{ *:[i32] }):$UIMM) - Complexity = 11
                  // Dst: (VCFSX:{ *:[v4f32] } (timm:{ *:[i32] }):$UIMM, v4i32:{ *:[v4i32] }:$vB)
/* 46273*/      0, /*End of Scope*/
/* 46274*/    /*Scope*/ 35, /*->46310*/
/* 46275*/      OPC_CheckChild0Integer, 20|128,44/*5652*/, 
/* 46278*/      OPC_RecordChild1, // #0 = $vB
/* 46279*/      OPC_Scope, 11, /*->46292*/ // 2 children in Scope
/* 46281*/        OPC_CheckChild2Integer, 0, 
/* 46283*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 46285*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::VCFUX_0), 0,
                      MVT::v4f32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f32] } 5652:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$vB, 0:{ *:[i32] }) - Complexity = 13
                  // Dst: (VCFUX_0:{ *:[v4f32] } v4i32:{ *:[v4i32] }:$vB)
/* 46292*/      /*Scope*/ 16, /*->46309*/
/* 46293*/        OPC_RecordChild2, // #1 = $UIMM
/* 46294*/        OPC_MoveChild2,
/* 46295*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 46298*/        OPC_MoveParent,
/* 46299*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 46301*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::VCFUX), 0,
                      MVT::v4f32, 2/*#Ops*/, 1, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f32] } 5652:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$vB, (timm:{ *:[i32] }):$UIMM) - Complexity = 11
                  // Dst: (VCFUX:{ *:[v4f32] } (timm:{ *:[i32] }):$UIMM, v4i32:{ *:[v4i32] }:$vB)
/* 46309*/      0, /*End of Scope*/
/* 46310*/    /*Scope*/ 22, /*->46333*/
/* 46311*/      OPC_CheckChild0Integer, 4|128,46/*5892*/, 
/* 46314*/      OPC_RecordChild1, // #0 = $idx
/* 46315*/      OPC_MoveChild1,
/* 46316*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 46319*/      OPC_CheckPredicate, 16, // Predicate_u12
/* 46321*/      OPC_MoveParent,
/* 46322*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 46324*/      OPC_EmitConvertToTarget, 0,
/* 46326*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVGPCI), 0,
                    MVT::v4f64, 1/*#Ops*/, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v4f64] } 5892:{ *:[iPTR] }, (imm:{ *:[i32] })<<P:Predicate_u12>>:$idx) - Complexity = 12
                // Dst: (QVGPCI:{ *:[v4f64] } (imm:{ *:[i32] }):$idx)
/* 46333*/    /*Scope*/ 24, /*->46358*/
/* 46334*/      OPC_CheckChild0Integer, 95|128,45/*5855*/, 
/* 46337*/      OPC_RecordChild1, // #0 = $A
/* 46338*/      OPC_RecordChild2, // #1 = $B
/* 46339*/      OPC_RecordChild3, // #2 = $idx
/* 46340*/      OPC_MoveChild3,
/* 46341*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 46344*/      OPC_MoveParent,
/* 46345*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 46347*/      OPC_EmitConvertToTarget, 2,
/* 46349*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFLOGICAL), 0,
                    MVT::v4f64, 3/*#Ops*/, 0, 1, 3, 
                // Src: (intrinsic_wo_chain:{ *:[v4f64] } 5855:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$A, v4f64:{ *:[v4f64] }:$B, (imm:{ *:[i32] }):$idx) - Complexity = 11
                // Dst: (QVFLOGICAL:{ *:[v4f64] } ?:{ *:[v4f64] }:$A, ?:{ *:[v4f64] }:$B, (imm:{ *:[i32] }):$idx)
/* 46358*/    /*Scope*/ 13, /*->46372*/
/* 46359*/      OPC_CheckChild0Integer, 69|128,44/*5701*/, 
/* 46362*/      OPC_RecordChild1, // #0 = $vB
/* 46363*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 46365*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VEXPTEFP), 0,
                    MVT::v4f32, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v4f32] } 5701:{ *:[iPTR] }, v4f32:{ *:[v4f32] }:$vB) - Complexity = 8
                // Dst: (VEXPTEFP:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$vB)
/* 46372*/    /*Scope*/ 13, /*->46386*/
/* 46373*/      OPC_CheckChild0Integer, 71|128,44/*5703*/, 
/* 46376*/      OPC_RecordChild1, // #0 = $vB
/* 46377*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 46379*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VLOGEFP), 0,
                    MVT::v4f32, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v4f32] } 5703:{ *:[iPTR] }, v4f32:{ *:[v4f32] }:$vB) - Complexity = 8
                // Dst: (VLOGEFP:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$vB)
/* 46386*/    /*Scope*/ 15, /*->46402*/
/* 46387*/      OPC_CheckChild0Integer, 73|128,44/*5705*/, 
/* 46390*/      OPC_RecordChild1, // #0 = $vA
/* 46391*/      OPC_RecordChild2, // #1 = $vB
/* 46392*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 46394*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VMAXFP), 0,
                    MVT::v4f32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v4f32] } 5705:{ *:[iPTR] }, v4f32:{ *:[v4f32] }:$vA, v4f32:{ *:[v4f32] }:$vB) - Complexity = 8
                // Dst: (VMAXFP:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$vA, v4f32:{ *:[v4f32] }:$vB)
/* 46402*/    /*Scope*/ 15, /*->46418*/
/* 46403*/      OPC_CheckChild0Integer, 84|128,44/*5716*/, 
/* 46406*/      OPC_RecordChild1, // #0 = $vA
/* 46407*/      OPC_RecordChild2, // #1 = $vB
/* 46408*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 46410*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VMINFP), 0,
                    MVT::v4f32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v4f32] } 5716:{ *:[iPTR] }, v4f32:{ *:[v4f32] }:$vA, v4f32:{ *:[v4f32] }:$vB) - Complexity = 8
                // Dst: (VMINFP:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$vA, v4f32:{ *:[v4f32] }:$vB)
/* 46418*/    /*Scope*/ 13, /*->46432*/
/* 46419*/      OPC_CheckChild0Integer, 127|128,44/*5759*/, 
/* 46422*/      OPC_RecordChild1, // #0 = $vB
/* 46423*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 46425*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VREFP), 0,
                    MVT::v4f32, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v4f32] } 5759:{ *:[iPTR] }, v4f32:{ *:[v4f32] }:$vB) - Complexity = 8
                // Dst: (VREFP:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$vB)
/* 46432*/    /*Scope*/ 13, /*->46446*/
/* 46433*/      OPC_CheckChild0Integer, 0|128,45/*5760*/, 
/* 46436*/      OPC_RecordChild1, // #0 = $vB
/* 46437*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 46439*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VRFIM), 0,
                    MVT::v4f32, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v4f32] } 5760:{ *:[iPTR] }, v4f32:{ *:[v4f32] }:$vB) - Complexity = 8
                // Dst: (VRFIM:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$vB)
/* 46446*/    /*Scope*/ 13, /*->46460*/
/* 46447*/      OPC_CheckChild0Integer, 1|128,45/*5761*/, 
/* 46450*/      OPC_RecordChild1, // #0 = $vB
/* 46451*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 46453*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VRFIN), 0,
                    MVT::v4f32, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v4f32] } 5761:{ *:[iPTR] }, v4f32:{ *:[v4f32] }:$vB) - Complexity = 8
                // Dst: (VRFIN:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$vB)
/* 46460*/    /*Scope*/ 13, /*->46474*/
/* 46461*/      OPC_CheckChild0Integer, 2|128,45/*5762*/, 
/* 46464*/      OPC_RecordChild1, // #0 = $vB
/* 46465*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 46467*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VRFIP), 0,
                    MVT::v4f32, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v4f32] } 5762:{ *:[iPTR] }, v4f32:{ *:[v4f32] }:$vB) - Complexity = 8
                // Dst: (VRFIP:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$vB)
/* 46474*/    /*Scope*/ 13, /*->46488*/
/* 46475*/      OPC_CheckChild0Integer, 3|128,45/*5763*/, 
/* 46478*/      OPC_RecordChild1, // #0 = $vB
/* 46479*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 46481*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VRFIZ), 0,
                    MVT::v4f32, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v4f32] } 5763:{ *:[iPTR] }, v4f32:{ *:[v4f32] }:$vB) - Complexity = 8
                // Dst: (VRFIZ:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$vB)
/* 46488*/    /*Scope*/ 13, /*->46502*/
/* 46489*/      OPC_CheckChild0Integer, 12|128,45/*5772*/, 
/* 46492*/      OPC_RecordChild1, // #0 = $vB
/* 46493*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 46495*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VRSQRTEFP), 0,
                    MVT::v4f32, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v4f32] } 5772:{ *:[iPTR] }, v4f32:{ *:[v4f32] }:$vB) - Complexity = 8
                // Dst: (VRSQRTEFP:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$vB)
/* 46502*/    /*Scope*/ 17, /*->46520*/
/* 46503*/      OPC_CheckChild0Integer, 72|128,44/*5704*/, 
/* 46506*/      OPC_RecordChild1, // #0 = $A
/* 46507*/      OPC_RecordChild2, // #1 = $B
/* 46508*/      OPC_RecordChild3, // #2 = $C
/* 46509*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 46511*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VMADDFP), 0,
                    MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                // Src: (intrinsic_wo_chain:{ *:[v4f32] } 5704:{ *:[iPTR] }, v4f32:{ *:[v4f32] }:$A, v4f32:{ *:[v4f32] }:$B, v4f32:{ *:[v4f32] }:$C) - Complexity = 8
                // Dst: (VMADDFP:{ *:[v4f32] } ?:{ *:[v4f32] }:$A, ?:{ *:[v4f32] }:$B, ?:{ *:[v4f32] }:$C)
/* 46520*/    /*Scope*/ 17, /*->46538*/
/* 46521*/      OPC_CheckChild0Integer, 112|128,44/*5744*/, 
/* 46524*/      OPC_RecordChild1, // #0 = $A
/* 46525*/      OPC_RecordChild2, // #1 = $B
/* 46526*/      OPC_RecordChild3, // #2 = $C
/* 46527*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 46529*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VNMSUBFP), 0,
                    MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                // Src: (intrinsic_wo_chain:{ *:[v4f32] } 5744:{ *:[iPTR] }, v4f32:{ *:[v4f32] }:$A, v4f32:{ *:[v4f32] }:$B, v4f32:{ *:[v4f32] }:$C) - Complexity = 8
                // Dst: (VNMSUBFP:{ *:[v4f32] } ?:{ *:[v4f32] }:$A, ?:{ *:[v4f32] }:$B, ?:{ *:[v4f32] }:$C)
/* 46538*/    /*Scope*/ 15, /*->46554*/
/* 46539*/      OPC_CheckChild0Integer, 78|128,45/*5838*/, 
/* 46542*/      OPC_RecordChild1, // #0 = $FRA
/* 46543*/      OPC_RecordChild2, // #1 = $FRB
/* 46544*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 46546*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFADDS), 0,
                    MVT::v4f64, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v4f64] } 5838:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRB) - Complexity = 8
                // Dst: (QVFADDS:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRB)
/* 46554*/    /*Scope*/ 15, /*->46570*/
/* 46555*/      OPC_CheckChild0Integer, 120|128,45/*5880*/, 
/* 46558*/      OPC_RecordChild1, // #0 = $FRA
/* 46559*/      OPC_RecordChild2, // #1 = $FRB
/* 46560*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 46562*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFSUBS), 0,
                    MVT::v4f64, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v4f64] } 5880:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRB) - Complexity = 8
                // Dst: (QVFSUBS:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRB)
/* 46570*/    /*Scope*/ 13, /*->46584*/
/* 46571*/      OPC_CheckChild0Integer, 110|128,45/*5870*/, 
/* 46574*/      OPC_RecordChild1, // #0 = $FRB
/* 46575*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 46577*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFRES), 0,
                    MVT::v4f64, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v4f64] } 5870:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$FRB) - Complexity = 8
                // Dst: (QVFRES:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$FRB)
/* 46584*/    /*Scope*/ 13, /*->46598*/
/* 46585*/      OPC_CheckChild0Integer, 117|128,45/*5877*/, 
/* 46588*/      OPC_RecordChild1, // #0 = $FRB
/* 46589*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 46591*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFRSQRTES), 0,
                    MVT::v4f64, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v4f64] } 5877:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$FRB) - Complexity = 8
                // Dst: (QVFRSQRTES:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$FRB)
/* 46598*/    /*Scope*/ 15, /*->46614*/
/* 46599*/      OPC_CheckChild0Integer, 101|128,45/*5861*/, 
/* 46602*/      OPC_RecordChild1, // #0 = $FRA
/* 46603*/      OPC_RecordChild2, // #1 = $FRC
/* 46604*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 46606*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFMULS), 0,
                    MVT::v4f64, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v4f64] } 5861:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRC) - Complexity = 8
                // Dst: (QVFMULS:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRC)
/* 46614*/    /*Scope*/ 15, /*->46630*/
/* 46615*/      OPC_CheckChild0Integer, 124|128,45/*5884*/, 
/* 46618*/      OPC_RecordChild1, // #0 = $FRA
/* 46619*/      OPC_RecordChild2, // #1 = $FRC
/* 46620*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 46622*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFXMUL), 0,
                    MVT::v4f64, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v4f64] } 5884:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRC) - Complexity = 8
                // Dst: (QVFXMUL:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRC)
/* 46630*/    /*Scope*/ 15, /*->46646*/
/* 46631*/      OPC_CheckChild0Integer, 125|128,45/*5885*/, 
/* 46634*/      OPC_RecordChild1, // #0 = $FRA
/* 46635*/      OPC_RecordChild2, // #1 = $FRC
/* 46636*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 46638*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFXMULS), 0,
                    MVT::v4f64, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v4f64] } 5885:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRC) - Complexity = 8
                // Dst: (QVFXMULS:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRC)
/* 46646*/    /*Scope*/ 17, /*->46664*/
/* 46647*/      OPC_CheckChild0Integer, 97|128,45/*5857*/, 
/* 46650*/      OPC_RecordChild1, // #0 = $FRA
/* 46651*/      OPC_RecordChild2, // #1 = $FRB
/* 46652*/      OPC_RecordChild3, // #2 = $FRC
/* 46653*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 46655*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFMADDS), 0,
                    MVT::v4f64, 3/*#Ops*/, 0, 1, 2, 
                // Src: (intrinsic_wo_chain:{ *:[v4f64] } 5857:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRB, v4f64:{ *:[v4f64] }:$FRC) - Complexity = 8
                // Dst: (QVFMADDS:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRB, v4f64:{ *:[v4f64] }:$FRC)
/* 46664*/    /*Scope*/ 17, /*->46682*/
/* 46665*/      OPC_CheckChild0Integer, 105|128,45/*5865*/, 
/* 46668*/      OPC_RecordChild1, // #0 = $FRA
/* 46669*/      OPC_RecordChild2, // #1 = $FRB
/* 46670*/      OPC_RecordChild3, // #2 = $FRC
/* 46671*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 46673*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFNMADDS), 0,
                    MVT::v4f64, 3/*#Ops*/, 0, 1, 2, 
                // Src: (intrinsic_wo_chain:{ *:[v4f64] } 5865:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRB, v4f64:{ *:[v4f64] }:$FRC) - Complexity = 8
                // Dst: (QVFNMADDS:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRB, v4f64:{ *:[v4f64] }:$FRC)
/* 46682*/    /*Scope*/ 17, /*->46700*/
/* 46683*/      OPC_CheckChild0Integer, 99|128,45/*5859*/, 
/* 46686*/      OPC_RecordChild1, // #0 = $FRA
/* 46687*/      OPC_RecordChild2, // #1 = $FRB
/* 46688*/      OPC_RecordChild3, // #2 = $FRC
/* 46689*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 46691*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFMSUBS), 0,
                    MVT::v4f64, 3/*#Ops*/, 0, 1, 2, 
                // Src: (intrinsic_wo_chain:{ *:[v4f64] } 5859:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRB, v4f64:{ *:[v4f64] }:$FRC) - Complexity = 8
                // Dst: (QVFMSUBS:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRB, v4f64:{ *:[v4f64] }:$FRC)
/* 46700*/    /*Scope*/ 17, /*->46718*/
/* 46701*/      OPC_CheckChild0Integer, 107|128,45/*5867*/, 
/* 46704*/      OPC_RecordChild1, // #0 = $FRA
/* 46705*/      OPC_RecordChild2, // #1 = $FRB
/* 46706*/      OPC_RecordChild3, // #2 = $FRC
/* 46707*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 46709*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFNMSUBS), 0,
                    MVT::v4f64, 3/*#Ops*/, 0, 1, 2, 
                // Src: (intrinsic_wo_chain:{ *:[v4f64] } 5867:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRB, v4f64:{ *:[v4f64] }:$FRC) - Complexity = 8
                // Dst: (QVFNMSUBS:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRB, v4f64:{ *:[v4f64] }:$FRC)
/* 46718*/    /*Scope*/ 17, /*->46736*/
/* 46719*/      OPC_CheckChild0Integer, 122|128,45/*5882*/, 
/* 46722*/      OPC_RecordChild1, // #0 = $FRA
/* 46723*/      OPC_RecordChild2, // #1 = $FRB
/* 46724*/      OPC_RecordChild3, // #2 = $FRC
/* 46725*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 46727*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFXMADD), 0,
                    MVT::v4f64, 3/*#Ops*/, 0, 1, 2, 
                // Src: (intrinsic_wo_chain:{ *:[v4f64] } 5882:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRB, v4f64:{ *:[v4f64] }:$FRC) - Complexity = 8
                // Dst: (QVFXMADD:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRB, v4f64:{ *:[v4f64] }:$FRC)
/* 46736*/    /*Scope*/ 17, /*->46754*/
/* 46737*/      OPC_CheckChild0Integer, 123|128,45/*5883*/, 
/* 46740*/      OPC_RecordChild1, // #0 = $FRA
/* 46741*/      OPC_RecordChild2, // #1 = $FRB
/* 46742*/      OPC_RecordChild3, // #2 = $FRC
/* 46743*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 46745*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFXMADDS), 0,
                    MVT::v4f64, 3/*#Ops*/, 0, 1, 2, 
                // Src: (intrinsic_wo_chain:{ *:[v4f64] } 5883:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRB, v4f64:{ *:[v4f64] }:$FRC) - Complexity = 8
                // Dst: (QVFXMADDS:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRB, v4f64:{ *:[v4f64] }:$FRC)
/* 46754*/    /*Scope*/ 17, /*->46772*/
/* 46755*/      OPC_CheckChild0Integer, 2|128,46/*5890*/, 
/* 46758*/      OPC_RecordChild1, // #0 = $FRA
/* 46759*/      OPC_RecordChild2, // #1 = $FRB
/* 46760*/      OPC_RecordChild3, // #2 = $FRC
/* 46761*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 46763*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFXXNPMADD), 0,
                    MVT::v4f64, 3/*#Ops*/, 0, 1, 2, 
                // Src: (intrinsic_wo_chain:{ *:[v4f64] } 5890:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRB, v4f64:{ *:[v4f64] }:$FRC) - Complexity = 8
                // Dst: (QVFXXNPMADD:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRB, v4f64:{ *:[v4f64] }:$FRC)
/* 46772*/    /*Scope*/ 17, /*->46790*/
/* 46773*/      OPC_CheckChild0Integer, 3|128,46/*5891*/, 
/* 46776*/      OPC_RecordChild1, // #0 = $FRA
/* 46777*/      OPC_RecordChild2, // #1 = $FRB
/* 46778*/      OPC_RecordChild3, // #2 = $FRC
/* 46779*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 46781*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFXXNPMADDS), 0,
                    MVT::v4f64, 3/*#Ops*/, 0, 1, 2, 
                // Src: (intrinsic_wo_chain:{ *:[v4f64] } 5891:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRB, v4f64:{ *:[v4f64] }:$FRC) - Complexity = 8
                // Dst: (QVFXXNPMADDS:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRB, v4f64:{ *:[v4f64] }:$FRC)
/* 46790*/    /*Scope*/ 17, /*->46808*/
/* 46791*/      OPC_CheckChild0Integer, 126|128,45/*5886*/, 
/* 46794*/      OPC_RecordChild1, // #0 = $FRA
/* 46795*/      OPC_RecordChild2, // #1 = $FRB
/* 46796*/      OPC_RecordChild3, // #2 = $FRC
/* 46797*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 46799*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFXXCPNMADD), 0,
                    MVT::v4f64, 3/*#Ops*/, 0, 1, 2, 
                // Src: (intrinsic_wo_chain:{ *:[v4f64] } 5886:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRB, v4f64:{ *:[v4f64] }:$FRC) - Complexity = 8
                // Dst: (QVFXXCPNMADD:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRB, v4f64:{ *:[v4f64] }:$FRC)
/* 46808*/    /*Scope*/ 17, /*->46826*/
/* 46809*/      OPC_CheckChild0Integer, 127|128,45/*5887*/, 
/* 46812*/      OPC_RecordChild1, // #0 = $FRA
/* 46813*/      OPC_RecordChild2, // #1 = $FRB
/* 46814*/      OPC_RecordChild3, // #2 = $FRC
/* 46815*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 46817*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFXXCPNMADDS), 0,
                    MVT::v4f64, 3/*#Ops*/, 0, 1, 2, 
                // Src: (intrinsic_wo_chain:{ *:[v4f64] } 5887:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRB, v4f64:{ *:[v4f64] }:$FRC) - Complexity = 8
                // Dst: (QVFXXCPNMADDS:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRB, v4f64:{ *:[v4f64] }:$FRC)
/* 46826*/    /*Scope*/ 17, /*->46844*/
/* 46827*/      OPC_CheckChild0Integer, 0|128,46/*5888*/, 
/* 46830*/      OPC_RecordChild1, // #0 = $FRA
/* 46831*/      OPC_RecordChild2, // #1 = $FRB
/* 46832*/      OPC_RecordChild3, // #2 = $FRC
/* 46833*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 46835*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFXXMADD), 0,
                    MVT::v4f64, 3/*#Ops*/, 0, 1, 2, 
                // Src: (intrinsic_wo_chain:{ *:[v4f64] } 5888:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRB, v4f64:{ *:[v4f64] }:$FRC) - Complexity = 8
                // Dst: (QVFXXMADD:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRB, v4f64:{ *:[v4f64] }:$FRC)
/* 46844*/    /*Scope*/ 17, /*->46862*/
/* 46845*/      OPC_CheckChild0Integer, 1|128,46/*5889*/, 
/* 46848*/      OPC_RecordChild1, // #0 = $FRA
/* 46849*/      OPC_RecordChild2, // #1 = $FRB
/* 46850*/      OPC_RecordChild3, // #2 = $FRC
/* 46851*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 46853*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFXXMADDS), 0,
                    MVT::v4f64, 3/*#Ops*/, 0, 1, 2, 
                // Src: (intrinsic_wo_chain:{ *:[v4f64] } 5889:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRB, v4f64:{ *:[v4f64] }:$FRC) - Complexity = 8
                // Dst: (QVFXXMADDS:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRB, v4f64:{ *:[v4f64] }:$FRC)
/* 46862*/    /*Scope*/ 17, /*->46880*/
/* 46863*/      OPC_CheckChild0Integer, 118|128,45/*5878*/, 
/* 46866*/      OPC_RecordChild1, // #0 = $FRA
/* 46867*/      OPC_RecordChild2, // #1 = $FRB
/* 46868*/      OPC_RecordChild3, // #2 = $FRC
/* 46869*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 46871*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFSEL), 0,
                    MVT::v4f64, 3/*#Ops*/, 0, 1, 2, 
                // Src: (intrinsic_wo_chain:{ *:[v4f64] } 5878:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRB, v4f64:{ *:[v4f64] }:$FRC) - Complexity = 8
                // Dst: (QVFSEL:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRB, v4f64:{ *:[v4f64] }:$FRC)
/* 46880*/    /*Scope*/ 13, /*->46894*/
/* 46881*/      OPC_CheckChild0Integer, 87|128,45/*5847*/, 
/* 46884*/      OPC_RecordChild1, // #0 = $FRB
/* 46885*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 46887*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFCTID), 0,
                    MVT::v4f64, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v4f64] } 5847:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$FRB) - Complexity = 8
                // Dst: (QVFCTID:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$FRB)
/* 46894*/    /*Scope*/ 13, /*->46908*/
/* 46895*/      OPC_CheckChild0Integer, 88|128,45/*5848*/, 
/* 46898*/      OPC_RecordChild1, // #0 = $FRB
/* 46899*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 46901*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFCTIDU), 0,
                    MVT::v4f64, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v4f64] } 5848:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$FRB) - Complexity = 8
                // Dst: (QVFCTIDU:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$FRB)
/* 46908*/    /*Scope*/ 13, /*->46922*/
/* 46909*/      OPC_CheckChild0Integer, 90|128,45/*5850*/, 
/* 46912*/      OPC_RecordChild1, // #0 = $FRB
/* 46913*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 46915*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFCTIDZ), 0,
                    MVT::v4f64, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v4f64] } 5850:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$FRB) - Complexity = 8
                // Dst: (QVFCTIDZ:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$FRB)
/* 46922*/    /*Scope*/ 13, /*->46936*/
/* 46923*/      OPC_CheckChild0Integer, 89|128,45/*5849*/, 
/* 46926*/      OPC_RecordChild1, // #0 = $FRB
/* 46927*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 46929*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFCTIDUZ), 0,
                    MVT::v4f64, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v4f64] } 5849:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$FRB) - Complexity = 8
                // Dst: (QVFCTIDUZ:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$FRB)
/* 46936*/    /*Scope*/ 13, /*->46950*/
/* 46937*/      OPC_CheckChild0Integer, 91|128,45/*5851*/, 
/* 46940*/      OPC_RecordChild1, // #0 = $FRB
/* 46941*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 46943*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFCTIW), 0,
                    MVT::v4f64, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v4f64] } 5851:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$FRB) - Complexity = 8
                // Dst: (QVFCTIW:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$FRB)
/* 46950*/    /*Scope*/ 13, /*->46964*/
/* 46951*/      OPC_CheckChild0Integer, 92|128,45/*5852*/, 
/* 46954*/      OPC_RecordChild1, // #0 = $FRB
/* 46955*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 46957*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFCTIWU), 0,
                    MVT::v4f64, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v4f64] } 5852:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$FRB) - Complexity = 8
                // Dst: (QVFCTIWU:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$FRB)
/* 46964*/    /*Scope*/ 13, /*->46978*/
/* 46965*/      OPC_CheckChild0Integer, 94|128,45/*5854*/, 
/* 46968*/      OPC_RecordChild1, // #0 = $FRB
/* 46969*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 46971*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFCTIWZ), 0,
                    MVT::v4f64, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v4f64] } 5854:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$FRB) - Complexity = 8
                // Dst: (QVFCTIWZ:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$FRB)
/* 46978*/    /*Scope*/ 13, /*->46992*/
/* 46979*/      OPC_CheckChild0Integer, 93|128,45/*5853*/, 
/* 46982*/      OPC_RecordChild1, // #0 = $FRB
/* 46983*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 46985*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFCTIWUZ), 0,
                    MVT::v4f64, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v4f64] } 5853:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$FRB) - Complexity = 8
                // Dst: (QVFCTIWUZ:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$FRB)
/* 46992*/    /*Scope*/ 13, /*->47006*/
/* 46993*/      OPC_CheckChild0Integer, 79|128,45/*5839*/, 
/* 46996*/      OPC_RecordChild1, // #0 = $FRB
/* 46997*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 46999*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFCFID), 0,
                    MVT::v4f64, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v4f64] } 5839:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$FRB) - Complexity = 8
                // Dst: (QVFCFID:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$FRB)
/* 47006*/    /*Scope*/ 13, /*->47020*/
/* 47007*/      OPC_CheckChild0Integer, 81|128,45/*5841*/, 
/* 47010*/      OPC_RecordChild1, // #0 = $FRB
/* 47011*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 47013*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFCFIDU), 0,
                    MVT::v4f64, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v4f64] } 5841:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$FRB) - Complexity = 8
                // Dst: (QVFCFIDU:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$FRB)
/* 47020*/    /*Scope*/ 13, /*->47034*/
/* 47021*/      OPC_CheckChild0Integer, 80|128,45/*5840*/, 
/* 47024*/      OPC_RecordChild1, // #0 = $FRB
/* 47025*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 47027*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFCFIDS), 0,
                    MVT::v4f64, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v4f64] } 5840:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$FRB) - Complexity = 8
                // Dst: (QVFCFIDS:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$FRB)
/* 47034*/    /*Scope*/ 13, /*->47048*/
/* 47035*/      OPC_CheckChild0Integer, 82|128,45/*5842*/, 
/* 47038*/      OPC_RecordChild1, // #0 = $FRB
/* 47039*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 47041*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFCFIDUS), 0,
                    MVT::v4f64, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v4f64] } 5842:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$FRB) - Complexity = 8
                // Dst: (QVFCFIDUS:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$FRB)
/* 47048*/    /*Scope*/ 13, /*->47062*/
/* 47049*/      OPC_CheckChild0Integer, 115|128,45/*5875*/, 
/* 47052*/      OPC_RecordChild1, // #0 = $FRB
/* 47053*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 47055*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFRSP), 0,
                    MVT::v4f64, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v4f64] } 5875:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$FRB) - Complexity = 8
                // Dst: (QVFRSP:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$FRB)
/* 47062*/    /*Scope*/ 15, /*->47078*/
/* 47063*/      OPC_CheckChild0Integer, 121|128,45/*5881*/, 
/* 47066*/      OPC_RecordChild1, // #0 = $FRA
/* 47067*/      OPC_RecordChild2, // #1 = $FRB
/* 47068*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 47070*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFTSTNAN), 0,
                    MVT::v4f64, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v4f64] } 5881:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRB) - Complexity = 8
                // Dst: (QVFTSTNAN:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRB)
/* 47078*/    /*Scope*/ 15, /*->47094*/
/* 47079*/      OPC_CheckChild0Integer, 85|128,45/*5845*/, 
/* 47082*/      OPC_RecordChild1, // #0 = $FRA
/* 47083*/      OPC_RecordChild2, // #1 = $FRB
/* 47084*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 47086*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFCMPLT), 0,
                    MVT::v4f64, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v4f64] } 5845:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRB) - Complexity = 8
                // Dst: (QVFCMPLT:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRB)
/* 47094*/    /*Scope*/ 15, /*->47110*/
/* 47095*/      OPC_CheckChild0Integer, 84|128,45/*5844*/, 
/* 47098*/      OPC_RecordChild1, // #0 = $FRA
/* 47099*/      OPC_RecordChild2, // #1 = $FRB
/* 47100*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 47102*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFCMPGT), 0,
                    MVT::v4f64, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v4f64] } 5844:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRB) - Complexity = 8
                // Dst: (QVFCMPGT:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRB)
/* 47110*/    /*Scope*/ 15, /*->47126*/
/* 47111*/      OPC_CheckChild0Integer, 83|128,45/*5843*/, 
/* 47114*/      OPC_RecordChild1, // #0 = $FRA
/* 47115*/      OPC_RecordChild2, // #1 = $FRB
/* 47116*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 47118*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFCMPEQ), 0,
                    MVT::v4f64, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v4f64] } 5843:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRB) - Complexity = 8
                // Dst: (QVFCMPEQ:{ *:[v4f64] } v4f64:{ *:[v4f64] }:$FRA, v4f64:{ *:[v4f64] }:$FRB)
/* 47126*/    /*Scope*/ 17, /*->47144*/
/* 47127*/      OPC_CheckChild0Integer, 108|128,45/*5868*/, 
/* 47130*/      OPC_RecordChild1, // #0 = $A
/* 47131*/      OPC_RecordChild2, // #1 = $B
/* 47132*/      OPC_RecordChild3, // #2 = $C
/* 47133*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 47135*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFPERM), 0,
                    MVT::v4f64, 3/*#Ops*/, 0, 1, 2, 
                // Src: (intrinsic_wo_chain:{ *:[v4f64] } 5868:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$A, v4f64:{ *:[v4f64] }:$B, v4f64:{ *:[v4f64] }:$C) - Complexity = 8
                // Dst: (QVFPERM:{ *:[v4f64] } ?:{ *:[v4f64] }:$A, ?:{ *:[v4f64] }:$B, ?:{ *:[v4f64] }:$C)
/* 47144*/    /*Scope*/ 15, /*->47160*/
/* 47145*/      OPC_CheckChild0Integer, 86|128,45/*5846*/, 
/* 47148*/      OPC_RecordChild1, // #0 = $A
/* 47149*/      OPC_RecordChild2, // #1 = $B
/* 47150*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 47152*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFCPSGN), 0,
                    MVT::v4f64, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v4f64] } 5846:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$A, v4f64:{ *:[v4f64] }:$B) - Complexity = 8
                // Dst: (QVFCPSGN:{ *:[v4f64] } ?:{ *:[v4f64] }:$A, ?:{ *:[v4f64] }:$B)
/* 47160*/    /*Scope*/ 13, /*->47174*/
/* 47161*/      OPC_CheckChild0Integer, 103|128,45/*5863*/, 
/* 47164*/      OPC_RecordChild1, // #0 = $A
/* 47165*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 47167*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFNEG), 0,
                    MVT::v4f64, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v4f64] } 5863:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$A) - Complexity = 8
                // Dst: (QVFNEG:{ *:[v4f64] } ?:{ *:[v4f64] }:$A)
/* 47174*/    /*Scope*/ 13, /*->47188*/
/* 47175*/      OPC_CheckChild0Integer, 76|128,45/*5836*/, 
/* 47178*/      OPC_RecordChild1, // #0 = $A
/* 47179*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 47181*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFABS), 0,
                    MVT::v4f64, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v4f64] } 5836:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$A) - Complexity = 8
                // Dst: (QVFABS:{ *:[v4f64] } ?:{ *:[v4f64] }:$A)
/* 47188*/    /*Scope*/ 13, /*->47202*/
/* 47189*/      OPC_CheckChild0Integer, 102|128,45/*5862*/, 
/* 47192*/      OPC_RecordChild1, // #0 = $A
/* 47193*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 47195*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFNABS), 0,
                    MVT::v4f64, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v4f64] } 5862:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$A) - Complexity = 8
                // Dst: (QVFNABS:{ *:[v4f64] } ?:{ *:[v4f64] }:$A)
/* 47202*/    /*Scope*/ 13, /*->47216*/
/* 47203*/      OPC_CheckChild0Integer, 114|128,45/*5874*/, 
/* 47206*/      OPC_RecordChild1, // #0 = $A
/* 47207*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 47209*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFRIZ), 0,
                    MVT::v4f64, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v4f64] } 5874:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$A) - Complexity = 8
                // Dst: (QVFRIZ:{ *:[v4f64] } ?:{ *:[v4f64] }:$A)
/* 47216*/    /*Scope*/ 13, /*->47230*/
/* 47217*/      OPC_CheckChild0Integer, 112|128,45/*5872*/, 
/* 47220*/      OPC_RecordChild1, // #0 = $A
/* 47221*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 47223*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFRIN), 0,
                    MVT::v4f64, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v4f64] } 5872:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$A) - Complexity = 8
                // Dst: (QVFRIN:{ *:[v4f64] } ?:{ *:[v4f64] }:$A)
/* 47230*/    /*Scope*/ 13, /*->47244*/
/* 47231*/      OPC_CheckChild0Integer, 113|128,45/*5873*/, 
/* 47234*/      OPC_RecordChild1, // #0 = $A
/* 47235*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 47237*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFRIP), 0,
                    MVT::v4f64, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v4f64] } 5873:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$A) - Complexity = 8
                // Dst: (QVFRIP:{ *:[v4f64] } ?:{ *:[v4f64] }:$A)
/* 47244*/    /*Scope*/ 13, /*->47258*/
/* 47245*/      OPC_CheckChild0Integer, 111|128,45/*5871*/, 
/* 47248*/      OPC_RecordChild1, // #0 = $A
/* 47249*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 47251*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFRIM), 0,
                    MVT::v4f64, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v4f64] } 5871:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$A) - Complexity = 8
                // Dst: (QVFRIM:{ *:[v4f64] } ?:{ *:[v4f64] }:$A)
/* 47258*/    /*Scope*/ 13, /*->47272*/
/* 47259*/      OPC_CheckChild0Integer, 109|128,45/*5869*/, 
/* 47262*/      OPC_RecordChild1, // #0 = $A
/* 47263*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 47265*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFRE), 0,
                    MVT::v4f64, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v4f64] } 5869:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$A) - Complexity = 8
                // Dst: (QVFRE:{ *:[v4f64] } ?:{ *:[v4f64] }:$A)
/* 47272*/    /*Scope*/ 13, /*->47286*/
/* 47273*/      OPC_CheckChild0Integer, 116|128,45/*5876*/, 
/* 47276*/      OPC_RecordChild1, // #0 = $A
/* 47277*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 47279*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFRSQRTE), 0,
                    MVT::v4f64, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v4f64] } 5876:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$A) - Complexity = 8
                // Dst: (QVFRSQRTE:{ *:[v4f64] } ?:{ *:[v4f64] }:$A)
/* 47286*/    /*Scope*/ 15, /*->47302*/
/* 47287*/      OPC_CheckChild0Integer, 77|128,45/*5837*/, 
/* 47290*/      OPC_RecordChild1, // #0 = $A
/* 47291*/      OPC_RecordChild2, // #1 = $B
/* 47292*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 47294*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFADD), 0,
                    MVT::v4f64, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v4f64] } 5837:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$A, v4f64:{ *:[v4f64] }:$B) - Complexity = 8
                // Dst: (QVFADD:{ *:[v4f64] } ?:{ *:[v4f64] }:$A, ?:{ *:[v4f64] }:$B)
/* 47302*/    /*Scope*/ 15, /*->47318*/
/* 47303*/      OPC_CheckChild0Integer, 119|128,45/*5879*/, 
/* 47306*/      OPC_RecordChild1, // #0 = $A
/* 47307*/      OPC_RecordChild2, // #1 = $B
/* 47308*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 47310*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFSUB), 0,
                    MVT::v4f64, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v4f64] } 5879:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$A, v4f64:{ *:[v4f64] }:$B) - Complexity = 8
                // Dst: (QVFSUB:{ *:[v4f64] } ?:{ *:[v4f64] }:$A, ?:{ *:[v4f64] }:$B)
/* 47318*/    /*Scope*/ 15, /*->47334*/
/* 47319*/      OPC_CheckChild0Integer, 100|128,45/*5860*/, 
/* 47322*/      OPC_RecordChild1, // #0 = $A
/* 47323*/      OPC_RecordChild2, // #1 = $B
/* 47324*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 47326*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFMUL), 0,
                    MVT::v4f64, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v4f64] } 5860:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$A, v4f64:{ *:[v4f64] }:$B) - Complexity = 8
                // Dst: (QVFMUL:{ *:[v4f64] } ?:{ *:[v4f64] }:$A, ?:{ *:[v4f64] }:$B)
/* 47334*/    /*Scope*/ 17, /*->47352*/
/* 47335*/      OPC_CheckChild0Integer, 96|128,45/*5856*/, 
/* 47338*/      OPC_RecordChild1, // #0 = $A
/* 47339*/      OPC_RecordChild2, // #1 = $B
/* 47340*/      OPC_RecordChild3, // #2 = $C
/* 47341*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 47343*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFMADD), 0,
                    MVT::v4f64, 3/*#Ops*/, 0, 1, 2, 
                // Src: (intrinsic_wo_chain:{ *:[v4f64] } 5856:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$A, v4f64:{ *:[v4f64] }:$B, v4f64:{ *:[v4f64] }:$C) - Complexity = 8
                // Dst: (QVFMADD:{ *:[v4f64] } ?:{ *:[v4f64] }:$A, ?:{ *:[v4f64] }:$B, ?:{ *:[v4f64] }:$C)
/* 47352*/    /*Scope*/ 17, /*->47370*/
/* 47353*/      OPC_CheckChild0Integer, 104|128,45/*5864*/, 
/* 47356*/      OPC_RecordChild1, // #0 = $A
/* 47357*/      OPC_RecordChild2, // #1 = $B
/* 47358*/      OPC_RecordChild3, // #2 = $C
/* 47359*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 47361*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFNMADD), 0,
                    MVT::v4f64, 3/*#Ops*/, 0, 1, 2, 
                // Src: (intrinsic_wo_chain:{ *:[v4f64] } 5864:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$A, v4f64:{ *:[v4f64] }:$B, v4f64:{ *:[v4f64] }:$C) - Complexity = 8
                // Dst: (QVFNMADD:{ *:[v4f64] } ?:{ *:[v4f64] }:$A, ?:{ *:[v4f64] }:$B, ?:{ *:[v4f64] }:$C)
/* 47370*/    /*Scope*/ 17, /*->47388*/
/* 47371*/      OPC_CheckChild0Integer, 98|128,45/*5858*/, 
/* 47374*/      OPC_RecordChild1, // #0 = $A
/* 47375*/      OPC_RecordChild2, // #1 = $B
/* 47376*/      OPC_RecordChild3, // #2 = $C
/* 47377*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 47379*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFMSUB), 0,
                    MVT::v4f64, 3/*#Ops*/, 0, 1, 2, 
                // Src: (intrinsic_wo_chain:{ *:[v4f64] } 5858:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$A, v4f64:{ *:[v4f64] }:$B, v4f64:{ *:[v4f64] }:$C) - Complexity = 8
                // Dst: (QVFMSUB:{ *:[v4f64] } ?:{ *:[v4f64] }:$A, ?:{ *:[v4f64] }:$B, ?:{ *:[v4f64] }:$C)
/* 47388*/    /*Scope*/ 17, /*->47406*/
/* 47389*/      OPC_CheckChild0Integer, 106|128,45/*5866*/, 
/* 47392*/      OPC_RecordChild1, // #0 = $A
/* 47393*/      OPC_RecordChild2, // #1 = $B
/* 47394*/      OPC_RecordChild3, // #2 = $C
/* 47395*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 47397*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVFNMSUB), 0,
                    MVT::v4f64, 3/*#Ops*/, 0, 1, 2, 
                // Src: (intrinsic_wo_chain:{ *:[v4f64] } 5866:{ *:[iPTR] }, v4f64:{ *:[v4f64] }:$A, v4f64:{ *:[v4f64] }:$B, v4f64:{ *:[v4f64] }:$C) - Complexity = 8
                // Dst: (QVFNMSUB:{ *:[v4f64] } ?:{ *:[v4f64] }:$A, ?:{ *:[v4f64] }:$B, ?:{ *:[v4f64] }:$C)
/* 47406*/    0, /*End of Scope*/
/* 47407*/  /*SwitchOpcode*/ 27, TARGET_VAL(PPCISD::MFVSR),// ->47437
/* 47410*/    OPC_RecordChild0, // #0 = $XT
/* 47411*/    OPC_CheckChild0Type, MVT::f64,
/* 47413*/    OPC_SwitchType /*2 cases */, 9, MVT::i64,// ->47425
/* 47416*/      OPC_CheckPatternPredicate, 36, // (PPCSubTarget->hasDirectMove())
/* 47418*/      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)
/* 47425*/    /*SwitchType*/ 9, MVT::i32,// ->47436
/* 47427*/      OPC_CheckPatternPredicate, 36, // (PPCSubTarget->hasDirectMove())
/* 47429*/      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)
/* 47436*/    0, // EndSwitchType
/* 47437*/  /*SwitchOpcode*/ 10|128,7/*906*/, TARGET_VAL(ISD::BITCAST),// ->48347
/* 47441*/    OPC_Scope, 62|128,1/*190*/, /*->47634*/ // 3 children in Scope
/* 47444*/      OPC_RecordChild0, // #0 = $S
/* 47445*/      OPC_SwitchType /*4 cases */, 11, MVT::i64,// ->47459
/* 47448*/        OPC_CheckChild0Type, MVT::f64,
/* 47450*/        OPC_CheckPatternPredicate, 37, // (PPCSubTarget->hasDirectMove()) && (PPCSubTarget->hasVSX())
/* 47452*/        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)
/* 47459*/      /*SwitchType*/ 48, MVT::i32,// ->47509
/* 47461*/        OPC_CheckChild0Type, MVT::f32,
/* 47463*/        OPC_CheckPatternPredicate, 37, // (PPCSubTarget->hasDirectMove()) && (PPCSubTarget->hasVSX())
/* 47465*/        OPC_EmitNode1, TARGET_VAL(PPC::XSCVDPSPN), 0,
                      MVT::v4i32, 1/*#Ops*/, 0,  // Results = #1
/* 47472*/        OPC_EmitNode1, TARGET_VAL(PPC::XSCVDPSPN), 0,
                      MVT::v4i32, 1/*#Ops*/, 0,  // Results = #2
/* 47479*/        OPC_EmitInteger, MVT::i32, 3, 
/* 47482*/        OPC_EmitNode1, TARGET_VAL(PPC::XXSLDWI), 0,
                      MVT::v4i32, 3/*#Ops*/, 1, 2, 3,  // Results = #4
/* 47491*/        OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 47494*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f64, 2/*#Ops*/, 4, 5,  // Results = #6
/* 47502*/        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] }))
/* 47509*/      /*SwitchType*/ 11, MVT::f64,// ->47522
/* 47511*/        OPC_CheckChild0Type, MVT::i64,
/* 47513*/        OPC_CheckPatternPredicate, 37, // (PPCSubTarget->hasDirectMove()) && (PPCSubTarget->hasVSX())
/* 47515*/        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)
/* 47522*/      /*SwitchType*/ 109, MVT::f32,// ->47633
/* 47524*/        OPC_CheckChild0Type, MVT::i32,
/* 47526*/        OPC_CheckPatternPredicate, 37, // (PPCSubTarget->hasDirectMove()) && (PPCSubTarget->hasVSX())
/* 47528*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v2i64, 0/*#Ops*/,  // Results = #1
/* 47534*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::i64, 0/*#Ops*/,  // Results = #2
/* 47540*/        OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 47543*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::i64, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/* 47552*/        OPC_EmitNode1, TARGET_VAL(PPC::MTVSRD), 0,
                      MVT::f64, 1/*#Ops*/, 4,  // Results = #5
/* 47559*/        OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 47562*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v2i64, 3/*#Ops*/, 1, 5, 6,  // Results = #7
/* 47571*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v2i64, 0/*#Ops*/,  // Results = #8
/* 47577*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::i64, 0/*#Ops*/,  // Results = #9
/* 47583*/        OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 47586*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::i64, 3/*#Ops*/, 9, 0, 10,  // Results = #11
/* 47595*/        OPC_EmitNode1, TARGET_VAL(PPC::MTVSRD), 0,
                      MVT::f64, 1/*#Ops*/, 11,  // Results = #12
/* 47602*/        OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 47605*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v2i64, 3/*#Ops*/, 8, 12, 13,  // Results = #14
/* 47614*/        OPC_EmitInteger, MVT::i32, 1, 
/* 47617*/        OPC_EmitNode1, TARGET_VAL(PPC::XXSLDWI), 0,
                      MVT::v4i32, 3/*#Ops*/, 7, 14, 15,  // Results = #16
/* 47626*/        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] }))
/* 47633*/      0, // EndSwitchType
/* 47634*/    /*Scope*/ 80, /*->47715*/
/* 47635*/      OPC_MoveChild0,
/* 47636*/      OPC_CheckImmAllOnesV,
/* 47637*/      OPC_CheckType, MVT::v16i8,
/* 47639*/      OPC_MoveParent,
/* 47640*/      OPC_SwitchType /*4 cases */, 8, MVT::v4i32,// ->47651
/* 47643*/        OPC_CheckPatternPredicate, 10, // (PPCSubTarget->hasP8Vector())
/* 47645*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::XXLEQVOnes), 0,
                      MVT::v4i32, 0/*#Ops*/, 
                  // Src: (bitconvert:{ *:[v4i32] } immAllOnesV:{ *:[v16i8] }) - Complexity = 407
                  // Dst: (XXLEQVOnes:{ *:[v4i32] })
/* 47651*/      /*SwitchType*/ 19, MVT::v1i128,// ->47672
/* 47653*/        OPC_CheckPatternPredicate, 10, // (PPCSubTarget->hasP8Vector())
/* 47655*/        OPC_EmitNode1, TARGET_VAL(PPC::XXLEQVOnes), 0,
                      MVT::v4i32, 0/*#Ops*/,  // Results = #0
/* 47661*/        OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 47664*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v1i128, 2/*#Ops*/, 0, 1, 
                  // Src: (bitconvert:{ *:[v1i128] } immAllOnesV:{ *:[v16i8] }) - Complexity = 407
                  // Dst: (COPY_TO_REGCLASS:{ *:[v1i128] } (XXLEQVOnes:{ *:[v4i32] }), VSRC:{ *:[i32] })
/* 47672*/      /*SwitchType*/ 19, MVT::v2i64,// ->47693
/* 47674*/        OPC_CheckPatternPredicate, 10, // (PPCSubTarget->hasP8Vector())
/* 47676*/        OPC_EmitNode1, TARGET_VAL(PPC::XXLEQVOnes), 0,
                      MVT::v4i32, 0/*#Ops*/,  // Results = #0
/* 47682*/        OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 47685*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v2i64, 2/*#Ops*/, 0, 1, 
                  // Src: (bitconvert:{ *:[v2i64] } immAllOnesV:{ *:[v16i8] }) - Complexity = 407
                  // Dst: (COPY_TO_REGCLASS:{ *:[v2i64] } (XXLEQVOnes:{ *:[v4i32] }), VSRC:{ *:[i32] })
/* 47693*/      /*SwitchType*/ 19, MVT::v8i16,// ->47714
/* 47695*/        OPC_CheckPatternPredicate, 10, // (PPCSubTarget->hasP8Vector())
/* 47697*/        OPC_EmitNode1, TARGET_VAL(PPC::XXLEQVOnes), 0,
                      MVT::v4i32, 0/*#Ops*/,  // Results = #0
/* 47703*/        OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 47706*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v8i16, 2/*#Ops*/, 0, 1, 
                  // Src: (bitconvert:{ *:[v8i16] } immAllOnesV:{ *:[v16i8] }) - Complexity = 407
                  // Dst: (COPY_TO_REGCLASS:{ *:[v8i16] } (XXLEQVOnes:{ *:[v4i32] }), VSRC:{ *:[i32] })
/* 47714*/      0, // EndSwitchType
/* 47715*/    /*Scope*/ 117|128,4/*629*/, /*->48346*/
/* 47717*/      OPC_RecordChild0, // #0 = $A
/* 47718*/      OPC_Scope, 94, /*->47814*/ // 8 children in Scope
/* 47720*/        OPC_CheckChild0Type, MVT::v2f64,
/* 47722*/        OPC_SwitchType /*6 cases */, 13, MVT::v4i32,// ->47738
/* 47725*/          OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 47727*/          OPC_EmitInteger, MVT::i32, PPC::VRRCRegClassID,
/* 47730*/          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] })
/* 47738*/        /*SwitchType*/ 13, MVT::v8i16,// ->47753
/* 47740*/          OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 47742*/          OPC_EmitInteger, MVT::i32, PPC::VRRCRegClassID,
/* 47745*/          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] })
/* 47753*/        /*SwitchType*/ 13, MVT::v16i8,// ->47768
/* 47755*/          OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 47757*/          OPC_EmitInteger, MVT::i32, PPC::VRRCRegClassID,
/* 47760*/          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] })
/* 47768*/        /*SwitchType*/ 13, MVT::v2i64,// ->47783
/* 47770*/          OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 47772*/          OPC_EmitInteger, MVT::i32, PPC::VRRCRegClassID,
/* 47775*/          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] })
/* 47783*/        /*SwitchType*/ 13, MVT::v1i128,// ->47798
/* 47785*/          OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 47787*/          OPC_EmitInteger, MVT::i32, PPC::VRRCRegClassID,
/* 47790*/          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] })
/* 47798*/        /*SwitchType*/ 13, MVT::v4f32,// ->47813
/* 47800*/          OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 47802*/          OPC_EmitInteger, MVT::i32, PPC::VRRCRegClassID,
/* 47805*/          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] })
/* 47813*/        0, // EndSwitchType
/* 47814*/      /*Scope*/ 71, /*->47886*/
/* 47815*/        OPC_CheckChild0Type, MVT::v4f32,
/* 47817*/        OPC_SwitchType /*6 cases */, 22, MVT::v2i64,// ->47842
/* 47820*/          OPC_Scope, 13, /*->47835*/ // 2 children in Scope
/* 47822*/            OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 47824*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 47827*/            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] })
/* 47835*/          /*Scope*/ 5, /*->47841*/
/* 47836*/            OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 47838*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v2i64] } VRRC:{ *:[v4f32] }:$src) - Complexity = 3
                       // Dst: VRRC:{ *:[v2i64] }:$src
/* 47841*/          0, /*End of Scope*/
/* 47842*/        /*SwitchType*/ 5, MVT::v16i8,// ->47849
/* 47844*/          OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 47846*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v16i8] } VRRC:{ *:[v4f32] }:$src) - Complexity = 3
                     // Dst: VRRC:{ *:[v16i8] }:$src
/* 47849*/        /*SwitchType*/ 5, MVT::v8i16,// ->47856
/* 47851*/          OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 47853*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v8i16] } VRRC:{ *:[v4f32] }:$src) - Complexity = 3
                     // Dst: VRRC:{ *:[v8i16] }:$src
/* 47856*/        /*SwitchType*/ 5, MVT::v4i32,// ->47863
/* 47858*/          OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 47860*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v4i32] } VRRC:{ *:[v4f32] }:$src) - Complexity = 3
                     // Dst: VRRC:{ *:[v4i32] }:$src
/* 47863*/        /*SwitchType*/ 5, MVT::v1i128,// ->47870
/* 47865*/          OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 47867*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v1i128] } VRRC:{ *:[v4f32] }:$src) - Complexity = 3
                     // Dst: VRRC:{ *:[v1i128] }:$src
/* 47870*/        /*SwitchType*/ 13, MVT::v2f64,// ->47885
/* 47872*/          OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 47874*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 47877*/          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] })
/* 47885*/        0, // EndSwitchType
/* 47886*/      /*Scope*/ 71, /*->47958*/
/* 47887*/        OPC_CheckChild0Type, MVT::v4i32,
/* 47889*/        OPC_SwitchType /*6 cases */, 22, MVT::v2i64,// ->47914
/* 47892*/          OPC_Scope, 13, /*->47907*/ // 2 children in Scope
/* 47894*/            OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 47896*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 47899*/            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] })
/* 47907*/          /*Scope*/ 5, /*->47913*/
/* 47908*/            OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 47910*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v2i64] } VRRC:{ *:[v4i32] }:$src) - Complexity = 3
                       // Dst: VRRC:{ *:[v2i64] }:$src
/* 47913*/          0, /*End of Scope*/
/* 47914*/        /*SwitchType*/ 5, MVT::v16i8,// ->47921
/* 47916*/          OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 47918*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v16i8] } VRRC:{ *:[v4i32] }:$src) - Complexity = 3
                     // Dst: VRRC:{ *:[v16i8] }:$src
/* 47921*/        /*SwitchType*/ 5, MVT::v8i16,// ->47928
/* 47923*/          OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 47925*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v8i16] } VRRC:{ *:[v4i32] }:$src) - Complexity = 3
                     // Dst: VRRC:{ *:[v8i16] }:$src
/* 47928*/        /*SwitchType*/ 5, MVT::v1i128,// ->47935
/* 47930*/          OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 47932*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v1i128] } VRRC:{ *:[v4i32] }:$src) - Complexity = 3
                     // Dst: VRRC:{ *:[v1i128] }:$src
/* 47935*/        /*SwitchType*/ 13, MVT::v2f64,// ->47950
/* 47937*/          OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 47939*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 47942*/          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] })
/* 47950*/        /*SwitchType*/ 5, MVT::v4f32,// ->47957
/* 47952*/          OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 47954*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v4f32] } VRRC:{ *:[v4i32] }:$src) - Complexity = 3
                     // Dst: VRRC:{ *:[v4f32] }:$src
/* 47957*/        0, // EndSwitchType
/* 47958*/      /*Scope*/ 71, /*->48030*/
/* 47959*/        OPC_CheckChild0Type, MVT::v8i16,
/* 47961*/        OPC_SwitchType /*6 cases */, 22, MVT::v2i64,// ->47986
/* 47964*/          OPC_Scope, 13, /*->47979*/ // 2 children in Scope
/* 47966*/            OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 47968*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 47971*/            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] })
/* 47979*/          /*Scope*/ 5, /*->47985*/
/* 47980*/            OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 47982*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v2i64] } VRRC:{ *:[v8i16] }:$src) - Complexity = 3
                       // Dst: VRRC:{ *:[v2i64] }:$src
/* 47985*/          0, /*End of Scope*/
/* 47986*/        /*SwitchType*/ 5, MVT::v16i8,// ->47993
/* 47988*/          OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 47990*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v16i8] } VRRC:{ *:[v8i16] }:$src) - Complexity = 3
                     // Dst: VRRC:{ *:[v16i8] }:$src
/* 47993*/        /*SwitchType*/ 5, MVT::v4i32,// ->48000
/* 47995*/          OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 47997*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v4i32] } VRRC:{ *:[v8i16] }:$src) - Complexity = 3
                     // Dst: VRRC:{ *:[v4i32] }:$src
/* 48000*/        /*SwitchType*/ 5, MVT::v1i128,// ->48007
/* 48002*/          OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 48004*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v1i128] } VRRC:{ *:[v8i16] }:$src) - Complexity = 3
                     // Dst: VRRC:{ *:[v1i128] }:$src
/* 48007*/        /*SwitchType*/ 13, MVT::v2f64,// ->48022
/* 48009*/          OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 48011*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 48014*/          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] })
/* 48022*/        /*SwitchType*/ 5, MVT::v4f32,// ->48029
/* 48024*/          OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 48026*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v4f32] } VRRC:{ *:[v8i16] }:$src) - Complexity = 3
                     // Dst: VRRC:{ *:[v4f32] }:$src
/* 48029*/        0, // EndSwitchType
/* 48030*/      /*Scope*/ 71, /*->48102*/
/* 48031*/        OPC_CheckChild0Type, MVT::v16i8,
/* 48033*/        OPC_SwitchType /*6 cases */, 22, MVT::v2i64,// ->48058
/* 48036*/          OPC_Scope, 13, /*->48051*/ // 2 children in Scope
/* 48038*/            OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 48040*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 48043*/            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] })
/* 48051*/          /*Scope*/ 5, /*->48057*/
/* 48052*/            OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 48054*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v2i64] } VRRC:{ *:[v16i8] }:$src) - Complexity = 3
                       // Dst: VRRC:{ *:[v2i64] }:$src
/* 48057*/          0, /*End of Scope*/
/* 48058*/        /*SwitchType*/ 5, MVT::v8i16,// ->48065
/* 48060*/          OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 48062*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v8i16] } VRRC:{ *:[v16i8] }:$src) - Complexity = 3
                     // Dst: VRRC:{ *:[v8i16] }:$src
/* 48065*/        /*SwitchType*/ 5, MVT::v4i32,// ->48072
/* 48067*/          OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 48069*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v4i32] } VRRC:{ *:[v16i8] }:$src) - Complexity = 3
                     // Dst: VRRC:{ *:[v4i32] }:$src
/* 48072*/        /*SwitchType*/ 5, MVT::v1i128,// ->48079
/* 48074*/          OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 48076*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v1i128] } VRRC:{ *:[v16i8] }:$src) - Complexity = 3
                     // Dst: VRRC:{ *:[v1i128] }:$src
/* 48079*/        /*SwitchType*/ 13, MVT::v2f64,// ->48094
/* 48081*/          OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 48083*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 48086*/          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] })
/* 48094*/        /*SwitchType*/ 5, MVT::v4f32,// ->48101
/* 48096*/          OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 48098*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v4f32] } VRRC:{ *:[v16i8] }:$src) - Complexity = 3
                     // Dst: VRRC:{ *:[v4f32] }:$src
/* 48101*/        0, // EndSwitchType
/* 48102*/      /*Scope*/ 122, /*->48225*/
/* 48103*/        OPC_CheckChild0Type, MVT::v2i64,
/* 48105*/        OPC_SwitchType /*6 cases */, 22, MVT::v4i32,// ->48130
/* 48108*/          OPC_Scope, 13, /*->48123*/ // 2 children in Scope
/* 48110*/            OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 48112*/            OPC_EmitInteger, MVT::i32, PPC::VRRCRegClassID,
/* 48115*/            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] })
/* 48123*/          /*Scope*/ 5, /*->48129*/
/* 48124*/            OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 48126*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v4i32] } VRRC:{ *:[v2i64] }:$src) - Complexity = 3
                       // Dst: VRRC:{ *:[v4i32] }:$src
/* 48129*/          0, /*End of Scope*/
/* 48130*/        /*SwitchType*/ 22, MVT::v8i16,// ->48154
/* 48132*/          OPC_Scope, 13, /*->48147*/ // 2 children in Scope
/* 48134*/            OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 48136*/            OPC_EmitInteger, MVT::i32, PPC::VRRCRegClassID,
/* 48139*/            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] })
/* 48147*/          /*Scope*/ 5, /*->48153*/
/* 48148*/            OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 48150*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v8i16] } VRRC:{ *:[v2i64] }:$src) - Complexity = 3
                       // Dst: VRRC:{ *:[v8i16] }:$src
/* 48153*/          0, /*End of Scope*/
/* 48154*/        /*SwitchType*/ 22, MVT::v16i8,// ->48178
/* 48156*/          OPC_Scope, 13, /*->48171*/ // 2 children in Scope
/* 48158*/            OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 48160*/            OPC_EmitInteger, MVT::i32, PPC::VRRCRegClassID,
/* 48163*/            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] })
/* 48171*/          /*Scope*/ 5, /*->48177*/
/* 48172*/            OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 48174*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v16i8] } VRRC:{ *:[v2i64] }:$src) - Complexity = 3
                       // Dst: VRRC:{ *:[v16i8] }:$src
/* 48177*/          0, /*End of Scope*/
/* 48178*/        /*SwitchType*/ 5, MVT::v1i128,// ->48185
/* 48180*/          OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 48182*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v1i128] } VRRC:{ *:[v2i64] }:$src) - Complexity = 3
                     // Dst: VRRC:{ *:[v1i128] }:$src
/* 48185*/        /*SwitchType*/ 22, MVT::v4f32,// ->48209
/* 48187*/          OPC_Scope, 13, /*->48202*/ // 2 children in Scope
/* 48189*/            OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 48191*/            OPC_EmitInteger, MVT::i32, PPC::VRRCRegClassID,
/* 48194*/            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] })
/* 48202*/          /*Scope*/ 5, /*->48208*/
/* 48203*/            OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 48205*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v4f32] } VRRC:{ *:[v2i64] }:$src) - Complexity = 3
                       // Dst: VRRC:{ *:[v4f32] }:$src
/* 48208*/          0, /*End of Scope*/
/* 48209*/        /*SwitchType*/ 13, MVT::v2f64,// ->48224
/* 48211*/          OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 48213*/          OPC_EmitInteger, MVT::i32, PPC::VRRCRegClassID,
/* 48216*/          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] })
/* 48224*/        0, // EndSwitchType
/* 48225*/      /*Scope*/ 64, /*->48290*/
/* 48226*/        OPC_CheckChild0Type, MVT::f128,
/* 48228*/        OPC_SwitchType /*4 cases */, 13, MVT::v2i64,// ->48244
/* 48231*/          OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 48233*/          OPC_EmitInteger, MVT::i32, PPC::VRRCRegClassID,
/* 48236*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1, 
                    // Src: (bitconvert:{ *:[v2i64] } f128:{ *:[f128] }:$A) - Complexity = 403
                    // Dst: (COPY_TO_REGCLASS:{ *:[v2i64] } ?:{ *:[f128] }:$A, VRRC:{ *:[i32] })
/* 48244*/        /*SwitchType*/ 13, MVT::v4i32,// ->48259
/* 48246*/          OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 48248*/          OPC_EmitInteger, MVT::i32, PPC::VRRCRegClassID,
/* 48251*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1, 
                    // Src: (bitconvert:{ *:[v4i32] } f128:{ *:[f128] }:$A) - Complexity = 403
                    // Dst: (COPY_TO_REGCLASS:{ *:[v4i32] } ?:{ *:[f128] }:$A, VRRC:{ *:[i32] })
/* 48259*/        /*SwitchType*/ 13, MVT::v8i16,// ->48274
/* 48261*/          OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 48263*/          OPC_EmitInteger, MVT::i32, PPC::VRRCRegClassID,
/* 48266*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (bitconvert:{ *:[v8i16] } f128:{ *:[f128] }:$A) - Complexity = 403
                    // Dst: (COPY_TO_REGCLASS:{ *:[v8i16] } ?:{ *:[f128] }:$A, VRRC:{ *:[i32] })
/* 48274*/        /*SwitchType*/ 13, MVT::v16i8,// ->48289
/* 48276*/          OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 48278*/          OPC_EmitInteger, MVT::i32, PPC::VRRCRegClassID,
/* 48281*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i8, 2/*#Ops*/, 0, 1, 
                    // Src: (bitconvert:{ *:[v16i8] } f128:{ *:[f128] }:$A) - Complexity = 403
                    // Dst: (COPY_TO_REGCLASS:{ *:[v16i8] } ?:{ *:[f128] }:$A, VRRC:{ *:[i32] })
/* 48289*/        0, // EndSwitchType
/* 48290*/      /*Scope*/ 54, /*->48345*/
/* 48291*/        OPC_CheckChild0Type, MVT::v1i128,
/* 48293*/        OPC_SwitchType /*6 cases */, 5, MVT::v16i8,// ->48301
/* 48296*/          OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 48298*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v16i8] } VRRC:{ *:[v1i128] }:$src) - Complexity = 3
                     // Dst: VRRC:{ *:[v16i8] }:$src
/* 48301*/        /*SwitchType*/ 5, MVT::v8i16,// ->48308
/* 48303*/          OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 48305*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v8i16] } VRRC:{ *:[v1i128] }:$src) - Complexity = 3
                     // Dst: VRRC:{ *:[v8i16] }:$src
/* 48308*/        /*SwitchType*/ 5, MVT::v4i32,// ->48315
/* 48310*/          OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 48312*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v4i32] } VRRC:{ *:[v1i128] }:$src) - Complexity = 3
                     // Dst: VRRC:{ *:[v4i32] }:$src
/* 48315*/        /*SwitchType*/ 5, MVT::v2i64,// ->48322
/* 48317*/          OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 48319*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v2i64] } VRRC:{ *:[v1i128] }:$src) - Complexity = 3
                     // Dst: VRRC:{ *:[v2i64] }:$src
/* 48322*/        /*SwitchType*/ 13, MVT::v2f64,// ->48337
/* 48324*/          OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 48326*/          OPC_EmitInteger, MVT::i32, PPC::VRRCRegClassID,
/* 48329*/          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] })
/* 48337*/        /*SwitchType*/ 5, MVT::v4f32,// ->48344
/* 48339*/          OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 48341*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v4f32] } VRRC:{ *:[v1i128] }:$src) - Complexity = 3
                     // Dst: VRRC:{ *:[v4f32] }:$src
/* 48344*/        0, // EndSwitchType
/* 48345*/      0, /*End of Scope*/
/* 48346*/    0, /*End of Scope*/
/* 48347*/  /*SwitchOpcode*/ 54, TARGET_VAL(ISD::LRINT),// ->48404
/* 48350*/    OPC_RecordChild0, // #0 = $S
/* 48351*/    OPC_CheckType, MVT::i64,
/* 48353*/    OPC_Scope, 18, /*->48373*/ // 2 children in Scope
/* 48355*/      OPC_CheckChild0Type, MVT::f64,
/* 48357*/      OPC_CheckPatternPredicate, 37, // (PPCSubTarget->hasDirectMove()) && (PPCSubTarget->hasVSX())
/* 48359*/      OPC_EmitNode1, TARGET_VAL(PPC::FCTID), 0,
                    MVT::f64, 1/*#Ops*/, 0,  // Results = #1
/* 48366*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::MFVSRD), 0,
                    MVT::i64, 1/*#Ops*/, 1, 
                // Src: (lrint:{ *:[i64] } f64:{ *:[f64] }:$S) - Complexity = 403
                // Dst: (MFVSRD:{ *:[i64] } (FCTID:{ *:[f64] } ?:{ *:[f64] }:$S))
/* 48373*/    /*Scope*/ 29, /*->48403*/
/* 48374*/      OPC_CheckChild0Type, MVT::f32,
/* 48376*/      OPC_CheckPatternPredicate, 37, // (PPCSubTarget->hasDirectMove()) && (PPCSubTarget->hasVSX())
/* 48378*/      OPC_EmitInteger, MVT::i32, PPC::F8RCRegClassID,
/* 48381*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::f64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 48389*/      OPC_EmitNode1, TARGET_VAL(PPC::FCTID), 0,
                    MVT::f64, 1/*#Ops*/, 2,  // Results = #3
/* 48396*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::MFVSRD), 0,
                    MVT::i64, 1/*#Ops*/, 3, 
                // Src: (lrint:{ *:[i64] } f32:{ *:[f32] }:$S) - Complexity = 403
                // Dst: (MFVSRD:{ *:[i64] } (FCTID:{ *:[f64] } (COPY_TO_REGCLASS:{ *:[f64] } ?:{ *:[f32] }:$S, F8RC:{ *:[i32] })))
/* 48403*/    0, /*End of Scope*/
/* 48404*/  /*SwitchOpcode*/ 54, TARGET_VAL(ISD::LLRINT),// ->48461
/* 48407*/    OPC_RecordChild0, // #0 = $S
/* 48408*/    OPC_CheckType, MVT::i64,
/* 48410*/    OPC_Scope, 18, /*->48430*/ // 2 children in Scope
/* 48412*/      OPC_CheckChild0Type, MVT::f64,
/* 48414*/      OPC_CheckPatternPredicate, 37, // (PPCSubTarget->hasDirectMove()) && (PPCSubTarget->hasVSX())
/* 48416*/      OPC_EmitNode1, TARGET_VAL(PPC::FCTID), 0,
                    MVT::f64, 1/*#Ops*/, 0,  // Results = #1
/* 48423*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::MFVSRD), 0,
                    MVT::i64, 1/*#Ops*/, 1, 
                // Src: (llrint:{ *:[i64] } f64:{ *:[f64] }:$S) - Complexity = 403
                // Dst: (MFVSRD:{ *:[i64] } (FCTID:{ *:[f64] } ?:{ *:[f64] }:$S))
/* 48430*/    /*Scope*/ 29, /*->48460*/
/* 48431*/      OPC_CheckChild0Type, MVT::f32,
/* 48433*/      OPC_CheckPatternPredicate, 37, // (PPCSubTarget->hasDirectMove()) && (PPCSubTarget->hasVSX())
/* 48435*/      OPC_EmitInteger, MVT::i32, PPC::F8RCRegClassID,
/* 48438*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::f64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 48446*/      OPC_EmitNode1, TARGET_VAL(PPC::FCTID), 0,
                    MVT::f64, 1/*#Ops*/, 2,  // Results = #3
/* 48453*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::MFVSRD), 0,
                    MVT::i64, 1/*#Ops*/, 3, 
                // Src: (llrint:{ *:[i64] } f32:{ *:[f32] }:$S) - Complexity = 403
                // Dst: (MFVSRD:{ *:[i64] } (FCTID:{ *:[f64] } (COPY_TO_REGCLASS:{ *:[f64] } ?:{ *:[f32] }:$S, F8RC:{ *:[i32] })))
/* 48460*/    0, /*End of Scope*/
/* 48461*/  /*SwitchOpcode*/ 122, TARGET_VAL(ISD::FP_TO_SINT),// ->48586
/* 48464*/    OPC_RecordChild0, // #0 = $src
/* 48465*/    OPC_Scope, 51, /*->48518*/ // 5 children in Scope
/* 48467*/      OPC_CheckChild0Type, MVT::f128,
/* 48469*/      OPC_SwitchType /*2 cases */, 16, MVT::i64,// ->48488
/* 48472*/        OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/* 48474*/        OPC_EmitNode1, TARGET_VAL(PPC::XSCVQPSDZ), 0,
                      MVT::v4i32, 1/*#Ops*/, 0,  // Results = #1
/* 48481*/        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:{ *:[v4i32] } ?:{ *:[f128] }:$src))
/* 48488*/      /*SwitchType*/ 27, MVT::i32,// ->48517
/* 48490*/        OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/* 48492*/        OPC_EmitNode1, TARGET_VAL(PPC::XSCVQPSWZ), 0,
                      MVT::f128, 1/*#Ops*/, 0,  // Results = #1
/* 48499*/        OPC_EmitInteger, MVT::i32, PPC::VFRCRegClassID,
/* 48502*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::f64, 2/*#Ops*/, 1, 2,  // Results = #3
/* 48510*/        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] }))
/* 48517*/      0, // EndSwitchType
/* 48518*/    /*Scope*/ 13, /*->48532*/
/* 48519*/      OPC_CheckChild0Type, MVT::f64,
/* 48521*/      OPC_CheckType, MVT::i32,
/* 48523*/      OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 48525*/      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)
/* 48532*/    /*Scope*/ 13, /*->48546*/
/* 48533*/      OPC_CheckChild0Type, MVT::f32,
/* 48535*/      OPC_CheckType, MVT::i32,
/* 48537*/      OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 48539*/      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)
/* 48546*/    /*Scope*/ 11, /*->48558*/
/* 48547*/      OPC_CheckType, MVT::v2i64,
/* 48549*/      OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 48551*/      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)
/* 48558*/    /*Scope*/ 26, /*->48585*/
/* 48559*/      OPC_CheckType, MVT::v4i32,
/* 48561*/      OPC_CheckChild0Type, MVT::v4f32,
/* 48563*/      OPC_Scope, 9, /*->48574*/ // 2 children in Scope
/* 48565*/        OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 48567*/        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)
/* 48574*/      /*Scope*/ 9, /*->48584*/
/* 48575*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 48577*/        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)
/* 48584*/      0, /*End of Scope*/
/* 48585*/    0, /*End of Scope*/
/* 48586*/  /*SwitchOpcode*/ 122, TARGET_VAL(ISD::FP_TO_UINT),// ->48711
/* 48589*/    OPC_RecordChild0, // #0 = $src
/* 48590*/    OPC_Scope, 51, /*->48643*/ // 5 children in Scope
/* 48592*/      OPC_CheckChild0Type, MVT::f128,
/* 48594*/      OPC_SwitchType /*2 cases */, 16, MVT::i64,// ->48613
/* 48597*/        OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/* 48599*/        OPC_EmitNode1, TARGET_VAL(PPC::XSCVQPUDZ), 0,
                      MVT::v4i32, 1/*#Ops*/, 0,  // Results = #1
/* 48606*/        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:{ *:[v4i32] } ?:{ *:[f128] }:$src))
/* 48613*/      /*SwitchType*/ 27, MVT::i32,// ->48642
/* 48615*/        OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/* 48617*/        OPC_EmitNode1, TARGET_VAL(PPC::XSCVQPUWZ), 0,
                      MVT::f128, 1/*#Ops*/, 0,  // Results = #1
/* 48624*/        OPC_EmitInteger, MVT::i32, PPC::VFRCRegClassID,
/* 48627*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::f64, 2/*#Ops*/, 1, 2,  // Results = #3
/* 48635*/        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] }))
/* 48642*/      0, // EndSwitchType
/* 48643*/    /*Scope*/ 13, /*->48657*/
/* 48644*/      OPC_CheckChild0Type, MVT::f64,
/* 48646*/      OPC_CheckType, MVT::i32,
/* 48648*/      OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 48650*/      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)
/* 48657*/    /*Scope*/ 13, /*->48671*/
/* 48658*/      OPC_CheckChild0Type, MVT::f32,
/* 48660*/      OPC_CheckType, MVT::i32,
/* 48662*/      OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 48664*/      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)
/* 48671*/    /*Scope*/ 11, /*->48683*/
/* 48672*/      OPC_CheckType, MVT::v2i64,
/* 48674*/      OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 48676*/      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)
/* 48683*/    /*Scope*/ 26, /*->48710*/
/* 48684*/      OPC_CheckType, MVT::v4i32,
/* 48686*/      OPC_CheckChild0Type, MVT::v4f32,
/* 48688*/      OPC_Scope, 9, /*->48699*/ // 2 children in Scope
/* 48690*/        OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 48692*/        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)
/* 48699*/      /*Scope*/ 9, /*->48709*/
/* 48700*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 48702*/        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)
/* 48709*/      0, /*End of Scope*/
/* 48710*/    0, /*End of Scope*/
/* 48711*/  /*SwitchOpcode*/ 68, TARGET_VAL(ISD::LROUND),// ->48782
/* 48714*/    OPC_RecordChild0, // #0 = $S
/* 48715*/    OPC_CheckType, MVT::i64,
/* 48717*/    OPC_Scope, 25, /*->48744*/ // 2 children in Scope
/* 48719*/      OPC_CheckChild0Type, MVT::f64,
/* 48721*/      OPC_CheckPatternPredicate, 37, // (PPCSubTarget->hasDirectMove()) && (PPCSubTarget->hasVSX())
/* 48723*/      OPC_EmitNode1, TARGET_VAL(PPC::XSRDPI), 0,
                    MVT::f64, 1/*#Ops*/, 0,  // Results = #1
/* 48730*/      OPC_EmitNode1, TARGET_VAL(PPC::FCTID), 0,
                    MVT::f64, 1/*#Ops*/, 1,  // Results = #2
/* 48737*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::MFVSRD), 0,
                    MVT::i64, 1/*#Ops*/, 2, 
                // Src: (lround:{ *:[i64] } f64:{ *:[f64] }:$S) - Complexity = 403
                // Dst: (MFVSRD:{ *:[i64] } (FCTID:{ *:[f64] } (XSRDPI:{ *:[f64] } ?:{ *:[f64] }:$S)))
/* 48744*/    /*Scope*/ 36, /*->48781*/
/* 48745*/      OPC_CheckChild0Type, MVT::f32,
/* 48747*/      OPC_CheckPatternPredicate, 37, // (PPCSubTarget->hasDirectMove()) && (PPCSubTarget->hasVSX())
/* 48749*/      OPC_EmitInteger, MVT::i32, PPC::VSFRCRegClassID,
/* 48752*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::f64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 48760*/      OPC_EmitNode1, TARGET_VAL(PPC::XSRDPI), 0,
                    MVT::f64, 1/*#Ops*/, 2,  // Results = #3
/* 48767*/      OPC_EmitNode1, TARGET_VAL(PPC::FCTID), 0,
                    MVT::f64, 1/*#Ops*/, 3,  // Results = #4
/* 48774*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::MFVSRD), 0,
                    MVT::i64, 1/*#Ops*/, 4, 
                // Src: (lround:{ *:[i64] } f32:{ *:[f32] }:$S) - Complexity = 403
                // Dst: (MFVSRD:{ *:[i64] } (FCTID:{ *:[f64] } (XSRDPI:{ *:[f64] } (COPY_TO_REGCLASS:{ *:[f64] } ?:{ *:[f32] }:$S, VSFRC:{ *:[i32] }))))
/* 48781*/    0, /*End of Scope*/
/* 48782*/  /*SwitchOpcode*/ 68, TARGET_VAL(ISD::LLROUND),// ->48853
/* 48785*/    OPC_RecordChild0, // #0 = $S
/* 48786*/    OPC_CheckType, MVT::i64,
/* 48788*/    OPC_Scope, 25, /*->48815*/ // 2 children in Scope
/* 48790*/      OPC_CheckChild0Type, MVT::f64,
/* 48792*/      OPC_CheckPatternPredicate, 37, // (PPCSubTarget->hasDirectMove()) && (PPCSubTarget->hasVSX())
/* 48794*/      OPC_EmitNode1, TARGET_VAL(PPC::XSRDPI), 0,
                    MVT::f64, 1/*#Ops*/, 0,  // Results = #1
/* 48801*/      OPC_EmitNode1, TARGET_VAL(PPC::FCTID), 0,
                    MVT::f64, 1/*#Ops*/, 1,  // Results = #2
/* 48808*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::MFVSRD), 0,
                    MVT::i64, 1/*#Ops*/, 2, 
                // Src: (llround:{ *:[i64] } f64:{ *:[f64] }:$S) - Complexity = 403
                // Dst: (MFVSRD:{ *:[i64] } (FCTID:{ *:[f64] } (XSRDPI:{ *:[f64] } ?:{ *:[f64] }:$S)))
/* 48815*/    /*Scope*/ 36, /*->48852*/
/* 48816*/      OPC_CheckChild0Type, MVT::f32,
/* 48818*/      OPC_CheckPatternPredicate, 37, // (PPCSubTarget->hasDirectMove()) && (PPCSubTarget->hasVSX())
/* 48820*/      OPC_EmitInteger, MVT::i32, PPC::VSFRCRegClassID,
/* 48823*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::f64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 48831*/      OPC_EmitNode1, TARGET_VAL(PPC::XSRDPI), 0,
                    MVT::f64, 1/*#Ops*/, 2,  // Results = #3
/* 48838*/      OPC_EmitNode1, TARGET_VAL(PPC::FCTID), 0,
                    MVT::f64, 1/*#Ops*/, 3,  // Results = #4
/* 48845*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::MFVSRD), 0,
                    MVT::i64, 1/*#Ops*/, 4, 
                // Src: (llround:{ *:[i64] } f32:{ *:[f32] }:$S) - Complexity = 403
                // Dst: (MFVSRD:{ *:[i64] } (FCTID:{ *:[f64] } (XSRDPI:{ *:[f64] } (COPY_TO_REGCLASS:{ *:[f64] } ?:{ *:[f32] }:$S, VSFRC:{ *:[i32] }))))
/* 48852*/    0, /*End of Scope*/
/* 48853*/  /*SwitchOpcode*/ 82, TARGET_VAL(ISD::PREFETCH),// ->48938
/* 48856*/    OPC_RecordMemRef,
/* 48857*/    OPC_RecordNode, // #0 = 'prefetch' chained node
/* 48858*/    OPC_RecordChild1, // #1 = $dst
/* 48859*/    OPC_Scope, 49, /*->48910*/ // 2 children in Scope
/* 48861*/      OPC_CheckChild2Integer, 0, 
/* 48863*/      OPC_CheckChild2Type, MVT::i32,
/* 48865*/      OPC_MoveChild3,
/* 48866*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 48869*/      OPC_MoveParent,
/* 48870*/      OPC_Scope, 17, /*->48889*/ // 2 children in Scope
/* 48872*/        OPC_CheckChild4Integer, 1, 
/* 48874*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$dst #2 #3
/* 48877*/        OPC_EmitMergeInputChains1_0,
/* 48878*/        OPC_EmitInteger, MVT::i32, 0, 
/* 48881*/        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)
/* 48889*/      /*Scope*/ 19, /*->48909*/
/* 48890*/        OPC_CheckChild4Integer, 0, 
/* 48892*/        OPC_CheckPatternPredicate, 38, // (PPCSubTarget->hasICBT())
/* 48894*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$dst #2 #3
/* 48897*/        OPC_EmitMergeInputChains1_0,
/* 48898*/        OPC_EmitInteger, MVT::i32, 0, 
/* 48901*/        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)
/* 48909*/      0, /*End of Scope*/
/* 48910*/    /*Scope*/ 26, /*->48937*/
/* 48911*/      OPC_CheckChild2Integer, 1, 
/* 48913*/      OPC_CheckChild2Type, MVT::i32,
/* 48915*/      OPC_MoveChild3,
/* 48916*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 48919*/      OPC_MoveParent,
/* 48920*/      OPC_CheckChild4Integer, 1, 
/* 48922*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$dst #2 #3
/* 48925*/      OPC_EmitMergeInputChains1_0,
/* 48926*/      OPC_EmitInteger, MVT::i32, 0, 
/* 48929*/      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)
/* 48937*/    0, /*End of Scope*/
/* 48938*/  /*SwitchOpcode*/ 70|128,29/*3782*/, TARGET_VAL(ISD::XOR),// ->52724
/* 48942*/    OPC_Scope, 42|128,6/*810*/, /*->49755*/ // 20 children in Scope
/* 48945*/      OPC_MoveChild0,
/* 48946*/      OPC_SwitchOpcode /*4 cases */, 117|128,4/*629*/, TARGET_VAL(ISD::SETCC),// ->49580
/* 48951*/        OPC_RecordChild0, // #0 = $s1
/* 48952*/        OPC_Scope, 54|128,2/*310*/, /*->49265*/ // 2 children in Scope
/* 48955*/          OPC_CheckChild0Type, MVT::i32,
/* 48957*/          OPC_RecordChild1, // #1 = $imm
/* 48958*/          OPC_MoveChild1,
/* 48959*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 48962*/          OPC_Scope, 40, /*->49004*/ // 6 children in Scope
/* 48964*/            OPC_CheckPredicate, 12, // Predicate_immZExt16
/* 48966*/            OPC_MoveParent,
/* 48967*/            OPC_CheckChild2CondCode, ISD::SETUGE,
/* 48969*/            OPC_MoveParent,
/* 48970*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 48981*/            OPC_CheckType, MVT::i1,
/* 48983*/            OPC_EmitConvertToTarget, 1,
/* 48985*/            OPC_EmitNode1, TARGET_VAL(PPC::CMPLWI), 0,
                          MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 48993*/            OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 48996*/            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] })
/* 49004*/          /*Scope*/ 40, /*->49045*/
/* 49005*/            OPC_CheckPredicate, 13, // Predicate_imm32SExt16
/* 49007*/            OPC_MoveParent,
/* 49008*/            OPC_CheckChild2CondCode, ISD::SETGE,
/* 49010*/            OPC_MoveParent,
/* 49011*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 49022*/            OPC_CheckType, MVT::i1,
/* 49024*/            OPC_EmitConvertToTarget, 1,
/* 49026*/            OPC_EmitNode1, TARGET_VAL(PPC::CMPWI), 0,
                          MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 49034*/            OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 49037*/            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] })
/* 49045*/          /*Scope*/ 40, /*->49086*/
/* 49046*/            OPC_CheckPredicate, 12, // Predicate_immZExt16
/* 49048*/            OPC_MoveParent,
/* 49049*/            OPC_CheckChild2CondCode, ISD::SETULE,
/* 49051*/            OPC_MoveParent,
/* 49052*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 49063*/            OPC_CheckType, MVT::i1,
/* 49065*/            OPC_EmitConvertToTarget, 1,
/* 49067*/            OPC_EmitNode1, TARGET_VAL(PPC::CMPLWI), 0,
                          MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 49075*/            OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 49078*/            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] })
/* 49086*/          /*Scope*/ 81, /*->49168*/
/* 49087*/            OPC_CheckPredicate, 13, // Predicate_imm32SExt16
/* 49089*/            OPC_MoveParent,
/* 49090*/            OPC_Scope, 37, /*->49129*/ // 2 children in Scope
/* 49092*/              OPC_CheckChild2CondCode, ISD::SETLE,
/* 49094*/              OPC_MoveParent,
/* 49095*/              OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 49106*/              OPC_CheckType, MVT::i1,
/* 49108*/              OPC_EmitConvertToTarget, 1,
/* 49110*/              OPC_EmitNode1, TARGET_VAL(PPC::CMPWI), 0,
                            MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 49118*/              OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 49121*/              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] })
/* 49129*/            /*Scope*/ 37, /*->49167*/
/* 49130*/              OPC_CheckChild2CondCode, ISD::SETNE,
/* 49132*/              OPC_MoveParent,
/* 49133*/              OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 49144*/              OPC_CheckType, MVT::i1,
/* 49146*/              OPC_EmitConvertToTarget, 1,
/* 49148*/              OPC_EmitNode1, TARGET_VAL(PPC::CMPWI), 0,
                            MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 49156*/              OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 49159*/              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] })
/* 49167*/            0, /*End of Scope*/
/* 49168*/          /*Scope*/ 40, /*->49209*/
/* 49169*/            OPC_CheckPredicate, 12, // Predicate_immZExt16
/* 49171*/            OPC_MoveParent,
/* 49172*/            OPC_CheckChild2CondCode, ISD::SETNE,
/* 49174*/            OPC_MoveParent,
/* 49175*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 49186*/            OPC_CheckType, MVT::i1,
/* 49188*/            OPC_EmitConvertToTarget, 1,
/* 49190*/            OPC_EmitNode1, TARGET_VAL(PPC::CMPLWI), 0,
                          MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 49198*/            OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 49201*/            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] })
/* 49209*/          /*Scope*/ 54, /*->49264*/
/* 49210*/            OPC_MoveParent,
/* 49211*/            OPC_CheckChild2CondCode, ISD::SETNE,
/* 49213*/            OPC_MoveParent,
/* 49214*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 49225*/            OPC_CheckType, MVT::i1,
/* 49227*/            OPC_EmitConvertToTarget, 1,
/* 49229*/            OPC_EmitNodeXForm, 0, 2, // HI16
/* 49232*/            OPC_EmitNode1, TARGET_VAL(PPC::XORIS), 0,
                          MVT::i32, 2/*#Ops*/, 0, 3,  // Results = #4
/* 49240*/            OPC_EmitConvertToTarget, 1,
/* 49242*/            OPC_EmitNodeXForm, 1, 5, // LO16
/* 49245*/            OPC_EmitNode1, TARGET_VAL(PPC::CMPLWI), 0,
                          MVT::i32, 2/*#Ops*/, 4, 6,  // Results = #7
/* 49253*/            OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 49256*/            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] })
/* 49264*/          0, /*End of Scope*/
/* 49265*/        /*Scope*/ 56|128,2/*312*/, /*->49579*/
/* 49267*/          OPC_CheckChild0Type, MVT::i64,
/* 49269*/          OPC_RecordChild1, // #1 = $imm
/* 49270*/          OPC_MoveChild1,
/* 49271*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 49274*/          OPC_Scope, 40, /*->49316*/ // 6 children in Scope
/* 49276*/            OPC_CheckPredicate, 12, // Predicate_immZExt16
/* 49278*/            OPC_MoveParent,
/* 49279*/            OPC_CheckChild2CondCode, ISD::SETUGE,
/* 49281*/            OPC_MoveParent,
/* 49282*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 49293*/            OPC_CheckType, MVT::i1,
/* 49295*/            OPC_EmitConvertToTarget, 1,
/* 49297*/            OPC_EmitNode1, TARGET_VAL(PPC::CMPLDI), 0,
                          MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 49305*/            OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 49308*/            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] })
/* 49316*/          /*Scope*/ 40, /*->49357*/
/* 49317*/            OPC_CheckPredicate, 14, // Predicate_imm64SExt16
/* 49319*/            OPC_MoveParent,
/* 49320*/            OPC_CheckChild2CondCode, ISD::SETGE,
/* 49322*/            OPC_MoveParent,
/* 49323*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 49334*/            OPC_CheckType, MVT::i1,
/* 49336*/            OPC_EmitConvertToTarget, 1,
/* 49338*/            OPC_EmitNode1, TARGET_VAL(PPC::CMPDI), 0,
                          MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 49346*/            OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 49349*/            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] })
/* 49357*/          /*Scope*/ 40, /*->49398*/
/* 49358*/            OPC_CheckPredicate, 12, // Predicate_immZExt16
/* 49360*/            OPC_MoveParent,
/* 49361*/            OPC_CheckChild2CondCode, ISD::SETULE,
/* 49363*/            OPC_MoveParent,
/* 49364*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 49375*/            OPC_CheckType, MVT::i1,
/* 49377*/            OPC_EmitConvertToTarget, 1,
/* 49379*/            OPC_EmitNode1, TARGET_VAL(PPC::CMPLDI), 0,
                          MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 49387*/            OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 49390*/            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] })
/* 49398*/          /*Scope*/ 81, /*->49480*/
/* 49399*/            OPC_CheckPredicate, 14, // Predicate_imm64SExt16
/* 49401*/            OPC_MoveParent,
/* 49402*/            OPC_Scope, 37, /*->49441*/ // 2 children in Scope
/* 49404*/              OPC_CheckChild2CondCode, ISD::SETLE,
/* 49406*/              OPC_MoveParent,
/* 49407*/              OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 49418*/              OPC_CheckType, MVT::i1,
/* 49420*/              OPC_EmitConvertToTarget, 1,
/* 49422*/              OPC_EmitNode1, TARGET_VAL(PPC::CMPDI), 0,
                            MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 49430*/              OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 49433*/              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] })
/* 49441*/            /*Scope*/ 37, /*->49479*/
/* 49442*/              OPC_CheckChild2CondCode, ISD::SETNE,
/* 49444*/              OPC_MoveParent,
/* 49445*/              OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 49456*/              OPC_CheckType, MVT::i1,
/* 49458*/              OPC_EmitConvertToTarget, 1,
/* 49460*/              OPC_EmitNode1, TARGET_VAL(PPC::CMPDI), 0,
                            MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 49468*/              OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 49471*/              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] })
/* 49479*/            0, /*End of Scope*/
/* 49480*/          /*Scope*/ 40, /*->49521*/
/* 49481*/            OPC_CheckPredicate, 12, // Predicate_immZExt16
/* 49483*/            OPC_MoveParent,
/* 49484*/            OPC_CheckChild2CondCode, ISD::SETNE,
/* 49486*/            OPC_MoveParent,
/* 49487*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 49498*/            OPC_CheckType, MVT::i1,
/* 49500*/            OPC_EmitConvertToTarget, 1,
/* 49502*/            OPC_EmitNode1, TARGET_VAL(PPC::CMPLDI), 0,
                          MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 49510*/            OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 49513*/            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] })
/* 49521*/          /*Scope*/ 56, /*->49578*/
/* 49522*/            OPC_CheckPredicate, 15, // Predicate_imm64ZExt32
/* 49524*/            OPC_MoveParent,
/* 49525*/            OPC_CheckChild2CondCode, ISD::SETNE,
/* 49527*/            OPC_MoveParent,
/* 49528*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 49539*/            OPC_CheckType, MVT::i1,
/* 49541*/            OPC_EmitConvertToTarget, 1,
/* 49543*/            OPC_EmitNodeXForm, 0, 2, // HI16
/* 49546*/            OPC_EmitNode1, TARGET_VAL(PPC::XORIS8), 0,
                          MVT::i64, 2/*#Ops*/, 0, 3,  // Results = #4
/* 49554*/            OPC_EmitConvertToTarget, 1,
/* 49556*/            OPC_EmitNodeXForm, 1, 5, // LO16
/* 49559*/            OPC_EmitNode1, TARGET_VAL(PPC::CMPLDI), 0,
                          MVT::i32, 2/*#Ops*/, 4, 6,  // Results = #7
/* 49567*/            OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 49570*/            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] })
/* 49578*/          0, /*End of Scope*/
/* 49579*/        0, /*End of Scope*/
/* 49580*/      /*SwitchOpcode*/ 46, TARGET_VAL(ISD::AND),// ->49629
/* 49583*/        OPC_RecordChild0, // #0 = $rS
/* 49584*/        OPC_RecordChild1, // #1 = $rB
/* 49585*/        OPC_MoveParent,
/* 49586*/        OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 49597*/        OPC_SwitchType /*3 cases */, 8, MVT::i32,// ->49608
/* 49600*/          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)
/* 49608*/        /*SwitchType*/ 8, MVT::i1,// ->49618
/* 49610*/          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)
/* 49618*/        /*SwitchType*/ 8, MVT::i64,// ->49628
/* 49620*/          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)
/* 49628*/        0, // EndSwitchType
/* 49629*/      /*SwitchOpcode*/ 46, TARGET_VAL(ISD::OR),// ->49678
/* 49632*/        OPC_RecordChild0, // #0 = $rS
/* 49633*/        OPC_RecordChild1, // #1 = $rB
/* 49634*/        OPC_MoveParent,
/* 49635*/        OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 49646*/        OPC_SwitchType /*3 cases */, 8, MVT::i32,// ->49657
/* 49649*/          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)
/* 49657*/        /*SwitchType*/ 8, MVT::i1,// ->49667
/* 49659*/          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)
/* 49667*/        /*SwitchType*/ 8, MVT::i64,// ->49677
/* 49669*/          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)
/* 49677*/        0, // EndSwitchType
/* 49678*/      /*SwitchOpcode*/ 73, TARGET_VAL(ISD::XOR),// ->49754
/* 49681*/        OPC_RecordChild0, // #0 = $rS
/* 49682*/        OPC_Scope, 45, /*->49729*/ // 2 children in Scope
/* 49684*/          OPC_RecordChild1, // #1 = $rB
/* 49685*/          OPC_MoveParent,
/* 49686*/          OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 49697*/          OPC_SwitchType /*3 cases */, 8, MVT::i32,// ->49708
/* 49700*/            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)
/* 49708*/          /*SwitchType*/ 8, MVT::i1,// ->49718
/* 49710*/            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)
/* 49718*/          /*SwitchType*/ 8, MVT::i64,// ->49728
/* 49720*/            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)
/* 49728*/          0, // EndSwitchType
/* 49729*/        /*Scope*/ 23, /*->49753*/
/* 49730*/          OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 49741*/          OPC_MoveParent,
/* 49742*/          OPC_RecordChild1, // #1 = $rB
/* 49743*/          OPC_CheckType, MVT::i32,
/* 49745*/          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)
/* 49753*/        0, /*End of Scope*/
/* 49754*/      0, // EndSwitchOpcode
/* 49755*/    /*Scope*/ 28, /*->49784*/
/* 49756*/      OPC_RecordChild0, // #0 = $rB
/* 49757*/      OPC_MoveChild1,
/* 49758*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 49761*/      OPC_RecordChild0, // #1 = $rS
/* 49762*/      OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 49773*/      OPC_MoveParent,
/* 49774*/      OPC_CheckType, MVT::i32,
/* 49776*/      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)
/* 49784*/    /*Scope*/ 28, /*->49813*/
/* 49785*/      OPC_MoveChild0,
/* 49786*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 49789*/      OPC_RecordChild0, // #0 = $CRA
/* 49790*/      OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 49801*/      OPC_MoveParent,
/* 49802*/      OPC_RecordChild1, // #1 = $CRB
/* 49803*/      OPC_CheckType, MVT::i1,
/* 49805*/      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)
/* 49813*/    /*Scope*/ 28, /*->49842*/
/* 49814*/      OPC_RecordChild0, // #0 = $CRB
/* 49815*/      OPC_MoveChild1,
/* 49816*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 49819*/      OPC_RecordChild0, // #1 = $CRA
/* 49820*/      OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 49831*/      OPC_MoveParent,
/* 49832*/      OPC_CheckType, MVT::i1,
/* 49834*/      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)
/* 49842*/    /*Scope*/ 28, /*->49871*/
/* 49843*/      OPC_MoveChild0,
/* 49844*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 49847*/      OPC_RecordChild0, // #0 = $rS
/* 49848*/      OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 49859*/      OPC_MoveParent,
/* 49860*/      OPC_RecordChild1, // #1 = $rB
/* 49861*/      OPC_CheckType, MVT::i64,
/* 49863*/      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)
/* 49871*/    /*Scope*/ 28, /*->49900*/
/* 49872*/      OPC_RecordChild0, // #0 = $rB
/* 49873*/      OPC_MoveChild1,
/* 49874*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 49877*/      OPC_RecordChild0, // #1 = $rS
/* 49878*/      OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 49889*/      OPC_MoveParent,
/* 49890*/      OPC_CheckType, MVT::i64,
/* 49892*/      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)
/* 49900*/    /*Scope*/ 49|128,13/*1713*/, /*->51615*/
/* 49902*/      OPC_MoveChild0,
/* 49903*/      OPC_SwitchOpcode /*2 cases */, 116|128,12/*1652*/, TARGET_VAL(ISD::SETCC),// ->51560
/* 49908*/        OPC_RecordChild0, // #0 = $s1
/* 49909*/        OPC_Scope, 57|128,1/*185*/, /*->50097*/ // 5 children in Scope
/* 49912*/          OPC_CheckChild0Type, MVT::i32,
/* 49914*/          OPC_RecordChild1, // #1 = $s2
/* 49915*/          OPC_Scope, 35, /*->49952*/ // 5 children in Scope
/* 49917*/            OPC_CheckChild2CondCode, ISD::SETUGE,
/* 49919*/            OPC_MoveParent,
/* 49920*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 49931*/            OPC_CheckType, MVT::i1,
/* 49933*/            OPC_EmitNode1, TARGET_VAL(PPC::CMPLW), 0,
                          MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 49941*/            OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 49944*/            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] })
/* 49952*/          /*Scope*/ 35, /*->49988*/
/* 49953*/            OPC_CheckChild2CondCode, ISD::SETGE,
/* 49955*/            OPC_MoveParent,
/* 49956*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 49967*/            OPC_CheckType, MVT::i1,
/* 49969*/            OPC_EmitNode1, TARGET_VAL(PPC::CMPW), 0,
                          MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 49977*/            OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 49980*/            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] })
/* 49988*/          /*Scope*/ 35, /*->50024*/
/* 49989*/            OPC_CheckChild2CondCode, ISD::SETULE,
/* 49991*/            OPC_MoveParent,
/* 49992*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 50003*/            OPC_CheckType, MVT::i1,
/* 50005*/            OPC_EmitNode1, TARGET_VAL(PPC::CMPLW), 0,
                          MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 50013*/            OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 50016*/            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] })
/* 50024*/          /*Scope*/ 35, /*->50060*/
/* 50025*/            OPC_CheckChild2CondCode, ISD::SETLE,
/* 50027*/            OPC_MoveParent,
/* 50028*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 50039*/            OPC_CheckType, MVT::i1,
/* 50041*/            OPC_EmitNode1, TARGET_VAL(PPC::CMPW), 0,
                          MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 50049*/            OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 50052*/            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] })
/* 50060*/          /*Scope*/ 35, /*->50096*/
/* 50061*/            OPC_CheckChild2CondCode, ISD::SETNE,
/* 50063*/            OPC_MoveParent,
/* 50064*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 50075*/            OPC_CheckType, MVT::i1,
/* 50077*/            OPC_EmitNode1, TARGET_VAL(PPC::CMPW), 0,
                          MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 50085*/            OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 50088*/            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] })
/* 50096*/          0, /*End of Scope*/
/* 50097*/        /*Scope*/ 57|128,1/*185*/, /*->50284*/
/* 50099*/          OPC_CheckChild0Type, MVT::i64,
/* 50101*/          OPC_RecordChild1, // #1 = $s2
/* 50102*/          OPC_Scope, 35, /*->50139*/ // 5 children in Scope
/* 50104*/            OPC_CheckChild2CondCode, ISD::SETUGE,
/* 50106*/            OPC_MoveParent,
/* 50107*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 50118*/            OPC_CheckType, MVT::i1,
/* 50120*/            OPC_EmitNode1, TARGET_VAL(PPC::CMPLD), 0,
                          MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 50128*/            OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 50131*/            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] })
/* 50139*/          /*Scope*/ 35, /*->50175*/
/* 50140*/            OPC_CheckChild2CondCode, ISD::SETGE,
/* 50142*/            OPC_MoveParent,
/* 50143*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 50154*/            OPC_CheckType, MVT::i1,
/* 50156*/            OPC_EmitNode1, TARGET_VAL(PPC::CMPD), 0,
                          MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 50164*/            OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 50167*/            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] })
/* 50175*/          /*Scope*/ 35, /*->50211*/
/* 50176*/            OPC_CheckChild2CondCode, ISD::SETULE,
/* 50178*/            OPC_MoveParent,
/* 50179*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 50190*/            OPC_CheckType, MVT::i1,
/* 50192*/            OPC_EmitNode1, TARGET_VAL(PPC::CMPLD), 0,
                          MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 50200*/            OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 50203*/            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] })
/* 50211*/          /*Scope*/ 35, /*->50247*/
/* 50212*/            OPC_CheckChild2CondCode, ISD::SETLE,
/* 50214*/            OPC_MoveParent,
/* 50215*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 50226*/            OPC_CheckType, MVT::i1,
/* 50228*/            OPC_EmitNode1, TARGET_VAL(PPC::CMPD), 0,
                          MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 50236*/            OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 50239*/            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] })
/* 50247*/          /*Scope*/ 35, /*->50283*/
/* 50248*/            OPC_CheckChild2CondCode, ISD::SETNE,
/* 50250*/            OPC_MoveParent,
/* 50251*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 50262*/            OPC_CheckType, MVT::i1,
/* 50264*/            OPC_EmitNode1, TARGET_VAL(PPC::CMPD), 0,
                          MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 50272*/            OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 50275*/            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] })
/* 50283*/          0, /*End of Scope*/
/* 50284*/        /*Scope*/ 115|128,3/*499*/, /*->50785*/
/* 50286*/          OPC_CheckChild0Type, MVT::f32,
/* 50288*/          OPC_RecordChild1, // #1 = $s2
/* 50289*/          OPC_Scope, 37, /*->50328*/ // 13 children in Scope
/* 50291*/            OPC_CheckChild2CondCode, ISD::SETUGE,
/* 50293*/            OPC_MoveParent,
/* 50294*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 50305*/            OPC_CheckType, MVT::i1,
/* 50307*/            OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 50309*/            OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                          MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 50317*/            OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 50320*/            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] })
/* 50328*/          /*Scope*/ 37, /*->50366*/
/* 50329*/            OPC_CheckChild2CondCode, ISD::SETGE,
/* 50331*/            OPC_MoveParent,
/* 50332*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 50343*/            OPC_CheckType, MVT::i1,
/* 50345*/            OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 50347*/            OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                          MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 50355*/            OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 50358*/            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] })
/* 50366*/          /*Scope*/ 37, /*->50404*/
/* 50367*/            OPC_CheckChild2CondCode, ISD::SETULE,
/* 50369*/            OPC_MoveParent,
/* 50370*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 50381*/            OPC_CheckType, MVT::i1,
/* 50383*/            OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 50385*/            OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                          MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 50393*/            OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 50396*/            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] })
/* 50404*/          /*Scope*/ 37, /*->50442*/
/* 50405*/            OPC_CheckChild2CondCode, ISD::SETLE,
/* 50407*/            OPC_MoveParent,
/* 50408*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 50419*/            OPC_CheckType, MVT::i1,
/* 50421*/            OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 50423*/            OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                          MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 50431*/            OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 50434*/            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] })
/* 50442*/          /*Scope*/ 37, /*->50480*/
/* 50443*/            OPC_CheckChild2CondCode, ISD::SETUNE,
/* 50445*/            OPC_MoveParent,
/* 50446*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 50457*/            OPC_CheckType, MVT::i1,
/* 50459*/            OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 50461*/            OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                          MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 50469*/            OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 50472*/            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] })
/* 50480*/          /*Scope*/ 37, /*->50518*/
/* 50481*/            OPC_CheckChild2CondCode, ISD::SETNE,
/* 50483*/            OPC_MoveParent,
/* 50484*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 50495*/            OPC_CheckType, MVT::i1,
/* 50497*/            OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 50499*/            OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                          MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 50507*/            OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 50510*/            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] })
/* 50518*/          /*Scope*/ 37, /*->50556*/
/* 50519*/            OPC_CheckChild2CondCode, ISD::SETO,
/* 50521*/            OPC_MoveParent,
/* 50522*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 50533*/            OPC_CheckType, MVT::i1,
/* 50535*/            OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 50537*/            OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                          MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 50545*/            OPC_EmitInteger, MVT::i32, PPC::sub_un,
/* 50548*/            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] })
/* 50556*/          /*Scope*/ 37, /*->50594*/
/* 50557*/            OPC_CheckChild2CondCode, ISD::SETUGE,
/* 50559*/            OPC_MoveParent,
/* 50560*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 50571*/            OPC_CheckType, MVT::i1,
/* 50573*/            OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 50575*/            OPC_EmitNode1, TARGET_VAL(PPC::EFSCMPLT), 0,
                          MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 50583*/            OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 50586*/            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] })
/* 50594*/          /*Scope*/ 37, /*->50632*/
/* 50595*/            OPC_CheckChild2CondCode, ISD::SETGE,
/* 50597*/            OPC_MoveParent,
/* 50598*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 50609*/            OPC_CheckType, MVT::i1,
/* 50611*/            OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 50613*/            OPC_EmitNode1, TARGET_VAL(PPC::EFSCMPLT), 0,
                          MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 50621*/            OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 50624*/            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] })
/* 50632*/          /*Scope*/ 37, /*->50670*/
/* 50633*/            OPC_CheckChild2CondCode, ISD::SETULE,
/* 50635*/            OPC_MoveParent,
/* 50636*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 50647*/            OPC_CheckType, MVT::i1,
/* 50649*/            OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 50651*/            OPC_EmitNode1, TARGET_VAL(PPC::EFSCMPGT), 0,
                          MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 50659*/            OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 50662*/            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] })
/* 50670*/          /*Scope*/ 37, /*->50708*/
/* 50671*/            OPC_CheckChild2CondCode, ISD::SETLE,
/* 50673*/            OPC_MoveParent,
/* 50674*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 50685*/            OPC_CheckType, MVT::i1,
/* 50687*/            OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 50689*/            OPC_EmitNode1, TARGET_VAL(PPC::EFSCMPGT), 0,
                          MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 50697*/            OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 50700*/            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] })
/* 50708*/          /*Scope*/ 37, /*->50746*/
/* 50709*/            OPC_CheckChild2CondCode, ISD::SETUNE,
/* 50711*/            OPC_MoveParent,
/* 50712*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 50723*/            OPC_CheckType, MVT::i1,
/* 50725*/            OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 50727*/            OPC_EmitNode1, TARGET_VAL(PPC::EFSCMPEQ), 0,
                          MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 50735*/            OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 50738*/            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] })
/* 50746*/          /*Scope*/ 37, /*->50784*/
/* 50747*/            OPC_CheckChild2CondCode, ISD::SETNE,
/* 50749*/            OPC_MoveParent,
/* 50750*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 50761*/            OPC_CheckType, MVT::i1,
/* 50763*/            OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 50765*/            OPC_EmitNode1, TARGET_VAL(PPC::EFSCMPEQ), 0,
                          MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 50773*/            OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 50776*/            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] })
/* 50784*/          0, /*End of Scope*/
/* 50785*/        /*Scope*/ 115|128,3/*499*/, /*->51286*/
/* 50787*/          OPC_CheckChild0Type, MVT::f64,
/* 50789*/          OPC_RecordChild1, // #1 = $s2
/* 50790*/          OPC_Scope, 37, /*->50829*/ // 13 children in Scope
/* 50792*/            OPC_CheckChild2CondCode, ISD::SETUGE,
/* 50794*/            OPC_MoveParent,
/* 50795*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 50806*/            OPC_CheckType, MVT::i1,
/* 50808*/            OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 50810*/            OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                          MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 50818*/            OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 50821*/            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] })
/* 50829*/          /*Scope*/ 37, /*->50867*/
/* 50830*/            OPC_CheckChild2CondCode, ISD::SETGE,
/* 50832*/            OPC_MoveParent,
/* 50833*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 50844*/            OPC_CheckType, MVT::i1,
/* 50846*/            OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 50848*/            OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                          MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 50856*/            OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 50859*/            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] })
/* 50867*/          /*Scope*/ 37, /*->50905*/
/* 50868*/            OPC_CheckChild2CondCode, ISD::SETULE,
/* 50870*/            OPC_MoveParent,
/* 50871*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 50882*/            OPC_CheckType, MVT::i1,
/* 50884*/            OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 50886*/            OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                          MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 50894*/            OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 50897*/            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] })
/* 50905*/          /*Scope*/ 37, /*->50943*/
/* 50906*/            OPC_CheckChild2CondCode, ISD::SETLE,
/* 50908*/            OPC_MoveParent,
/* 50909*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 50920*/            OPC_CheckType, MVT::i1,
/* 50922*/            OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 50924*/            OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                          MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 50932*/            OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 50935*/            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] })
/* 50943*/          /*Scope*/ 37, /*->50981*/
/* 50944*/            OPC_CheckChild2CondCode, ISD::SETUNE,
/* 50946*/            OPC_MoveParent,
/* 50947*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 50958*/            OPC_CheckType, MVT::i1,
/* 50960*/            OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 50962*/            OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                          MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 50970*/            OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 50973*/            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] })
/* 50981*/          /*Scope*/ 37, /*->51019*/
/* 50982*/            OPC_CheckChild2CondCode, ISD::SETNE,
/* 50984*/            OPC_MoveParent,
/* 50985*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 50996*/            OPC_CheckType, MVT::i1,
/* 50998*/            OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 51000*/            OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                          MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 51008*/            OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 51011*/            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] })
/* 51019*/          /*Scope*/ 37, /*->51057*/
/* 51020*/            OPC_CheckChild2CondCode, ISD::SETO,
/* 51022*/            OPC_MoveParent,
/* 51023*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 51034*/            OPC_CheckType, MVT::i1,
/* 51036*/            OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 51038*/            OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                          MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 51046*/            OPC_EmitInteger, MVT::i32, PPC::sub_un,
/* 51049*/            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] })
/* 51057*/          /*Scope*/ 37, /*->51095*/
/* 51058*/            OPC_CheckChild2CondCode, ISD::SETUGE,
/* 51060*/            OPC_MoveParent,
/* 51061*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 51072*/            OPC_CheckType, MVT::i1,
/* 51074*/            OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 51076*/            OPC_EmitNode1, TARGET_VAL(PPC::EFDCMPLT), 0,
                          MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 51084*/            OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 51087*/            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] })
/* 51095*/          /*Scope*/ 37, /*->51133*/
/* 51096*/            OPC_CheckChild2CondCode, ISD::SETGE,
/* 51098*/            OPC_MoveParent,
/* 51099*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 51110*/            OPC_CheckType, MVT::i1,
/* 51112*/            OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 51114*/            OPC_EmitNode1, TARGET_VAL(PPC::EFDCMPLT), 0,
                          MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 51122*/            OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 51125*/            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] })
/* 51133*/          /*Scope*/ 37, /*->51171*/
/* 51134*/            OPC_CheckChild2CondCode, ISD::SETULE,
/* 51136*/            OPC_MoveParent,
/* 51137*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 51148*/            OPC_CheckType, MVT::i1,
/* 51150*/            OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 51152*/            OPC_EmitNode1, TARGET_VAL(PPC::EFDCMPGT), 0,
                          MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 51160*/            OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 51163*/            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] })
/* 51171*/          /*Scope*/ 37, /*->51209*/
/* 51172*/            OPC_CheckChild2CondCode, ISD::SETLE,
/* 51174*/            OPC_MoveParent,
/* 51175*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 51186*/            OPC_CheckType, MVT::i1,
/* 51188*/            OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 51190*/            OPC_EmitNode1, TARGET_VAL(PPC::EFDCMPGT), 0,
                          MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 51198*/            OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 51201*/            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] })
/* 51209*/          /*Scope*/ 37, /*->51247*/
/* 51210*/            OPC_CheckChild2CondCode, ISD::SETUNE,
/* 51212*/            OPC_MoveParent,
/* 51213*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 51224*/            OPC_CheckType, MVT::i1,
/* 51226*/            OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 51228*/            OPC_EmitNode1, TARGET_VAL(PPC::EFDCMPEQ), 0,
                          MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 51236*/            OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 51239*/            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] })
/* 51247*/          /*Scope*/ 37, /*->51285*/
/* 51248*/            OPC_CheckChild2CondCode, ISD::SETNE,
/* 51250*/            OPC_MoveParent,
/* 51251*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 51262*/            OPC_CheckType, MVT::i1,
/* 51264*/            OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 51266*/            OPC_EmitNode1, TARGET_VAL(PPC::EFDCMPEQ), 0,
                          MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 51274*/            OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 51277*/            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] })
/* 51285*/          0, /*End of Scope*/
/* 51286*/        /*Scope*/ 15|128,2/*271*/, /*->51559*/
/* 51288*/          OPC_CheckChild0Type, MVT::f128,
/* 51290*/          OPC_RecordChild1, // #1 = $s2
/* 51291*/          OPC_Scope, 37, /*->51330*/ // 7 children in Scope
/* 51293*/            OPC_CheckChild2CondCode, ISD::SETUGE,
/* 51295*/            OPC_MoveParent,
/* 51296*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 51307*/            OPC_CheckType, MVT::i1,
/* 51309*/            OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 51311*/            OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                          MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 51319*/            OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 51322*/            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] })
/* 51330*/          /*Scope*/ 37, /*->51368*/
/* 51331*/            OPC_CheckChild2CondCode, ISD::SETGE,
/* 51333*/            OPC_MoveParent,
/* 51334*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 51345*/            OPC_CheckType, MVT::i1,
/* 51347*/            OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 51349*/            OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                          MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 51357*/            OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 51360*/            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] })
/* 51368*/          /*Scope*/ 37, /*->51406*/
/* 51369*/            OPC_CheckChild2CondCode, ISD::SETULE,
/* 51371*/            OPC_MoveParent,
/* 51372*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 51383*/            OPC_CheckType, MVT::i1,
/* 51385*/            OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 51387*/            OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                          MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 51395*/            OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 51398*/            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] })
/* 51406*/          /*Scope*/ 37, /*->51444*/
/* 51407*/            OPC_CheckChild2CondCode, ISD::SETLE,
/* 51409*/            OPC_MoveParent,
/* 51410*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 51421*/            OPC_CheckType, MVT::i1,
/* 51423*/            OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 51425*/            OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                          MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 51433*/            OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 51436*/            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] })
/* 51444*/          /*Scope*/ 37, /*->51482*/
/* 51445*/            OPC_CheckChild2CondCode, ISD::SETUNE,
/* 51447*/            OPC_MoveParent,
/* 51448*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 51459*/            OPC_CheckType, MVT::i1,
/* 51461*/            OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 51463*/            OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                          MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 51471*/            OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 51474*/            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] })
/* 51482*/          /*Scope*/ 37, /*->51520*/
/* 51483*/            OPC_CheckChild2CondCode, ISD::SETNE,
/* 51485*/            OPC_MoveParent,
/* 51486*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 51497*/            OPC_CheckType, MVT::i1,
/* 51499*/            OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 51501*/            OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                          MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 51509*/            OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 51512*/            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] })
/* 51520*/          /*Scope*/ 37, /*->51558*/
/* 51521*/            OPC_CheckChild2CondCode, ISD::SETO,
/* 51523*/            OPC_MoveParent,
/* 51524*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 51535*/            OPC_CheckType, MVT::i1,
/* 51537*/            OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 51539*/            OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                          MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 51547*/            OPC_EmitInteger, MVT::i32, PPC::sub_un,
/* 51550*/            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] })
/* 51558*/          0, /*End of Scope*/
/* 51559*/        0, /*End of Scope*/
/* 51560*/      /*SwitchOpcode*/ 51, TARGET_VAL(ISD::TRUNCATE),// ->51614
/* 51563*/        OPC_RecordChild0, // #0 = $in
/* 51564*/        OPC_Scope, 23, /*->51589*/ // 2 children in Scope
/* 51566*/          OPC_CheckChild0Type, MVT::i32,
/* 51568*/          OPC_MoveParent,
/* 51569*/          OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 51580*/          OPC_CheckType, MVT::i1,
/* 51582*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::ANDI_rec_1_EQ_BIT), 0,
                        MVT::i1, 1/*#Ops*/, 0, 
                    // Src: (xor:{ *:[i1] } (trunc:{ *:[i1] } i32:{ *:[i32] }:$in), -1:{ *:[i1] }) - Complexity = 11
                    // Dst: (ANDI_rec_1_EQ_BIT:{ *:[i1] } ?:{ *:[i32] }:$in)
/* 51589*/        /*Scope*/ 23, /*->51613*/
/* 51590*/          OPC_CheckChild0Type, MVT::i64,
/* 51592*/          OPC_MoveParent,
/* 51593*/          OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 51604*/          OPC_CheckType, MVT::i1,
/* 51606*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::ANDI_rec_1_EQ_BIT8), 0,
                        MVT::i1, 1/*#Ops*/, 0, 
                    // Src: (xor:{ *:[i1] } (trunc:{ *:[i1] } i64:{ *:[i64] }:$in), -1:{ *:[i1] }) - Complexity = 11
                    // Dst: (ANDI_rec_1_EQ_BIT8:{ *:[i1] } ?:{ *:[i64] }:$in)
/* 51613*/        0, /*End of Scope*/
/* 51614*/      0, // EndSwitchOpcode
/* 51615*/    /*Scope*/ 70|128,1/*198*/, /*->51815*/
/* 51617*/      OPC_RecordChild0, // #0 = $in
/* 51618*/      OPC_Scope, 43, /*->51663*/ // 2 children in Scope
/* 51620*/        OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 51631*/        OPC_SwitchType /*3 cases */, 8, MVT::i32,// ->51642
/* 51634*/          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)
/* 51642*/        /*SwitchType*/ 8, MVT::i64,// ->51652
/* 51644*/          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)
/* 51652*/        /*SwitchType*/ 8, MVT::i1,// ->51662
/* 51654*/          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)
/* 51662*/        0, // EndSwitchType
/* 51663*/      /*Scope*/ 21|128,1/*149*/, /*->51814*/
/* 51665*/        OPC_RecordChild1, // #1 = $src2
/* 51666*/        OPC_Scope, 112, /*->51780*/ // 4 children in Scope
/* 51668*/          OPC_MoveChild1,
/* 51669*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 51672*/          OPC_Scope, 18, /*->51692*/ // 5 children in Scope
/* 51674*/            OPC_CheckPredicate, 12, // Predicate_immZExt16
/* 51676*/            OPC_MoveParent,
/* 51677*/            OPC_CheckType, MVT::i32,
/* 51679*/            OPC_EmitConvertToTarget, 1,
/* 51681*/            OPC_EmitNodeXForm, 1, 2, // LO16
/* 51684*/            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))
/* 51692*/          /*Scope*/ 18, /*->51711*/
/* 51693*/            OPC_CheckPredicate, 17, // Predicate_imm16ShiftedZExt
/* 51695*/            OPC_MoveParent,
/* 51696*/            OPC_CheckType, MVT::i32,
/* 51698*/            OPC_EmitConvertToTarget, 1,
/* 51700*/            OPC_EmitNodeXForm, 0, 2, // HI16
/* 51703*/            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))
/* 51711*/          /*Scope*/ 18, /*->51730*/
/* 51712*/            OPC_CheckPredicate, 12, // Predicate_immZExt16
/* 51714*/            OPC_MoveParent,
/* 51715*/            OPC_CheckType, MVT::i64,
/* 51717*/            OPC_EmitConvertToTarget, 1,
/* 51719*/            OPC_EmitNodeXForm, 1, 2, // LO16
/* 51722*/            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))
/* 51730*/          /*Scope*/ 18, /*->51749*/
/* 51731*/            OPC_CheckPredicate, 17, // Predicate_imm16ShiftedZExt
/* 51733*/            OPC_MoveParent,
/* 51734*/            OPC_CheckType, MVT::i64,
/* 51736*/            OPC_EmitConvertToTarget, 1,
/* 51738*/            OPC_EmitNodeXForm, 0, 2, // HI16
/* 51741*/            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))
/* 51749*/          /*Scope*/ 29, /*->51779*/
/* 51750*/            OPC_MoveParent,
/* 51751*/            OPC_CheckType, MVT::i32,
/* 51753*/            OPC_EmitConvertToTarget, 1,
/* 51755*/            OPC_EmitNodeXForm, 1, 2, // LO16
/* 51758*/            OPC_EmitNode1, TARGET_VAL(PPC::XORI), 0,
                          MVT::i32, 2/*#Ops*/, 0, 3,  // Results = #4
/* 51766*/            OPC_EmitConvertToTarget, 1,
/* 51768*/            OPC_EmitNodeXForm, 0, 5, // HI16
/* 51771*/            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))
/* 51779*/          0, /*End of Scope*/
/* 51780*/        /*Scope*/ 10, /*->51791*/
/* 51781*/          OPC_CheckType, MVT::i32,
/* 51783*/          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)
/* 51791*/        /*Scope*/ 10, /*->51802*/
/* 51792*/          OPC_CheckType, MVT::i1,
/* 51794*/          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)
/* 51802*/        /*Scope*/ 10, /*->51813*/
/* 51803*/          OPC_CheckType, MVT::i64,
/* 51805*/          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)
/* 51813*/        0, /*End of Scope*/
/* 51814*/      0, /*End of Scope*/
/* 51815*/    /*Scope*/ 64|128,1/*192*/, /*->52009*/
/* 51817*/      OPC_MoveChild0,
/* 51818*/      OPC_SwitchOpcode /*4 cases */, 25, TARGET_VAL(ISD::OR),// ->51847
/* 51822*/        OPC_RecordChild0, // #0 = $XA
/* 51823*/        OPC_RecordChild1, // #1 = $XB
/* 51824*/        OPC_MoveParent,
/* 51825*/        OPC_MoveChild1,
/* 51826*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 51829*/        OPC_MoveChild0,
/* 51830*/        OPC_CheckImmAllOnesV,
/* 51831*/        OPC_CheckType, MVT::v16i8,
/* 51833*/        OPC_MoveParent,
/* 51834*/        OPC_MoveParent,
/* 51835*/        OPC_CheckType, MVT::v4i32,
/* 51837*/        OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 51839*/        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] } immAllOnesV:{ *:[v16i8] })) - Complexity = 413
                  // Dst: (XXLNOR:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$XA, v4i32:{ *:[v4i32] }:$XB)
/* 51847*/      /*SwitchOpcode*/ 82, TARGET_VAL(ISD::XOR),// ->51932
/* 51850*/        OPC_Scope, 53, /*->51905*/ // 2 children in Scope
/* 51852*/          OPC_RecordChild0, // #0 = $XA
/* 51853*/          OPC_Scope, 24, /*->51879*/ // 2 children in Scope
/* 51855*/            OPC_RecordChild1, // #1 = $XB
/* 51856*/            OPC_MoveParent,
/* 51857*/            OPC_MoveChild1,
/* 51858*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 51861*/            OPC_MoveChild0,
/* 51862*/            OPC_CheckImmAllOnesV,
/* 51863*/            OPC_CheckType, MVT::v16i8,
/* 51865*/            OPC_MoveParent,
/* 51866*/            OPC_MoveParent,
/* 51867*/            OPC_CheckType, MVT::v4i32,
/* 51869*/            OPC_CheckPatternPredicate, 10, // (PPCSubTarget->hasP8Vector())
/* 51871*/            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] } immAllOnesV:{ *:[v16i8] })) - Complexity = 413
                      // Dst: (XXLEQV:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$XA, v4i32:{ *:[v4i32] }:$XB)
/* 51879*/          /*Scope*/ 24, /*->51904*/
/* 51880*/            OPC_MoveChild1,
/* 51881*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 51884*/            OPC_MoveChild0,
/* 51885*/            OPC_CheckImmAllOnesV,
/* 51886*/            OPC_CheckType, MVT::v16i8,
/* 51888*/            OPC_MoveParent,
/* 51889*/            OPC_MoveParent,
/* 51890*/            OPC_MoveParent,
/* 51891*/            OPC_RecordChild1, // #1 = $XB
/* 51892*/            OPC_CheckType, MVT::v4i32,
/* 51894*/            OPC_CheckPatternPredicate, 10, // (PPCSubTarget->hasP8Vector())
/* 51896*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XXLEQV), 0,
                          MVT::v4i32, 2/*#Ops*/, 0, 1, 
                      // Src: (xor:{ *:[v4i32] } (xor:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$XA, (bitconvert:{ *:[v4i32] } immAllOnesV:{ *:[v16i8] })), v4i32:{ *:[v4i32] }:$XB) - Complexity = 413
                      // Dst: (XXLEQV:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$XA, v4i32:{ *:[v4i32] }:$XB)
/* 51904*/          0, /*End of Scope*/
/* 51905*/        /*Scope*/ 25, /*->51931*/
/* 51906*/          OPC_MoveChild0,
/* 51907*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 51910*/          OPC_MoveChild0,
/* 51911*/          OPC_CheckImmAllOnesV,
/* 51912*/          OPC_CheckType, MVT::v16i8,
/* 51914*/          OPC_MoveParent,
/* 51915*/          OPC_MoveParent,
/* 51916*/          OPC_RecordChild1, // #0 = $XA
/* 51917*/          OPC_MoveParent,
/* 51918*/          OPC_RecordChild1, // #1 = $XB
/* 51919*/          OPC_CheckType, MVT::v4i32,
/* 51921*/          OPC_CheckPatternPredicate, 10, // (PPCSubTarget->hasP8Vector())
/* 51923*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XXLEQV), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1, 
                    // Src: (xor:{ *:[v4i32] } (xor:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } immAllOnesV:{ *:[v16i8] }), v4i32:{ *:[v4i32] }:$XA), v4i32:{ *:[v4i32] }:$XB) - Complexity = 413
                    // Dst: (XXLEQV:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$XA, v4i32:{ *:[v4i32] }:$XB)
/* 51931*/        0, /*End of Scope*/
/* 51932*/      /*SwitchOpcode*/ 25, TARGET_VAL(ISD::AND),// ->51960
/* 51935*/        OPC_RecordChild0, // #0 = $XA
/* 51936*/        OPC_RecordChild1, // #1 = $XB
/* 51937*/        OPC_MoveParent,
/* 51938*/        OPC_MoveChild1,
/* 51939*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 51942*/        OPC_MoveChild0,
/* 51943*/        OPC_CheckImmAllOnesV,
/* 51944*/        OPC_CheckType, MVT::v16i8,
/* 51946*/        OPC_MoveParent,
/* 51947*/        OPC_MoveParent,
/* 51948*/        OPC_CheckType, MVT::v4i32,
/* 51950*/        OPC_CheckPatternPredicate, 10, // (PPCSubTarget->hasP8Vector())
/* 51952*/        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] } immAllOnesV:{ *:[v16i8] })) - Complexity = 413
                  // Dst: (XXLNAND:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$XA, v4i32:{ *:[v4i32] }:$XB)
/* 51960*/      /*SwitchOpcode*/ 45, TARGET_VAL(ISD::BITCAST),// ->52008
/* 51963*/        OPC_MoveChild0,
/* 51964*/        OPC_CheckImmAllOnesV,
/* 51965*/        OPC_CheckType, MVT::v16i8,
/* 51967*/        OPC_MoveParent,
/* 51968*/        OPC_MoveParent,
/* 51969*/        OPC_MoveChild1,
/* 51970*/        OPC_SwitchOpcode /*2 cases */, 15, TARGET_VAL(ISD::OR),// ->51989
/* 51974*/          OPC_RecordChild0, // #0 = $XA
/* 51975*/          OPC_RecordChild1, // #1 = $XB
/* 51976*/          OPC_MoveParent,
/* 51977*/          OPC_CheckType, MVT::v4i32,
/* 51979*/          OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 51981*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XXLNOR), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1, 
                    // Src: (xor:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } immAllOnesV:{ *:[v16i8] }), (or:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$XA, v4i32:{ *:[v4i32] }:$XB)) - Complexity = 413
                    // Dst: (XXLNOR:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$XA, v4i32:{ *:[v4i32] }:$XB)
/* 51989*/        /*SwitchOpcode*/ 15, TARGET_VAL(ISD::XOR),// ->52007
/* 51992*/          OPC_RecordChild0, // #0 = $XA
/* 51993*/          OPC_RecordChild1, // #1 = $XB
/* 51994*/          OPC_MoveParent,
/* 51995*/          OPC_CheckType, MVT::v4i32,
/* 51997*/          OPC_CheckPatternPredicate, 10, // (PPCSubTarget->hasP8Vector())
/* 51999*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XXLEQV), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1, 
                    // Src: (xor:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } immAllOnesV:{ *:[v16i8] }), (xor:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$XA, v4i32:{ *:[v4i32] }:$XB)) - Complexity = 413
                    // Dst: (XXLEQV:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$XA, v4i32:{ *:[v4i32] }:$XB)
/* 52007*/        0, // EndSwitchOpcode
/* 52008*/      0, // EndSwitchOpcode
/* 52009*/    /*Scope*/ 57, /*->52067*/
/* 52010*/      OPC_RecordChild0, // #0 = $XB
/* 52011*/      OPC_MoveChild1,
/* 52012*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 52015*/      OPC_Scope, 24, /*->52041*/ // 2 children in Scope
/* 52017*/        OPC_RecordChild0, // #1 = $XA
/* 52018*/        OPC_MoveChild1,
/* 52019*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 52022*/        OPC_MoveChild0,
/* 52023*/        OPC_CheckImmAllOnesV,
/* 52024*/        OPC_CheckType, MVT::v16i8,
/* 52026*/        OPC_MoveParent,
/* 52027*/        OPC_MoveParent,
/* 52028*/        OPC_MoveParent,
/* 52029*/        OPC_CheckType, MVT::v4i32,
/* 52031*/        OPC_CheckPatternPredicate, 10, // (PPCSubTarget->hasP8Vector())
/* 52033*/        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] } immAllOnesV:{ *:[v16i8] }))) - Complexity = 413
                  // Dst: (XXLEQV:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$XA, v4i32:{ *:[v4i32] }:$XB)
/* 52041*/      /*Scope*/ 24, /*->52066*/
/* 52042*/        OPC_MoveChild0,
/* 52043*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 52046*/        OPC_MoveChild0,
/* 52047*/        OPC_CheckImmAllOnesV,
/* 52048*/        OPC_CheckType, MVT::v16i8,
/* 52050*/        OPC_MoveParent,
/* 52051*/        OPC_MoveParent,
/* 52052*/        OPC_RecordChild1, // #1 = $XA
/* 52053*/        OPC_MoveParent,
/* 52054*/        OPC_CheckType, MVT::v4i32,
/* 52056*/        OPC_CheckPatternPredicate, 10, // (PPCSubTarget->hasP8Vector())
/* 52058*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::XXLEQV), 0,
                      MVT::v4i32, 2/*#Ops*/, 1, 0, 
                  // Src: (xor:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$XB, (xor:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } immAllOnesV:{ *:[v16i8] }), v4i32:{ *:[v4i32] }:$XA)) - Complexity = 413
                  // Dst: (XXLEQV:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$XA, v4i32:{ *:[v4i32] }:$XB)
/* 52066*/      0, /*End of Scope*/
/* 52067*/    /*Scope*/ 29, /*->52097*/
/* 52068*/      OPC_MoveChild0,
/* 52069*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 52072*/      OPC_MoveChild0,
/* 52073*/      OPC_CheckImmAllOnesV,
/* 52074*/      OPC_CheckType, MVT::v16i8,
/* 52076*/      OPC_MoveParent,
/* 52077*/      OPC_MoveParent,
/* 52078*/      OPC_MoveChild1,
/* 52079*/      OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 52082*/      OPC_RecordChild0, // #0 = $XA
/* 52083*/      OPC_RecordChild1, // #1 = $XB
/* 52084*/      OPC_MoveParent,
/* 52085*/      OPC_CheckType, MVT::v4i32,
/* 52087*/      OPC_CheckPatternPredicate, 10, // (PPCSubTarget->hasP8Vector())
/* 52089*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XXLNAND), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (xor:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } immAllOnesV:{ *:[v16i8] }), (and:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$XA, v4i32:{ *:[v4i32] }:$XB)) - Complexity = 413
                // Dst: (XXLNAND:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$XA, v4i32:{ *:[v4i32] }:$XB)
/* 52097*/    /*Scope*/ 23, /*->52121*/
/* 52098*/      OPC_RecordChild0, // #0 = $A
/* 52099*/      OPC_MoveChild1,
/* 52100*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 52103*/      OPC_MoveChild0,
/* 52104*/      OPC_CheckImmAllOnesV,
/* 52105*/      OPC_CheckType, MVT::v16i8,
/* 52107*/      OPC_MoveParent,
/* 52108*/      OPC_MoveParent,
/* 52109*/      OPC_CheckType, MVT::v4i32,
/* 52111*/      OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 52113*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XXLNOR), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 0, 
                // Src: (xor:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$A, (bitconvert:{ *:[v4i32] } immAllOnesV:{ *:[v16i8] })) - Complexity = 410
                // Dst: (XXLNOR:{ *:[v4i32] } ?:{ *:[v4i32] }:$A, ?:{ *:[v4i32] }:$A)
/* 52121*/    /*Scope*/ 23, /*->52145*/
/* 52122*/      OPC_MoveChild0,
/* 52123*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 52126*/      OPC_MoveChild0,
/* 52127*/      OPC_CheckImmAllOnesV,
/* 52128*/      OPC_CheckType, MVT::v16i8,
/* 52130*/      OPC_MoveParent,
/* 52131*/      OPC_MoveParent,
/* 52132*/      OPC_RecordChild1, // #0 = $A
/* 52133*/      OPC_CheckType, MVT::v4i32,
/* 52135*/      OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 52137*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XXLNOR), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 0, 
                // Src: (xor:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } immAllOnesV:{ *:[v16i8] }), v4i32:{ *:[v4i32] }:$A) - Complexity = 410
                // Dst: (XXLNOR:{ *:[v4i32] } ?:{ *:[v4i32] }:$A, ?:{ *:[v4i32] }:$A)
/* 52145*/    /*Scope*/ 14, /*->52160*/
/* 52146*/      OPC_RecordChild0, // #0 = $XA
/* 52147*/      OPC_RecordChild1, // #1 = $XB
/* 52148*/      OPC_CheckType, MVT::v4i32,
/* 52150*/      OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 52152*/      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)
/* 52160*/    /*Scope*/ 64|128,1/*192*/, /*->52354*/
/* 52162*/      OPC_MoveChild0,
/* 52163*/      OPC_SwitchOpcode /*4 cases */, 25, TARGET_VAL(ISD::OR),// ->52192
/* 52167*/        OPC_RecordChild0, // #0 = $vA
/* 52168*/        OPC_RecordChild1, // #1 = $vB
/* 52169*/        OPC_MoveParent,
/* 52170*/        OPC_MoveChild1,
/* 52171*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 52174*/        OPC_MoveChild0,
/* 52175*/        OPC_CheckImmAllOnesV,
/* 52176*/        OPC_CheckType, MVT::v16i8,
/* 52178*/        OPC_MoveParent,
/* 52179*/        OPC_MoveParent,
/* 52180*/        OPC_CheckType, MVT::v4i32,
/* 52182*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 52184*/        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] } immAllOnesV:{ *:[v16i8] })) - Complexity = 13
                  // Dst: (VNOR:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/* 52192*/      /*SwitchOpcode*/ 82, TARGET_VAL(ISD::XOR),// ->52277
/* 52195*/        OPC_Scope, 53, /*->52250*/ // 2 children in Scope
/* 52197*/          OPC_RecordChild0, // #0 = $vA
/* 52198*/          OPC_Scope, 24, /*->52224*/ // 2 children in Scope
/* 52200*/            OPC_RecordChild1, // #1 = $vB
/* 52201*/            OPC_MoveParent,
/* 52202*/            OPC_MoveChild1,
/* 52203*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 52206*/            OPC_MoveChild0,
/* 52207*/            OPC_CheckImmAllOnesV,
/* 52208*/            OPC_CheckType, MVT::v16i8,
/* 52210*/            OPC_MoveParent,
/* 52211*/            OPC_MoveParent,
/* 52212*/            OPC_CheckType, MVT::v4i32,
/* 52214*/            OPC_CheckPatternPredicate, 35, // (PPCSubTarget->hasP8Altivec())
/* 52216*/            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] } immAllOnesV:{ *:[v16i8] })) - Complexity = 13
                      // Dst: (VEQV:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/* 52224*/          /*Scope*/ 24, /*->52249*/
/* 52225*/            OPC_MoveChild1,
/* 52226*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 52229*/            OPC_MoveChild0,
/* 52230*/            OPC_CheckImmAllOnesV,
/* 52231*/            OPC_CheckType, MVT::v16i8,
/* 52233*/            OPC_MoveParent,
/* 52234*/            OPC_MoveParent,
/* 52235*/            OPC_MoveParent,
/* 52236*/            OPC_RecordChild1, // #1 = $vB
/* 52237*/            OPC_CheckType, MVT::v4i32,
/* 52239*/            OPC_CheckPatternPredicate, 35, // (PPCSubTarget->hasP8Altivec())
/* 52241*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::VEQV), 0,
                          MVT::v4i32, 2/*#Ops*/, 0, 1, 
                      // Src: (xor:{ *:[v4i32] } (xor:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, (bitconvert:{ *:[v4i32] } immAllOnesV:{ *:[v16i8] })), v4i32:{ *:[v4i32] }:$vB) - Complexity = 13
                      // Dst: (VEQV:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/* 52249*/          0, /*End of Scope*/
/* 52250*/        /*Scope*/ 25, /*->52276*/
/* 52251*/          OPC_MoveChild0,
/* 52252*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 52255*/          OPC_MoveChild0,
/* 52256*/          OPC_CheckImmAllOnesV,
/* 52257*/          OPC_CheckType, MVT::v16i8,
/* 52259*/          OPC_MoveParent,
/* 52260*/          OPC_MoveParent,
/* 52261*/          OPC_RecordChild1, // #0 = $vA
/* 52262*/          OPC_MoveParent,
/* 52263*/          OPC_RecordChild1, // #1 = $vB
/* 52264*/          OPC_CheckType, MVT::v4i32,
/* 52266*/          OPC_CheckPatternPredicate, 35, // (PPCSubTarget->hasP8Altivec())
/* 52268*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::VEQV), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1, 
                    // Src: (xor:{ *:[v4i32] } (xor:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } immAllOnesV:{ *:[v16i8] }), v4i32:{ *:[v4i32] }:$vA), v4i32:{ *:[v4i32] }:$vB) - Complexity = 13
                    // Dst: (VEQV:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/* 52276*/        0, /*End of Scope*/
/* 52277*/      /*SwitchOpcode*/ 25, TARGET_VAL(ISD::AND),// ->52305
/* 52280*/        OPC_RecordChild0, // #0 = $vA
/* 52281*/        OPC_RecordChild1, // #1 = $vB
/* 52282*/        OPC_MoveParent,
/* 52283*/        OPC_MoveChild1,
/* 52284*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 52287*/        OPC_MoveChild0,
/* 52288*/        OPC_CheckImmAllOnesV,
/* 52289*/        OPC_CheckType, MVT::v16i8,
/* 52291*/        OPC_MoveParent,
/* 52292*/        OPC_MoveParent,
/* 52293*/        OPC_CheckType, MVT::v4i32,
/* 52295*/        OPC_CheckPatternPredicate, 35, // (PPCSubTarget->hasP8Altivec())
/* 52297*/        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] } immAllOnesV:{ *:[v16i8] })) - Complexity = 13
                  // Dst: (VNAND:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/* 52305*/      /*SwitchOpcode*/ 45, TARGET_VAL(ISD::BITCAST),// ->52353
/* 52308*/        OPC_MoveChild0,
/* 52309*/        OPC_CheckImmAllOnesV,
/* 52310*/        OPC_CheckType, MVT::v16i8,
/* 52312*/        OPC_MoveParent,
/* 52313*/        OPC_MoveParent,
/* 52314*/        OPC_MoveChild1,
/* 52315*/        OPC_SwitchOpcode /*2 cases */, 15, TARGET_VAL(ISD::OR),// ->52334
/* 52319*/          OPC_RecordChild0, // #0 = $vA
/* 52320*/          OPC_RecordChild1, // #1 = $vB
/* 52321*/          OPC_MoveParent,
/* 52322*/          OPC_CheckType, MVT::v4i32,
/* 52324*/          OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 52326*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::VNOR), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1, 
                    // Src: (xor:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } immAllOnesV:{ *:[v16i8] }), (or:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)) - Complexity = 13
                    // Dst: (VNOR:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/* 52334*/        /*SwitchOpcode*/ 15, TARGET_VAL(ISD::XOR),// ->52352
/* 52337*/          OPC_RecordChild0, // #0 = $vA
/* 52338*/          OPC_RecordChild1, // #1 = $vB
/* 52339*/          OPC_MoveParent,
/* 52340*/          OPC_CheckType, MVT::v4i32,
/* 52342*/          OPC_CheckPatternPredicate, 35, // (PPCSubTarget->hasP8Altivec())
/* 52344*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::VEQV), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1, 
                    // Src: (xor:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } immAllOnesV:{ *:[v16i8] }), (xor:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)) - Complexity = 13
                    // Dst: (VEQV:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/* 52352*/        0, // EndSwitchOpcode
/* 52353*/      0, // EndSwitchOpcode
/* 52354*/    /*Scope*/ 57, /*->52412*/
/* 52355*/      OPC_RecordChild0, // #0 = $vB
/* 52356*/      OPC_MoveChild1,
/* 52357*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 52360*/      OPC_Scope, 24, /*->52386*/ // 2 children in Scope
/* 52362*/        OPC_RecordChild0, // #1 = $vA
/* 52363*/        OPC_MoveChild1,
/* 52364*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 52367*/        OPC_MoveChild0,
/* 52368*/        OPC_CheckImmAllOnesV,
/* 52369*/        OPC_CheckType, MVT::v16i8,
/* 52371*/        OPC_MoveParent,
/* 52372*/        OPC_MoveParent,
/* 52373*/        OPC_MoveParent,
/* 52374*/        OPC_CheckType, MVT::v4i32,
/* 52376*/        OPC_CheckPatternPredicate, 35, // (PPCSubTarget->hasP8Altivec())
/* 52378*/        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] } immAllOnesV:{ *:[v16i8] }))) - Complexity = 13
                  // Dst: (VEQV:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/* 52386*/      /*Scope*/ 24, /*->52411*/
/* 52387*/        OPC_MoveChild0,
/* 52388*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 52391*/        OPC_MoveChild0,
/* 52392*/        OPC_CheckImmAllOnesV,
/* 52393*/        OPC_CheckType, MVT::v16i8,
/* 52395*/        OPC_MoveParent,
/* 52396*/        OPC_MoveParent,
/* 52397*/        OPC_RecordChild1, // #1 = $vA
/* 52398*/        OPC_MoveParent,
/* 52399*/        OPC_CheckType, MVT::v4i32,
/* 52401*/        OPC_CheckPatternPredicate, 35, // (PPCSubTarget->hasP8Altivec())
/* 52403*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::VEQV), 0,
                      MVT::v4i32, 2/*#Ops*/, 1, 0, 
                  // Src: (xor:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vB, (xor:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } immAllOnesV:{ *:[v16i8] }), v4i32:{ *:[v4i32] }:$vA)) - Complexity = 13
                  // Dst: (VEQV:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/* 52411*/      0, /*End of Scope*/
/* 52412*/    /*Scope*/ 35|128,1/*163*/, /*->52577*/
/* 52414*/      OPC_MoveChild0,
/* 52415*/      OPC_SwitchOpcode /*4 cases */, 25, TARGET_VAL(ISD::BITCAST),// ->52444
/* 52419*/        OPC_MoveChild0,
/* 52420*/        OPC_CheckImmAllOnesV,
/* 52421*/        OPC_CheckType, MVT::v16i8,
/* 52423*/        OPC_MoveParent,
/* 52424*/        OPC_MoveParent,
/* 52425*/        OPC_MoveChild1,
/* 52426*/        OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 52429*/        OPC_RecordChild0, // #0 = $vA
/* 52430*/        OPC_RecordChild1, // #1 = $vB
/* 52431*/        OPC_MoveParent,
/* 52432*/        OPC_CheckType, MVT::v4i32,
/* 52434*/        OPC_CheckPatternPredicate, 35, // (PPCSubTarget->hasP8Altivec())
/* 52436*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::VNAND), 0,
                      MVT::v4i32, 2/*#Ops*/, 0, 1, 
                  // Src: (xor:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } immAllOnesV:{ *:[v16i8] }), (and:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)) - Complexity = 13
                  // Dst: (VNAND:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/* 52444*/      /*SwitchOpcode*/ 30, TARGET_VAL(ISD::OR),// ->52477
/* 52447*/        OPC_RecordChild0, // #0 = $FRA
/* 52448*/        OPC_RecordChild1, // #1 = $FRB
/* 52449*/        OPC_MoveParent,
/* 52450*/        OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 52461*/        OPC_CheckType, MVT::v4i1,
/* 52463*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 52465*/        OPC_EmitInteger, MVT::i32, 8, 
/* 52468*/        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] })
/* 52477*/      /*SwitchOpcode*/ 63, TARGET_VAL(ISD::XOR),// ->52543
/* 52480*/        OPC_RecordChild0, // #0 = $FRA
/* 52481*/        OPC_Scope, 29, /*->52512*/ // 2 children in Scope
/* 52483*/          OPC_RecordChild1, // #1 = $FRB
/* 52484*/          OPC_MoveParent,
/* 52485*/          OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 52496*/          OPC_CheckType, MVT::v4i1,
/* 52498*/          OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 52500*/          OPC_EmitInteger, MVT::i32, 9, 
/* 52503*/          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] })
/* 52512*/        /*Scope*/ 29, /*->52542*/
/* 52513*/          OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 52524*/          OPC_MoveParent,
/* 52525*/          OPC_RecordChild1, // #1 = $FRB
/* 52526*/          OPC_CheckType, MVT::v4i1,
/* 52528*/          OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 52530*/          OPC_EmitInteger, MVT::i32, 9, 
/* 52533*/          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] })
/* 52542*/        0, /*End of Scope*/
/* 52543*/      /*SwitchOpcode*/ 30, TARGET_VAL(ISD::AND),// ->52576
/* 52546*/        OPC_RecordChild0, // #0 = $FRA
/* 52547*/        OPC_RecordChild1, // #1 = $FRB
/* 52548*/        OPC_MoveParent,
/* 52549*/        OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 52560*/        OPC_CheckType, MVT::v4i1,
/* 52562*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 52564*/        OPC_EmitInteger, MVT::i32, 14, 
/* 52567*/        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] })
/* 52576*/      0, // EndSwitchOpcode
/* 52577*/    /*Scope*/ 57, /*->52635*/
/* 52578*/      OPC_RecordChild0, // #0 = $FRB
/* 52579*/      OPC_MoveChild1,
/* 52580*/      OPC_SwitchOpcode /*2 cases */, 29, TARGET_VAL(ISD::XOR),// ->52613
/* 52584*/        OPC_RecordChild0, // #1 = $FRA
/* 52585*/        OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 52596*/        OPC_MoveParent,
/* 52597*/        OPC_CheckType, MVT::v4i1,
/* 52599*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 52601*/        OPC_EmitInteger, MVT::i32, 9, 
/* 52604*/        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] })
/* 52613*/      /*SwitchOpcode*/ 18, TARGET_VAL(ISD::BITCAST),// ->52634
/* 52616*/        OPC_MoveChild0,
/* 52617*/        OPC_CheckImmAllOnesV,
/* 52618*/        OPC_CheckType, MVT::v16i8,
/* 52620*/        OPC_MoveParent,
/* 52621*/        OPC_MoveParent,
/* 52622*/        OPC_CheckType, MVT::v4i32,
/* 52624*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 52626*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::VNOR), 0,
                      MVT::v4i32, 2/*#Ops*/, 0, 0, 
                  // Src: (xor:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, (bitconvert:{ *:[v4i32] } immAllOnesV:{ *:[v16i8] })) - Complexity = 10
                  // Dst: (VNOR:{ *:[v4i32] } ?:{ *:[v4i32] }:$vA, ?:{ *:[v4i32] }:$vA)
/* 52634*/      0, // EndSwitchOpcode
/* 52635*/    /*Scope*/ 23, /*->52659*/
/* 52636*/      OPC_MoveChild0,
/* 52637*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 52640*/      OPC_MoveChild0,
/* 52641*/      OPC_CheckImmAllOnesV,
/* 52642*/      OPC_CheckType, MVT::v16i8,
/* 52644*/      OPC_MoveParent,
/* 52645*/      OPC_MoveParent,
/* 52646*/      OPC_RecordChild1, // #0 = $vA
/* 52647*/      OPC_CheckType, MVT::v4i32,
/* 52649*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 52651*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VNOR), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 0, 
                // Src: (xor:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } immAllOnesV:{ *:[v16i8] }), v4i32:{ *:[v4i32] }:$vA) - Complexity = 10
                // Dst: (VNOR:{ *:[v4i32] } ?:{ *:[v4i32] }:$vA, ?:{ *:[v4i32] }:$vA)
/* 52659*/    /*Scope*/ 63, /*->52723*/
/* 52660*/      OPC_RecordChild0, // #0 = $FRA
/* 52661*/      OPC_Scope, 27, /*->52690*/ // 2 children in Scope
/* 52663*/        OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 52674*/        OPC_CheckType, MVT::v4i1,
/* 52676*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 52678*/        OPC_EmitInteger, MVT::i32, 10, 
/* 52681*/        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] })
/* 52690*/      /*Scope*/ 31, /*->52722*/
/* 52691*/        OPC_RecordChild1, // #1 = $vB
/* 52692*/        OPC_SwitchType /*2 cases */, 10, MVT::v4i32,// ->52705
/* 52695*/          OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 52697*/          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)
/* 52705*/        /*SwitchType*/ 14, MVT::v4i1,// ->52721
/* 52707*/          OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 52709*/          OPC_EmitInteger, MVT::i32, 6, 
/* 52712*/          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] })
/* 52721*/        0, // EndSwitchType
/* 52722*/      0, /*End of Scope*/
/* 52723*/    0, /*End of Scope*/
/* 52724*/  /*SwitchOpcode*/ 24|128,5/*664*/, TARGET_VAL(ISD::ADD),// ->53392
/* 52728*/    OPC_Scope, 21|128,1/*149*/, /*->52880*/ // 3 children in Scope
/* 52731*/      OPC_RecordChild0, // #0 = $rA
/* 52732*/      OPC_MoveChild1,
/* 52733*/      OPC_SwitchOpcode /*2 cases */, 19, TARGET_VAL(PPCISD::Lo),// ->52756
/* 52737*/        OPC_RecordChild0, // #1 = $sym
/* 52738*/        OPC_MoveChild0,
/* 52739*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetGlobalAddress),
/* 52742*/        OPC_MoveParent,
/* 52743*/        OPC_CheckChild1Integer, 0, 
/* 52745*/        OPC_MoveParent,
/* 52746*/        OPC_CheckType, MVT::i32,
/* 52748*/        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)
/* 52756*/      /*SwitchOpcode*/ 120, TARGET_VAL(PPCISD::Hi),// ->52879
/* 52759*/        OPC_RecordChild0, // #1 = $g
/* 52760*/        OPC_MoveChild0,
/* 52761*/        OPC_SwitchOpcode /*4 cases */, 26, TARGET_VAL(ISD::TargetGlobalAddress),// ->52791
/* 52765*/          OPC_MoveParent,
/* 52766*/          OPC_CheckChild1Integer, 0, 
/* 52768*/          OPC_MoveParent,
/* 52769*/          OPC_SwitchType /*2 cases */, 8, MVT::i32,// ->52780
/* 52772*/            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)
/* 52780*/          /*SwitchType*/ 8, MVT::i64,// ->52790
/* 52782*/            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)
/* 52790*/          0, // EndSwitchType
/* 52791*/        /*SwitchOpcode*/ 26, TARGET_VAL(ISD::TargetConstantPool),// ->52820
/* 52794*/          OPC_MoveParent,
/* 52795*/          OPC_CheckChild1Integer, 0, 
/* 52797*/          OPC_MoveParent,
/* 52798*/          OPC_SwitchType /*2 cases */, 8, MVT::i32,// ->52809
/* 52801*/            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)
/* 52809*/          /*SwitchType*/ 8, MVT::i64,// ->52819
/* 52811*/            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)
/* 52819*/          0, // EndSwitchType
/* 52820*/        /*SwitchOpcode*/ 26, TARGET_VAL(ISD::TargetJumpTable),// ->52849
/* 52823*/          OPC_MoveParent,
/* 52824*/          OPC_CheckChild1Integer, 0, 
/* 52826*/          OPC_MoveParent,
/* 52827*/          OPC_SwitchType /*2 cases */, 8, MVT::i32,// ->52838
/* 52830*/            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)
/* 52838*/          /*SwitchType*/ 8, MVT::i64,// ->52848
/* 52840*/            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)
/* 52848*/          0, // EndSwitchType
/* 52849*/        /*SwitchOpcode*/ 26, TARGET_VAL(ISD::TargetBlockAddress),// ->52878
/* 52852*/          OPC_MoveParent,
/* 52853*/          OPC_CheckChild1Integer, 0, 
/* 52855*/          OPC_MoveParent,
/* 52856*/          OPC_SwitchType /*2 cases */, 8, MVT::i32,// ->52867
/* 52859*/            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)
/* 52867*/          /*SwitchType*/ 8, MVT::i64,// ->52877
/* 52869*/            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)
/* 52877*/          0, // EndSwitchType
/* 52878*/        0, // EndSwitchOpcode
/* 52879*/      0, // EndSwitchOpcode
/* 52880*/    /*Scope*/ 64|128,1/*192*/, /*->53074*/
/* 52882*/      OPC_MoveChild0,
/* 52883*/      OPC_SwitchOpcode /*3 cases */, 20, TARGET_VAL(PPCISD::Lo),// ->52907
/* 52887*/        OPC_RecordChild0, // #0 = $sym
/* 52888*/        OPC_MoveChild0,
/* 52889*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetGlobalAddress),
/* 52892*/        OPC_MoveParent,
/* 52893*/        OPC_CheckChild1Integer, 0, 
/* 52895*/        OPC_MoveParent,
/* 52896*/        OPC_RecordChild1, // #1 = $rA
/* 52897*/        OPC_CheckType, MVT::i32,
/* 52899*/        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)
/* 52907*/      /*SwitchOpcode*/ 124, TARGET_VAL(PPCISD::Hi),// ->53034
/* 52910*/        OPC_RecordChild0, // #0 = $g
/* 52911*/        OPC_MoveChild0,
/* 52912*/        OPC_SwitchOpcode /*4 cases */, 27, TARGET_VAL(ISD::TargetGlobalAddress),// ->52943
/* 52916*/          OPC_MoveParent,
/* 52917*/          OPC_CheckChild1Integer, 0, 
/* 52919*/          OPC_MoveParent,
/* 52920*/          OPC_RecordChild1, // #1 = $in
/* 52921*/          OPC_SwitchType /*2 cases */, 8, MVT::i32,// ->52932
/* 52924*/            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)
/* 52932*/          /*SwitchType*/ 8, MVT::i64,// ->52942
/* 52934*/            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)
/* 52942*/          0, // EndSwitchType
/* 52943*/        /*SwitchOpcode*/ 27, TARGET_VAL(ISD::TargetConstantPool),// ->52973
/* 52946*/          OPC_MoveParent,
/* 52947*/          OPC_CheckChild1Integer, 0, 
/* 52949*/          OPC_MoveParent,
/* 52950*/          OPC_RecordChild1, // #1 = $in
/* 52951*/          OPC_SwitchType /*2 cases */, 8, MVT::i32,// ->52962
/* 52954*/            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)
/* 52962*/          /*SwitchType*/ 8, MVT::i64,// ->52972
/* 52964*/            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)
/* 52972*/          0, // EndSwitchType
/* 52973*/        /*SwitchOpcode*/ 27, TARGET_VAL(ISD::TargetJumpTable),// ->53003
/* 52976*/          OPC_MoveParent,
/* 52977*/          OPC_CheckChild1Integer, 0, 
/* 52979*/          OPC_MoveParent,
/* 52980*/          OPC_RecordChild1, // #1 = $in
/* 52981*/          OPC_SwitchType /*2 cases */, 8, MVT::i32,// ->52992
/* 52984*/            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)
/* 52992*/          /*SwitchType*/ 8, MVT::i64,// ->53002
/* 52994*/            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)
/* 53002*/          0, // EndSwitchType
/* 53003*/        /*SwitchOpcode*/ 27, TARGET_VAL(ISD::TargetBlockAddress),// ->53033
/* 53006*/          OPC_MoveParent,
/* 53007*/          OPC_CheckChild1Integer, 0, 
/* 53009*/          OPC_MoveParent,
/* 53010*/          OPC_RecordChild1, // #1 = $in
/* 53011*/          OPC_SwitchType /*2 cases */, 8, MVT::i32,// ->53022
/* 53014*/            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)
/* 53022*/          /*SwitchType*/ 8, MVT::i64,// ->53032
/* 53024*/            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)
/* 53032*/          0, // EndSwitchType
/* 53033*/        0, // EndSwitchOpcode
/* 53034*/      /*SwitchOpcode*/ 36, TARGET_VAL(ISD::MUL),// ->53073
/* 53037*/        OPC_RecordChild0, // #0 = $RA
/* 53038*/        OPC_RecordChild1, // #1 = $RB
/* 53039*/        OPC_CheckPredicate, 18, // Predicate_mul_without_simm16
/* 53041*/        OPC_MoveParent,
/* 53042*/        OPC_RecordChild1, // #2 = $RC
/* 53043*/        OPC_CheckPredicate, 18, // Predicate_add_without_simm16
/* 53045*/        OPC_SwitchType /*2 cases */, 11, MVT::i32,// ->53059
/* 53048*/          OPC_CheckPatternPredicate, 39, // (PPCSubTarget->isISA3_0())
/* 53050*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::MADDLD), 0,
                        MVT::i32, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (add:{ *:[i32] } (mul:{ *:[i32] } i32:{ *:[i32] }:$RA, i32:{ *:[i32] }:$RB)<<P:Predicate_mul_without_simm16>>, i32:{ *:[i32] }:$RC)<<P:Predicate_add_without_simm16>> - Complexity = 8
                    // Dst: (MADDLD:{ *:[i32] } i32:{ *:[i32] }:$RA, i32:{ *:[i32] }:$RB, i32:{ *:[i32] }:$RC)
/* 53059*/        /*SwitchType*/ 11, MVT::i64,// ->53072
/* 53061*/          OPC_CheckPatternPredicate, 39, // (PPCSubTarget->isISA3_0())
/* 53063*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::MADDLD8), 0,
                        MVT::i64, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (add:{ *:[i64] } (mul:{ *:[i64] } i64:{ *:[i64] }:$RA, i64:{ *:[i64] }:$RB)<<P:Predicate_mul_without_simm16>>, i64:{ *:[i64] }:$RC)<<P:Predicate_add_without_simm16>> - Complexity = 8
                    // Dst: (MADDLD8:{ *:[i64] } i64:{ *:[i64] }:$RA, i64:{ *:[i64] }:$RB, i64:{ *:[i64] }:$RC)
/* 53072*/        0, // EndSwitchType
/* 53073*/      0, // EndSwitchOpcode
/* 53074*/    /*Scope*/ 59|128,2/*315*/, /*->53391*/
/* 53076*/      OPC_RecordChild0, // #0 = $RC
/* 53077*/      OPC_Scope, 39, /*->53118*/ // 4 children in Scope
/* 53079*/        OPC_MoveChild1,
/* 53080*/        OPC_CheckOpcode, TARGET_VAL(ISD::MUL),
/* 53083*/        OPC_RecordChild0, // #1 = $RA
/* 53084*/        OPC_RecordChild1, // #2 = $RB
/* 53085*/        OPC_CheckPredicate, 18, // Predicate_mul_without_simm16
/* 53087*/        OPC_MoveParent,
/* 53088*/        OPC_CheckPredicate, 18, // Predicate_add_without_simm16
/* 53090*/        OPC_SwitchType /*2 cases */, 11, MVT::i32,// ->53104
/* 53093*/          OPC_CheckPatternPredicate, 39, // (PPCSubTarget->isISA3_0())
/* 53095*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::MADDLD), 0,
                        MVT::i32, 3/*#Ops*/, 1, 2, 0, 
                    // Src: (add:{ *:[i32] } i32:{ *:[i32] }:$RC, (mul:{ *:[i32] } i32:{ *:[i32] }:$RA, i32:{ *:[i32] }:$RB)<<P:Predicate_mul_without_simm16>>)<<P:Predicate_add_without_simm16>> - Complexity = 8
                    // Dst: (MADDLD:{ *:[i32] } i32:{ *:[i32] }:$RA, i32:{ *:[i32] }:$RB, i32:{ *:[i32] }:$RC)
/* 53104*/        /*SwitchType*/ 11, MVT::i64,// ->53117
/* 53106*/          OPC_CheckPatternPredicate, 39, // (PPCSubTarget->isISA3_0())
/* 53108*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::MADDLD8), 0,
                        MVT::i64, 3/*#Ops*/, 1, 2, 0, 
                    // Src: (add:{ *:[i64] } i64:{ *:[i64] }:$RC, (mul:{ *:[i64] } i64:{ *:[i64] }:$RA, i64:{ *:[i64] }:$RB)<<P:Predicate_mul_without_simm16>>)<<P:Predicate_add_without_simm16>> - Complexity = 8
                    // Dst: (MADDLD8:{ *:[i64] } i64:{ *:[i64] }:$RA, i64:{ *:[i64] }:$RB, i64:{ *:[i64] }:$RC)
/* 53117*/        0, // EndSwitchType
/* 53118*/      /*Scope*/ 105, /*->53224*/
/* 53119*/        OPC_RecordChild1, // #1 = $imm
/* 53120*/        OPC_MoveChild1,
/* 53121*/        OPC_SwitchOpcode /*2 cases */, 72, TARGET_VAL(ISD::Constant),// ->53197
/* 53125*/          OPC_Scope, 15, /*->53142*/ // 4 children in Scope
/* 53127*/            OPC_CheckPredicate, 13, // Predicate_imm32SExt16
/* 53129*/            OPC_MoveParent,
/* 53130*/            OPC_CheckType, MVT::i32,
/* 53132*/            OPC_EmitConvertToTarget, 1,
/* 53134*/            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)
/* 53142*/          /*Scope*/ 18, /*->53161*/
/* 53143*/            OPC_CheckPredicate, 19, // Predicate_imm16ShiftedSExt
/* 53145*/            OPC_MoveParent,
/* 53146*/            OPC_CheckType, MVT::i32,
/* 53148*/            OPC_EmitConvertToTarget, 1,
/* 53150*/            OPC_EmitNodeXForm, 0, 2, // HI16
/* 53153*/            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))
/* 53161*/          /*Scope*/ 15, /*->53177*/
/* 53162*/            OPC_CheckPredicate, 14, // Predicate_imm64SExt16
/* 53164*/            OPC_MoveParent,
/* 53165*/            OPC_CheckType, MVT::i64,
/* 53167*/            OPC_EmitConvertToTarget, 1,
/* 53169*/            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)
/* 53177*/          /*Scope*/ 18, /*->53196*/
/* 53178*/            OPC_CheckPredicate, 19, // Predicate_imm16ShiftedSExt
/* 53180*/            OPC_MoveParent,
/* 53181*/            OPC_CheckType, MVT::i64,
/* 53183*/            OPC_EmitConvertToTarget, 1,
/* 53185*/            OPC_EmitNodeXForm, 0, 2, // HI16
/* 53188*/            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))
/* 53196*/          0, /*End of Scope*/
/* 53197*/        /*SwitchOpcode*/ 23, TARGET_VAL(ISD::TargetGlobalTLSAddress),// ->53223
/* 53200*/          OPC_MoveParent,
/* 53201*/          OPC_SwitchType /*2 cases */, 8, MVT::i32,// ->53212
/* 53204*/            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)
/* 53212*/          /*SwitchType*/ 8, MVT::i64,// ->53222
/* 53214*/            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)
/* 53222*/          0, // EndSwitchType
/* 53223*/        0, // EndSwitchOpcode
/* 53224*/      /*Scope*/ 28, /*->53253*/
/* 53225*/        OPC_MoveChild0,
/* 53226*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetGlobalTLSAddress),
/* 53229*/        OPC_MoveParent,
/* 53230*/        OPC_RecordChild1, // #1 = $rA
/* 53231*/        OPC_SwitchType /*2 cases */, 8, MVT::i32,// ->53242
/* 53234*/          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)
/* 53242*/        /*SwitchType*/ 8, MVT::i64,// ->53252
/* 53244*/          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)
/* 53252*/        0, // EndSwitchType
/* 53253*/      /*Scope*/ 7|128,1/*135*/, /*->53390*/
/* 53255*/        OPC_RecordChild1, // #1 = $imm
/* 53256*/        OPC_Scope, 33, /*->53291*/ // 9 children in Scope
/* 53258*/          OPC_MoveChild1,
/* 53259*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 53262*/          OPC_MoveParent,
/* 53263*/          OPC_CheckType, MVT::i32,
/* 53265*/          OPC_EmitConvertToTarget, 1,
/* 53267*/          OPC_EmitNodeXForm, 1, 2, // LO16
/* 53270*/          OPC_EmitNode1, TARGET_VAL(PPC::ADDI), 0,
                        MVT::i32, 2/*#Ops*/, 0, 3,  // Results = #4
/* 53278*/          OPC_EmitConvertToTarget, 1,
/* 53280*/          OPC_EmitNodeXForm, 2, 5, // HA16
/* 53283*/          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))
/* 53291*/        /*Scope*/ 10, /*->53302*/
/* 53292*/          OPC_CheckType, MVT::i32,
/* 53294*/          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)
/* 53302*/        /*Scope*/ 10, /*->53313*/
/* 53303*/          OPC_CheckType, MVT::i64,
/* 53305*/          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)
/* 53313*/        /*Scope*/ 10, /*->53324*/
/* 53314*/          OPC_CheckType, MVT::i1,
/* 53316*/          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)
/* 53324*/        /*Scope*/ 12, /*->53337*/
/* 53325*/          OPC_CheckType, MVT::v16i8,
/* 53327*/          OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 53329*/          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)
/* 53337*/        /*Scope*/ 12, /*->53350*/
/* 53338*/          OPC_CheckType, MVT::v8i16,
/* 53340*/          OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 53342*/          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)
/* 53350*/        /*Scope*/ 12, /*->53363*/
/* 53351*/          OPC_CheckType, MVT::v4i32,
/* 53353*/          OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 53355*/          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)
/* 53363*/        /*Scope*/ 12, /*->53376*/
/* 53364*/          OPC_CheckType, MVT::v2i64,
/* 53366*/          OPC_CheckPatternPredicate, 35, // (PPCSubTarget->hasP8Altivec())
/* 53368*/          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)
/* 53376*/        /*Scope*/ 12, /*->53389*/
/* 53377*/          OPC_CheckType, MVT::v1i128,
/* 53379*/          OPC_CheckPatternPredicate, 35, // (PPCSubTarget->hasP8Altivec())
/* 53381*/          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)
/* 53389*/        0, /*End of Scope*/
/* 53390*/      0, /*End of Scope*/
/* 53391*/    0, /*End of Scope*/
/* 53392*/  /*SwitchOpcode*/ 23|128,11/*1431*/, TARGET_VAL(ISD::LOAD),// ->54827
/* 53396*/    OPC_RecordMemRef,
/* 53397*/    OPC_RecordNode, // #0 = 'ld' chained node
/* 53398*/    OPC_RecordChild1, // #1 = $src
/* 53399*/    OPC_CheckPredicate, 20, // Predicate_unindexedload
/* 53401*/    OPC_Scope, 18, /*->53421*/ // 23 children in Scope
/* 53403*/      OPC_CheckPredicate, 21, // Predicate_zextload
/* 53405*/      OPC_CheckPredicate, 2, // Predicate_zextloadi8
/* 53407*/      OPC_CheckType, MVT::i32,
/* 53409*/      OPC_CheckComplexPat, /*CP*/5, /*#*/1, // SelectAddrImm:$src #2 #3
/* 53412*/      OPC_EmitMergeInputChains1_0,
/* 53413*/      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)
/* 53421*/    /*Scope*/ 18, /*->53440*/
/* 53422*/      OPC_CheckPredicate, 22, // Predicate_sextload
/* 53424*/      OPC_CheckPredicate, 3, // Predicate_sextloadi16
/* 53426*/      OPC_CheckType, MVT::i32,
/* 53428*/      OPC_CheckComplexPat, /*CP*/5, /*#*/1, // SelectAddrImm:$src #2 #3
/* 53431*/      OPC_EmitMergeInputChains1_0,
/* 53432*/      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)
/* 53440*/    /*Scope*/ 18, /*->53459*/
/* 53441*/      OPC_CheckPredicate, 21, // Predicate_zextload
/* 53443*/      OPC_CheckPredicate, 3, // Predicate_zextloadi16
/* 53445*/      OPC_CheckType, MVT::i32,
/* 53447*/      OPC_CheckComplexPat, /*CP*/5, /*#*/1, // SelectAddrImm:$src #2 #3
/* 53450*/      OPC_EmitMergeInputChains1_0,
/* 53451*/      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)
/* 53459*/    /*Scope*/ 16, /*->53476*/
/* 53460*/      OPC_CheckPredicate, 23, // Predicate_load
/* 53462*/      OPC_CheckType, MVT::i32,
/* 53464*/      OPC_CheckComplexPat, /*CP*/5, /*#*/1, // SelectAddrImm:$src #2 #3
/* 53467*/      OPC_EmitMergeInputChains1_0,
/* 53468*/      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)
/* 53476*/    /*Scope*/ 18, /*->53495*/
/* 53477*/      OPC_CheckPredicate, 21, // Predicate_zextload
/* 53479*/      OPC_CheckPredicate, 2, // Predicate_zextloadi8
/* 53481*/      OPC_CheckType, MVT::i32,
/* 53483*/      OPC_CheckComplexPat, /*CP*/6, /*#*/1, // SelectAddrIdx:$src #2 #3
/* 53486*/      OPC_EmitMergeInputChains1_0,
/* 53487*/      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)
/* 53495*/    /*Scope*/ 18, /*->53514*/
/* 53496*/      OPC_CheckPredicate, 22, // Predicate_sextload
/* 53498*/      OPC_CheckPredicate, 3, // Predicate_sextloadi16
/* 53500*/      OPC_CheckType, MVT::i32,
/* 53502*/      OPC_CheckComplexPat, /*CP*/6, /*#*/1, // SelectAddrIdx:$src #2 #3
/* 53505*/      OPC_EmitMergeInputChains1_0,
/* 53506*/      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)
/* 53514*/    /*Scope*/ 18, /*->53533*/
/* 53515*/      OPC_CheckPredicate, 21, // Predicate_zextload
/* 53517*/      OPC_CheckPredicate, 3, // Predicate_zextloadi16
/* 53519*/      OPC_CheckType, MVT::i32,
/* 53521*/      OPC_CheckComplexPat, /*CP*/6, /*#*/1, // SelectAddrIdx:$src #2 #3
/* 53524*/      OPC_EmitMergeInputChains1_0,
/* 53525*/      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)
/* 53533*/    /*Scope*/ 16, /*->53550*/
/* 53534*/      OPC_CheckPredicate, 23, // Predicate_load
/* 53536*/      OPC_CheckType, MVT::i32,
/* 53538*/      OPC_CheckComplexPat, /*CP*/6, /*#*/1, // SelectAddrIdx:$src #2 #3
/* 53541*/      OPC_EmitMergeInputChains1_0,
/* 53542*/      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)
/* 53550*/    /*Scope*/ 34, /*->53585*/
/* 53551*/      OPC_CheckPredicate, 21, // Predicate_zextload
/* 53553*/      OPC_CheckPredicate, 24, // Predicate_zextloadi1
/* 53555*/      OPC_CheckType, MVT::i32,
/* 53557*/      OPC_Scope, 12, /*->53571*/ // 2 children in Scope
/* 53559*/        OPC_CheckComplexPat, /*CP*/5, /*#*/1, // SelectAddrImm:$src #2 #3
/* 53562*/        OPC_EmitMergeInputChains1_0,
/* 53563*/        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)
/* 53571*/      /*Scope*/ 12, /*->53584*/
/* 53572*/        OPC_CheckComplexPat, /*CP*/6, /*#*/1, // SelectAddrIdx:$src #2 #3
/* 53575*/        OPC_EmitMergeInputChains1_0,
/* 53576*/        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)
/* 53584*/      0, /*End of Scope*/
/* 53585*/    /*Scope*/ 99, /*->53685*/
/* 53586*/      OPC_CheckPredicate, 25, // Predicate_extload
/* 53588*/      OPC_CheckType, MVT::i32,
/* 53590*/      OPC_Scope, 30, /*->53622*/ // 3 children in Scope
/* 53592*/        OPC_CheckPredicate, 24, // Predicate_extloadi1
/* 53594*/        OPC_Scope, 12, /*->53608*/ // 2 children in Scope
/* 53596*/          OPC_CheckComplexPat, /*CP*/5, /*#*/1, // SelectAddrImm:$src #2 #3
/* 53599*/          OPC_EmitMergeInputChains1_0,
/* 53600*/          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)
/* 53608*/        /*Scope*/ 12, /*->53621*/
/* 53609*/          OPC_CheckComplexPat, /*CP*/6, /*#*/1, // SelectAddrIdx:$src #2 #3
/* 53612*/          OPC_EmitMergeInputChains1_0,
/* 53613*/          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)
/* 53621*/        0, /*End of Scope*/
/* 53622*/      /*Scope*/ 30, /*->53653*/
/* 53623*/        OPC_CheckPredicate, 2, // Predicate_extloadi8
/* 53625*/        OPC_Scope, 12, /*->53639*/ // 2 children in Scope
/* 53627*/          OPC_CheckComplexPat, /*CP*/5, /*#*/1, // SelectAddrImm:$src #2 #3
/* 53630*/          OPC_EmitMergeInputChains1_0,
/* 53631*/          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)
/* 53639*/        /*Scope*/ 12, /*->53652*/
/* 53640*/          OPC_CheckComplexPat, /*CP*/6, /*#*/1, // SelectAddrIdx:$src #2 #3
/* 53643*/          OPC_EmitMergeInputChains1_0,
/* 53644*/          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)
/* 53652*/        0, /*End of Scope*/
/* 53653*/      /*Scope*/ 30, /*->53684*/
/* 53654*/        OPC_CheckPredicate, 3, // Predicate_extloadi16
/* 53656*/        OPC_Scope, 12, /*->53670*/ // 2 children in Scope
/* 53658*/          OPC_CheckComplexPat, /*CP*/5, /*#*/1, // SelectAddrImm:$src #2 #3
/* 53661*/          OPC_EmitMergeInputChains1_0,
/* 53662*/          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)
/* 53670*/        /*Scope*/ 12, /*->53683*/
/* 53671*/          OPC_CheckComplexPat, /*CP*/6, /*#*/1, // SelectAddrIdx:$src #2 #3
/* 53674*/          OPC_EmitMergeInputChains1_0,
/* 53675*/          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)
/* 53683*/        0, /*End of Scope*/
/* 53684*/      0, /*End of Scope*/
/* 53685*/    /*Scope*/ 68, /*->53754*/
/* 53686*/      OPC_CheckPredicate, 22, // Predicate_sextload
/* 53688*/      OPC_CheckType, MVT::i64,
/* 53690*/      OPC_Scope, 14, /*->53706*/ // 4 children in Scope
/* 53692*/        OPC_CheckPredicate, 3, // Predicate_sextloadi16
/* 53694*/        OPC_CheckComplexPat, /*CP*/5, /*#*/1, // SelectAddrImm:$src #2 #3
/* 53697*/        OPC_EmitMergeInputChains1_0,
/* 53698*/        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)
/* 53706*/      /*Scope*/ 16, /*->53723*/
/* 53707*/        OPC_CheckPredicate, 8, // Predicate_sextloadi32
/* 53709*/        OPC_CheckPredicate, 26, // Predicate_aligned4sextloadi32
/* 53711*/        OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectAddrImmX4:$src #2 #3
/* 53714*/        OPC_EmitMergeInputChains1_0,
/* 53715*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::LWA), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 2/*#Ops*/, 2, 3, 
                  // Src: (ld:{ *:[i64] } iaddrX4:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi32>><<P:Predicate_aligned4sextloadi32>> - Complexity = 13
                  // Dst: (LWA:{ *:[i64] } iaddrX4:{ *:[iPTR] }:$src)
/* 53723*/      /*Scope*/ 14, /*->53738*/
/* 53724*/        OPC_CheckPredicate, 3, // Predicate_sextloadi16
/* 53726*/        OPC_CheckComplexPat, /*CP*/6, /*#*/1, // SelectAddrIdx:$src #2 #3
/* 53729*/        OPC_EmitMergeInputChains1_0,
/* 53730*/        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)
/* 53738*/      /*Scope*/ 14, /*->53753*/
/* 53739*/        OPC_CheckPredicate, 8, // Predicate_sextloadi32
/* 53741*/        OPC_CheckComplexPat, /*CP*/2, /*#*/1, // SelectAddrIdxX4:$src #2 #3
/* 53744*/        OPC_EmitMergeInputChains1_0,
/* 53745*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::LWAX), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 2/*#Ops*/, 2, 3, 
                  // Src: (ld:{ *:[i64] } xaddrX4:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi32>> - Complexity = 13
                  // Dst: (LWAX:{ *:[i64] } xaddrX4:{ *:[iPTR] }:$src)
/* 53753*/      0, /*End of Scope*/
/* 53754*/    /*Scope*/ 96, /*->53851*/
/* 53755*/      OPC_CheckPredicate, 21, // Predicate_zextload
/* 53757*/      OPC_CheckType, MVT::i64,
/* 53759*/      OPC_Scope, 14, /*->53775*/ // 6 children in Scope
/* 53761*/        OPC_CheckPredicate, 2, // Predicate_zextloadi8
/* 53763*/        OPC_CheckComplexPat, /*CP*/5, /*#*/1, // SelectAddrImm:$src #2 #3
/* 53766*/        OPC_EmitMergeInputChains1_0,
/* 53767*/        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)
/* 53775*/      /*Scope*/ 14, /*->53790*/
/* 53776*/        OPC_CheckPredicate, 3, // Predicate_zextloadi16
/* 53778*/        OPC_CheckComplexPat, /*CP*/5, /*#*/1, // SelectAddrImm:$src #2 #3
/* 53781*/        OPC_EmitMergeInputChains1_0,
/* 53782*/        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)
/* 53790*/      /*Scope*/ 14, /*->53805*/
/* 53791*/        OPC_CheckPredicate, 8, // Predicate_zextloadi32
/* 53793*/        OPC_CheckComplexPat, /*CP*/5, /*#*/1, // SelectAddrImm:$src #2 #3
/* 53796*/        OPC_EmitMergeInputChains1_0,
/* 53797*/        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)
/* 53805*/      /*Scope*/ 14, /*->53820*/
/* 53806*/        OPC_CheckPredicate, 2, // Predicate_zextloadi8
/* 53808*/        OPC_CheckComplexPat, /*CP*/6, /*#*/1, // SelectAddrIdx:$src #2 #3
/* 53811*/        OPC_EmitMergeInputChains1_0,
/* 53812*/        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)
/* 53820*/      /*Scope*/ 14, /*->53835*/
/* 53821*/        OPC_CheckPredicate, 3, // Predicate_zextloadi16
/* 53823*/        OPC_CheckComplexPat, /*CP*/6, /*#*/1, // SelectAddrIdx:$src #2 #3
/* 53826*/        OPC_EmitMergeInputChains1_0,
/* 53827*/        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)
/* 53835*/      /*Scope*/ 14, /*->53850*/
/* 53836*/        OPC_CheckPredicate, 8, // Predicate_zextloadi32
/* 53838*/        OPC_CheckComplexPat, /*CP*/6, /*#*/1, // SelectAddrIdx:$src #2 #3
/* 53841*/        OPC_EmitMergeInputChains1_0,
/* 53842*/        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)
/* 53850*/      0, /*End of Scope*/
/* 53851*/    /*Scope*/ 34, /*->53886*/
/* 53852*/      OPC_CheckPredicate, 23, // Predicate_load
/* 53854*/      OPC_CheckType, MVT::i64,
/* 53856*/      OPC_Scope, 14, /*->53872*/ // 2 children in Scope
/* 53858*/        OPC_CheckPredicate, 26, // Predicate_aligned4load
/* 53860*/        OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectAddrImmX4:$src #2 #3
/* 53863*/        OPC_EmitMergeInputChains1_0,
/* 53864*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::LD), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 2/*#Ops*/, 2, 3, 
                  // Src: (ld:{ *:[i64] } iaddrX4:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_aligned4load>> - Complexity = 13
                  // Dst: (LD:{ *:[i64] } iaddrX4:{ *:[iPTR] }:$src)
/* 53872*/      /*Scope*/ 12, /*->53885*/
/* 53873*/        OPC_CheckComplexPat, /*CP*/2, /*#*/1, // SelectAddrIdxX4:$src #2 #3
/* 53876*/        OPC_EmitMergeInputChains1_0,
/* 53877*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::LDX), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 2/*#Ops*/, 2, 3, 
                  // Src: (ld:{ *:[i64] } xaddrX4:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 13
                  // Dst: (LDX:{ *:[i64] } xaddrX4:{ *:[iPTR] }:$src)
/* 53885*/      0, /*End of Scope*/
/* 53886*/    /*Scope*/ 34, /*->53921*/
/* 53887*/      OPC_CheckPredicate, 21, // Predicate_zextload
/* 53889*/      OPC_CheckPredicate, 24, // Predicate_zextloadi1
/* 53891*/      OPC_CheckType, MVT::i64,
/* 53893*/      OPC_Scope, 12, /*->53907*/ // 2 children in Scope
/* 53895*/        OPC_CheckComplexPat, /*CP*/5, /*#*/1, // SelectAddrImm:$src #2 #3
/* 53898*/        OPC_EmitMergeInputChains1_0,
/* 53899*/        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)
/* 53907*/      /*Scope*/ 12, /*->53920*/
/* 53908*/        OPC_CheckComplexPat, /*CP*/6, /*#*/1, // SelectAddrIdx:$src #2 #3
/* 53911*/        OPC_EmitMergeInputChains1_0,
/* 53912*/        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)
/* 53920*/      0, /*End of Scope*/
/* 53921*/    /*Scope*/ 2|128,1/*130*/, /*->54053*/
/* 53923*/      OPC_CheckPredicate, 25, // Predicate_extload
/* 53925*/      OPC_CheckType, MVT::i64,
/* 53927*/      OPC_Scope, 30, /*->53959*/ // 4 children in Scope
/* 53929*/        OPC_CheckPredicate, 24, // Predicate_extloadi1
/* 53931*/        OPC_Scope, 12, /*->53945*/ // 2 children in Scope
/* 53933*/          OPC_CheckComplexPat, /*CP*/5, /*#*/1, // SelectAddrImm:$src #2 #3
/* 53936*/          OPC_EmitMergeInputChains1_0,
/* 53937*/          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)
/* 53945*/        /*Scope*/ 12, /*->53958*/
/* 53946*/          OPC_CheckComplexPat, /*CP*/6, /*#*/1, // SelectAddrIdx:$src #2 #3
/* 53949*/          OPC_EmitMergeInputChains1_0,
/* 53950*/          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)
/* 53958*/        0, /*End of Scope*/
/* 53959*/      /*Scope*/ 30, /*->53990*/
/* 53960*/        OPC_CheckPredicate, 2, // Predicate_extloadi8
/* 53962*/        OPC_Scope, 12, /*->53976*/ // 2 children in Scope
/* 53964*/          OPC_CheckComplexPat, /*CP*/5, /*#*/1, // SelectAddrImm:$src #2 #3
/* 53967*/          OPC_EmitMergeInputChains1_0,
/* 53968*/          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)
/* 53976*/        /*Scope*/ 12, /*->53989*/
/* 53977*/          OPC_CheckComplexPat, /*CP*/6, /*#*/1, // SelectAddrIdx:$src #2 #3
/* 53980*/          OPC_EmitMergeInputChains1_0,
/* 53981*/          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)
/* 53989*/        0, /*End of Scope*/
/* 53990*/      /*Scope*/ 30, /*->54021*/
/* 53991*/        OPC_CheckPredicate, 3, // Predicate_extloadi16
/* 53993*/        OPC_Scope, 12, /*->54007*/ // 2 children in Scope
/* 53995*/          OPC_CheckComplexPat, /*CP*/5, /*#*/1, // SelectAddrImm:$src #2 #3
/* 53998*/          OPC_EmitMergeInputChains1_0,
/* 53999*/          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)
/* 54007*/        /*Scope*/ 12, /*->54020*/
/* 54008*/          OPC_CheckComplexPat, /*CP*/6, /*#*/1, // SelectAddrIdx:$src #2 #3
/* 54011*/          OPC_EmitMergeInputChains1_0,
/* 54012*/          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)
/* 54020*/        0, /*End of Scope*/
/* 54021*/      /*Scope*/ 30, /*->54052*/
/* 54022*/        OPC_CheckPredicate, 8, // Predicate_extloadi32
/* 54024*/        OPC_Scope, 12, /*->54038*/ // 2 children in Scope
/* 54026*/          OPC_CheckComplexPat, /*CP*/5, /*#*/1, // SelectAddrImm:$src #2 #3
/* 54029*/          OPC_EmitMergeInputChains1_0,
/* 54030*/          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)
/* 54038*/        /*Scope*/ 12, /*->54051*/
/* 54039*/          OPC_CheckComplexPat, /*CP*/6, /*#*/1, // SelectAddrIdx:$src #2 #3
/* 54042*/          OPC_EmitMergeInputChains1_0,
/* 54043*/          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)
/* 54051*/        0, /*End of Scope*/
/* 54052*/      0, /*End of Scope*/
/* 54053*/    /*Scope*/ 20, /*->54074*/
/* 54054*/      OPC_CheckPredicate, 22, // Predicate_sextload
/* 54056*/      OPC_CheckPredicate, 8, // Predicate_sextloadi32
/* 54058*/      OPC_CheckPredicate, 27, // Predicate_unaligned4sextloadi32
/* 54060*/      OPC_CheckType, MVT::i64,
/* 54062*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/* 54065*/      OPC_EmitMergeInputChains1_0,
/* 54066*/      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)
/* 54074*/    /*Scope*/ 20|128,1/*148*/, /*->54224*/
/* 54076*/      OPC_CheckPredicate, 23, // Predicate_load
/* 54078*/      OPC_SwitchType /*4 cases */, 14, MVT::i64,// ->54095
/* 54081*/        OPC_CheckPredicate, 27, // Predicate_unaligned4load
/* 54083*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/* 54086*/        OPC_EmitMergeInputChains1_0,
/* 54087*/        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)
/* 54095*/      /*SwitchType*/ 32, MVT::f32,// ->54129
/* 54097*/        OPC_Scope, 14, /*->54113*/ // 2 children in Scope
/* 54099*/          OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/* 54101*/          OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectAddrImmX4:$src #2 #3
/* 54104*/          OPC_EmitMergeInputChains1_0,
/* 54105*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::DFLOADf32), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, 2/*#Ops*/, 2, 3, 
                    // Src: (ld:{ *:[f32] } iaddrX4:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 413
                    // Dst: (DFLOADf32:{ *:[f32] } iaddrX4:{ *:[iPTR] }:$src)
/* 54113*/        /*Scope*/ 14, /*->54128*/
/* 54114*/          OPC_CheckPatternPredicate, 10, // (PPCSubTarget->hasP8Vector())
/* 54116*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/* 54119*/          OPC_EmitMergeInputChains1_0,
/* 54120*/          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)
/* 54128*/        0, /*End of Scope*/
/* 54129*/      /*SwitchType*/ 32, MVT::f64,// ->54163
/* 54131*/        OPC_Scope, 14, /*->54147*/ // 2 children in Scope
/* 54133*/          OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/* 54135*/          OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectAddrImmX4:$src #2 #3
/* 54138*/          OPC_EmitMergeInputChains1_0,
/* 54139*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::DFLOADf64), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, 2/*#Ops*/, 2, 3, 
                    // Src: (ld:{ *:[f64] } iaddrX4:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 413
                    // Dst: (DFLOADf64:{ *:[f64] } iaddrX4:{ *:[iPTR] }:$src)
/* 54147*/        /*Scope*/ 14, /*->54162*/
/* 54148*/          OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 54150*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/* 54153*/          OPC_EmitMergeInputChains1_0,
/* 54154*/          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)
/* 54162*/        0, /*End of Scope*/
/* 54163*/      /*SwitchType*/ 58, MVT::f128,// ->54223
/* 54165*/        OPC_Scope, 27, /*->54194*/ // 2 children in Scope
/* 54167*/          OPC_CheckPredicate, 5, // Predicate_quadwOffsetLoad
/* 54169*/          OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/* 54171*/          OPC_CheckComplexPat, /*CP*/4, /*#*/1, // SelectAddrImmX16:$src #2 #3
/* 54174*/          OPC_EmitMergeInputChains1_0,
/* 54175*/          OPC_EmitNode1, TARGET_VAL(PPC::LXV), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i32, 2/*#Ops*/, 2, 3,  // Results = #4
/* 54183*/          OPC_EmitInteger, MVT::i32, PPC::VRRCRegClassID,
/* 54186*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                        MVT::f128, 2/*#Ops*/, 4, 5, 
                    // Src: (ld:{ *:[f128] } iaddrX16:{ *:[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] })
/* 54194*/        /*Scope*/ 27, /*->54222*/
/* 54195*/          OPC_CheckPredicate, 6, // Predicate_nonQuadwOffsetLoad
/* 54197*/          OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/* 54199*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/* 54202*/          OPC_EmitMergeInputChains1_0,
/* 54203*/          OPC_EmitNode1, TARGET_VAL(PPC::LXVX), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i32, 2/*#Ops*/, 2, 3,  // Results = #4
/* 54211*/          OPC_EmitInteger, MVT::i32, PPC::VRRCRegClassID,
/* 54214*/          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] })
/* 54222*/        0, /*End of Scope*/
/* 54223*/      0, // EndSwitchType
/* 54224*/    /*Scope*/ 60, /*->54285*/
/* 54225*/      OPC_CheckPredicate, 25, // Predicate_extload
/* 54227*/      OPC_CheckPredicate, 28, // Predicate_extloadf32
/* 54229*/      OPC_CheckType, MVT::f64,
/* 54231*/      OPC_Scope, 25, /*->54258*/ // 2 children in Scope
/* 54233*/        OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/* 54235*/        OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectAddrImmX4:$src #2 #3
/* 54238*/        OPC_EmitMergeInputChains1_0,
/* 54239*/        OPC_EmitNode1, TARGET_VAL(PPC::DFLOADf32), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f32, 2/*#Ops*/, 2, 3,  // Results = #4
/* 54247*/        OPC_EmitInteger, MVT::i32, PPC::VSFRCRegClassID,
/* 54250*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                      MVT::f64, 2/*#Ops*/, 4, 5, 
                  // Src: (ld:{ *:[f64] } iaddrX4:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadf32>> - Complexity = 413
                  // Dst: (COPY_TO_REGCLASS:{ *:[f64] } (DFLOADf32:{ *:[f32] } iaddrX4:{ *:[iPTR] }:$src), VSFRC:{ *:[i32] })
/* 54258*/      /*Scope*/ 25, /*->54284*/
/* 54259*/        OPC_CheckPatternPredicate, 10, // (PPCSubTarget->hasP8Vector())
/* 54261*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/* 54264*/        OPC_EmitMergeInputChains1_0,
/* 54265*/        OPC_EmitNode1, TARGET_VAL(PPC::XFLOADf32), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f32, 2/*#Ops*/, 2, 3,  // Results = #4
/* 54273*/        OPC_EmitInteger, MVT::i32, PPC::VSFRCRegClassID,
/* 54276*/        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] })
/* 54284*/      0, /*End of Scope*/
/* 54285*/    /*Scope*/ 8|128,1/*136*/, /*->54423*/
/* 54287*/      OPC_CheckPredicate, 23, // Predicate_load
/* 54289*/      OPC_SwitchType /*2 cases */, 64, MVT::f32,// ->54356
/* 54292*/        OPC_Scope, 30, /*->54324*/ // 2 children in Scope
/* 54294*/          OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 54296*/          OPC_Scope, 12, /*->54310*/ // 2 children in Scope
/* 54298*/            OPC_CheckComplexPat, /*CP*/5, /*#*/1, // SelectAddrImm:$src #2 #3
/* 54301*/            OPC_EmitMergeInputChains1_0,
/* 54302*/            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)
/* 54310*/          /*Scope*/ 12, /*->54323*/
/* 54311*/            OPC_CheckComplexPat, /*CP*/6, /*#*/1, // SelectAddrIdx:$src #2 #3
/* 54314*/            OPC_EmitMergeInputChains1_0,
/* 54315*/            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)
/* 54323*/          0, /*End of Scope*/
/* 54324*/        /*Scope*/ 30, /*->54355*/
/* 54325*/          OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 54327*/          OPC_Scope, 12, /*->54341*/ // 2 children in Scope
/* 54329*/            OPC_CheckComplexPat, /*CP*/5, /*#*/1, // SelectAddrImm:$src #2 #3
/* 54332*/            OPC_EmitMergeInputChains1_0,
/* 54333*/            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)
/* 54341*/          /*Scope*/ 12, /*->54354*/
/* 54342*/            OPC_CheckComplexPat, /*CP*/6, /*#*/1, // SelectAddrIdx:$src #2 #3
/* 54345*/            OPC_EmitMergeInputChains1_0,
/* 54346*/            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)
/* 54354*/          0, /*End of Scope*/
/* 54355*/        0, /*End of Scope*/
/* 54356*/      /*SwitchType*/ 64, MVT::f64,// ->54422
/* 54358*/        OPC_Scope, 30, /*->54390*/ // 2 children in Scope
/* 54360*/          OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 54362*/          OPC_Scope, 12, /*->54376*/ // 2 children in Scope
/* 54364*/            OPC_CheckComplexPat, /*CP*/5, /*#*/1, // SelectAddrImm:$src #2 #3
/* 54367*/            OPC_EmitMergeInputChains1_0,
/* 54368*/            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)
/* 54376*/          /*Scope*/ 12, /*->54389*/
/* 54377*/            OPC_CheckComplexPat, /*CP*/6, /*#*/1, // SelectAddrIdx:$src #2 #3
/* 54380*/            OPC_EmitMergeInputChains1_0,
/* 54381*/            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)
/* 54389*/          0, /*End of Scope*/
/* 54390*/        /*Scope*/ 30, /*->54421*/
/* 54391*/          OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 54393*/          OPC_Scope, 12, /*->54407*/ // 2 children in Scope
/* 54395*/            OPC_CheckComplexPat, /*CP*/5, /*#*/1, // SelectAddrImm:$dst #2 #3
/* 54398*/            OPC_EmitMergeInputChains1_0,
/* 54399*/            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)
/* 54407*/          /*Scope*/ 12, /*->54420*/
/* 54408*/            OPC_CheckComplexPat, /*CP*/6, /*#*/1, // SelectAddrIdx:$src #2 #3
/* 54411*/            OPC_EmitMergeInputChains1_0,
/* 54412*/            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)
/* 54420*/          0, /*End of Scope*/
/* 54421*/        0, /*End of Scope*/
/* 54422*/      0, // EndSwitchType
/* 54423*/    /*Scope*/ 114, /*->54538*/
/* 54424*/      OPC_CheckPredicate, 25, // Predicate_extload
/* 54426*/      OPC_CheckPredicate, 28, // Predicate_extloadf32
/* 54428*/      OPC_CheckType, MVT::f64,
/* 54430*/      OPC_Scope, 52, /*->54484*/ // 2 children in Scope
/* 54432*/        OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 54434*/        OPC_Scope, 23, /*->54459*/ // 2 children in Scope
/* 54436*/          OPC_CheckComplexPat, /*CP*/5, /*#*/1, // SelectAddrImm:$src #2 #3
/* 54439*/          OPC_EmitMergeInputChains1_0,
/* 54440*/          OPC_EmitNode1, TARGET_VAL(PPC::LFS), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, 2/*#Ops*/, 2, 3,  // Results = #4
/* 54448*/          OPC_EmitInteger, MVT::i32, PPC::F8RCRegClassID,
/* 54451*/          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] })
/* 54459*/        /*Scope*/ 23, /*->54483*/
/* 54460*/          OPC_CheckComplexPat, /*CP*/6, /*#*/1, // SelectAddrIdx:$src #2 #3
/* 54463*/          OPC_EmitMergeInputChains1_0,
/* 54464*/          OPC_EmitNode1, TARGET_VAL(PPC::LFSX), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, 2/*#Ops*/, 2, 3,  // Results = #4
/* 54472*/          OPC_EmitInteger, MVT::i32, PPC::F8RCRegClassID,
/* 54475*/          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] })
/* 54483*/        0, /*End of Scope*/
/* 54484*/      /*Scope*/ 52, /*->54537*/
/* 54485*/        OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 54487*/        OPC_Scope, 23, /*->54512*/ // 2 children in Scope
/* 54489*/          OPC_CheckComplexPat, /*CP*/5, /*#*/1, // SelectAddrImm:$src #2 #3
/* 54492*/          OPC_EmitMergeInputChains1_0,
/* 54493*/          OPC_EmitNode1, TARGET_VAL(PPC::SPELWZ), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 3,  // Results = #4
/* 54501*/          OPC_EmitInteger, MVT::i32, PPC::SPERCRegClassID,
/* 54504*/          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:{ *:[i32] } iaddr:{ *:[iPTR] }:$src), SPERC:{ *:[i32] })
/* 54512*/        /*Scope*/ 23, /*->54536*/
/* 54513*/          OPC_CheckComplexPat, /*CP*/6, /*#*/1, // SelectAddrIdx:$src #2 #3
/* 54516*/          OPC_EmitMergeInputChains1_0,
/* 54517*/          OPC_EmitNode1, TARGET_VAL(PPC::SPELWZX), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 2/*#Ops*/, 2, 3,  // Results = #4
/* 54525*/          OPC_EmitInteger, MVT::i32, PPC::SPERCRegClassID,
/* 54528*/          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:{ *:[i32] } xaddr:{ *:[iPTR] }:$src), SPERC:{ *:[i32] })
/* 54536*/        0, /*End of Scope*/
/* 54537*/      0, /*End of Scope*/
/* 54538*/    /*Scope*/ 118|128,1/*246*/, /*->54786*/
/* 54540*/      OPC_CheckPredicate, 23, // Predicate_load
/* 54542*/      OPC_SwitchType /*5 cases */, 51, MVT::v2i64,// ->54596
/* 54545*/        OPC_Scope, 14, /*->54561*/ // 3 children in Scope
/* 54547*/          OPC_CheckPatternPredicate, 6, // (!PPCSubTarget->hasP9Vector()) && (PPCSubTarget->hasVSX()) && (!PPCSubTarget->isLittleEndian())
/* 54549*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/* 54552*/          OPC_EmitMergeInputChains1_0,
/* 54553*/          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)
/* 54561*/        /*Scope*/ 16, /*->54578*/
/* 54562*/          OPC_CheckPredicate, 5, // Predicate_quadwOffsetLoad
/* 54564*/          OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/* 54566*/          OPC_CheckComplexPat, /*CP*/4, /*#*/1, // SelectAddrImmX16:$src #2 #3
/* 54569*/          OPC_EmitMergeInputChains1_0,
/* 54570*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::LXV), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 2/*#Ops*/, 2, 3, 
                    // Src: (ld:{ *:[v2i64] } iaddrX16:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_quadwOffsetLoad>> - Complexity = 413
                    // Dst: (LXV:{ *:[v2i64] } memrix16:{ *:[iPTR] }:$src)
/* 54578*/        /*Scope*/ 16, /*->54595*/
/* 54579*/          OPC_CheckPredicate, 6, // Predicate_nonQuadwOffsetLoad
/* 54581*/          OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/* 54583*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/* 54586*/          OPC_EmitMergeInputChains1_0,
/* 54587*/          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)
/* 54595*/        0, /*End of Scope*/
/* 54596*/      /*SwitchType*/ 66, MVT::v4i32,// ->54664
/* 54598*/        OPC_Scope, 14, /*->54614*/ // 4 children in Scope
/* 54600*/          OPC_CheckPatternPredicate, 6, // (!PPCSubTarget->hasP9Vector()) && (PPCSubTarget->hasVSX()) && (!PPCSubTarget->isLittleEndian())
/* 54602*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/* 54605*/          OPC_EmitMergeInputChains1_0,
/* 54606*/          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)
/* 54614*/        /*Scope*/ 16, /*->54631*/
/* 54615*/          OPC_CheckPredicate, 5, // Predicate_quadwOffsetLoad
/* 54617*/          OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/* 54619*/          OPC_CheckComplexPat, /*CP*/4, /*#*/1, // SelectAddrImmX16:$src #2 #3
/* 54622*/          OPC_EmitMergeInputChains1_0,
/* 54623*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::LXV), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i32, 2/*#Ops*/, 2, 3, 
                    // Src: (ld:{ *:[v4i32] } iaddrX16:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_quadwOffsetLoad>> - Complexity = 413
                    // Dst: (LXV:{ *:[v4i32] } memrix16:{ *:[iPTR] }:$src)
/* 54631*/        /*Scope*/ 16, /*->54648*/
/* 54632*/          OPC_CheckPredicate, 6, // Predicate_nonQuadwOffsetLoad
/* 54634*/          OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/* 54636*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/* 54639*/          OPC_EmitMergeInputChains1_0,
/* 54640*/          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)
/* 54648*/        /*Scope*/ 14, /*->54663*/
/* 54649*/          OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 54651*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/* 54654*/          OPC_EmitMergeInputChains1_0,
/* 54655*/          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)
/* 54663*/        0, /*End of Scope*/
/* 54664*/      /*SwitchType*/ 65, MVT::v2f64,// ->54731
/* 54666*/        OPC_Scope, 14, /*->54682*/ // 2 children in Scope
/* 54668*/          OPC_CheckPatternPredicate, 6, // (!PPCSubTarget->hasP9Vector()) && (PPCSubTarget->hasVSX()) && (!PPCSubTarget->isLittleEndian())
/* 54670*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/* 54673*/          OPC_EmitMergeInputChains1_0,
/* 54674*/          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)
/* 54682*/        /*Scope*/ 47, /*->54730*/
/* 54683*/          OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/* 54685*/          OPC_Scope, 12, /*->54699*/ // 3 children in Scope
/* 54687*/            OPC_CheckComplexPat, /*CP*/3, /*#*/1, // SelectAddrIdxX16:$src #2 #3
/* 54690*/            OPC_EmitMergeInputChains1_0,
/* 54691*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::LXVX), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 2/*#Ops*/, 2, 3, 
                      // Src: (ld:{ *:[v2f64] } xaddrX16:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 413
                      // Dst: (LXVX:{ *:[v2f64] } xaddrX16:{ *:[iPTR] }:$src)
/* 54699*/          /*Scope*/ 14, /*->54714*/
/* 54700*/            OPC_CheckPredicate, 5, // Predicate_quadwOffsetLoad
/* 54702*/            OPC_CheckComplexPat, /*CP*/4, /*#*/1, // SelectAddrImmX16:$src #2 #3
/* 54705*/            OPC_EmitMergeInputChains1_0,
/* 54706*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::LXV), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 2/*#Ops*/, 2, 3, 
                      // Src: (ld:{ *:[v2f64] } iaddrX16:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_quadwOffsetLoad>> - Complexity = 413
                      // Dst: (LXV:{ *:[v2f64] } memrix16:{ *:[iPTR] }:$src)
/* 54714*/          /*Scope*/ 14, /*->54729*/
/* 54715*/            OPC_CheckPredicate, 6, // Predicate_nonQuadwOffsetLoad
/* 54717*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/* 54720*/            OPC_EmitMergeInputChains1_0,
/* 54721*/            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)
/* 54729*/          0, /*End of Scope*/
/* 54730*/        0, /*End of Scope*/
/* 54731*/      /*SwitchType*/ 36, MVT::v4f32,// ->54769
/* 54733*/        OPC_Scope, 16, /*->54751*/ // 2 children in Scope
/* 54735*/          OPC_CheckPredicate, 5, // Predicate_quadwOffsetLoad
/* 54737*/          OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/* 54739*/          OPC_CheckComplexPat, /*CP*/4, /*#*/1, // SelectAddrImmX16:$src #2 #3
/* 54742*/          OPC_EmitMergeInputChains1_0,
/* 54743*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::LXV), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 2/*#Ops*/, 2, 3, 
                    // Src: (ld:{ *:[v4f32] } iaddrX16:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_quadwOffsetLoad>> - Complexity = 413
                    // Dst: (LXV:{ *:[v4f32] } memrix16:{ *:[iPTR] }:$src)
/* 54751*/        /*Scope*/ 16, /*->54768*/
/* 54752*/          OPC_CheckPredicate, 6, // Predicate_nonQuadwOffsetLoad
/* 54754*/          OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/* 54756*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/* 54759*/          OPC_EmitMergeInputChains1_0,
/* 54760*/          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)
/* 54768*/        0, /*End of Scope*/
/* 54769*/      /*SwitchType*/ 14, MVT::v4f64,// ->54785
/* 54771*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 54773*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/* 54776*/        OPC_EmitMergeInputChains1_0,
/* 54777*/        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)
/* 54785*/      0, // EndSwitchType
/* 54786*/    /*Scope*/ 20, /*->54807*/
/* 54787*/      OPC_CheckPredicate, 25, // Predicate_extload
/* 54789*/      OPC_CheckPredicate, 29, // Predicate_extloadv4f32
/* 54791*/      OPC_CheckType, MVT::v4f64,
/* 54793*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 54795*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/* 54798*/      OPC_EmitMergeInputChains1_0,
/* 54799*/      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)
/* 54807*/    /*Scope*/ 18, /*->54826*/
/* 54808*/      OPC_CheckPredicate, 23, // Predicate_load
/* 54810*/      OPC_CheckType, MVT::v4f32,
/* 54812*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 54814*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/* 54817*/      OPC_EmitMergeInputChains1_0,
/* 54818*/      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)
/* 54826*/    0, /*End of Scope*/
/* 54827*/  /*SwitchOpcode*/ 3|128,1/*131*/, TARGET_VAL(ISD::ATOMIC_LOAD),// ->54962
/* 54831*/    OPC_RecordMemRef,
/* 54832*/    OPC_RecordNode, // #0 = 'atomic_load' chained node
/* 54833*/    OPC_RecordChild1, // #1 = $src
/* 54834*/    OPC_SwitchType /*2 cases */, 30, MVT::i64,// ->54867
/* 54837*/      OPC_CheckPredicate, 30, // Predicate_atomic_load_64
/* 54839*/      OPC_Scope, 12, /*->54853*/ // 2 children in Scope
/* 54841*/        OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectAddrImmX4:$src #2 #3
/* 54844*/        OPC_EmitMergeInputChains1_0,
/* 54845*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::LD), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 2/*#Ops*/, 2, 3, 
                  // Src: (atomic_load:{ *:[i64] } iaddrX4:{ *:[iPTR] }:$src)<<P:Predicate_atomic_load_64>> - Complexity = 13
                  // Dst: (LD:{ *:[i64] } memrix:{ *:[iPTR] }:$src)
/* 54853*/      /*Scope*/ 12, /*->54866*/
/* 54854*/        OPC_CheckComplexPat, /*CP*/2, /*#*/1, // SelectAddrIdxX4:$src #2 #3
/* 54857*/        OPC_EmitMergeInputChains1_0,
/* 54858*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::LDX), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 2/*#Ops*/, 2, 3, 
                  // Src: (atomic_load:{ *:[i64] } xaddrX4:{ *:[iPTR] }:$src)<<P:Predicate_atomic_load_64>> - Complexity = 13
                  // Dst: (LDX:{ *:[i64] } memrr:{ *:[iPTR] }:$src)
/* 54866*/      0, /*End of Scope*/
/* 54867*/    /*SwitchType*/ 92, MVT::i32,// ->54961
/* 54869*/      OPC_Scope, 14, /*->54885*/ // 6 children in Scope
/* 54871*/        OPC_CheckPredicate, 2, // Predicate_atomic_load_8
/* 54873*/        OPC_CheckComplexPat, /*CP*/5, /*#*/1, // SelectAddrImm:$src #2 #3
/* 54876*/        OPC_EmitMergeInputChains1_0,
/* 54877*/        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)
/* 54885*/      /*Scope*/ 14, /*->54900*/
/* 54886*/        OPC_CheckPredicate, 3, // Predicate_atomic_load_16
/* 54888*/        OPC_CheckComplexPat, /*CP*/5, /*#*/1, // SelectAddrImm:$src #2 #3
/* 54891*/        OPC_EmitMergeInputChains1_0,
/* 54892*/        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)
/* 54900*/      /*Scope*/ 14, /*->54915*/
/* 54901*/        OPC_CheckPredicate, 8, // Predicate_atomic_load_32
/* 54903*/        OPC_CheckComplexPat, /*CP*/5, /*#*/1, // SelectAddrImm:$src #2 #3
/* 54906*/        OPC_EmitMergeInputChains1_0,
/* 54907*/        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)
/* 54915*/      /*Scope*/ 14, /*->54930*/
/* 54916*/        OPC_CheckPredicate, 2, // Predicate_atomic_load_8
/* 54918*/        OPC_CheckComplexPat, /*CP*/6, /*#*/1, // SelectAddrIdx:$src #2 #3
/* 54921*/        OPC_EmitMergeInputChains1_0,
/* 54922*/        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)
/* 54930*/      /*Scope*/ 14, /*->54945*/
/* 54931*/        OPC_CheckPredicate, 3, // Predicate_atomic_load_16
/* 54933*/        OPC_CheckComplexPat, /*CP*/6, /*#*/1, // SelectAddrIdx:$src #2 #3
/* 54936*/        OPC_EmitMergeInputChains1_0,
/* 54937*/        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)
/* 54945*/      /*Scope*/ 14, /*->54960*/
/* 54946*/        OPC_CheckPredicate, 8, // Predicate_atomic_load_32
/* 54948*/        OPC_CheckComplexPat, /*CP*/6, /*#*/1, // SelectAddrIdx:$src #2 #3
/* 54951*/        OPC_EmitMergeInputChains1_0,
/* 54952*/        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)
/* 54960*/      0, /*End of Scope*/
/* 54961*/    0, // EndSwitchType
/* 54962*/  /*SwitchOpcode*/ 6|128,1/*134*/, TARGET_VAL(ISD::ATOMIC_STORE),// ->55100
/* 54966*/    OPC_RecordMemRef,
/* 54967*/    OPC_RecordNode, // #0 = 'atomic_store' chained node
/* 54968*/    OPC_RecordChild1, // #1 = $ptr
/* 54969*/    OPC_RecordChild2, // #2 = $val
/* 54970*/    OPC_Scope, 32, /*->55004*/ // 2 children in Scope
/* 54972*/      OPC_CheckChild2Type, MVT::i64,
/* 54974*/      OPC_CheckPredicate, 30, // Predicate_atomic_store_64
/* 54976*/      OPC_Scope, 12, /*->54990*/ // 2 children in Scope
/* 54978*/        OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectAddrImmX4:$ptr #3 #4
/* 54981*/        OPC_EmitMergeInputChains1_0,
/* 54982*/        OPC_MorphNodeTo0, TARGET_VAL(PPC::STD), 0|OPFL_Chain|OPFL_MemRefs,
                      3/*#Ops*/, 2, 3, 4, 
                  // Src: (atomic_store iaddrX4:{ *:[iPTR] }:$ptr, i64:{ *:[i64] }:$val)<<P:Predicate_atomic_store_64>> - Complexity = 13
                  // Dst: (STD g8rc:{ *:[i64] }:$val, memrix:{ *:[iPTR] }:$ptr)
/* 54990*/      /*Scope*/ 12, /*->55003*/
/* 54991*/        OPC_CheckComplexPat, /*CP*/2, /*#*/1, // SelectAddrIdxX4:$ptr #3 #4
/* 54994*/        OPC_EmitMergeInputChains1_0,
/* 54995*/        OPC_MorphNodeTo0, TARGET_VAL(PPC::STDX), 0|OPFL_Chain|OPFL_MemRefs,
                      3/*#Ops*/, 2, 3, 4, 
                  // Src: (atomic_store xaddrX4:{ *:[iPTR] }:$ptr, i64:{ *:[i64] }:$val)<<P:Predicate_atomic_store_64>> - Complexity = 13
                  // Dst: (STDX g8rc:{ *:[i64] }:$val, memrr:{ *:[iPTR] }:$ptr)
/* 55003*/      0, /*End of Scope*/
/* 55004*/    /*Scope*/ 94, /*->55099*/
/* 55005*/      OPC_CheckChild2Type, MVT::i32,
/* 55007*/      OPC_Scope, 14, /*->55023*/ // 6 children in Scope
/* 55009*/        OPC_CheckPredicate, 2, // Predicate_atomic_store_8
/* 55011*/        OPC_CheckComplexPat, /*CP*/5, /*#*/1, // SelectAddrImm:$ptr #3 #4
/* 55014*/        OPC_EmitMergeInputChains1_0,
/* 55015*/        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)
/* 55023*/      /*Scope*/ 14, /*->55038*/
/* 55024*/        OPC_CheckPredicate, 3, // Predicate_atomic_store_16
/* 55026*/        OPC_CheckComplexPat, /*CP*/5, /*#*/1, // SelectAddrImm:$ptr #3 #4
/* 55029*/        OPC_EmitMergeInputChains1_0,
/* 55030*/        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)
/* 55038*/      /*Scope*/ 14, /*->55053*/
/* 55039*/        OPC_CheckPredicate, 8, // Predicate_atomic_store_32
/* 55041*/        OPC_CheckComplexPat, /*CP*/5, /*#*/1, // SelectAddrImm:$ptr #3 #4
/* 55044*/        OPC_EmitMergeInputChains1_0,
/* 55045*/        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)
/* 55053*/      /*Scope*/ 14, /*->55068*/
/* 55054*/        OPC_CheckPredicate, 2, // Predicate_atomic_store_8
/* 55056*/        OPC_CheckComplexPat, /*CP*/6, /*#*/1, // SelectAddrIdx:$ptr #3 #4
/* 55059*/        OPC_EmitMergeInputChains1_0,
/* 55060*/        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)
/* 55068*/      /*Scope*/ 14, /*->55083*/
/* 55069*/        OPC_CheckPredicate, 3, // Predicate_atomic_store_16
/* 55071*/        OPC_CheckComplexPat, /*CP*/6, /*#*/1, // SelectAddrIdx:$ptr #3 #4
/* 55074*/        OPC_EmitMergeInputChains1_0,
/* 55075*/        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)
/* 55083*/      /*Scope*/ 14, /*->55098*/
/* 55084*/        OPC_CheckPredicate, 8, // Predicate_atomic_store_32
/* 55086*/        OPC_CheckComplexPat, /*CP*/6, /*#*/1, // SelectAddrIdx:$ptr #3 #4
/* 55089*/        OPC_EmitMergeInputChains1_0,
/* 55090*/        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)
/* 55098*/      0, /*End of Scope*/
/* 55099*/    0, /*End of Scope*/
/* 55100*/  /*SwitchOpcode*/ 79, TARGET_VAL(ISD::ATOMIC_LOAD_ADD),// ->55182
/* 55103*/    OPC_RecordMemRef,
/* 55104*/    OPC_RecordNode, // #0 = 'atomic_load_add' chained node
/* 55105*/    OPC_RecordChild1, // #1 = $ptr
/* 55106*/    OPC_RecordChild2, // #2 = $incr
/* 55107*/    OPC_SwitchType /*2 cases */, 53, MVT::i32,// ->55163
/* 55110*/      OPC_Scope, 16, /*->55128*/ // 3 children in Scope
/* 55112*/        OPC_CheckPredicate, 2, // Predicate_atomic_load_add_8
/* 55114*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$ptr #3 #4
/* 55117*/        OPC_EmitMergeInputChains1_0,
/* 55118*/        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)
/* 55128*/      /*Scope*/ 16, /*->55145*/
/* 55129*/        OPC_CheckPredicate, 3, // Predicate_atomic_load_add_16
/* 55131*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$ptr #3 #4
/* 55134*/        OPC_EmitMergeInputChains1_0,
/* 55135*/        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)
/* 55145*/      /*Scope*/ 16, /*->55162*/
/* 55146*/        OPC_CheckPredicate, 8, // Predicate_atomic_load_add_32
/* 55148*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$ptr #3 #4
/* 55151*/        OPC_EmitMergeInputChains1_0,
/* 55152*/        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)
/* 55162*/      0, /*End of Scope*/
/* 55163*/    /*SwitchType*/ 16, MVT::i64,// ->55181
/* 55165*/      OPC_CheckPredicate, 30, // Predicate_atomic_load_add_64
/* 55167*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$ptr #3 #4
/* 55170*/      OPC_EmitMergeInputChains1_0,
/* 55171*/      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)
/* 55181*/    0, // EndSwitchType
/* 55182*/  /*SwitchOpcode*/ 79, TARGET_VAL(ISD::ATOMIC_LOAD_SUB),// ->55264
/* 55185*/    OPC_RecordMemRef,
/* 55186*/    OPC_RecordNode, // #0 = 'atomic_load_sub' chained node
/* 55187*/    OPC_RecordChild1, // #1 = $ptr
/* 55188*/    OPC_RecordChild2, // #2 = $incr
/* 55189*/    OPC_SwitchType /*2 cases */, 53, MVT::i32,// ->55245
/* 55192*/      OPC_Scope, 16, /*->55210*/ // 3 children in Scope
/* 55194*/        OPC_CheckPredicate, 2, // Predicate_atomic_load_sub_8
/* 55196*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$ptr #3 #4
/* 55199*/        OPC_EmitMergeInputChains1_0,
/* 55200*/        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)
/* 55210*/      /*Scope*/ 16, /*->55227*/
/* 55211*/        OPC_CheckPredicate, 3, // Predicate_atomic_load_sub_16
/* 55213*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$ptr #3 #4
/* 55216*/        OPC_EmitMergeInputChains1_0,
/* 55217*/        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)
/* 55227*/      /*Scope*/ 16, /*->55244*/
/* 55228*/        OPC_CheckPredicate, 8, // Predicate_atomic_load_sub_32
/* 55230*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$ptr #3 #4
/* 55233*/        OPC_EmitMergeInputChains1_0,
/* 55234*/        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)
/* 55244*/      0, /*End of Scope*/
/* 55245*/    /*SwitchType*/ 16, MVT::i64,// ->55263
/* 55247*/      OPC_CheckPredicate, 30, // Predicate_atomic_load_sub_64
/* 55249*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$ptr #3 #4
/* 55252*/      OPC_EmitMergeInputChains1_0,
/* 55253*/      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)
/* 55263*/    0, // EndSwitchType
/* 55264*/  /*SwitchOpcode*/ 79, TARGET_VAL(ISD::ATOMIC_LOAD_AND),// ->55346
/* 55267*/    OPC_RecordMemRef,
/* 55268*/    OPC_RecordNode, // #0 = 'atomic_load_and' chained node
/* 55269*/    OPC_RecordChild1, // #1 = $ptr
/* 55270*/    OPC_RecordChild2, // #2 = $incr
/* 55271*/    OPC_SwitchType /*2 cases */, 53, MVT::i32,// ->55327
/* 55274*/      OPC_Scope, 16, /*->55292*/ // 3 children in Scope
/* 55276*/        OPC_CheckPredicate, 2, // Predicate_atomic_load_and_8
/* 55278*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$ptr #3 #4
/* 55281*/        OPC_EmitMergeInputChains1_0,
/* 55282*/        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)
/* 55292*/      /*Scope*/ 16, /*->55309*/
/* 55293*/        OPC_CheckPredicate, 3, // Predicate_atomic_load_and_16
/* 55295*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$ptr #3 #4
/* 55298*/        OPC_EmitMergeInputChains1_0,
/* 55299*/        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)
/* 55309*/      /*Scope*/ 16, /*->55326*/
/* 55310*/        OPC_CheckPredicate, 8, // Predicate_atomic_load_and_32
/* 55312*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$ptr #3 #4
/* 55315*/        OPC_EmitMergeInputChains1_0,
/* 55316*/        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)
/* 55326*/      0, /*End of Scope*/
/* 55327*/    /*SwitchType*/ 16, MVT::i64,// ->55345
/* 55329*/      OPC_CheckPredicate, 30, // Predicate_atomic_load_and_64
/* 55331*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$ptr #3 #4
/* 55334*/      OPC_EmitMergeInputChains1_0,
/* 55335*/      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)
/* 55345*/    0, // EndSwitchType
/* 55346*/  /*SwitchOpcode*/ 79, TARGET_VAL(ISD::ATOMIC_LOAD_OR),// ->55428
/* 55349*/    OPC_RecordMemRef,
/* 55350*/    OPC_RecordNode, // #0 = 'atomic_load_or' chained node
/* 55351*/    OPC_RecordChild1, // #1 = $ptr
/* 55352*/    OPC_RecordChild2, // #2 = $incr
/* 55353*/    OPC_SwitchType /*2 cases */, 53, MVT::i32,// ->55409
/* 55356*/      OPC_Scope, 16, /*->55374*/ // 3 children in Scope
/* 55358*/        OPC_CheckPredicate, 2, // Predicate_atomic_load_or_8
/* 55360*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$ptr #3 #4
/* 55363*/        OPC_EmitMergeInputChains1_0,
/* 55364*/        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)
/* 55374*/      /*Scope*/ 16, /*->55391*/
/* 55375*/        OPC_CheckPredicate, 3, // Predicate_atomic_load_or_16
/* 55377*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$ptr #3 #4
/* 55380*/        OPC_EmitMergeInputChains1_0,
/* 55381*/        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)
/* 55391*/      /*Scope*/ 16, /*->55408*/
/* 55392*/        OPC_CheckPredicate, 8, // Predicate_atomic_load_or_32
/* 55394*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$ptr #3 #4
/* 55397*/        OPC_EmitMergeInputChains1_0,
/* 55398*/        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)
/* 55408*/      0, /*End of Scope*/
/* 55409*/    /*SwitchType*/ 16, MVT::i64,// ->55427
/* 55411*/      OPC_CheckPredicate, 30, // Predicate_atomic_load_or_64
/* 55413*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$ptr #3 #4
/* 55416*/      OPC_EmitMergeInputChains1_0,
/* 55417*/      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)
/* 55427*/    0, // EndSwitchType
/* 55428*/  /*SwitchOpcode*/ 79, TARGET_VAL(ISD::ATOMIC_LOAD_XOR),// ->55510
/* 55431*/    OPC_RecordMemRef,
/* 55432*/    OPC_RecordNode, // #0 = 'atomic_load_xor' chained node
/* 55433*/    OPC_RecordChild1, // #1 = $ptr
/* 55434*/    OPC_RecordChild2, // #2 = $incr
/* 55435*/    OPC_SwitchType /*2 cases */, 53, MVT::i32,// ->55491
/* 55438*/      OPC_Scope, 16, /*->55456*/ // 3 children in Scope
/* 55440*/        OPC_CheckPredicate, 2, // Predicate_atomic_load_xor_8
/* 55442*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$ptr #3 #4
/* 55445*/        OPC_EmitMergeInputChains1_0,
/* 55446*/        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)
/* 55456*/      /*Scope*/ 16, /*->55473*/
/* 55457*/        OPC_CheckPredicate, 3, // Predicate_atomic_load_xor_16
/* 55459*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$ptr #3 #4
/* 55462*/        OPC_EmitMergeInputChains1_0,
/* 55463*/        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)
/* 55473*/      /*Scope*/ 16, /*->55490*/
/* 55474*/        OPC_CheckPredicate, 8, // Predicate_atomic_load_xor_32
/* 55476*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$ptr #3 #4
/* 55479*/        OPC_EmitMergeInputChains1_0,
/* 55480*/        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)
/* 55490*/      0, /*End of Scope*/
/* 55491*/    /*SwitchType*/ 16, MVT::i64,// ->55509
/* 55493*/      OPC_CheckPredicate, 30, // Predicate_atomic_load_xor_64
/* 55495*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$ptr #3 #4
/* 55498*/      OPC_EmitMergeInputChains1_0,
/* 55499*/      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)
/* 55509*/    0, // EndSwitchType
/* 55510*/  /*SwitchOpcode*/ 79, TARGET_VAL(ISD::ATOMIC_LOAD_NAND),// ->55592
/* 55513*/    OPC_RecordMemRef,
/* 55514*/    OPC_RecordNode, // #0 = 'atomic_load_nand' chained node
/* 55515*/    OPC_RecordChild1, // #1 = $ptr
/* 55516*/    OPC_RecordChild2, // #2 = $incr
/* 55517*/    OPC_SwitchType /*2 cases */, 53, MVT::i32,// ->55573
/* 55520*/      OPC_Scope, 16, /*->55538*/ // 3 children in Scope
/* 55522*/        OPC_CheckPredicate, 2, // Predicate_atomic_load_nand_8
/* 55524*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$ptr #3 #4
/* 55527*/        OPC_EmitMergeInputChains1_0,
/* 55528*/        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)
/* 55538*/      /*Scope*/ 16, /*->55555*/
/* 55539*/        OPC_CheckPredicate, 3, // Predicate_atomic_load_nand_16
/* 55541*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$ptr #3 #4
/* 55544*/        OPC_EmitMergeInputChains1_0,
/* 55545*/        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)
/* 55555*/      /*Scope*/ 16, /*->55572*/
/* 55556*/        OPC_CheckPredicate, 8, // Predicate_atomic_load_nand_32
/* 55558*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$ptr #3 #4
/* 55561*/        OPC_EmitMergeInputChains1_0,
/* 55562*/        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)
/* 55572*/      0, /*End of Scope*/
/* 55573*/    /*SwitchType*/ 16, MVT::i64,// ->55591
/* 55575*/      OPC_CheckPredicate, 30, // Predicate_atomic_load_nand_64
/* 55577*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$ptr #3 #4
/* 55580*/      OPC_EmitMergeInputChains1_0,
/* 55581*/      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)
/* 55591*/    0, // EndSwitchType
/* 55592*/  /*SwitchOpcode*/ 79, TARGET_VAL(ISD::ATOMIC_LOAD_MIN),// ->55674
/* 55595*/    OPC_RecordMemRef,
/* 55596*/    OPC_RecordNode, // #0 = 'atomic_load_min' chained node
/* 55597*/    OPC_RecordChild1, // #1 = $ptr
/* 55598*/    OPC_RecordChild2, // #2 = $incr
/* 55599*/    OPC_SwitchType /*2 cases */, 53, MVT::i32,// ->55655
/* 55602*/      OPC_Scope, 16, /*->55620*/ // 3 children in Scope
/* 55604*/        OPC_CheckPredicate, 2, // Predicate_atomic_load_min_8
/* 55606*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$ptr #3 #4
/* 55609*/        OPC_EmitMergeInputChains1_0,
/* 55610*/        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)
/* 55620*/      /*Scope*/ 16, /*->55637*/
/* 55621*/        OPC_CheckPredicate, 3, // Predicate_atomic_load_min_16
/* 55623*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$ptr #3 #4
/* 55626*/        OPC_EmitMergeInputChains1_0,
/* 55627*/        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)
/* 55637*/      /*Scope*/ 16, /*->55654*/
/* 55638*/        OPC_CheckPredicate, 8, // Predicate_atomic_load_min_32
/* 55640*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$ptr #3 #4
/* 55643*/        OPC_EmitMergeInputChains1_0,
/* 55644*/        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)
/* 55654*/      0, /*End of Scope*/
/* 55655*/    /*SwitchType*/ 16, MVT::i64,// ->55673
/* 55657*/      OPC_CheckPredicate, 30, // Predicate_atomic_load_min_64
/* 55659*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$ptr #3 #4
/* 55662*/      OPC_EmitMergeInputChains1_0,
/* 55663*/      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)
/* 55673*/    0, // EndSwitchType
/* 55674*/  /*SwitchOpcode*/ 79, TARGET_VAL(ISD::ATOMIC_LOAD_MAX),// ->55756
/* 55677*/    OPC_RecordMemRef,
/* 55678*/    OPC_RecordNode, // #0 = 'atomic_load_max' chained node
/* 55679*/    OPC_RecordChild1, // #1 = $ptr
/* 55680*/    OPC_RecordChild2, // #2 = $incr
/* 55681*/    OPC_SwitchType /*2 cases */, 53, MVT::i32,// ->55737
/* 55684*/      OPC_Scope, 16, /*->55702*/ // 3 children in Scope
/* 55686*/        OPC_CheckPredicate, 2, // Predicate_atomic_load_max_8
/* 55688*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$ptr #3 #4
/* 55691*/        OPC_EmitMergeInputChains1_0,
/* 55692*/        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)
/* 55702*/      /*Scope*/ 16, /*->55719*/
/* 55703*/        OPC_CheckPredicate, 3, // Predicate_atomic_load_max_16
/* 55705*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$ptr #3 #4
/* 55708*/        OPC_EmitMergeInputChains1_0,
/* 55709*/        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)
/* 55719*/      /*Scope*/ 16, /*->55736*/
/* 55720*/        OPC_CheckPredicate, 8, // Predicate_atomic_load_max_32
/* 55722*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$ptr #3 #4
/* 55725*/        OPC_EmitMergeInputChains1_0,
/* 55726*/        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)
/* 55736*/      0, /*End of Scope*/
/* 55737*/    /*SwitchType*/ 16, MVT::i64,// ->55755
/* 55739*/      OPC_CheckPredicate, 30, // Predicate_atomic_load_max_64
/* 55741*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$ptr #3 #4
/* 55744*/      OPC_EmitMergeInputChains1_0,
/* 55745*/      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)
/* 55755*/    0, // EndSwitchType
/* 55756*/  /*SwitchOpcode*/ 79, TARGET_VAL(ISD::ATOMIC_LOAD_UMIN),// ->55838
/* 55759*/    OPC_RecordMemRef,
/* 55760*/    OPC_RecordNode, // #0 = 'atomic_load_umin' chained node
/* 55761*/    OPC_RecordChild1, // #1 = $ptr
/* 55762*/    OPC_RecordChild2, // #2 = $incr
/* 55763*/    OPC_SwitchType /*2 cases */, 53, MVT::i32,// ->55819
/* 55766*/      OPC_Scope, 16, /*->55784*/ // 3 children in Scope
/* 55768*/        OPC_CheckPredicate, 2, // Predicate_atomic_load_umin_8
/* 55770*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$ptr #3 #4
/* 55773*/        OPC_EmitMergeInputChains1_0,
/* 55774*/        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)
/* 55784*/      /*Scope*/ 16, /*->55801*/
/* 55785*/        OPC_CheckPredicate, 3, // Predicate_atomic_load_umin_16
/* 55787*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$ptr #3 #4
/* 55790*/        OPC_EmitMergeInputChains1_0,
/* 55791*/        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)
/* 55801*/      /*Scope*/ 16, /*->55818*/
/* 55802*/        OPC_CheckPredicate, 8, // Predicate_atomic_load_umin_32
/* 55804*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$ptr #3 #4
/* 55807*/        OPC_EmitMergeInputChains1_0,
/* 55808*/        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)
/* 55818*/      0, /*End of Scope*/
/* 55819*/    /*SwitchType*/ 16, MVT::i64,// ->55837
/* 55821*/      OPC_CheckPredicate, 30, // Predicate_atomic_load_umin_64
/* 55823*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$ptr #3 #4
/* 55826*/      OPC_EmitMergeInputChains1_0,
/* 55827*/      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)
/* 55837*/    0, // EndSwitchType
/* 55838*/  /*SwitchOpcode*/ 79, TARGET_VAL(ISD::ATOMIC_LOAD_UMAX),// ->55920
/* 55841*/    OPC_RecordMemRef,
/* 55842*/    OPC_RecordNode, // #0 = 'atomic_load_umax' chained node
/* 55843*/    OPC_RecordChild1, // #1 = $ptr
/* 55844*/    OPC_RecordChild2, // #2 = $incr
/* 55845*/    OPC_SwitchType /*2 cases */, 53, MVT::i32,// ->55901
/* 55848*/      OPC_Scope, 16, /*->55866*/ // 3 children in Scope
/* 55850*/        OPC_CheckPredicate, 2, // Predicate_atomic_load_umax_8
/* 55852*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$ptr #3 #4
/* 55855*/        OPC_EmitMergeInputChains1_0,
/* 55856*/        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)
/* 55866*/      /*Scope*/ 16, /*->55883*/
/* 55867*/        OPC_CheckPredicate, 3, // Predicate_atomic_load_umax_16
/* 55869*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$ptr #3 #4
/* 55872*/        OPC_EmitMergeInputChains1_0,
/* 55873*/        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)
/* 55883*/      /*Scope*/ 16, /*->55900*/
/* 55884*/        OPC_CheckPredicate, 8, // Predicate_atomic_load_umax_32
/* 55886*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$ptr #3 #4
/* 55889*/        OPC_EmitMergeInputChains1_0,
/* 55890*/        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)
/* 55900*/      0, /*End of Scope*/
/* 55901*/    /*SwitchType*/ 16, MVT::i64,// ->55919
/* 55903*/      OPC_CheckPredicate, 30, // Predicate_atomic_load_umax_64
/* 55905*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$ptr #3 #4
/* 55908*/      OPC_EmitMergeInputChains1_0,
/* 55909*/      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)
/* 55919*/    0, // EndSwitchType
/* 55920*/  /*SwitchOpcode*/ 84, TARGET_VAL(ISD::ATOMIC_CMP_SWAP),// ->56007
/* 55923*/    OPC_RecordMemRef,
/* 55924*/    OPC_RecordNode, // #0 = 'atomic_cmp_swap' chained node
/* 55925*/    OPC_RecordChild1, // #1 = $ptr
/* 55926*/    OPC_RecordChild2, // #2 = $old
/* 55927*/    OPC_RecordChild3, // #3 = $new
/* 55928*/    OPC_SwitchType /*2 cases */, 56, MVT::i32,// ->55987
/* 55931*/      OPC_Scope, 17, /*->55950*/ // 3 children in Scope
/* 55933*/        OPC_CheckPredicate, 2, // Predicate_atomic_cmp_swap_8
/* 55935*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$ptr #4 #5
/* 55938*/        OPC_EmitMergeInputChains1_0,
/* 55939*/        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)
/* 55950*/      /*Scope*/ 17, /*->55968*/
/* 55951*/        OPC_CheckPredicate, 3, // Predicate_atomic_cmp_swap_16
/* 55953*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$ptr #4 #5
/* 55956*/        OPC_EmitMergeInputChains1_0,
/* 55957*/        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)
/* 55968*/      /*Scope*/ 17, /*->55986*/
/* 55969*/        OPC_CheckPredicate, 8, // Predicate_atomic_cmp_swap_32
/* 55971*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$ptr #4 #5
/* 55974*/        OPC_EmitMergeInputChains1_0,
/* 55975*/        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)
/* 55986*/      0, /*End of Scope*/
/* 55987*/    /*SwitchType*/ 17, MVT::i64,// ->56006
/* 55989*/      OPC_CheckPredicate, 30, // Predicate_atomic_cmp_swap_64
/* 55991*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$ptr #4 #5
/* 55994*/      OPC_EmitMergeInputChains1_0,
/* 55995*/      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)
/* 56006*/    0, // EndSwitchType
/* 56007*/  /*SwitchOpcode*/ 79, TARGET_VAL(ISD::ATOMIC_SWAP),// ->56089
/* 56010*/    OPC_RecordMemRef,
/* 56011*/    OPC_RecordNode, // #0 = 'atomic_swap' chained node
/* 56012*/    OPC_RecordChild1, // #1 = $ptr
/* 56013*/    OPC_RecordChild2, // #2 = $new
/* 56014*/    OPC_SwitchType /*2 cases */, 53, MVT::i32,// ->56070
/* 56017*/      OPC_Scope, 16, /*->56035*/ // 3 children in Scope
/* 56019*/        OPC_CheckPredicate, 2, // Predicate_atomic_swap_8
/* 56021*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$ptr #3 #4
/* 56024*/        OPC_EmitMergeInputChains1_0,
/* 56025*/        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)
/* 56035*/      /*Scope*/ 16, /*->56052*/
/* 56036*/        OPC_CheckPredicate, 3, // Predicate_atomic_swap_16
/* 56038*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$ptr #3 #4
/* 56041*/        OPC_EmitMergeInputChains1_0,
/* 56042*/        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)
/* 56052*/      /*Scope*/ 16, /*->56069*/
/* 56053*/        OPC_CheckPredicate, 8, // Predicate_atomic_swap_32
/* 56055*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$ptr #3 #4
/* 56058*/        OPC_EmitMergeInputChains1_0,
/* 56059*/        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)
/* 56069*/      0, /*End of Scope*/
/* 56070*/    /*SwitchType*/ 16, MVT::i64,// ->56088
/* 56072*/      OPC_CheckPredicate, 30, // Predicate_atomic_swap_64
/* 56074*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$ptr #3 #4
/* 56077*/      OPC_EmitMergeInputChains1_0,
/* 56078*/      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)
/* 56088*/    0, // EndSwitchType
/* 56089*/  /*SwitchOpcode*/ 44, TARGET_VAL(PPCISD::DYNALLOC),// ->56136
/* 56092*/    OPC_RecordNode, // #0 = 'PPCdynalloc' chained node
/* 56093*/    OPC_RecordChild1, // #1 = $negsize
/* 56094*/    OPC_SwitchType /*2 cases */, 18, MVT::i32,// ->56115
/* 56097*/      OPC_CheckChild1Type, MVT::i32,
/* 56099*/      OPC_RecordChild2, // #2 = $fpsi
/* 56100*/      OPC_CheckChild2Type, MVT::iPTR,
/* 56102*/      OPC_CheckComplexPat, /*CP*/5, /*#*/2, // SelectAddrImm:$fpsi #3 #4
/* 56105*/      OPC_EmitMergeInputChains1_0,
/* 56106*/      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)
/* 56115*/    /*SwitchType*/ 18, MVT::i64,// ->56135
/* 56117*/      OPC_CheckChild1Type, MVT::i64,
/* 56119*/      OPC_RecordChild2, // #2 = $fpsi
/* 56120*/      OPC_CheckChild2Type, MVT::iPTR,
/* 56122*/      OPC_CheckComplexPat, /*CP*/5, /*#*/2, // SelectAddrImm:$fpsi #3 #4
/* 56125*/      OPC_EmitMergeInputChains1_0,
/* 56126*/      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)
/* 56135*/    0, // EndSwitchType
/* 56136*/  /*SwitchOpcode*/ 34, TARGET_VAL(PPCISD::DYNAREAOFFSET),// ->56173
/* 56139*/    OPC_RecordNode, // #0 = 'PPCdynareaoffset' chained node
/* 56140*/    OPC_RecordChild1, // #1 = $fpsi
/* 56141*/    OPC_CheckChild1Type, MVT::iPTR,
/* 56143*/    OPC_SwitchType /*2 cases */, 12, MVT::i32,// ->56158
/* 56146*/      OPC_CheckComplexPat, /*CP*/5, /*#*/1, // SelectAddrImm:$fpsi #2 #3
/* 56149*/      OPC_EmitMergeInputChains1_0,
/* 56150*/      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)
/* 56158*/    /*SwitchType*/ 12, MVT::i64,// ->56172
/* 56160*/      OPC_CheckComplexPat, /*CP*/5, /*#*/1, // SelectAddrImm:$fpsi #2 #3
/* 56163*/      OPC_EmitMergeInputChains1_0,
/* 56164*/      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)
/* 56172*/    0, // EndSwitchType
/* 56173*/  /*SwitchOpcode*/ 35, TARGET_VAL(PPCISD::BCTRL_LOAD_TOC),// ->56211
/* 56176*/    OPC_RecordNode, // #0 = 'PPCbctrl_load_toc' chained node
/* 56177*/    OPC_CaptureGlueInput,
/* 56178*/    OPC_RecordChild1, // #1 = $src
/* 56179*/    OPC_CheckChild1Type, MVT::iPTR,
/* 56181*/    OPC_Scope, 13, /*->56196*/ // 2 children in Scope
/* 56183*/      OPC_CheckPatternPredicate, 40, // (!PPCSubTarget->isPPC64())
/* 56185*/      OPC_CheckComplexPat, /*CP*/5, /*#*/1, // SelectAddrImm:$src #2 #3
/* 56188*/      OPC_EmitMergeInputChains1_0,
/* 56189*/      OPC_MorphNodeTo0, TARGET_VAL(PPC::BCTRL_LWZinto_toc), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
                    2/*#Ops*/, 2, 3, 
                // Src: (PPCbctrl_load_toc iaddr:{ *:[iPTR] }:$src) - Complexity = 12
                // Dst: (BCTRL_LWZinto_toc iaddr:{ *:[iPTR] }:$src)
/* 56196*/    /*Scope*/ 13, /*->56210*/
/* 56197*/      OPC_CheckPatternPredicate, 41, // (PPCSubTarget->isPPC64())
/* 56199*/      OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectAddrImmX4:$src #2 #3
/* 56202*/      OPC_EmitMergeInputChains1_0,
/* 56203*/      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 iaddrX4:{ *:[iPTR] }:$src) - Complexity = 12
                // Dst: (BCTRL8_LDinto_toc iaddrX4:{ *:[iPTR] }:$src)
/* 56210*/    0, /*End of Scope*/
/* 56211*/  /*SwitchOpcode*/ 60, TARGET_VAL(PPCISD::LBRX),// ->56274
/* 56214*/    OPC_RecordMemRef,
/* 56215*/    OPC_RecordNode, // #0 = 'PPClbrx' chained node
/* 56216*/    OPC_RecordChild1, // #1 = $src
/* 56217*/    OPC_MoveChild2,
/* 56218*/    OPC_Scope, 17, /*->56237*/ // 3 children in Scope
/* 56220*/      OPC_CheckValueType, MVT::i16,
/* 56222*/      OPC_MoveParent,
/* 56223*/      OPC_CheckType, MVT::i32,
/* 56225*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/* 56228*/      OPC_EmitMergeInputChains1_0,
/* 56229*/      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)
/* 56237*/    /*Scope*/ 17, /*->56255*/
/* 56238*/      OPC_CheckValueType, MVT::i32,
/* 56240*/      OPC_MoveParent,
/* 56241*/      OPC_CheckType, MVT::i32,
/* 56243*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/* 56246*/      OPC_EmitMergeInputChains1_0,
/* 56247*/      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)
/* 56255*/    /*Scope*/ 17, /*->56273*/
/* 56256*/      OPC_CheckValueType, MVT::i64,
/* 56258*/      OPC_MoveParent,
/* 56259*/      OPC_CheckType, MVT::i64,
/* 56261*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/* 56264*/      OPC_EmitMergeInputChains1_0,
/* 56265*/      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)
/* 56273*/    0, /*End of Scope*/
/* 56274*/  /*SwitchOpcode*/ 63, TARGET_VAL(PPCISD::STBRX),// ->56340
/* 56277*/    OPC_RecordNode, // #0 = 'PPCstbrx' chained node
/* 56278*/    OPC_RecordChild1, // #1 = $rS
/* 56279*/    OPC_Scope, 38, /*->56319*/ // 2 children in Scope
/* 56281*/      OPC_CheckChild1Type, MVT::i32,
/* 56283*/      OPC_RecordChild2, // #2 = $dst
/* 56284*/      OPC_MoveChild3,
/* 56285*/      OPC_Scope, 15, /*->56302*/ // 2 children in Scope
/* 56287*/        OPC_CheckValueType, MVT::i16,
/* 56289*/        OPC_MoveParent,
/* 56290*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/* 56293*/        OPC_EmitMergeInputChains1_0,
/* 56294*/        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)
/* 56302*/      /*Scope*/ 15, /*->56318*/
/* 56303*/        OPC_CheckValueType, MVT::i32,
/* 56305*/        OPC_MoveParent,
/* 56306*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/* 56309*/        OPC_EmitMergeInputChains1_0,
/* 56310*/        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)
/* 56318*/      0, /*End of Scope*/
/* 56319*/    /*Scope*/ 19, /*->56339*/
/* 56320*/      OPC_CheckChild1Type, MVT::i64,
/* 56322*/      OPC_RecordChild2, // #2 = $dst
/* 56323*/      OPC_MoveChild3,
/* 56324*/      OPC_CheckValueType, MVT::i64,
/* 56326*/      OPC_MoveParent,
/* 56327*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrIdxOnly:$dst #3 #4
/* 56330*/      OPC_EmitMergeInputChains1_0,
/* 56331*/      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)
/* 56339*/    0, /*End of Scope*/
/* 56340*/  /*SwitchOpcode*/ 22, TARGET_VAL(PPCISD::ATOMIC_CMP_SWAP_8),// ->56365
/* 56343*/    OPC_RecordMemRef,
/* 56344*/    OPC_RecordNode, // #0 = 'PPCatomicCmpSwap_8' chained node
/* 56345*/    OPC_RecordChild1, // #1 = $ptr
/* 56346*/    OPC_RecordChild2, // #2 = $old
/* 56347*/    OPC_RecordChild3, // #3 = $new
/* 56348*/    OPC_CheckType, MVT::i32,
/* 56350*/    OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$ptr #4 #5
/* 56353*/    OPC_EmitMergeInputChains1_0,
/* 56354*/    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)
/* 56365*/  /*SwitchOpcode*/ 22, TARGET_VAL(PPCISD::ATOMIC_CMP_SWAP_16),// ->56390
/* 56368*/    OPC_RecordMemRef,
/* 56369*/    OPC_RecordNode, // #0 = 'PPCatomicCmpSwap_16' chained node
/* 56370*/    OPC_RecordChild1, // #1 = $ptr
/* 56371*/    OPC_RecordChild2, // #2 = $old
/* 56372*/    OPC_RecordChild3, // #3 = $new
/* 56373*/    OPC_CheckType, MVT::i32,
/* 56375*/    OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$ptr #4 #5
/* 56378*/    OPC_EmitMergeInputChains1_0,
/* 56379*/    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)
/* 56390*/  /*SwitchOpcode*/ 55, TARGET_VAL(ISD::BRCOND),// ->56448
/* 56393*/    OPC_RecordNode, // #0 = 'brcond' chained node
/* 56394*/    OPC_Scope, 33, /*->56429*/ // 2 children in Scope
/* 56396*/      OPC_MoveChild1,
/* 56397*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 56400*/      OPC_RecordChild0, // #1 = $bi
/* 56401*/      OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 56412*/      OPC_CheckType, MVT::i1,
/* 56414*/      OPC_MoveParent,
/* 56415*/      OPC_RecordChild2, // #2 = $dst
/* 56416*/      OPC_MoveChild2,
/* 56417*/      OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
/* 56420*/      OPC_MoveParent,
/* 56421*/      OPC_EmitMergeInputChains1_0,
/* 56422*/      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)
/* 56429*/    /*Scope*/ 17, /*->56447*/
/* 56430*/      OPC_RecordChild1, // #1 = $bi
/* 56431*/      OPC_CheckChild1Type, MVT::i1,
/* 56433*/      OPC_RecordChild2, // #2 = $dst
/* 56434*/      OPC_MoveChild2,
/* 56435*/      OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
/* 56438*/      OPC_MoveParent,
/* 56439*/      OPC_EmitMergeInputChains1_0,
/* 56440*/      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)
/* 56447*/    0, /*End of Scope*/
/* 56448*/  /*SwitchOpcode*/ 114|128,4/*626*/, TARGET_VAL(ISD::AND),// ->57078
/* 56452*/    OPC_Scope, 50, /*->56504*/ // 9 children in Scope
/* 56454*/      OPC_RecordChild0, // #0 = $rS
/* 56455*/      OPC_MoveChild1,
/* 56456*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 56459*/      OPC_RecordChild0, // #1 = $rB
/* 56460*/      OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 56471*/      OPC_MoveParent,
/* 56472*/      OPC_SwitchType /*3 cases */, 8, MVT::i32,// ->56483
/* 56475*/        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)
/* 56483*/      /*SwitchType*/ 8, MVT::i1,// ->56493
/* 56485*/        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)
/* 56493*/      /*SwitchType*/ 8, MVT::i64,// ->56503
/* 56495*/        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)
/* 56503*/      0, // EndSwitchType
/* 56504*/    /*Scope*/ 90, /*->56595*/
/* 56505*/      OPC_MoveChild0,
/* 56506*/      OPC_SwitchOpcode /*2 cases */, 46, TARGET_VAL(ISD::XOR),// ->56556
/* 56510*/        OPC_RecordChild0, // #0 = $rB
/* 56511*/        OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 56522*/        OPC_MoveParent,
/* 56523*/        OPC_RecordChild1, // #1 = $rS
/* 56524*/        OPC_SwitchType /*3 cases */, 8, MVT::i32,// ->56535
/* 56527*/          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)
/* 56535*/        /*SwitchType*/ 8, MVT::i1,// ->56545
/* 56537*/          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)
/* 56545*/        /*SwitchType*/ 8, MVT::i64,// ->56555
/* 56547*/          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)
/* 56555*/        0, // EndSwitchType
/* 56556*/      /*SwitchOpcode*/ 35, TARGET_VAL(ISD::ROTL),// ->56594
/* 56559*/        OPC_RecordChild0, // #0 = $in
/* 56560*/        OPC_RecordChild1, // #1 = $sh
/* 56561*/        OPC_CheckChild1Type, MVT::i32,
/* 56563*/        OPC_MoveParent,
/* 56564*/        OPC_RecordChild1, // #2 = $imm
/* 56565*/        OPC_MoveChild1,
/* 56566*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 56569*/        OPC_CheckPredicate, 31, // Predicate_maskimm32
/* 56571*/        OPC_MoveParent,
/* 56572*/        OPC_CheckType, MVT::i32,
/* 56574*/        OPC_EmitConvertToTarget, 2,
/* 56576*/        OPC_EmitNodeXForm, 3, 3, // MB
/* 56579*/        OPC_EmitConvertToTarget, 2,
/* 56581*/        OPC_EmitNodeXForm, 4, 5, // ME
/* 56584*/        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))
/* 56594*/      0, // EndSwitchOpcode
/* 56595*/    /*Scope*/ 56|128,1/*184*/, /*->56781*/
/* 56597*/      OPC_RecordChild0, // #0 = $src1
/* 56598*/      OPC_Scope, 123, /*->56723*/ // 2 children in Scope
/* 56600*/        OPC_RecordChild1, // #1 = $src2
/* 56601*/        OPC_Scope, 86, /*->56689*/ // 4 children in Scope
/* 56603*/          OPC_MoveChild1,
/* 56604*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 56607*/          OPC_Scope, 19, /*->56628*/ // 4 children in Scope
/* 56609*/            OPC_CheckPredicate, 12, // Predicate_immZExt16
/* 56611*/            OPC_MoveParent,
/* 56612*/            OPC_CheckType, MVT::i32,
/* 56614*/            OPC_EmitConvertToTarget, 1,
/* 56616*/            OPC_EmitNodeXForm, 1, 2, // LO16
/* 56619*/            OPC_MorphNodeTo2, TARGET_VAL(PPC::ANDI_rec), 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: (ANDI_rec:{ *:[i32] }:{ *:[i32] } i32:{ *:[i32] }:$src1, (LO16:{ *:[i32] } (imm:{ *:[i32] }):$src2))
/* 56628*/          /*Scope*/ 19, /*->56648*/
/* 56629*/            OPC_CheckPredicate, 17, // Predicate_imm16ShiftedZExt
/* 56631*/            OPC_MoveParent,
/* 56632*/            OPC_CheckType, MVT::i32,
/* 56634*/            OPC_EmitConvertToTarget, 1,
/* 56636*/            OPC_EmitNodeXForm, 0, 2, // HI16
/* 56639*/            OPC_MorphNodeTo2, TARGET_VAL(PPC::ANDIS_rec), 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: (ANDIS_rec:{ *:[i32] }:{ *:[i32] } i32:{ *:[i32] }:$src1, (HI16:{ *:[i32] } (imm:{ *:[i32] }):$src2))
/* 56648*/          /*Scope*/ 19, /*->56668*/
/* 56649*/            OPC_CheckPredicate, 12, // Predicate_immZExt16
/* 56651*/            OPC_MoveParent,
/* 56652*/            OPC_CheckType, MVT::i64,
/* 56654*/            OPC_EmitConvertToTarget, 1,
/* 56656*/            OPC_EmitNodeXForm, 1, 2, // LO16
/* 56659*/            OPC_MorphNodeTo2, TARGET_VAL(PPC::ANDI8_rec), 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: (ANDI8_rec:{ *:[i64] }:{ *:[i32] } i64:{ *:[i64] }:$src1, (LO16:{ *:[i64] } (imm:{ *:[i64] }):$src2))
/* 56668*/          /*Scope*/ 19, /*->56688*/
/* 56669*/            OPC_CheckPredicate, 17, // Predicate_imm16ShiftedZExt
/* 56671*/            OPC_MoveParent,
/* 56672*/            OPC_CheckType, MVT::i64,
/* 56674*/            OPC_EmitConvertToTarget, 1,
/* 56676*/            OPC_EmitNodeXForm, 0, 2, // HI16
/* 56679*/            OPC_MorphNodeTo2, TARGET_VAL(PPC::ANDIS8_rec), 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: (ANDIS8_rec:{ *:[i64] }:{ *:[i32] } i64:{ *:[i64] }:$src1, (HI16:{ *:[i64] } (imm:{ *:[i64] }):$src2))
/* 56688*/          0, /*End of Scope*/
/* 56689*/        /*Scope*/ 10, /*->56700*/
/* 56690*/          OPC_CheckType, MVT::i32,
/* 56692*/          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)
/* 56700*/        /*Scope*/ 10, /*->56711*/
/* 56701*/          OPC_CheckType, MVT::i1,
/* 56703*/          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)
/* 56711*/        /*Scope*/ 10, /*->56722*/
/* 56712*/          OPC_CheckType, MVT::i64,
/* 56714*/          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)
/* 56722*/        0, /*End of Scope*/
/* 56723*/      /*Scope*/ 56, /*->56780*/
/* 56724*/        OPC_MoveChild1,
/* 56725*/        OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 56728*/        OPC_Scope, 24, /*->56754*/ // 2 children in Scope
/* 56730*/          OPC_RecordChild0, // #1 = $XB
/* 56731*/          OPC_MoveChild1,
/* 56732*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 56735*/          OPC_MoveChild0,
/* 56736*/          OPC_CheckImmAllOnesV,
/* 56737*/          OPC_CheckType, MVT::v16i8,
/* 56739*/          OPC_MoveParent,
/* 56740*/          OPC_MoveParent,
/* 56741*/          OPC_MoveParent,
/* 56742*/          OPC_CheckType, MVT::v4i32,
/* 56744*/          OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 56746*/          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] } immAllOnesV:{ *:[v16i8] }))) - Complexity = 413
                    // Dst: (XXLANDC:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$XA, v4i32:{ *:[v4i32] }:$XB)
/* 56754*/        /*Scope*/ 24, /*->56779*/
/* 56755*/          OPC_MoveChild0,
/* 56756*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 56759*/          OPC_MoveChild0,
/* 56760*/          OPC_CheckImmAllOnesV,
/* 56761*/          OPC_CheckType, MVT::v16i8,
/* 56763*/          OPC_MoveParent,
/* 56764*/          OPC_MoveParent,
/* 56765*/          OPC_RecordChild1, // #1 = $XB
/* 56766*/          OPC_MoveParent,
/* 56767*/          OPC_CheckType, MVT::v4i32,
/* 56769*/          OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 56771*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XXLANDC), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1, 
                    // Src: (and:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$XA, (xor:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } immAllOnesV:{ *:[v16i8] }), v4i32:{ *:[v4i32] }:$XB)) - Complexity = 413
                    // Dst: (XXLANDC:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$XA, v4i32:{ *:[v4i32] }:$XB)
/* 56779*/        0, /*End of Scope*/
/* 56780*/      0, /*End of Scope*/
/* 56781*/    /*Scope*/ 58, /*->56840*/
/* 56782*/      OPC_MoveChild0,
/* 56783*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 56786*/      OPC_Scope, 25, /*->56813*/ // 2 children in Scope
/* 56788*/        OPC_RecordChild0, // #0 = $XB
/* 56789*/        OPC_MoveChild1,
/* 56790*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 56793*/        OPC_MoveChild0,
/* 56794*/        OPC_CheckImmAllOnesV,
/* 56795*/        OPC_CheckType, MVT::v16i8,
/* 56797*/        OPC_MoveParent,
/* 56798*/        OPC_MoveParent,
/* 56799*/        OPC_MoveParent,
/* 56800*/        OPC_RecordChild1, // #1 = $XA
/* 56801*/        OPC_CheckType, MVT::v4i32,
/* 56803*/        OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 56805*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::XXLANDC), 0,
                      MVT::v4i32, 2/*#Ops*/, 1, 0, 
                  // Src: (and:{ *:[v4i32] } (xor:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$XB, (bitconvert:{ *:[v4i32] } immAllOnesV:{ *:[v16i8] })), v4i32:{ *:[v4i32] }:$XA) - Complexity = 413
                  // Dst: (XXLANDC:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$XA, v4i32:{ *:[v4i32] }:$XB)
/* 56813*/      /*Scope*/ 25, /*->56839*/
/* 56814*/        OPC_MoveChild0,
/* 56815*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 56818*/        OPC_MoveChild0,
/* 56819*/        OPC_CheckImmAllOnesV,
/* 56820*/        OPC_CheckType, MVT::v16i8,
/* 56822*/        OPC_MoveParent,
/* 56823*/        OPC_MoveParent,
/* 56824*/        OPC_RecordChild1, // #0 = $XB
/* 56825*/        OPC_MoveParent,
/* 56826*/        OPC_RecordChild1, // #1 = $XA
/* 56827*/        OPC_CheckType, MVT::v4i32,
/* 56829*/        OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 56831*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::XXLANDC), 0,
                      MVT::v4i32, 2/*#Ops*/, 1, 0, 
                  // Src: (and:{ *:[v4i32] } (xor:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } immAllOnesV:{ *:[v16i8] }), v4i32:{ *:[v4i32] }:$XB), v4i32:{ *:[v4i32] }:$XA) - Complexity = 413
                  // Dst: (XXLANDC:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$XA, v4i32:{ *:[v4i32] }:$XB)
/* 56839*/      0, /*End of Scope*/
/* 56840*/    /*Scope*/ 74, /*->56915*/
/* 56841*/      OPC_RecordChild0, // #0 = $XA
/* 56842*/      OPC_Scope, 13, /*->56857*/ // 2 children in Scope
/* 56844*/        OPC_RecordChild1, // #1 = $XB
/* 56845*/        OPC_CheckType, MVT::v4i32,
/* 56847*/        OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 56849*/        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)
/* 56857*/      /*Scope*/ 56, /*->56914*/
/* 56858*/        OPC_MoveChild1,
/* 56859*/        OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 56862*/        OPC_Scope, 24, /*->56888*/ // 2 children in Scope
/* 56864*/          OPC_RecordChild0, // #1 = $vB
/* 56865*/          OPC_MoveChild1,
/* 56866*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 56869*/          OPC_MoveChild0,
/* 56870*/          OPC_CheckImmAllOnesV,
/* 56871*/          OPC_CheckType, MVT::v16i8,
/* 56873*/          OPC_MoveParent,
/* 56874*/          OPC_MoveParent,
/* 56875*/          OPC_MoveParent,
/* 56876*/          OPC_CheckType, MVT::v4i32,
/* 56878*/          OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 56880*/          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] } immAllOnesV:{ *:[v16i8] }))) - Complexity = 13
                    // Dst: (VANDC:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/* 56888*/        /*Scope*/ 24, /*->56913*/
/* 56889*/          OPC_MoveChild0,
/* 56890*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 56893*/          OPC_MoveChild0,
/* 56894*/          OPC_CheckImmAllOnesV,
/* 56895*/          OPC_CheckType, MVT::v16i8,
/* 56897*/          OPC_MoveParent,
/* 56898*/          OPC_MoveParent,
/* 56899*/          OPC_RecordChild1, // #1 = $vB
/* 56900*/          OPC_MoveParent,
/* 56901*/          OPC_CheckType, MVT::v4i32,
/* 56903*/          OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 56905*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::VANDC), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1, 
                    // Src: (and:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, (xor:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } immAllOnesV:{ *:[v16i8] }), v4i32:{ *:[v4i32] }:$vB)) - Complexity = 13
                    // Dst: (VANDC:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/* 56913*/        0, /*End of Scope*/
/* 56914*/      0, /*End of Scope*/
/* 56915*/    /*Scope*/ 58, /*->56974*/
/* 56916*/      OPC_MoveChild0,
/* 56917*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 56920*/      OPC_Scope, 25, /*->56947*/ // 2 children in Scope
/* 56922*/        OPC_RecordChild0, // #0 = $vB
/* 56923*/        OPC_MoveChild1,
/* 56924*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 56927*/        OPC_MoveChild0,
/* 56928*/        OPC_CheckImmAllOnesV,
/* 56929*/        OPC_CheckType, MVT::v16i8,
/* 56931*/        OPC_MoveParent,
/* 56932*/        OPC_MoveParent,
/* 56933*/        OPC_MoveParent,
/* 56934*/        OPC_RecordChild1, // #1 = $vA
/* 56935*/        OPC_CheckType, MVT::v4i32,
/* 56937*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 56939*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::VANDC), 0,
                      MVT::v4i32, 2/*#Ops*/, 1, 0, 
                  // Src: (and:{ *:[v4i32] } (xor:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vB, (bitconvert:{ *:[v4i32] } immAllOnesV:{ *:[v16i8] })), v4i32:{ *:[v4i32] }:$vA) - Complexity = 13
                  // Dst: (VANDC:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/* 56947*/      /*Scope*/ 25, /*->56973*/
/* 56948*/        OPC_MoveChild0,
/* 56949*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 56952*/        OPC_MoveChild0,
/* 56953*/        OPC_CheckImmAllOnesV,
/* 56954*/        OPC_CheckType, MVT::v16i8,
/* 56956*/        OPC_MoveParent,
/* 56957*/        OPC_MoveParent,
/* 56958*/        OPC_RecordChild1, // #0 = $vB
/* 56959*/        OPC_MoveParent,
/* 56960*/        OPC_RecordChild1, // #1 = $vA
/* 56961*/        OPC_CheckType, MVT::v4i32,
/* 56963*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 56965*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::VANDC), 0,
                      MVT::v4i32, 2/*#Ops*/, 1, 0, 
                  // Src: (and:{ *:[v4i32] } (xor:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } immAllOnesV:{ *:[v16i8] }), v4i32:{ *:[v4i32] }:$vB), v4i32:{ *:[v4i32] }:$vA) - Complexity = 13
                  // Dst: (VANDC:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/* 56973*/      0, /*End of Scope*/
/* 56974*/    /*Scope*/ 34, /*->57009*/
/* 56975*/      OPC_RecordChild0, // #0 = $FRA
/* 56976*/      OPC_MoveChild1,
/* 56977*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 56980*/      OPC_RecordChild0, // #1 = $FRB
/* 56981*/      OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 56992*/      OPC_MoveParent,
/* 56993*/      OPC_CheckType, MVT::v4i1,
/* 56995*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 56997*/      OPC_EmitInteger, MVT::i32, 4, 
/* 57000*/      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] })
/* 57009*/    /*Scope*/ 34, /*->57044*/
/* 57010*/      OPC_MoveChild0,
/* 57011*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 57014*/      OPC_RecordChild0, // #0 = $FRB
/* 57015*/      OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 57026*/      OPC_MoveParent,
/* 57027*/      OPC_RecordChild1, // #1 = $FRA
/* 57028*/      OPC_CheckType, MVT::v4i1,
/* 57030*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 57032*/      OPC_EmitInteger, MVT::i32, 4, 
/* 57035*/      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] })
/* 57044*/    /*Scope*/ 32, /*->57077*/
/* 57045*/      OPC_RecordChild0, // #0 = $vA
/* 57046*/      OPC_RecordChild1, // #1 = $vB
/* 57047*/      OPC_SwitchType /*2 cases */, 10, MVT::v4i32,// ->57060
/* 57050*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 57052*/        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)
/* 57060*/      /*SwitchType*/ 14, MVT::v4i1,// ->57076
/* 57062*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 57064*/        OPC_EmitInteger, MVT::i32, 1, 
/* 57067*/        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] })
/* 57076*/      0, // EndSwitchType
/* 57077*/    0, /*End of Scope*/
/* 57078*/  /*SwitchOpcode*/ 107|128,8/*1131*/, TARGET_VAL(ISD::OR),// ->58213
/* 57082*/    OPC_Scope, 50, /*->57134*/ // 11 children in Scope
/* 57084*/      OPC_RecordChild0, // #0 = $rS
/* 57085*/      OPC_MoveChild1,
/* 57086*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 57089*/      OPC_RecordChild0, // #1 = $rB
/* 57090*/      OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 57101*/      OPC_MoveParent,
/* 57102*/      OPC_SwitchType /*3 cases */, 8, MVT::i32,// ->57113
/* 57105*/        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)
/* 57113*/      /*SwitchType*/ 8, MVT::i1,// ->57123
/* 57115*/        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)
/* 57123*/      /*SwitchType*/ 8, MVT::i64,// ->57133
/* 57125*/        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)
/* 57133*/      0, // EndSwitchType
/* 57134*/    /*Scope*/ 50, /*->57185*/
/* 57135*/      OPC_MoveChild0,
/* 57136*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 57139*/      OPC_RecordChild0, // #0 = $rB
/* 57140*/      OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 57151*/      OPC_MoveParent,
/* 57152*/      OPC_RecordChild1, // #1 = $rS
/* 57153*/      OPC_SwitchType /*3 cases */, 8, MVT::i32,// ->57164
/* 57156*/        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)
/* 57164*/      /*SwitchType*/ 8, MVT::i1,// ->57174
/* 57166*/        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)
/* 57174*/      /*SwitchType*/ 8, MVT::i64,// ->57184
/* 57176*/        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)
/* 57184*/      0, // EndSwitchType
/* 57185*/    /*Scope*/ 22|128,1/*150*/, /*->57337*/
/* 57187*/      OPC_RecordChild0, // #0 = $src1
/* 57188*/      OPC_RecordChild1, // #1 = $src2
/* 57189*/      OPC_Scope, 112, /*->57303*/ // 4 children in Scope
/* 57191*/        OPC_MoveChild1,
/* 57192*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 57195*/        OPC_Scope, 18, /*->57215*/ // 5 children in Scope
/* 57197*/          OPC_CheckPredicate, 12, // Predicate_immZExt16
/* 57199*/          OPC_MoveParent,
/* 57200*/          OPC_CheckType, MVT::i32,
/* 57202*/          OPC_EmitConvertToTarget, 1,
/* 57204*/          OPC_EmitNodeXForm, 1, 2, // LO16
/* 57207*/          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))
/* 57215*/        /*Scope*/ 18, /*->57234*/
/* 57216*/          OPC_CheckPredicate, 17, // Predicate_imm16ShiftedZExt
/* 57218*/          OPC_MoveParent,
/* 57219*/          OPC_CheckType, MVT::i32,
/* 57221*/          OPC_EmitConvertToTarget, 1,
/* 57223*/          OPC_EmitNodeXForm, 0, 2, // HI16
/* 57226*/          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))
/* 57234*/        /*Scope*/ 18, /*->57253*/
/* 57235*/          OPC_CheckPredicate, 12, // Predicate_immZExt16
/* 57237*/          OPC_MoveParent,
/* 57238*/          OPC_CheckType, MVT::i64,
/* 57240*/          OPC_EmitConvertToTarget, 1,
/* 57242*/          OPC_EmitNodeXForm, 1, 2, // LO16
/* 57245*/          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))
/* 57253*/        /*Scope*/ 18, /*->57272*/
/* 57254*/          OPC_CheckPredicate, 17, // Predicate_imm16ShiftedZExt
/* 57256*/          OPC_MoveParent,
/* 57257*/          OPC_CheckType, MVT::i64,
/* 57259*/          OPC_EmitConvertToTarget, 1,
/* 57261*/          OPC_EmitNodeXForm, 0, 2, // HI16
/* 57264*/          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))
/* 57272*/        /*Scope*/ 29, /*->57302*/
/* 57273*/          OPC_MoveParent,
/* 57274*/          OPC_CheckType, MVT::i32,
/* 57276*/          OPC_EmitConvertToTarget, 1,
/* 57278*/          OPC_EmitNodeXForm, 1, 2, // LO16
/* 57281*/          OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                        MVT::i32, 2/*#Ops*/, 0, 3,  // Results = #4
/* 57289*/          OPC_EmitConvertToTarget, 1,
/* 57291*/          OPC_EmitNodeXForm, 0, 5, // HI16
/* 57294*/          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))
/* 57302*/        0, /*End of Scope*/
/* 57303*/      /*Scope*/ 10, /*->57314*/
/* 57304*/        OPC_CheckType, MVT::i32,
/* 57306*/        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)
/* 57314*/      /*Scope*/ 10, /*->57325*/
/* 57315*/        OPC_CheckType, MVT::i1,
/* 57317*/        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)
/* 57325*/      /*Scope*/ 10, /*->57336*/
/* 57326*/        OPC_CheckType, MVT::i64,
/* 57328*/        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)
/* 57336*/      0, /*End of Scope*/
/* 57337*/    /*Scope*/ 7|128,4/*519*/, /*->57858*/
/* 57339*/      OPC_MoveChild0,
/* 57340*/      OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 57343*/      OPC_Scope, 120, /*->57465*/ // 2 children in Scope
/* 57345*/        OPC_MoveChild0,
/* 57346*/        OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 57349*/        OPC_Scope, 56, /*->57407*/ // 2 children in Scope
/* 57351*/          OPC_RecordChild0, // #0 = $C
/* 57352*/          OPC_MoveChild1,
/* 57353*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 57356*/          OPC_MoveChild0,
/* 57357*/          OPC_CheckImmAllOnesV,
/* 57358*/          OPC_CheckType, MVT::v16i8,
/* 57360*/          OPC_MoveParent,
/* 57361*/          OPC_MoveParent,
/* 57362*/          OPC_MoveParent,
/* 57363*/          OPC_RecordChild1, // #1 = $A
/* 57364*/          OPC_MoveParent,
/* 57365*/          OPC_MoveChild1,
/* 57366*/          OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 57369*/          OPC_Scope, 17, /*->57388*/ // 2 children in Scope
/* 57371*/            OPC_RecordChild0, // #2 = $B
/* 57372*/            OPC_CheckChild1Same, 0,
/* 57374*/            OPC_MoveParent,
/* 57375*/            OPC_CheckType, MVT::v4i32,
/* 57377*/            OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 57379*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XXSEL), 0,
                          MVT::v4i32, 3/*#Ops*/, 1, 2, 0, 
                      // Src: (or:{ *:[v4i32] } (and:{ *:[v4i32] } (xor:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$C, (bitconvert:{ *:[v4i32] } immAllOnesV:{ *:[v16i8] })), v4i32:{ *:[v4i32] }:$A), (and:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$B, v4i32:{ *:[v4i32] }:$C)) - Complexity = 419
                      // Dst: (XXSEL:{ *:[v4i32] } ?:{ *:[v4i32] }:$A, ?:{ *:[v4i32] }:$B, ?:{ *:[v4i32] }:$C)
/* 57388*/          /*Scope*/ 17, /*->57406*/
/* 57389*/            OPC_CheckChild0Same, 0,
/* 57391*/            OPC_RecordChild1, // #2 = $B
/* 57392*/            OPC_MoveParent,
/* 57393*/            OPC_CheckType, MVT::v4i32,
/* 57395*/            OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 57397*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XXSEL), 0,
                          MVT::v4i32, 3/*#Ops*/, 1, 2, 0, 
                      // Src: (or:{ *:[v4i32] } (and:{ *:[v4i32] } (xor:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$C, (bitconvert:{ *:[v4i32] } immAllOnesV:{ *:[v16i8] })), v4i32:{ *:[v4i32] }:$A), (and:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$C, v4i32:{ *:[v4i32] }:$B)) - Complexity = 419
                      // Dst: (XXSEL:{ *:[v4i32] } ?:{ *:[v4i32] }:$A, ?:{ *:[v4i32] }:$B, ?:{ *:[v4i32] }:$C)
/* 57406*/          0, /*End of Scope*/
/* 57407*/        /*Scope*/ 56, /*->57464*/
/* 57408*/          OPC_MoveChild0,
/* 57409*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 57412*/          OPC_MoveChild0,
/* 57413*/          OPC_CheckImmAllOnesV,
/* 57414*/          OPC_CheckType, MVT::v16i8,
/* 57416*/          OPC_MoveParent,
/* 57417*/          OPC_MoveParent,
/* 57418*/          OPC_RecordChild1, // #0 = $C
/* 57419*/          OPC_MoveParent,
/* 57420*/          OPC_RecordChild1, // #1 = $A
/* 57421*/          OPC_MoveParent,
/* 57422*/          OPC_MoveChild1,
/* 57423*/          OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 57426*/          OPC_Scope, 17, /*->57445*/ // 2 children in Scope
/* 57428*/            OPC_RecordChild0, // #2 = $B
/* 57429*/            OPC_CheckChild1Same, 0,
/* 57431*/            OPC_MoveParent,
/* 57432*/            OPC_CheckType, MVT::v4i32,
/* 57434*/            OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 57436*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XXSEL), 0,
                          MVT::v4i32, 3/*#Ops*/, 1, 2, 0, 
                      // Src: (or:{ *:[v4i32] } (and:{ *:[v4i32] } (xor:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } immAllOnesV:{ *:[v16i8] }), v4i32:{ *:[v4i32] }:$C), v4i32:{ *:[v4i32] }:$A), (and:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$B, v4i32:{ *:[v4i32] }:$C)) - Complexity = 419
                      // Dst: (XXSEL:{ *:[v4i32] } ?:{ *:[v4i32] }:$A, ?:{ *:[v4i32] }:$B, ?:{ *:[v4i32] }:$C)
/* 57445*/          /*Scope*/ 17, /*->57463*/
/* 57446*/            OPC_CheckChild0Same, 0,
/* 57448*/            OPC_RecordChild1, // #2 = $B
/* 57449*/            OPC_MoveParent,
/* 57450*/            OPC_CheckType, MVT::v4i32,
/* 57452*/            OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 57454*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XXSEL), 0,
                          MVT::v4i32, 3/*#Ops*/, 1, 2, 0, 
                      // Src: (or:{ *:[v4i32] } (and:{ *:[v4i32] } (xor:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } immAllOnesV:{ *:[v16i8] }), v4i32:{ *:[v4i32] }:$C), v4i32:{ *:[v4i32] }:$A), (and:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$C, v4i32:{ *:[v4i32] }:$B)) - Complexity = 419
                      // Dst: (XXSEL:{ *:[v4i32] } ?:{ *:[v4i32] }:$A, ?:{ *:[v4i32] }:$B, ?:{ *:[v4i32] }:$C)
/* 57463*/          0, /*End of Scope*/
/* 57464*/        0, /*End of Scope*/
/* 57465*/      /*Scope*/ 6|128,3/*390*/, /*->57857*/
/* 57467*/        OPC_RecordChild0, // #0 = $A
/* 57468*/        OPC_Scope, 118, /*->57588*/ // 2 children in Scope
/* 57470*/          OPC_MoveChild1,
/* 57471*/          OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 57474*/          OPC_Scope, 55, /*->57531*/ // 2 children in Scope
/* 57476*/            OPC_RecordChild0, // #1 = $C
/* 57477*/            OPC_MoveChild1,
/* 57478*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 57481*/            OPC_MoveChild0,
/* 57482*/            OPC_CheckImmAllOnesV,
/* 57483*/            OPC_CheckType, MVT::v16i8,
/* 57485*/            OPC_MoveParent,
/* 57486*/            OPC_MoveParent,
/* 57487*/            OPC_MoveParent,
/* 57488*/            OPC_MoveParent,
/* 57489*/            OPC_MoveChild1,
/* 57490*/            OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 57493*/            OPC_Scope, 17, /*->57512*/ // 2 children in Scope
/* 57495*/              OPC_RecordChild0, // #2 = $B
/* 57496*/              OPC_CheckChild1Same, 1,
/* 57498*/              OPC_MoveParent,
/* 57499*/              OPC_CheckType, MVT::v4i32,
/* 57501*/              OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 57503*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::XXSEL), 0,
                            MVT::v4i32, 3/*#Ops*/, 0, 2, 1, 
                        // Src: (or:{ *:[v4i32] } (and:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$A, (xor:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$C, (bitconvert:{ *:[v4i32] } immAllOnesV:{ *:[v16i8] }))), (and:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$B, v4i32:{ *:[v4i32] }:$C)) - Complexity = 419
                        // Dst: (XXSEL:{ *:[v4i32] } ?:{ *:[v4i32] }:$A, ?:{ *:[v4i32] }:$B, ?:{ *:[v4i32] }:$C)
/* 57512*/            /*Scope*/ 17, /*->57530*/
/* 57513*/              OPC_CheckChild0Same, 1,
/* 57515*/              OPC_RecordChild1, // #2 = $B
/* 57516*/              OPC_MoveParent,
/* 57517*/              OPC_CheckType, MVT::v4i32,
/* 57519*/              OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 57521*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::XXSEL), 0,
                            MVT::v4i32, 3/*#Ops*/, 0, 2, 1, 
                        // Src: (or:{ *:[v4i32] } (and:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$A, (xor:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$C, (bitconvert:{ *:[v4i32] } immAllOnesV:{ *:[v16i8] }))), (and:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$C, v4i32:{ *:[v4i32] }:$B)) - Complexity = 419
                        // Dst: (XXSEL:{ *:[v4i32] } ?:{ *:[v4i32] }:$A, ?:{ *:[v4i32] }:$B, ?:{ *:[v4i32] }:$C)
/* 57530*/            0, /*End of Scope*/
/* 57531*/          /*Scope*/ 55, /*->57587*/
/* 57532*/            OPC_MoveChild0,
/* 57533*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 57536*/            OPC_MoveChild0,
/* 57537*/            OPC_CheckImmAllOnesV,
/* 57538*/            OPC_CheckType, MVT::v16i8,
/* 57540*/            OPC_MoveParent,
/* 57541*/            OPC_MoveParent,
/* 57542*/            OPC_RecordChild1, // #1 = $C
/* 57543*/            OPC_MoveParent,
/* 57544*/            OPC_MoveParent,
/* 57545*/            OPC_MoveChild1,
/* 57546*/            OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 57549*/            OPC_Scope, 17, /*->57568*/ // 2 children in Scope
/* 57551*/              OPC_RecordChild0, // #2 = $B
/* 57552*/              OPC_CheckChild1Same, 1,
/* 57554*/              OPC_MoveParent,
/* 57555*/              OPC_CheckType, MVT::v4i32,
/* 57557*/              OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 57559*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::XXSEL), 0,
                            MVT::v4i32, 3/*#Ops*/, 0, 2, 1, 
                        // Src: (or:{ *:[v4i32] } (and:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$A, (xor:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } immAllOnesV:{ *:[v16i8] }), v4i32:{ *:[v4i32] }:$C)), (and:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$B, v4i32:{ *:[v4i32] }:$C)) - Complexity = 419
                        // Dst: (XXSEL:{ *:[v4i32] } ?:{ *:[v4i32] }:$A, ?:{ *:[v4i32] }:$B, ?:{ *:[v4i32] }:$C)
/* 57568*/            /*Scope*/ 17, /*->57586*/
/* 57569*/              OPC_CheckChild0Same, 1,
/* 57571*/              OPC_RecordChild1, // #2 = $B
/* 57572*/              OPC_MoveParent,
/* 57573*/              OPC_CheckType, MVT::v4i32,
/* 57575*/              OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 57577*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::XXSEL), 0,
                            MVT::v4i32, 3/*#Ops*/, 0, 2, 1, 
                        // Src: (or:{ *:[v4i32] } (and:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$A, (xor:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } immAllOnesV:{ *:[v16i8] }), v4i32:{ *:[v4i32] }:$C)), (and:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$C, v4i32:{ *:[v4i32] }:$B)) - Complexity = 419
                        // Dst: (XXSEL:{ *:[v4i32] } ?:{ *:[v4i32] }:$A, ?:{ *:[v4i32] }:$B, ?:{ *:[v4i32] }:$C)
/* 57586*/            0, /*End of Scope*/
/* 57587*/          0, /*End of Scope*/
/* 57588*/        /*Scope*/ 10|128,2/*266*/, /*->57856*/
/* 57590*/          OPC_RecordChild1, // #1 = $C
/* 57591*/          OPC_MoveParent,
/* 57592*/          OPC_MoveChild1,
/* 57593*/          OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 57596*/          OPC_Scope, 64, /*->57662*/ // 4 children in Scope
/* 57598*/            OPC_MoveChild0,
/* 57599*/            OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 57602*/            OPC_Scope, 28, /*->57632*/ // 2 children in Scope
/* 57604*/              OPC_CheckChild0Same, 1,
/* 57606*/              OPC_MoveChild1,
/* 57607*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 57610*/              OPC_MoveChild0,
/* 57611*/              OPC_CheckImmAllOnesV,
/* 57612*/              OPC_CheckType, MVT::v16i8,
/* 57614*/              OPC_MoveParent,
/* 57615*/              OPC_MoveParent,
/* 57616*/              OPC_MoveParent,
/* 57617*/              OPC_RecordChild1, // #2 = $A
/* 57618*/              OPC_MoveParent,
/* 57619*/              OPC_CheckType, MVT::v4i32,
/* 57621*/              OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 57623*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::XXSEL), 0,
                            MVT::v4i32, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (or:{ *:[v4i32] } (and:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$B, v4i32:{ *:[v4i32] }:$C), (and:{ *:[v4i32] } (xor:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$C, (bitconvert:{ *:[v4i32] } immAllOnesV:{ *:[v16i8] })), v4i32:{ *:[v4i32] }:$A)) - Complexity = 419
                        // Dst: (XXSEL:{ *:[v4i32] } ?:{ *:[v4i32] }:$A, ?:{ *:[v4i32] }:$B, ?:{ *:[v4i32] }:$C)
/* 57632*/            /*Scope*/ 28, /*->57661*/
/* 57633*/              OPC_MoveChild0,
/* 57634*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 57637*/              OPC_MoveChild0,
/* 57638*/              OPC_CheckImmAllOnesV,
/* 57639*/              OPC_CheckType, MVT::v16i8,
/* 57641*/              OPC_MoveParent,
/* 57642*/              OPC_MoveParent,
/* 57643*/              OPC_CheckChild1Same, 1,
/* 57645*/              OPC_MoveParent,
/* 57646*/              OPC_RecordChild1, // #2 = $A
/* 57647*/              OPC_MoveParent,
/* 57648*/              OPC_CheckType, MVT::v4i32,
/* 57650*/              OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 57652*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::XXSEL), 0,
                            MVT::v4i32, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (or:{ *:[v4i32] } (and:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$B, v4i32:{ *:[v4i32] }:$C), (and:{ *:[v4i32] } (xor:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } immAllOnesV:{ *:[v16i8] }), v4i32:{ *:[v4i32] }:$C), v4i32:{ *:[v4i32] }:$A)) - Complexity = 419
                        // Dst: (XXSEL:{ *:[v4i32] } ?:{ *:[v4i32] }:$A, ?:{ *:[v4i32] }:$B, ?:{ *:[v4i32] }:$C)
/* 57661*/            0, /*End of Scope*/
/* 57662*/          /*Scope*/ 63, /*->57726*/
/* 57663*/            OPC_RecordChild0, // #2 = $A
/* 57664*/            OPC_MoveChild1,
/* 57665*/            OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 57668*/            OPC_Scope, 27, /*->57697*/ // 2 children in Scope
/* 57670*/              OPC_CheckChild0Same, 1,
/* 57672*/              OPC_MoveChild1,
/* 57673*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 57676*/              OPC_MoveChild0,
/* 57677*/              OPC_CheckImmAllOnesV,
/* 57678*/              OPC_CheckType, MVT::v16i8,
/* 57680*/              OPC_MoveParent,
/* 57681*/              OPC_MoveParent,
/* 57682*/              OPC_MoveParent,
/* 57683*/              OPC_MoveParent,
/* 57684*/              OPC_CheckType, MVT::v4i32,
/* 57686*/              OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 57688*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::XXSEL), 0,
                            MVT::v4i32, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (or:{ *:[v4i32] } (and:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$B, v4i32:{ *:[v4i32] }:$C), (and:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$A, (xor:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$C, (bitconvert:{ *:[v4i32] } immAllOnesV:{ *:[v16i8] })))) - Complexity = 419
                        // Dst: (XXSEL:{ *:[v4i32] } ?:{ *:[v4i32] }:$A, ?:{ *:[v4i32] }:$B, ?:{ *:[v4i32] }:$C)
/* 57697*/            /*Scope*/ 27, /*->57725*/
/* 57698*/              OPC_MoveChild0,
/* 57699*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 57702*/              OPC_MoveChild0,
/* 57703*/              OPC_CheckImmAllOnesV,
/* 57704*/              OPC_CheckType, MVT::v16i8,
/* 57706*/              OPC_MoveParent,
/* 57707*/              OPC_MoveParent,
/* 57708*/              OPC_CheckChild1Same, 1,
/* 57710*/              OPC_MoveParent,
/* 57711*/              OPC_MoveParent,
/* 57712*/              OPC_CheckType, MVT::v4i32,
/* 57714*/              OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 57716*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::XXSEL), 0,
                            MVT::v4i32, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (or:{ *:[v4i32] } (and:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$B, v4i32:{ *:[v4i32] }:$C), (and:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$A, (xor:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } immAllOnesV:{ *:[v16i8] }), v4i32:{ *:[v4i32] }:$C))) - Complexity = 419
                        // Dst: (XXSEL:{ *:[v4i32] } ?:{ *:[v4i32] }:$A, ?:{ *:[v4i32] }:$B, ?:{ *:[v4i32] }:$C)
/* 57725*/            0, /*End of Scope*/
/* 57726*/          /*Scope*/ 64, /*->57791*/
/* 57727*/            OPC_MoveChild0,
/* 57728*/            OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 57731*/            OPC_Scope, 28, /*->57761*/ // 2 children in Scope
/* 57733*/              OPC_CheckChild0Same, 0,
/* 57735*/              OPC_MoveChild1,
/* 57736*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 57739*/              OPC_MoveChild0,
/* 57740*/              OPC_CheckImmAllOnesV,
/* 57741*/              OPC_CheckType, MVT::v16i8,
/* 57743*/              OPC_MoveParent,
/* 57744*/              OPC_MoveParent,
/* 57745*/              OPC_MoveParent,
/* 57746*/              OPC_RecordChild1, // #2 = $A
/* 57747*/              OPC_MoveParent,
/* 57748*/              OPC_CheckType, MVT::v4i32,
/* 57750*/              OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 57752*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::XXSEL), 0,
                            MVT::v4i32, 3/*#Ops*/, 2, 1, 0, 
                        // Src: (or:{ *:[v4i32] } (and:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$C, v4i32:{ *:[v4i32] }:$B), (and:{ *:[v4i32] } (xor:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$C, (bitconvert:{ *:[v4i32] } immAllOnesV:{ *:[v16i8] })), v4i32:{ *:[v4i32] }:$A)) - Complexity = 419
                        // Dst: (XXSEL:{ *:[v4i32] } ?:{ *:[v4i32] }:$A, ?:{ *:[v4i32] }:$B, ?:{ *:[v4i32] }:$C)
/* 57761*/            /*Scope*/ 28, /*->57790*/
/* 57762*/              OPC_MoveChild0,
/* 57763*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 57766*/              OPC_MoveChild0,
/* 57767*/              OPC_CheckImmAllOnesV,
/* 57768*/              OPC_CheckType, MVT::v16i8,
/* 57770*/              OPC_MoveParent,
/* 57771*/              OPC_MoveParent,
/* 57772*/              OPC_CheckChild1Same, 0,
/* 57774*/              OPC_MoveParent,
/* 57775*/              OPC_RecordChild1, // #2 = $A
/* 57776*/              OPC_MoveParent,
/* 57777*/              OPC_CheckType, MVT::v4i32,
/* 57779*/              OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 57781*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::XXSEL), 0,
                            MVT::v4i32, 3/*#Ops*/, 2, 1, 0, 
                        // Src: (or:{ *:[v4i32] } (and:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$C, v4i32:{ *:[v4i32] }:$B), (and:{ *:[v4i32] } (xor:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } immAllOnesV:{ *:[v16i8] }), v4i32:{ *:[v4i32] }:$C), v4i32:{ *:[v4i32] }:$A)) - Complexity = 419
                        // Dst: (XXSEL:{ *:[v4i32] } ?:{ *:[v4i32] }:$A, ?:{ *:[v4i32] }:$B, ?:{ *:[v4i32] }:$C)
/* 57790*/            0, /*End of Scope*/
/* 57791*/          /*Scope*/ 63, /*->57855*/
/* 57792*/            OPC_RecordChild0, // #2 = $A
/* 57793*/            OPC_MoveChild1,
/* 57794*/            OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 57797*/            OPC_Scope, 27, /*->57826*/ // 2 children in Scope
/* 57799*/              OPC_CheckChild0Same, 0,
/* 57801*/              OPC_MoveChild1,
/* 57802*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 57805*/              OPC_MoveChild0,
/* 57806*/              OPC_CheckImmAllOnesV,
/* 57807*/              OPC_CheckType, MVT::v16i8,
/* 57809*/              OPC_MoveParent,
/* 57810*/              OPC_MoveParent,
/* 57811*/              OPC_MoveParent,
/* 57812*/              OPC_MoveParent,
/* 57813*/              OPC_CheckType, MVT::v4i32,
/* 57815*/              OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 57817*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::XXSEL), 0,
                            MVT::v4i32, 3/*#Ops*/, 2, 1, 0, 
                        // Src: (or:{ *:[v4i32] } (and:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$C, v4i32:{ *:[v4i32] }:$B), (and:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$A, (xor:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$C, (bitconvert:{ *:[v4i32] } immAllOnesV:{ *:[v16i8] })))) - Complexity = 419
                        // Dst: (XXSEL:{ *:[v4i32] } ?:{ *:[v4i32] }:$A, ?:{ *:[v4i32] }:$B, ?:{ *:[v4i32] }:$C)
/* 57826*/            /*Scope*/ 27, /*->57854*/
/* 57827*/              OPC_MoveChild0,
/* 57828*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 57831*/              OPC_MoveChild0,
/* 57832*/              OPC_CheckImmAllOnesV,
/* 57833*/              OPC_CheckType, MVT::v16i8,
/* 57835*/              OPC_MoveParent,
/* 57836*/              OPC_MoveParent,
/* 57837*/              OPC_CheckChild1Same, 0,
/* 57839*/              OPC_MoveParent,
/* 57840*/              OPC_MoveParent,
/* 57841*/              OPC_CheckType, MVT::v4i32,
/* 57843*/              OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 57845*/              OPC_MorphNodeTo1, TARGET_VAL(PPC::XXSEL), 0,
                            MVT::v4i32, 3/*#Ops*/, 2, 1, 0, 
                        // Src: (or:{ *:[v4i32] } (and:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$C, v4i32:{ *:[v4i32] }:$B), (and:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$A, (xor:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } immAllOnesV:{ *:[v16i8] }), v4i32:{ *:[v4i32] }:$C))) - Complexity = 419
                        // Dst: (XXSEL:{ *:[v4i32] } ?:{ *:[v4i32] }:$A, ?:{ *:[v4i32] }:$B, ?:{ *:[v4i32] }:$C)
/* 57854*/            0, /*End of Scope*/
/* 57855*/          0, /*End of Scope*/
/* 57856*/        0, /*End of Scope*/
/* 57857*/      0, /*End of Scope*/
/* 57858*/    /*Scope*/ 57, /*->57916*/
/* 57859*/      OPC_RecordChild0, // #0 = $XA
/* 57860*/      OPC_MoveChild1,
/* 57861*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 57864*/      OPC_Scope, 24, /*->57890*/ // 2 children in Scope
/* 57866*/        OPC_RecordChild0, // #1 = $XB
/* 57867*/        OPC_MoveChild1,
/* 57868*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 57871*/        OPC_MoveChild0,
/* 57872*/        OPC_CheckImmAllOnesV,
/* 57873*/        OPC_CheckType, MVT::v16i8,
/* 57875*/        OPC_MoveParent,
/* 57876*/        OPC_MoveParent,
/* 57877*/        OPC_MoveParent,
/* 57878*/        OPC_CheckType, MVT::v4i32,
/* 57880*/        OPC_CheckPatternPredicate, 10, // (PPCSubTarget->hasP8Vector())
/* 57882*/        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] } immAllOnesV:{ *:[v16i8] }))) - Complexity = 413
                  // Dst: (XXLORC:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$XA, v4i32:{ *:[v4i32] }:$XB)
/* 57890*/      /*Scope*/ 24, /*->57915*/
/* 57891*/        OPC_MoveChild0,
/* 57892*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 57895*/        OPC_MoveChild0,
/* 57896*/        OPC_CheckImmAllOnesV,
/* 57897*/        OPC_CheckType, MVT::v16i8,
/* 57899*/        OPC_MoveParent,
/* 57900*/        OPC_MoveParent,
/* 57901*/        OPC_RecordChild1, // #1 = $XB
/* 57902*/        OPC_MoveParent,
/* 57903*/        OPC_CheckType, MVT::v4i32,
/* 57905*/        OPC_CheckPatternPredicate, 10, // (PPCSubTarget->hasP8Vector())
/* 57907*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::XXLORC), 0,
                      MVT::v4i32, 2/*#Ops*/, 0, 1, 
                  // Src: (or:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$XA, (xor:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } immAllOnesV:{ *:[v16i8] }), v4i32:{ *:[v4i32] }:$XB)) - Complexity = 413
                  // Dst: (XXLORC:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$XA, v4i32:{ *:[v4i32] }:$XB)
/* 57915*/      0, /*End of Scope*/
/* 57916*/    /*Scope*/ 58, /*->57975*/
/* 57917*/      OPC_MoveChild0,
/* 57918*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 57921*/      OPC_Scope, 25, /*->57948*/ // 2 children in Scope
/* 57923*/        OPC_RecordChild0, // #0 = $XB
/* 57924*/        OPC_MoveChild1,
/* 57925*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 57928*/        OPC_MoveChild0,
/* 57929*/        OPC_CheckImmAllOnesV,
/* 57930*/        OPC_CheckType, MVT::v16i8,
/* 57932*/        OPC_MoveParent,
/* 57933*/        OPC_MoveParent,
/* 57934*/        OPC_MoveParent,
/* 57935*/        OPC_RecordChild1, // #1 = $XA
/* 57936*/        OPC_CheckType, MVT::v4i32,
/* 57938*/        OPC_CheckPatternPredicate, 10, // (PPCSubTarget->hasP8Vector())
/* 57940*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::XXLORC), 0,
                      MVT::v4i32, 2/*#Ops*/, 1, 0, 
                  // Src: (or:{ *:[v4i32] } (xor:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$XB, (bitconvert:{ *:[v4i32] } immAllOnesV:{ *:[v16i8] })), v4i32:{ *:[v4i32] }:$XA) - Complexity = 413
                  // Dst: (XXLORC:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$XA, v4i32:{ *:[v4i32] }:$XB)
/* 57948*/      /*Scope*/ 25, /*->57974*/
/* 57949*/        OPC_MoveChild0,
/* 57950*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 57953*/        OPC_MoveChild0,
/* 57954*/        OPC_CheckImmAllOnesV,
/* 57955*/        OPC_CheckType, MVT::v16i8,
/* 57957*/        OPC_MoveParent,
/* 57958*/        OPC_MoveParent,
/* 57959*/        OPC_RecordChild1, // #0 = $XB
/* 57960*/        OPC_MoveParent,
/* 57961*/        OPC_RecordChild1, // #1 = $XA
/* 57962*/        OPC_CheckType, MVT::v4i32,
/* 57964*/        OPC_CheckPatternPredicate, 10, // (PPCSubTarget->hasP8Vector())
/* 57966*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::XXLORC), 0,
                      MVT::v4i32, 2/*#Ops*/, 1, 0, 
                  // Src: (or:{ *:[v4i32] } (xor:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } immAllOnesV:{ *:[v16i8] }), v4i32:{ *:[v4i32] }:$XB), v4i32:{ *:[v4i32] }:$XA) - Complexity = 413
                  // Dst: (XXLORC:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$XA, v4i32:{ *:[v4i32] }:$XB)
/* 57974*/      0, /*End of Scope*/
/* 57975*/    /*Scope*/ 74, /*->58050*/
/* 57976*/      OPC_RecordChild0, // #0 = $XA
/* 57977*/      OPC_Scope, 13, /*->57992*/ // 2 children in Scope
/* 57979*/        OPC_RecordChild1, // #1 = $XB
/* 57980*/        OPC_CheckType, MVT::v4i32,
/* 57982*/        OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 57984*/        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)
/* 57992*/      /*Scope*/ 56, /*->58049*/
/* 57993*/        OPC_MoveChild1,
/* 57994*/        OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 57997*/        OPC_Scope, 24, /*->58023*/ // 2 children in Scope
/* 57999*/          OPC_RecordChild0, // #1 = $vB
/* 58000*/          OPC_MoveChild1,
/* 58001*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 58004*/          OPC_MoveChild0,
/* 58005*/          OPC_CheckImmAllOnesV,
/* 58006*/          OPC_CheckType, MVT::v16i8,
/* 58008*/          OPC_MoveParent,
/* 58009*/          OPC_MoveParent,
/* 58010*/          OPC_MoveParent,
/* 58011*/          OPC_CheckType, MVT::v4i32,
/* 58013*/          OPC_CheckPatternPredicate, 35, // (PPCSubTarget->hasP8Altivec())
/* 58015*/          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] } immAllOnesV:{ *:[v16i8] }))) - Complexity = 13
                    // Dst: (VORC:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/* 58023*/        /*Scope*/ 24, /*->58048*/
/* 58024*/          OPC_MoveChild0,
/* 58025*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 58028*/          OPC_MoveChild0,
/* 58029*/          OPC_CheckImmAllOnesV,
/* 58030*/          OPC_CheckType, MVT::v16i8,
/* 58032*/          OPC_MoveParent,
/* 58033*/          OPC_MoveParent,
/* 58034*/          OPC_RecordChild1, // #1 = $vB
/* 58035*/          OPC_MoveParent,
/* 58036*/          OPC_CheckType, MVT::v4i32,
/* 58038*/          OPC_CheckPatternPredicate, 35, // (PPCSubTarget->hasP8Altivec())
/* 58040*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::VORC), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1, 
                    // Src: (or:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, (xor:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } immAllOnesV:{ *:[v16i8] }), v4i32:{ *:[v4i32] }:$vB)) - Complexity = 13
                    // Dst: (VORC:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/* 58048*/        0, /*End of Scope*/
/* 58049*/      0, /*End of Scope*/
/* 58050*/    /*Scope*/ 58, /*->58109*/
/* 58051*/      OPC_MoveChild0,
/* 58052*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 58055*/      OPC_Scope, 25, /*->58082*/ // 2 children in Scope
/* 58057*/        OPC_RecordChild0, // #0 = $vB
/* 58058*/        OPC_MoveChild1,
/* 58059*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 58062*/        OPC_MoveChild0,
/* 58063*/        OPC_CheckImmAllOnesV,
/* 58064*/        OPC_CheckType, MVT::v16i8,
/* 58066*/        OPC_MoveParent,
/* 58067*/        OPC_MoveParent,
/* 58068*/        OPC_MoveParent,
/* 58069*/        OPC_RecordChild1, // #1 = $vA
/* 58070*/        OPC_CheckType, MVT::v4i32,
/* 58072*/        OPC_CheckPatternPredicate, 35, // (PPCSubTarget->hasP8Altivec())
/* 58074*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::VORC), 0,
                      MVT::v4i32, 2/*#Ops*/, 1, 0, 
                  // Src: (or:{ *:[v4i32] } (xor:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vB, (bitconvert:{ *:[v4i32] } immAllOnesV:{ *:[v16i8] })), v4i32:{ *:[v4i32] }:$vA) - Complexity = 13
                  // Dst: (VORC:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/* 58082*/      /*Scope*/ 25, /*->58108*/
/* 58083*/        OPC_MoveChild0,
/* 58084*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 58087*/        OPC_MoveChild0,
/* 58088*/        OPC_CheckImmAllOnesV,
/* 58089*/        OPC_CheckType, MVT::v16i8,
/* 58091*/        OPC_MoveParent,
/* 58092*/        OPC_MoveParent,
/* 58093*/        OPC_RecordChild1, // #0 = $vB
/* 58094*/        OPC_MoveParent,
/* 58095*/        OPC_RecordChild1, // #1 = $vA
/* 58096*/        OPC_CheckType, MVT::v4i32,
/* 58098*/        OPC_CheckPatternPredicate, 35, // (PPCSubTarget->hasP8Altivec())
/* 58100*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::VORC), 0,
                      MVT::v4i32, 2/*#Ops*/, 1, 0, 
                  // Src: (or:{ *:[v4i32] } (xor:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } immAllOnesV:{ *:[v16i8] }), v4i32:{ *:[v4i32] }:$vB), v4i32:{ *:[v4i32] }:$vA) - Complexity = 13
                  // Dst: (VORC:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/* 58108*/      0, /*End of Scope*/
/* 58109*/    /*Scope*/ 34, /*->58144*/
/* 58110*/      OPC_RecordChild0, // #0 = $FRA
/* 58111*/      OPC_MoveChild1,
/* 58112*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 58115*/      OPC_RecordChild0, // #1 = $FRB
/* 58116*/      OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 58127*/      OPC_MoveParent,
/* 58128*/      OPC_CheckType, MVT::v4i1,
/* 58130*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 58132*/      OPC_EmitInteger, MVT::i32, 13, 
/* 58135*/      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] })
/* 58144*/    /*Scope*/ 34, /*->58179*/
/* 58145*/      OPC_MoveChild0,
/* 58146*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 58149*/      OPC_RecordChild0, // #0 = $FRB
/* 58150*/      OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 58161*/      OPC_MoveParent,
/* 58162*/      OPC_RecordChild1, // #1 = $FRA
/* 58163*/      OPC_CheckType, MVT::v4i1,
/* 58165*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 58167*/      OPC_EmitInteger, MVT::i32, 13, 
/* 58170*/      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] })
/* 58179*/    /*Scope*/ 32, /*->58212*/
/* 58180*/      OPC_RecordChild0, // #0 = $vA
/* 58181*/      OPC_RecordChild1, // #1 = $vB
/* 58182*/      OPC_SwitchType /*2 cases */, 10, MVT::v4i32,// ->58195
/* 58185*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 58187*/        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)
/* 58195*/      /*SwitchType*/ 14, MVT::v4i1,// ->58211
/* 58197*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 58199*/        OPC_EmitInteger, MVT::i32, 7, 
/* 58202*/        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] })
/* 58211*/      0, // EndSwitchType
/* 58212*/    0, /*End of Scope*/
/* 58213*/  /*SwitchOpcode*/ 7|128,1/*135*/, TARGET_VAL(PPCISD::Hi),// ->58352
/* 58217*/    OPC_RecordChild0, // #0 = $in
/* 58218*/    OPC_MoveChild0,
/* 58219*/    OPC_SwitchOpcode /*5 cases */, 23, TARGET_VAL(ISD::TargetGlobalAddress),// ->58246
/* 58223*/      OPC_MoveParent,
/* 58224*/      OPC_CheckChild1Integer, 0, 
/* 58226*/      OPC_Scope, 7, /*->58235*/ // 2 children in Scope
/* 58228*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::LIS), 0,
                      MVT::iPTR, 1/*#Ops*/, 0, 
                  // Src: (PPChi:{ *:[iPTR] } (tglobaladdr:{ *:[iPTR] }):$in, 0:{ *:[iPTR] }) - Complexity = 11
                  // Dst: (LIS:{ *:[iPTR] } (tglobaladdr:{ *:[i32] }):$in)
/* 58235*/      /*Scope*/ 9, /*->58245*/
/* 58236*/        OPC_CheckType, MVT::i64,
/* 58238*/        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)
/* 58245*/      0, /*End of Scope*/
/* 58246*/    /*SwitchOpcode*/ 23, TARGET_VAL(ISD::TargetConstantPool),// ->58272
/* 58249*/      OPC_MoveParent,
/* 58250*/      OPC_CheckChild1Integer, 0, 
/* 58252*/      OPC_Scope, 7, /*->58261*/ // 2 children in Scope
/* 58254*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::LIS), 0,
                      MVT::iPTR, 1/*#Ops*/, 0, 
                  // Src: (PPChi:{ *:[iPTR] } (tconstpool:{ *:[iPTR] }):$in, 0:{ *:[iPTR] }) - Complexity = 11
                  // Dst: (LIS:{ *:[iPTR] } (tconstpool:{ *:[i32] }):$in)
/* 58261*/      /*Scope*/ 9, /*->58271*/
/* 58262*/        OPC_CheckType, MVT::i64,
/* 58264*/        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)
/* 58271*/      0, /*End of Scope*/
/* 58272*/    /*SwitchOpcode*/ 23, TARGET_VAL(ISD::TargetJumpTable),// ->58298
/* 58275*/      OPC_MoveParent,
/* 58276*/      OPC_CheckChild1Integer, 0, 
/* 58278*/      OPC_Scope, 7, /*->58287*/ // 2 children in Scope
/* 58280*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::LIS), 0,
                      MVT::iPTR, 1/*#Ops*/, 0, 
                  // Src: (PPChi:{ *:[iPTR] } (tjumptable:{ *:[iPTR] }):$in, 0:{ *:[iPTR] }) - Complexity = 11
                  // Dst: (LIS:{ *:[iPTR] } (tjumptable:{ *:[i32] }):$in)
/* 58287*/      /*Scope*/ 9, /*->58297*/
/* 58288*/        OPC_CheckType, MVT::i64,
/* 58290*/        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)
/* 58297*/      0, /*End of Scope*/
/* 58298*/    /*SwitchOpcode*/ 23, TARGET_VAL(ISD::TargetBlockAddress),// ->58324
/* 58301*/      OPC_MoveParent,
/* 58302*/      OPC_CheckChild1Integer, 0, 
/* 58304*/      OPC_Scope, 7, /*->58313*/ // 2 children in Scope
/* 58306*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::LIS), 0,
                      MVT::iPTR, 1/*#Ops*/, 0, 
                  // Src: (PPChi:{ *:[iPTR] } (tblockaddress:{ *:[iPTR] }):$in, 0:{ *:[iPTR] }) - Complexity = 11
                  // Dst: (LIS:{ *:[iPTR] } (tblockaddress:{ *:[i32] }):$in)
/* 58313*/      /*Scope*/ 9, /*->58323*/
/* 58314*/        OPC_CheckType, MVT::i64,
/* 58316*/        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)
/* 58323*/      0, /*End of Scope*/
/* 58324*/    /*SwitchOpcode*/ 24, TARGET_VAL(ISD::TargetGlobalTLSAddress),// ->58351
/* 58327*/      OPC_MoveParent,
/* 58328*/      OPC_RecordChild1, // #1 = $in
/* 58329*/      OPC_SwitchType /*2 cases */, 8, MVT::i32,// ->58340
/* 58332*/        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)
/* 58340*/      /*SwitchType*/ 8, MVT::i64,// ->58350
/* 58342*/        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)
/* 58350*/      0, // EndSwitchType
/* 58351*/    0, // EndSwitchOpcode
/* 58352*/  /*SwitchOpcode*/ 7|128,1/*135*/, TARGET_VAL(PPCISD::Lo),// ->58491
/* 58356*/    OPC_RecordChild0, // #0 = $in
/* 58357*/    OPC_MoveChild0,
/* 58358*/    OPC_SwitchOpcode /*5 cases */, 23, TARGET_VAL(ISD::TargetGlobalAddress),// ->58385
/* 58362*/      OPC_MoveParent,
/* 58363*/      OPC_CheckChild1Integer, 0, 
/* 58365*/      OPC_Scope, 7, /*->58374*/ // 2 children in Scope
/* 58367*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::LI), 0,
                      MVT::iPTR, 1/*#Ops*/, 0, 
                  // Src: (PPClo:{ *:[iPTR] } (tglobaladdr:{ *:[iPTR] }):$in, 0:{ *:[iPTR] }) - Complexity = 11
                  // Dst: (LI:{ *:[iPTR] } (tglobaladdr:{ *:[i32] }):$in)
/* 58374*/      /*Scope*/ 9, /*->58384*/
/* 58375*/        OPC_CheckType, MVT::i64,
/* 58377*/        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)
/* 58384*/      0, /*End of Scope*/
/* 58385*/    /*SwitchOpcode*/ 23, TARGET_VAL(ISD::TargetConstantPool),// ->58411
/* 58388*/      OPC_MoveParent,
/* 58389*/      OPC_CheckChild1Integer, 0, 
/* 58391*/      OPC_Scope, 7, /*->58400*/ // 2 children in Scope
/* 58393*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::LI), 0,
                      MVT::iPTR, 1/*#Ops*/, 0, 
                  // Src: (PPClo:{ *:[iPTR] } (tconstpool:{ *:[iPTR] }):$in, 0:{ *:[iPTR] }) - Complexity = 11
                  // Dst: (LI:{ *:[iPTR] } (tconstpool:{ *:[i32] }):$in)
/* 58400*/      /*Scope*/ 9, /*->58410*/
/* 58401*/        OPC_CheckType, MVT::i64,
/* 58403*/        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)
/* 58410*/      0, /*End of Scope*/
/* 58411*/    /*SwitchOpcode*/ 23, TARGET_VAL(ISD::TargetJumpTable),// ->58437
/* 58414*/      OPC_MoveParent,
/* 58415*/      OPC_CheckChild1Integer, 0, 
/* 58417*/      OPC_Scope, 7, /*->58426*/ // 2 children in Scope
/* 58419*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::LI), 0,
                      MVT::iPTR, 1/*#Ops*/, 0, 
                  // Src: (PPClo:{ *:[iPTR] } (tjumptable:{ *:[iPTR] }):$in, 0:{ *:[iPTR] }) - Complexity = 11
                  // Dst: (LI:{ *:[iPTR] } (tjumptable:{ *:[i32] }):$in)
/* 58426*/      /*Scope*/ 9, /*->58436*/
/* 58427*/        OPC_CheckType, MVT::i64,
/* 58429*/        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)
/* 58436*/      0, /*End of Scope*/
/* 58437*/    /*SwitchOpcode*/ 23, TARGET_VAL(ISD::TargetBlockAddress),// ->58463
/* 58440*/      OPC_MoveParent,
/* 58441*/      OPC_CheckChild1Integer, 0, 
/* 58443*/      OPC_Scope, 7, /*->58452*/ // 2 children in Scope
/* 58445*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::LI), 0,
                      MVT::iPTR, 1/*#Ops*/, 0, 
                  // Src: (PPClo:{ *:[iPTR] } (tblockaddress:{ *:[iPTR] }):$in, 0:{ *:[iPTR] }) - Complexity = 11
                  // Dst: (LI:{ *:[iPTR] } (tblockaddress:{ *:[i32] }):$in)
/* 58452*/      /*Scope*/ 9, /*->58462*/
/* 58453*/        OPC_CheckType, MVT::i64,
/* 58455*/        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)
/* 58462*/      0, /*End of Scope*/
/* 58463*/    /*SwitchOpcode*/ 24, TARGET_VAL(ISD::TargetGlobalTLSAddress),// ->58490
/* 58466*/      OPC_MoveParent,
/* 58467*/      OPC_RecordChild1, // #1 = $in
/* 58468*/      OPC_SwitchType /*2 cases */, 8, MVT::i32,// ->58479
/* 58471*/        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)
/* 58479*/      /*SwitchType*/ 8, MVT::i64,// ->58489
/* 58481*/        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)
/* 58489*/      0, // EndSwitchType
/* 58490*/    0, // EndSwitchOpcode
/* 58491*/  /*SwitchOpcode*/ 83, TARGET_VAL(ISD::ATOMIC_FENCE),// ->58577
/* 58494*/    OPC_RecordNode, // #0 = 'atomic_fence' chained node
/* 58495*/    OPC_Scope, 44, /*->58541*/ // 2 children in Scope
/* 58497*/      OPC_CheckChild1Integer, 7, 
/* 58499*/      OPC_Scope, 19, /*->58520*/ // 2 children in Scope
/* 58501*/        OPC_CheckChild1Type, MVT::i64,
/* 58503*/        OPC_MoveChild2,
/* 58504*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 58507*/        OPC_MoveParent,
/* 58508*/        OPC_CheckPatternPredicate, 16, // (!PPCSubTarget->hasOnlyMSYNC())
/* 58510*/        OPC_EmitMergeInputChains1_0,
/* 58511*/        OPC_EmitInteger, MVT::i32, 0, 
/* 58514*/        OPC_MorphNodeTo0, TARGET_VAL(PPC::SYNC), 0|OPFL_Chain,
                      1/*#Ops*/, 1, 
                  // Src: (atomic_fence 7:{ *:[i64] }, (timm:{ *:[i64] })) - Complexity = 11
                  // Dst: (SYNC 0:{ *:[i32] })
/* 58520*/      /*Scope*/ 19, /*->58540*/
/* 58521*/        OPC_CheckChild1Type, MVT::i32,
/* 58523*/        OPC_MoveChild2,
/* 58524*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 58527*/        OPC_MoveParent,
/* 58528*/        OPC_CheckPatternPredicate, 16, // (!PPCSubTarget->hasOnlyMSYNC())
/* 58530*/        OPC_EmitMergeInputChains1_0,
/* 58531*/        OPC_EmitInteger, MVT::i32, 0, 
/* 58534*/        OPC_MorphNodeTo0, TARGET_VAL(PPC::SYNC), 0|OPFL_Chain,
                      1/*#Ops*/, 1, 
                  // Src: (atomic_fence 7:{ *:[i32] }, (timm:{ *:[i32] })) - Complexity = 11
                  // Dst: (SYNC 0:{ *:[i32] })
/* 58540*/      0, /*End of Scope*/
/* 58541*/    /*Scope*/ 34, /*->58576*/
/* 58542*/      OPC_MoveChild1,
/* 58543*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 58546*/      OPC_MoveParent,
/* 58547*/      OPC_MoveChild2,
/* 58548*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 58551*/      OPC_MoveParent,
/* 58552*/      OPC_Scope, 12, /*->58566*/ // 2 children in Scope
/* 58554*/        OPC_CheckPatternPredicate, 16, // (!PPCSubTarget->hasOnlyMSYNC())
/* 58556*/        OPC_EmitMergeInputChains1_0,
/* 58557*/        OPC_EmitInteger, MVT::i32, 1, 
/* 58560*/        OPC_MorphNodeTo0, TARGET_VAL(PPC::SYNC), 0|OPFL_Chain,
                      1/*#Ops*/, 1, 
                  // Src: (atomic_fence (timm:{ *:[iPTR] }), (timm:{ *:[iPTR] })) - Complexity = 9
                  // Dst: (SYNC 1:{ *:[i32] })
/* 58566*/      /*Scope*/ 8, /*->58575*/
/* 58567*/        OPC_CheckPatternPredicate, 17, // (PPCSubTarget->hasOnlyMSYNC())
/* 58569*/        OPC_EmitMergeInputChains1_0,
/* 58570*/        OPC_MorphNodeTo0, TARGET_VAL(PPC::MSYNC), 0|OPFL_Chain,
                      0/*#Ops*/, 
                  // Src: (atomic_fence (timm:{ *:[iPTR] }), (timm:{ *:[iPTR] })) - Complexity = 9
                  // Dst: (MSYNC)
/* 58575*/      0, /*End of Scope*/
/* 58576*/    0, /*End of Scope*/
/* 58577*/  /*SwitchOpcode*/ 86, TARGET_VAL(ISD::TRUNCATE),// ->58666
/* 58580*/    OPC_Scope, 42, /*->58624*/ // 2 children in Scope
/* 58582*/      OPC_MoveChild0,
/* 58583*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 58586*/      OPC_RecordChild0, // #0 = $in
/* 58587*/      OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 58598*/      OPC_SwitchType /*2 cases */, 10, MVT::i32,// ->58611
/* 58601*/        OPC_MoveParent,
/* 58602*/        OPC_CheckType, MVT::i1,
/* 58604*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::ANDI_rec_1_EQ_BIT), 0,
                      MVT::i1, 1/*#Ops*/, 0, 
                  // Src: (trunc:{ *:[i1] } (xor:{ *:[i32] } i32:{ *:[i32] }:$in, -1:{ *:[i32] })) - Complexity = 11
                  // Dst: (ANDI_rec_1_EQ_BIT:{ *:[i1] } i32:{ *:[i32] }:$in)
/* 58611*/      /*SwitchType*/ 10, MVT::i64,// ->58623
/* 58613*/        OPC_MoveParent,
/* 58614*/        OPC_CheckType, MVT::i1,
/* 58616*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::ANDI_rec_1_EQ_BIT8), 0,
                      MVT::i1, 1/*#Ops*/, 0, 
                  // Src: (trunc:{ *:[i1] } (xor:{ *:[i64] } i64:{ *:[i64] }:$in, -1:{ *:[i64] })) - Complexity = 11
                  // Dst: (ANDI_rec_1_EQ_BIT8:{ *:[i1] } i64:{ *:[i64] }:$in)
/* 58623*/      0, // EndSwitchType
/* 58624*/    /*Scope*/ 40, /*->58665*/
/* 58625*/      OPC_RecordChild0, // #0 = $in
/* 58626*/      OPC_SwitchType /*2 cases */, 11, MVT::i32,// ->58640
/* 58629*/        OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 58632*/        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] })
/* 58640*/      /*SwitchType*/ 22, MVT::i1,// ->58664
/* 58642*/        OPC_Scope, 9, /*->58653*/ // 2 children in Scope
/* 58644*/          OPC_CheckChild0Type, MVT::i32,
/* 58646*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::ANDI_rec_1_GT_BIT), 0,
                        MVT::i1, 1/*#Ops*/, 0, 
                    // Src: (trunc:{ *:[i1] } i32:{ *:[i32] }:$in) - Complexity = 3
                    // Dst: (ANDI_rec_1_GT_BIT:{ *:[i1] } i32:{ *:[i32] }:$in)
/* 58653*/        /*Scope*/ 9, /*->58663*/
/* 58654*/          OPC_CheckChild0Type, MVT::i64,
/* 58656*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::ANDI_rec_1_GT_BIT8), 0,
                        MVT::i1, 1/*#Ops*/, 0, 
                    // Src: (trunc:{ *:[i1] } i64:{ *:[i64] }:$in) - Complexity = 3
                    // Dst: (ANDI_rec_1_GT_BIT8:{ *:[i1] } i64:{ *:[i64] }:$in)
/* 58663*/        0, /*End of Scope*/
/* 58664*/      0, // EndSwitchType
/* 58665*/    0, /*End of Scope*/
/* 58666*/  /*SwitchOpcode*/ 21, TARGET_VAL(ISD::CALLSEQ_START),// ->58690
/* 58669*/    OPC_RecordNode, // #0 = 'callseq_start' chained node
/* 58670*/    OPC_RecordChild1, // #1 = $amt1
/* 58671*/    OPC_MoveChild1,
/* 58672*/    OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 58675*/    OPC_MoveParent,
/* 58676*/    OPC_RecordChild2, // #2 = $amt2
/* 58677*/    OPC_MoveChild2,
/* 58678*/    OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 58681*/    OPC_MoveParent,
/* 58682*/    OPC_EmitMergeInputChains1_0,
/* 58683*/    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)
/* 58690*/  /*SwitchOpcode*/ 22, TARGET_VAL(ISD::CALLSEQ_END),// ->58715
/* 58693*/    OPC_RecordNode, // #0 = 'callseq_end' chained node
/* 58694*/    OPC_CaptureGlueInput,
/* 58695*/    OPC_RecordChild1, // #1 = $amt1
/* 58696*/    OPC_MoveChild1,
/* 58697*/    OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 58700*/    OPC_MoveParent,
/* 58701*/    OPC_RecordChild2, // #2 = $amt2
/* 58702*/    OPC_MoveChild2,
/* 58703*/    OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 58706*/    OPC_MoveParent,
/* 58707*/    OPC_EmitMergeInputChains1_0,
/* 58708*/    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)
/* 58715*/  /*SwitchOpcode*/ 53|128,1/*181*/, TARGET_VAL(PPCISD::TC_RETURN),// ->58900
/* 58719*/    OPC_RecordNode, // #0 = 'PPCtc_return' chained node
/* 58720*/    OPC_CaptureGlueInput,
/* 58721*/    OPC_RecordChild1, // #1 = $func
/* 58722*/    OPC_Scope, 8|128,1/*136*/, /*->58861*/ // 3 children in Scope
/* 58725*/      OPC_MoveChild1,
/* 58726*/      OPC_SwitchOpcode /*3 cases */, 44, TARGET_VAL(ISD::Constant),// ->58774
/* 58730*/        OPC_SwitchType /*2 cases */, 19, MVT::i32,// ->58752
/* 58733*/          OPC_MoveParent,
/* 58734*/          OPC_RecordChild2, // #2 = $offset
/* 58735*/          OPC_MoveChild2,
/* 58736*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 58739*/          OPC_MoveParent,
/* 58740*/          OPC_EmitMergeInputChains1_0,
/* 58741*/          OPC_EmitConvertToTarget, 1,
/* 58743*/          OPC_EmitConvertToTarget, 2,
/* 58745*/          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)
/* 58752*/        /*SwitchType*/ 19, MVT::i64,// ->58773
/* 58754*/          OPC_MoveParent,
/* 58755*/          OPC_RecordChild2, // #2 = $offset
/* 58756*/          OPC_MoveChild2,
/* 58757*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 58760*/          OPC_MoveParent,
/* 58761*/          OPC_EmitMergeInputChains1_0,
/* 58762*/          OPC_EmitConvertToTarget, 1,
/* 58764*/          OPC_EmitConvertToTarget, 2,
/* 58766*/          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)
/* 58773*/        0, // EndSwitchType
/* 58774*/      /*SwitchOpcode*/ 40, TARGET_VAL(ISD::TargetGlobalAddress),// ->58817
/* 58777*/        OPC_SwitchType /*2 cases */, 17, MVT::i32,// ->58797
/* 58780*/          OPC_MoveParent,
/* 58781*/          OPC_RecordChild2, // #2 = $imm
/* 58782*/          OPC_MoveChild2,
/* 58783*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 58786*/          OPC_MoveParent,
/* 58787*/          OPC_EmitMergeInputChains1_0,
/* 58788*/          OPC_EmitConvertToTarget, 2,
/* 58790*/          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)
/* 58797*/        /*SwitchType*/ 17, MVT::i64,// ->58816
/* 58799*/          OPC_MoveParent,
/* 58800*/          OPC_RecordChild2, // #2 = $imm
/* 58801*/          OPC_MoveChild2,
/* 58802*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 58805*/          OPC_MoveParent,
/* 58806*/          OPC_EmitMergeInputChains1_0,
/* 58807*/          OPC_EmitConvertToTarget, 2,
/* 58809*/          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)
/* 58816*/        0, // EndSwitchType
/* 58817*/      /*SwitchOpcode*/ 40, TARGET_VAL(ISD::TargetExternalSymbol),// ->58860
/* 58820*/        OPC_SwitchType /*2 cases */, 17, MVT::i32,// ->58840
/* 58823*/          OPC_MoveParent,
/* 58824*/          OPC_RecordChild2, // #2 = $imm
/* 58825*/          OPC_MoveChild2,
/* 58826*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 58829*/          OPC_MoveParent,
/* 58830*/          OPC_EmitMergeInputChains1_0,
/* 58831*/          OPC_EmitConvertToTarget, 2,
/* 58833*/          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)
/* 58840*/        /*SwitchType*/ 17, MVT::i64,// ->58859
/* 58842*/          OPC_MoveParent,
/* 58843*/          OPC_RecordChild2, // #2 = $imm
/* 58844*/          OPC_MoveChild2,
/* 58845*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 58848*/          OPC_MoveParent,
/* 58849*/          OPC_EmitMergeInputChains1_0,
/* 58850*/          OPC_EmitConvertToTarget, 2,
/* 58852*/          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)
/* 58859*/        0, // EndSwitchType
/* 58860*/      0, // EndSwitchOpcode
/* 58861*/    /*Scope*/ 18, /*->58880*/
/* 58862*/      OPC_CheckChild1Type, MVT::i32,
/* 58864*/      OPC_RecordChild2, // #2 = $imm
/* 58865*/      OPC_MoveChild2,
/* 58866*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 58869*/      OPC_MoveParent,
/* 58870*/      OPC_EmitMergeInputChains1_0,
/* 58871*/      OPC_EmitConvertToTarget, 2,
/* 58873*/      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)
/* 58880*/    /*Scope*/ 18, /*->58899*/
/* 58881*/      OPC_CheckChild1Type, MVT::i64,
/* 58883*/      OPC_RecordChild2, // #2 = $imm
/* 58884*/      OPC_MoveChild2,
/* 58885*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 58888*/      OPC_MoveParent,
/* 58889*/      OPC_EmitMergeInputChains1_0,
/* 58890*/      OPC_EmitConvertToTarget, 2,
/* 58892*/      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)
/* 58899*/    0, /*End of Scope*/
/* 58900*/  /*SwitchOpcode*/ 28, TARGET_VAL(PPCISD::MFBHRBE),// ->58931
/* 58903*/    OPC_RecordNode, // #0 = 'PPCmfbhrbe' chained node
/* 58904*/    OPC_RecordChild1, // #1 = $imm
/* 58905*/    OPC_MoveChild1,
/* 58906*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 58909*/    OPC_MoveParent,
/* 58910*/    OPC_RecordChild2, // #2 = $dmy
/* 58911*/    OPC_MoveChild2,
/* 58912*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 58915*/    OPC_MoveParent,
/* 58916*/    OPC_CheckType, MVT::i32,
/* 58918*/    OPC_EmitMergeInputChains1_0,
/* 58919*/    OPC_EmitConvertToTarget, 1,
/* 58921*/    OPC_EmitConvertToTarget, 2,
/* 58923*/    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)
/* 58931*/  /*SwitchOpcode*/ 37, TARGET_VAL(PPCISD::ADDI_TLSGD_L_ADDR),// ->58971
/* 58934*/    OPC_RecordChild0, // #0 = $reg
/* 58935*/    OPC_RecordChild1, // #1 = $disp
/* 58936*/    OPC_MoveChild1,
/* 58937*/    OPC_CheckOpcode, TARGET_VAL(ISD::TargetGlobalTLSAddress),
/* 58940*/    OPC_MoveParent,
/* 58941*/    OPC_RecordChild2, // #2 = $sym
/* 58942*/    OPC_MoveChild2,
/* 58943*/    OPC_CheckOpcode, TARGET_VAL(ISD::TargetGlobalTLSAddress),
/* 58946*/    OPC_MoveParent,
/* 58947*/    OPC_SwitchType /*2 cases */, 9, MVT::i32,// ->58959
/* 58950*/      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)
/* 58959*/    /*SwitchType*/ 9, MVT::i64,// ->58970
/* 58961*/      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)
/* 58970*/    0, // EndSwitchType
/* 58971*/  /*SwitchOpcode*/ 37, TARGET_VAL(PPCISD::ADDI_TLSLD_L_ADDR),// ->59011
/* 58974*/    OPC_RecordChild0, // #0 = $reg
/* 58975*/    OPC_RecordChild1, // #1 = $disp
/* 58976*/    OPC_MoveChild1,
/* 58977*/    OPC_CheckOpcode, TARGET_VAL(ISD::TargetGlobalTLSAddress),
/* 58980*/    OPC_MoveParent,
/* 58981*/    OPC_RecordChild2, // #2 = $sym
/* 58982*/    OPC_MoveChild2,
/* 58983*/    OPC_CheckOpcode, TARGET_VAL(ISD::TargetGlobalTLSAddress),
/* 58986*/    OPC_MoveParent,
/* 58987*/    OPC_SwitchType /*2 cases */, 9, MVT::i32,// ->58999
/* 58990*/      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)
/* 58999*/    /*SwitchType*/ 9, MVT::i64,// ->59010
/* 59001*/      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)
/* 59010*/    0, // EndSwitchType
/* 59011*/  /*SwitchOpcode*/ 36, TARGET_VAL(PPCISD::EH_SJLJ_SETJMP),// ->59050
/* 59014*/    OPC_RecordNode, // #0 = 'PPCeh_sjlj_setjmp' chained node
/* 59015*/    OPC_RecordChild1, // #1 = $buf
/* 59016*/    OPC_CheckType, MVT::i32,
/* 59018*/    OPC_Scope, 14, /*->59034*/ // 2 children in Scope
/* 59020*/      OPC_CheckPatternPredicate, 40, // (!PPCSubTarget->isPPC64())
/* 59022*/      OPC_CheckComplexPat, /*CP*/8, /*#*/1, // SelectAddr:$buf #2
/* 59025*/      OPC_EmitMergeInputChains1_0,
/* 59026*/      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)
/* 59034*/    /*Scope*/ 14, /*->59049*/
/* 59035*/      OPC_CheckPatternPredicate, 41, // (PPCSubTarget->isPPC64())
/* 59037*/      OPC_CheckComplexPat, /*CP*/8, /*#*/1, // SelectAddr:$buf #2
/* 59040*/      OPC_EmitMergeInputChains1_0,
/* 59041*/      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)
/* 59049*/    0, /*End of Scope*/
/* 59050*/  /*SwitchOpcode*/ 30, TARGET_VAL(PPCISD::EH_SJLJ_LONGJMP),// ->59083
/* 59053*/    OPC_RecordNode, // #0 = 'PPCeh_sjlj_longjmp' chained node
/* 59054*/    OPC_RecordChild1, // #1 = $buf
/* 59055*/    OPC_Scope, 12, /*->59069*/ // 2 children in Scope
/* 59057*/      OPC_CheckPatternPredicate, 40, // (!PPCSubTarget->isPPC64())
/* 59059*/      OPC_CheckComplexPat, /*CP*/8, /*#*/1, // SelectAddr:$buf #2
/* 59062*/      OPC_EmitMergeInputChains1_0,
/* 59063*/      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)
/* 59069*/    /*Scope*/ 12, /*->59082*/
/* 59070*/      OPC_CheckPatternPredicate, 41, // (PPCSubTarget->isPPC64())
/* 59072*/      OPC_CheckComplexPat, /*CP*/8, /*#*/1, // SelectAddr:$buf #2
/* 59075*/      OPC_EmitMergeInputChains1_0,
/* 59076*/      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)
/* 59082*/    0, /*End of Scope*/
/* 59083*/  /*SwitchOpcode*/ 85|128,1/*213*/, TARGET_VAL(ISD::SUB),// ->59300
/* 59087*/    OPC_Scope, 23, /*->59112*/ // 4 children in Scope
/* 59089*/      OPC_CheckChild0Integer, 0, 
/* 59091*/      OPC_RecordChild1, // #0 = $rA
/* 59092*/      OPC_SwitchType /*2 cases */, 7, MVT::i32,// ->59102
/* 59095*/        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)
/* 59102*/      /*SwitchType*/ 7, MVT::i64,// ->59111
/* 59104*/        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)
/* 59111*/      0, // EndSwitchType
/* 59112*/    /*Scope*/ 80, /*->59193*/
/* 59113*/      OPC_RecordChild0, // #0 = $imm
/* 59114*/      OPC_Scope, 42, /*->59158*/ // 2 children in Scope
/* 59116*/        OPC_MoveChild0,
/* 59117*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 59120*/        OPC_Scope, 17, /*->59139*/ // 2 children in Scope
/* 59122*/          OPC_CheckPredicate, 13, // Predicate_imm32SExt16
/* 59124*/          OPC_MoveParent,
/* 59125*/          OPC_RecordChild1, // #1 = $in
/* 59126*/          OPC_CheckType, MVT::i32,
/* 59128*/          OPC_EmitConvertToTarget, 0,
/* 59130*/          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)
/* 59139*/        /*Scope*/ 17, /*->59157*/
/* 59140*/          OPC_CheckPredicate, 14, // Predicate_imm64SExt16
/* 59142*/          OPC_MoveParent,
/* 59143*/          OPC_RecordChild1, // #1 = $in
/* 59144*/          OPC_CheckType, MVT::i64,
/* 59146*/          OPC_EmitConvertToTarget, 0,
/* 59148*/          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)
/* 59157*/        0, /*End of Scope*/
/* 59158*/      /*Scope*/ 33, /*->59192*/
/* 59159*/        OPC_RecordChild1, // #1 = $rA
/* 59160*/        OPC_SwitchType /*3 cases */, 8, MVT::i32,// ->59171
/* 59163*/          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)
/* 59171*/        /*SwitchType*/ 8, MVT::i64,// ->59181
/* 59173*/          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)
/* 59181*/        /*SwitchType*/ 8, MVT::i1,// ->59191
/* 59183*/          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)
/* 59191*/        0, // EndSwitchType
/* 59192*/      0, /*End of Scope*/
/* 59193*/    /*Scope*/ 40, /*->59234*/
/* 59194*/      OPC_MoveChild0,
/* 59195*/      OPC_Scope, 21, /*->59218*/ // 2 children in Scope
/* 59197*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 59200*/        OPC_MoveChild0,
/* 59201*/        OPC_CheckImmAllZerosV,
/* 59202*/        OPC_CheckType, MVT::v4i32,
/* 59204*/        OPC_MoveParent,
/* 59205*/        OPC_MoveParent,
/* 59206*/        OPC_RecordChild1, // #0 = $vB
/* 59207*/        OPC_CheckType, MVT::v2i64,
/* 59209*/        OPC_CheckPatternPredicate, 32, // (PPCSubTarget->hasP9Altivec())
/* 59211*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::VNEGD), 0,
                      MVT::v2i64, 1/*#Ops*/, 0, 
                  // Src: (sub:{ *:[v2i64] } (bitconvert:{ *:[v2i64] } immAllZerosV:{ *:[v4i32] }), v2i64:{ *:[v2i64] }:$vB) - Complexity = 10
                  // Dst: (VNEGD:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vB)
/* 59218*/      /*Scope*/ 14, /*->59233*/
/* 59219*/        OPC_CheckImmAllZerosV,
/* 59220*/        OPC_MoveParent,
/* 59221*/        OPC_RecordChild1, // #0 = $vB
/* 59222*/        OPC_CheckType, MVT::v4i32,
/* 59224*/        OPC_CheckPatternPredicate, 32, // (PPCSubTarget->hasP9Altivec())
/* 59226*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::VNEGW), 0,
                      MVT::v4i32, 1/*#Ops*/, 0, 
                  // Src: (sub:{ *:[v4i32] } immAllZerosV:{ *:[v4i32] }, v4i32:{ *:[v4i32] }:$vB) - Complexity = 7
                  // Dst: (VNEGW:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vB)
/* 59233*/      0, /*End of Scope*/
/* 59234*/    /*Scope*/ 64, /*->59299*/
/* 59235*/      OPC_RecordChild0, // #0 = $vA
/* 59236*/      OPC_RecordChild1, // #1 = $vB
/* 59237*/      OPC_SwitchType /*5 cases */, 10, MVT::v16i8,// ->59250
/* 59240*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 59242*/        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)
/* 59250*/      /*SwitchType*/ 10, MVT::v8i16,// ->59262
/* 59252*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 59254*/        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)
/* 59262*/      /*SwitchType*/ 10, MVT::v4i32,// ->59274
/* 59264*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 59266*/        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)
/* 59274*/      /*SwitchType*/ 10, MVT::v2i64,// ->59286
/* 59276*/        OPC_CheckPatternPredicate, 35, // (PPCSubTarget->hasP8Altivec())
/* 59278*/        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)
/* 59286*/      /*SwitchType*/ 10, MVT::v1i128,// ->59298
/* 59288*/        OPC_CheckPatternPredicate, 35, // (PPCSubTarget->hasP8Altivec())
/* 59290*/        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)
/* 59298*/      0, // EndSwitchType
/* 59299*/    0, /*End of Scope*/
/* 59300*/  /*SwitchOpcode*/ 89, TARGET_VAL(ISD::ADDE),// ->59392
/* 59303*/    OPC_CaptureGlueInput,
/* 59304*/    OPC_RecordChild0, // #0 = $rA
/* 59305*/    OPC_Scope, 33, /*->59340*/ // 3 children in Scope
/* 59307*/      OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 59318*/      OPC_SwitchType /*2 cases */, 8, MVT::i32,// ->59329
/* 59321*/        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)
/* 59329*/      /*SwitchType*/ 8, MVT::i64,// ->59339
/* 59331*/        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)
/* 59339*/      0, // EndSwitchType
/* 59340*/    /*Scope*/ 24, /*->59365*/
/* 59341*/      OPC_CheckChild1Integer, 0, 
/* 59343*/      OPC_SwitchType /*2 cases */, 8, MVT::i32,// ->59354
/* 59346*/        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)
/* 59354*/      /*SwitchType*/ 8, MVT::i64,// ->59364
/* 59356*/        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)
/* 59364*/      0, // EndSwitchType
/* 59365*/    /*Scope*/ 25, /*->59391*/
/* 59366*/      OPC_RecordChild1, // #1 = $rB
/* 59367*/      OPC_SwitchType /*2 cases */, 9, MVT::i32,// ->59379
/* 59370*/        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)
/* 59379*/      /*SwitchType*/ 9, MVT::i64,// ->59390
/* 59381*/        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)
/* 59390*/      0, // EndSwitchType
/* 59391*/    0, /*End of Scope*/
/* 59392*/  /*SwitchOpcode*/ 91, TARGET_VAL(ISD::SUBE),// ->59486
/* 59395*/    OPC_CaptureGlueInput,
/* 59396*/    OPC_Scope, 34, /*->59432*/ // 3 children in Scope
/* 59398*/      OPC_CheckChild0Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 59409*/      OPC_RecordChild1, // #0 = $rA
/* 59410*/      OPC_SwitchType /*2 cases */, 8, MVT::i32,// ->59421
/* 59413*/        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)
/* 59421*/      /*SwitchType*/ 8, MVT::i64,// ->59431
/* 59423*/        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)
/* 59431*/      0, // EndSwitchType
/* 59432*/    /*Scope*/ 25, /*->59458*/
/* 59433*/      OPC_CheckChild0Integer, 0, 
/* 59435*/      OPC_RecordChild1, // #0 = $rA
/* 59436*/      OPC_SwitchType /*2 cases */, 8, MVT::i32,// ->59447
/* 59439*/        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)
/* 59447*/      /*SwitchType*/ 8, MVT::i64,// ->59457
/* 59449*/        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)
/* 59457*/      0, // EndSwitchType
/* 59458*/    /*Scope*/ 26, /*->59485*/
/* 59459*/      OPC_RecordChild0, // #0 = $rB
/* 59460*/      OPC_RecordChild1, // #1 = $rA
/* 59461*/      OPC_SwitchType /*2 cases */, 9, MVT::i32,// ->59473
/* 59464*/        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)
/* 59473*/      /*SwitchType*/ 9, MVT::i64,// ->59484
/* 59475*/        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)
/* 59484*/      0, // EndSwitchType
/* 59485*/    0, /*End of Scope*/
/* 59486*/  /*SwitchOpcode*/ 43, TARGET_VAL(PPCISD::EXTRACT_SPE),// ->59532
/* 59489*/    OPC_RecordChild0, // #0 = $rA
/* 59490*/    OPC_Scope, 15, /*->59507*/ // 2 children in Scope
/* 59492*/      OPC_CheckChild1Integer, 0, 
/* 59494*/      OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 59496*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 59499*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                    MVT::i32, 2/*#Ops*/, 0, 1, 
                // Src: (PPCextract_spe:{ *:[i32] } f64:{ *:[f64] }:$rA, 0:{ *:[iPTR] }) - Complexity = 8
                // Dst: (EXTRACT_SUBREG:{ *:[i32] } ?:{ *:[f64] }:$rA, sub_32:{ *:[i32] })
/* 59507*/    /*Scope*/ 23, /*->59531*/
/* 59508*/      OPC_CheckChild1Integer, 1, 
/* 59510*/      OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 59512*/      OPC_EmitNode1, TARGET_VAL(PPC::EVMERGEHI), 0,
                    MVT::f64, 2/*#Ops*/, 0, 0,  // Results = #1
/* 59520*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 59523*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                    MVT::i32, 2/*#Ops*/, 1, 2, 
                // Src: (PPCextract_spe:{ *:[i32] } f64:{ *:[f64] }:$rA, 1:{ *:[iPTR] }) - Complexity = 8
                // Dst: (EXTRACT_SUBREG:{ *:[i32] } (EVMERGEHI:{ *:[f64] } ?:{ *:[f64] }:$rA, ?:{ *:[f64] }:$rA), sub_32:{ *:[i32] })
/* 59531*/    0, /*End of Scope*/
/* 59532*/  /*SwitchOpcode*/ 79|128,7/*975*/, TARGET_VAL(ISD::INTRINSIC_W_CHAIN),// ->60511
/* 59536*/    OPC_RecordNode, // #0 = 'intrinsic_w_chain' chained node
/* 59537*/    OPC_Scope, 19, /*->59558*/ // 44 children in Scope
/* 59539*/      OPC_CheckChild1Integer, 48|128,46/*5936*/, 
/* 59542*/      OPC_RecordChild2, // #1 = $R
/* 59543*/      OPC_CheckPatternPredicate, 18, // (PPCSubTarget->hasHTM())
/* 59545*/      OPC_EmitMergeInputChains1_0,
/* 59546*/      OPC_EmitConvertToTarget, 1,
/* 59548*/      OPC_EmitNodeXForm, 5, 2, // HTM_get_imm
/* 59551*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::TEND), 0|OPFL_Chain,
                    MVT::i32, 1/*#Ops*/, 3, 
                // Src: (intrinsic_w_chain:{ *:[i32] } 5936:{ *:[iPTR] }, i32:{ *:[i32] }:$R) - Complexity = 8
                // Dst: (TEND:{ *:[i32] } (HTM_get_imm:{ *:[i32] } (imm:{ *:[i32] }):$R))
/* 59558*/    /*Scope*/ 14, /*->59573*/
/* 59559*/      OPC_CheckChild1Integer, 41|128,46/*5929*/, 
/* 59562*/      OPC_RecordChild2, // #1 = $R
/* 59563*/      OPC_CheckPatternPredicate, 18, // (PPCSubTarget->hasHTM())
/* 59565*/      OPC_EmitMergeInputChains1_0,
/* 59566*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::TABORT), 0|OPFL_Chain,
                    MVT::i32, 1/*#Ops*/, 1, 
                // Src: (intrinsic_w_chain:{ *:[i32] } 5929:{ *:[iPTR] }, i32:{ *:[i32] }:$R) - Complexity = 8
                // Dst: (TABORT:{ *:[i32] } ?:{ *:[i32] }:$R)
/* 59573*/    /*Scope*/ 23, /*->59597*/
/* 59574*/      OPC_CheckChild1Integer, 44|128,46/*5932*/, 
/* 59577*/      OPC_RecordChild2, // #1 = $TO
/* 59578*/      OPC_RecordChild3, // #2 = $RA
/* 59579*/      OPC_RecordChild4, // #3 = $RB
/* 59580*/      OPC_CheckPatternPredicate, 18, // (PPCSubTarget->hasHTM())
/* 59582*/      OPC_EmitMergeInputChains1_0,
/* 59583*/      OPC_EmitConvertToTarget, 1,
/* 59585*/      OPC_EmitNodeXForm, 5, 4, // HTM_get_imm
/* 59588*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::TABORTWC), 0|OPFL_Chain,
                    MVT::i32, 3/*#Ops*/, 5, 2, 3, 
                // Src: (intrinsic_w_chain:{ *:[i32] } 5932:{ *:[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)
/* 59597*/    /*Scope*/ 28, /*->59626*/
/* 59598*/      OPC_CheckChild1Integer, 45|128,46/*5933*/, 
/* 59601*/      OPC_RecordChild2, // #1 = $TO
/* 59602*/      OPC_RecordChild3, // #2 = $RA
/* 59603*/      OPC_RecordChild4, // #3 = $SI
/* 59604*/      OPC_CheckPatternPredicate, 18, // (PPCSubTarget->hasHTM())
/* 59606*/      OPC_EmitMergeInputChains1_0,
/* 59607*/      OPC_EmitConvertToTarget, 1,
/* 59609*/      OPC_EmitNodeXForm, 5, 4, // HTM_get_imm
/* 59612*/      OPC_EmitConvertToTarget, 3,
/* 59614*/      OPC_EmitNodeXForm, 5, 6, // HTM_get_imm
/* 59617*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::TABORTWCI), 0|OPFL_Chain,
                    MVT::i32, 3/*#Ops*/, 5, 2, 7, 
                // Src: (intrinsic_w_chain:{ *:[i32] } 5933:{ *:[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))
/* 59626*/    /*Scope*/ 23, /*->59650*/
/* 59627*/      OPC_CheckChild1Integer, 42|128,46/*5930*/, 
/* 59630*/      OPC_RecordChild2, // #1 = $TO
/* 59631*/      OPC_RecordChild3, // #2 = $RA
/* 59632*/      OPC_RecordChild4, // #3 = $RB
/* 59633*/      OPC_CheckPatternPredicate, 18, // (PPCSubTarget->hasHTM())
/* 59635*/      OPC_EmitMergeInputChains1_0,
/* 59636*/      OPC_EmitConvertToTarget, 1,
/* 59638*/      OPC_EmitNodeXForm, 5, 4, // HTM_get_imm
/* 59641*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::TABORTDC), 0|OPFL_Chain,
                    MVT::i32, 3/*#Ops*/, 5, 2, 3, 
                // Src: (intrinsic_w_chain:{ *:[i32] } 5930:{ *:[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)
/* 59650*/    /*Scope*/ 28, /*->59679*/
/* 59651*/      OPC_CheckChild1Integer, 43|128,46/*5931*/, 
/* 59654*/      OPC_RecordChild2, // #1 = $TO
/* 59655*/      OPC_RecordChild3, // #2 = $RA
/* 59656*/      OPC_RecordChild4, // #3 = $SI
/* 59657*/      OPC_CheckPatternPredicate, 18, // (PPCSubTarget->hasHTM())
/* 59659*/      OPC_EmitMergeInputChains1_0,
/* 59660*/      OPC_EmitConvertToTarget, 1,
/* 59662*/      OPC_EmitNodeXForm, 5, 4, // HTM_get_imm
/* 59665*/      OPC_EmitConvertToTarget, 3,
/* 59667*/      OPC_EmitNodeXForm, 5, 6, // HTM_get_imm
/* 59670*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::TABORTDCI), 0|OPFL_Chain,
                    MVT::i32, 3/*#Ops*/, 5, 2, 7, 
                // Src: (intrinsic_w_chain:{ *:[i32] } 5931:{ *:[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))
/* 59679*/    /*Scope*/ 14, /*->59694*/
/* 59680*/      OPC_CheckChild1Integer, 51|128,46/*5939*/, 
/* 59683*/      OPC_RecordChild2, // #1 = $RA
/* 59684*/      OPC_CheckPatternPredicate, 18, // (PPCSubTarget->hasHTM())
/* 59686*/      OPC_EmitMergeInputChains1_0,
/* 59687*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::TRECLAIM), 0|OPFL_Chain,
                    MVT::i32, 1/*#Ops*/, 1, 
                // Src: (intrinsic_w_chain:{ *:[i32] } 5939:{ *:[iPTR] }, i32:{ *:[i32] }:$RA) - Complexity = 8
                // Dst: (TRECLAIM:{ *:[i32] } ?:{ *:[i32] }:$RA)
/* 59694*/    /*Scope*/ 12, /*->59707*/
/* 59695*/      OPC_CheckChild1Integer, 50|128,46/*5938*/, 
/* 59698*/      OPC_CheckPatternPredicate, 18, // (PPCSubTarget->hasHTM())
/* 59700*/      OPC_EmitMergeInputChains1_0,
/* 59701*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::TRECHKPT), 0|OPFL_Chain,
                    MVT::i32, 0/*#Ops*/, 
                // Src: (intrinsic_w_chain:{ *:[i32] } 5938:{ *:[iPTR] }) - Complexity = 8
                // Dst: (TRECHKPT:{ *:[i32] })
/* 59707*/    /*Scope*/ 19, /*->59727*/
/* 59708*/      OPC_CheckChild1Integer, 54|128,46/*5942*/, 
/* 59711*/      OPC_RecordChild2, // #1 = $L
/* 59712*/      OPC_CheckPatternPredicate, 18, // (PPCSubTarget->hasHTM())
/* 59714*/      OPC_EmitMergeInputChains1_0,
/* 59715*/      OPC_EmitConvertToTarget, 1,
/* 59717*/      OPC_EmitNodeXForm, 5, 2, // HTM_get_imm
/* 59720*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::TSR), 0|OPFL_Chain,
                    MVT::i32, 1/*#Ops*/, 3, 
                // Src: (intrinsic_w_chain:{ *:[i32] } 5942:{ *:[iPTR] }, i32:{ *:[i32] }:$L) - Complexity = 8
                // Dst: (TSR:{ *:[i32] } (HTM_get_imm:{ *:[i32] } (imm:{ *:[i32] }):$L))
/* 59727*/    /*Scope*/ 17, /*->59745*/
/* 59728*/      OPC_CheckChild1Integer, 68|128,45/*5828*/, 
/* 59731*/      OPC_CheckPatternPredicate, 18, // (PPCSubTarget->hasHTM())
/* 59733*/      OPC_EmitMergeInputChains1_0,
/* 59734*/      OPC_EmitInteger, MVT::i32, 2|128,1/*130*/, 
/* 59738*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::MFSPR8), 0|OPFL_Chain,
                    MVT::i64, 1/*#Ops*/, 1, 
                // Src: (intrinsic_w_chain:{ *:[i64] } 5828:{ *:[iPTR] }) - Complexity = 8
                // Dst: (MFSPR8:{ *:[i64] } 130:{ *:[i32] })
/* 59745*/    /*Scope*/ 17, /*->59763*/
/* 59746*/      OPC_CheckChild1Integer, 69|128,45/*5829*/, 
/* 59749*/      OPC_CheckPatternPredicate, 18, // (PPCSubTarget->hasHTM())
/* 59751*/      OPC_EmitMergeInputChains1_0,
/* 59752*/      OPC_EmitInteger, MVT::i32, 3|128,1/*131*/, 
/* 59756*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::MFSPR8), 0|OPFL_Chain,
                    MVT::i64, 1/*#Ops*/, 1, 
                // Src: (intrinsic_w_chain:{ *:[i64] } 5829:{ *:[iPTR] }) - Complexity = 8
                // Dst: (MFSPR8:{ *:[i64] } 131:{ *:[i32] })
/* 59763*/    /*Scope*/ 17, /*->59781*/
/* 59764*/      OPC_CheckChild1Integer, 70|128,45/*5830*/, 
/* 59767*/      OPC_CheckPatternPredicate, 18, // (PPCSubTarget->hasHTM())
/* 59769*/      OPC_EmitMergeInputChains1_0,
/* 59770*/      OPC_EmitInteger, MVT::i32, 0|128,1/*128*/, 
/* 59774*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::MFSPR8), 0|OPFL_Chain,
                    MVT::i64, 1/*#Ops*/, 1, 
                // Src: (intrinsic_w_chain:{ *:[i64] } 5830:{ *:[iPTR] }) - Complexity = 8
                // Dst: (MFSPR8:{ *:[i64] } 128:{ *:[i32] })
/* 59781*/    /*Scope*/ 17, /*->59799*/
/* 59782*/      OPC_CheckChild1Integer, 71|128,45/*5831*/, 
/* 59785*/      OPC_CheckPatternPredicate, 18, // (PPCSubTarget->hasHTM())
/* 59787*/      OPC_EmitMergeInputChains1_0,
/* 59788*/      OPC_EmitInteger, MVT::i32, 1|128,1/*129*/, 
/* 59792*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::MFSPR8), 0|OPFL_Chain,
                    MVT::i64, 1/*#Ops*/, 1, 
                // Src: (intrinsic_w_chain:{ *:[i64] } 5831:{ *:[iPTR] }) - Complexity = 8
                // Dst: (MFSPR8:{ *:[i64] } 129:{ *:[i32] })
/* 59799*/    /*Scope*/ 16, /*->59816*/
/* 59800*/      OPC_CheckChild1Integer, 49|128,46/*5937*/, 
/* 59803*/      OPC_CheckPatternPredicate, 18, // (PPCSubTarget->hasHTM())
/* 59805*/      OPC_EmitMergeInputChains1_0,
/* 59806*/      OPC_EmitInteger, MVT::i32, 1, 
/* 59809*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::TEND), 0|OPFL_Chain,
                    MVT::i32, 1/*#Ops*/, 1, 
                // Src: (intrinsic_w_chain:{ *:[i32] } 5937:{ *:[iPTR] }) - Complexity = 8
                // Dst: (TEND:{ *:[i32] } 1:{ *:[i32] })
/* 59816*/    /*Scope*/ 16, /*->59833*/
/* 59817*/      OPC_CheckChild1Integer, 52|128,46/*5940*/, 
/* 59820*/      OPC_CheckPatternPredicate, 18, // (PPCSubTarget->hasHTM())
/* 59822*/      OPC_EmitMergeInputChains1_0,
/* 59823*/      OPC_EmitInteger, MVT::i32, 1, 
/* 59826*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::TSR), 0|OPFL_Chain,
                    MVT::i32, 1/*#Ops*/, 1, 
                // Src: (intrinsic_w_chain:{ *:[i32] } 5940:{ *:[iPTR] }) - Complexity = 8
                // Dst: (TSR:{ *:[i32] } 1:{ *:[i32] })
/* 59833*/    /*Scope*/ 16, /*->59850*/
/* 59834*/      OPC_CheckChild1Integer, 55|128,46/*5943*/, 
/* 59837*/      OPC_CheckPatternPredicate, 18, // (PPCSubTarget->hasHTM())
/* 59839*/      OPC_EmitMergeInputChains1_0,
/* 59840*/      OPC_EmitInteger, MVT::i32, 0, 
/* 59843*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::TSR), 0|OPFL_Chain,
                    MVT::i32, 1/*#Ops*/, 1, 
                // Src: (intrinsic_w_chain:{ *:[i32] } 5943:{ *:[iPTR] }) - Complexity = 8
                // Dst: (TSR:{ *:[i32] } 0:{ *:[i32] })
/* 59850*/    /*Scope*/ 64, /*->59915*/
/* 59851*/      OPC_CheckChild1Integer, 56|128,46/*5944*/, 
/* 59854*/      OPC_CheckPatternPredicate, 18, // (PPCSubTarget->hasHTM())
/* 59856*/      OPC_EmitMergeInputChains1_0,
/* 59857*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #1
/* 59863*/      OPC_EmitInteger, MVT::i32, 0, 
/* 59866*/      OPC_EmitInteger, MVT::i32, 0, 
/* 59869*/      OPC_EmitNode1, TARGET_VAL(PPC::LI), 0,
                    MVT::i32, 1/*#Ops*/, 3,  // Results = #4
/* 59876*/      OPC_EmitInteger, MVT::i32, 0, 
/* 59879*/      OPC_EmitNode1, TARGET_VAL(PPC::TABORTWCI), 0|OPFL_Chain,
                    MVT::i32, 3/*#Ops*/, 2, 4, 5,  // Results = #6
/* 59888*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 59891*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::i64, 3/*#Ops*/, 1, 6, 7,  // Results = #8
/* 59900*/      OPC_EmitInteger, MVT::i32, 36, 
/* 59903*/      OPC_EmitInteger, MVT::i32, 28, 
/* 59906*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::RLDICL), 0|OPFL_Chain,
                    MVT::i64, 3/*#Ops*/, 8, 9, 10, 
                // Src: (intrinsic_w_chain:{ *:[i64] } 5944:{ *:[iPTR] }) - Complexity = 8
                // Dst: (RLDICL:{ *:[i64] } (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), (TABORTWCI:{ *:[i32] } 0:{ *:[i32] }, (LI:{ *:[i32] } 0:{ *:[i32] }), 0:{ *:[i32] }), sub_32:{ *:[i32] }), 36:{ *:[i32] }, 28:{ *:[i32] })
/* 59915*/    /*Scope*/ 12, /*->59928*/
/* 59916*/      OPC_CheckChild1Integer, 47|128,46/*5935*/, 
/* 59919*/      OPC_CheckPatternPredicate, 18, // (PPCSubTarget->hasHTM())
/* 59921*/      OPC_EmitMergeInputChains1_0,
/* 59922*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::TCHECK_RET), 0|OPFL_Chain,
                    MVT::i32, 0/*#Ops*/, 
                // Src: (intrinsic_w_chain:{ *:[i32] } 5935:{ *:[iPTR] }) - Complexity = 8
                // Dst: (TCHECK_RET:{ *:[i32] })
/* 59928*/    /*Scope*/ 33, /*->59962*/
/* 59929*/      OPC_CheckChild1Integer, 46|128,46/*5934*/, 
/* 59932*/      OPC_RecordChild2, // #1 = $R
/* 59933*/      OPC_CheckPatternPredicate, 18, // (PPCSubTarget->hasHTM())
/* 59935*/      OPC_EmitMergeInputChains1_0,
/* 59936*/      OPC_EmitConvertToTarget, 1,
/* 59938*/      OPC_EmitNodeXForm, 5, 2, // HTM_get_imm
/* 59941*/      OPC_EmitNode1, TARGET_VAL(PPC::TBEGIN_RET), 0|OPFL_Chain,
                    MVT::i32, 1/*#Ops*/, 3,  // Results = #4
/* 59948*/      OPC_EmitInteger, MVT::i32, 1, 
/* 59951*/      OPC_EmitNode1, TARGET_VAL(PPC::XORI), 0,
                    MVT::i32, 2/*#Ops*/, 4, 5,  // Results = #6
/* 59959*/      OPC_CompleteMatch, 1, 6, 
                 // Src: (intrinsic_w_chain:{ *:[i32] } 5934:{ *:[iPTR] }, i32:{ *:[i32] }:$R) - Complexity = 8
                 // Dst: (XORI:{ *:[i32] } (TBEGIN_RET:{ *:[i32] } (HTM_get_imm:{ *:[i32] } (imm:{ *:[i32] }):$R)), 1:{ *:[i32] })
/* 59962*/    /*Scope*/ 31, /*->59994*/
/* 59963*/      OPC_CheckChild1Integer, 37|128,46/*5925*/, 
/* 59966*/      OPC_RecordChild2, // #1 = $RND
/* 59967*/      OPC_Scope, 15, /*->59984*/ // 2 children in Scope
/* 59969*/        OPC_MoveChild2,
/* 59970*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 59973*/        OPC_MoveParent,
/* 59974*/        OPC_EmitMergeInputChains1_0,
/* 59975*/        OPC_EmitConvertToTarget, 1,
/* 59977*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::SETRNDi), 0|OPFL_Chain,
                      MVT::f64, 1/*#Ops*/, 2, 
                  // Src: (intrinsic_w_chain:{ *:[f64] } 5925:{ *:[iPTR] }, (imm:{ *:[i32] }):$RND) - Complexity = 11
                  // Dst: (SETRNDi:{ *:[f64] } (imm:{ *:[i32] }):$RND)
/* 59984*/      /*Scope*/ 8, /*->59993*/
/* 59985*/        OPC_EmitMergeInputChains1_0,
/* 59986*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::SETRND), 0|OPFL_Chain,
                      MVT::f64, 1/*#Ops*/, 1, 
                  // Src: (intrinsic_w_chain:{ *:[f64] } 5925:{ *:[iPTR] }, gprc:{ *:[i32] }:$in) - Complexity = 8
                  // Dst: (SETRND:{ *:[f64] } gprc:{ *:[i32] }:$in)
/* 59993*/      0, /*End of Scope*/
/* 59994*/    /*Scope*/ 52, /*->60047*/
/* 59995*/      OPC_CheckChild1Integer, 61|128,46/*5949*/, 
/* 59998*/      OPC_RecordChild2, // #1 = $src
/* 59999*/      OPC_Scope, 14, /*->60015*/ // 2 children in Scope
/* 60001*/        OPC_CheckPatternPredicate, 6, // (!PPCSubTarget->hasP9Vector()) && (PPCSubTarget->hasVSX()) && (!PPCSubTarget->isLittleEndian())
/* 60003*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/* 60006*/        OPC_EmitMergeInputChains1_0,
/* 60007*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::LXVW4X), 0|OPFL_Chain,
                      MVT::v4i32, 2/*#Ops*/, 2, 3, 
                  // Src: (intrinsic_w_chain:{ *:[v4i32] } 5949:{ *:[iPTR] }, xoaddr:{ *:[iPTR] }:$src) - Complexity = 417
                  // Dst: (LXVW4X:{ *:[v4i32] } xoaddr:{ *:[iPTR] }:$src)
/* 60015*/      /*Scope*/ 30, /*->60046*/
/* 60016*/        OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/* 60018*/        OPC_Scope, 12, /*->60032*/ // 2 children in Scope
/* 60020*/          OPC_CheckComplexPat, /*CP*/4, /*#*/1, // SelectAddrImmX16:$src #2 #3
/* 60023*/          OPC_EmitMergeInputChains1_0,
/* 60024*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::LXV), 0|OPFL_Chain,
                        MVT::v4i32, 2/*#Ops*/, 2, 3, 
                    // Src: (intrinsic_w_chain:{ *:[v4i32] } 5949:{ *:[iPTR] }, iaddrX16:{ *:[iPTR] }:$src) - Complexity = 417
                    // Dst: (LXV:{ *:[v4i32] } memrix16:{ *:[iPTR] }:$src)
/* 60032*/        /*Scope*/ 12, /*->60045*/
/* 60033*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/* 60036*/          OPC_EmitMergeInputChains1_0,
/* 60037*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::LXVX), 0|OPFL_Chain,
                        MVT::v4i32, 2/*#Ops*/, 2, 3, 
                    // Src: (intrinsic_w_chain:{ *:[v4i32] } 5949:{ *:[iPTR] }, xoaddr:{ *:[iPTR] }:$src) - Complexity = 417
                    // Dst: (LXVX:{ *:[v4i32] } xoaddr:{ *:[iPTR] }:$src)
/* 60045*/        0, /*End of Scope*/
/* 60046*/      0, /*End of Scope*/
/* 60047*/    /*Scope*/ 16, /*->60064*/
/* 60048*/      OPC_CheckChild1Integer, 62|128,46/*5950*/, 
/* 60051*/      OPC_RecordChild2, // #1 = $src
/* 60052*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/* 60055*/      OPC_EmitMergeInputChains1_0,
/* 60056*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::LXVW4X), 0|OPFL_Chain,
                    MVT::v4i32, 2/*#Ops*/, 2, 3, 
                // Src: (intrinsic_w_chain:{ *:[v4i32] } 5950:{ *:[iPTR] }, xoaddr:{ *:[iPTR] }:$src) - Complexity = 417
                // Dst: (LXVW4X:{ *:[v4i32] } xoaddr:{ *:[iPTR] }:$src)
/* 60064*/    /*Scope*/ 19, /*->60084*/
/* 60065*/      OPC_CheckChild1Integer, 59|128,46/*5947*/, 
/* 60068*/      OPC_RecordChild2, // #1 = $src
/* 60069*/      OPC_RecordChild3, // #2 = $rB
/* 60070*/      OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/* 60072*/      OPC_CheckComplexPat, /*CP*/8, /*#*/1, // SelectAddr:$src #3
/* 60075*/      OPC_EmitMergeInputChains1_0,
/* 60076*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::LXVL), 0|OPFL_Chain,
                    MVT::v4i32, 2/*#Ops*/, 3, 2, 
                // Src: (intrinsic_w_chain:{ *:[v4i32] } 5947:{ *:[iPTR] }, addr:{ *:[iPTR] }:$src, i64:{ *:[i64] }:$rB) - Complexity = 414
                // Dst: (LXVL:{ *:[v4i32] } addr:{ *:[iPTR] }:$src, i64:{ *:[i64] }:$rB)
/* 60084*/    /*Scope*/ 19, /*->60104*/
/* 60085*/      OPC_CheckChild1Integer, 60|128,46/*5948*/, 
/* 60088*/      OPC_RecordChild2, // #1 = $src
/* 60089*/      OPC_RecordChild3, // #2 = $rB
/* 60090*/      OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/* 60092*/      OPC_CheckComplexPat, /*CP*/8, /*#*/1, // SelectAddr:$src #3
/* 60095*/      OPC_EmitMergeInputChains1_0,
/* 60096*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::LXVLL), 0|OPFL_Chain,
                    MVT::v4i32, 2/*#Ops*/, 3, 2, 
                // Src: (intrinsic_w_chain:{ *:[v4i32] } 5948:{ *:[iPTR] }, addr:{ *:[iPTR] }:$src, i64:{ *:[i64] }:$rB) - Complexity = 414
                // Dst: (LXVLL:{ *:[v4i32] } addr:{ *:[iPTR] }:$src, i64:{ *:[i64] }:$rB)
/* 60104*/    /*Scope*/ 18, /*->60123*/
/* 60105*/      OPC_CheckChild1Integer, 113|128,43/*5617*/, 
/* 60108*/      OPC_RecordChild2, // #1 = $src
/* 60109*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 60111*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/* 60114*/      OPC_EmitMergeInputChains1_0,
/* 60115*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::LVEBX), 0|OPFL_Chain,
                    MVT::v16i8, 2/*#Ops*/, 2, 3, 
                // Src: (intrinsic_w_chain:{ *:[v16i8] } 5617:{ *:[iPTR] }, xoaddr:{ *:[iPTR] }:$src) - Complexity = 17
                // Dst: (LVEBX:{ *:[v16i8] } xoaddr:{ *:[iPTR] }:$src)
/* 60123*/    /*Scope*/ 18, /*->60142*/
/* 60124*/      OPC_CheckChild1Integer, 114|128,43/*5618*/, 
/* 60127*/      OPC_RecordChild2, // #1 = $src
/* 60128*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 60130*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/* 60133*/      OPC_EmitMergeInputChains1_0,
/* 60134*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::LVEHX), 0|OPFL_Chain,
                    MVT::v8i16, 2/*#Ops*/, 2, 3, 
                // Src: (intrinsic_w_chain:{ *:[v8i16] } 5618:{ *:[iPTR] }, xoaddr:{ *:[iPTR] }:$src) - Complexity = 17
                // Dst: (LVEHX:{ *:[v8i16] } xoaddr:{ *:[iPTR] }:$src)
/* 60142*/    /*Scope*/ 18, /*->60161*/
/* 60143*/      OPC_CheckChild1Integer, 115|128,43/*5619*/, 
/* 60146*/      OPC_RecordChild2, // #1 = $src
/* 60147*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 60149*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/* 60152*/      OPC_EmitMergeInputChains1_0,
/* 60153*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::LVEWX), 0|OPFL_Chain,
                    MVT::v4i32, 2/*#Ops*/, 2, 3, 
                // Src: (intrinsic_w_chain:{ *:[v4i32] } 5619:{ *:[iPTR] }, xoaddr:{ *:[iPTR] }:$src) - Complexity = 17
                // Dst: (LVEWX:{ *:[v4i32] } xoaddr:{ *:[iPTR] }:$src)
/* 60161*/    /*Scope*/ 18, /*->60180*/
/* 60162*/      OPC_CheckChild1Integer, 118|128,43/*5622*/, 
/* 60165*/      OPC_RecordChild2, // #1 = $src
/* 60166*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 60168*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/* 60171*/      OPC_EmitMergeInputChains1_0,
/* 60172*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::LVX), 0|OPFL_Chain,
                    MVT::v4i32, 2/*#Ops*/, 2, 3, 
                // Src: (intrinsic_w_chain:{ *:[v4i32] } 5622:{ *:[iPTR] }, xoaddr:{ *:[iPTR] }:$src) - Complexity = 17
                // Dst: (LVX:{ *:[v4i32] } xoaddr:{ *:[iPTR] }:$src)
/* 60180*/    /*Scope*/ 18, /*->60199*/
/* 60181*/      OPC_CheckChild1Integer, 119|128,43/*5623*/, 
/* 60184*/      OPC_RecordChild2, // #1 = $src
/* 60185*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 60187*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/* 60190*/      OPC_EmitMergeInputChains1_0,
/* 60191*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::LVXL), 0|OPFL_Chain,
                    MVT::v4i32, 2/*#Ops*/, 2, 3, 
                // Src: (intrinsic_w_chain:{ *:[v4i32] } 5623:{ *:[iPTR] }, xoaddr:{ *:[iPTR] }:$src) - Complexity = 17
                // Dst: (LVXL:{ *:[v4i32] } xoaddr:{ *:[iPTR] }:$src)
/* 60199*/    /*Scope*/ 12, /*->60212*/
/* 60200*/      OPC_CheckChild1Integer, 120|128,43/*5624*/, 
/* 60203*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 60205*/      OPC_EmitMergeInputChains1_0,
/* 60206*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::MFVSCR), 0|OPFL_Chain,
                    MVT::v8i16, 0/*#Ops*/, 
                // Src: (intrinsic_w_chain:{ *:[v8i16] } 5624:{ *:[iPTR] }) - Complexity = 8
                // Dst: (MFVSCR:{ *:[v8i16] })
/* 60212*/    /*Scope*/ 52, /*->60265*/
/* 60213*/      OPC_CheckChild1Integer, 57|128,46/*5945*/, 
/* 60216*/      OPC_RecordChild2, // #1 = $src
/* 60217*/      OPC_Scope, 14, /*->60233*/ // 2 children in Scope
/* 60219*/        OPC_CheckPatternPredicate, 15, // (!PPCSubTarget->hasP9Vector()) && (PPCSubTarget->hasVSX())
/* 60221*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/* 60224*/        OPC_EmitMergeInputChains1_0,
/* 60225*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::LXVD2X), 0|OPFL_Chain,
                      MVT::v2f64, 2/*#Ops*/, 2, 3, 
                  // Src: (intrinsic_w_chain:{ *:[v2f64] } 5945:{ *:[iPTR] }, xoaddr:{ *:[iPTR] }:$src) - Complexity = 417
                  // Dst: (LXVD2X:{ *:[v2f64] } xoaddr:{ *:[iPTR] }:$src)
/* 60233*/      /*Scope*/ 30, /*->60264*/
/* 60234*/        OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/* 60236*/        OPC_Scope, 12, /*->60250*/ // 2 children in Scope
/* 60238*/          OPC_CheckComplexPat, /*CP*/4, /*#*/1, // SelectAddrImmX16:$src #2 #3
/* 60241*/          OPC_EmitMergeInputChains1_0,
/* 60242*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::LXV), 0|OPFL_Chain,
                        MVT::v2f64, 2/*#Ops*/, 2, 3, 
                    // Src: (intrinsic_w_chain:{ *:[v2f64] } 5945:{ *:[iPTR] }, iaddrX16:{ *:[iPTR] }:$src) - Complexity = 417
                    // Dst: (LXV:{ *:[v2f64] } memrix16:{ *:[iPTR] }:$src)
/* 60250*/        /*Scope*/ 12, /*->60263*/
/* 60251*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/* 60254*/          OPC_EmitMergeInputChains1_0,
/* 60255*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::LXVX), 0|OPFL_Chain,
                        MVT::v2f64, 2/*#Ops*/, 2, 3, 
                    // Src: (intrinsic_w_chain:{ *:[v2f64] } 5945:{ *:[iPTR] }, xoaddr:{ *:[iPTR] }:$src) - Complexity = 417
                    // Dst: (LXVX:{ *:[v2f64] } xoaddr:{ *:[iPTR] }:$src)
/* 60263*/        0, /*End of Scope*/
/* 60264*/      0, /*End of Scope*/
/* 60265*/    /*Scope*/ 16, /*->60282*/
/* 60266*/      OPC_CheckChild1Integer, 58|128,46/*5946*/, 
/* 60269*/      OPC_RecordChild2, // #1 = $src
/* 60270*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/* 60273*/      OPC_EmitMergeInputChains1_0,
/* 60274*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::LXVD2X), 0|OPFL_Chain,
                    MVT::v2f64, 2/*#Ops*/, 2, 3, 
                // Src: (intrinsic_w_chain:{ *:[v2f64] } 5946:{ *:[iPTR] }, xoaddr:{ *:[iPTR] }:$src) - Complexity = 417
                // Dst: (LXVD2X:{ *:[v2f64] } xoaddr:{ *:[iPTR] }:$src)
/* 60282*/    /*Scope*/ 18, /*->60301*/
/* 60283*/      OPC_CheckChild1Integer, 9|128,46/*5897*/, 
/* 60286*/      OPC_RecordChild2, // #1 = $src
/* 60287*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 60289*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/* 60292*/      OPC_EmitMergeInputChains1_0,
/* 60293*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVLFDX), 0|OPFL_Chain,
                    MVT::v4f64, 2/*#Ops*/, 2, 3, 
                // Src: (intrinsic_w_chain:{ *:[v4f64] } 5897:{ *:[iPTR] }, xoaddr:{ *:[iPTR] }:$src) - Complexity = 17
                // Dst: (QVLFDX:{ *:[v4f64] } xoaddr:{ *:[iPTR] }:$src)
/* 60301*/    /*Scope*/ 18, /*->60320*/
/* 60302*/      OPC_CheckChild1Integer, 10|128,46/*5898*/, 
/* 60305*/      OPC_RecordChild2, // #1 = $src
/* 60306*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 60308*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/* 60311*/      OPC_EmitMergeInputChains1_0,
/* 60312*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVLFDXA), 0|OPFL_Chain,
                    MVT::v4f64, 2/*#Ops*/, 2, 3, 
                // Src: (intrinsic_w_chain:{ *:[v4f64] } 5898:{ *:[iPTR] }, xoaddr:{ *:[iPTR] }:$src) - Complexity = 17
                // Dst: (QVLFDXA:{ *:[v4f64] } xoaddr:{ *:[iPTR] }:$src)
/* 60320*/    /*Scope*/ 18, /*->60339*/
/* 60321*/      OPC_CheckChild1Integer, 15|128,46/*5903*/, 
/* 60324*/      OPC_RecordChild2, // #1 = $src
/* 60325*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 60327*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/* 60330*/      OPC_EmitMergeInputChains1_0,
/* 60331*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVLFSX), 0|OPFL_Chain,
                    MVT::v4f64, 2/*#Ops*/, 2, 3, 
                // Src: (intrinsic_w_chain:{ *:[v4f64] } 5903:{ *:[iPTR] }, xoaddr:{ *:[iPTR] }:$src) - Complexity = 17
                // Dst: (QVLFSX:{ *:[v4f64] } xoaddr:{ *:[iPTR] }:$src)
/* 60339*/    /*Scope*/ 18, /*->60358*/
/* 60340*/      OPC_CheckChild1Integer, 16|128,46/*5904*/, 
/* 60343*/      OPC_RecordChild2, // #1 = $src
/* 60344*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 60346*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/* 60349*/      OPC_EmitMergeInputChains1_0,
/* 60350*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVLFSXA), 0|OPFL_Chain,
                    MVT::v4f64, 2/*#Ops*/, 2, 3, 
                // Src: (intrinsic_w_chain:{ *:[v4f64] } 5904:{ *:[iPTR] }, xoaddr:{ *:[iPTR] }:$src) - Complexity = 17
                // Dst: (QVLFSXA:{ *:[v4f64] } xoaddr:{ *:[iPTR] }:$src)
/* 60358*/    /*Scope*/ 18, /*->60377*/
/* 60359*/      OPC_CheckChild1Integer, 6|128,46/*5894*/, 
/* 60362*/      OPC_RecordChild2, // #1 = $src
/* 60363*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 60365*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/* 60368*/      OPC_EmitMergeInputChains1_0,
/* 60369*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVLFCDXA), 0|OPFL_Chain,
                    MVT::v4f64, 2/*#Ops*/, 2, 3, 
                // Src: (intrinsic_w_chain:{ *:[v4f64] } 5894:{ *:[iPTR] }, xoaddr:{ *:[iPTR] }:$src) - Complexity = 17
                // Dst: (QVLFCDXA:{ *:[v4f64] } xoaddr:{ *:[iPTR] }:$src)
/* 60377*/    /*Scope*/ 18, /*->60396*/
/* 60378*/      OPC_CheckChild1Integer, 5|128,46/*5893*/, 
/* 60381*/      OPC_RecordChild2, // #1 = $src
/* 60382*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 60384*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/* 60387*/      OPC_EmitMergeInputChains1_0,
/* 60388*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVLFCDX), 0|OPFL_Chain,
                    MVT::v4f64, 2/*#Ops*/, 2, 3, 
                // Src: (intrinsic_w_chain:{ *:[v4f64] } 5893:{ *:[iPTR] }, xoaddr:{ *:[iPTR] }:$src) - Complexity = 17
                // Dst: (QVLFCDX:{ *:[v4f64] } xoaddr:{ *:[iPTR] }:$src)
/* 60396*/    /*Scope*/ 18, /*->60415*/
/* 60397*/      OPC_CheckChild1Integer, 8|128,46/*5896*/, 
/* 60400*/      OPC_RecordChild2, // #1 = $src
/* 60401*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 60403*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/* 60406*/      OPC_EmitMergeInputChains1_0,
/* 60407*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVLFCSXA), 0|OPFL_Chain,
                    MVT::v4f64, 2/*#Ops*/, 2, 3, 
                // Src: (intrinsic_w_chain:{ *:[v4f64] } 5896:{ *:[iPTR] }, xoaddr:{ *:[iPTR] }:$src) - Complexity = 17
                // Dst: (QVLFCSXA:{ *:[v4f64] } xoaddr:{ *:[iPTR] }:$src)
/* 60415*/    /*Scope*/ 18, /*->60434*/
/* 60416*/      OPC_CheckChild1Integer, 7|128,46/*5895*/, 
/* 60419*/      OPC_RecordChild2, // #1 = $src
/* 60420*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 60422*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/* 60425*/      OPC_EmitMergeInputChains1_0,
/* 60426*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVLFCSX), 0|OPFL_Chain,
                    MVT::v4f64, 2/*#Ops*/, 2, 3, 
                // Src: (intrinsic_w_chain:{ *:[v4f64] } 5895:{ *:[iPTR] }, xoaddr:{ *:[iPTR] }:$src) - Complexity = 17
                // Dst: (QVLFCSX:{ *:[v4f64] } xoaddr:{ *:[iPTR] }:$src)
/* 60434*/    /*Scope*/ 18, /*->60453*/
/* 60435*/      OPC_CheckChild1Integer, 12|128,46/*5900*/, 
/* 60438*/      OPC_RecordChild2, // #1 = $src
/* 60439*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 60441*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/* 60444*/      OPC_EmitMergeInputChains1_0,
/* 60445*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVLFIWAXA), 0|OPFL_Chain,
                    MVT::v4f64, 2/*#Ops*/, 2, 3, 
                // Src: (intrinsic_w_chain:{ *:[v4f64] } 5900:{ *:[iPTR] }, xoaddr:{ *:[iPTR] }:$src) - Complexity = 17
                // Dst: (QVLFIWAXA:{ *:[v4f64] } xoaddr:{ *:[iPTR] }:$src)
/* 60453*/    /*Scope*/ 18, /*->60472*/
/* 60454*/      OPC_CheckChild1Integer, 11|128,46/*5899*/, 
/* 60457*/      OPC_RecordChild2, // #1 = $src
/* 60458*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 60460*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/* 60463*/      OPC_EmitMergeInputChains1_0,
/* 60464*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVLFIWAX), 0|OPFL_Chain,
                    MVT::v4f64, 2/*#Ops*/, 2, 3, 
                // Src: (intrinsic_w_chain:{ *:[v4f64] } 5899:{ *:[iPTR] }, xoaddr:{ *:[iPTR] }:$src) - Complexity = 17
                // Dst: (QVLFIWAX:{ *:[v4f64] } xoaddr:{ *:[iPTR] }:$src)
/* 60472*/    /*Scope*/ 18, /*->60491*/
/* 60473*/      OPC_CheckChild1Integer, 14|128,46/*5902*/, 
/* 60476*/      OPC_RecordChild2, // #1 = $src
/* 60477*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 60479*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/* 60482*/      OPC_EmitMergeInputChains1_0,
/* 60483*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVLFIWZXA), 0|OPFL_Chain,
                    MVT::v4f64, 2/*#Ops*/, 2, 3, 
                // Src: (intrinsic_w_chain:{ *:[v4f64] } 5902:{ *:[iPTR] }, xoaddr:{ *:[iPTR] }:$src) - Complexity = 17
                // Dst: (QVLFIWZXA:{ *:[v4f64] } xoaddr:{ *:[iPTR] }:$src)
/* 60491*/    /*Scope*/ 18, /*->60510*/
/* 60492*/      OPC_CheckChild1Integer, 13|128,46/*5901*/, 
/* 60495*/      OPC_RecordChild2, // #1 = $src
/* 60496*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 60498*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/* 60501*/      OPC_EmitMergeInputChains1_0,
/* 60502*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::QVLFIWZX), 0|OPFL_Chain,
                    MVT::v4f64, 2/*#Ops*/, 2, 3, 
                // Src: (intrinsic_w_chain:{ *:[v4f64] } 5901:{ *:[iPTR] }, xoaddr:{ *:[iPTR] }:$src) - Complexity = 17
                // Dst: (QVLFIWZX:{ *:[v4f64] } xoaddr:{ *:[iPTR] }:$src)
/* 60510*/    0, /*End of Scope*/
/* 60511*/  /*SwitchOpcode*/ 69, TARGET_VAL(ISD::ADDC),// ->60583
/* 60514*/    OPC_RecordChild0, // #0 = $rA
/* 60515*/    OPC_RecordChild1, // #1 = $imm
/* 60516*/    OPC_Scope, 40, /*->60558*/ // 3 children in Scope
/* 60518*/      OPC_MoveChild1,
/* 60519*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 60522*/      OPC_Scope, 16, /*->60540*/ // 2 children in Scope
/* 60524*/        OPC_CheckPredicate, 13, // Predicate_imm32SExt16
/* 60526*/        OPC_MoveParent,
/* 60527*/        OPC_CheckType, MVT::i32,
/* 60529*/        OPC_EmitConvertToTarget, 1,
/* 60531*/        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)
/* 60540*/      /*Scope*/ 16, /*->60557*/
/* 60541*/        OPC_CheckPredicate, 14, // Predicate_imm64SExt16
/* 60543*/        OPC_MoveParent,
/* 60544*/        OPC_CheckType, MVT::i64,
/* 60546*/        OPC_EmitConvertToTarget, 1,
/* 60548*/        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)
/* 60557*/      0, /*End of Scope*/
/* 60558*/    /*Scope*/ 11, /*->60570*/
/* 60559*/      OPC_CheckType, MVT::i32,
/* 60561*/      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)
/* 60570*/    /*Scope*/ 11, /*->60582*/
/* 60571*/      OPC_CheckType, MVT::i64,
/* 60573*/      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)
/* 60582*/    0, /*End of Scope*/
/* 60583*/  /*SwitchOpcode*/ 89, TARGET_VAL(ISD::MUL),// ->60675
/* 60586*/    OPC_RecordChild0, // #0 = $rA
/* 60587*/    OPC_RecordChild1, // #1 = $imm
/* 60588*/    OPC_Scope, 38, /*->60628*/ // 5 children in Scope
/* 60590*/      OPC_MoveChild1,
/* 60591*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 60594*/      OPC_Scope, 15, /*->60611*/ // 2 children in Scope
/* 60596*/        OPC_CheckPredicate, 13, // Predicate_imm32SExt16
/* 60598*/        OPC_MoveParent,
/* 60599*/        OPC_CheckType, MVT::i32,
/* 60601*/        OPC_EmitConvertToTarget, 1,
/* 60603*/        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)
/* 60611*/      /*Scope*/ 15, /*->60627*/
/* 60612*/        OPC_CheckPredicate, 14, // Predicate_imm64SExt16
/* 60614*/        OPC_MoveParent,
/* 60615*/        OPC_CheckType, MVT::i64,
/* 60617*/        OPC_EmitConvertToTarget, 1,
/* 60619*/        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)
/* 60627*/      0, /*End of Scope*/
/* 60628*/    /*Scope*/ 10, /*->60639*/
/* 60629*/      OPC_CheckType, MVT::i32,
/* 60631*/      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)
/* 60639*/    /*Scope*/ 10, /*->60650*/
/* 60640*/      OPC_CheckType, MVT::i64,
/* 60642*/      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)
/* 60650*/    /*Scope*/ 10, /*->60661*/
/* 60651*/      OPC_CheckType, MVT::i1,
/* 60653*/      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)
/* 60661*/    /*Scope*/ 12, /*->60674*/
/* 60662*/      OPC_CheckType, MVT::v4i32,
/* 60664*/      OPC_CheckPatternPredicate, 35, // (PPCSubTarget->hasP8Altivec())
/* 60666*/      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)
/* 60674*/    0, /*End of Scope*/
/* 60675*/  /*SwitchOpcode*/ 72, TARGET_VAL(ISD::SUBC),// ->60750
/* 60678*/    OPC_RecordChild0, // #0 = $imm
/* 60679*/    OPC_Scope, 42, /*->60723*/ // 2 children in Scope
/* 60681*/      OPC_MoveChild0,
/* 60682*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 60685*/      OPC_Scope, 17, /*->60704*/ // 2 children in Scope
/* 60687*/        OPC_CheckPredicate, 13, // Predicate_imm32SExt16
/* 60689*/        OPC_MoveParent,
/* 60690*/        OPC_RecordChild1, // #1 = $rA
/* 60691*/        OPC_CheckType, MVT::i32,
/* 60693*/        OPC_EmitConvertToTarget, 0,
/* 60695*/        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)
/* 60704*/      /*Scope*/ 17, /*->60722*/
/* 60705*/        OPC_CheckPredicate, 14, // Predicate_imm64SExt16
/* 60707*/        OPC_MoveParent,
/* 60708*/        OPC_RecordChild1, // #1 = $rA
/* 60709*/        OPC_CheckType, MVT::i64,
/* 60711*/        OPC_EmitConvertToTarget, 0,
/* 60713*/        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)
/* 60722*/      0, /*End of Scope*/
/* 60723*/    /*Scope*/ 25, /*->60749*/
/* 60724*/      OPC_RecordChild1, // #1 = $rA
/* 60725*/      OPC_SwitchType /*2 cases */, 9, MVT::i32,// ->60737
/* 60728*/        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)
/* 60737*/      /*SwitchType*/ 9, MVT::i64,// ->60748
/* 60739*/        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)
/* 60748*/      0, // EndSwitchType
/* 60749*/    0, /*End of Scope*/
/* 60750*/  /*SwitchOpcode*/ 2|128,45/*5762*/, TARGET_VAL(ISD::SETCC),// ->66516
/* 60754*/    OPC_RecordChild0, // #0 = $s1
/* 60755*/    OPC_Scope, 12|128,8/*1036*/, /*->61794*/ // 8 children in Scope
/* 60758*/      OPC_CheckChild0Type, MVT::i32,
/* 60760*/      OPC_RecordChild1, // #1 = $imm
/* 60761*/      OPC_Scope, 14|128,5/*654*/, /*->61418*/ // 11 children in Scope
/* 60764*/        OPC_MoveChild1,
/* 60765*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 60768*/        OPC_Scope, 28, /*->60798*/ // 10 children in Scope
/* 60770*/          OPC_CheckPredicate, 12, // Predicate_immZExt16
/* 60772*/          OPC_MoveParent,
/* 60773*/          OPC_CheckChild2CondCode, ISD::SETULT,
/* 60775*/          OPC_CheckType, MVT::i1,
/* 60777*/          OPC_EmitConvertToTarget, 1,
/* 60779*/          OPC_EmitNode1, TARGET_VAL(PPC::CMPLWI), 0,
                        MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 60787*/          OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 60790*/          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] })
/* 60798*/        /*Scope*/ 28, /*->60827*/
/* 60799*/          OPC_CheckPredicate, 13, // Predicate_imm32SExt16
/* 60801*/          OPC_MoveParent,
/* 60802*/          OPC_CheckChild2CondCode, ISD::SETLT,
/* 60804*/          OPC_CheckType, MVT::i1,
/* 60806*/          OPC_EmitConvertToTarget, 1,
/* 60808*/          OPC_EmitNode1, TARGET_VAL(PPC::CMPWI), 0,
                        MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 60816*/          OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 60819*/          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] })
/* 60827*/        /*Scope*/ 28, /*->60856*/
/* 60828*/          OPC_CheckPredicate, 12, // Predicate_immZExt16
/* 60830*/          OPC_MoveParent,
/* 60831*/          OPC_CheckChild2CondCode, ISD::SETUGT,
/* 60833*/          OPC_CheckType, MVT::i1,
/* 60835*/          OPC_EmitConvertToTarget, 1,
/* 60837*/          OPC_EmitNode1, TARGET_VAL(PPC::CMPLWI), 0,
                        MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 60845*/          OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 60848*/          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] })
/* 60856*/        /*Scope*/ 55, /*->60912*/
/* 60857*/          OPC_CheckPredicate, 13, // Predicate_imm32SExt16
/* 60859*/          OPC_MoveParent,
/* 60860*/          OPC_CheckType, MVT::i1,
/* 60862*/          OPC_Scope, 23, /*->60887*/ // 2 children in Scope
/* 60864*/            OPC_CheckChild2CondCode, ISD::SETGT,
/* 60866*/            OPC_EmitConvertToTarget, 1,
/* 60868*/            OPC_EmitNode1, TARGET_VAL(PPC::CMPWI), 0,
                          MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 60876*/            OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 60879*/            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] })
/* 60887*/          /*Scope*/ 23, /*->60911*/
/* 60888*/            OPC_CheckChild2CondCode, ISD::SETEQ,
/* 60890*/            OPC_EmitConvertToTarget, 1,
/* 60892*/            OPC_EmitNode1, TARGET_VAL(PPC::CMPWI), 0,
                          MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 60900*/            OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 60903*/            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] })
/* 60911*/          0, /*End of Scope*/
/* 60912*/        /*Scope*/ 84, /*->60997*/
/* 60913*/          OPC_CheckPredicate, 12, // Predicate_immZExt16
/* 60915*/          OPC_MoveParent,
/* 60916*/          OPC_CheckType, MVT::i1,
/* 60918*/          OPC_Scope, 23, /*->60943*/ // 2 children in Scope
/* 60920*/            OPC_CheckChild2CondCode, ISD::SETEQ,
/* 60922*/            OPC_EmitConvertToTarget, 1,
/* 60924*/            OPC_EmitNode1, TARGET_VAL(PPC::CMPLWI), 0,
                          MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 60932*/            OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 60935*/            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] })
/* 60943*/          /*Scope*/ 52, /*->60996*/
/* 60944*/            OPC_CheckChild2CondCode, ISD::SETUGE,
/* 60946*/            OPC_EmitConvertToTarget, 1,
/* 60948*/            OPC_EmitNode1, TARGET_VAL(PPC::CMPLWI), 0,
                          MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 60956*/            OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 60959*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 60967*/            OPC_EmitConvertToTarget, 1,
/* 60969*/            OPC_EmitNode1, TARGET_VAL(PPC::CMPLWI), 0,
                          MVT::i32, 2/*#Ops*/, 0, 6,  // Results = #7
/* 60977*/            OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 60980*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i1, 2/*#Ops*/, 7, 8,  // Results = #9
/* 60988*/            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] }))
/* 60996*/          0, /*End of Scope*/
/* 60997*/        /*Scope*/ 57, /*->61055*/
/* 60998*/          OPC_CheckPredicate, 13, // Predicate_imm32SExt16
/* 61000*/          OPC_MoveParent,
/* 61001*/          OPC_CheckChild2CondCode, ISD::SETGE,
/* 61003*/          OPC_CheckType, MVT::i1,
/* 61005*/          OPC_EmitConvertToTarget, 1,
/* 61007*/          OPC_EmitNode1, TARGET_VAL(PPC::CMPWI), 0,
                        MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 61015*/          OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 61018*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 61026*/          OPC_EmitConvertToTarget, 1,
/* 61028*/          OPC_EmitNode1, TARGET_VAL(PPC::CMPWI), 0,
                        MVT::i32, 2/*#Ops*/, 0, 6,  // Results = #7
/* 61036*/          OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 61039*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i1, 2/*#Ops*/, 7, 8,  // Results = #9
/* 61047*/          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] }))
/* 61055*/        /*Scope*/ 57, /*->61113*/
/* 61056*/          OPC_CheckPredicate, 12, // Predicate_immZExt16
/* 61058*/          OPC_MoveParent,
/* 61059*/          OPC_CheckChild2CondCode, ISD::SETULE,
/* 61061*/          OPC_CheckType, MVT::i1,
/* 61063*/          OPC_EmitConvertToTarget, 1,
/* 61065*/          OPC_EmitNode1, TARGET_VAL(PPC::CMPLWI), 0,
                        MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 61073*/          OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 61076*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 61084*/          OPC_EmitConvertToTarget, 1,
/* 61086*/          OPC_EmitNode1, TARGET_VAL(PPC::CMPLWI), 0,
                        MVT::i32, 2/*#Ops*/, 0, 6,  // Results = #7
/* 61094*/          OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 61097*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i1, 2/*#Ops*/, 7, 8,  // Results = #9
/* 61105*/          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] }))
/* 61113*/        /*Scope*/ 113, /*->61227*/
/* 61114*/          OPC_CheckPredicate, 13, // Predicate_imm32SExt16
/* 61116*/          OPC_MoveParent,
/* 61117*/          OPC_CheckType, MVT::i1,
/* 61119*/          OPC_Scope, 52, /*->61173*/ // 2 children in Scope
/* 61121*/            OPC_CheckChild2CondCode, ISD::SETLE,
/* 61123*/            OPC_EmitConvertToTarget, 1,
/* 61125*/            OPC_EmitNode1, TARGET_VAL(PPC::CMPWI), 0,
                          MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 61133*/            OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 61136*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 61144*/            OPC_EmitConvertToTarget, 1,
/* 61146*/            OPC_EmitNode1, TARGET_VAL(PPC::CMPWI), 0,
                          MVT::i32, 2/*#Ops*/, 0, 6,  // Results = #7
/* 61154*/            OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 61157*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i1, 2/*#Ops*/, 7, 8,  // Results = #9
/* 61165*/            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] }))
/* 61173*/          /*Scope*/ 52, /*->61226*/
/* 61174*/            OPC_CheckChild2CondCode, ISD::SETNE,
/* 61176*/            OPC_EmitConvertToTarget, 1,
/* 61178*/            OPC_EmitNode1, TARGET_VAL(PPC::CMPWI), 0,
                          MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 61186*/            OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 61189*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 61197*/            OPC_EmitConvertToTarget, 1,
/* 61199*/            OPC_EmitNode1, TARGET_VAL(PPC::CMPWI), 0,
                          MVT::i32, 2/*#Ops*/, 0, 6,  // Results = #7
/* 61207*/            OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 61210*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i1, 2/*#Ops*/, 7, 8,  // Results = #9
/* 61218*/            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] }))
/* 61226*/          0, /*End of Scope*/
/* 61227*/        /*Scope*/ 57, /*->61285*/
/* 61228*/          OPC_CheckPredicate, 12, // Predicate_immZExt16
/* 61230*/          OPC_MoveParent,
/* 61231*/          OPC_CheckChild2CondCode, ISD::SETNE,
/* 61233*/          OPC_CheckType, MVT::i1,
/* 61235*/          OPC_EmitConvertToTarget, 1,
/* 61237*/          OPC_EmitNode1, TARGET_VAL(PPC::CMPLWI), 0,
                        MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 61245*/          OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 61248*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 61256*/          OPC_EmitConvertToTarget, 1,
/* 61258*/          OPC_EmitNode1, TARGET_VAL(PPC::CMPLWI), 0,
                        MVT::i32, 2/*#Ops*/, 0, 6,  // Results = #7
/* 61266*/          OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 61269*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i1, 2/*#Ops*/, 7, 8,  // Results = #9
/* 61277*/          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] }))
/* 61285*/        /*Scope*/ 2|128,1/*130*/, /*->61417*/
/* 61287*/          OPC_MoveParent,
/* 61288*/          OPC_CheckType, MVT::i1,
/* 61290*/          OPC_Scope, 39, /*->61331*/ // 2 children in Scope
/* 61292*/            OPC_CheckChild2CondCode, ISD::SETEQ,
/* 61294*/            OPC_EmitConvertToTarget, 1,
/* 61296*/            OPC_EmitNodeXForm, 0, 2, // HI16
/* 61299*/            OPC_EmitNode1, TARGET_VAL(PPC::XORIS), 0,
                          MVT::i32, 2/*#Ops*/, 0, 3,  // Results = #4
/* 61307*/            OPC_EmitConvertToTarget, 1,
/* 61309*/            OPC_EmitNodeXForm, 1, 5, // LO16
/* 61312*/            OPC_EmitNode1, TARGET_VAL(PPC::CMPLWI), 0,
                          MVT::i32, 2/*#Ops*/, 4, 6,  // Results = #7
/* 61320*/            OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 61323*/            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] })
/* 61331*/          /*Scope*/ 84, /*->61416*/
/* 61332*/            OPC_CheckChild2CondCode, ISD::SETNE,
/* 61334*/            OPC_EmitConvertToTarget, 1,
/* 61336*/            OPC_EmitNodeXForm, 0, 2, // HI16
/* 61339*/            OPC_EmitNode1, TARGET_VAL(PPC::XORIS), 0,
                          MVT::i32, 2/*#Ops*/, 0, 3,  // Results = #4
/* 61347*/            OPC_EmitConvertToTarget, 1,
/* 61349*/            OPC_EmitNodeXForm, 1, 5, // LO16
/* 61352*/            OPC_EmitNode1, TARGET_VAL(PPC::CMPLWI), 0,
                          MVT::i32, 2/*#Ops*/, 4, 6,  // Results = #7
/* 61360*/            OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 61363*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i1, 2/*#Ops*/, 7, 8,  // Results = #9
/* 61371*/            OPC_EmitConvertToTarget, 1,
/* 61373*/            OPC_EmitNodeXForm, 0, 10, // HI16
/* 61376*/            OPC_EmitNode1, TARGET_VAL(PPC::XORIS), 0,
                          MVT::i32, 2/*#Ops*/, 0, 11,  // Results = #12
/* 61384*/            OPC_EmitConvertToTarget, 1,
/* 61386*/            OPC_EmitNodeXForm, 1, 13, // LO16
/* 61389*/            OPC_EmitNode1, TARGET_VAL(PPC::CMPLWI), 0,
                          MVT::i32, 2/*#Ops*/, 12, 14,  // Results = #15
/* 61397*/            OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 61400*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i1, 2/*#Ops*/, 15, 16,  // Results = #17
/* 61408*/            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] }))
/* 61416*/          0, /*End of Scope*/
/* 61417*/        0, /*End of Scope*/
/* 61418*/      /*Scope*/ 23, /*->61442*/
/* 61419*/        OPC_CheckChild2CondCode, ISD::SETULT,
/* 61421*/        OPC_CheckType, MVT::i1,
/* 61423*/        OPC_EmitNode1, TARGET_VAL(PPC::CMPLW), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 61431*/        OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 61434*/        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] })
/* 61442*/      /*Scope*/ 23, /*->61466*/
/* 61443*/        OPC_CheckChild2CondCode, ISD::SETLT,
/* 61445*/        OPC_CheckType, MVT::i1,
/* 61447*/        OPC_EmitNode1, TARGET_VAL(PPC::CMPW), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 61455*/        OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 61458*/        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] })
/* 61466*/      /*Scope*/ 23, /*->61490*/
/* 61467*/        OPC_CheckChild2CondCode, ISD::SETUGT,
/* 61469*/        OPC_CheckType, MVT::i1,
/* 61471*/        OPC_EmitNode1, TARGET_VAL(PPC::CMPLW), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 61479*/        OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 61482*/        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] })
/* 61490*/      /*Scope*/ 23, /*->61514*/
/* 61491*/        OPC_CheckChild2CondCode, ISD::SETGT,
/* 61493*/        OPC_CheckType, MVT::i1,
/* 61495*/        OPC_EmitNode1, TARGET_VAL(PPC::CMPW), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 61503*/        OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 61506*/        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] })
/* 61514*/      /*Scope*/ 23, /*->61538*/
/* 61515*/        OPC_CheckChild2CondCode, ISD::SETEQ,
/* 61517*/        OPC_CheckType, MVT::i1,
/* 61519*/        OPC_EmitNode1, TARGET_VAL(PPC::CMPW), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 61527*/        OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 61530*/        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] })
/* 61538*/      /*Scope*/ 50, /*->61589*/
/* 61539*/        OPC_CheckChild2CondCode, ISD::SETUGE,
/* 61541*/        OPC_CheckType, MVT::i1,
/* 61543*/        OPC_EmitNode1, TARGET_VAL(PPC::CMPLW), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 61551*/        OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 61554*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 61562*/        OPC_EmitNode1, TARGET_VAL(PPC::CMPLW), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #5
/* 61570*/        OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 61573*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 5, 6,  // Results = #7
/* 61581*/        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] }))
/* 61589*/      /*Scope*/ 50, /*->61640*/
/* 61590*/        OPC_CheckChild2CondCode, ISD::SETGE,
/* 61592*/        OPC_CheckType, MVT::i1,
/* 61594*/        OPC_EmitNode1, TARGET_VAL(PPC::CMPW), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 61602*/        OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 61605*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 61613*/        OPC_EmitNode1, TARGET_VAL(PPC::CMPW), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #5
/* 61621*/        OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 61624*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 5, 6,  // Results = #7
/* 61632*/        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] }))
/* 61640*/      /*Scope*/ 50, /*->61691*/
/* 61641*/        OPC_CheckChild2CondCode, ISD::SETULE,
/* 61643*/        OPC_CheckType, MVT::i1,
/* 61645*/        OPC_EmitNode1, TARGET_VAL(PPC::CMPLW), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 61653*/        OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 61656*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 61664*/        OPC_EmitNode1, TARGET_VAL(PPC::CMPLW), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #5
/* 61672*/        OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 61675*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 5, 6,  // Results = #7
/* 61683*/        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] }))
/* 61691*/      /*Scope*/ 50, /*->61742*/
/* 61692*/        OPC_CheckChild2CondCode, ISD::SETLE,
/* 61694*/        OPC_CheckType, MVT::i1,
/* 61696*/        OPC_EmitNode1, TARGET_VAL(PPC::CMPW), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 61704*/        OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 61707*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 61715*/        OPC_EmitNode1, TARGET_VAL(PPC::CMPW), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #5
/* 61723*/        OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 61726*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 5, 6,  // Results = #7
/* 61734*/        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] }))
/* 61742*/      /*Scope*/ 50, /*->61793*/
/* 61743*/        OPC_CheckChild2CondCode, ISD::SETNE,
/* 61745*/        OPC_CheckType, MVT::i1,
/* 61747*/        OPC_EmitNode1, TARGET_VAL(PPC::CMPW), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 61755*/        OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 61758*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 61766*/        OPC_EmitNode1, TARGET_VAL(PPC::CMPW), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #5
/* 61774*/        OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 61777*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 5, 6,  // Results = #7
/* 61785*/        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] }))
/* 61793*/      0, /*End of Scope*/
/* 61794*/    /*Scope*/ 17|128,8/*1041*/, /*->62837*/
/* 61796*/      OPC_CheckChild0Type, MVT::i64,
/* 61798*/      OPC_RecordChild1, // #1 = $imm
/* 61799*/      OPC_Scope, 19|128,5/*659*/, /*->62461*/ // 11 children in Scope
/* 61802*/        OPC_MoveChild1,
/* 61803*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 61806*/        OPC_Scope, 28, /*->61836*/ // 12 children in Scope
/* 61808*/          OPC_CheckPredicate, 12, // Predicate_immZExt16
/* 61810*/          OPC_MoveParent,
/* 61811*/          OPC_CheckChild2CondCode, ISD::SETULT,
/* 61813*/          OPC_CheckType, MVT::i1,
/* 61815*/          OPC_EmitConvertToTarget, 1,
/* 61817*/          OPC_EmitNode1, TARGET_VAL(PPC::CMPLDI), 0,
                        MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 61825*/          OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 61828*/          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] })
/* 61836*/        /*Scope*/ 28, /*->61865*/
/* 61837*/          OPC_CheckPredicate, 14, // Predicate_imm64SExt16
/* 61839*/          OPC_MoveParent,
/* 61840*/          OPC_CheckChild2CondCode, ISD::SETLT,
/* 61842*/          OPC_CheckType, MVT::i1,
/* 61844*/          OPC_EmitConvertToTarget, 1,
/* 61846*/          OPC_EmitNode1, TARGET_VAL(PPC::CMPDI), 0,
                        MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 61854*/          OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 61857*/          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] })
/* 61865*/        /*Scope*/ 28, /*->61894*/
/* 61866*/          OPC_CheckPredicate, 12, // Predicate_immZExt16
/* 61868*/          OPC_MoveParent,
/* 61869*/          OPC_CheckChild2CondCode, ISD::SETUGT,
/* 61871*/          OPC_CheckType, MVT::i1,
/* 61873*/          OPC_EmitConvertToTarget, 1,
/* 61875*/          OPC_EmitNode1, TARGET_VAL(PPC::CMPLDI), 0,
                        MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 61883*/          OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 61886*/          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] })
/* 61894*/        /*Scope*/ 55, /*->61950*/
/* 61895*/          OPC_CheckPredicate, 14, // Predicate_imm64SExt16
/* 61897*/          OPC_MoveParent,
/* 61898*/          OPC_CheckType, MVT::i1,
/* 61900*/          OPC_Scope, 23, /*->61925*/ // 2 children in Scope
/* 61902*/            OPC_CheckChild2CondCode, ISD::SETGT,
/* 61904*/            OPC_EmitConvertToTarget, 1,
/* 61906*/            OPC_EmitNode1, TARGET_VAL(PPC::CMPDI), 0,
                          MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 61914*/            OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 61917*/            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] })
/* 61925*/          /*Scope*/ 23, /*->61949*/
/* 61926*/            OPC_CheckChild2CondCode, ISD::SETEQ,
/* 61928*/            OPC_EmitConvertToTarget, 1,
/* 61930*/            OPC_EmitNode1, TARGET_VAL(PPC::CMPDI), 0,
                          MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 61938*/            OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 61941*/            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] })
/* 61949*/          0, /*End of Scope*/
/* 61950*/        /*Scope*/ 28, /*->61979*/
/* 61951*/          OPC_CheckPredicate, 12, // Predicate_immZExt16
/* 61953*/          OPC_MoveParent,
/* 61954*/          OPC_CheckChild2CondCode, ISD::SETEQ,
/* 61956*/          OPC_CheckType, MVT::i1,
/* 61958*/          OPC_EmitConvertToTarget, 1,
/* 61960*/          OPC_EmitNode1, TARGET_VAL(PPC::CMPLDI), 0,
                        MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 61968*/          OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 61971*/          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] })
/* 61979*/        /*Scope*/ 44, /*->62024*/
/* 61980*/          OPC_CheckPredicate, 15, // Predicate_imm64ZExt32
/* 61982*/          OPC_MoveParent,
/* 61983*/          OPC_CheckChild2CondCode, ISD::SETEQ,
/* 61985*/          OPC_CheckType, MVT::i1,
/* 61987*/          OPC_EmitConvertToTarget, 1,
/* 61989*/          OPC_EmitNodeXForm, 0, 2, // HI16
/* 61992*/          OPC_EmitNode1, TARGET_VAL(PPC::XORIS8), 0,
                        MVT::i64, 2/*#Ops*/, 0, 3,  // Results = #4
/* 62000*/          OPC_EmitConvertToTarget, 1,
/* 62002*/          OPC_EmitNodeXForm, 1, 5, // LO16
/* 62005*/          OPC_EmitNode1, TARGET_VAL(PPC::CMPLDI), 0,
                        MVT::i32, 2/*#Ops*/, 4, 6,  // Results = #7
/* 62013*/          OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 62016*/          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] })
/* 62024*/        /*Scope*/ 57, /*->62082*/
/* 62025*/          OPC_CheckPredicate, 12, // Predicate_immZExt16
/* 62027*/          OPC_MoveParent,
/* 62028*/          OPC_CheckChild2CondCode, ISD::SETUGE,
/* 62030*/          OPC_CheckType, MVT::i1,
/* 62032*/          OPC_EmitConvertToTarget, 1,
/* 62034*/          OPC_EmitNode1, TARGET_VAL(PPC::CMPLDI), 0,
                        MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 62042*/          OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 62045*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 62053*/          OPC_EmitConvertToTarget, 1,
/* 62055*/          OPC_EmitNode1, TARGET_VAL(PPC::CMPLDI), 0,
                        MVT::i32, 2/*#Ops*/, 0, 6,  // Results = #7
/* 62063*/          OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 62066*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i1, 2/*#Ops*/, 7, 8,  // Results = #9
/* 62074*/          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] }))
/* 62082*/        /*Scope*/ 57, /*->62140*/
/* 62083*/          OPC_CheckPredicate, 14, // Predicate_imm64SExt16
/* 62085*/          OPC_MoveParent,
/* 62086*/          OPC_CheckChild2CondCode, ISD::SETGE,
/* 62088*/          OPC_CheckType, MVT::i1,
/* 62090*/          OPC_EmitConvertToTarget, 1,
/* 62092*/          OPC_EmitNode1, TARGET_VAL(PPC::CMPDI), 0,
                        MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 62100*/          OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 62103*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 62111*/          OPC_EmitConvertToTarget, 1,
/* 62113*/          OPC_EmitNode1, TARGET_VAL(PPC::CMPDI), 0,
                        MVT::i32, 2/*#Ops*/, 0, 6,  // Results = #7
/* 62121*/          OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 62124*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i1, 2/*#Ops*/, 7, 8,  // Results = #9
/* 62132*/          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] }))
/* 62140*/        /*Scope*/ 57, /*->62198*/
/* 62141*/          OPC_CheckPredicate, 12, // Predicate_immZExt16
/* 62143*/          OPC_MoveParent,
/* 62144*/          OPC_CheckChild2CondCode, ISD::SETULE,
/* 62146*/          OPC_CheckType, MVT::i1,
/* 62148*/          OPC_EmitConvertToTarget, 1,
/* 62150*/          OPC_EmitNode1, TARGET_VAL(PPC::CMPLDI), 0,
                        MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 62158*/          OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 62161*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 62169*/          OPC_EmitConvertToTarget, 1,
/* 62171*/          OPC_EmitNode1, TARGET_VAL(PPC::CMPLDI), 0,
                        MVT::i32, 2/*#Ops*/, 0, 6,  // Results = #7
/* 62179*/          OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 62182*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i1, 2/*#Ops*/, 7, 8,  // Results = #9
/* 62190*/          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] }))
/* 62198*/        /*Scope*/ 113, /*->62312*/
/* 62199*/          OPC_CheckPredicate, 14, // Predicate_imm64SExt16
/* 62201*/          OPC_MoveParent,
/* 62202*/          OPC_CheckType, MVT::i1,
/* 62204*/          OPC_Scope, 52, /*->62258*/ // 2 children in Scope
/* 62206*/            OPC_CheckChild2CondCode, ISD::SETLE,
/* 62208*/            OPC_EmitConvertToTarget, 1,
/* 62210*/            OPC_EmitNode1, TARGET_VAL(PPC::CMPDI), 0,
                          MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 62218*/            OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 62221*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 62229*/            OPC_EmitConvertToTarget, 1,
/* 62231*/            OPC_EmitNode1, TARGET_VAL(PPC::CMPDI), 0,
                          MVT::i32, 2/*#Ops*/, 0, 6,  // Results = #7
/* 62239*/            OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 62242*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i1, 2/*#Ops*/, 7, 8,  // Results = #9
/* 62250*/            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] }))
/* 62258*/          /*Scope*/ 52, /*->62311*/
/* 62259*/            OPC_CheckChild2CondCode, ISD::SETNE,
/* 62261*/            OPC_EmitConvertToTarget, 1,
/* 62263*/            OPC_EmitNode1, TARGET_VAL(PPC::CMPDI), 0,
                          MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 62271*/            OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 62274*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 62282*/            OPC_EmitConvertToTarget, 1,
/* 62284*/            OPC_EmitNode1, TARGET_VAL(PPC::CMPDI), 0,
                          MVT::i32, 2/*#Ops*/, 0, 6,  // Results = #7
/* 62292*/            OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 62295*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i1, 2/*#Ops*/, 7, 8,  // Results = #9
/* 62303*/            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] }))
/* 62311*/          0, /*End of Scope*/
/* 62312*/        /*Scope*/ 57, /*->62370*/
/* 62313*/          OPC_CheckPredicate, 12, // Predicate_immZExt16
/* 62315*/          OPC_MoveParent,
/* 62316*/          OPC_CheckChild2CondCode, ISD::SETNE,
/* 62318*/          OPC_CheckType, MVT::i1,
/* 62320*/          OPC_EmitConvertToTarget, 1,
/* 62322*/          OPC_EmitNode1, TARGET_VAL(PPC::CMPLDI), 0,
                        MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 62330*/          OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 62333*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 62341*/          OPC_EmitConvertToTarget, 1,
/* 62343*/          OPC_EmitNode1, TARGET_VAL(PPC::CMPLDI), 0,
                        MVT::i32, 2/*#Ops*/, 0, 6,  // Results = #7
/* 62351*/          OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 62354*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i1, 2/*#Ops*/, 7, 8,  // Results = #9
/* 62362*/          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] }))
/* 62370*/        /*Scope*/ 89, /*->62460*/
/* 62371*/          OPC_CheckPredicate, 15, // Predicate_imm64ZExt32
/* 62373*/          OPC_MoveParent,
/* 62374*/          OPC_CheckChild2CondCode, ISD::SETNE,
/* 62376*/          OPC_CheckType, MVT::i1,
/* 62378*/          OPC_EmitConvertToTarget, 1,
/* 62380*/          OPC_EmitNodeXForm, 0, 2, // HI16
/* 62383*/          OPC_EmitNode1, TARGET_VAL(PPC::XORIS8), 0,
                        MVT::i64, 2/*#Ops*/, 0, 3,  // Results = #4
/* 62391*/          OPC_EmitConvertToTarget, 1,
/* 62393*/          OPC_EmitNodeXForm, 1, 5, // LO16
/* 62396*/          OPC_EmitNode1, TARGET_VAL(PPC::CMPLDI), 0,
                        MVT::i32, 2/*#Ops*/, 4, 6,  // Results = #7
/* 62404*/          OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 62407*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i1, 2/*#Ops*/, 7, 8,  // Results = #9
/* 62415*/          OPC_EmitConvertToTarget, 1,
/* 62417*/          OPC_EmitNodeXForm, 0, 10, // HI16
/* 62420*/          OPC_EmitNode1, TARGET_VAL(PPC::XORIS8), 0,
                        MVT::i64, 2/*#Ops*/, 0, 11,  // Results = #12
/* 62428*/          OPC_EmitConvertToTarget, 1,
/* 62430*/          OPC_EmitNodeXForm, 1, 13, // LO16
/* 62433*/          OPC_EmitNode1, TARGET_VAL(PPC::CMPLDI), 0,
                        MVT::i32, 2/*#Ops*/, 12, 14,  // Results = #15
/* 62441*/          OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 62444*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i1, 2/*#Ops*/, 15, 16,  // Results = #17
/* 62452*/          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] }))
/* 62460*/        0, /*End of Scope*/
/* 62461*/      /*Scope*/ 23, /*->62485*/
/* 62462*/        OPC_CheckChild2CondCode, ISD::SETULT,
/* 62464*/        OPC_CheckType, MVT::i1,
/* 62466*/        OPC_EmitNode1, TARGET_VAL(PPC::CMPLD), 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] } i64:{ *:[i64] }:$s1, i64:{ *:[i64] }:$s2, SETULT:{ *:[Other] }) - Complexity = 3
                  // Dst: (EXTRACT_SUBREG:{ *:[i1] } (CMPLD:{ *:[i32] } ?:{ *:[i64] }:$s1, ?:{ *:[i64] }:$s2), sub_lt:{ *:[i32] })
/* 62485*/      /*Scope*/ 23, /*->62509*/
/* 62486*/        OPC_CheckChild2CondCode, ISD::SETLT,
/* 62488*/        OPC_CheckType, MVT::i1,
/* 62490*/        OPC_EmitNode1, TARGET_VAL(PPC::CMPD), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 62498*/        OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 62501*/        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] })
/* 62509*/      /*Scope*/ 23, /*->62533*/
/* 62510*/        OPC_CheckChild2CondCode, ISD::SETUGT,
/* 62512*/        OPC_CheckType, MVT::i1,
/* 62514*/        OPC_EmitNode1, TARGET_VAL(PPC::CMPLD), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 62522*/        OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 62525*/        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] })
/* 62533*/      /*Scope*/ 23, /*->62557*/
/* 62534*/        OPC_CheckChild2CondCode, ISD::SETGT,
/* 62536*/        OPC_CheckType, MVT::i1,
/* 62538*/        OPC_EmitNode1, TARGET_VAL(PPC::CMPD), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 62546*/        OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 62549*/        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] })
/* 62557*/      /*Scope*/ 23, /*->62581*/
/* 62558*/        OPC_CheckChild2CondCode, ISD::SETEQ,
/* 62560*/        OPC_CheckType, MVT::i1,
/* 62562*/        OPC_EmitNode1, TARGET_VAL(PPC::CMPD), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 62570*/        OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 62573*/        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] })
/* 62581*/      /*Scope*/ 50, /*->62632*/
/* 62582*/        OPC_CheckChild2CondCode, ISD::SETUGE,
/* 62584*/        OPC_CheckType, MVT::i1,
/* 62586*/        OPC_EmitNode1, TARGET_VAL(PPC::CMPLD), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 62594*/        OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 62597*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 62605*/        OPC_EmitNode1, TARGET_VAL(PPC::CMPLD), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #5
/* 62613*/        OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 62616*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 5, 6,  // Results = #7
/* 62624*/        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] }))
/* 62632*/      /*Scope*/ 50, /*->62683*/
/* 62633*/        OPC_CheckChild2CondCode, ISD::SETGE,
/* 62635*/        OPC_CheckType, MVT::i1,
/* 62637*/        OPC_EmitNode1, TARGET_VAL(PPC::CMPD), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 62645*/        OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 62648*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 62656*/        OPC_EmitNode1, TARGET_VAL(PPC::CMPD), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #5
/* 62664*/        OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 62667*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 5, 6,  // Results = #7
/* 62675*/        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] }))
/* 62683*/      /*Scope*/ 50, /*->62734*/
/* 62684*/        OPC_CheckChild2CondCode, ISD::SETULE,
/* 62686*/        OPC_CheckType, MVT::i1,
/* 62688*/        OPC_EmitNode1, TARGET_VAL(PPC::CMPLD), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 62696*/        OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 62699*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 62707*/        OPC_EmitNode1, TARGET_VAL(PPC::CMPLD), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #5
/* 62715*/        OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 62718*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 5, 6,  // Results = #7
/* 62726*/        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] }))
/* 62734*/      /*Scope*/ 50, /*->62785*/
/* 62735*/        OPC_CheckChild2CondCode, ISD::SETLE,
/* 62737*/        OPC_CheckType, MVT::i1,
/* 62739*/        OPC_EmitNode1, TARGET_VAL(PPC::CMPD), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 62747*/        OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 62750*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 62758*/        OPC_EmitNode1, TARGET_VAL(PPC::CMPD), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #5
/* 62766*/        OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 62769*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 5, 6,  // Results = #7
/* 62777*/        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] }))
/* 62785*/      /*Scope*/ 50, /*->62836*/
/* 62786*/        OPC_CheckChild2CondCode, ISD::SETNE,
/* 62788*/        OPC_CheckType, MVT::i1,
/* 62790*/        OPC_EmitNode1, TARGET_VAL(PPC::CMPD), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 62798*/        OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 62801*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 62809*/        OPC_EmitNode1, TARGET_VAL(PPC::CMPD), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #5
/* 62817*/        OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 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] } 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] }))
/* 62836*/      0, /*End of Scope*/
/* 62837*/    /*Scope*/ 117, /*->62955*/
/* 62838*/      OPC_CheckChild0Type, MVT::i1,
/* 62840*/      OPC_RecordChild1, // #1 = $s2
/* 62841*/      OPC_CheckType, MVT::i1,
/* 62843*/      OPC_Scope, 10, /*->62855*/ // 10 children in Scope
/* 62845*/        OPC_CheckChild2CondCode, ISD::SETLT,
/* 62847*/        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)
/* 62855*/      /*Scope*/ 10, /*->62866*/
/* 62856*/        OPC_CheckChild2CondCode, ISD::SETULT,
/* 62858*/        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)
/* 62866*/      /*Scope*/ 10, /*->62877*/
/* 62867*/        OPC_CheckChild2CondCode, ISD::SETLE,
/* 62869*/        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)
/* 62877*/      /*Scope*/ 10, /*->62888*/
/* 62878*/        OPC_CheckChild2CondCode, ISD::SETULE,
/* 62880*/        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)
/* 62888*/      /*Scope*/ 10, /*->62899*/
/* 62889*/        OPC_CheckChild2CondCode, ISD::SETEQ,
/* 62891*/        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)
/* 62899*/      /*Scope*/ 10, /*->62910*/
/* 62900*/        OPC_CheckChild2CondCode, ISD::SETGE,
/* 62902*/        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)
/* 62910*/      /*Scope*/ 10, /*->62921*/
/* 62911*/        OPC_CheckChild2CondCode, ISD::SETUGE,
/* 62913*/        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)
/* 62921*/      /*Scope*/ 10, /*->62932*/
/* 62922*/        OPC_CheckChild2CondCode, ISD::SETGT,
/* 62924*/        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)
/* 62932*/      /*Scope*/ 10, /*->62943*/
/* 62933*/        OPC_CheckChild2CondCode, ISD::SETUGT,
/* 62935*/        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)
/* 62943*/      /*Scope*/ 10, /*->62954*/
/* 62944*/        OPC_CheckChild2CondCode, ISD::SETNE,
/* 62946*/        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)
/* 62954*/      0, /*End of Scope*/
/* 62955*/    /*Scope*/ 86|128,7/*982*/, /*->63939*/
/* 62957*/      OPC_CheckChild0Type, MVT::f32,
/* 62959*/      OPC_RecordChild1, // #1 = $s2
/* 62960*/      OPC_CheckType, MVT::i1,
/* 62962*/      OPC_Scope, 23, /*->62987*/ // 26 children in Scope
/* 62964*/        OPC_CheckChild2CondCode, ISD::SETOLT,
/* 62966*/        OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 62968*/        OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 62976*/        OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 62979*/        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] })
/* 62987*/      /*Scope*/ 23, /*->63011*/
/* 62988*/        OPC_CheckChild2CondCode, ISD::SETLT,
/* 62990*/        OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 62992*/        OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 63000*/        OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 63003*/        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] })
/* 63011*/      /*Scope*/ 23, /*->63035*/
/* 63012*/        OPC_CheckChild2CondCode, ISD::SETOGT,
/* 63014*/        OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 63016*/        OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 63024*/        OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 63027*/        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] })
/* 63035*/      /*Scope*/ 23, /*->63059*/
/* 63036*/        OPC_CheckChild2CondCode, ISD::SETGT,
/* 63038*/        OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 63040*/        OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 63048*/        OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 63051*/        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] })
/* 63059*/      /*Scope*/ 23, /*->63083*/
/* 63060*/        OPC_CheckChild2CondCode, ISD::SETOEQ,
/* 63062*/        OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 63064*/        OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 63072*/        OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 63075*/        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] })
/* 63083*/      /*Scope*/ 23, /*->63107*/
/* 63084*/        OPC_CheckChild2CondCode, ISD::SETEQ,
/* 63086*/        OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 63088*/        OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 63096*/        OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 63099*/        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] })
/* 63107*/      /*Scope*/ 23, /*->63131*/
/* 63108*/        OPC_CheckChild2CondCode, ISD::SETUO,
/* 63110*/        OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 63112*/        OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 63120*/        OPC_EmitInteger, MVT::i32, PPC::sub_un,
/* 63123*/        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] })
/* 63131*/      /*Scope*/ 23, /*->63155*/
/* 63132*/        OPC_CheckChild2CondCode, ISD::SETOLT,
/* 63134*/        OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 63136*/        OPC_EmitNode1, TARGET_VAL(PPC::EFSCMPLT), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 63144*/        OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 63147*/        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] })
/* 63155*/      /*Scope*/ 23, /*->63179*/
/* 63156*/        OPC_CheckChild2CondCode, ISD::SETLT,
/* 63158*/        OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 63160*/        OPC_EmitNode1, TARGET_VAL(PPC::EFSCMPLT), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 63168*/        OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 63171*/        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] })
/* 63179*/      /*Scope*/ 23, /*->63203*/
/* 63180*/        OPC_CheckChild2CondCode, ISD::SETOGT,
/* 63182*/        OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 63184*/        OPC_EmitNode1, TARGET_VAL(PPC::EFSCMPGT), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 63192*/        OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 63195*/        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] })
/* 63203*/      /*Scope*/ 23, /*->63227*/
/* 63204*/        OPC_CheckChild2CondCode, ISD::SETGT,
/* 63206*/        OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 63208*/        OPC_EmitNode1, TARGET_VAL(PPC::EFSCMPGT), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 63216*/        OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 63219*/        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] })
/* 63227*/      /*Scope*/ 23, /*->63251*/
/* 63228*/        OPC_CheckChild2CondCode, ISD::SETOEQ,
/* 63230*/        OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 63232*/        OPC_EmitNode1, TARGET_VAL(PPC::EFSCMPEQ), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 63240*/        OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 63243*/        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] })
/* 63251*/      /*Scope*/ 23, /*->63275*/
/* 63252*/        OPC_CheckChild2CondCode, ISD::SETEQ,
/* 63254*/        OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 63256*/        OPC_EmitNode1, TARGET_VAL(PPC::EFSCMPEQ), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 63264*/        OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 63267*/        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] })
/* 63275*/      /*Scope*/ 50, /*->63326*/
/* 63276*/        OPC_CheckChild2CondCode, ISD::SETUGE,
/* 63278*/        OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 63280*/        OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 63288*/        OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 63291*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 63299*/        OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #5
/* 63307*/        OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 63310*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 5, 6,  // Results = #7
/* 63318*/        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] }))
/* 63326*/      /*Scope*/ 50, /*->63377*/
/* 63327*/        OPC_CheckChild2CondCode, ISD::SETGE,
/* 63329*/        OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 63331*/        OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 63339*/        OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 63342*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 63350*/        OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #5
/* 63358*/        OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 63361*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 5, 6,  // Results = #7
/* 63369*/        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] }))
/* 63377*/      /*Scope*/ 50, /*->63428*/
/* 63378*/        OPC_CheckChild2CondCode, ISD::SETULE,
/* 63380*/        OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 63382*/        OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 63390*/        OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 63393*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 63401*/        OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #5
/* 63409*/        OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 63412*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 5, 6,  // Results = #7
/* 63420*/        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] }))
/* 63428*/      /*Scope*/ 50, /*->63479*/
/* 63429*/        OPC_CheckChild2CondCode, ISD::SETLE,
/* 63431*/        OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 63433*/        OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 63441*/        OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 63444*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 63452*/        OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #5
/* 63460*/        OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 63463*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 5, 6,  // Results = #7
/* 63471*/        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] }))
/* 63479*/      /*Scope*/ 50, /*->63530*/
/* 63480*/        OPC_CheckChild2CondCode, ISD::SETUNE,
/* 63482*/        OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 63484*/        OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 63492*/        OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 63495*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 63503*/        OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #5
/* 63511*/        OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 63514*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 5, 6,  // Results = #7
/* 63522*/        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] }))
/* 63530*/      /*Scope*/ 50, /*->63581*/
/* 63531*/        OPC_CheckChild2CondCode, ISD::SETNE,
/* 63533*/        OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 63535*/        OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 63543*/        OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 63546*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 63554*/        OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #5
/* 63562*/        OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 63565*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 5, 6,  // Results = #7
/* 63573*/        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] }))
/* 63581*/      /*Scope*/ 50, /*->63632*/
/* 63582*/        OPC_CheckChild2CondCode, ISD::SETO,
/* 63584*/        OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 63586*/        OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 63594*/        OPC_EmitInteger, MVT::i32, PPC::sub_un,
/* 63597*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 63605*/        OPC_EmitNode1, TARGET_VAL(PPC::FCMPUS), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #5
/* 63613*/        OPC_EmitInteger, MVT::i32, PPC::sub_un,
/* 63616*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 5, 6,  // Results = #7
/* 63624*/        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] }))
/* 63632*/      /*Scope*/ 50, /*->63683*/
/* 63633*/        OPC_CheckChild2CondCode, ISD::SETUGE,
/* 63635*/        OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 63637*/        OPC_EmitNode1, TARGET_VAL(PPC::EFSCMPLT), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 63645*/        OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 63648*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 63656*/        OPC_EmitNode1, TARGET_VAL(PPC::EFSCMPLT), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #5
/* 63664*/        OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 63667*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 5, 6,  // Results = #7
/* 63675*/        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] }))
/* 63683*/      /*Scope*/ 50, /*->63734*/
/* 63684*/        OPC_CheckChild2CondCode, ISD::SETGE,
/* 63686*/        OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 63688*/        OPC_EmitNode1, TARGET_VAL(PPC::EFSCMPLT), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 63696*/        OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 63699*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 63707*/        OPC_EmitNode1, TARGET_VAL(PPC::EFSCMPLT), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #5
/* 63715*/        OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 63718*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 5, 6,  // Results = #7
/* 63726*/        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] }))
/* 63734*/      /*Scope*/ 50, /*->63785*/
/* 63735*/        OPC_CheckChild2CondCode, ISD::SETULE,
/* 63737*/        OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 63739*/        OPC_EmitNode1, TARGET_VAL(PPC::EFSCMPGT), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 63747*/        OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 63750*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 63758*/        OPC_EmitNode1, TARGET_VAL(PPC::EFSCMPGT), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #5
/* 63766*/        OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 63769*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 5, 6,  // Results = #7
/* 63777*/        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] }))
/* 63785*/      /*Scope*/ 50, /*->63836*/
/* 63786*/        OPC_CheckChild2CondCode, ISD::SETLE,
/* 63788*/        OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 63790*/        OPC_EmitNode1, TARGET_VAL(PPC::EFSCMPGT), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 63798*/        OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 63801*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 63809*/        OPC_EmitNode1, TARGET_VAL(PPC::EFSCMPGT), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #5
/* 63817*/        OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 63820*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 5, 6,  // Results = #7
/* 63828*/        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] }))
/* 63836*/      /*Scope*/ 50, /*->63887*/
/* 63837*/        OPC_CheckChild2CondCode, ISD::SETUNE,
/* 63839*/        OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 63841*/        OPC_EmitNode1, TARGET_VAL(PPC::EFSCMPEQ), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 63849*/        OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 63852*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 63860*/        OPC_EmitNode1, TARGET_VAL(PPC::EFSCMPEQ), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #5
/* 63868*/        OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 63871*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 5, 6,  // Results = #7
/* 63879*/        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] }))
/* 63887*/      /*Scope*/ 50, /*->63938*/
/* 63888*/        OPC_CheckChild2CondCode, ISD::SETNE,
/* 63890*/        OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 63892*/        OPC_EmitNode1, TARGET_VAL(PPC::EFSCMPEQ), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 63900*/        OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 63903*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 63911*/        OPC_EmitNode1, TARGET_VAL(PPC::EFSCMPEQ), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #5
/* 63919*/        OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 63922*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 5, 6,  // Results = #7
/* 63930*/        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] }))
/* 63938*/      0, /*End of Scope*/
/* 63939*/    /*Scope*/ 86|128,7/*982*/, /*->64923*/
/* 63941*/      OPC_CheckChild0Type, MVT::f64,
/* 63943*/      OPC_RecordChild1, // #1 = $s2
/* 63944*/      OPC_CheckType, MVT::i1,
/* 63946*/      OPC_Scope, 23, /*->63971*/ // 26 children in Scope
/* 63948*/        OPC_CheckChild2CondCode, ISD::SETOLT,
/* 63950*/        OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 63952*/        OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 63960*/        OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 63963*/        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] })
/* 63971*/      /*Scope*/ 23, /*->63995*/
/* 63972*/        OPC_CheckChild2CondCode, ISD::SETLT,
/* 63974*/        OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 63976*/        OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 63984*/        OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 63987*/        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] })
/* 63995*/      /*Scope*/ 23, /*->64019*/
/* 63996*/        OPC_CheckChild2CondCode, ISD::SETOGT,
/* 63998*/        OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 64000*/        OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 64008*/        OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 64011*/        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] })
/* 64019*/      /*Scope*/ 23, /*->64043*/
/* 64020*/        OPC_CheckChild2CondCode, ISD::SETGT,
/* 64022*/        OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 64024*/        OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 64032*/        OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 64035*/        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] })
/* 64043*/      /*Scope*/ 23, /*->64067*/
/* 64044*/        OPC_CheckChild2CondCode, ISD::SETOEQ,
/* 64046*/        OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 64048*/        OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 64056*/        OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 64059*/        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] })
/* 64067*/      /*Scope*/ 23, /*->64091*/
/* 64068*/        OPC_CheckChild2CondCode, ISD::SETEQ,
/* 64070*/        OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 64072*/        OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 64080*/        OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 64083*/        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] })
/* 64091*/      /*Scope*/ 23, /*->64115*/
/* 64092*/        OPC_CheckChild2CondCode, ISD::SETUO,
/* 64094*/        OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 64096*/        OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 64104*/        OPC_EmitInteger, MVT::i32, PPC::sub_un,
/* 64107*/        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] })
/* 64115*/      /*Scope*/ 23, /*->64139*/
/* 64116*/        OPC_CheckChild2CondCode, ISD::SETOLT,
/* 64118*/        OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 64120*/        OPC_EmitNode1, TARGET_VAL(PPC::EFDCMPLT), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 64128*/        OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 64131*/        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] })
/* 64139*/      /*Scope*/ 23, /*->64163*/
/* 64140*/        OPC_CheckChild2CondCode, ISD::SETLT,
/* 64142*/        OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 64144*/        OPC_EmitNode1, TARGET_VAL(PPC::EFDCMPLT), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 64152*/        OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 64155*/        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] })
/* 64163*/      /*Scope*/ 23, /*->64187*/
/* 64164*/        OPC_CheckChild2CondCode, ISD::SETOGT,
/* 64166*/        OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 64168*/        OPC_EmitNode1, TARGET_VAL(PPC::EFDCMPGT), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 64176*/        OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 64179*/        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] })
/* 64187*/      /*Scope*/ 23, /*->64211*/
/* 64188*/        OPC_CheckChild2CondCode, ISD::SETGT,
/* 64190*/        OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 64192*/        OPC_EmitNode1, TARGET_VAL(PPC::EFDCMPGT), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 64200*/        OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 64203*/        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] })
/* 64211*/      /*Scope*/ 23, /*->64235*/
/* 64212*/        OPC_CheckChild2CondCode, ISD::SETOEQ,
/* 64214*/        OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 64216*/        OPC_EmitNode1, TARGET_VAL(PPC::EFDCMPEQ), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 64224*/        OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 64227*/        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] })
/* 64235*/      /*Scope*/ 23, /*->64259*/
/* 64236*/        OPC_CheckChild2CondCode, ISD::SETEQ,
/* 64238*/        OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 64240*/        OPC_EmitNode1, TARGET_VAL(PPC::EFDCMPEQ), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 64248*/        OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 64251*/        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] })
/* 64259*/      /*Scope*/ 50, /*->64310*/
/* 64260*/        OPC_CheckChild2CondCode, ISD::SETUGE,
/* 64262*/        OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 64264*/        OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 64272*/        OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 64275*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 64283*/        OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #5
/* 64291*/        OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 64294*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 5, 6,  // Results = #7
/* 64302*/        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] }))
/* 64310*/      /*Scope*/ 50, /*->64361*/
/* 64311*/        OPC_CheckChild2CondCode, ISD::SETGE,
/* 64313*/        OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 64315*/        OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 64323*/        OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 64326*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 64334*/        OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #5
/* 64342*/        OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 64345*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 5, 6,  // Results = #7
/* 64353*/        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] }))
/* 64361*/      /*Scope*/ 50, /*->64412*/
/* 64362*/        OPC_CheckChild2CondCode, ISD::SETULE,
/* 64364*/        OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 64366*/        OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 64374*/        OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 64377*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 64385*/        OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #5
/* 64393*/        OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 64396*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 5, 6,  // Results = #7
/* 64404*/        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] }))
/* 64412*/      /*Scope*/ 50, /*->64463*/
/* 64413*/        OPC_CheckChild2CondCode, ISD::SETLE,
/* 64415*/        OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 64417*/        OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 64425*/        OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 64428*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 64436*/        OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #5
/* 64444*/        OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 64447*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 5, 6,  // Results = #7
/* 64455*/        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] }))
/* 64463*/      /*Scope*/ 50, /*->64514*/
/* 64464*/        OPC_CheckChild2CondCode, ISD::SETUNE,
/* 64466*/        OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 64468*/        OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 64476*/        OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 64479*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 64487*/        OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #5
/* 64495*/        OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 64498*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 5, 6,  // Results = #7
/* 64506*/        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] }))
/* 64514*/      /*Scope*/ 50, /*->64565*/
/* 64515*/        OPC_CheckChild2CondCode, ISD::SETNE,
/* 64517*/        OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 64519*/        OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 64527*/        OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 64530*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 64538*/        OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #5
/* 64546*/        OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 64549*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 5, 6,  // Results = #7
/* 64557*/        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] }))
/* 64565*/      /*Scope*/ 50, /*->64616*/
/* 64566*/        OPC_CheckChild2CondCode, ISD::SETO,
/* 64568*/        OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 64570*/        OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 64578*/        OPC_EmitInteger, MVT::i32, PPC::sub_un,
/* 64581*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 64589*/        OPC_EmitNode1, TARGET_VAL(PPC::FCMPUD), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #5
/* 64597*/        OPC_EmitInteger, MVT::i32, PPC::sub_un,
/* 64600*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 5, 6,  // Results = #7
/* 64608*/        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] }))
/* 64616*/      /*Scope*/ 50, /*->64667*/
/* 64617*/        OPC_CheckChild2CondCode, ISD::SETUGE,
/* 64619*/        OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 64621*/        OPC_EmitNode1, TARGET_VAL(PPC::EFDCMPLT), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 64629*/        OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 64632*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 64640*/        OPC_EmitNode1, TARGET_VAL(PPC::EFDCMPLT), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #5
/* 64648*/        OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 64651*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 5, 6,  // Results = #7
/* 64659*/        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] }))
/* 64667*/      /*Scope*/ 50, /*->64718*/
/* 64668*/        OPC_CheckChild2CondCode, ISD::SETGE,
/* 64670*/        OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 64672*/        OPC_EmitNode1, TARGET_VAL(PPC::EFDCMPLT), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 64680*/        OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 64683*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 64691*/        OPC_EmitNode1, TARGET_VAL(PPC::EFDCMPLT), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #5
/* 64699*/        OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 64702*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 5, 6,  // Results = #7
/* 64710*/        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] }))
/* 64718*/      /*Scope*/ 50, /*->64769*/
/* 64719*/        OPC_CheckChild2CondCode, ISD::SETULE,
/* 64721*/        OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 64723*/        OPC_EmitNode1, TARGET_VAL(PPC::EFDCMPGT), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 64731*/        OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 64734*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 64742*/        OPC_EmitNode1, TARGET_VAL(PPC::EFDCMPGT), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #5
/* 64750*/        OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 64753*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 5, 6,  // Results = #7
/* 64761*/        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] }))
/* 64769*/      /*Scope*/ 50, /*->64820*/
/* 64770*/        OPC_CheckChild2CondCode, ISD::SETLE,
/* 64772*/        OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 64774*/        OPC_EmitNode1, TARGET_VAL(PPC::EFDCMPGT), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 64782*/        OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 64785*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 64793*/        OPC_EmitNode1, TARGET_VAL(PPC::EFDCMPGT), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #5
/* 64801*/        OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 64804*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 5, 6,  // Results = #7
/* 64812*/        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] }))
/* 64820*/      /*Scope*/ 50, /*->64871*/
/* 64821*/        OPC_CheckChild2CondCode, ISD::SETUNE,
/* 64823*/        OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 64825*/        OPC_EmitNode1, TARGET_VAL(PPC::EFDCMPEQ), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 64833*/        OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 64836*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 64844*/        OPC_EmitNode1, TARGET_VAL(PPC::EFDCMPEQ), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #5
/* 64852*/        OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 64855*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 5, 6,  // Results = #7
/* 64863*/        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] }))
/* 64871*/      /*Scope*/ 50, /*->64922*/
/* 64872*/        OPC_CheckChild2CondCode, ISD::SETNE,
/* 64874*/        OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 64876*/        OPC_EmitNode1, TARGET_VAL(PPC::EFDCMPEQ), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 64884*/        OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 64887*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 64895*/        OPC_EmitNode1, TARGET_VAL(PPC::EFDCMPEQ), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #5
/* 64903*/        OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 64906*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 5, 6,  // Results = #7
/* 64914*/        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] }))
/* 64922*/      0, /*End of Scope*/
/* 64923*/    /*Scope*/ 20|128,4/*532*/, /*->65457*/
/* 64925*/      OPC_CheckChild0Type, MVT::f128,
/* 64927*/      OPC_RecordChild1, // #1 = $s2
/* 64928*/      OPC_CheckType, MVT::i1,
/* 64930*/      OPC_Scope, 23, /*->64955*/ // 14 children in Scope
/* 64932*/        OPC_CheckChild2CondCode, ISD::SETOLT,
/* 64934*/        OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 64936*/        OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 64944*/        OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 64947*/        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] })
/* 64955*/      /*Scope*/ 23, /*->64979*/
/* 64956*/        OPC_CheckChild2CondCode, ISD::SETLT,
/* 64958*/        OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 64960*/        OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 64968*/        OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 64971*/        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] })
/* 64979*/      /*Scope*/ 23, /*->65003*/
/* 64980*/        OPC_CheckChild2CondCode, ISD::SETOGT,
/* 64982*/        OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 64984*/        OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 64992*/        OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 64995*/        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] })
/* 65003*/      /*Scope*/ 23, /*->65027*/
/* 65004*/        OPC_CheckChild2CondCode, ISD::SETGT,
/* 65006*/        OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 65008*/        OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 65016*/        OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 65019*/        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] })
/* 65027*/      /*Scope*/ 23, /*->65051*/
/* 65028*/        OPC_CheckChild2CondCode, ISD::SETOEQ,
/* 65030*/        OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 65032*/        OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 65040*/        OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 65043*/        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] })
/* 65051*/      /*Scope*/ 23, /*->65075*/
/* 65052*/        OPC_CheckChild2CondCode, ISD::SETEQ,
/* 65054*/        OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 65056*/        OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 65064*/        OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 65067*/        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] })
/* 65075*/      /*Scope*/ 23, /*->65099*/
/* 65076*/        OPC_CheckChild2CondCode, ISD::SETUO,
/* 65078*/        OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 65080*/        OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 65088*/        OPC_EmitInteger, MVT::i32, PPC::sub_un,
/* 65091*/        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] })
/* 65099*/      /*Scope*/ 50, /*->65150*/
/* 65100*/        OPC_CheckChild2CondCode, ISD::SETUGE,
/* 65102*/        OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 65104*/        OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 65112*/        OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 65115*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 65123*/        OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #5
/* 65131*/        OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 65134*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 5, 6,  // Results = #7
/* 65142*/        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] }))
/* 65150*/      /*Scope*/ 50, /*->65201*/
/* 65151*/        OPC_CheckChild2CondCode, ISD::SETGE,
/* 65153*/        OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 65155*/        OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 65163*/        OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 65166*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 65174*/        OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #5
/* 65182*/        OPC_EmitInteger, MVT::i32, PPC::sub_lt,
/* 65185*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 5, 6,  // Results = #7
/* 65193*/        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] }))
/* 65201*/      /*Scope*/ 50, /*->65252*/
/* 65202*/        OPC_CheckChild2CondCode, ISD::SETULE,
/* 65204*/        OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 65206*/        OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 65214*/        OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 65217*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 65225*/        OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #5
/* 65233*/        OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 65236*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 5, 6,  // Results = #7
/* 65244*/        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] }))
/* 65252*/      /*Scope*/ 50, /*->65303*/
/* 65253*/        OPC_CheckChild2CondCode, ISD::SETLE,
/* 65255*/        OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 65257*/        OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 65265*/        OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 65268*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 65276*/        OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #5
/* 65284*/        OPC_EmitInteger, MVT::i32, PPC::sub_gt,
/* 65287*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 5, 6,  // Results = #7
/* 65295*/        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] }))
/* 65303*/      /*Scope*/ 50, /*->65354*/
/* 65304*/        OPC_CheckChild2CondCode, ISD::SETUNE,
/* 65306*/        OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 65308*/        OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 65316*/        OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 65319*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 65327*/        OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #5
/* 65335*/        OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 65338*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 5, 6,  // Results = #7
/* 65346*/        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] }))
/* 65354*/      /*Scope*/ 50, /*->65405*/
/* 65355*/        OPC_CheckChild2CondCode, ISD::SETNE,
/* 65357*/        OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 65359*/        OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 65367*/        OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 65370*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 65378*/        OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #5
/* 65386*/        OPC_EmitInteger, MVT::i32, PPC::sub_eq,
/* 65389*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 5, 6,  // Results = #7
/* 65397*/        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] }))
/* 65405*/      /*Scope*/ 50, /*->65456*/
/* 65406*/        OPC_CheckChild2CondCode, ISD::SETO,
/* 65408*/        OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 65410*/        OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 65418*/        OPC_EmitInteger, MVT::i32, PPC::sub_un,
/* 65421*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 2, 3,  // Results = #4
/* 65429*/        OPC_EmitNode1, TARGET_VAL(PPC::XSCMPUQP), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #5
/* 65437*/        OPC_EmitInteger, MVT::i32, PPC::sub_un,
/* 65440*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i1, 2/*#Ops*/, 5, 6,  // Results = #7
/* 65448*/        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] }))
/* 65456*/      0, /*End of Scope*/
/* 65457*/    /*Scope*/ 15|128,4/*527*/, /*->65986*/
/* 65459*/      OPC_CheckChild0Type, MVT::v4f64,
/* 65461*/      OPC_RecordChild1, // #1 = $FRB
/* 65462*/      OPC_CheckType, MVT::v4i1,
/* 65464*/      OPC_Scope, 12, /*->65478*/ // 20 children in Scope
/* 65466*/        OPC_CheckChild2CondCode, ISD::SETUO,
/* 65468*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 65470*/        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)
/* 65478*/      /*Scope*/ 12, /*->65491*/
/* 65479*/        OPC_CheckChild2CondCode, ISD::SETOLT,
/* 65481*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 65483*/        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)
/* 65491*/      /*Scope*/ 12, /*->65504*/
/* 65492*/        OPC_CheckChild2CondCode, ISD::SETOGT,
/* 65494*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 65496*/        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)
/* 65504*/      /*Scope*/ 12, /*->65517*/
/* 65505*/        OPC_CheckChild2CondCode, ISD::SETOEQ,
/* 65507*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 65509*/        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)
/* 65517*/      /*Scope*/ 12, /*->65530*/
/* 65518*/        OPC_CheckChild2CondCode, ISD::SETEQ,
/* 65520*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 65522*/        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)
/* 65530*/      /*Scope*/ 12, /*->65543*/
/* 65531*/        OPC_CheckChild2CondCode, ISD::SETGT,
/* 65533*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 65535*/        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)
/* 65543*/      /*Scope*/ 12, /*->65556*/
/* 65544*/        OPC_CheckChild2CondCode, ISD::SETLT,
/* 65546*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 65548*/        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)
/* 65556*/      /*Scope*/ 32, /*->65589*/
/* 65557*/        OPC_CheckChild2CondCode, ISD::SETOGE,
/* 65559*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 65561*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFCMPLTb), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1,  // Results = #2
/* 65569*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFTSTNANb), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1,  // Results = #3
/* 65577*/        OPC_EmitInteger, MVT::i32, 8, 
/* 65580*/        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] })
/* 65589*/      /*Scope*/ 32, /*->65622*/
/* 65590*/        OPC_CheckChild2CondCode, ISD::SETOLE,
/* 65592*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 65594*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFCMPGTb), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1,  // Results = #2
/* 65602*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFTSTNANb), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1,  // Results = #3
/* 65610*/        OPC_EmitInteger, MVT::i32, 8, 
/* 65613*/        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] })
/* 65622*/      /*Scope*/ 32, /*->65655*/
/* 65623*/        OPC_CheckChild2CondCode, ISD::SETONE,
/* 65625*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 65627*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFCMPEQb), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1,  // Results = #2
/* 65635*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFTSTNANb), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1,  // Results = #3
/* 65643*/        OPC_EmitInteger, MVT::i32, 8, 
/* 65646*/        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] })
/* 65655*/      /*Scope*/ 32, /*->65688*/
/* 65656*/        OPC_CheckChild2CondCode, ISD::SETO,
/* 65658*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 65660*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFTSTNANb), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1,  // Results = #2
/* 65668*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFTSTNANb), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1,  // Results = #3
/* 65676*/        OPC_EmitInteger, MVT::i32, 10, 
/* 65679*/        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] })
/* 65688*/      /*Scope*/ 32, /*->65721*/
/* 65689*/        OPC_CheckChild2CondCode, ISD::SETUEQ,
/* 65691*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 65693*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFCMPEQb), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1,  // Results = #2
/* 65701*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFTSTNANb), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1,  // Results = #3
/* 65709*/        OPC_EmitInteger, MVT::i32, 7, 
/* 65712*/        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] })
/* 65721*/      /*Scope*/ 32, /*->65754*/
/* 65722*/        OPC_CheckChild2CondCode, ISD::SETUGT,
/* 65724*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 65726*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFCMPGTb), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1,  // Results = #2
/* 65734*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFTSTNANb), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1,  // Results = #3
/* 65742*/        OPC_EmitInteger, MVT::i32, 7, 
/* 65745*/        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] })
/* 65754*/      /*Scope*/ 32, /*->65787*/
/* 65755*/        OPC_CheckChild2CondCode, ISD::SETUGE,
/* 65757*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 65759*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFTSTNANb), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1,  // Results = #2
/* 65767*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFCMPLTb), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1,  // Results = #3
/* 65775*/        OPC_EmitInteger, MVT::i32, 13, 
/* 65778*/        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] })
/* 65787*/      /*Scope*/ 32, /*->65820*/
/* 65788*/        OPC_CheckChild2CondCode, ISD::SETULT,
/* 65790*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 65792*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFCMPLTb), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1,  // Results = #2
/* 65800*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFTSTNANb), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1,  // Results = #3
/* 65808*/        OPC_EmitInteger, MVT::i32, 7, 
/* 65811*/        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] })
/* 65820*/      /*Scope*/ 32, /*->65853*/
/* 65821*/        OPC_CheckChild2CondCode, ISD::SETULE,
/* 65823*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 65825*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFTSTNANb), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1,  // Results = #2
/* 65833*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFCMPGTb), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1,  // Results = #3
/* 65841*/        OPC_EmitInteger, MVT::i32, 13, 
/* 65844*/        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] })
/* 65853*/      /*Scope*/ 32, /*->65886*/
/* 65854*/        OPC_CheckChild2CondCode, ISD::SETUNE,
/* 65856*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 65858*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFTSTNANb), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1,  // Results = #2
/* 65866*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFCMPEQb), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1,  // Results = #3
/* 65874*/        OPC_EmitInteger, MVT::i32, 13, 
/* 65877*/        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] })
/* 65886*/      /*Scope*/ 32, /*->65919*/
/* 65887*/        OPC_CheckChild2CondCode, ISD::SETGE,
/* 65889*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 65891*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFCMPLTb), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1,  // Results = #2
/* 65899*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFCMPLTb), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1,  // Results = #3
/* 65907*/        OPC_EmitInteger, MVT::i32, 10, 
/* 65910*/        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] })
/* 65919*/      /*Scope*/ 32, /*->65952*/
/* 65920*/        OPC_CheckChild2CondCode, ISD::SETLE,
/* 65922*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 65924*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFCMPGTb), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1,  // Results = #2
/* 65932*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFCMPGTb), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1,  // Results = #3
/* 65940*/        OPC_EmitInteger, MVT::i32, 10, 
/* 65943*/        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] })
/* 65952*/      /*Scope*/ 32, /*->65985*/
/* 65953*/        OPC_CheckChild2CondCode, ISD::SETNE,
/* 65955*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 65957*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFCMPEQb), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1,  // Results = #2
/* 65965*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFCMPEQb), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1,  // Results = #3
/* 65973*/        OPC_EmitInteger, MVT::i32, 10, 
/* 65976*/        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] })
/* 65985*/      0, /*End of Scope*/
/* 65986*/    /*Scope*/ 15|128,4/*527*/, /*->66515*/
/* 65988*/      OPC_CheckChild0Type, MVT::v4f32,
/* 65990*/      OPC_RecordChild1, // #1 = $FRB
/* 65991*/      OPC_CheckType, MVT::v4i1,
/* 65993*/      OPC_Scope, 12, /*->66007*/ // 20 children in Scope
/* 65995*/        OPC_CheckChild2CondCode, ISD::SETUO,
/* 65997*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 65999*/        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)
/* 66007*/      /*Scope*/ 12, /*->66020*/
/* 66008*/        OPC_CheckChild2CondCode, ISD::SETOLT,
/* 66010*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 66012*/        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)
/* 66020*/      /*Scope*/ 12, /*->66033*/
/* 66021*/        OPC_CheckChild2CondCode, ISD::SETOGT,
/* 66023*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 66025*/        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)
/* 66033*/      /*Scope*/ 12, /*->66046*/
/* 66034*/        OPC_CheckChild2CondCode, ISD::SETOEQ,
/* 66036*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 66038*/        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)
/* 66046*/      /*Scope*/ 12, /*->66059*/
/* 66047*/        OPC_CheckChild2CondCode, ISD::SETEQ,
/* 66049*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 66051*/        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)
/* 66059*/      /*Scope*/ 12, /*->66072*/
/* 66060*/        OPC_CheckChild2CondCode, ISD::SETGT,
/* 66062*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 66064*/        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)
/* 66072*/      /*Scope*/ 12, /*->66085*/
/* 66073*/        OPC_CheckChild2CondCode, ISD::SETLT,
/* 66075*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 66077*/        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)
/* 66085*/      /*Scope*/ 32, /*->66118*/
/* 66086*/        OPC_CheckChild2CondCode, ISD::SETOGE,
/* 66088*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 66090*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFCMPLTbs), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1,  // Results = #2
/* 66098*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFTSTNANbs), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1,  // Results = #3
/* 66106*/        OPC_EmitInteger, MVT::i32, 8, 
/* 66109*/        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] })
/* 66118*/      /*Scope*/ 32, /*->66151*/
/* 66119*/        OPC_CheckChild2CondCode, ISD::SETOLE,
/* 66121*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 66123*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFCMPGTbs), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1,  // Results = #2
/* 66131*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFTSTNANbs), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1,  // Results = #3
/* 66139*/        OPC_EmitInteger, MVT::i32, 8, 
/* 66142*/        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] })
/* 66151*/      /*Scope*/ 32, /*->66184*/
/* 66152*/        OPC_CheckChild2CondCode, ISD::SETONE,
/* 66154*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 66156*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFCMPEQbs), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1,  // Results = #2
/* 66164*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFTSTNANbs), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1,  // Results = #3
/* 66172*/        OPC_EmitInteger, MVT::i32, 8, 
/* 66175*/        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] })
/* 66184*/      /*Scope*/ 32, /*->66217*/
/* 66185*/        OPC_CheckChild2CondCode, ISD::SETO,
/* 66187*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 66189*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFTSTNANbs), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1,  // Results = #2
/* 66197*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFTSTNANbs), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1,  // Results = #3
/* 66205*/        OPC_EmitInteger, MVT::i32, 10, 
/* 66208*/        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] })
/* 66217*/      /*Scope*/ 32, /*->66250*/
/* 66218*/        OPC_CheckChild2CondCode, ISD::SETUEQ,
/* 66220*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 66222*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFCMPEQbs), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1,  // Results = #2
/* 66230*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFTSTNANbs), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1,  // Results = #3
/* 66238*/        OPC_EmitInteger, MVT::i32, 7, 
/* 66241*/        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] })
/* 66250*/      /*Scope*/ 32, /*->66283*/
/* 66251*/        OPC_CheckChild2CondCode, ISD::SETUGT,
/* 66253*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 66255*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFCMPGTbs), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1,  // Results = #2
/* 66263*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFTSTNANbs), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1,  // Results = #3
/* 66271*/        OPC_EmitInteger, MVT::i32, 7, 
/* 66274*/        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] })
/* 66283*/      /*Scope*/ 32, /*->66316*/
/* 66284*/        OPC_CheckChild2CondCode, ISD::SETUGE,
/* 66286*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 66288*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFTSTNANbs), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1,  // Results = #2
/* 66296*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFCMPLTbs), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1,  // Results = #3
/* 66304*/        OPC_EmitInteger, MVT::i32, 13, 
/* 66307*/        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] })
/* 66316*/      /*Scope*/ 32, /*->66349*/
/* 66317*/        OPC_CheckChild2CondCode, ISD::SETULT,
/* 66319*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 66321*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFCMPLTbs), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1,  // Results = #2
/* 66329*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFTSTNANbs), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1,  // Results = #3
/* 66337*/        OPC_EmitInteger, MVT::i32, 7, 
/* 66340*/        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] })
/* 66349*/      /*Scope*/ 32, /*->66382*/
/* 66350*/        OPC_CheckChild2CondCode, ISD::SETULE,
/* 66352*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 66354*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFTSTNANbs), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1,  // Results = #2
/* 66362*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFCMPGTbs), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1,  // Results = #3
/* 66370*/        OPC_EmitInteger, MVT::i32, 13, 
/* 66373*/        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] })
/* 66382*/      /*Scope*/ 32, /*->66415*/
/* 66383*/        OPC_CheckChild2CondCode, ISD::SETUNE,
/* 66385*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 66387*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFTSTNANbs), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1,  // Results = #2
/* 66395*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFCMPEQbs), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1,  // Results = #3
/* 66403*/        OPC_EmitInteger, MVT::i32, 13, 
/* 66406*/        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] })
/* 66415*/      /*Scope*/ 32, /*->66448*/
/* 66416*/        OPC_CheckChild2CondCode, ISD::SETGE,
/* 66418*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 66420*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFCMPLTbs), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1,  // Results = #2
/* 66428*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFCMPLTbs), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1,  // Results = #3
/* 66436*/        OPC_EmitInteger, MVT::i32, 10, 
/* 66439*/        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] })
/* 66448*/      /*Scope*/ 32, /*->66481*/
/* 66449*/        OPC_CheckChild2CondCode, ISD::SETLE,
/* 66451*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 66453*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFCMPGTbs), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1,  // Results = #2
/* 66461*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFCMPGTbs), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1,  // Results = #3
/* 66469*/        OPC_EmitInteger, MVT::i32, 10, 
/* 66472*/        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] })
/* 66481*/      /*Scope*/ 32, /*->66514*/
/* 66482*/        OPC_CheckChild2CondCode, ISD::SETNE,
/* 66484*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 66486*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFCMPEQbs), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1,  // Results = #2
/* 66494*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFCMPEQbs), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1,  // Results = #3
/* 66502*/        OPC_EmitInteger, MVT::i32, 10, 
/* 66505*/        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] })
/* 66514*/      0, /*End of Scope*/
/* 66515*/    0, /*End of Scope*/
/* 66516*/  /*SwitchOpcode*/ 110, TARGET_VAL(PPCISD::CALL),// ->66629
/* 66519*/    OPC_RecordNode, // #0 = 'PPCcall' chained node
/* 66520*/    OPC_CaptureGlueInput,
/* 66521*/    OPC_RecordChild1, // #1 = $func
/* 66522*/    OPC_MoveChild1,
/* 66523*/    OPC_SwitchOpcode /*4 cases */, 26, TARGET_VAL(ISD::Constant),// ->66553
/* 66527*/      OPC_SwitchType /*2 cases */, 10, MVT::i32,// ->66540
/* 66530*/        OPC_MoveParent,
/* 66531*/        OPC_EmitMergeInputChains1_0,
/* 66532*/        OPC_EmitConvertToTarget, 1,
/* 66534*/        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)
/* 66540*/      /*SwitchType*/ 10, MVT::i64,// ->66552
/* 66542*/        OPC_MoveParent,
/* 66543*/        OPC_EmitMergeInputChains1_0,
/* 66544*/        OPC_EmitConvertToTarget, 1,
/* 66546*/        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)
/* 66552*/      0, // EndSwitchType
/* 66553*/    /*SwitchOpcode*/ 22, TARGET_VAL(ISD::TargetGlobalAddress),// ->66578
/* 66556*/      OPC_SwitchType /*2 cases */, 8, MVT::i32,// ->66567
/* 66559*/        OPC_MoveParent,
/* 66560*/        OPC_EmitMergeInputChains1_0,
/* 66561*/        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)
/* 66567*/      /*SwitchType*/ 8, MVT::i64,// ->66577
/* 66569*/        OPC_MoveParent,
/* 66570*/        OPC_EmitMergeInputChains1_0,
/* 66571*/        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)
/* 66577*/      0, // EndSwitchType
/* 66578*/    /*SwitchOpcode*/ 22, TARGET_VAL(ISD::TargetExternalSymbol),// ->66603
/* 66581*/      OPC_SwitchType /*2 cases */, 8, MVT::i32,// ->66592
/* 66584*/        OPC_MoveParent,
/* 66585*/        OPC_EmitMergeInputChains1_0,
/* 66586*/        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)
/* 66592*/      /*SwitchType*/ 8, MVT::i64,// ->66602
/* 66594*/        OPC_MoveParent,
/* 66595*/        OPC_EmitMergeInputChains1_0,
/* 66596*/        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)
/* 66602*/      0, // EndSwitchType
/* 66603*/    /*SwitchOpcode*/ 22, TARGET_VAL(ISD::MCSymbol),// ->66628
/* 66606*/      OPC_SwitchType /*2 cases */, 8, MVT::i32,// ->66617
/* 66609*/        OPC_MoveParent,
/* 66610*/        OPC_EmitMergeInputChains1_0,
/* 66611*/        OPC_MorphNodeTo0, TARGET_VAL(PPC::BL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
                      1/*#Ops*/, 1, 
                  // Src: (PPCcall (mcsym:{ *:[i32] }):$dst) - Complexity = 6
                  // Dst: (BL (mcsym:{ *:[i32] }):$dst)
/* 66617*/      /*SwitchType*/ 8, MVT::i64,// ->66627
/* 66619*/        OPC_MoveParent,
/* 66620*/        OPC_EmitMergeInputChains1_0,
/* 66621*/        OPC_MorphNodeTo0, TARGET_VAL(PPC::BL8), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
                      1/*#Ops*/, 1, 
                  // Src: (PPCcall (mcsym:{ *:[i64] }):$dst) - Complexity = 6
                  // Dst: (BL8 (mcsym:{ *:[i64] }):$dst)
/* 66627*/      0, // EndSwitchType
/* 66628*/    0, // EndSwitchOpcode
/* 66629*/  /*SwitchOpcode*/ 18, TARGET_VAL(PPCISD::SC),// ->66650
/* 66632*/    OPC_RecordNode, // #0 = 'PPCsc' chained node
/* 66633*/    OPC_RecordChild1, // #1 = $lev
/* 66634*/    OPC_MoveChild1,
/* 66635*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 66638*/    OPC_CheckType, MVT::i32,
/* 66640*/    OPC_MoveParent,
/* 66641*/    OPC_EmitMergeInputChains1_0,
/* 66642*/    OPC_EmitConvertToTarget, 1,
/* 66644*/    OPC_MorphNodeTo0, TARGET_VAL(PPC::SC), 0|OPFL_Chain,
                  1/*#Ops*/, 2, 
              // Src: (PPCsc (imm:{ *:[i32] }):$lev) - Complexity = 6
              // Dst: (SC (imm:{ *:[i32] }):$lev)
/* 66650*/  /*SwitchOpcode*/ 18, TARGET_VAL(PPCISD::RFEBB),// ->66671
/* 66653*/    OPC_RecordNode, // #0 = 'PPCrfebb' chained node
/* 66654*/    OPC_RecordChild1, // #1 = $imm
/* 66655*/    OPC_MoveChild1,
/* 66656*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 66659*/    OPC_CheckType, MVT::i32,
/* 66661*/    OPC_MoveParent,
/* 66662*/    OPC_EmitMergeInputChains1_0,
/* 66663*/    OPC_EmitConvertToTarget, 1,
/* 66665*/    OPC_MorphNodeTo0, TARGET_VAL(PPC::RFEBB), 0|OPFL_Chain,
                  1/*#Ops*/, 2, 
              // Src: (PPCrfebb (imm:{ *:[i32] }):$imm) - Complexity = 6
              // Dst: (RFEBB (imm:{ *:[i32] }):$imm)
/* 66671*/  /*SwitchOpcode*/ 79|128,2/*335*/, TARGET_VAL(ISD::SRA),// ->67010
/* 66675*/    OPC_Scope, 67, /*->66744*/ // 3 children in Scope
/* 66677*/      OPC_RecordChild0, // #0 = $rS
/* 66678*/      OPC_RecordChild1, // #1 = $SH
/* 66679*/      OPC_Scope, 35, /*->66716*/ // 2 children in Scope
/* 66681*/        OPC_MoveChild1,
/* 66682*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 66685*/        OPC_CheckType, MVT::i32,
/* 66687*/        OPC_MoveParent,
/* 66688*/        OPC_SwitchType /*2 cases */, 11, MVT::i32,// ->66702
/* 66691*/          OPC_EmitConvertToTarget, 1,
/* 66693*/          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)
/* 66702*/        /*SwitchType*/ 11, MVT::i64,// ->66715
/* 66704*/          OPC_EmitConvertToTarget, 1,
/* 66706*/          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)
/* 66715*/        0, // EndSwitchType
/* 66716*/      /*Scope*/ 26, /*->66743*/
/* 66717*/        OPC_CheckChild1Type, MVT::i32,
/* 66719*/        OPC_SwitchType /*2 cases */, 9, MVT::i32,// ->66731
/* 66722*/          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)
/* 66731*/        /*SwitchType*/ 9, MVT::i64,// ->66742
/* 66733*/          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)
/* 66742*/        0, // EndSwitchType
/* 66743*/      0, /*End of Scope*/
/* 66744*/    /*Scope*/ 74|128,1/*202*/, /*->66948*/
/* 66746*/      OPC_MoveChild0,
/* 66747*/      OPC_CheckOpcode, TARGET_VAL(ISD::SUB),
/* 66750*/      OPC_RecordChild0, // #0 = $vA
/* 66751*/      OPC_MoveChild1,
/* 66752*/      OPC_SwitchOpcode /*2 cases */, 116, TARGET_VAL(ISD::BITCAST),// ->66872
/* 66756*/        OPC_MoveChild0,
/* 66757*/        OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 66760*/        OPC_Scope, 54, /*->66816*/ // 2 children in Scope
/* 66762*/          OPC_RecordChild0, // #1 = $vB
/* 66763*/          OPC_MoveChild1,
/* 66764*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 66767*/          OPC_MoveChild0,
/* 66768*/          OPC_CheckImmAllOnesV,
/* 66769*/          OPC_CheckType, MVT::v16i8,
/* 66771*/          OPC_MoveParent,
/* 66772*/          OPC_MoveParent,
/* 66773*/          OPC_CheckType, MVT::v4i32,
/* 66775*/          OPC_MoveParent,
/* 66776*/          OPC_MoveParent,
/* 66777*/          OPC_MoveParent,
/* 66778*/          OPC_MoveChild1,
/* 66779*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 66782*/          OPC_CheckPredicate, 32, // Predicate_immEQOneV
/* 66784*/          OPC_SwitchType /*2 cases */, 13, MVT::v8i16,// ->66800
/* 66787*/            OPC_MoveParent,
/* 66788*/            OPC_CheckType, MVT::v8i16,
/* 66790*/            OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 66792*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::VAVGSH), 0,
                          MVT::v8i16, 2/*#Ops*/, 0, 1, 
                      // Src: (sra:{ *:[v8i16] } (sub:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vA, (bitconvert:{ *:[v8i16] } (xor:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vB, (bitconvert:{ *:[v4i32] } immAllOnesV:{ *:[v16i8] })))), (build_vector:{ *:[v8i16] })<<P:Predicate_immEQOneV>>) - Complexity = 23
                      // Dst: (VAVGSH:{ *:[v8i16] } ?:{ *:[v8i16] }:$vA, ?:{ *:[v4i32] }:$vB)
/* 66800*/          /*SwitchType*/ 13, MVT::v16i8,// ->66815
/* 66802*/            OPC_MoveParent,
/* 66803*/            OPC_CheckType, MVT::v16i8,
/* 66805*/            OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 66807*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::VAVGSB), 0,
                          MVT::v16i8, 2/*#Ops*/, 0, 1, 
                      // Src: (sra:{ *:[v16i8] } (sub:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vA, (bitconvert:{ *:[v16i8] } (xor:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vB, (bitconvert:{ *:[v4i32] } immAllOnesV:{ *:[v16i8] })))), (build_vector:{ *:[v16i8] })<<P:Predicate_immEQOneV>>) - Complexity = 23
                      // Dst: (VAVGSB:{ *:[v16i8] } ?:{ *:[v16i8] }:$vA, ?:{ *:[v4i32] }:$vB)
/* 66815*/          0, // EndSwitchType
/* 66816*/        /*Scope*/ 54, /*->66871*/
/* 66817*/          OPC_MoveChild0,
/* 66818*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 66821*/          OPC_MoveChild0,
/* 66822*/          OPC_CheckImmAllOnesV,
/* 66823*/          OPC_CheckType, MVT::v16i8,
/* 66825*/          OPC_MoveParent,
/* 66826*/          OPC_MoveParent,
/* 66827*/          OPC_RecordChild1, // #1 = $vB
/* 66828*/          OPC_CheckType, MVT::v4i32,
/* 66830*/          OPC_MoveParent,
/* 66831*/          OPC_MoveParent,
/* 66832*/          OPC_MoveParent,
/* 66833*/          OPC_MoveChild1,
/* 66834*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 66837*/          OPC_CheckPredicate, 32, // Predicate_immEQOneV
/* 66839*/          OPC_SwitchType /*2 cases */, 13, MVT::v8i16,// ->66855
/* 66842*/            OPC_MoveParent,
/* 66843*/            OPC_CheckType, MVT::v8i16,
/* 66845*/            OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 66847*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::VAVGSH), 0,
                          MVT::v8i16, 2/*#Ops*/, 0, 1, 
                      // Src: (sra:{ *:[v8i16] } (sub:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vA, (bitconvert:{ *:[v8i16] } (xor:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } immAllOnesV:{ *:[v16i8] }), v4i32:{ *:[v4i32] }:$vB))), (build_vector:{ *:[v8i16] })<<P:Predicate_immEQOneV>>) - Complexity = 23
                      // Dst: (VAVGSH:{ *:[v8i16] } ?:{ *:[v8i16] }:$vA, ?:{ *:[v4i32] }:$vB)
/* 66855*/          /*SwitchType*/ 13, MVT::v16i8,// ->66870
/* 66857*/            OPC_MoveParent,
/* 66858*/            OPC_CheckType, MVT::v16i8,
/* 66860*/            OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 66862*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::VAVGSB), 0,
                          MVT::v16i8, 2/*#Ops*/, 0, 1, 
                      // Src: (sra:{ *:[v16i8] } (sub:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vA, (bitconvert:{ *:[v16i8] } (xor:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } immAllOnesV:{ *:[v16i8] }), v4i32:{ *:[v4i32] }:$vB))), (build_vector:{ *:[v16i8] })<<P:Predicate_immEQOneV>>) - Complexity = 23
                      // Dst: (VAVGSB:{ *:[v16i8] } ?:{ *:[v16i8] }:$vA, ?:{ *:[v4i32] }:$vB)
/* 66870*/          0, // EndSwitchType
/* 66871*/        0, /*End of Scope*/
/* 66872*/      /*SwitchOpcode*/ 72, TARGET_VAL(ISD::XOR),// ->66947
/* 66875*/        OPC_Scope, 34, /*->66911*/ // 2 children in Scope
/* 66877*/          OPC_RecordChild0, // #1 = $vB
/* 66878*/          OPC_MoveChild1,
/* 66879*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 66882*/          OPC_MoveChild0,
/* 66883*/          OPC_CheckImmAllOnesV,
/* 66884*/          OPC_CheckType, MVT::v16i8,
/* 66886*/          OPC_MoveParent,
/* 66887*/          OPC_MoveParent,
/* 66888*/          OPC_MoveParent,
/* 66889*/          OPC_MoveParent,
/* 66890*/          OPC_MoveChild1,
/* 66891*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 66894*/          OPC_CheckPredicate, 32, // Predicate_immEQOneV
/* 66896*/          OPC_CheckType, MVT::v4i32,
/* 66898*/          OPC_MoveParent,
/* 66899*/          OPC_CheckType, MVT::v4i32,
/* 66901*/          OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 66903*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::VAVGSW), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1, 
                    // Src: (sra:{ *:[v4i32] } (sub:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, (xor:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vB, (bitconvert:{ *:[v4i32] } immAllOnesV:{ *:[v16i8] }))), (build_vector:{ *:[v4i32] })<<P:Predicate_immEQOneV>>) - Complexity = 20
                    // Dst: (VAVGSW:{ *:[v4i32] } ?:{ *:[v4i32] }:$vA, ?:{ *:[v4i32] }:$vB)
/* 66911*/        /*Scope*/ 34, /*->66946*/
/* 66912*/          OPC_MoveChild0,
/* 66913*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 66916*/          OPC_MoveChild0,
/* 66917*/          OPC_CheckImmAllOnesV,
/* 66918*/          OPC_CheckType, MVT::v16i8,
/* 66920*/          OPC_MoveParent,
/* 66921*/          OPC_MoveParent,
/* 66922*/          OPC_RecordChild1, // #1 = $vB
/* 66923*/          OPC_MoveParent,
/* 66924*/          OPC_MoveParent,
/* 66925*/          OPC_MoveChild1,
/* 66926*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 66929*/          OPC_CheckPredicate, 32, // Predicate_immEQOneV
/* 66931*/          OPC_CheckType, MVT::v4i32,
/* 66933*/          OPC_MoveParent,
/* 66934*/          OPC_CheckType, MVT::v4i32,
/* 66936*/          OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 66938*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::VAVGSW), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1, 
                    // Src: (sra:{ *:[v4i32] } (sub:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, (xor:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } immAllOnesV:{ *:[v16i8] }), v4i32:{ *:[v4i32] }:$vB)), (build_vector:{ *:[v4i32] })<<P:Predicate_immEQOneV>>) - Complexity = 20
                    // Dst: (VAVGSW:{ *:[v4i32] } ?:{ *:[v4i32] }:$vA, ?:{ *:[v4i32] }:$vB)
/* 66946*/        0, /*End of Scope*/
/* 66947*/      0, // EndSwitchOpcode
/* 66948*/    /*Scope*/ 60, /*->67009*/
/* 66949*/      OPC_RecordChild0, // #0 = $vA
/* 66950*/      OPC_RecordChild1, // #1 = $vB
/* 66951*/      OPC_SwitchType /*4 cases */, 12, MVT::v16i8,// ->66966
/* 66954*/        OPC_CheckChild1Type, MVT::v16i8,
/* 66956*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 66958*/        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)
/* 66966*/      /*SwitchType*/ 12, MVT::v8i16,// ->66980
/* 66968*/        OPC_CheckChild1Type, MVT::v8i16,
/* 66970*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 66972*/        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)
/* 66980*/      /*SwitchType*/ 12, MVT::v4i32,// ->66994
/* 66982*/        OPC_CheckChild1Type, MVT::v4i32,
/* 66984*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 66986*/        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)
/* 66994*/      /*SwitchType*/ 12, MVT::v2i64,// ->67008
/* 66996*/        OPC_CheckChild1Type, MVT::v2i64,
/* 66998*/        OPC_CheckPatternPredicate, 35, // (PPCSubTarget->hasP8Altivec())
/* 67000*/        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)
/* 67008*/      0, // EndSwitchType
/* 67009*/    0, /*End of Scope*/
/* 67010*/  /*SwitchOpcode*/ 45|128,1/*173*/, TARGET_VAL(ISD::SHL),// ->67187
/* 67014*/    OPC_RecordChild0, // #0 = $in
/* 67015*/    OPC_RecordChild1, // #1 = $imm
/* 67016*/    OPC_Scope, 49, /*->67067*/ // 7 children in Scope
/* 67018*/      OPC_MoveChild1,
/* 67019*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 67022*/      OPC_CheckType, MVT::i32,
/* 67024*/      OPC_MoveParent,
/* 67025*/      OPC_SwitchType /*2 cases */, 20, MVT::i32,// ->67048
/* 67028*/        OPC_EmitConvertToTarget, 1,
/* 67030*/        OPC_EmitInteger, MVT::i32, 0, 
/* 67033*/        OPC_EmitConvertToTarget, 1,
/* 67035*/        OPC_EmitNodeXForm, 6, 4, // SHL32
/* 67038*/        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))
/* 67048*/      /*SwitchType*/ 16, MVT::i64,// ->67066
/* 67050*/        OPC_EmitConvertToTarget, 1,
/* 67052*/        OPC_EmitConvertToTarget, 1,
/* 67054*/        OPC_EmitNodeXForm, 7, 3, // SHL64
/* 67057*/        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))
/* 67066*/      0, // EndSwitchType
/* 67067*/    /*Scope*/ 24, /*->67092*/
/* 67068*/      OPC_CheckChild1Type, MVT::i32,
/* 67070*/      OPC_SwitchType /*2 cases */, 8, MVT::i32,// ->67081
/* 67073*/        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)
/* 67081*/      /*SwitchType*/ 8, MVT::i64,// ->67091
/* 67083*/        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)
/* 67091*/      0, // EndSwitchType
/* 67092*/    /*Scope*/ 14, /*->67107*/
/* 67093*/      OPC_CheckChild1Type, MVT::v16i8,
/* 67095*/      OPC_CheckType, MVT::v16i8,
/* 67097*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 67099*/      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)
/* 67107*/    /*Scope*/ 14, /*->67122*/
/* 67108*/      OPC_CheckChild1Type, MVT::v8i16,
/* 67110*/      OPC_CheckType, MVT::v8i16,
/* 67112*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 67114*/      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)
/* 67122*/    /*Scope*/ 14, /*->67137*/
/* 67123*/      OPC_CheckChild1Type, MVT::v4i32,
/* 67125*/      OPC_CheckType, MVT::v4i32,
/* 67127*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 67129*/      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)
/* 67137*/    /*Scope*/ 14, /*->67152*/
/* 67138*/      OPC_CheckChild1Type, MVT::v2i64,
/* 67140*/      OPC_CheckType, MVT::v2i64,
/* 67142*/      OPC_CheckPatternPredicate, 35, // (PPCSubTarget->hasP8Altivec())
/* 67144*/      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)
/* 67152*/    /*Scope*/ 33, /*->67186*/
/* 67153*/      OPC_CheckChild1Type, MVT::v1i128,
/* 67155*/      OPC_CheckType, MVT::v1i128,
/* 67157*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 67159*/      OPC_EmitNode1, TARGET_VAL(PPC::VSLO), 0,
                    MVT::v16i8, 2/*#Ops*/, 0, 1,  // Results = #2
/* 67167*/      OPC_EmitInteger, MVT::i32, 15, 
/* 67170*/      OPC_EmitNode1, TARGET_VAL(PPC::VSPLTB), 0,
                    MVT::v16i8, 2/*#Ops*/, 3, 1,  // Results = #4
/* 67178*/      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))
/* 67186*/    0, /*End of Scope*/
/* 67187*/  /*SwitchOpcode*/ 124|128,2/*380*/, TARGET_VAL(ISD::SRL),// ->67571
/* 67191*/    OPC_Scope, 79, /*->67272*/ // 3 children in Scope
/* 67193*/      OPC_RecordChild0, // #0 = $in
/* 67194*/      OPC_RecordChild1, // #1 = $imm
/* 67195*/      OPC_Scope, 49, /*->67246*/ // 2 children in Scope
/* 67197*/        OPC_MoveChild1,
/* 67198*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 67201*/        OPC_CheckType, MVT::i32,
/* 67203*/        OPC_MoveParent,
/* 67204*/        OPC_SwitchType /*2 cases */, 20, MVT::i32,// ->67227
/* 67207*/          OPC_EmitConvertToTarget, 1,
/* 67209*/          OPC_EmitNodeXForm, 8, 2, // SRL32
/* 67212*/          OPC_EmitConvertToTarget, 1,
/* 67214*/          OPC_EmitInteger, MVT::i32, 31, 
/* 67217*/          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] })
/* 67227*/        /*SwitchType*/ 16, MVT::i64,// ->67245
/* 67229*/          OPC_EmitConvertToTarget, 1,
/* 67231*/          OPC_EmitNodeXForm, 9, 2, // SRL64
/* 67234*/          OPC_EmitConvertToTarget, 1,
/* 67236*/          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)
/* 67245*/        0, // EndSwitchType
/* 67246*/      /*Scope*/ 24, /*->67271*/
/* 67247*/        OPC_CheckChild1Type, MVT::i32,
/* 67249*/        OPC_SwitchType /*2 cases */, 8, MVT::i32,// ->67260
/* 67252*/          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)
/* 67260*/        /*SwitchType*/ 8, MVT::i64,// ->67270
/* 67262*/          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)
/* 67270*/        0, // EndSwitchType
/* 67271*/      0, /*End of Scope*/
/* 67272*/    /*Scope*/ 74|128,1/*202*/, /*->67476*/
/* 67274*/      OPC_MoveChild0,
/* 67275*/      OPC_CheckOpcode, TARGET_VAL(ISD::SUB),
/* 67278*/      OPC_RecordChild0, // #0 = $vA
/* 67279*/      OPC_MoveChild1,
/* 67280*/      OPC_SwitchOpcode /*2 cases */, 116, TARGET_VAL(ISD::BITCAST),// ->67400
/* 67284*/        OPC_MoveChild0,
/* 67285*/        OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 67288*/        OPC_Scope, 54, /*->67344*/ // 2 children in Scope
/* 67290*/          OPC_RecordChild0, // #1 = $vB
/* 67291*/          OPC_MoveChild1,
/* 67292*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 67295*/          OPC_MoveChild0,
/* 67296*/          OPC_CheckImmAllOnesV,
/* 67297*/          OPC_CheckType, MVT::v16i8,
/* 67299*/          OPC_MoveParent,
/* 67300*/          OPC_MoveParent,
/* 67301*/          OPC_CheckType, MVT::v4i32,
/* 67303*/          OPC_MoveParent,
/* 67304*/          OPC_MoveParent,
/* 67305*/          OPC_MoveParent,
/* 67306*/          OPC_MoveChild1,
/* 67307*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 67310*/          OPC_CheckPredicate, 32, // Predicate_immEQOneV
/* 67312*/          OPC_SwitchType /*2 cases */, 13, MVT::v8i16,// ->67328
/* 67315*/            OPC_MoveParent,
/* 67316*/            OPC_CheckType, MVT::v8i16,
/* 67318*/            OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 67320*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::VAVGUH), 0,
                          MVT::v8i16, 2/*#Ops*/, 0, 1, 
                      // Src: (srl:{ *:[v8i16] } (sub:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vA, (bitconvert:{ *:[v8i16] } (xor:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vB, (bitconvert:{ *:[v4i32] } immAllOnesV:{ *:[v16i8] })))), (build_vector:{ *:[v8i16] })<<P:Predicate_immEQOneV>>) - Complexity = 23
                      // Dst: (VAVGUH:{ *:[v8i16] } ?:{ *:[v8i16] }:$vA, ?:{ *:[v4i32] }:$vB)
/* 67328*/          /*SwitchType*/ 13, MVT::v16i8,// ->67343
/* 67330*/            OPC_MoveParent,
/* 67331*/            OPC_CheckType, MVT::v16i8,
/* 67333*/            OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 67335*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::VAVGUB), 0,
                          MVT::v16i8, 2/*#Ops*/, 0, 1, 
                      // Src: (srl:{ *:[v16i8] } (sub:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vA, (bitconvert:{ *:[v16i8] } (xor:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vB, (bitconvert:{ *:[v4i32] } immAllOnesV:{ *:[v16i8] })))), (build_vector:{ *:[v16i8] })<<P:Predicate_immEQOneV>>) - Complexity = 23
                      // Dst: (VAVGUB:{ *:[v16i8] } ?:{ *:[v16i8] }:$vA, ?:{ *:[v4i32] }:$vB)
/* 67343*/          0, // EndSwitchType
/* 67344*/        /*Scope*/ 54, /*->67399*/
/* 67345*/          OPC_MoveChild0,
/* 67346*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 67349*/          OPC_MoveChild0,
/* 67350*/          OPC_CheckImmAllOnesV,
/* 67351*/          OPC_CheckType, MVT::v16i8,
/* 67353*/          OPC_MoveParent,
/* 67354*/          OPC_MoveParent,
/* 67355*/          OPC_RecordChild1, // #1 = $vB
/* 67356*/          OPC_CheckType, MVT::v4i32,
/* 67358*/          OPC_MoveParent,
/* 67359*/          OPC_MoveParent,
/* 67360*/          OPC_MoveParent,
/* 67361*/          OPC_MoveChild1,
/* 67362*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 67365*/          OPC_CheckPredicate, 32, // Predicate_immEQOneV
/* 67367*/          OPC_SwitchType /*2 cases */, 13, MVT::v8i16,// ->67383
/* 67370*/            OPC_MoveParent,
/* 67371*/            OPC_CheckType, MVT::v8i16,
/* 67373*/            OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 67375*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::VAVGUH), 0,
                          MVT::v8i16, 2/*#Ops*/, 0, 1, 
                      // Src: (srl:{ *:[v8i16] } (sub:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vA, (bitconvert:{ *:[v8i16] } (xor:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } immAllOnesV:{ *:[v16i8] }), v4i32:{ *:[v4i32] }:$vB))), (build_vector:{ *:[v8i16] })<<P:Predicate_immEQOneV>>) - Complexity = 23
                      // Dst: (VAVGUH:{ *:[v8i16] } ?:{ *:[v8i16] }:$vA, ?:{ *:[v4i32] }:$vB)
/* 67383*/          /*SwitchType*/ 13, MVT::v16i8,// ->67398
/* 67385*/            OPC_MoveParent,
/* 67386*/            OPC_CheckType, MVT::v16i8,
/* 67388*/            OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 67390*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::VAVGUB), 0,
                          MVT::v16i8, 2/*#Ops*/, 0, 1, 
                      // Src: (srl:{ *:[v16i8] } (sub:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vA, (bitconvert:{ *:[v16i8] } (xor:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } immAllOnesV:{ *:[v16i8] }), v4i32:{ *:[v4i32] }:$vB))), (build_vector:{ *:[v16i8] })<<P:Predicate_immEQOneV>>) - Complexity = 23
                      // Dst: (VAVGUB:{ *:[v16i8] } ?:{ *:[v16i8] }:$vA, ?:{ *:[v4i32] }:$vB)
/* 67398*/          0, // EndSwitchType
/* 67399*/        0, /*End of Scope*/
/* 67400*/      /*SwitchOpcode*/ 72, TARGET_VAL(ISD::XOR),// ->67475
/* 67403*/        OPC_Scope, 34, /*->67439*/ // 2 children in Scope
/* 67405*/          OPC_RecordChild0, // #1 = $vB
/* 67406*/          OPC_MoveChild1,
/* 67407*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 67410*/          OPC_MoveChild0,
/* 67411*/          OPC_CheckImmAllOnesV,
/* 67412*/          OPC_CheckType, MVT::v16i8,
/* 67414*/          OPC_MoveParent,
/* 67415*/          OPC_MoveParent,
/* 67416*/          OPC_MoveParent,
/* 67417*/          OPC_MoveParent,
/* 67418*/          OPC_MoveChild1,
/* 67419*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 67422*/          OPC_CheckPredicate, 32, // Predicate_immEQOneV
/* 67424*/          OPC_CheckType, MVT::v4i32,
/* 67426*/          OPC_MoveParent,
/* 67427*/          OPC_CheckType, MVT::v4i32,
/* 67429*/          OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 67431*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::VAVGUW), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1, 
                    // Src: (srl:{ *:[v4i32] } (sub:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, (xor:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vB, (bitconvert:{ *:[v4i32] } immAllOnesV:{ *:[v16i8] }))), (build_vector:{ *:[v4i32] })<<P:Predicate_immEQOneV>>) - Complexity = 20
                    // Dst: (VAVGUW:{ *:[v4i32] } ?:{ *:[v4i32] }:$vA, ?:{ *:[v4i32] }:$vB)
/* 67439*/        /*Scope*/ 34, /*->67474*/
/* 67440*/          OPC_MoveChild0,
/* 67441*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 67444*/          OPC_MoveChild0,
/* 67445*/          OPC_CheckImmAllOnesV,
/* 67446*/          OPC_CheckType, MVT::v16i8,
/* 67448*/          OPC_MoveParent,
/* 67449*/          OPC_MoveParent,
/* 67450*/          OPC_RecordChild1, // #1 = $vB
/* 67451*/          OPC_MoveParent,
/* 67452*/          OPC_MoveParent,
/* 67453*/          OPC_MoveChild1,
/* 67454*/          OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/* 67457*/          OPC_CheckPredicate, 32, // Predicate_immEQOneV
/* 67459*/          OPC_CheckType, MVT::v4i32,
/* 67461*/          OPC_MoveParent,
/* 67462*/          OPC_CheckType, MVT::v4i32,
/* 67464*/          OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 67466*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::VAVGUW), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1, 
                    // Src: (srl:{ *:[v4i32] } (sub:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, (xor:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } immAllOnesV:{ *:[v16i8] }), v4i32:{ *:[v4i32] }:$vB)), (build_vector:{ *:[v4i32] })<<P:Predicate_immEQOneV>>) - Complexity = 20
                    // Dst: (VAVGUW:{ *:[v4i32] } ?:{ *:[v4i32] }:$vA, ?:{ *:[v4i32] }:$vB)
/* 67474*/        0, /*End of Scope*/
/* 67475*/      0, // EndSwitchOpcode
/* 67476*/    /*Scope*/ 93, /*->67570*/
/* 67477*/      OPC_RecordChild0, // #0 = $vA
/* 67478*/      OPC_RecordChild1, // #1 = $vB
/* 67479*/      OPC_SwitchType /*5 cases */, 12, MVT::v16i8,// ->67494
/* 67482*/        OPC_CheckChild1Type, MVT::v16i8,
/* 67484*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 67486*/        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)
/* 67494*/      /*SwitchType*/ 12, MVT::v8i16,// ->67508
/* 67496*/        OPC_CheckChild1Type, MVT::v8i16,
/* 67498*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 67500*/        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)
/* 67508*/      /*SwitchType*/ 12, MVT::v4i32,// ->67522
/* 67510*/        OPC_CheckChild1Type, MVT::v4i32,
/* 67512*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 67514*/        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)
/* 67522*/      /*SwitchType*/ 12, MVT::v2i64,// ->67536
/* 67524*/        OPC_CheckChild1Type, MVT::v2i64,
/* 67526*/        OPC_CheckPatternPredicate, 35, // (PPCSubTarget->hasP8Altivec())
/* 67528*/        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)
/* 67536*/      /*SwitchType*/ 31, MVT::v1i128,// ->67569
/* 67538*/        OPC_CheckChild1Type, MVT::v1i128,
/* 67540*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 67542*/        OPC_EmitNode1, TARGET_VAL(PPC::VSRO), 0,
                      MVT::v16i8, 2/*#Ops*/, 0, 1,  // Results = #2
/* 67550*/        OPC_EmitInteger, MVT::i32, 15, 
/* 67553*/        OPC_EmitNode1, TARGET_VAL(PPC::VSPLTB), 0,
                      MVT::v16i8, 2/*#Ops*/, 3, 1,  // Results = #4
/* 67561*/        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))
/* 67569*/      0, // EndSwitchType
/* 67570*/    0, /*End of Scope*/
/* 67571*/  /*SwitchOpcode*/ 19|128,1/*147*/, TARGET_VAL(ISD::ROTL),// ->67722
/* 67575*/    OPC_RecordChild0, // #0 = $in
/* 67576*/    OPC_RecordChild1, // #1 = $imm
/* 67577*/    OPC_Scope, 45, /*->67624*/ // 6 children in Scope
/* 67579*/      OPC_MoveChild1,
/* 67580*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 67583*/      OPC_CheckType, MVT::i32,
/* 67585*/      OPC_MoveParent,
/* 67586*/      OPC_SwitchType /*2 cases */, 18, MVT::i32,// ->67607
/* 67589*/        OPC_EmitConvertToTarget, 1,
/* 67591*/        OPC_EmitInteger, MVT::i32, 0, 
/* 67594*/        OPC_EmitInteger, MVT::i32, 31, 
/* 67597*/        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] })
/* 67607*/      /*SwitchType*/ 14, MVT::i64,// ->67623
/* 67609*/        OPC_EmitConvertToTarget, 1,
/* 67611*/        OPC_EmitInteger, MVT::i32, 0, 
/* 67614*/        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] })
/* 67623*/      0, // EndSwitchType
/* 67624*/    /*Scope*/ 36, /*->67661*/
/* 67625*/      OPC_CheckChild1Type, MVT::i32,
/* 67627*/      OPC_SwitchType /*2 cases */, 16, MVT::i32,// ->67646
/* 67630*/        OPC_EmitInteger, MVT::i32, 0, 
/* 67633*/        OPC_EmitInteger, MVT::i32, 31, 
/* 67636*/        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] })
/* 67646*/      /*SwitchType*/ 12, MVT::i64,// ->67660
/* 67648*/        OPC_EmitInteger, MVT::i32, 0, 
/* 67651*/        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] })
/* 67660*/      0, // EndSwitchType
/* 67661*/    /*Scope*/ 14, /*->67676*/
/* 67662*/      OPC_CheckChild1Type, MVT::v16i8,
/* 67664*/      OPC_CheckType, MVT::v16i8,
/* 67666*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 67668*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VRLB), 0,
                    MVT::v16i8, 2/*#Ops*/, 0, 1, 
                // Src: (rotl:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB) - Complexity = 3
                // Dst: (VRLB:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB)
/* 67676*/    /*Scope*/ 14, /*->67691*/
/* 67677*/      OPC_CheckChild1Type, MVT::v8i16,
/* 67679*/      OPC_CheckType, MVT::v8i16,
/* 67681*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 67683*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VRLH), 0,
                    MVT::v8i16, 2/*#Ops*/, 0, 1, 
                // Src: (rotl:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB) - Complexity = 3
                // Dst: (VRLH:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB)
/* 67691*/    /*Scope*/ 14, /*->67706*/
/* 67692*/      OPC_CheckChild1Type, MVT::v4i32,
/* 67694*/      OPC_CheckType, MVT::v4i32,
/* 67696*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 67698*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VRLW), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (rotl:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB) - Complexity = 3
                // Dst: (VRLW:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/* 67706*/    /*Scope*/ 14, /*->67721*/
/* 67707*/      OPC_CheckChild1Type, MVT::v2i64,
/* 67709*/      OPC_CheckType, MVT::v2i64,
/* 67711*/      OPC_CheckPatternPredicate, 35, // (PPCSubTarget->hasP8Altivec())
/* 67713*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VRLD), 0,
                    MVT::v2i64, 2/*#Ops*/, 0, 1, 
                // Src: (rotl:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vA, v2i64:{ *:[v2i64] }:$vB) - Complexity = 3
                // Dst: (VRLD:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vA, v2i64:{ *:[v2i64] }:$vB)
/* 67721*/    0, /*End of Scope*/
/* 67722*/  /*SwitchOpcode*/ 72, TARGET_VAL(PPCISD::CALL_NOP),// ->67797
/* 67725*/    OPC_RecordNode, // #0 = 'PPCcall_nop' chained node
/* 67726*/    OPC_CaptureGlueInput,
/* 67727*/    OPC_RecordChild1, // #1 = $dst
/* 67728*/    OPC_MoveChild1,
/* 67729*/    OPC_SwitchOpcode /*4 cases */, 22, TARGET_VAL(ISD::MCSymbol),// ->67755
/* 67733*/      OPC_SwitchType /*2 cases */, 8, MVT::i32,// ->67744
/* 67736*/        OPC_MoveParent,
/* 67737*/        OPC_EmitMergeInputChains1_0,
/* 67738*/        OPC_MorphNodeTo0, TARGET_VAL(PPC::BL_NOP), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
                      1/*#Ops*/, 1, 
                  // Src: (PPCcall_nop (mcsym:{ *:[i32] }):$dst) - Complexity = 6
                  // Dst: (BL_NOP (mcsym:{ *:[i32] }):$dst)
/* 67744*/      /*SwitchType*/ 8, MVT::i64,// ->67754
/* 67746*/        OPC_MoveParent,
/* 67747*/        OPC_EmitMergeInputChains1_0,
/* 67748*/        OPC_MorphNodeTo0, TARGET_VAL(PPC::BL8_NOP), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
                      1/*#Ops*/, 1, 
                  // Src: (PPCcall_nop (mcsym:{ *:[i64] }):$dst) - Complexity = 6
                  // Dst: (BL8_NOP (mcsym:{ *:[i64] }):$dst)
/* 67754*/      0, // EndSwitchType
/* 67755*/    /*SwitchOpcode*/ 12, TARGET_VAL(ISD::Constant),// ->67770
/* 67758*/      OPC_CheckType, MVT::i64,
/* 67760*/      OPC_MoveParent,
/* 67761*/      OPC_EmitMergeInputChains1_0,
/* 67762*/      OPC_EmitConvertToTarget, 1,
/* 67764*/      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)
/* 67770*/    /*SwitchOpcode*/ 10, TARGET_VAL(ISD::TargetGlobalAddress),// ->67783
/* 67773*/      OPC_CheckType, MVT::i64,
/* 67775*/      OPC_MoveParent,
/* 67776*/      OPC_EmitMergeInputChains1_0,
/* 67777*/      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)
/* 67783*/    /*SwitchOpcode*/ 10, TARGET_VAL(ISD::TargetExternalSymbol),// ->67796
/* 67786*/      OPC_CheckType, MVT::i64,
/* 67788*/      OPC_MoveParent,
/* 67789*/      OPC_EmitMergeInputChains1_0,
/* 67790*/      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)
/* 67796*/    0, // EndSwitchOpcode
/* 67797*/  /*SwitchOpcode*/ 29, TARGET_VAL(PPCISD::LD_GOT_TPREL_L),// ->67829
/* 67800*/    OPC_RecordChild0, // #0 = $disp
/* 67801*/    OPC_MoveChild0,
/* 67802*/    OPC_CheckOpcode, TARGET_VAL(ISD::TargetGlobalTLSAddress),
/* 67805*/    OPC_MoveParent,
/* 67806*/    OPC_RecordChild1, // #1 = $reg
/* 67807*/    OPC_SwitchType /*2 cases */, 8, MVT::i32,// ->67818
/* 67810*/      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)
/* 67818*/    /*SwitchType*/ 8, MVT::i64,// ->67828
/* 67820*/      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)
/* 67828*/    0, // EndSwitchType
/* 67829*/  /*SwitchOpcode*/ 29, TARGET_VAL(PPCISD::ADD_TLS),// ->67861
/* 67832*/    OPC_RecordChild0, // #0 = $in
/* 67833*/    OPC_RecordChild1, // #1 = $g
/* 67834*/    OPC_MoveChild1,
/* 67835*/    OPC_CheckOpcode, TARGET_VAL(ISD::TargetGlobalTLSAddress),
/* 67838*/    OPC_MoveParent,
/* 67839*/    OPC_SwitchType /*2 cases */, 8, MVT::i32,// ->67850
/* 67842*/      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)
/* 67850*/    /*SwitchType*/ 8, MVT::i64,// ->67860
/* 67852*/      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)
/* 67860*/    0, // EndSwitchType
/* 67861*/  /*SwitchOpcode*/ 29, TARGET_VAL(PPCISD::ADDI_TLSGD_L),// ->67893
/* 67864*/    OPC_RecordChild0, // #0 = $reg
/* 67865*/    OPC_RecordChild1, // #1 = $disp
/* 67866*/    OPC_MoveChild1,
/* 67867*/    OPC_CheckOpcode, TARGET_VAL(ISD::TargetGlobalTLSAddress),
/* 67870*/    OPC_MoveParent,
/* 67871*/    OPC_SwitchType /*2 cases */, 8, MVT::i32,// ->67882
/* 67874*/      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)
/* 67882*/    /*SwitchType*/ 8, MVT::i64,// ->67892
/* 67884*/      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)
/* 67892*/    0, // EndSwitchType
/* 67893*/  /*SwitchOpcode*/ 29, TARGET_VAL(PPCISD::GET_TLS_ADDR),// ->67925
/* 67896*/    OPC_RecordChild0, // #0 = $reg
/* 67897*/    OPC_RecordChild1, // #1 = $sym
/* 67898*/    OPC_MoveChild1,
/* 67899*/    OPC_CheckOpcode, TARGET_VAL(ISD::TargetGlobalTLSAddress),
/* 67902*/    OPC_MoveParent,
/* 67903*/    OPC_SwitchType /*2 cases */, 8, MVT::i32,// ->67914
/* 67906*/      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)
/* 67914*/    /*SwitchType*/ 8, MVT::i64,// ->67924
/* 67916*/      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)
/* 67924*/    0, // EndSwitchType
/* 67925*/  /*SwitchOpcode*/ 29, TARGET_VAL(PPCISD::ADDI_TLSLD_L),// ->67957
/* 67928*/    OPC_RecordChild0, // #0 = $reg
/* 67929*/    OPC_RecordChild1, // #1 = $disp
/* 67930*/    OPC_MoveChild1,
/* 67931*/    OPC_CheckOpcode, TARGET_VAL(ISD::TargetGlobalTLSAddress),
/* 67934*/    OPC_MoveParent,
/* 67935*/    OPC_SwitchType /*2 cases */, 8, MVT::i32,// ->67946
/* 67938*/      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)
/* 67946*/    /*SwitchType*/ 8, MVT::i64,// ->67956
/* 67948*/      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)
/* 67956*/    0, // EndSwitchType
/* 67957*/  /*SwitchOpcode*/ 29, TARGET_VAL(PPCISD::GET_TLSLD_ADDR),// ->67989
/* 67960*/    OPC_RecordChild0, // #0 = $reg
/* 67961*/    OPC_RecordChild1, // #1 = $sym
/* 67962*/    OPC_MoveChild1,
/* 67963*/    OPC_CheckOpcode, TARGET_VAL(ISD::TargetGlobalTLSAddress),
/* 67966*/    OPC_MoveParent,
/* 67967*/    OPC_SwitchType /*2 cases */, 8, MVT::i32,// ->67978
/* 67970*/      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)
/* 67978*/    /*SwitchType*/ 8, MVT::i64,// ->67988
/* 67980*/      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)
/* 67988*/    0, // EndSwitchType
/* 67989*/  /*SwitchOpcode*/ 29, TARGET_VAL(PPCISD::ADDI_DTPREL_L),// ->68021
/* 67992*/    OPC_RecordChild0, // #0 = $reg
/* 67993*/    OPC_RecordChild1, // #1 = $disp
/* 67994*/    OPC_MoveChild1,
/* 67995*/    OPC_CheckOpcode, TARGET_VAL(ISD::TargetGlobalTLSAddress),
/* 67998*/    OPC_MoveParent,
/* 67999*/    OPC_SwitchType /*2 cases */, 8, MVT::i32,// ->68010
/* 68002*/      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)
/* 68010*/    /*SwitchType*/ 8, MVT::i64,// ->68020
/* 68012*/      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)
/* 68020*/    0, // EndSwitchType
/* 68021*/  /*SwitchOpcode*/ 29, TARGET_VAL(PPCISD::ADDIS_DTPREL_HA),// ->68053
/* 68024*/    OPC_RecordChild0, // #0 = $reg
/* 68025*/    OPC_RecordChild1, // #1 = $disp
/* 68026*/    OPC_MoveChild1,
/* 68027*/    OPC_CheckOpcode, TARGET_VAL(ISD::TargetGlobalTLSAddress),
/* 68030*/    OPC_MoveParent,
/* 68031*/    OPC_SwitchType /*2 cases */, 8, MVT::i32,// ->68042
/* 68034*/      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)
/* 68042*/    /*SwitchType*/ 8, MVT::i64,// ->68052
/* 68044*/      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)
/* 68052*/    0, // EndSwitchType
/* 68053*/  /*SwitchOpcode*/ 114, TARGET_VAL(PPCISD::TOC_ENTRY),// ->68170
/* 68056*/    OPC_RecordMemRef,
/* 68057*/    OPC_RecordChild0, // #0 = $disp
/* 68058*/    OPC_Scope, 28, /*->68088*/ // 3 children in Scope
/* 68060*/      OPC_MoveChild0,
/* 68061*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetGlobalAddress),
/* 68064*/      OPC_MoveParent,
/* 68065*/      OPC_RecordChild1, // #1 = $reg
/* 68066*/      OPC_CheckType, MVT::i32,
/* 68068*/      OPC_Scope, 8, /*->68078*/ // 2 children in Scope
/* 68070*/        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)
/* 68078*/      /*Scope*/ 8, /*->68087*/
/* 68079*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::LWZtocL), 0|OPFL_MemRefs,
                      MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (PPCtoc_entry:{ *:[i32] } (tglobaladdr:{ *:[i32] }):$disp, i32:{ *:[i32] }:$reg) - Complexity = 6
                  // Dst: (LWZtocL:{ *:[i32] } (tglobaladdr:{ *:[i32] }):$disp, i32:{ *:[i32] }:$reg)
/* 68087*/      0, /*End of Scope*/
/* 68088*/    /*Scope*/ 16, /*->68105*/
/* 68089*/      OPC_RecordChild1, // #1 = $disp
/* 68090*/      OPC_MoveChild1,
/* 68091*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetGlobalAddress),
/* 68094*/      OPC_MoveParent,
/* 68095*/      OPC_CheckType, MVT::i32,
/* 68097*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::ADDIStocHA), 0|OPFL_MemRefs,
                    MVT::i32, 2/*#Ops*/, 0, 1, 
                // Src: (PPCtoc_entry:{ *:[i32] } i32:{ *:[i32] }:$reg, (tglobaladdr:{ *:[i32] }):$disp) - Complexity = 6
                // Dst: (ADDIStocHA:{ *:[i32] } i32:{ *:[i32] }:$reg, (tglobaladdr:{ *:[i32] }):$disp)
/* 68105*/    /*Scope*/ 63, /*->68169*/
/* 68106*/      OPC_MoveChild0,
/* 68107*/      OPC_SwitchOpcode /*4 cases */, 12, TARGET_VAL(ISD::TargetGlobalAddress),// ->68123
/* 68111*/        OPC_MoveParent,
/* 68112*/        OPC_RecordChild1, // #1 = $reg
/* 68113*/        OPC_CheckType, MVT::i64,
/* 68115*/        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)
/* 68123*/      /*SwitchOpcode*/ 12, TARGET_VAL(ISD::TargetJumpTable),// ->68138
/* 68126*/        OPC_MoveParent,
/* 68127*/        OPC_RecordChild1, // #1 = $reg
/* 68128*/        OPC_CheckType, MVT::i64,
/* 68130*/        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)
/* 68138*/      /*SwitchOpcode*/ 12, TARGET_VAL(ISD::TargetConstantPool),// ->68153
/* 68141*/        OPC_MoveParent,
/* 68142*/        OPC_RecordChild1, // #1 = $reg
/* 68143*/        OPC_CheckType, MVT::i64,
/* 68145*/        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)
/* 68153*/      /*SwitchOpcode*/ 12, TARGET_VAL(ISD::TargetBlockAddress),// ->68168
/* 68156*/        OPC_MoveParent,
/* 68157*/        OPC_RecordChild1, // #1 = $reg
/* 68158*/        OPC_CheckType, MVT::i64,
/* 68160*/        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)
/* 68168*/      0, // EndSwitchOpcode
/* 68169*/    0, /*End of Scope*/
/* 68170*/  /*SwitchOpcode*/ 25, TARGET_VAL(PPCISD::EXTSWSLI),// ->68198
/* 68173*/    OPC_RecordChild0, // #0 = $rS
/* 68174*/    OPC_CheckChild0Type, MVT::i32,
/* 68176*/    OPC_RecordChild1, // #1 = $SH
/* 68177*/    OPC_MoveChild1,
/* 68178*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 68181*/    OPC_CheckType, MVT::i32,
/* 68183*/    OPC_MoveParent,
/* 68184*/    OPC_CheckType, MVT::i64,
/* 68186*/    OPC_CheckPatternPredicate, 39, // (PPCSubTarget->isISA3_0())
/* 68188*/    OPC_EmitConvertToTarget, 1,
/* 68190*/    OPC_MorphNodeTo1, TARGET_VAL(PPC::EXTSWSLI_32_64), 0,
                  MVT::i64, 2/*#Ops*/, 0, 2, 
              // Src: (PPCextswsli:{ *:[i64] } i32:{ *:[i32] }:$rS, (imm:{ *:[i32] }):$SH) - Complexity = 6
              // Dst: (EXTSWSLI_32_64:{ *:[i64] } i32:{ *:[i32] }:$rS, (imm:{ *:[i32] }):$SH)
/* 68198*/  /*SwitchOpcode*/ 17, TARGET_VAL(PPCISD::ADDIS_GOT_TPREL_HA),// ->68218
/* 68201*/    OPC_RecordChild0, // #0 = $reg
/* 68202*/    OPC_RecordChild1, // #1 = $disp
/* 68203*/    OPC_MoveChild1,
/* 68204*/    OPC_CheckOpcode, TARGET_VAL(ISD::TargetGlobalTLSAddress),
/* 68207*/    OPC_MoveParent,
/* 68208*/    OPC_CheckType, MVT::i64,
/* 68210*/    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)
/* 68218*/  /*SwitchOpcode*/ 17, TARGET_VAL(PPCISD::ADDIS_TLSGD_HA),// ->68238
/* 68221*/    OPC_RecordChild0, // #0 = $reg
/* 68222*/    OPC_RecordChild1, // #1 = $disp
/* 68223*/    OPC_MoveChild1,
/* 68224*/    OPC_CheckOpcode, TARGET_VAL(ISD::TargetGlobalTLSAddress),
/* 68227*/    OPC_MoveParent,
/* 68228*/    OPC_CheckType, MVT::i64,
/* 68230*/    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)
/* 68238*/  /*SwitchOpcode*/ 17, TARGET_VAL(PPCISD::ADDIS_TLSLD_HA),// ->68258
/* 68241*/    OPC_RecordChild0, // #0 = $reg
/* 68242*/    OPC_RecordChild1, // #1 = $disp
/* 68243*/    OPC_MoveChild1,
/* 68244*/    OPC_CheckOpcode, TARGET_VAL(ISD::TargetGlobalTLSAddress),
/* 68247*/    OPC_MoveParent,
/* 68248*/    OPC_CheckType, MVT::i64,
/* 68250*/    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)
/* 68258*/  /*SwitchOpcode*/ 8|128,1/*136*/, TARGET_VAL(ISD::Constant),// ->68398
/* 68262*/    OPC_Scope, 10, /*->68274*/ // 4 children in Scope
/* 68264*/      OPC_CheckInteger, 1, 
/* 68266*/      OPC_CheckType, MVT::i1,
/* 68268*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::CRSET), 0,
                    MVT::i1, 0/*#Ops*/, 
                // Src: 1:{ *:[i1] } - Complexity = 5
                // Dst: (CRSET:{ *:[i1] })
/* 68274*/    /*Scope*/ 10, /*->68285*/
/* 68275*/      OPC_CheckInteger, 0, 
/* 68277*/      OPC_CheckType, MVT::i1,
/* 68279*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::CRUNSET), 0,
                    MVT::i1, 0/*#Ops*/, 
                // Src: 0:{ *:[i1] } - Complexity = 5
                // Dst: (CRUNSET:{ *:[i1] })
/* 68285*/    /*Scope*/ 19, /*->68305*/
/* 68286*/      OPC_CheckInteger, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 68297*/      OPC_CheckType, MVT::i1,
/* 68299*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::CRSET), 0,
                    MVT::i1, 0/*#Ops*/, 
                // Src: -1:{ *:[i1] } - Complexity = 5
                // Dst: (CRSET:{ *:[i1] })
/* 68305*/    /*Scope*/ 91, /*->68397*/
/* 68306*/      OPC_RecordNode, // #0 = $imm
/* 68307*/      OPC_SwitchType /*2 cases */, 55, MVT::i32,// ->68365
/* 68310*/        OPC_Scope, 11, /*->68323*/ // 3 children in Scope
/* 68312*/          OPC_CheckPredicate, 13, // Predicate_imm32SExt16
/* 68314*/          OPC_EmitConvertToTarget, 0,
/* 68316*/          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)
/* 68323*/        /*Scope*/ 14, /*->68338*/
/* 68324*/          OPC_CheckPredicate, 19, // Predicate_imm16ShiftedSExt
/* 68326*/          OPC_EmitConvertToTarget, 0,
/* 68328*/          OPC_EmitNodeXForm, 0, 1, // HI16
/* 68331*/          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))
/* 68338*/        /*Scope*/ 25, /*->68364*/
/* 68339*/          OPC_EmitConvertToTarget, 0,
/* 68341*/          OPC_EmitNodeXForm, 0, 1, // HI16
/* 68344*/          OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                        MVT::i32, 1/*#Ops*/, 2,  // Results = #3
/* 68351*/          OPC_EmitConvertToTarget, 0,
/* 68353*/          OPC_EmitNodeXForm, 1, 4, // LO16
/* 68356*/          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))
/* 68364*/        0, /*End of Scope*/
/* 68365*/      /*SwitchType*/ 29, MVT::i64,// ->68396
/* 68367*/        OPC_Scope, 11, /*->68380*/ // 2 children in Scope
/* 68369*/          OPC_CheckPredicate, 14, // Predicate_imm64SExt16
/* 68371*/          OPC_EmitConvertToTarget, 0,
/* 68373*/          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)
/* 68380*/        /*Scope*/ 14, /*->68395*/
/* 68381*/          OPC_CheckPredicate, 19, // Predicate_imm16ShiftedSExt
/* 68383*/          OPC_EmitConvertToTarget, 0,
/* 68385*/          OPC_EmitNodeXForm, 0, 1, // HI16
/* 68388*/          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))
/* 68395*/        0, /*End of Scope*/
/* 68396*/      0, // EndSwitchType
/* 68397*/    0, /*End of Scope*/
/* 68398*/  /*SwitchOpcode*/ 22, TARGET_VAL(PPCISD::RET_FLAG),// ->68423
/* 68401*/    OPC_RecordNode, // #0 = 'retflag' chained node
/* 68402*/    OPC_CaptureGlueInput,
/* 68403*/    OPC_Scope, 8, /*->68413*/ // 2 children in Scope
/* 68405*/      OPC_CheckPatternPredicate, 40, // (!PPCSubTarget->isPPC64())
/* 68407*/      OPC_EmitMergeInputChains1_0,
/* 68408*/      OPC_MorphNodeTo0, TARGET_VAL(PPC::BLR), 0|OPFL_Chain|OPFL_GlueInput|OPFL_Variadic0,
                    0/*#Ops*/, 
                // Src: (retflag) - Complexity = 3
                // Dst: (BLR)
/* 68413*/    /*Scope*/ 8, /*->68422*/
/* 68414*/      OPC_CheckPatternPredicate, 41, // (PPCSubTarget->isPPC64())
/* 68416*/      OPC_EmitMergeInputChains1_0,
/* 68417*/      OPC_MorphNodeTo0, TARGET_VAL(PPC::BLR8), 0|OPFL_Chain|OPFL_GlueInput|OPFL_Variadic0,
                    0/*#Ops*/, 
                // Src: (retflag) - Complexity = 3
                // Dst: (BLR8)
/* 68422*/    0, /*End of Scope*/
/* 68423*/  /*SwitchOpcode*/ 14, TARGET_VAL(ISD::BR),// ->68440
/* 68426*/    OPC_RecordNode, // #0 = 'br' chained node
/* 68427*/    OPC_RecordChild1, // #1 = $dst
/* 68428*/    OPC_MoveChild1,
/* 68429*/    OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
/* 68432*/    OPC_MoveParent,
/* 68433*/    OPC_EmitMergeInputChains1_0,
/* 68434*/    OPC_MorphNodeTo0, TARGET_VAL(PPC::B), 0|OPFL_Chain,
                  1/*#Ops*/, 1, 
              // Src: (br (bb:{ *:[Other] }):$dst) - Complexity = 3
              // Dst: (B (bb:{ *:[Other] }):$dst)
/* 68440*/  /*SwitchOpcode*/ 22, TARGET_VAL(PPCISD::BCTRL),// ->68465
/* 68443*/    OPC_RecordNode, // #0 = 'PPCbctrl' chained node
/* 68444*/    OPC_CaptureGlueInput,
/* 68445*/    OPC_Scope, 8, /*->68455*/ // 2 children in Scope
/* 68447*/      OPC_CheckPatternPredicate, 40, // (!PPCSubTarget->isPPC64())
/* 68449*/      OPC_EmitMergeInputChains1_0,
/* 68450*/      OPC_MorphNodeTo0, TARGET_VAL(PPC::BCTRL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic0,
                    0/*#Ops*/, 
                // Src: (PPCbctrl) - Complexity = 3
                // Dst: (BCTRL)
/* 68455*/    /*Scope*/ 8, /*->68464*/
/* 68456*/      OPC_CheckPatternPredicate, 41, // (PPCSubTarget->isPPC64())
/* 68458*/      OPC_EmitMergeInputChains1_0,
/* 68459*/      OPC_MorphNodeTo0, TARGET_VAL(PPC::BCTRL8), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic0,
                    0/*#Ops*/, 
                // Src: (PPCbctrl) - Complexity = 3
                // Dst: (BCTRL8)
/* 68464*/    0, /*End of Scope*/
/* 68465*/  /*SwitchOpcode*/ 7, TARGET_VAL(PPCISD::CLRBHRB),// ->68475
/* 68468*/    OPC_RecordNode, // #0 = 'PPCclrbhrb' chained node
/* 68469*/    OPC_EmitMergeInputChains1_0,
/* 68470*/    OPC_MorphNodeTo0, TARGET_VAL(PPC::CLRBHRB), 0|OPFL_Chain,
                  0/*#Ops*/, 
              // Src: (PPCclrbhrb) - Complexity = 3
              // Dst: (CLRBHRB)
/* 68475*/  /*SwitchOpcode*/ 7, TARGET_VAL(ISD::TRAP),// ->68485
/* 68478*/    OPC_RecordNode, // #0 = 'trap' chained node
/* 68479*/    OPC_EmitMergeInputChains1_0,
/* 68480*/    OPC_MorphNodeTo0, TARGET_VAL(PPC::TRAP), 0|OPFL_Chain,
                  0/*#Ops*/, 
              // Src: (trap) - Complexity = 3
              // Dst: (TRAP)
/* 68485*/  /*SwitchOpcode*/ 123, TARGET_VAL(PPCISD::SHL),// ->68611
/* 68488*/    OPC_RecordChild0, // #0 = $rS
/* 68489*/    OPC_RecordChild1, // #1 = $rB
/* 68490*/    OPC_Scope, 24, /*->68516*/ // 6 children in Scope
/* 68492*/      OPC_CheckChild1Type, MVT::i32,
/* 68494*/      OPC_SwitchType /*2 cases */, 8, MVT::i32,// ->68505
/* 68497*/        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)
/* 68505*/      /*SwitchType*/ 8, MVT::i64,// ->68515
/* 68507*/        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)
/* 68515*/      0, // EndSwitchType
/* 68516*/    /*Scope*/ 14, /*->68531*/
/* 68517*/      OPC_CheckChild1Type, MVT::v16i8,
/* 68519*/      OPC_CheckType, MVT::v16i8,
/* 68521*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 68523*/      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)
/* 68531*/    /*Scope*/ 14, /*->68546*/
/* 68532*/      OPC_CheckChild1Type, MVT::v8i16,
/* 68534*/      OPC_CheckType, MVT::v8i16,
/* 68536*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 68538*/      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)
/* 68546*/    /*Scope*/ 14, /*->68561*/
/* 68547*/      OPC_CheckChild1Type, MVT::v4i32,
/* 68549*/      OPC_CheckType, MVT::v4i32,
/* 68551*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 68553*/      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)
/* 68561*/    /*Scope*/ 14, /*->68576*/
/* 68562*/      OPC_CheckChild1Type, MVT::v2i64,
/* 68564*/      OPC_CheckType, MVT::v2i64,
/* 68566*/      OPC_CheckPatternPredicate, 35, // (PPCSubTarget->hasP8Altivec())
/* 68568*/      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)
/* 68576*/    /*Scope*/ 33, /*->68610*/
/* 68577*/      OPC_CheckChild1Type, MVT::v1i128,
/* 68579*/      OPC_CheckType, MVT::v1i128,
/* 68581*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 68583*/      OPC_EmitNode1, TARGET_VAL(PPC::VSLO), 0,
                    MVT::v16i8, 2/*#Ops*/, 0, 1,  // Results = #2
/* 68591*/      OPC_EmitInteger, MVT::i32, 15, 
/* 68594*/      OPC_EmitNode1, TARGET_VAL(PPC::VSPLTB), 0,
                    MVT::v16i8, 2/*#Ops*/, 3, 1,  // Results = #4
/* 68602*/      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))
/* 68610*/    0, /*End of Scope*/
/* 68611*/  /*SwitchOpcode*/ 123, TARGET_VAL(PPCISD::SRL),// ->68737
/* 68614*/    OPC_RecordChild0, // #0 = $rS
/* 68615*/    OPC_RecordChild1, // #1 = $rB
/* 68616*/    OPC_Scope, 24, /*->68642*/ // 6 children in Scope
/* 68618*/      OPC_CheckChild1Type, MVT::i32,
/* 68620*/      OPC_SwitchType /*2 cases */, 8, MVT::i32,// ->68631
/* 68623*/        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)
/* 68631*/      /*SwitchType*/ 8, MVT::i64,// ->68641
/* 68633*/        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)
/* 68641*/      0, // EndSwitchType
/* 68642*/    /*Scope*/ 14, /*->68657*/
/* 68643*/      OPC_CheckChild1Type, MVT::v16i8,
/* 68645*/      OPC_CheckType, MVT::v16i8,
/* 68647*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 68649*/      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)
/* 68657*/    /*Scope*/ 14, /*->68672*/
/* 68658*/      OPC_CheckChild1Type, MVT::v8i16,
/* 68660*/      OPC_CheckType, MVT::v8i16,
/* 68662*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 68664*/      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)
/* 68672*/    /*Scope*/ 14, /*->68687*/
/* 68673*/      OPC_CheckChild1Type, MVT::v4i32,
/* 68675*/      OPC_CheckType, MVT::v4i32,
/* 68677*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 68679*/      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)
/* 68687*/    /*Scope*/ 14, /*->68702*/
/* 68688*/      OPC_CheckChild1Type, MVT::v2i64,
/* 68690*/      OPC_CheckType, MVT::v2i64,
/* 68692*/      OPC_CheckPatternPredicate, 35, // (PPCSubTarget->hasP8Altivec())
/* 68694*/      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)
/* 68702*/    /*Scope*/ 33, /*->68736*/
/* 68703*/      OPC_CheckChild1Type, MVT::v1i128,
/* 68705*/      OPC_CheckType, MVT::v1i128,
/* 68707*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 68709*/      OPC_EmitNode1, TARGET_VAL(PPC::VSRO), 0,
                    MVT::v16i8, 2/*#Ops*/, 0, 1,  // Results = #2
/* 68717*/      OPC_EmitInteger, MVT::i32, 15, 
/* 68720*/      OPC_EmitNode1, TARGET_VAL(PPC::VSPLTB), 0,
                    MVT::v16i8, 2/*#Ops*/, 3, 1,  // Results = #4
/* 68728*/      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))
/* 68736*/    0, /*End of Scope*/
/* 68737*/  /*SwitchOpcode*/ 91, TARGET_VAL(PPCISD::SRA),// ->68831
/* 68740*/    OPC_RecordChild0, // #0 = $rS
/* 68741*/    OPC_RecordChild1, // #1 = $rB
/* 68742*/    OPC_Scope, 26, /*->68770*/ // 5 children in Scope
/* 68744*/      OPC_CheckChild1Type, MVT::i32,
/* 68746*/      OPC_SwitchType /*2 cases */, 9, MVT::i32,// ->68758
/* 68749*/        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)
/* 68758*/      /*SwitchType*/ 9, MVT::i64,// ->68769
/* 68760*/        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)
/* 68769*/      0, // EndSwitchType
/* 68770*/    /*Scope*/ 14, /*->68785*/
/* 68771*/      OPC_CheckChild1Type, MVT::v16i8,
/* 68773*/      OPC_CheckType, MVT::v16i8,
/* 68775*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 68777*/      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)
/* 68785*/    /*Scope*/ 14, /*->68800*/
/* 68786*/      OPC_CheckChild1Type, MVT::v8i16,
/* 68788*/      OPC_CheckType, MVT::v8i16,
/* 68790*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 68792*/      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)
/* 68800*/    /*Scope*/ 14, /*->68815*/
/* 68801*/      OPC_CheckChild1Type, MVT::v4i32,
/* 68803*/      OPC_CheckType, MVT::v4i32,
/* 68805*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 68807*/      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)
/* 68815*/    /*Scope*/ 14, /*->68830*/
/* 68816*/      OPC_CheckChild1Type, MVT::v2i64,
/* 68818*/      OPC_CheckType, MVT::v2i64,
/* 68820*/      OPC_CheckPatternPredicate, 35, // (PPCSubTarget->hasP8Altivec())
/* 68822*/      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)
/* 68830*/    0, /*End of Scope*/
/* 68831*/  /*SwitchOpcode*/ 77, TARGET_VAL(ISD::CTLZ),// ->68911
/* 68834*/    OPC_RecordChild0, // #0 = $rS
/* 68835*/    OPC_SwitchType /*6 cases */, 9, MVT::i32,// ->68847
/* 68838*/      OPC_CheckChild0Type, MVT::i32,
/* 68840*/      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)
/* 68847*/    /*SwitchType*/ 9, MVT::i64,// ->68858
/* 68849*/      OPC_CheckChild0Type, MVT::i64,
/* 68851*/      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)
/* 68858*/    /*SwitchType*/ 11, MVT::v16i8,// ->68871
/* 68860*/      OPC_CheckChild0Type, MVT::v16i8,
/* 68862*/      OPC_CheckPatternPredicate, 35, // (PPCSubTarget->hasP8Altivec())
/* 68864*/      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)
/* 68871*/    /*SwitchType*/ 11, MVT::v8i16,// ->68884
/* 68873*/      OPC_CheckChild0Type, MVT::v8i16,
/* 68875*/      OPC_CheckPatternPredicate, 35, // (PPCSubTarget->hasP8Altivec())
/* 68877*/      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)
/* 68884*/    /*SwitchType*/ 11, MVT::v4i32,// ->68897
/* 68886*/      OPC_CheckChild0Type, MVT::v4i32,
/* 68888*/      OPC_CheckPatternPredicate, 35, // (PPCSubTarget->hasP8Altivec())
/* 68890*/      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)
/* 68897*/    /*SwitchType*/ 11, MVT::v2i64,// ->68910
/* 68899*/      OPC_CheckChild0Type, MVT::v2i64,
/* 68901*/      OPC_CheckPatternPredicate, 35, // (PPCSubTarget->hasP8Altivec())
/* 68903*/      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)
/* 68910*/    0, // EndSwitchType
/* 68911*/  /*SwitchOpcode*/ 81, TARGET_VAL(ISD::CTTZ),// ->68995
/* 68914*/    OPC_RecordChild0, // #0 = $rS
/* 68915*/    OPC_SwitchType /*6 cases */, 11, MVT::i32,// ->68929
/* 68918*/      OPC_CheckChild0Type, MVT::i32,
/* 68920*/      OPC_CheckPatternPredicate, 39, // (PPCSubTarget->isISA3_0())
/* 68922*/      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)
/* 68929*/    /*SwitchType*/ 11, MVT::i64,// ->68942
/* 68931*/      OPC_CheckChild0Type, MVT::i64,
/* 68933*/      OPC_CheckPatternPredicate, 39, // (PPCSubTarget->isISA3_0())
/* 68935*/      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)
/* 68942*/    /*SwitchType*/ 11, MVT::v16i8,// ->68955
/* 68944*/      OPC_CheckChild0Type, MVT::v16i8,
/* 68946*/      OPC_CheckPatternPredicate, 32, // (PPCSubTarget->hasP9Altivec())
/* 68948*/      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)
/* 68955*/    /*SwitchType*/ 11, MVT::v8i16,// ->68968
/* 68957*/      OPC_CheckChild0Type, MVT::v8i16,
/* 68959*/      OPC_CheckPatternPredicate, 32, // (PPCSubTarget->hasP9Altivec())
/* 68961*/      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)
/* 68968*/    /*SwitchType*/ 11, MVT::v4i32,// ->68981
/* 68970*/      OPC_CheckChild0Type, MVT::v4i32,
/* 68972*/      OPC_CheckPatternPredicate, 32, // (PPCSubTarget->hasP9Altivec())
/* 68974*/      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)
/* 68981*/    /*SwitchType*/ 11, MVT::v2i64,// ->68994
/* 68983*/      OPC_CheckChild0Type, MVT::v2i64,
/* 68985*/      OPC_CheckPatternPredicate, 32, // (PPCSubTarget->hasP9Altivec())
/* 68987*/      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)
/* 68994*/    0, // EndSwitchType
/* 68995*/  /*SwitchOpcode*/ 10|128,1/*138*/, TARGET_VAL(ISD::SIGN_EXTEND_INREG),// ->69137
/* 68999*/    OPC_RecordChild0, // #0 = $rS
/* 69000*/    OPC_MoveChild1,
/* 69001*/    OPC_Scope, 23, /*->69026*/ // 8 children in Scope
/* 69003*/      OPC_CheckValueType, MVT::i8,
/* 69005*/      OPC_MoveParent,
/* 69006*/      OPC_SwitchType /*2 cases */, 7, MVT::i32,// ->69016
/* 69009*/        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)
/* 69016*/      /*SwitchType*/ 7, MVT::i64,// ->69025
/* 69018*/        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)
/* 69025*/      0, // EndSwitchType
/* 69026*/    /*Scope*/ 23, /*->69050*/
/* 69027*/      OPC_CheckValueType, MVT::i16,
/* 69029*/      OPC_MoveParent,
/* 69030*/      OPC_SwitchType /*2 cases */, 7, MVT::i32,// ->69040
/* 69033*/        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)
/* 69040*/      /*SwitchType*/ 7, MVT::i64,// ->69049
/* 69042*/        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)
/* 69049*/      0, // EndSwitchType
/* 69050*/    /*Scope*/ 10, /*->69061*/
/* 69051*/      OPC_CheckValueType, MVT::i32,
/* 69053*/      OPC_MoveParent,
/* 69054*/      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)
/* 69061*/    /*Scope*/ 14, /*->69076*/
/* 69062*/      OPC_CheckValueType, MVT::v4i8,
/* 69064*/      OPC_MoveParent,
/* 69065*/      OPC_CheckType, MVT::v4i32,
/* 69067*/      OPC_CheckPatternPredicate, 32, // (PPCSubTarget->hasP9Altivec())
/* 69069*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VEXTSB2W), 0,
                    MVT::v4i32, 1/*#Ops*/, 0, 
                // Src: (sext_inreg:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$VRB, v4i8:{ *:[Other] }) - Complexity = 3
                // Dst: (VEXTSB2W:{ *:[v4i32] } ?:{ *:[v4i32] }:$VRB)
/* 69076*/    /*Scope*/ 14, /*->69091*/
/* 69077*/      OPC_CheckValueType, MVT::v4i16,
/* 69079*/      OPC_MoveParent,
/* 69080*/      OPC_CheckType, MVT::v4i32,
/* 69082*/      OPC_CheckPatternPredicate, 32, // (PPCSubTarget->hasP9Altivec())
/* 69084*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VEXTSH2W), 0,
                    MVT::v4i32, 1/*#Ops*/, 0, 
                // Src: (sext_inreg:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$VRB, v4i16:{ *:[Other] }) - Complexity = 3
                // Dst: (VEXTSH2W:{ *:[v4i32] } ?:{ *:[v4i32] }:$VRB)
/* 69091*/    /*Scope*/ 14, /*->69106*/
/* 69092*/      OPC_CheckValueType, MVT::v2i8,
/* 69094*/      OPC_MoveParent,
/* 69095*/      OPC_CheckType, MVT::v2i64,
/* 69097*/      OPC_CheckPatternPredicate, 32, // (PPCSubTarget->hasP9Altivec())
/* 69099*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VEXTSB2D), 0,
                    MVT::v2i64, 1/*#Ops*/, 0, 
                // Src: (sext_inreg:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$VRB, v2i8:{ *:[Other] }) - Complexity = 3
                // Dst: (VEXTSB2D:{ *:[v2i64] } ?:{ *:[v2i64] }:$VRB)
/* 69106*/    /*Scope*/ 14, /*->69121*/
/* 69107*/      OPC_CheckValueType, MVT::v2i16,
/* 69109*/      OPC_MoveParent,
/* 69110*/      OPC_CheckType, MVT::v2i64,
/* 69112*/      OPC_CheckPatternPredicate, 32, // (PPCSubTarget->hasP9Altivec())
/* 69114*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VEXTSH2D), 0,
                    MVT::v2i64, 1/*#Ops*/, 0, 
                // Src: (sext_inreg:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$VRB, v2i16:{ *:[Other] }) - Complexity = 3
                // Dst: (VEXTSH2D:{ *:[v2i64] } ?:{ *:[v2i64] }:$VRB)
/* 69121*/    /*Scope*/ 14, /*->69136*/
/* 69122*/      OPC_CheckValueType, MVT::v2i32,
/* 69124*/      OPC_MoveParent,
/* 69125*/      OPC_CheckType, MVT::v2i64,
/* 69127*/      OPC_CheckPatternPredicate, 32, // (PPCSubTarget->hasP9Altivec())
/* 69129*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VEXTSW2D), 0,
                    MVT::v2i64, 1/*#Ops*/, 0, 
                // Src: (sext_inreg:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$VRB, v2i32:{ *:[Other] }) - Complexity = 3
                // Dst: (VEXTSW2D:{ *:[v2i64] } ?:{ *:[v2i64] }:$VRB)
/* 69136*/    0, /*End of Scope*/
/* 69137*/  /*SwitchOpcode*/ 24, TARGET_VAL(PPCISD::CMPB),// ->69164
/* 69140*/    OPC_RecordChild0, // #0 = $rS
/* 69141*/    OPC_RecordChild1, // #1 = $rB
/* 69142*/    OPC_SwitchType /*2 cases */, 8, MVT::i32,// ->69153
/* 69145*/      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)
/* 69153*/    /*SwitchType*/ 8, MVT::i64,// ->69163
/* 69155*/      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)
/* 69163*/    0, // EndSwitchType
/* 69164*/  /*SwitchOpcode*/ 9, TARGET_VAL(PPCISD::CR6SET),// ->69176
/* 69167*/    OPC_RecordNode, // #0 = 'PPCcr6set' chained node
/* 69168*/    OPC_CaptureGlueInput,
/* 69169*/    OPC_EmitMergeInputChains1_0,
/* 69170*/    OPC_MorphNodeTo1, TARGET_VAL(PPC::CR6SET), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
                  MVT::i1, 0/*#Ops*/, 
              // Src: (PPCcr6set) - Complexity = 3
              // Dst: (CR6SET:{ *:[i1] })
/* 69176*/  /*SwitchOpcode*/ 9, TARGET_VAL(PPCISD::CR6UNSET),// ->69188
/* 69179*/    OPC_RecordNode, // #0 = 'PPCcr6unset' chained node
/* 69180*/    OPC_CaptureGlueInput,
/* 69181*/    OPC_EmitMergeInputChains1_0,
/* 69182*/    OPC_MorphNodeTo1, TARGET_VAL(PPC::CR6UNSET), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
                  MVT::i1, 0/*#Ops*/, 
              // Src: (PPCcr6unset) - Complexity = 3
              // Dst: (CR6UNSET:{ *:[i1] })
/* 69188*/  /*SwitchOpcode*/ 27, TARGET_VAL(PPCISD::MTCTR),// ->69218
/* 69191*/    OPC_RecordNode, // #0 = 'PPCmtctr' chained node
/* 69192*/    OPC_CaptureGlueInput,
/* 69193*/    OPC_RecordChild1, // #1 = $rS
/* 69194*/    OPC_Scope, 10, /*->69206*/ // 2 children in Scope
/* 69196*/      OPC_CheckChild1Type, MVT::i32,
/* 69198*/      OPC_EmitMergeInputChains1_0,
/* 69199*/      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)
/* 69206*/    /*Scope*/ 10, /*->69217*/
/* 69207*/      OPC_CheckChild1Type, MVT::i64,
/* 69209*/      OPC_EmitMergeInputChains1_0,
/* 69210*/      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)
/* 69217*/    0, /*End of Scope*/
/* 69218*/  /*SwitchOpcode*/ 28, TARGET_VAL(ISD::SREM),// ->69249
/* 69221*/    OPC_RecordChild0, // #0 = $rA
/* 69222*/    OPC_RecordChild1, // #1 = $rB
/* 69223*/    OPC_SwitchType /*2 cases */, 10, MVT::i32,// ->69236
/* 69226*/      OPC_CheckPatternPredicate, 39, // (PPCSubTarget->isISA3_0())
/* 69228*/      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)
/* 69236*/    /*SwitchType*/ 10, MVT::i64,// ->69248
/* 69238*/      OPC_CheckPatternPredicate, 39, // (PPCSubTarget->isISA3_0())
/* 69240*/      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)
/* 69248*/    0, // EndSwitchType
/* 69249*/  /*SwitchOpcode*/ 28, TARGET_VAL(ISD::UREM),// ->69280
/* 69252*/    OPC_RecordChild0, // #0 = $rA
/* 69253*/    OPC_RecordChild1, // #1 = $rB
/* 69254*/    OPC_SwitchType /*2 cases */, 10, MVT::i32,// ->69267
/* 69257*/      OPC_CheckPatternPredicate, 39, // (PPCSubTarget->isISA3_0())
/* 69259*/      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)
/* 69267*/    /*SwitchType*/ 10, MVT::i64,// ->69279
/* 69269*/      OPC_CheckPatternPredicate, 39, // (PPCSubTarget->isISA3_0())
/* 69271*/      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)
/* 69279*/    0, // EndSwitchType
/* 69280*/  /*SwitchOpcode*/ 24, TARGET_VAL(ISD::SDIV),// ->69307
/* 69283*/    OPC_RecordChild0, // #0 = $rA
/* 69284*/    OPC_RecordChild1, // #1 = $rB
/* 69285*/    OPC_SwitchType /*2 cases */, 8, MVT::i32,// ->69296
/* 69288*/      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)
/* 69296*/    /*SwitchType*/ 8, MVT::i64,// ->69306
/* 69298*/      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)
/* 69306*/    0, // EndSwitchType
/* 69307*/  /*SwitchOpcode*/ 24, TARGET_VAL(ISD::UDIV),// ->69334
/* 69310*/    OPC_RecordChild0, // #0 = $rA
/* 69311*/    OPC_RecordChild1, // #1 = $rB
/* 69312*/    OPC_SwitchType /*2 cases */, 8, MVT::i32,// ->69323
/* 69315*/      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)
/* 69323*/    /*SwitchType*/ 8, MVT::i64,// ->69333
/* 69325*/      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)
/* 69333*/    0, // EndSwitchType
/* 69334*/  /*SwitchOpcode*/ 24, TARGET_VAL(ISD::MULHS),// ->69361
/* 69337*/    OPC_RecordChild0, // #0 = $rA
/* 69338*/    OPC_RecordChild1, // #1 = $rB
/* 69339*/    OPC_SwitchType /*2 cases */, 8, MVT::i32,// ->69350
/* 69342*/      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)
/* 69350*/    /*SwitchType*/ 8, MVT::i64,// ->69360
/* 69352*/      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)
/* 69360*/    0, // EndSwitchType
/* 69361*/  /*SwitchOpcode*/ 24, TARGET_VAL(ISD::MULHU),// ->69388
/* 69364*/    OPC_RecordChild0, // #0 = $rA
/* 69365*/    OPC_RecordChild1, // #1 = $rB
/* 69366*/    OPC_SwitchType /*2 cases */, 8, MVT::i32,// ->69377
/* 69369*/      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)
/* 69377*/    /*SwitchType*/ 8, MVT::i64,// ->69387
/* 69379*/      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)
/* 69387*/    0, // EndSwitchType
/* 69388*/  /*SwitchOpcode*/ 8, TARGET_VAL(PPCISD::PPC32_GOT),// ->69399
/* 69391*/    OPC_CheckType, MVT::i32,
/* 69393*/    OPC_MorphNodeTo1, TARGET_VAL(PPC::PPC32GOT), 0,
                  MVT::i32, 0/*#Ops*/, 
              // Src: (PPCppc32GOT:{ *:[i32] }) - Complexity = 3
              // Dst: (PPC32GOT:{ *:[i32] })
/* 69399*/  /*SwitchOpcode*/ 10, TARGET_VAL(ISD::READCYCLECOUNTER),// ->69412
/* 69402*/    OPC_RecordNode, // #0 = 'readcyclecounter' chained node
/* 69403*/    OPC_CheckType, MVT::i64,
/* 69405*/    OPC_EmitMergeInputChains1_0,
/* 69406*/    OPC_MorphNodeTo1, TARGET_VAL(PPC::MFTB8), 0|OPFL_Chain,
                  MVT::i64, 0/*#Ops*/, 
              // Src: (readcyclecounter:{ *:[i64] }) - Complexity = 3
              // Dst: (MFTB8:{ *:[i64] })
/* 69412*/  /*SwitchOpcode*/ 77, TARGET_VAL(ISD::CTPOP),// ->69492
/* 69415*/    OPC_RecordChild0, // #0 = $rS
/* 69416*/    OPC_SwitchType /*6 cases */, 9, MVT::i64,// ->69428
/* 69419*/      OPC_CheckChild0Type, MVT::i64,
/* 69421*/      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)
/* 69428*/    /*SwitchType*/ 9, MVT::i32,// ->69439
/* 69430*/      OPC_CheckChild0Type, MVT::i32,
/* 69432*/      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)
/* 69439*/    /*SwitchType*/ 11, MVT::v16i8,// ->69452
/* 69441*/      OPC_CheckChild0Type, MVT::v16i8,
/* 69443*/      OPC_CheckPatternPredicate, 35, // (PPCSubTarget->hasP8Altivec())
/* 69445*/      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)
/* 69452*/    /*SwitchType*/ 11, MVT::v8i16,// ->69465
/* 69454*/      OPC_CheckChild0Type, MVT::v8i16,
/* 69456*/      OPC_CheckPatternPredicate, 35, // (PPCSubTarget->hasP8Altivec())
/* 69458*/      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)
/* 69465*/    /*SwitchType*/ 11, MVT::v4i32,// ->69478
/* 69467*/      OPC_CheckChild0Type, MVT::v4i32,
/* 69469*/      OPC_CheckPatternPredicate, 35, // (PPCSubTarget->hasP8Altivec())
/* 69471*/      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)
/* 69478*/    /*SwitchType*/ 11, MVT::v2i64,// ->69491
/* 69480*/      OPC_CheckChild0Type, MVT::v2i64,
/* 69482*/      OPC_CheckPatternPredicate, 35, // (PPCSubTarget->hasP8Altivec())
/* 69484*/      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)
/* 69491*/    0, // EndSwitchType
/* 69492*/  /*SwitchOpcode*/ 91|128,1/*219*/, TARGET_VAL(ISD::SELECT),// ->69715
/* 69496*/    OPC_RecordChild0, // #0 = $cond
/* 69497*/    OPC_CheckChild0Type, MVT::i1,
/* 69499*/    OPC_RecordChild1, // #1 = $tval
/* 69500*/    OPC_RecordChild2, // #2 = $fval
/* 69501*/    OPC_SwitchType /*11 cases */, 32, MVT::i1,// ->69536
/* 69504*/      OPC_EmitNode1, TARGET_VAL(PPC::CRAND), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #3
/* 69512*/      OPC_EmitNode1, TARGET_VAL(PPC::CRNOR), 0,
                    MVT::i1, 2/*#Ops*/, 0, 0,  // Results = #4
/* 69520*/      OPC_EmitNode1, TARGET_VAL(PPC::CRAND), 0,
                    MVT::i1, 2/*#Ops*/, 4, 2,  // Results = #5
/* 69528*/      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))
/* 69536*/    /*SwitchType*/ 9, MVT::i32,// ->69547
/* 69538*/      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)
/* 69547*/    /*SwitchType*/ 9, MVT::i64,// ->69558
/* 69549*/      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)
/* 69558*/    /*SwitchType*/ 38, MVT::f64,// ->69598
/* 69560*/      OPC_Scope, 11, /*->69573*/ // 3 children in Scope
/* 69562*/        OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 69564*/        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)
/* 69573*/      /*Scope*/ 11, /*->69585*/
/* 69574*/        OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 69576*/        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)
/* 69585*/      /*Scope*/ 11, /*->69597*/
/* 69586*/        OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 69588*/        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)
/* 69597*/      0, /*End of Scope*/
/* 69598*/    /*SwitchType*/ 38, MVT::f32,// ->69638
/* 69600*/      OPC_Scope, 11, /*->69613*/ // 3 children in Scope
/* 69602*/        OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 69604*/        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)
/* 69613*/      /*Scope*/ 11, /*->69625*/
/* 69614*/        OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 69616*/        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)
/* 69625*/      /*Scope*/ 11, /*->69637*/
/* 69626*/        OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 69628*/        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)
/* 69637*/      0, /*End of Scope*/
/* 69638*/    /*SwitchType*/ 11, MVT::f128,// ->69651
/* 69640*/      OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 69642*/      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)
/* 69651*/    /*SwitchType*/ 9, MVT::v4i32,// ->69662
/* 69653*/      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)
/* 69662*/    /*SwitchType*/ 11, MVT::v4i1,// ->69675
/* 69664*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 69666*/      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)
/* 69675*/    /*SwitchType*/ 11, MVT::v2f64,// ->69688
/* 69677*/      OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 69679*/      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)
/* 69688*/    /*SwitchType*/ 11, MVT::v4f64,// ->69701
/* 69690*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 69692*/      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)
/* 69701*/    /*SwitchType*/ 11, MVT::v4f32,// ->69714
/* 69703*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 69705*/      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)
/* 69714*/    0, // EndSwitchType
/* 69715*/  /*SwitchOpcode*/ 49|128,30/*3889*/, TARGET_VAL(ISD::SELECT_CC),// ->73608
/* 69719*/    OPC_RecordChild0, // #0 = $lhs
/* 69720*/    OPC_CheckChild0Type, MVT::i1,
/* 69722*/    OPC_RecordChild1, // #1 = $rhs
/* 69723*/    OPC_RecordChild2, // #2 = $tval
/* 69724*/    OPC_RecordChild3, // #3 = $fval
/* 69725*/    OPC_MoveChild4,
/* 69726*/    OPC_Scope, 45, /*->69773*/ // 150 children in Scope
/* 69728*/      OPC_CheckCondCode, ISD::SETLT,
/* 69730*/      OPC_MoveParent,
/* 69731*/      OPC_CheckType, MVT::i1,
/* 69733*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 69741*/      OPC_EmitNode1, TARGET_VAL(PPC::CRAND), 0,
                    MVT::i1, 2/*#Ops*/, 4, 2,  // Results = #5
/* 69749*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #6
/* 69757*/      OPC_EmitNode1, TARGET_VAL(PPC::CRAND), 0,
                    MVT::i1, 2/*#Ops*/, 6, 3,  // Results = #7
/* 69765*/      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))
/* 69773*/    /*Scope*/ 45, /*->69819*/
/* 69774*/      OPC_CheckCondCode, ISD::SETULT,
/* 69776*/      OPC_MoveParent,
/* 69777*/      OPC_CheckType, MVT::i1,
/* 69779*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #4
/* 69787*/      OPC_EmitNode1, TARGET_VAL(PPC::CRAND), 0,
                    MVT::i1, 2/*#Ops*/, 4, 2,  // Results = #5
/* 69795*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #6
/* 69803*/      OPC_EmitNode1, TARGET_VAL(PPC::CRAND), 0,
                    MVT::i1, 2/*#Ops*/, 6, 3,  // Results = #7
/* 69811*/      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))
/* 69819*/    /*Scope*/ 45, /*->69865*/
/* 69820*/      OPC_CheckCondCode, ISD::SETLE,
/* 69822*/      OPC_MoveParent,
/* 69823*/      OPC_CheckType, MVT::i1,
/* 69825*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 69833*/      OPC_EmitNode1, TARGET_VAL(PPC::CRAND), 0,
                    MVT::i1, 2/*#Ops*/, 4, 2,  // Results = #5
/* 69841*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #6
/* 69849*/      OPC_EmitNode1, TARGET_VAL(PPC::CRAND), 0,
                    MVT::i1, 2/*#Ops*/, 6, 3,  // Results = #7
/* 69857*/      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))
/* 69865*/    /*Scope*/ 45, /*->69911*/
/* 69866*/      OPC_CheckCondCode, ISD::SETULE,
/* 69868*/      OPC_MoveParent,
/* 69869*/      OPC_CheckType, MVT::i1,
/* 69871*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #4
/* 69879*/      OPC_EmitNode1, TARGET_VAL(PPC::CRAND), 0,
                    MVT::i1, 2/*#Ops*/, 4, 2,  // Results = #5
/* 69887*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #6
/* 69895*/      OPC_EmitNode1, TARGET_VAL(PPC::CRAND), 0,
                    MVT::i1, 2/*#Ops*/, 6, 3,  // Results = #7
/* 69903*/      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))
/* 69911*/    /*Scope*/ 45, /*->69957*/
/* 69912*/      OPC_CheckCondCode, ISD::SETEQ,
/* 69914*/      OPC_MoveParent,
/* 69915*/      OPC_CheckType, MVT::i1,
/* 69917*/      OPC_EmitNode1, TARGET_VAL(PPC::CREQV), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 69925*/      OPC_EmitNode1, TARGET_VAL(PPC::CRAND), 0,
                    MVT::i1, 2/*#Ops*/, 4, 2,  // Results = #5
/* 69933*/      OPC_EmitNode1, TARGET_VAL(PPC::CRXOR), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #6
/* 69941*/      OPC_EmitNode1, TARGET_VAL(PPC::CRAND), 0,
                    MVT::i1, 2/*#Ops*/, 6, 3,  // Results = #7
/* 69949*/      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))
/* 69957*/    /*Scope*/ 45, /*->70003*/
/* 69958*/      OPC_CheckCondCode, ISD::SETGE,
/* 69960*/      OPC_MoveParent,
/* 69961*/      OPC_CheckType, MVT::i1,
/* 69963*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #4
/* 69971*/      OPC_EmitNode1, TARGET_VAL(PPC::CRAND), 0,
                    MVT::i1, 2/*#Ops*/, 4, 2,  // Results = #5
/* 69979*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #6
/* 69987*/      OPC_EmitNode1, TARGET_VAL(PPC::CRAND), 0,
                    MVT::i1, 2/*#Ops*/, 6, 3,  // Results = #7
/* 69995*/      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))
/* 70003*/    /*Scope*/ 45, /*->70049*/
/* 70004*/      OPC_CheckCondCode, ISD::SETUGE,
/* 70006*/      OPC_MoveParent,
/* 70007*/      OPC_CheckType, MVT::i1,
/* 70009*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 70017*/      OPC_EmitNode1, TARGET_VAL(PPC::CRAND), 0,
                    MVT::i1, 2/*#Ops*/, 4, 2,  // Results = #5
/* 70025*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #6
/* 70033*/      OPC_EmitNode1, TARGET_VAL(PPC::CRAND), 0,
                    MVT::i1, 2/*#Ops*/, 6, 3,  // Results = #7
/* 70041*/      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))
/* 70049*/    /*Scope*/ 45, /*->70095*/
/* 70050*/      OPC_CheckCondCode, ISD::SETGT,
/* 70052*/      OPC_MoveParent,
/* 70053*/      OPC_CheckType, MVT::i1,
/* 70055*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #4
/* 70063*/      OPC_EmitNode1, TARGET_VAL(PPC::CRAND), 0,
                    MVT::i1, 2/*#Ops*/, 4, 2,  // Results = #5
/* 70071*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #6
/* 70079*/      OPC_EmitNode1, TARGET_VAL(PPC::CRAND), 0,
                    MVT::i1, 2/*#Ops*/, 6, 3,  // Results = #7
/* 70087*/      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))
/* 70095*/    /*Scope*/ 45, /*->70141*/
/* 70096*/      OPC_CheckCondCode, ISD::SETUGT,
/* 70098*/      OPC_MoveParent,
/* 70099*/      OPC_CheckType, MVT::i1,
/* 70101*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 70109*/      OPC_EmitNode1, TARGET_VAL(PPC::CRAND), 0,
                    MVT::i1, 2/*#Ops*/, 4, 2,  // Results = #5
/* 70117*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #6
/* 70125*/      OPC_EmitNode1, TARGET_VAL(PPC::CRAND), 0,
                    MVT::i1, 2/*#Ops*/, 6, 3,  // Results = #7
/* 70133*/      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))
/* 70141*/    /*Scope*/ 45, /*->70187*/
/* 70142*/      OPC_CheckCondCode, ISD::SETNE,
/* 70144*/      OPC_MoveParent,
/* 70145*/      OPC_CheckType, MVT::i1,
/* 70147*/      OPC_EmitNode1, TARGET_VAL(PPC::CREQV), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 70155*/      OPC_EmitNode1, TARGET_VAL(PPC::CRAND), 0,
                    MVT::i1, 2/*#Ops*/, 4, 3,  // Results = #5
/* 70163*/      OPC_EmitNode1, TARGET_VAL(PPC::CRXOR), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #6
/* 70171*/      OPC_EmitNode1, TARGET_VAL(PPC::CRAND), 0,
                    MVT::i1, 2/*#Ops*/, 6, 2,  // Results = #7
/* 70179*/      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))
/* 70187*/    /*Scope*/ 22, /*->70210*/
/* 70188*/      OPC_CheckCondCode, ISD::SETLT,
/* 70190*/      OPC_MoveParent,
/* 70191*/      OPC_CheckType, MVT::i32,
/* 70193*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 70201*/      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)
/* 70210*/    /*Scope*/ 22, /*->70233*/
/* 70211*/      OPC_CheckCondCode, ISD::SETULT,
/* 70213*/      OPC_MoveParent,
/* 70214*/      OPC_CheckType, MVT::i32,
/* 70216*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #4
/* 70224*/      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)
/* 70233*/    /*Scope*/ 22, /*->70256*/
/* 70234*/      OPC_CheckCondCode, ISD::SETLE,
/* 70236*/      OPC_MoveParent,
/* 70237*/      OPC_CheckType, MVT::i32,
/* 70239*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 70247*/      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)
/* 70256*/    /*Scope*/ 22, /*->70279*/
/* 70257*/      OPC_CheckCondCode, ISD::SETULE,
/* 70259*/      OPC_MoveParent,
/* 70260*/      OPC_CheckType, MVT::i32,
/* 70262*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #4
/* 70270*/      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)
/* 70279*/    /*Scope*/ 22, /*->70302*/
/* 70280*/      OPC_CheckCondCode, ISD::SETEQ,
/* 70282*/      OPC_MoveParent,
/* 70283*/      OPC_CheckType, MVT::i32,
/* 70285*/      OPC_EmitNode1, TARGET_VAL(PPC::CREQV), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 70293*/      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)
/* 70302*/    /*Scope*/ 22, /*->70325*/
/* 70303*/      OPC_CheckCondCode, ISD::SETGE,
/* 70305*/      OPC_MoveParent,
/* 70306*/      OPC_CheckType, MVT::i32,
/* 70308*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #4
/* 70316*/      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)
/* 70325*/    /*Scope*/ 22, /*->70348*/
/* 70326*/      OPC_CheckCondCode, ISD::SETUGE,
/* 70328*/      OPC_MoveParent,
/* 70329*/      OPC_CheckType, MVT::i32,
/* 70331*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 70339*/      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)
/* 70348*/    /*Scope*/ 22, /*->70371*/
/* 70349*/      OPC_CheckCondCode, ISD::SETGT,
/* 70351*/      OPC_MoveParent,
/* 70352*/      OPC_CheckType, MVT::i32,
/* 70354*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #4
/* 70362*/      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)
/* 70371*/    /*Scope*/ 22, /*->70394*/
/* 70372*/      OPC_CheckCondCode, ISD::SETUGT,
/* 70374*/      OPC_MoveParent,
/* 70375*/      OPC_CheckType, MVT::i32,
/* 70377*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 70385*/      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)
/* 70394*/    /*Scope*/ 22, /*->70417*/
/* 70395*/      OPC_CheckCondCode, ISD::SETNE,
/* 70397*/      OPC_MoveParent,
/* 70398*/      OPC_CheckType, MVT::i32,
/* 70400*/      OPC_EmitNode1, TARGET_VAL(PPC::CRXOR), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 70408*/      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)
/* 70417*/    /*Scope*/ 22, /*->70440*/
/* 70418*/      OPC_CheckCondCode, ISD::SETLT,
/* 70420*/      OPC_MoveParent,
/* 70421*/      OPC_CheckType, MVT::i64,
/* 70423*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 70431*/      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)
/* 70440*/    /*Scope*/ 22, /*->70463*/
/* 70441*/      OPC_CheckCondCode, ISD::SETULT,
/* 70443*/      OPC_MoveParent,
/* 70444*/      OPC_CheckType, MVT::i64,
/* 70446*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #4
/* 70454*/      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)
/* 70463*/    /*Scope*/ 22, /*->70486*/
/* 70464*/      OPC_CheckCondCode, ISD::SETLE,
/* 70466*/      OPC_MoveParent,
/* 70467*/      OPC_CheckType, MVT::i64,
/* 70469*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 70477*/      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)
/* 70486*/    /*Scope*/ 22, /*->70509*/
/* 70487*/      OPC_CheckCondCode, ISD::SETULE,
/* 70489*/      OPC_MoveParent,
/* 70490*/      OPC_CheckType, MVT::i64,
/* 70492*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #4
/* 70500*/      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)
/* 70509*/    /*Scope*/ 22, /*->70532*/
/* 70510*/      OPC_CheckCondCode, ISD::SETEQ,
/* 70512*/      OPC_MoveParent,
/* 70513*/      OPC_CheckType, MVT::i64,
/* 70515*/      OPC_EmitNode1, TARGET_VAL(PPC::CREQV), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 70523*/      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)
/* 70532*/    /*Scope*/ 22, /*->70555*/
/* 70533*/      OPC_CheckCondCode, ISD::SETGE,
/* 70535*/      OPC_MoveParent,
/* 70536*/      OPC_CheckType, MVT::i64,
/* 70538*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #4
/* 70546*/      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)
/* 70555*/    /*Scope*/ 22, /*->70578*/
/* 70556*/      OPC_CheckCondCode, ISD::SETUGE,
/* 70558*/      OPC_MoveParent,
/* 70559*/      OPC_CheckType, MVT::i64,
/* 70561*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 70569*/      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)
/* 70578*/    /*Scope*/ 22, /*->70601*/
/* 70579*/      OPC_CheckCondCode, ISD::SETGT,
/* 70581*/      OPC_MoveParent,
/* 70582*/      OPC_CheckType, MVT::i64,
/* 70584*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #4
/* 70592*/      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)
/* 70601*/    /*Scope*/ 22, /*->70624*/
/* 70602*/      OPC_CheckCondCode, ISD::SETUGT,
/* 70604*/      OPC_MoveParent,
/* 70605*/      OPC_CheckType, MVT::i64,
/* 70607*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 70615*/      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)
/* 70624*/    /*Scope*/ 22, /*->70647*/
/* 70625*/      OPC_CheckCondCode, ISD::SETNE,
/* 70627*/      OPC_MoveParent,
/* 70628*/      OPC_CheckType, MVT::i64,
/* 70630*/      OPC_EmitNode1, TARGET_VAL(PPC::CRXOR), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 70638*/      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)
/* 70647*/    /*Scope*/ 24, /*->70672*/
/* 70648*/      OPC_CheckCondCode, ISD::SETLT,
/* 70650*/      OPC_MoveParent,
/* 70651*/      OPC_CheckType, MVT::f64,
/* 70653*/      OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 70655*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 70663*/      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)
/* 70672*/    /*Scope*/ 24, /*->70697*/
/* 70673*/      OPC_CheckCondCode, ISD::SETULT,
/* 70675*/      OPC_MoveParent,
/* 70676*/      OPC_CheckType, MVT::f64,
/* 70678*/      OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 70680*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #4
/* 70688*/      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)
/* 70697*/    /*Scope*/ 24, /*->70722*/
/* 70698*/      OPC_CheckCondCode, ISD::SETLE,
/* 70700*/      OPC_MoveParent,
/* 70701*/      OPC_CheckType, MVT::f64,
/* 70703*/      OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 70705*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 70713*/      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)
/* 70722*/    /*Scope*/ 24, /*->70747*/
/* 70723*/      OPC_CheckCondCode, ISD::SETULE,
/* 70725*/      OPC_MoveParent,
/* 70726*/      OPC_CheckType, MVT::f64,
/* 70728*/      OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 70730*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #4
/* 70738*/      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)
/* 70747*/    /*Scope*/ 24, /*->70772*/
/* 70748*/      OPC_CheckCondCode, ISD::SETEQ,
/* 70750*/      OPC_MoveParent,
/* 70751*/      OPC_CheckType, MVT::f64,
/* 70753*/      OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 70755*/      OPC_EmitNode1, TARGET_VAL(PPC::CREQV), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 70763*/      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)
/* 70772*/    /*Scope*/ 24, /*->70797*/
/* 70773*/      OPC_CheckCondCode, ISD::SETGE,
/* 70775*/      OPC_MoveParent,
/* 70776*/      OPC_CheckType, MVT::f64,
/* 70778*/      OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 70780*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #4
/* 70788*/      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)
/* 70797*/    /*Scope*/ 24, /*->70822*/
/* 70798*/      OPC_CheckCondCode, ISD::SETUGE,
/* 70800*/      OPC_MoveParent,
/* 70801*/      OPC_CheckType, MVT::f64,
/* 70803*/      OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 70805*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 70813*/      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)
/* 70822*/    /*Scope*/ 24, /*->70847*/
/* 70823*/      OPC_CheckCondCode, ISD::SETGT,
/* 70825*/      OPC_MoveParent,
/* 70826*/      OPC_CheckType, MVT::f64,
/* 70828*/      OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 70830*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #4
/* 70838*/      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)
/* 70847*/    /*Scope*/ 24, /*->70872*/
/* 70848*/      OPC_CheckCondCode, ISD::SETUGT,
/* 70850*/      OPC_MoveParent,
/* 70851*/      OPC_CheckType, MVT::f64,
/* 70853*/      OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 70855*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 70863*/      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)
/* 70872*/    /*Scope*/ 24, /*->70897*/
/* 70873*/      OPC_CheckCondCode, ISD::SETNE,
/* 70875*/      OPC_MoveParent,
/* 70876*/      OPC_CheckType, MVT::f64,
/* 70878*/      OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 70880*/      OPC_EmitNode1, TARGET_VAL(PPC::CRXOR), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 70888*/      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)
/* 70897*/    /*Scope*/ 24, /*->70922*/
/* 70898*/      OPC_CheckCondCode, ISD::SETLT,
/* 70900*/      OPC_MoveParent,
/* 70901*/      OPC_CheckType, MVT::f32,
/* 70903*/      OPC_CheckPatternPredicate, 10, // (PPCSubTarget->hasP8Vector())
/* 70905*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 70913*/      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)
/* 70922*/    /*Scope*/ 24, /*->70947*/
/* 70923*/      OPC_CheckCondCode, ISD::SETULT,
/* 70925*/      OPC_MoveParent,
/* 70926*/      OPC_CheckType, MVT::f32,
/* 70928*/      OPC_CheckPatternPredicate, 10, // (PPCSubTarget->hasP8Vector())
/* 70930*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #4
/* 70938*/      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)
/* 70947*/    /*Scope*/ 24, /*->70972*/
/* 70948*/      OPC_CheckCondCode, ISD::SETLE,
/* 70950*/      OPC_MoveParent,
/* 70951*/      OPC_CheckType, MVT::f32,
/* 70953*/      OPC_CheckPatternPredicate, 10, // (PPCSubTarget->hasP8Vector())
/* 70955*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 70963*/      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)
/* 70972*/    /*Scope*/ 24, /*->70997*/
/* 70973*/      OPC_CheckCondCode, ISD::SETULE,
/* 70975*/      OPC_MoveParent,
/* 70976*/      OPC_CheckType, MVT::f32,
/* 70978*/      OPC_CheckPatternPredicate, 10, // (PPCSubTarget->hasP8Vector())
/* 70980*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #4
/* 70988*/      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)
/* 70997*/    /*Scope*/ 24, /*->71022*/
/* 70998*/      OPC_CheckCondCode, ISD::SETEQ,
/* 71000*/      OPC_MoveParent,
/* 71001*/      OPC_CheckType, MVT::f32,
/* 71003*/      OPC_CheckPatternPredicate, 10, // (PPCSubTarget->hasP8Vector())
/* 71005*/      OPC_EmitNode1, TARGET_VAL(PPC::CREQV), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 71013*/      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)
/* 71022*/    /*Scope*/ 24, /*->71047*/
/* 71023*/      OPC_CheckCondCode, ISD::SETGE,
/* 71025*/      OPC_MoveParent,
/* 71026*/      OPC_CheckType, MVT::f32,
/* 71028*/      OPC_CheckPatternPredicate, 10, // (PPCSubTarget->hasP8Vector())
/* 71030*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #4
/* 71038*/      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)
/* 71047*/    /*Scope*/ 24, /*->71072*/
/* 71048*/      OPC_CheckCondCode, ISD::SETUGE,
/* 71050*/      OPC_MoveParent,
/* 71051*/      OPC_CheckType, MVT::f32,
/* 71053*/      OPC_CheckPatternPredicate, 10, // (PPCSubTarget->hasP8Vector())
/* 71055*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 71063*/      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)
/* 71072*/    /*Scope*/ 24, /*->71097*/
/* 71073*/      OPC_CheckCondCode, ISD::SETGT,
/* 71075*/      OPC_MoveParent,
/* 71076*/      OPC_CheckType, MVT::f32,
/* 71078*/      OPC_CheckPatternPredicate, 10, // (PPCSubTarget->hasP8Vector())
/* 71080*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #4
/* 71088*/      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)
/* 71097*/    /*Scope*/ 24, /*->71122*/
/* 71098*/      OPC_CheckCondCode, ISD::SETUGT,
/* 71100*/      OPC_MoveParent,
/* 71101*/      OPC_CheckType, MVT::f32,
/* 71103*/      OPC_CheckPatternPredicate, 10, // (PPCSubTarget->hasP8Vector())
/* 71105*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 71113*/      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)
/* 71122*/    /*Scope*/ 24, /*->71147*/
/* 71123*/      OPC_CheckCondCode, ISD::SETNE,
/* 71125*/      OPC_MoveParent,
/* 71126*/      OPC_CheckType, MVT::f32,
/* 71128*/      OPC_CheckPatternPredicate, 10, // (PPCSubTarget->hasP8Vector())
/* 71130*/      OPC_EmitNode1, TARGET_VAL(PPC::CRXOR), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 71138*/      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)
/* 71147*/    /*Scope*/ 24, /*->71172*/
/* 71148*/      OPC_CheckCondCode, ISD::SETLT,
/* 71150*/      OPC_MoveParent,
/* 71151*/      OPC_CheckType, MVT::f32,
/* 71153*/      OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 71155*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 71163*/      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)
/* 71172*/    /*Scope*/ 24, /*->71197*/
/* 71173*/      OPC_CheckCondCode, ISD::SETULT,
/* 71175*/      OPC_MoveParent,
/* 71176*/      OPC_CheckType, MVT::f32,
/* 71178*/      OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 71180*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #4
/* 71188*/      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)
/* 71197*/    /*Scope*/ 24, /*->71222*/
/* 71198*/      OPC_CheckCondCode, ISD::SETLE,
/* 71200*/      OPC_MoveParent,
/* 71201*/      OPC_CheckType, MVT::f32,
/* 71203*/      OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 71205*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 71213*/      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)
/* 71222*/    /*Scope*/ 24, /*->71247*/
/* 71223*/      OPC_CheckCondCode, ISD::SETULE,
/* 71225*/      OPC_MoveParent,
/* 71226*/      OPC_CheckType, MVT::f32,
/* 71228*/      OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 71230*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #4
/* 71238*/      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)
/* 71247*/    /*Scope*/ 24, /*->71272*/
/* 71248*/      OPC_CheckCondCode, ISD::SETEQ,
/* 71250*/      OPC_MoveParent,
/* 71251*/      OPC_CheckType, MVT::f32,
/* 71253*/      OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 71255*/      OPC_EmitNode1, TARGET_VAL(PPC::CREQV), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 71263*/      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)
/* 71272*/    /*Scope*/ 24, /*->71297*/
/* 71273*/      OPC_CheckCondCode, ISD::SETGE,
/* 71275*/      OPC_MoveParent,
/* 71276*/      OPC_CheckType, MVT::f32,
/* 71278*/      OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 71280*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #4
/* 71288*/      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)
/* 71297*/    /*Scope*/ 24, /*->71322*/
/* 71298*/      OPC_CheckCondCode, ISD::SETUGE,
/* 71300*/      OPC_MoveParent,
/* 71301*/      OPC_CheckType, MVT::f32,
/* 71303*/      OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 71305*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 71313*/      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)
/* 71322*/    /*Scope*/ 24, /*->71347*/
/* 71323*/      OPC_CheckCondCode, ISD::SETGT,
/* 71325*/      OPC_MoveParent,
/* 71326*/      OPC_CheckType, MVT::f32,
/* 71328*/      OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 71330*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #4
/* 71338*/      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)
/* 71347*/    /*Scope*/ 24, /*->71372*/
/* 71348*/      OPC_CheckCondCode, ISD::SETUGT,
/* 71350*/      OPC_MoveParent,
/* 71351*/      OPC_CheckType, MVT::f32,
/* 71353*/      OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 71355*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 71363*/      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)
/* 71372*/    /*Scope*/ 24, /*->71397*/
/* 71373*/      OPC_CheckCondCode, ISD::SETNE,
/* 71375*/      OPC_MoveParent,
/* 71376*/      OPC_CheckType, MVT::f32,
/* 71378*/      OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 71380*/      OPC_EmitNode1, TARGET_VAL(PPC::CRXOR), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 71388*/      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)
/* 71397*/    /*Scope*/ 24, /*->71422*/
/* 71398*/      OPC_CheckCondCode, ISD::SETLT,
/* 71400*/      OPC_MoveParent,
/* 71401*/      OPC_CheckType, MVT::f64,
/* 71403*/      OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 71405*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 71413*/      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)
/* 71422*/    /*Scope*/ 24, /*->71447*/
/* 71423*/      OPC_CheckCondCode, ISD::SETULT,
/* 71425*/      OPC_MoveParent,
/* 71426*/      OPC_CheckType, MVT::f64,
/* 71428*/      OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 71430*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #4
/* 71438*/      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)
/* 71447*/    /*Scope*/ 24, /*->71472*/
/* 71448*/      OPC_CheckCondCode, ISD::SETLE,
/* 71450*/      OPC_MoveParent,
/* 71451*/      OPC_CheckType, MVT::f64,
/* 71453*/      OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 71455*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 71463*/      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)
/* 71472*/    /*Scope*/ 24, /*->71497*/
/* 71473*/      OPC_CheckCondCode, ISD::SETULE,
/* 71475*/      OPC_MoveParent,
/* 71476*/      OPC_CheckType, MVT::f64,
/* 71478*/      OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 71480*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #4
/* 71488*/      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)
/* 71497*/    /*Scope*/ 24, /*->71522*/
/* 71498*/      OPC_CheckCondCode, ISD::SETEQ,
/* 71500*/      OPC_MoveParent,
/* 71501*/      OPC_CheckType, MVT::f64,
/* 71503*/      OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 71505*/      OPC_EmitNode1, TARGET_VAL(PPC::CREQV), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 71513*/      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)
/* 71522*/    /*Scope*/ 24, /*->71547*/
/* 71523*/      OPC_CheckCondCode, ISD::SETGE,
/* 71525*/      OPC_MoveParent,
/* 71526*/      OPC_CheckType, MVT::f64,
/* 71528*/      OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 71530*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #4
/* 71538*/      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)
/* 71547*/    /*Scope*/ 24, /*->71572*/
/* 71548*/      OPC_CheckCondCode, ISD::SETUGE,
/* 71550*/      OPC_MoveParent,
/* 71551*/      OPC_CheckType, MVT::f64,
/* 71553*/      OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 71555*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 71563*/      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)
/* 71572*/    /*Scope*/ 24, /*->71597*/
/* 71573*/      OPC_CheckCondCode, ISD::SETGT,
/* 71575*/      OPC_MoveParent,
/* 71576*/      OPC_CheckType, MVT::f64,
/* 71578*/      OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 71580*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #4
/* 71588*/      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)
/* 71597*/    /*Scope*/ 24, /*->71622*/
/* 71598*/      OPC_CheckCondCode, ISD::SETUGT,
/* 71600*/      OPC_MoveParent,
/* 71601*/      OPC_CheckType, MVT::f64,
/* 71603*/      OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 71605*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 71613*/      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)
/* 71622*/    /*Scope*/ 24, /*->71647*/
/* 71623*/      OPC_CheckCondCode, ISD::SETNE,
/* 71625*/      OPC_MoveParent,
/* 71626*/      OPC_CheckType, MVT::f64,
/* 71628*/      OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 71630*/      OPC_EmitNode1, TARGET_VAL(PPC::CRXOR), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 71638*/      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)
/* 71647*/    /*Scope*/ 24, /*->71672*/
/* 71648*/      OPC_CheckCondCode, ISD::SETLT,
/* 71650*/      OPC_MoveParent,
/* 71651*/      OPC_CheckType, MVT::f32,
/* 71653*/      OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 71655*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 71663*/      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)
/* 71672*/    /*Scope*/ 24, /*->71697*/
/* 71673*/      OPC_CheckCondCode, ISD::SETULT,
/* 71675*/      OPC_MoveParent,
/* 71676*/      OPC_CheckType, MVT::f32,
/* 71678*/      OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 71680*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #4
/* 71688*/      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)
/* 71697*/    /*Scope*/ 24, /*->71722*/
/* 71698*/      OPC_CheckCondCode, ISD::SETLE,
/* 71700*/      OPC_MoveParent,
/* 71701*/      OPC_CheckType, MVT::f32,
/* 71703*/      OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 71705*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 71713*/      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)
/* 71722*/    /*Scope*/ 24, /*->71747*/
/* 71723*/      OPC_CheckCondCode, ISD::SETULE,
/* 71725*/      OPC_MoveParent,
/* 71726*/      OPC_CheckType, MVT::f32,
/* 71728*/      OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 71730*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #4
/* 71738*/      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)
/* 71747*/    /*Scope*/ 24, /*->71772*/
/* 71748*/      OPC_CheckCondCode, ISD::SETEQ,
/* 71750*/      OPC_MoveParent,
/* 71751*/      OPC_CheckType, MVT::f32,
/* 71753*/      OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 71755*/      OPC_EmitNode1, TARGET_VAL(PPC::CREQV), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 71763*/      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)
/* 71772*/    /*Scope*/ 24, /*->71797*/
/* 71773*/      OPC_CheckCondCode, ISD::SETGE,
/* 71775*/      OPC_MoveParent,
/* 71776*/      OPC_CheckType, MVT::f32,
/* 71778*/      OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 71780*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #4
/* 71788*/      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)
/* 71797*/    /*Scope*/ 24, /*->71822*/
/* 71798*/      OPC_CheckCondCode, ISD::SETUGE,
/* 71800*/      OPC_MoveParent,
/* 71801*/      OPC_CheckType, MVT::f32,
/* 71803*/      OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 71805*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 71813*/      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)
/* 71822*/    /*Scope*/ 24, /*->71847*/
/* 71823*/      OPC_CheckCondCode, ISD::SETGT,
/* 71825*/      OPC_MoveParent,
/* 71826*/      OPC_CheckType, MVT::f32,
/* 71828*/      OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 71830*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #4
/* 71838*/      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)
/* 71847*/    /*Scope*/ 24, /*->71872*/
/* 71848*/      OPC_CheckCondCode, ISD::SETUGT,
/* 71850*/      OPC_MoveParent,
/* 71851*/      OPC_CheckType, MVT::f32,
/* 71853*/      OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 71855*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 71863*/      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)
/* 71872*/    /*Scope*/ 24, /*->71897*/
/* 71873*/      OPC_CheckCondCode, ISD::SETNE,
/* 71875*/      OPC_MoveParent,
/* 71876*/      OPC_CheckType, MVT::f32,
/* 71878*/      OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 71880*/      OPC_EmitNode1, TARGET_VAL(PPC::CRXOR), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 71888*/      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)
/* 71897*/    /*Scope*/ 24, /*->71922*/
/* 71898*/      OPC_CheckCondCode, ISD::SETLT,
/* 71900*/      OPC_MoveParent,
/* 71901*/      OPC_CheckType, MVT::f64,
/* 71903*/      OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 71905*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 71913*/      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)
/* 71922*/    /*Scope*/ 24, /*->71947*/
/* 71923*/      OPC_CheckCondCode, ISD::SETULT,
/* 71925*/      OPC_MoveParent,
/* 71926*/      OPC_CheckType, MVT::f64,
/* 71928*/      OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 71930*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #4
/* 71938*/      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)
/* 71947*/    /*Scope*/ 24, /*->71972*/
/* 71948*/      OPC_CheckCondCode, ISD::SETLE,
/* 71950*/      OPC_MoveParent,
/* 71951*/      OPC_CheckType, MVT::f64,
/* 71953*/      OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 71955*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 71963*/      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)
/* 71972*/    /*Scope*/ 24, /*->71997*/
/* 71973*/      OPC_CheckCondCode, ISD::SETULE,
/* 71975*/      OPC_MoveParent,
/* 71976*/      OPC_CheckType, MVT::f64,
/* 71978*/      OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 71980*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #4
/* 71988*/      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)
/* 71997*/    /*Scope*/ 24, /*->72022*/
/* 71998*/      OPC_CheckCondCode, ISD::SETEQ,
/* 72000*/      OPC_MoveParent,
/* 72001*/      OPC_CheckType, MVT::f64,
/* 72003*/      OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 72005*/      OPC_EmitNode1, TARGET_VAL(PPC::CREQV), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 72013*/      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)
/* 72022*/    /*Scope*/ 24, /*->72047*/
/* 72023*/      OPC_CheckCondCode, ISD::SETGE,
/* 72025*/      OPC_MoveParent,
/* 72026*/      OPC_CheckType, MVT::f64,
/* 72028*/      OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 72030*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #4
/* 72038*/      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)
/* 72047*/    /*Scope*/ 24, /*->72072*/
/* 72048*/      OPC_CheckCondCode, ISD::SETUGE,
/* 72050*/      OPC_MoveParent,
/* 72051*/      OPC_CheckType, MVT::f64,
/* 72053*/      OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 72055*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 72063*/      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)
/* 72072*/    /*Scope*/ 24, /*->72097*/
/* 72073*/      OPC_CheckCondCode, ISD::SETGT,
/* 72075*/      OPC_MoveParent,
/* 72076*/      OPC_CheckType, MVT::f64,
/* 72078*/      OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 72080*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #4
/* 72088*/      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)
/* 72097*/    /*Scope*/ 24, /*->72122*/
/* 72098*/      OPC_CheckCondCode, ISD::SETUGT,
/* 72100*/      OPC_MoveParent,
/* 72101*/      OPC_CheckType, MVT::f64,
/* 72103*/      OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 72105*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 72113*/      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)
/* 72122*/    /*Scope*/ 24, /*->72147*/
/* 72123*/      OPC_CheckCondCode, ISD::SETNE,
/* 72125*/      OPC_MoveParent,
/* 72126*/      OPC_CheckType, MVT::f64,
/* 72128*/      OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 72130*/      OPC_EmitNode1, TARGET_VAL(PPC::CRXOR), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 72138*/      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)
/* 72147*/    /*Scope*/ 22, /*->72170*/
/* 72148*/      OPC_CheckCondCode, ISD::SETLT,
/* 72150*/      OPC_MoveParent,
/* 72151*/      OPC_CheckType, MVT::f128,
/* 72153*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 72161*/      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)
/* 72170*/    /*Scope*/ 22, /*->72193*/
/* 72171*/      OPC_CheckCondCode, ISD::SETULT,
/* 72173*/      OPC_MoveParent,
/* 72174*/      OPC_CheckType, MVT::f128,
/* 72176*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #4
/* 72184*/      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)
/* 72193*/    /*Scope*/ 22, /*->72216*/
/* 72194*/      OPC_CheckCondCode, ISD::SETLE,
/* 72196*/      OPC_MoveParent,
/* 72197*/      OPC_CheckType, MVT::f128,
/* 72199*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 72207*/      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)
/* 72216*/    /*Scope*/ 22, /*->72239*/
/* 72217*/      OPC_CheckCondCode, ISD::SETULE,
/* 72219*/      OPC_MoveParent,
/* 72220*/      OPC_CheckType, MVT::f128,
/* 72222*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #4
/* 72230*/      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)
/* 72239*/    /*Scope*/ 22, /*->72262*/
/* 72240*/      OPC_CheckCondCode, ISD::SETEQ,
/* 72242*/      OPC_MoveParent,
/* 72243*/      OPC_CheckType, MVT::f128,
/* 72245*/      OPC_EmitNode1, TARGET_VAL(PPC::CREQV), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 72253*/      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)
/* 72262*/    /*Scope*/ 22, /*->72285*/
/* 72263*/      OPC_CheckCondCode, ISD::SETGE,
/* 72265*/      OPC_MoveParent,
/* 72266*/      OPC_CheckType, MVT::f128,
/* 72268*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #4
/* 72276*/      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)
/* 72285*/    /*Scope*/ 22, /*->72308*/
/* 72286*/      OPC_CheckCondCode, ISD::SETUGE,
/* 72288*/      OPC_MoveParent,
/* 72289*/      OPC_CheckType, MVT::f128,
/* 72291*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 72299*/      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)
/* 72308*/    /*Scope*/ 22, /*->72331*/
/* 72309*/      OPC_CheckCondCode, ISD::SETGT,
/* 72311*/      OPC_MoveParent,
/* 72312*/      OPC_CheckType, MVT::f128,
/* 72314*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #4
/* 72322*/      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)
/* 72331*/    /*Scope*/ 22, /*->72354*/
/* 72332*/      OPC_CheckCondCode, ISD::SETUGT,
/* 72334*/      OPC_MoveParent,
/* 72335*/      OPC_CheckType, MVT::f128,
/* 72337*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 72345*/      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)
/* 72354*/    /*Scope*/ 22, /*->72377*/
/* 72355*/      OPC_CheckCondCode, ISD::SETNE,
/* 72357*/      OPC_MoveParent,
/* 72358*/      OPC_CheckType, MVT::f128,
/* 72360*/      OPC_EmitNode1, TARGET_VAL(PPC::CRXOR), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 72368*/      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)
/* 72377*/    /*Scope*/ 24, /*->72402*/
/* 72378*/      OPC_CheckCondCode, ISD::SETLT,
/* 72380*/      OPC_MoveParent,
/* 72381*/      OPC_CheckType, MVT::v4i1,
/* 72383*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 72385*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 72393*/      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)
/* 72402*/    /*Scope*/ 24, /*->72427*/
/* 72403*/      OPC_CheckCondCode, ISD::SETULT,
/* 72405*/      OPC_MoveParent,
/* 72406*/      OPC_CheckType, MVT::v4i1,
/* 72408*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 72410*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #4
/* 72418*/      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)
/* 72427*/    /*Scope*/ 24, /*->72452*/
/* 72428*/      OPC_CheckCondCode, ISD::SETLE,
/* 72430*/      OPC_MoveParent,
/* 72431*/      OPC_CheckType, MVT::v4i1,
/* 72433*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 72435*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 72443*/      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)
/* 72452*/    /*Scope*/ 24, /*->72477*/
/* 72453*/      OPC_CheckCondCode, ISD::SETULE,
/* 72455*/      OPC_MoveParent,
/* 72456*/      OPC_CheckType, MVT::v4i1,
/* 72458*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 72460*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #4
/* 72468*/      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)
/* 72477*/    /*Scope*/ 24, /*->72502*/
/* 72478*/      OPC_CheckCondCode, ISD::SETEQ,
/* 72480*/      OPC_MoveParent,
/* 72481*/      OPC_CheckType, MVT::v4i1,
/* 72483*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 72485*/      OPC_EmitNode1, TARGET_VAL(PPC::CREQV), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 72493*/      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)
/* 72502*/    /*Scope*/ 24, /*->72527*/
/* 72503*/      OPC_CheckCondCode, ISD::SETGE,
/* 72505*/      OPC_MoveParent,
/* 72506*/      OPC_CheckType, MVT::v4i1,
/* 72508*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 72510*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #4
/* 72518*/      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)
/* 72527*/    /*Scope*/ 24, /*->72552*/
/* 72528*/      OPC_CheckCondCode, ISD::SETUGE,
/* 72530*/      OPC_MoveParent,
/* 72531*/      OPC_CheckType, MVT::v4i1,
/* 72533*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 72535*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 72543*/      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)
/* 72552*/    /*Scope*/ 24, /*->72577*/
/* 72553*/      OPC_CheckCondCode, ISD::SETGT,
/* 72555*/      OPC_MoveParent,
/* 72556*/      OPC_CheckType, MVT::v4i1,
/* 72558*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 72560*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #4
/* 72568*/      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)
/* 72577*/    /*Scope*/ 24, /*->72602*/
/* 72578*/      OPC_CheckCondCode, ISD::SETUGT,
/* 72580*/      OPC_MoveParent,
/* 72581*/      OPC_CheckType, MVT::v4i1,
/* 72583*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 72585*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 72593*/      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)
/* 72602*/    /*Scope*/ 24, /*->72627*/
/* 72603*/      OPC_CheckCondCode, ISD::SETNE,
/* 72605*/      OPC_MoveParent,
/* 72606*/      OPC_CheckType, MVT::v4i1,
/* 72608*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 72610*/      OPC_EmitNode1, TARGET_VAL(PPC::CRXOR), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 72618*/      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)
/* 72627*/    /*Scope*/ 22, /*->72650*/
/* 72628*/      OPC_CheckCondCode, ISD::SETLT,
/* 72630*/      OPC_MoveParent,
/* 72631*/      OPC_CheckType, MVT::v4i32,
/* 72633*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 72641*/      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)
/* 72650*/    /*Scope*/ 22, /*->72673*/
/* 72651*/      OPC_CheckCondCode, ISD::SETULT,
/* 72653*/      OPC_MoveParent,
/* 72654*/      OPC_CheckType, MVT::v4i32,
/* 72656*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #4
/* 72664*/      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)
/* 72673*/    /*Scope*/ 22, /*->72696*/
/* 72674*/      OPC_CheckCondCode, ISD::SETLE,
/* 72676*/      OPC_MoveParent,
/* 72677*/      OPC_CheckType, MVT::v4i32,
/* 72679*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 72687*/      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)
/* 72696*/    /*Scope*/ 22, /*->72719*/
/* 72697*/      OPC_CheckCondCode, ISD::SETULE,
/* 72699*/      OPC_MoveParent,
/* 72700*/      OPC_CheckType, MVT::v4i32,
/* 72702*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #4
/* 72710*/      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)
/* 72719*/    /*Scope*/ 22, /*->72742*/
/* 72720*/      OPC_CheckCondCode, ISD::SETEQ,
/* 72722*/      OPC_MoveParent,
/* 72723*/      OPC_CheckType, MVT::v4i32,
/* 72725*/      OPC_EmitNode1, TARGET_VAL(PPC::CREQV), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 72733*/      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)
/* 72742*/    /*Scope*/ 22, /*->72765*/
/* 72743*/      OPC_CheckCondCode, ISD::SETGE,
/* 72745*/      OPC_MoveParent,
/* 72746*/      OPC_CheckType, MVT::v4i32,
/* 72748*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #4
/* 72756*/      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)
/* 72765*/    /*Scope*/ 22, /*->72788*/
/* 72766*/      OPC_CheckCondCode, ISD::SETUGE,
/* 72768*/      OPC_MoveParent,
/* 72769*/      OPC_CheckType, MVT::v4i32,
/* 72771*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 72779*/      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)
/* 72788*/    /*Scope*/ 22, /*->72811*/
/* 72789*/      OPC_CheckCondCode, ISD::SETGT,
/* 72791*/      OPC_MoveParent,
/* 72792*/      OPC_CheckType, MVT::v4i32,
/* 72794*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #4
/* 72802*/      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)
/* 72811*/    /*Scope*/ 22, /*->72834*/
/* 72812*/      OPC_CheckCondCode, ISD::SETUGT,
/* 72814*/      OPC_MoveParent,
/* 72815*/      OPC_CheckType, MVT::v4i32,
/* 72817*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 72825*/      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)
/* 72834*/    /*Scope*/ 22, /*->72857*/
/* 72835*/      OPC_CheckCondCode, ISD::SETNE,
/* 72837*/      OPC_MoveParent,
/* 72838*/      OPC_CheckType, MVT::v4i32,
/* 72840*/      OPC_EmitNode1, TARGET_VAL(PPC::CRXOR), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 72848*/      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)
/* 72857*/    /*Scope*/ 24, /*->72882*/
/* 72858*/      OPC_CheckCondCode, ISD::SETLT,
/* 72860*/      OPC_MoveParent,
/* 72861*/      OPC_CheckType, MVT::v2f64,
/* 72863*/      OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 72865*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 72873*/      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)
/* 72882*/    /*Scope*/ 24, /*->72907*/
/* 72883*/      OPC_CheckCondCode, ISD::SETULT,
/* 72885*/      OPC_MoveParent,
/* 72886*/      OPC_CheckType, MVT::v2f64,
/* 72888*/      OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 72890*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #4
/* 72898*/      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)
/* 72907*/    /*Scope*/ 24, /*->72932*/
/* 72908*/      OPC_CheckCondCode, ISD::SETLE,
/* 72910*/      OPC_MoveParent,
/* 72911*/      OPC_CheckType, MVT::v2f64,
/* 72913*/      OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 72915*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 72923*/      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)
/* 72932*/    /*Scope*/ 24, /*->72957*/
/* 72933*/      OPC_CheckCondCode, ISD::SETULE,
/* 72935*/      OPC_MoveParent,
/* 72936*/      OPC_CheckType, MVT::v2f64,
/* 72938*/      OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 72940*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #4
/* 72948*/      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)
/* 72957*/    /*Scope*/ 24, /*->72982*/
/* 72958*/      OPC_CheckCondCode, ISD::SETEQ,
/* 72960*/      OPC_MoveParent,
/* 72961*/      OPC_CheckType, MVT::v2f64,
/* 72963*/      OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 72965*/      OPC_EmitNode1, TARGET_VAL(PPC::CREQV), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 72973*/      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)
/* 72982*/    /*Scope*/ 24, /*->73007*/
/* 72983*/      OPC_CheckCondCode, ISD::SETGE,
/* 72985*/      OPC_MoveParent,
/* 72986*/      OPC_CheckType, MVT::v2f64,
/* 72988*/      OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 72990*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #4
/* 72998*/      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)
/* 73007*/    /*Scope*/ 24, /*->73032*/
/* 73008*/      OPC_CheckCondCode, ISD::SETUGE,
/* 73010*/      OPC_MoveParent,
/* 73011*/      OPC_CheckType, MVT::v2f64,
/* 73013*/      OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 73015*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 73023*/      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)
/* 73032*/    /*Scope*/ 24, /*->73057*/
/* 73033*/      OPC_CheckCondCode, ISD::SETGT,
/* 73035*/      OPC_MoveParent,
/* 73036*/      OPC_CheckType, MVT::v2f64,
/* 73038*/      OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 73040*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #4
/* 73048*/      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)
/* 73057*/    /*Scope*/ 24, /*->73082*/
/* 73058*/      OPC_CheckCondCode, ISD::SETUGT,
/* 73060*/      OPC_MoveParent,
/* 73061*/      OPC_CheckType, MVT::v2f64,
/* 73063*/      OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 73065*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 73073*/      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)
/* 73082*/    /*Scope*/ 24, /*->73107*/
/* 73083*/      OPC_CheckCondCode, ISD::SETNE,
/* 73085*/      OPC_MoveParent,
/* 73086*/      OPC_CheckType, MVT::v2f64,
/* 73088*/      OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 73090*/      OPC_EmitNode1, TARGET_VAL(PPC::CRXOR), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 73098*/      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)
/* 73107*/    /*Scope*/ 24, /*->73132*/
/* 73108*/      OPC_CheckCondCode, ISD::SETLT,
/* 73110*/      OPC_MoveParent,
/* 73111*/      OPC_CheckType, MVT::v4f64,
/* 73113*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 73115*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 73123*/      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)
/* 73132*/    /*Scope*/ 24, /*->73157*/
/* 73133*/      OPC_CheckCondCode, ISD::SETULT,
/* 73135*/      OPC_MoveParent,
/* 73136*/      OPC_CheckType, MVT::v4f64,
/* 73138*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 73140*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #4
/* 73148*/      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)
/* 73157*/    /*Scope*/ 24, /*->73182*/
/* 73158*/      OPC_CheckCondCode, ISD::SETLE,
/* 73160*/      OPC_MoveParent,
/* 73161*/      OPC_CheckType, MVT::v4f64,
/* 73163*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 73165*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 73173*/      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)
/* 73182*/    /*Scope*/ 24, /*->73207*/
/* 73183*/      OPC_CheckCondCode, ISD::SETULE,
/* 73185*/      OPC_MoveParent,
/* 73186*/      OPC_CheckType, MVT::v4f64,
/* 73188*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 73190*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #4
/* 73198*/      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)
/* 73207*/    /*Scope*/ 24, /*->73232*/
/* 73208*/      OPC_CheckCondCode, ISD::SETEQ,
/* 73210*/      OPC_MoveParent,
/* 73211*/      OPC_CheckType, MVT::v4f64,
/* 73213*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 73215*/      OPC_EmitNode1, TARGET_VAL(PPC::CREQV), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 73223*/      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)
/* 73232*/    /*Scope*/ 24, /*->73257*/
/* 73233*/      OPC_CheckCondCode, ISD::SETGE,
/* 73235*/      OPC_MoveParent,
/* 73236*/      OPC_CheckType, MVT::v4f64,
/* 73238*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 73240*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #4
/* 73248*/      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)
/* 73257*/    /*Scope*/ 24, /*->73282*/
/* 73258*/      OPC_CheckCondCode, ISD::SETUGE,
/* 73260*/      OPC_MoveParent,
/* 73261*/      OPC_CheckType, MVT::v4f64,
/* 73263*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 73265*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 73273*/      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)
/* 73282*/    /*Scope*/ 24, /*->73307*/
/* 73283*/      OPC_CheckCondCode, ISD::SETGT,
/* 73285*/      OPC_MoveParent,
/* 73286*/      OPC_CheckType, MVT::v4f64,
/* 73288*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 73290*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #4
/* 73298*/      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)
/* 73307*/    /*Scope*/ 24, /*->73332*/
/* 73308*/      OPC_CheckCondCode, ISD::SETUGT,
/* 73310*/      OPC_MoveParent,
/* 73311*/      OPC_CheckType, MVT::v4f64,
/* 73313*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 73315*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 73323*/      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)
/* 73332*/    /*Scope*/ 24, /*->73357*/
/* 73333*/      OPC_CheckCondCode, ISD::SETNE,
/* 73335*/      OPC_MoveParent,
/* 73336*/      OPC_CheckType, MVT::v4f64,
/* 73338*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 73340*/      OPC_EmitNode1, TARGET_VAL(PPC::CRXOR), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 73348*/      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)
/* 73357*/    /*Scope*/ 24, /*->73382*/
/* 73358*/      OPC_CheckCondCode, ISD::SETLT,
/* 73360*/      OPC_MoveParent,
/* 73361*/      OPC_CheckType, MVT::v4f32,
/* 73363*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 73365*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 73373*/      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)
/* 73382*/    /*Scope*/ 24, /*->73407*/
/* 73383*/      OPC_CheckCondCode, ISD::SETULT,
/* 73385*/      OPC_MoveParent,
/* 73386*/      OPC_CheckType, MVT::v4f32,
/* 73388*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 73390*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #4
/* 73398*/      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)
/* 73407*/    /*Scope*/ 24, /*->73432*/
/* 73408*/      OPC_CheckCondCode, ISD::SETLE,
/* 73410*/      OPC_MoveParent,
/* 73411*/      OPC_CheckType, MVT::v4f32,
/* 73413*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 73415*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 73423*/      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)
/* 73432*/    /*Scope*/ 24, /*->73457*/
/* 73433*/      OPC_CheckCondCode, ISD::SETULE,
/* 73435*/      OPC_MoveParent,
/* 73436*/      OPC_CheckType, MVT::v4f32,
/* 73438*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 73440*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #4
/* 73448*/      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)
/* 73457*/    /*Scope*/ 24, /*->73482*/
/* 73458*/      OPC_CheckCondCode, ISD::SETEQ,
/* 73460*/      OPC_MoveParent,
/* 73461*/      OPC_CheckType, MVT::v4f32,
/* 73463*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 73465*/      OPC_EmitNode1, TARGET_VAL(PPC::CREQV), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 73473*/      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)
/* 73482*/    /*Scope*/ 24, /*->73507*/
/* 73483*/      OPC_CheckCondCode, ISD::SETGE,
/* 73485*/      OPC_MoveParent,
/* 73486*/      OPC_CheckType, MVT::v4f32,
/* 73488*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 73490*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #4
/* 73498*/      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)
/* 73507*/    /*Scope*/ 24, /*->73532*/
/* 73508*/      OPC_CheckCondCode, ISD::SETUGE,
/* 73510*/      OPC_MoveParent,
/* 73511*/      OPC_CheckType, MVT::v4f32,
/* 73513*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 73515*/      OPC_EmitNode1, TARGET_VAL(PPC::CRORC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 73523*/      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)
/* 73532*/    /*Scope*/ 24, /*->73557*/
/* 73533*/      OPC_CheckCondCode, ISD::SETGT,
/* 73535*/      OPC_MoveParent,
/* 73536*/      OPC_CheckType, MVT::v4f32,
/* 73538*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 73540*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 1, 0,  // Results = #4
/* 73548*/      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)
/* 73557*/    /*Scope*/ 24, /*->73582*/
/* 73558*/      OPC_CheckCondCode, ISD::SETUGT,
/* 73560*/      OPC_MoveParent,
/* 73561*/      OPC_CheckType, MVT::v4f32,
/* 73563*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 73565*/      OPC_EmitNode1, TARGET_VAL(PPC::CRANDC), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 73573*/      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)
/* 73582*/    /*Scope*/ 24, /*->73607*/
/* 73583*/      OPC_CheckCondCode, ISD::SETNE,
/* 73585*/      OPC_MoveParent,
/* 73586*/      OPC_CheckType, MVT::v4f32,
/* 73588*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 73590*/      OPC_EmitNode1, TARGET_VAL(PPC::CRXOR), 0,
                    MVT::i1, 2/*#Ops*/, 0, 1,  // Results = #4
/* 73598*/      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)
/* 73607*/    0, /*End of Scope*/
/* 73608*/  /*SwitchOpcode*/ 28|128,107/*13724*/, TARGET_VAL(ISD::BITREVERSE),// ->87336
/* 73612*/    OPC_RecordChild0, // #0 = $A
/* 73613*/    OPC_SwitchType /*2 cases */, 6|128,21/*2694*/, MVT::i32,// ->76311
/* 73617*/      OPC_EmitInteger, MVT::i32, 31, 
/* 73620*/      OPC_EmitInteger, MVT::i32, 1, 
/* 73623*/      OPC_EmitInteger, MVT::i32, 31, 
/* 73626*/      OPC_EmitNode1, TARGET_VAL(PPC::RLWINM), 0,
                    MVT::i32, 4/*#Ops*/, 0, 1, 2, 3,  // Results = #4
/* 73636*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 73641*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 5,  // Results = #6
/* 73648*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 73653*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 6, 7,  // Results = #8
/* 73661*/      OPC_EmitNode1, TARGET_VAL(PPC::AND), 0,
                    MVT::i32, 2/*#Ops*/, 4, 8,  // Results = #9
/* 73669*/      OPC_EmitInteger, MVT::i32, 1, 
/* 73672*/      OPC_EmitInteger, MVT::i32, 0, 
/* 73675*/      OPC_EmitInteger, MVT::i32, 30, 
/* 73678*/      OPC_EmitNode1, TARGET_VAL(PPC::RLWINM), 0,
                    MVT::i32, 4/*#Ops*/, 0, 10, 11, 12,  // Results = #13
/* 73688*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 73693*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 14,  // Results = #15
/* 73700*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 73705*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 15, 16,  // Results = #17
/* 73713*/      OPC_EmitNode1, TARGET_VAL(PPC::AND), 0,
                    MVT::i32, 2/*#Ops*/, 13, 17,  // Results = #18
/* 73721*/      OPC_EmitNode1, TARGET_VAL(PPC::OR), 0,
                    MVT::i32, 2/*#Ops*/, 9, 18,  // Results = #19
/* 73729*/      OPC_EmitInteger, MVT::i32, 30, 
/* 73732*/      OPC_EmitInteger, MVT::i32, 2, 
/* 73735*/      OPC_EmitInteger, MVT::i32, 31, 
/* 73738*/      OPC_EmitNode1, TARGET_VAL(PPC::RLWINM), 0,
                    MVT::i32, 4/*#Ops*/, 19, 20, 21, 22,  // Results = #23
/* 73748*/      OPC_EmitInteger, MVT::i32, 51|128,102/*13107*/, 
/* 73752*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 24,  // Results = #25
/* 73759*/      OPC_EmitInteger, MVT::i32, 51|128,102/*13107*/, 
/* 73763*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 25, 26,  // Results = #27
/* 73771*/      OPC_EmitNode1, TARGET_VAL(PPC::AND), 0,
                    MVT::i32, 2/*#Ops*/, 23, 27,  // Results = #28
/* 73779*/      OPC_EmitInteger, MVT::i32, 31, 
/* 73782*/      OPC_EmitInteger, MVT::i32, 1, 
/* 73785*/      OPC_EmitInteger, MVT::i32, 31, 
/* 73788*/      OPC_EmitNode1, TARGET_VAL(PPC::RLWINM), 0,
                    MVT::i32, 4/*#Ops*/, 0, 29, 30, 31,  // Results = #32
/* 73798*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 73803*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 33,  // Results = #34
/* 73810*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 73815*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 34, 35,  // Results = #36
/* 73823*/      OPC_EmitNode1, TARGET_VAL(PPC::AND), 0,
                    MVT::i32, 2/*#Ops*/, 32, 36,  // Results = #37
/* 73831*/      OPC_EmitInteger, MVT::i32, 1, 
/* 73834*/      OPC_EmitInteger, MVT::i32, 0, 
/* 73837*/      OPC_EmitInteger, MVT::i32, 30, 
/* 73840*/      OPC_EmitNode1, TARGET_VAL(PPC::RLWINM), 0,
                    MVT::i32, 4/*#Ops*/, 0, 38, 39, 40,  // Results = #41
/* 73850*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 73855*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 42,  // Results = #43
/* 73862*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 73867*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 43, 44,  // Results = #45
/* 73875*/      OPC_EmitNode1, TARGET_VAL(PPC::AND), 0,
                    MVT::i32, 2/*#Ops*/, 41, 45,  // Results = #46
/* 73883*/      OPC_EmitNode1, TARGET_VAL(PPC::OR), 0,
                    MVT::i32, 2/*#Ops*/, 37, 46,  // Results = #47
/* 73891*/      OPC_EmitInteger, MVT::i32, 2, 
/* 73894*/      OPC_EmitInteger, MVT::i32, 0, 
/* 73897*/      OPC_EmitInteger, MVT::i32, 29, 
/* 73900*/      OPC_EmitNode1, TARGET_VAL(PPC::RLWINM), 0,
                    MVT::i32, 4/*#Ops*/, 47, 48, 49, 50,  // Results = #51
/* 73910*/      OPC_EmitInteger, MVT::i32, 76|128,25|128,3/*52428*/, 
/* 73915*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 52,  // Results = #53
/* 73922*/      OPC_EmitInteger, MVT::i32, 76|128,25|128,3/*52428*/, 
/* 73927*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 53, 54,  // Results = #55
/* 73935*/      OPC_EmitNode1, TARGET_VAL(PPC::AND), 0,
                    MVT::i32, 2/*#Ops*/, 51, 55,  // Results = #56
/* 73943*/      OPC_EmitNode1, TARGET_VAL(PPC::OR), 0,
                    MVT::i32, 2/*#Ops*/, 28, 56,  // Results = #57
/* 73951*/      OPC_EmitInteger, MVT::i32, 28, 
/* 73954*/      OPC_EmitInteger, MVT::i32, 4, 
/* 73957*/      OPC_EmitInteger, MVT::i32, 31, 
/* 73960*/      OPC_EmitNode1, TARGET_VAL(PPC::RLWINM), 0,
                    MVT::i32, 4/*#Ops*/, 57, 58, 59, 60,  // Results = #61
/* 73970*/      OPC_EmitInteger, MVT::i32, 15|128,30/*3855*/, 
/* 73974*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 62,  // Results = #63
/* 73981*/      OPC_EmitInteger, MVT::i32, 15|128,30/*3855*/, 
/* 73985*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 63, 64,  // Results = #65
/* 73993*/      OPC_EmitNode1, TARGET_VAL(PPC::AND), 0,
                    MVT::i32, 2/*#Ops*/, 61, 65,  // Results = #66
/* 74001*/      OPC_EmitInteger, MVT::i32, 31, 
/* 74004*/      OPC_EmitInteger, MVT::i32, 1, 
/* 74007*/      OPC_EmitInteger, MVT::i32, 31, 
/* 74010*/      OPC_EmitNode1, TARGET_VAL(PPC::RLWINM), 0,
                    MVT::i32, 4/*#Ops*/, 0, 67, 68, 69,  // Results = #70
/* 74020*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 74025*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 71,  // Results = #72
/* 74032*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 74037*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 72, 73,  // Results = #74
/* 74045*/      OPC_EmitNode1, TARGET_VAL(PPC::AND), 0,
                    MVT::i32, 2/*#Ops*/, 70, 74,  // Results = #75
/* 74053*/      OPC_EmitInteger, MVT::i32, 1, 
/* 74056*/      OPC_EmitInteger, MVT::i32, 0, 
/* 74059*/      OPC_EmitInteger, MVT::i32, 30, 
/* 74062*/      OPC_EmitNode1, TARGET_VAL(PPC::RLWINM), 0,
                    MVT::i32, 4/*#Ops*/, 0, 76, 77, 78,  // Results = #79
/* 74072*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 74077*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 80,  // Results = #81
/* 74084*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 74089*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 81, 82,  // Results = #83
/* 74097*/      OPC_EmitNode1, TARGET_VAL(PPC::AND), 0,
                    MVT::i32, 2/*#Ops*/, 79, 83,  // Results = #84
/* 74105*/      OPC_EmitNode1, TARGET_VAL(PPC::OR), 0,
                    MVT::i32, 2/*#Ops*/, 75, 84,  // Results = #85
/* 74113*/      OPC_EmitInteger, MVT::i32, 30, 
/* 74116*/      OPC_EmitInteger, MVT::i32, 2, 
/* 74119*/      OPC_EmitInteger, MVT::i32, 31, 
/* 74122*/      OPC_EmitNode1, TARGET_VAL(PPC::RLWINM), 0,
                    MVT::i32, 4/*#Ops*/, 85, 86, 87, 88,  // Results = #89
/* 74132*/      OPC_EmitInteger, MVT::i32, 51|128,102/*13107*/, 
/* 74136*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 90,  // Results = #91
/* 74143*/      OPC_EmitInteger, MVT::i32, 51|128,102/*13107*/, 
/* 74147*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 91, 92,  // Results = #93
/* 74155*/      OPC_EmitNode1, TARGET_VAL(PPC::AND), 0,
                    MVT::i32, 2/*#Ops*/, 89, 93,  // Results = #94
/* 74163*/      OPC_EmitInteger, MVT::i32, 31, 
/* 74166*/      OPC_EmitInteger, MVT::i32, 1, 
/* 74169*/      OPC_EmitInteger, MVT::i32, 31, 
/* 74172*/      OPC_EmitNode1, TARGET_VAL(PPC::RLWINM), 0,
                    MVT::i32, 4/*#Ops*/, 0, 95, 96, 97,  // Results = #98
/* 74182*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 74187*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 99,  // Results = #100
/* 74194*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 74199*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 100, 101,  // Results = #102
/* 74207*/      OPC_EmitNode1, TARGET_VAL(PPC::AND), 0,
                    MVT::i32, 2/*#Ops*/, 98, 102,  // Results = #103
/* 74215*/      OPC_EmitInteger, MVT::i32, 1, 
/* 74218*/      OPC_EmitInteger, MVT::i32, 0, 
/* 74221*/      OPC_EmitInteger, MVT::i32, 30, 
/* 74224*/      OPC_EmitNode1, TARGET_VAL(PPC::RLWINM), 0,
                    MVT::i32, 4/*#Ops*/, 0, 104, 105, 106,  // Results = #107
/* 74234*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 74239*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 108,  // Results = #109
/* 74246*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 74251*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 109, 110,  // Results = #111
/* 74259*/      OPC_EmitNode1, TARGET_VAL(PPC::AND), 0,
                    MVT::i32, 2/*#Ops*/, 107, 111,  // Results = #112
/* 74267*/      OPC_EmitNode1, TARGET_VAL(PPC::OR), 0,
                    MVT::i32, 2/*#Ops*/, 103, 112,  // Results = #113
/* 74275*/      OPC_EmitInteger, MVT::i32, 2, 
/* 74278*/      OPC_EmitInteger, MVT::i32, 0, 
/* 74281*/      OPC_EmitInteger, MVT::i32, 29, 
/* 74284*/      OPC_EmitNode1, TARGET_VAL(PPC::RLWINM), 0,
                    MVT::i32, 4/*#Ops*/, 113, 114, 115, 116,  // Results = #117
/* 74294*/      OPC_EmitInteger, MVT::i32, 76|128,25|128,3/*52428*/, 
/* 74299*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 118,  // Results = #119
/* 74306*/      OPC_EmitInteger, MVT::i32, 76|128,25|128,3/*52428*/, 
/* 74311*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 119, 120,  // Results = #121
/* 74319*/      OPC_EmitNode1, TARGET_VAL(PPC::AND), 0,
                    MVT::i32, 2/*#Ops*/, 117, 121,  // Results = #122
/* 74327*/      OPC_EmitNode1, TARGET_VAL(PPC::OR), 0,
                    MVT::i32, 2/*#Ops*/, 94, 122,  // Results = #123
/* 74335*/      OPC_EmitInteger, MVT::i32, 4, 
/* 74338*/      OPC_EmitInteger, MVT::i32, 0, 
/* 74341*/      OPC_EmitInteger, MVT::i32, 27, 
/* 74344*/      OPC_EmitNode1, TARGET_VAL(PPC::RLWINM), 0,
                    MVT::i32, 4/*#Ops*/, 123, 124, 125, 126,  // Results = #127
/* 74354*/      OPC_EmitInteger, MVT::i32, 112|128,97|128,3/*61680*/, 
/* 74359*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 0|128,1/*128*/,  // Results = #129
/* 74367*/      OPC_EmitInteger, MVT::i32, 112|128,97|128,3/*61680*/, 
/* 74372*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 1|128,1/*129*/, 2|128,1/*130*/,  // Results = #131
/* 74382*/      OPC_EmitNode1, TARGET_VAL(PPC::AND), 0,
                    MVT::i32, 2/*#Ops*/, 127, 3|128,1/*131*/,  // Results = #132
/* 74391*/      OPC_EmitNode1, TARGET_VAL(PPC::OR), 0,
                    MVT::i32, 2/*#Ops*/, 66, 4|128,1/*132*/,  // Results = #133
/* 74400*/      OPC_EmitInteger, MVT::i32, 24, 
/* 74403*/      OPC_EmitInteger, MVT::i32, 0, 
/* 74406*/      OPC_EmitInteger, MVT::i32, 31, 
/* 74409*/      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
/* 74423*/      OPC_EmitInteger, MVT::i32, 31, 
/* 74426*/      OPC_EmitInteger, MVT::i32, 1, 
/* 74429*/      OPC_EmitInteger, MVT::i32, 31, 
/* 74432*/      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
/* 74445*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 74450*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 14|128,1/*142*/,  // Results = #143
/* 74458*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 74463*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 15|128,1/*143*/, 16|128,1/*144*/,  // Results = #145
/* 74473*/      OPC_EmitNode1, TARGET_VAL(PPC::AND), 0,
                    MVT::i32, 2/*#Ops*/, 13|128,1/*141*/, 17|128,1/*145*/,  // Results = #146
/* 74483*/      OPC_EmitInteger, MVT::i32, 1, 
/* 74486*/      OPC_EmitInteger, MVT::i32, 0, 
/* 74489*/      OPC_EmitInteger, MVT::i32, 30, 
/* 74492*/      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
/* 74505*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 74510*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 23|128,1/*151*/,  // Results = #152
/* 74518*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 74523*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 24|128,1/*152*/, 25|128,1/*153*/,  // Results = #154
/* 74533*/      OPC_EmitNode1, TARGET_VAL(PPC::AND), 0,
                    MVT::i32, 2/*#Ops*/, 22|128,1/*150*/, 26|128,1/*154*/,  // Results = #155
/* 74543*/      OPC_EmitNode1, TARGET_VAL(PPC::OR), 0,
                    MVT::i32, 2/*#Ops*/, 18|128,1/*146*/, 27|128,1/*155*/,  // Results = #156
/* 74553*/      OPC_EmitInteger, MVT::i32, 30, 
/* 74556*/      OPC_EmitInteger, MVT::i32, 2, 
/* 74559*/      OPC_EmitInteger, MVT::i32, 31, 
/* 74562*/      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
/* 74576*/      OPC_EmitInteger, MVT::i32, 51|128,102/*13107*/, 
/* 74580*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 33|128,1/*161*/,  // Results = #162
/* 74588*/      OPC_EmitInteger, MVT::i32, 51|128,102/*13107*/, 
/* 74592*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 34|128,1/*162*/, 35|128,1/*163*/,  // Results = #164
/* 74602*/      OPC_EmitNode1, TARGET_VAL(PPC::AND), 0,
                    MVT::i32, 2/*#Ops*/, 32|128,1/*160*/, 36|128,1/*164*/,  // Results = #165
/* 74612*/      OPC_EmitInteger, MVT::i32, 31, 
/* 74615*/      OPC_EmitInteger, MVT::i32, 1, 
/* 74618*/      OPC_EmitInteger, MVT::i32, 31, 
/* 74621*/      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
/* 74634*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 74639*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 42|128,1/*170*/,  // Results = #171
/* 74647*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 74652*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 43|128,1/*171*/, 44|128,1/*172*/,  // Results = #173
/* 74662*/      OPC_EmitNode1, TARGET_VAL(PPC::AND), 0,
                    MVT::i32, 2/*#Ops*/, 41|128,1/*169*/, 45|128,1/*173*/,  // Results = #174
/* 74672*/      OPC_EmitInteger, MVT::i32, 1, 
/* 74675*/      OPC_EmitInteger, MVT::i32, 0, 
/* 74678*/      OPC_EmitInteger, MVT::i32, 30, 
/* 74681*/      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
/* 74694*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 74699*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 51|128,1/*179*/,  // Results = #180
/* 74707*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 74712*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 52|128,1/*180*/, 53|128,1/*181*/,  // Results = #182
/* 74722*/      OPC_EmitNode1, TARGET_VAL(PPC::AND), 0,
                    MVT::i32, 2/*#Ops*/, 50|128,1/*178*/, 54|128,1/*182*/,  // Results = #183
/* 74732*/      OPC_EmitNode1, TARGET_VAL(PPC::OR), 0,
                    MVT::i32, 2/*#Ops*/, 46|128,1/*174*/, 55|128,1/*183*/,  // Results = #184
/* 74742*/      OPC_EmitInteger, MVT::i32, 2, 
/* 74745*/      OPC_EmitInteger, MVT::i32, 0, 
/* 74748*/      OPC_EmitInteger, MVT::i32, 29, 
/* 74751*/      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
/* 74765*/      OPC_EmitInteger, MVT::i32, 76|128,25|128,3/*52428*/, 
/* 74770*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 61|128,1/*189*/,  // Results = #190
/* 74778*/      OPC_EmitInteger, MVT::i32, 76|128,25|128,3/*52428*/, 
/* 74783*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 62|128,1/*190*/, 63|128,1/*191*/,  // Results = #192
/* 74793*/      OPC_EmitNode1, TARGET_VAL(PPC::AND), 0,
                    MVT::i32, 2/*#Ops*/, 60|128,1/*188*/, 64|128,1/*192*/,  // Results = #193
/* 74803*/      OPC_EmitNode1, TARGET_VAL(PPC::OR), 0,
                    MVT::i32, 2/*#Ops*/, 37|128,1/*165*/, 65|128,1/*193*/,  // Results = #194
/* 74813*/      OPC_EmitInteger, MVT::i32, 28, 
/* 74816*/      OPC_EmitInteger, MVT::i32, 4, 
/* 74819*/      OPC_EmitInteger, MVT::i32, 31, 
/* 74822*/      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
/* 74836*/      OPC_EmitInteger, MVT::i32, 15|128,30/*3855*/, 
/* 74840*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 71|128,1/*199*/,  // Results = #200
/* 74848*/      OPC_EmitInteger, MVT::i32, 15|128,30/*3855*/, 
/* 74852*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 72|128,1/*200*/, 73|128,1/*201*/,  // Results = #202
/* 74862*/      OPC_EmitNode1, TARGET_VAL(PPC::AND), 0,
                    MVT::i32, 2/*#Ops*/, 70|128,1/*198*/, 74|128,1/*202*/,  // Results = #203
/* 74872*/      OPC_EmitInteger, MVT::i32, 31, 
/* 74875*/      OPC_EmitInteger, MVT::i32, 1, 
/* 74878*/      OPC_EmitInteger, MVT::i32, 31, 
/* 74881*/      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
/* 74894*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 74899*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 80|128,1/*208*/,  // Results = #209
/* 74907*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 74912*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 81|128,1/*209*/, 82|128,1/*210*/,  // Results = #211
/* 74922*/      OPC_EmitNode1, TARGET_VAL(PPC::AND), 0,
                    MVT::i32, 2/*#Ops*/, 79|128,1/*207*/, 83|128,1/*211*/,  // Results = #212
/* 74932*/      OPC_EmitInteger, MVT::i32, 1, 
/* 74935*/      OPC_EmitInteger, MVT::i32, 0, 
/* 74938*/      OPC_EmitInteger, MVT::i32, 30, 
/* 74941*/      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
/* 74954*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 74959*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 89|128,1/*217*/,  // Results = #218
/* 74967*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 74972*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 90|128,1/*218*/, 91|128,1/*219*/,  // Results = #220
/* 74982*/      OPC_EmitNode1, TARGET_VAL(PPC::AND), 0,
                    MVT::i32, 2/*#Ops*/, 88|128,1/*216*/, 92|128,1/*220*/,  // Results = #221
/* 74992*/      OPC_EmitNode1, TARGET_VAL(PPC::OR), 0,
                    MVT::i32, 2/*#Ops*/, 84|128,1/*212*/, 93|128,1/*221*/,  // Results = #222
/* 75002*/      OPC_EmitInteger, MVT::i32, 30, 
/* 75005*/      OPC_EmitInteger, MVT::i32, 2, 
/* 75008*/      OPC_EmitInteger, MVT::i32, 31, 
/* 75011*/      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
/* 75025*/      OPC_EmitInteger, MVT::i32, 51|128,102/*13107*/, 
/* 75029*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 99|128,1/*227*/,  // Results = #228
/* 75037*/      OPC_EmitInteger, MVT::i32, 51|128,102/*13107*/, 
/* 75041*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 100|128,1/*228*/, 101|128,1/*229*/,  // Results = #230
/* 75051*/      OPC_EmitNode1, TARGET_VAL(PPC::AND), 0,
                    MVT::i32, 2/*#Ops*/, 98|128,1/*226*/, 102|128,1/*230*/,  // Results = #231
/* 75061*/      OPC_EmitInteger, MVT::i32, 31, 
/* 75064*/      OPC_EmitInteger, MVT::i32, 1, 
/* 75067*/      OPC_EmitInteger, MVT::i32, 31, 
/* 75070*/      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
/* 75083*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 75088*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 108|128,1/*236*/,  // Results = #237
/* 75096*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 75101*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 109|128,1/*237*/, 110|128,1/*238*/,  // Results = #239
/* 75111*/      OPC_EmitNode1, TARGET_VAL(PPC::AND), 0,
                    MVT::i32, 2/*#Ops*/, 107|128,1/*235*/, 111|128,1/*239*/,  // Results = #240
/* 75121*/      OPC_EmitInteger, MVT::i32, 1, 
/* 75124*/      OPC_EmitInteger, MVT::i32, 0, 
/* 75127*/      OPC_EmitInteger, MVT::i32, 30, 
/* 75130*/      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
/* 75143*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 75148*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 117|128,1/*245*/,  // Results = #246
/* 75156*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 75161*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 118|128,1/*246*/, 119|128,1/*247*/,  // Results = #248
/* 75171*/      OPC_EmitNode1, TARGET_VAL(PPC::AND), 0,
                    MVT::i32, 2/*#Ops*/, 116|128,1/*244*/, 120|128,1/*248*/,  // Results = #249
/* 75181*/      OPC_EmitNode1, TARGET_VAL(PPC::OR), 0,
                    MVT::i32, 2/*#Ops*/, 112|128,1/*240*/, 121|128,1/*249*/,  // Results = #250
/* 75191*/      OPC_EmitInteger, MVT::i32, 2, 
/* 75194*/      OPC_EmitInteger, MVT::i32, 0, 
/* 75197*/      OPC_EmitInteger, MVT::i32, 29, 
/* 75200*/      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
/* 75214*/      OPC_EmitInteger, MVT::i32, 76|128,25|128,3/*52428*/, 
/* 75219*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 127|128,1/*255*/,  // Results = #256
/* 75227*/      OPC_EmitInteger, MVT::i32, 76|128,25|128,3/*52428*/, 
/* 75232*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 0|128,2/*256*/, 1|128,2/*257*/,  // Results = #258
/* 75242*/      OPC_EmitNode1, TARGET_VAL(PPC::AND), 0,
                    MVT::i32, 2/*#Ops*/, 126|128,1/*254*/, 2|128,2/*258*/,  // Results = #259
/* 75252*/      OPC_EmitNode1, TARGET_VAL(PPC::OR), 0,
                    MVT::i32, 2/*#Ops*/, 103|128,1/*231*/, 3|128,2/*259*/,  // Results = #260
/* 75262*/      OPC_EmitInteger, MVT::i32, 4, 
/* 75265*/      OPC_EmitInteger, MVT::i32, 0, 
/* 75268*/      OPC_EmitInteger, MVT::i32, 27, 
/* 75271*/      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
/* 75285*/      OPC_EmitInteger, MVT::i32, 112|128,97|128,3/*61680*/, 
/* 75290*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 9|128,2/*265*/,  // Results = #266
/* 75298*/      OPC_EmitInteger, MVT::i32, 112|128,97|128,3/*61680*/, 
/* 75303*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 10|128,2/*266*/, 11|128,2/*267*/,  // Results = #268
/* 75313*/      OPC_EmitNode1, TARGET_VAL(PPC::AND), 0,
                    MVT::i32, 2/*#Ops*/, 8|128,2/*264*/, 12|128,2/*268*/,  // Results = #269
/* 75323*/      OPC_EmitNode1, TARGET_VAL(PPC::OR), 0,
                    MVT::i32, 2/*#Ops*/, 75|128,1/*203*/, 13|128,2/*269*/,  // Results = #270
/* 75333*/      OPC_EmitInteger, MVT::i32, 8, 
/* 75336*/      OPC_EmitInteger, MVT::i32, 8, 
/* 75339*/      OPC_EmitInteger, MVT::i32, 15, 
/* 75342*/      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
/* 75358*/      OPC_EmitInteger, MVT::i32, 31, 
/* 75361*/      OPC_EmitInteger, MVT::i32, 1, 
/* 75364*/      OPC_EmitInteger, MVT::i32, 31, 
/* 75367*/      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
/* 75380*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 75385*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 23|128,2/*279*/,  // Results = #280
/* 75393*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 75398*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 24|128,2/*280*/, 25|128,2/*281*/,  // Results = #282
/* 75408*/      OPC_EmitNode1, TARGET_VAL(PPC::AND), 0,
                    MVT::i32, 2/*#Ops*/, 22|128,2/*278*/, 26|128,2/*282*/,  // Results = #283
/* 75418*/      OPC_EmitInteger, MVT::i32, 1, 
/* 75421*/      OPC_EmitInteger, MVT::i32, 0, 
/* 75424*/      OPC_EmitInteger, MVT::i32, 30, 
/* 75427*/      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
/* 75440*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 75445*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 32|128,2/*288*/,  // Results = #289
/* 75453*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 75458*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 33|128,2/*289*/, 34|128,2/*290*/,  // Results = #291
/* 75468*/      OPC_EmitNode1, TARGET_VAL(PPC::AND), 0,
                    MVT::i32, 2/*#Ops*/, 31|128,2/*287*/, 35|128,2/*291*/,  // Results = #292
/* 75478*/      OPC_EmitNode1, TARGET_VAL(PPC::OR), 0,
                    MVT::i32, 2/*#Ops*/, 27|128,2/*283*/, 36|128,2/*292*/,  // Results = #293
/* 75488*/      OPC_EmitInteger, MVT::i32, 30, 
/* 75491*/      OPC_EmitInteger, MVT::i32, 2, 
/* 75494*/      OPC_EmitInteger, MVT::i32, 31, 
/* 75497*/      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
/* 75511*/      OPC_EmitInteger, MVT::i32, 51|128,102/*13107*/, 
/* 75515*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 42|128,2/*298*/,  // Results = #299
/* 75523*/      OPC_EmitInteger, MVT::i32, 51|128,102/*13107*/, 
/* 75527*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 43|128,2/*299*/, 44|128,2/*300*/,  // Results = #301
/* 75537*/      OPC_EmitNode1, TARGET_VAL(PPC::AND), 0,
                    MVT::i32, 2/*#Ops*/, 41|128,2/*297*/, 45|128,2/*301*/,  // Results = #302
/* 75547*/      OPC_EmitInteger, MVT::i32, 31, 
/* 75550*/      OPC_EmitInteger, MVT::i32, 1, 
/* 75553*/      OPC_EmitInteger, MVT::i32, 31, 
/* 75556*/      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
/* 75569*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 75574*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 51|128,2/*307*/,  // Results = #308
/* 75582*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 75587*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 52|128,2/*308*/, 53|128,2/*309*/,  // Results = #310
/* 75597*/      OPC_EmitNode1, TARGET_VAL(PPC::AND), 0,
                    MVT::i32, 2/*#Ops*/, 50|128,2/*306*/, 54|128,2/*310*/,  // Results = #311
/* 75607*/      OPC_EmitInteger, MVT::i32, 1, 
/* 75610*/      OPC_EmitInteger, MVT::i32, 0, 
/* 75613*/      OPC_EmitInteger, MVT::i32, 30, 
/* 75616*/      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
/* 75629*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 75634*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 60|128,2/*316*/,  // Results = #317
/* 75642*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 75647*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 61|128,2/*317*/, 62|128,2/*318*/,  // Results = #319
/* 75657*/      OPC_EmitNode1, TARGET_VAL(PPC::AND), 0,
                    MVT::i32, 2/*#Ops*/, 59|128,2/*315*/, 63|128,2/*319*/,  // Results = #320
/* 75667*/      OPC_EmitNode1, TARGET_VAL(PPC::OR), 0,
                    MVT::i32, 2/*#Ops*/, 55|128,2/*311*/, 64|128,2/*320*/,  // Results = #321
/* 75677*/      OPC_EmitInteger, MVT::i32, 2, 
/* 75680*/      OPC_EmitInteger, MVT::i32, 0, 
/* 75683*/      OPC_EmitInteger, MVT::i32, 29, 
/* 75686*/      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
/* 75700*/      OPC_EmitInteger, MVT::i32, 76|128,25|128,3/*52428*/, 
/* 75705*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 70|128,2/*326*/,  // Results = #327
/* 75713*/      OPC_EmitInteger, MVT::i32, 76|128,25|128,3/*52428*/, 
/* 75718*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 71|128,2/*327*/, 72|128,2/*328*/,  // Results = #329
/* 75728*/      OPC_EmitNode1, TARGET_VAL(PPC::AND), 0,
                    MVT::i32, 2/*#Ops*/, 69|128,2/*325*/, 73|128,2/*329*/,  // Results = #330
/* 75738*/      OPC_EmitNode1, TARGET_VAL(PPC::OR), 0,
                    MVT::i32, 2/*#Ops*/, 46|128,2/*302*/, 74|128,2/*330*/,  // Results = #331
/* 75748*/      OPC_EmitInteger, MVT::i32, 28, 
/* 75751*/      OPC_EmitInteger, MVT::i32, 4, 
/* 75754*/      OPC_EmitInteger, MVT::i32, 31, 
/* 75757*/      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
/* 75771*/      OPC_EmitInteger, MVT::i32, 15|128,30/*3855*/, 
/* 75775*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 80|128,2/*336*/,  // Results = #337
/* 75783*/      OPC_EmitInteger, MVT::i32, 15|128,30/*3855*/, 
/* 75787*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 81|128,2/*337*/, 82|128,2/*338*/,  // Results = #339
/* 75797*/      OPC_EmitNode1, TARGET_VAL(PPC::AND), 0,
                    MVT::i32, 2/*#Ops*/, 79|128,2/*335*/, 83|128,2/*339*/,  // Results = #340
/* 75807*/      OPC_EmitInteger, MVT::i32, 31, 
/* 75810*/      OPC_EmitInteger, MVT::i32, 1, 
/* 75813*/      OPC_EmitInteger, MVT::i32, 31, 
/* 75816*/      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
/* 75829*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 75834*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 89|128,2/*345*/,  // Results = #346
/* 75842*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 75847*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 90|128,2/*346*/, 91|128,2/*347*/,  // Results = #348
/* 75857*/      OPC_EmitNode1, TARGET_VAL(PPC::AND), 0,
                    MVT::i32, 2/*#Ops*/, 88|128,2/*344*/, 92|128,2/*348*/,  // Results = #349
/* 75867*/      OPC_EmitInteger, MVT::i32, 1, 
/* 75870*/      OPC_EmitInteger, MVT::i32, 0, 
/* 75873*/      OPC_EmitInteger, MVT::i32, 30, 
/* 75876*/      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
/* 75889*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 75894*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 98|128,2/*354*/,  // Results = #355
/* 75902*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 75907*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 99|128,2/*355*/, 100|128,2/*356*/,  // Results = #357
/* 75917*/      OPC_EmitNode1, TARGET_VAL(PPC::AND), 0,
                    MVT::i32, 2/*#Ops*/, 97|128,2/*353*/, 101|128,2/*357*/,  // Results = #358
/* 75927*/      OPC_EmitNode1, TARGET_VAL(PPC::OR), 0,
                    MVT::i32, 2/*#Ops*/, 93|128,2/*349*/, 102|128,2/*358*/,  // Results = #359
/* 75937*/      OPC_EmitInteger, MVT::i32, 30, 
/* 75940*/      OPC_EmitInteger, MVT::i32, 2, 
/* 75943*/      OPC_EmitInteger, MVT::i32, 31, 
/* 75946*/      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
/* 75960*/      OPC_EmitInteger, MVT::i32, 51|128,102/*13107*/, 
/* 75964*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 108|128,2/*364*/,  // Results = #365
/* 75972*/      OPC_EmitInteger, MVT::i32, 51|128,102/*13107*/, 
/* 75976*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 109|128,2/*365*/, 110|128,2/*366*/,  // Results = #367
/* 75986*/      OPC_EmitNode1, TARGET_VAL(PPC::AND), 0,
                    MVT::i32, 2/*#Ops*/, 107|128,2/*363*/, 111|128,2/*367*/,  // Results = #368
/* 75996*/      OPC_EmitInteger, MVT::i32, 31, 
/* 75999*/      OPC_EmitInteger, MVT::i32, 1, 
/* 76002*/      OPC_EmitInteger, MVT::i32, 31, 
/* 76005*/      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
/* 76018*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 76023*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 117|128,2/*373*/,  // Results = #374
/* 76031*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 76036*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 118|128,2/*374*/, 119|128,2/*375*/,  // Results = #376
/* 76046*/      OPC_EmitNode1, TARGET_VAL(PPC::AND), 0,
                    MVT::i32, 2/*#Ops*/, 116|128,2/*372*/, 120|128,2/*376*/,  // Results = #377
/* 76056*/      OPC_EmitInteger, MVT::i32, 1, 
/* 76059*/      OPC_EmitInteger, MVT::i32, 0, 
/* 76062*/      OPC_EmitInteger, MVT::i32, 30, 
/* 76065*/      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
/* 76078*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 76083*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 126|128,2/*382*/,  // Results = #383
/* 76091*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 76096*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 127|128,2/*383*/, 0|128,3/*384*/,  // Results = #385
/* 76106*/      OPC_EmitNode1, TARGET_VAL(PPC::AND), 0,
                    MVT::i32, 2/*#Ops*/, 125|128,2/*381*/, 1|128,3/*385*/,  // Results = #386
/* 76116*/      OPC_EmitNode1, TARGET_VAL(PPC::OR), 0,
                    MVT::i32, 2/*#Ops*/, 121|128,2/*377*/, 2|128,3/*386*/,  // Results = #387
/* 76126*/      OPC_EmitInteger, MVT::i32, 2, 
/* 76129*/      OPC_EmitInteger, MVT::i32, 0, 
/* 76132*/      OPC_EmitInteger, MVT::i32, 29, 
/* 76135*/      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
/* 76149*/      OPC_EmitInteger, MVT::i32, 76|128,25|128,3/*52428*/, 
/* 76154*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 8|128,3/*392*/,  // Results = #393
/* 76162*/      OPC_EmitInteger, MVT::i32, 76|128,25|128,3/*52428*/, 
/* 76167*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 9|128,3/*393*/, 10|128,3/*394*/,  // Results = #395
/* 76177*/      OPC_EmitNode1, TARGET_VAL(PPC::AND), 0,
                    MVT::i32, 2/*#Ops*/, 7|128,3/*391*/, 11|128,3/*395*/,  // Results = #396
/* 76187*/      OPC_EmitNode1, TARGET_VAL(PPC::OR), 0,
                    MVT::i32, 2/*#Ops*/, 112|128,2/*368*/, 12|128,3/*396*/,  // Results = #397
/* 76197*/      OPC_EmitInteger, MVT::i32, 4, 
/* 76200*/      OPC_EmitInteger, MVT::i32, 0, 
/* 76203*/      OPC_EmitInteger, MVT::i32, 27, 
/* 76206*/      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
/* 76220*/      OPC_EmitInteger, MVT::i32, 112|128,97|128,3/*61680*/, 
/* 76225*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 18|128,3/*402*/,  // Results = #403
/* 76233*/      OPC_EmitInteger, MVT::i32, 112|128,97|128,3/*61680*/, 
/* 76238*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 19|128,3/*403*/, 20|128,3/*404*/,  // Results = #405
/* 76248*/      OPC_EmitNode1, TARGET_VAL(PPC::AND), 0,
                    MVT::i32, 2/*#Ops*/, 17|128,3/*401*/, 21|128,3/*405*/,  // Results = #406
/* 76258*/      OPC_EmitNode1, TARGET_VAL(PPC::OR), 0,
                    MVT::i32, 2/*#Ops*/, 84|128,2/*340*/, 22|128,3/*406*/,  // Results = #407
/* 76268*/      OPC_EmitInteger, MVT::i32, 8, 
/* 76271*/      OPC_EmitInteger, MVT::i32, 24, 
/* 76274*/      OPC_EmitInteger, MVT::i32, 31, 
/* 76277*/      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
/* 76293*/      OPC_EmitInteger, MVT::i32, 0, 
/* 76296*/      OPC_EmitInteger, MVT::i32, 32, 
/* 76299*/      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] })
/* 76311*/    /*SwitchType*/ 13|128,86/*11021*/, MVT::i64,// ->87335
/* 76314*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #1
/* 76320*/      OPC_EmitInteger, MVT::i32, 63, 
/* 76323*/      OPC_EmitInteger, MVT::i32, 1, 
/* 76326*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                    MVT::i64, 3/*#Ops*/, 0, 2, 3,  // Results = #4
/* 76335*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #5
/* 76341*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 76346*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 6,  // Results = #7
/* 76353*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 76358*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 7, 8,  // Results = #9
/* 76366*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 76369*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::i64, 3/*#Ops*/, 5, 9, 10,  // Results = #11
/* 76378*/      OPC_EmitInteger, MVT::i32, 32, 
/* 76381*/      OPC_EmitInteger, MVT::i32, 31, 
/* 76384*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 11, 12, 13,  // Results = #14
/* 76393*/      OPC_EmitInteger, MVT::i64, 85|128,42|128,1/*21845*/, 
/* 76398*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 14, 15,  // Results = #16
/* 76406*/      OPC_EmitInteger, MVT::i64, 85|128,42|128,1/*21845*/, 
/* 76411*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 16, 17,  // Results = #18
/* 76419*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 4, 18,  // Results = #19
/* 76427*/      OPC_EmitInteger, MVT::i32, 1, 
/* 76430*/      OPC_EmitInteger, MVT::i32, 62, 
/* 76433*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 0, 20, 21,  // Results = #22
/* 76442*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #23
/* 76448*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 76453*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 24,  // Results = #25
/* 76460*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 76465*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 25, 26,  // Results = #27
/* 76473*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 76476*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::i64, 3/*#Ops*/, 23, 27, 28,  // Results = #29
/* 76485*/      OPC_EmitInteger, MVT::i32, 32, 
/* 76488*/      OPC_EmitInteger, MVT::i32, 31, 
/* 76491*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 29, 30, 31,  // Results = #32
/* 76500*/      OPC_EmitInteger, MVT::i64, 42|128,85|128,2/*43690*/, 
/* 76505*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 32, 33,  // Results = #34
/* 76513*/      OPC_EmitInteger, MVT::i64, 42|128,85|128,2/*43690*/, 
/* 76518*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 34, 35,  // Results = #36
/* 76526*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 22, 36,  // Results = #37
/* 76534*/      OPC_EmitNode1, TARGET_VAL(PPC::OR8), 0,
                    MVT::i64, 2/*#Ops*/, 19, 37,  // Results = #38
/* 76542*/      OPC_EmitInteger, MVT::i32, 62, 
/* 76545*/      OPC_EmitInteger, MVT::i32, 2, 
/* 76548*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                    MVT::i64, 3/*#Ops*/, 38, 39, 40,  // Results = #41
/* 76557*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #42
/* 76563*/      OPC_EmitInteger, MVT::i32, 51|128,102/*13107*/, 
/* 76567*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 43,  // Results = #44
/* 76574*/      OPC_EmitInteger, MVT::i32, 51|128,102/*13107*/, 
/* 76578*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 44, 45,  // Results = #46
/* 76586*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 76589*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::i64, 3/*#Ops*/, 42, 46, 47,  // Results = #48
/* 76598*/      OPC_EmitInteger, MVT::i32, 32, 
/* 76601*/      OPC_EmitInteger, MVT::i32, 31, 
/* 76604*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 48, 49, 50,  // Results = #51
/* 76613*/      OPC_EmitInteger, MVT::i64, 51|128,102/*13107*/, 
/* 76617*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 51, 52,  // Results = #53
/* 76625*/      OPC_EmitInteger, MVT::i64, 51|128,102/*13107*/, 
/* 76629*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 53, 54,  // Results = #55
/* 76637*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 41, 55,  // Results = #56
/* 76645*/      OPC_EmitInteger, MVT::i32, 63, 
/* 76648*/      OPC_EmitInteger, MVT::i32, 1, 
/* 76651*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                    MVT::i64, 3/*#Ops*/, 0, 57, 58,  // Results = #59
/* 76660*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #60
/* 76666*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 76671*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 61,  // Results = #62
/* 76678*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 76683*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 62, 63,  // Results = #64
/* 76691*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 76694*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::i64, 3/*#Ops*/, 60, 64, 65,  // Results = #66
/* 76703*/      OPC_EmitInteger, MVT::i32, 32, 
/* 76706*/      OPC_EmitInteger, MVT::i32, 31, 
/* 76709*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 66, 67, 68,  // Results = #69
/* 76718*/      OPC_EmitInteger, MVT::i64, 85|128,42|128,1/*21845*/, 
/* 76723*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 69, 70,  // Results = #71
/* 76731*/      OPC_EmitInteger, MVT::i64, 85|128,42|128,1/*21845*/, 
/* 76736*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 71, 72,  // Results = #73
/* 76744*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 59, 73,  // Results = #74
/* 76752*/      OPC_EmitInteger, MVT::i32, 1, 
/* 76755*/      OPC_EmitInteger, MVT::i32, 62, 
/* 76758*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 0, 75, 76,  // Results = #77
/* 76767*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #78
/* 76773*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 76778*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 79,  // Results = #80
/* 76785*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 76790*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 80, 81,  // Results = #82
/* 76798*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 76801*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::i64, 3/*#Ops*/, 78, 82, 83,  // Results = #84
/* 76810*/      OPC_EmitInteger, MVT::i32, 32, 
/* 76813*/      OPC_EmitInteger, MVT::i32, 31, 
/* 76816*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 84, 85, 86,  // Results = #87
/* 76825*/      OPC_EmitInteger, MVT::i64, 42|128,85|128,2/*43690*/, 
/* 76830*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 87, 88,  // Results = #89
/* 76838*/      OPC_EmitInteger, MVT::i64, 42|128,85|128,2/*43690*/, 
/* 76843*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 89, 90,  // Results = #91
/* 76851*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 77, 91,  // Results = #92
/* 76859*/      OPC_EmitNode1, TARGET_VAL(PPC::OR8), 0,
                    MVT::i64, 2/*#Ops*/, 74, 92,  // Results = #93
/* 76867*/      OPC_EmitInteger, MVT::i32, 2, 
/* 76870*/      OPC_EmitInteger, MVT::i32, 61, 
/* 76873*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 93, 94, 95,  // Results = #96
/* 76882*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #97
/* 76888*/      OPC_EmitInteger, MVT::i32, 76|128,25|128,3/*52428*/, 
/* 76893*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 98,  // Results = #99
/* 76900*/      OPC_EmitInteger, MVT::i32, 76|128,25|128,3/*52428*/, 
/* 76905*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 99, 100,  // Results = #101
/* 76913*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 76916*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::i64, 3/*#Ops*/, 97, 101, 102,  // Results = #103
/* 76925*/      OPC_EmitInteger, MVT::i32, 32, 
/* 76928*/      OPC_EmitInteger, MVT::i32, 31, 
/* 76931*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 103, 104, 105,  // Results = #106
/* 76940*/      OPC_EmitInteger, MVT::i64, 76|128,25|128,3/*52428*/, 
/* 76945*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 106, 107,  // Results = #108
/* 76953*/      OPC_EmitInteger, MVT::i64, 76|128,25|128,3/*52428*/, 
/* 76958*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 108, 109,  // Results = #110
/* 76966*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 96, 110,  // Results = #111
/* 76974*/      OPC_EmitNode1, TARGET_VAL(PPC::OR8), 0,
                    MVT::i64, 2/*#Ops*/, 56, 111,  // Results = #112
/* 76982*/      OPC_EmitInteger, MVT::i32, 60, 
/* 76985*/      OPC_EmitInteger, MVT::i32, 4, 
/* 76988*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                    MVT::i64, 3/*#Ops*/, 112, 113, 114,  // Results = #115
/* 76997*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #116
/* 77003*/      OPC_EmitInteger, MVT::i32, 15|128,30/*3855*/, 
/* 77007*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 117,  // Results = #118
/* 77014*/      OPC_EmitInteger, MVT::i32, 15|128,30/*3855*/, 
/* 77018*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 118, 119,  // Results = #120
/* 77026*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 77029*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::i64, 3/*#Ops*/, 116, 120, 121,  // Results = #122
/* 77038*/      OPC_EmitInteger, MVT::i32, 32, 
/* 77041*/      OPC_EmitInteger, MVT::i32, 31, 
/* 77044*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 122, 123, 124,  // Results = #125
/* 77053*/      OPC_EmitInteger, MVT::i64, 15|128,30/*3855*/, 
/* 77057*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 125, 126,  // Results = #127
/* 77065*/      OPC_EmitInteger, MVT::i64, 15|128,30/*3855*/, 
/* 77069*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 127, 0|128,1/*128*/,  // Results = #129
/* 77078*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 115, 1|128,1/*129*/,  // Results = #130
/* 77087*/      OPC_EmitInteger, MVT::i32, 63, 
/* 77090*/      OPC_EmitInteger, MVT::i32, 1, 
/* 77093*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                    MVT::i64, 3/*#Ops*/, 0, 3|128,1/*131*/, 4|128,1/*132*/,  // Results = #133
/* 77104*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #134
/* 77110*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 77115*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 7|128,1/*135*/,  // Results = #136
/* 77123*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 77128*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 8|128,1/*136*/, 9|128,1/*137*/,  // Results = #138
/* 77138*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 77141*/      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
/* 77153*/      OPC_EmitInteger, MVT::i32, 32, 
/* 77156*/      OPC_EmitInteger, MVT::i32, 31, 
/* 77159*/      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
/* 77171*/      OPC_EmitInteger, MVT::i64, 85|128,42|128,1/*21845*/, 
/* 77176*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 15|128,1/*143*/, 16|128,1/*144*/,  // Results = #145
/* 77186*/      OPC_EmitInteger, MVT::i64, 85|128,42|128,1/*21845*/, 
/* 77191*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 17|128,1/*145*/, 18|128,1/*146*/,  // Results = #147
/* 77201*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 5|128,1/*133*/, 19|128,1/*147*/,  // Results = #148
/* 77211*/      OPC_EmitInteger, MVT::i32, 1, 
/* 77214*/      OPC_EmitInteger, MVT::i32, 62, 
/* 77217*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 0, 21|128,1/*149*/, 22|128,1/*150*/,  // Results = #151
/* 77228*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #152
/* 77234*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 77239*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 25|128,1/*153*/,  // Results = #154
/* 77247*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 77252*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 26|128,1/*154*/, 27|128,1/*155*/,  // Results = #156
/* 77262*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 77265*/      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
/* 77277*/      OPC_EmitInteger, MVT::i32, 32, 
/* 77280*/      OPC_EmitInteger, MVT::i32, 31, 
/* 77283*/      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
/* 77295*/      OPC_EmitInteger, MVT::i64, 42|128,85|128,2/*43690*/, 
/* 77300*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 33|128,1/*161*/, 34|128,1/*162*/,  // Results = #163
/* 77310*/      OPC_EmitInteger, MVT::i64, 42|128,85|128,2/*43690*/, 
/* 77315*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 35|128,1/*163*/, 36|128,1/*164*/,  // Results = #165
/* 77325*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 23|128,1/*151*/, 37|128,1/*165*/,  // Results = #166
/* 77335*/      OPC_EmitNode1, TARGET_VAL(PPC::OR8), 0,
                    MVT::i64, 2/*#Ops*/, 20|128,1/*148*/, 38|128,1/*166*/,  // Results = #167
/* 77345*/      OPC_EmitInteger, MVT::i32, 62, 
/* 77348*/      OPC_EmitInteger, MVT::i32, 2, 
/* 77351*/      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
/* 77363*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #171
/* 77369*/      OPC_EmitInteger, MVT::i32, 51|128,102/*13107*/, 
/* 77373*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 44|128,1/*172*/,  // Results = #173
/* 77381*/      OPC_EmitInteger, MVT::i32, 51|128,102/*13107*/, 
/* 77385*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 45|128,1/*173*/, 46|128,1/*174*/,  // Results = #175
/* 77395*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 77398*/      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
/* 77410*/      OPC_EmitInteger, MVT::i32, 32, 
/* 77413*/      OPC_EmitInteger, MVT::i32, 31, 
/* 77416*/      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
/* 77428*/      OPC_EmitInteger, MVT::i64, 51|128,102/*13107*/, 
/* 77432*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 52|128,1/*180*/, 53|128,1/*181*/,  // Results = #182
/* 77442*/      OPC_EmitInteger, MVT::i64, 51|128,102/*13107*/, 
/* 77446*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 54|128,1/*182*/, 55|128,1/*183*/,  // Results = #184
/* 77456*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 42|128,1/*170*/, 56|128,1/*184*/,  // Results = #185
/* 77466*/      OPC_EmitInteger, MVT::i32, 63, 
/* 77469*/      OPC_EmitInteger, MVT::i32, 1, 
/* 77472*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                    MVT::i64, 3/*#Ops*/, 0, 58|128,1/*186*/, 59|128,1/*187*/,  // Results = #188
/* 77483*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #189
/* 77489*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 77494*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 62|128,1/*190*/,  // Results = #191
/* 77502*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 77507*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 63|128,1/*191*/, 64|128,1/*192*/,  // Results = #193
/* 77517*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 77520*/      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
/* 77532*/      OPC_EmitInteger, MVT::i32, 32, 
/* 77535*/      OPC_EmitInteger, MVT::i32, 31, 
/* 77538*/      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
/* 77550*/      OPC_EmitInteger, MVT::i64, 85|128,42|128,1/*21845*/, 
/* 77555*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 70|128,1/*198*/, 71|128,1/*199*/,  // Results = #200
/* 77565*/      OPC_EmitInteger, MVT::i64, 85|128,42|128,1/*21845*/, 
/* 77570*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 72|128,1/*200*/, 73|128,1/*201*/,  // Results = #202
/* 77580*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 60|128,1/*188*/, 74|128,1/*202*/,  // Results = #203
/* 77590*/      OPC_EmitInteger, MVT::i32, 1, 
/* 77593*/      OPC_EmitInteger, MVT::i32, 62, 
/* 77596*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 0, 76|128,1/*204*/, 77|128,1/*205*/,  // Results = #206
/* 77607*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #207
/* 77613*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 77618*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 80|128,1/*208*/,  // Results = #209
/* 77626*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 77631*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 81|128,1/*209*/, 82|128,1/*210*/,  // Results = #211
/* 77641*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 77644*/      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
/* 77656*/      OPC_EmitInteger, MVT::i32, 32, 
/* 77659*/      OPC_EmitInteger, MVT::i32, 31, 
/* 77662*/      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
/* 77674*/      OPC_EmitInteger, MVT::i64, 42|128,85|128,2/*43690*/, 
/* 77679*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 88|128,1/*216*/, 89|128,1/*217*/,  // Results = #218
/* 77689*/      OPC_EmitInteger, MVT::i64, 42|128,85|128,2/*43690*/, 
/* 77694*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 90|128,1/*218*/, 91|128,1/*219*/,  // Results = #220
/* 77704*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 78|128,1/*206*/, 92|128,1/*220*/,  // Results = #221
/* 77714*/      OPC_EmitNode1, TARGET_VAL(PPC::OR8), 0,
                    MVT::i64, 2/*#Ops*/, 75|128,1/*203*/, 93|128,1/*221*/,  // Results = #222
/* 77724*/      OPC_EmitInteger, MVT::i32, 2, 
/* 77727*/      OPC_EmitInteger, MVT::i32, 61, 
/* 77730*/      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
/* 77742*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #226
/* 77748*/      OPC_EmitInteger, MVT::i32, 76|128,25|128,3/*52428*/, 
/* 77753*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 99|128,1/*227*/,  // Results = #228
/* 77761*/      OPC_EmitInteger, MVT::i32, 76|128,25|128,3/*52428*/, 
/* 77766*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 100|128,1/*228*/, 101|128,1/*229*/,  // Results = #230
/* 77776*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 77779*/      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
/* 77791*/      OPC_EmitInteger, MVT::i32, 32, 
/* 77794*/      OPC_EmitInteger, MVT::i32, 31, 
/* 77797*/      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
/* 77809*/      OPC_EmitInteger, MVT::i64, 76|128,25|128,3/*52428*/, 
/* 77814*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 107|128,1/*235*/, 108|128,1/*236*/,  // Results = #237
/* 77824*/      OPC_EmitInteger, MVT::i64, 76|128,25|128,3/*52428*/, 
/* 77829*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 109|128,1/*237*/, 110|128,1/*238*/,  // Results = #239
/* 77839*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 97|128,1/*225*/, 111|128,1/*239*/,  // Results = #240
/* 77849*/      OPC_EmitNode1, TARGET_VAL(PPC::OR8), 0,
                    MVT::i64, 2/*#Ops*/, 57|128,1/*185*/, 112|128,1/*240*/,  // Results = #241
/* 77859*/      OPC_EmitInteger, MVT::i32, 4, 
/* 77862*/      OPC_EmitInteger, MVT::i32, 59, 
/* 77865*/      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
/* 77877*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #245
/* 77883*/      OPC_EmitInteger, MVT::i32, 112|128,97|128,3/*61680*/, 
/* 77888*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 118|128,1/*246*/,  // Results = #247
/* 77896*/      OPC_EmitInteger, MVT::i32, 112|128,97|128,3/*61680*/, 
/* 77901*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 119|128,1/*247*/, 120|128,1/*248*/,  // Results = #249
/* 77911*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 77914*/      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
/* 77926*/      OPC_EmitInteger, MVT::i32, 32, 
/* 77929*/      OPC_EmitInteger, MVT::i32, 31, 
/* 77932*/      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
/* 77944*/      OPC_EmitInteger, MVT::i64, 112|128,97|128,3/*61680*/, 
/* 77949*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 126|128,1/*254*/, 127|128,1/*255*/,  // Results = #256
/* 77959*/      OPC_EmitInteger, MVT::i64, 112|128,97|128,3/*61680*/, 
/* 77964*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 0|128,2/*256*/, 1|128,2/*257*/,  // Results = #258
/* 77974*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 116|128,1/*244*/, 2|128,2/*258*/,  // Results = #259
/* 77984*/      OPC_EmitNode1, TARGET_VAL(PPC::OR8), 0,
                    MVT::i64, 2/*#Ops*/, 2|128,1/*130*/, 3|128,2/*259*/,  // Results = #260
/* 77994*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 77997*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                    MVT::i32, 2/*#Ops*/, 4|128,2/*260*/, 5|128,2/*261*/,  // Results = #262
/* 78007*/      OPC_EmitInteger, MVT::i32, 24, 
/* 78010*/      OPC_EmitInteger, MVT::i32, 0, 
/* 78013*/      OPC_EmitInteger, MVT::i32, 31, 
/* 78016*/      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
/* 78030*/      OPC_EmitInteger, MVT::i32, 63, 
/* 78033*/      OPC_EmitInteger, MVT::i32, 1, 
/* 78036*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                    MVT::i64, 3/*#Ops*/, 0, 11|128,2/*267*/, 12|128,2/*268*/,  // Results = #269
/* 78047*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #270
/* 78053*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 78058*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 15|128,2/*271*/,  // Results = #272
/* 78066*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 78071*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 16|128,2/*272*/, 17|128,2/*273*/,  // Results = #274
/* 78081*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 78084*/      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
/* 78096*/      OPC_EmitInteger, MVT::i32, 32, 
/* 78099*/      OPC_EmitInteger, MVT::i32, 31, 
/* 78102*/      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
/* 78114*/      OPC_EmitInteger, MVT::i64, 85|128,42|128,1/*21845*/, 
/* 78119*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 23|128,2/*279*/, 24|128,2/*280*/,  // Results = #281
/* 78129*/      OPC_EmitInteger, MVT::i64, 85|128,42|128,1/*21845*/, 
/* 78134*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 25|128,2/*281*/, 26|128,2/*282*/,  // Results = #283
/* 78144*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 13|128,2/*269*/, 27|128,2/*283*/,  // Results = #284
/* 78154*/      OPC_EmitInteger, MVT::i32, 1, 
/* 78157*/      OPC_EmitInteger, MVT::i32, 62, 
/* 78160*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 0, 29|128,2/*285*/, 30|128,2/*286*/,  // Results = #287
/* 78171*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #288
/* 78177*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 78182*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 33|128,2/*289*/,  // Results = #290
/* 78190*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 78195*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 34|128,2/*290*/, 35|128,2/*291*/,  // Results = #292
/* 78205*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 78208*/      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
/* 78220*/      OPC_EmitInteger, MVT::i32, 32, 
/* 78223*/      OPC_EmitInteger, MVT::i32, 31, 
/* 78226*/      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
/* 78238*/      OPC_EmitInteger, MVT::i64, 42|128,85|128,2/*43690*/, 
/* 78243*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 41|128,2/*297*/, 42|128,2/*298*/,  // Results = #299
/* 78253*/      OPC_EmitInteger, MVT::i64, 42|128,85|128,2/*43690*/, 
/* 78258*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 43|128,2/*299*/, 44|128,2/*300*/,  // Results = #301
/* 78268*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 31|128,2/*287*/, 45|128,2/*301*/,  // Results = #302
/* 78278*/      OPC_EmitNode1, TARGET_VAL(PPC::OR8), 0,
                    MVT::i64, 2/*#Ops*/, 28|128,2/*284*/, 46|128,2/*302*/,  // Results = #303
/* 78288*/      OPC_EmitInteger, MVT::i32, 62, 
/* 78291*/      OPC_EmitInteger, MVT::i32, 2, 
/* 78294*/      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
/* 78306*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #307
/* 78312*/      OPC_EmitInteger, MVT::i32, 51|128,102/*13107*/, 
/* 78316*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 52|128,2/*308*/,  // Results = #309
/* 78324*/      OPC_EmitInteger, MVT::i32, 51|128,102/*13107*/, 
/* 78328*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 53|128,2/*309*/, 54|128,2/*310*/,  // Results = #311
/* 78338*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 78341*/      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
/* 78353*/      OPC_EmitInteger, MVT::i32, 32, 
/* 78356*/      OPC_EmitInteger, MVT::i32, 31, 
/* 78359*/      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
/* 78371*/      OPC_EmitInteger, MVT::i64, 51|128,102/*13107*/, 
/* 78375*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 60|128,2/*316*/, 61|128,2/*317*/,  // Results = #318
/* 78385*/      OPC_EmitInteger, MVT::i64, 51|128,102/*13107*/, 
/* 78389*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 62|128,2/*318*/, 63|128,2/*319*/,  // Results = #320
/* 78399*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 50|128,2/*306*/, 64|128,2/*320*/,  // Results = #321
/* 78409*/      OPC_EmitInteger, MVT::i32, 63, 
/* 78412*/      OPC_EmitInteger, MVT::i32, 1, 
/* 78415*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                    MVT::i64, 3/*#Ops*/, 0, 66|128,2/*322*/, 67|128,2/*323*/,  // Results = #324
/* 78426*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #325
/* 78432*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 78437*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 70|128,2/*326*/,  // Results = #327
/* 78445*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 78450*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 71|128,2/*327*/, 72|128,2/*328*/,  // Results = #329
/* 78460*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 78463*/      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
/* 78475*/      OPC_EmitInteger, MVT::i32, 32, 
/* 78478*/      OPC_EmitInteger, MVT::i32, 31, 
/* 78481*/      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
/* 78493*/      OPC_EmitInteger, MVT::i64, 85|128,42|128,1/*21845*/, 
/* 78498*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 78|128,2/*334*/, 79|128,2/*335*/,  // Results = #336
/* 78508*/      OPC_EmitInteger, MVT::i64, 85|128,42|128,1/*21845*/, 
/* 78513*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 80|128,2/*336*/, 81|128,2/*337*/,  // Results = #338
/* 78523*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 68|128,2/*324*/, 82|128,2/*338*/,  // Results = #339
/* 78533*/      OPC_EmitInteger, MVT::i32, 1, 
/* 78536*/      OPC_EmitInteger, MVT::i32, 62, 
/* 78539*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 0, 84|128,2/*340*/, 85|128,2/*341*/,  // Results = #342
/* 78550*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #343
/* 78556*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 78561*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 88|128,2/*344*/,  // Results = #345
/* 78569*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 78574*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 89|128,2/*345*/, 90|128,2/*346*/,  // Results = #347
/* 78584*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 78587*/      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
/* 78599*/      OPC_EmitInteger, MVT::i32, 32, 
/* 78602*/      OPC_EmitInteger, MVT::i32, 31, 
/* 78605*/      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
/* 78617*/      OPC_EmitInteger, MVT::i64, 42|128,85|128,2/*43690*/, 
/* 78622*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 96|128,2/*352*/, 97|128,2/*353*/,  // Results = #354
/* 78632*/      OPC_EmitInteger, MVT::i64, 42|128,85|128,2/*43690*/, 
/* 78637*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 98|128,2/*354*/, 99|128,2/*355*/,  // Results = #356
/* 78647*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 86|128,2/*342*/, 100|128,2/*356*/,  // Results = #357
/* 78657*/      OPC_EmitNode1, TARGET_VAL(PPC::OR8), 0,
                    MVT::i64, 2/*#Ops*/, 83|128,2/*339*/, 101|128,2/*357*/,  // Results = #358
/* 78667*/      OPC_EmitInteger, MVT::i32, 2, 
/* 78670*/      OPC_EmitInteger, MVT::i32, 61, 
/* 78673*/      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
/* 78685*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #362
/* 78691*/      OPC_EmitInteger, MVT::i32, 76|128,25|128,3/*52428*/, 
/* 78696*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 107|128,2/*363*/,  // Results = #364
/* 78704*/      OPC_EmitInteger, MVT::i32, 76|128,25|128,3/*52428*/, 
/* 78709*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 108|128,2/*364*/, 109|128,2/*365*/,  // Results = #366
/* 78719*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 78722*/      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
/* 78734*/      OPC_EmitInteger, MVT::i32, 32, 
/* 78737*/      OPC_EmitInteger, MVT::i32, 31, 
/* 78740*/      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
/* 78752*/      OPC_EmitInteger, MVT::i64, 76|128,25|128,3/*52428*/, 
/* 78757*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 115|128,2/*371*/, 116|128,2/*372*/,  // Results = #373
/* 78767*/      OPC_EmitInteger, MVT::i64, 76|128,25|128,3/*52428*/, 
/* 78772*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 117|128,2/*373*/, 118|128,2/*374*/,  // Results = #375
/* 78782*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 105|128,2/*361*/, 119|128,2/*375*/,  // Results = #376
/* 78792*/      OPC_EmitNode1, TARGET_VAL(PPC::OR8), 0,
                    MVT::i64, 2/*#Ops*/, 65|128,2/*321*/, 120|128,2/*376*/,  // Results = #377
/* 78802*/      OPC_EmitInteger, MVT::i32, 60, 
/* 78805*/      OPC_EmitInteger, MVT::i32, 4, 
/* 78808*/      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
/* 78820*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #381
/* 78826*/      OPC_EmitInteger, MVT::i32, 15|128,30/*3855*/, 
/* 78830*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 126|128,2/*382*/,  // Results = #383
/* 78838*/      OPC_EmitInteger, MVT::i32, 15|128,30/*3855*/, 
/* 78842*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 127|128,2/*383*/, 0|128,3/*384*/,  // Results = #385
/* 78852*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 78855*/      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
/* 78867*/      OPC_EmitInteger, MVT::i32, 32, 
/* 78870*/      OPC_EmitInteger, MVT::i32, 31, 
/* 78873*/      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
/* 78885*/      OPC_EmitInteger, MVT::i64, 15|128,30/*3855*/, 
/* 78889*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 6|128,3/*390*/, 7|128,3/*391*/,  // Results = #392
/* 78899*/      OPC_EmitInteger, MVT::i64, 15|128,30/*3855*/, 
/* 78903*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 8|128,3/*392*/, 9|128,3/*393*/,  // Results = #394
/* 78913*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 124|128,2/*380*/, 10|128,3/*394*/,  // Results = #395
/* 78923*/      OPC_EmitInteger, MVT::i32, 63, 
/* 78926*/      OPC_EmitInteger, MVT::i32, 1, 
/* 78929*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                    MVT::i64, 3/*#Ops*/, 0, 12|128,3/*396*/, 13|128,3/*397*/,  // Results = #398
/* 78940*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #399
/* 78946*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 78951*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 16|128,3/*400*/,  // Results = #401
/* 78959*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 78964*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 17|128,3/*401*/, 18|128,3/*402*/,  // Results = #403
/* 78974*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 78977*/      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
/* 78989*/      OPC_EmitInteger, MVT::i32, 32, 
/* 78992*/      OPC_EmitInteger, MVT::i32, 31, 
/* 78995*/      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
/* 79007*/      OPC_EmitInteger, MVT::i64, 85|128,42|128,1/*21845*/, 
/* 79012*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 24|128,3/*408*/, 25|128,3/*409*/,  // Results = #410
/* 79022*/      OPC_EmitInteger, MVT::i64, 85|128,42|128,1/*21845*/, 
/* 79027*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 26|128,3/*410*/, 27|128,3/*411*/,  // Results = #412
/* 79037*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 14|128,3/*398*/, 28|128,3/*412*/,  // Results = #413
/* 79047*/      OPC_EmitInteger, MVT::i32, 1, 
/* 79050*/      OPC_EmitInteger, MVT::i32, 62, 
/* 79053*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 0, 30|128,3/*414*/, 31|128,3/*415*/,  // Results = #416
/* 79064*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #417
/* 79070*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 79075*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 34|128,3/*418*/,  // Results = #419
/* 79083*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 79088*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 35|128,3/*419*/, 36|128,3/*420*/,  // Results = #421
/* 79098*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 79101*/      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
/* 79113*/      OPC_EmitInteger, MVT::i32, 32, 
/* 79116*/      OPC_EmitInteger, MVT::i32, 31, 
/* 79119*/      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
/* 79131*/      OPC_EmitInteger, MVT::i64, 42|128,85|128,2/*43690*/, 
/* 79136*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 42|128,3/*426*/, 43|128,3/*427*/,  // Results = #428
/* 79146*/      OPC_EmitInteger, MVT::i64, 42|128,85|128,2/*43690*/, 
/* 79151*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 44|128,3/*428*/, 45|128,3/*429*/,  // Results = #430
/* 79161*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 32|128,3/*416*/, 46|128,3/*430*/,  // Results = #431
/* 79171*/      OPC_EmitNode1, TARGET_VAL(PPC::OR8), 0,
                    MVT::i64, 2/*#Ops*/, 29|128,3/*413*/, 47|128,3/*431*/,  // Results = #432
/* 79181*/      OPC_EmitInteger, MVT::i32, 62, 
/* 79184*/      OPC_EmitInteger, MVT::i32, 2, 
/* 79187*/      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
/* 79199*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #436
/* 79205*/      OPC_EmitInteger, MVT::i32, 51|128,102/*13107*/, 
/* 79209*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 53|128,3/*437*/,  // Results = #438
/* 79217*/      OPC_EmitInteger, MVT::i32, 51|128,102/*13107*/, 
/* 79221*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 54|128,3/*438*/, 55|128,3/*439*/,  // Results = #440
/* 79231*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 79234*/      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
/* 79246*/      OPC_EmitInteger, MVT::i32, 32, 
/* 79249*/      OPC_EmitInteger, MVT::i32, 31, 
/* 79252*/      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
/* 79264*/      OPC_EmitInteger, MVT::i64, 51|128,102/*13107*/, 
/* 79268*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 61|128,3/*445*/, 62|128,3/*446*/,  // Results = #447
/* 79278*/      OPC_EmitInteger, MVT::i64, 51|128,102/*13107*/, 
/* 79282*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 63|128,3/*447*/, 64|128,3/*448*/,  // Results = #449
/* 79292*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 51|128,3/*435*/, 65|128,3/*449*/,  // Results = #450
/* 79302*/      OPC_EmitInteger, MVT::i32, 63, 
/* 79305*/      OPC_EmitInteger, MVT::i32, 1, 
/* 79308*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                    MVT::i64, 3/*#Ops*/, 0, 67|128,3/*451*/, 68|128,3/*452*/,  // Results = #453
/* 79319*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #454
/* 79325*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 79330*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 71|128,3/*455*/,  // Results = #456
/* 79338*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 79343*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 72|128,3/*456*/, 73|128,3/*457*/,  // Results = #458
/* 79353*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 79356*/      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
/* 79368*/      OPC_EmitInteger, MVT::i32, 32, 
/* 79371*/      OPC_EmitInteger, MVT::i32, 31, 
/* 79374*/      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
/* 79386*/      OPC_EmitInteger, MVT::i64, 85|128,42|128,1/*21845*/, 
/* 79391*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 79|128,3/*463*/, 80|128,3/*464*/,  // Results = #465
/* 79401*/      OPC_EmitInteger, MVT::i64, 85|128,42|128,1/*21845*/, 
/* 79406*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 81|128,3/*465*/, 82|128,3/*466*/,  // Results = #467
/* 79416*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 69|128,3/*453*/, 83|128,3/*467*/,  // Results = #468
/* 79426*/      OPC_EmitInteger, MVT::i32, 1, 
/* 79429*/      OPC_EmitInteger, MVT::i32, 62, 
/* 79432*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 0, 85|128,3/*469*/, 86|128,3/*470*/,  // Results = #471
/* 79443*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #472
/* 79449*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 79454*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 89|128,3/*473*/,  // Results = #474
/* 79462*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 79467*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 90|128,3/*474*/, 91|128,3/*475*/,  // Results = #476
/* 79477*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 79480*/      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
/* 79492*/      OPC_EmitInteger, MVT::i32, 32, 
/* 79495*/      OPC_EmitInteger, MVT::i32, 31, 
/* 79498*/      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
/* 79510*/      OPC_EmitInteger, MVT::i64, 42|128,85|128,2/*43690*/, 
/* 79515*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 97|128,3/*481*/, 98|128,3/*482*/,  // Results = #483
/* 79525*/      OPC_EmitInteger, MVT::i64, 42|128,85|128,2/*43690*/, 
/* 79530*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 99|128,3/*483*/, 100|128,3/*484*/,  // Results = #485
/* 79540*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 87|128,3/*471*/, 101|128,3/*485*/,  // Results = #486
/* 79550*/      OPC_EmitNode1, TARGET_VAL(PPC::OR8), 0,
                    MVT::i64, 2/*#Ops*/, 84|128,3/*468*/, 102|128,3/*486*/,  // Results = #487
/* 79560*/      OPC_EmitInteger, MVT::i32, 2, 
/* 79563*/      OPC_EmitInteger, MVT::i32, 61, 
/* 79566*/      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
/* 79578*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #491
/* 79584*/      OPC_EmitInteger, MVT::i32, 76|128,25|128,3/*52428*/, 
/* 79589*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 108|128,3/*492*/,  // Results = #493
/* 79597*/      OPC_EmitInteger, MVT::i32, 76|128,25|128,3/*52428*/, 
/* 79602*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 109|128,3/*493*/, 110|128,3/*494*/,  // Results = #495
/* 79612*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 79615*/      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
/* 79627*/      OPC_EmitInteger, MVT::i32, 32, 
/* 79630*/      OPC_EmitInteger, MVT::i32, 31, 
/* 79633*/      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
/* 79645*/      OPC_EmitInteger, MVT::i64, 76|128,25|128,3/*52428*/, 
/* 79650*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 116|128,3/*500*/, 117|128,3/*501*/,  // Results = #502
/* 79660*/      OPC_EmitInteger, MVT::i64, 76|128,25|128,3/*52428*/, 
/* 79665*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 118|128,3/*502*/, 119|128,3/*503*/,  // Results = #504
/* 79675*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 106|128,3/*490*/, 120|128,3/*504*/,  // Results = #505
/* 79685*/      OPC_EmitNode1, TARGET_VAL(PPC::OR8), 0,
                    MVT::i64, 2/*#Ops*/, 66|128,3/*450*/, 121|128,3/*505*/,  // Results = #506
/* 79695*/      OPC_EmitInteger, MVT::i32, 4, 
/* 79698*/      OPC_EmitInteger, MVT::i32, 59, 
/* 79701*/      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
/* 79713*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #510
/* 79719*/      OPC_EmitInteger, MVT::i32, 112|128,97|128,3/*61680*/, 
/* 79724*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 127|128,3/*511*/,  // Results = #512
/* 79732*/      OPC_EmitInteger, MVT::i32, 112|128,97|128,3/*61680*/, 
/* 79737*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 0|128,4/*512*/, 1|128,4/*513*/,  // Results = #514
/* 79747*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 79750*/      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
/* 79762*/      OPC_EmitInteger, MVT::i32, 32, 
/* 79765*/      OPC_EmitInteger, MVT::i32, 31, 
/* 79768*/      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
/* 79780*/      OPC_EmitInteger, MVT::i64, 112|128,97|128,3/*61680*/, 
/* 79785*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 7|128,4/*519*/, 8|128,4/*520*/,  // Results = #521
/* 79795*/      OPC_EmitInteger, MVT::i64, 112|128,97|128,3/*61680*/, 
/* 79800*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 9|128,4/*521*/, 10|128,4/*522*/,  // Results = #523
/* 79810*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 125|128,3/*509*/, 11|128,4/*523*/,  // Results = #524
/* 79820*/      OPC_EmitNode1, TARGET_VAL(PPC::OR8), 0,
                    MVT::i64, 2/*#Ops*/, 11|128,3/*395*/, 12|128,4/*524*/,  // Results = #525
/* 79830*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 79833*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                    MVT::i32, 2/*#Ops*/, 13|128,4/*525*/, 14|128,4/*526*/,  // Results = #527
/* 79843*/      OPC_EmitInteger, MVT::i32, 8, 
/* 79846*/      OPC_EmitInteger, MVT::i32, 8, 
/* 79849*/      OPC_EmitInteger, MVT::i32, 15, 
/* 79852*/      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
/* 79868*/      OPC_EmitInteger, MVT::i32, 63, 
/* 79871*/      OPC_EmitInteger, MVT::i32, 1, 
/* 79874*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                    MVT::i64, 3/*#Ops*/, 0, 20|128,4/*532*/, 21|128,4/*533*/,  // Results = #534
/* 79885*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #535
/* 79891*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 79896*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 24|128,4/*536*/,  // Results = #537
/* 79904*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 79909*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 25|128,4/*537*/, 26|128,4/*538*/,  // Results = #539
/* 79919*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 79922*/      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
/* 79934*/      OPC_EmitInteger, MVT::i32, 32, 
/* 79937*/      OPC_EmitInteger, MVT::i32, 31, 
/* 79940*/      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
/* 79952*/      OPC_EmitInteger, MVT::i64, 85|128,42|128,1/*21845*/, 
/* 79957*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 32|128,4/*544*/, 33|128,4/*545*/,  // Results = #546
/* 79967*/      OPC_EmitInteger, MVT::i64, 85|128,42|128,1/*21845*/, 
/* 79972*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 34|128,4/*546*/, 35|128,4/*547*/,  // Results = #548
/* 79982*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 22|128,4/*534*/, 36|128,4/*548*/,  // Results = #549
/* 79992*/      OPC_EmitInteger, MVT::i32, 1, 
/* 79995*/      OPC_EmitInteger, MVT::i32, 62, 
/* 79998*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 0, 38|128,4/*550*/, 39|128,4/*551*/,  // Results = #552
/* 80009*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #553
/* 80015*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 80020*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 42|128,4/*554*/,  // Results = #555
/* 80028*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 80033*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 43|128,4/*555*/, 44|128,4/*556*/,  // Results = #557
/* 80043*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 80046*/      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
/* 80058*/      OPC_EmitInteger, MVT::i32, 32, 
/* 80061*/      OPC_EmitInteger, MVT::i32, 31, 
/* 80064*/      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
/* 80076*/      OPC_EmitInteger, MVT::i64, 42|128,85|128,2/*43690*/, 
/* 80081*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 50|128,4/*562*/, 51|128,4/*563*/,  // Results = #564
/* 80091*/      OPC_EmitInteger, MVT::i64, 42|128,85|128,2/*43690*/, 
/* 80096*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 52|128,4/*564*/, 53|128,4/*565*/,  // Results = #566
/* 80106*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 40|128,4/*552*/, 54|128,4/*566*/,  // Results = #567
/* 80116*/      OPC_EmitNode1, TARGET_VAL(PPC::OR8), 0,
                    MVT::i64, 2/*#Ops*/, 37|128,4/*549*/, 55|128,4/*567*/,  // Results = #568
/* 80126*/      OPC_EmitInteger, MVT::i32, 62, 
/* 80129*/      OPC_EmitInteger, MVT::i32, 2, 
/* 80132*/      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
/* 80144*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #572
/* 80150*/      OPC_EmitInteger, MVT::i32, 51|128,102/*13107*/, 
/* 80154*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 61|128,4/*573*/,  // Results = #574
/* 80162*/      OPC_EmitInteger, MVT::i32, 51|128,102/*13107*/, 
/* 80166*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 62|128,4/*574*/, 63|128,4/*575*/,  // Results = #576
/* 80176*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 80179*/      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
/* 80191*/      OPC_EmitInteger, MVT::i32, 32, 
/* 80194*/      OPC_EmitInteger, MVT::i32, 31, 
/* 80197*/      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
/* 80209*/      OPC_EmitInteger, MVT::i64, 51|128,102/*13107*/, 
/* 80213*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 69|128,4/*581*/, 70|128,4/*582*/,  // Results = #583
/* 80223*/      OPC_EmitInteger, MVT::i64, 51|128,102/*13107*/, 
/* 80227*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 71|128,4/*583*/, 72|128,4/*584*/,  // Results = #585
/* 80237*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 59|128,4/*571*/, 73|128,4/*585*/,  // Results = #586
/* 80247*/      OPC_EmitInteger, MVT::i32, 63, 
/* 80250*/      OPC_EmitInteger, MVT::i32, 1, 
/* 80253*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                    MVT::i64, 3/*#Ops*/, 0, 75|128,4/*587*/, 76|128,4/*588*/,  // Results = #589
/* 80264*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #590
/* 80270*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 80275*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 79|128,4/*591*/,  // Results = #592
/* 80283*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 80288*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 80|128,4/*592*/, 81|128,4/*593*/,  // Results = #594
/* 80298*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 80301*/      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
/* 80313*/      OPC_EmitInteger, MVT::i32, 32, 
/* 80316*/      OPC_EmitInteger, MVT::i32, 31, 
/* 80319*/      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
/* 80331*/      OPC_EmitInteger, MVT::i64, 85|128,42|128,1/*21845*/, 
/* 80336*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 87|128,4/*599*/, 88|128,4/*600*/,  // Results = #601
/* 80346*/      OPC_EmitInteger, MVT::i64, 85|128,42|128,1/*21845*/, 
/* 80351*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 89|128,4/*601*/, 90|128,4/*602*/,  // Results = #603
/* 80361*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 77|128,4/*589*/, 91|128,4/*603*/,  // Results = #604
/* 80371*/      OPC_EmitInteger, MVT::i32, 1, 
/* 80374*/      OPC_EmitInteger, MVT::i32, 62, 
/* 80377*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 0, 93|128,4/*605*/, 94|128,4/*606*/,  // Results = #607
/* 80388*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #608
/* 80394*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 80399*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 97|128,4/*609*/,  // Results = #610
/* 80407*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 80412*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 98|128,4/*610*/, 99|128,4/*611*/,  // Results = #612
/* 80422*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 80425*/      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
/* 80437*/      OPC_EmitInteger, MVT::i32, 32, 
/* 80440*/      OPC_EmitInteger, MVT::i32, 31, 
/* 80443*/      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
/* 80455*/      OPC_EmitInteger, MVT::i64, 42|128,85|128,2/*43690*/, 
/* 80460*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 105|128,4/*617*/, 106|128,4/*618*/,  // Results = #619
/* 80470*/      OPC_EmitInteger, MVT::i64, 42|128,85|128,2/*43690*/, 
/* 80475*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 107|128,4/*619*/, 108|128,4/*620*/,  // Results = #621
/* 80485*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 95|128,4/*607*/, 109|128,4/*621*/,  // Results = #622
/* 80495*/      OPC_EmitNode1, TARGET_VAL(PPC::OR8), 0,
                    MVT::i64, 2/*#Ops*/, 92|128,4/*604*/, 110|128,4/*622*/,  // Results = #623
/* 80505*/      OPC_EmitInteger, MVT::i32, 2, 
/* 80508*/      OPC_EmitInteger, MVT::i32, 61, 
/* 80511*/      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
/* 80523*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #627
/* 80529*/      OPC_EmitInteger, MVT::i32, 76|128,25|128,3/*52428*/, 
/* 80534*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 116|128,4/*628*/,  // Results = #629
/* 80542*/      OPC_EmitInteger, MVT::i32, 76|128,25|128,3/*52428*/, 
/* 80547*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 117|128,4/*629*/, 118|128,4/*630*/,  // Results = #631
/* 80557*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 80560*/      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
/* 80572*/      OPC_EmitInteger, MVT::i32, 32, 
/* 80575*/      OPC_EmitInteger, MVT::i32, 31, 
/* 80578*/      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
/* 80590*/      OPC_EmitInteger, MVT::i64, 76|128,25|128,3/*52428*/, 
/* 80595*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 124|128,4/*636*/, 125|128,4/*637*/,  // Results = #638
/* 80605*/      OPC_EmitInteger, MVT::i64, 76|128,25|128,3/*52428*/, 
/* 80610*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 126|128,4/*638*/, 127|128,4/*639*/,  // Results = #640
/* 80620*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 114|128,4/*626*/, 0|128,5/*640*/,  // Results = #641
/* 80630*/      OPC_EmitNode1, TARGET_VAL(PPC::OR8), 0,
                    MVT::i64, 2/*#Ops*/, 74|128,4/*586*/, 1|128,5/*641*/,  // Results = #642
/* 80640*/      OPC_EmitInteger, MVT::i32, 60, 
/* 80643*/      OPC_EmitInteger, MVT::i32, 4, 
/* 80646*/      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
/* 80658*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #646
/* 80664*/      OPC_EmitInteger, MVT::i32, 15|128,30/*3855*/, 
/* 80668*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 7|128,5/*647*/,  // Results = #648
/* 80676*/      OPC_EmitInteger, MVT::i32, 15|128,30/*3855*/, 
/* 80680*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 8|128,5/*648*/, 9|128,5/*649*/,  // Results = #650
/* 80690*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 80693*/      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
/* 80705*/      OPC_EmitInteger, MVT::i32, 32, 
/* 80708*/      OPC_EmitInteger, MVT::i32, 31, 
/* 80711*/      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
/* 80723*/      OPC_EmitInteger, MVT::i64, 15|128,30/*3855*/, 
/* 80727*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 15|128,5/*655*/, 16|128,5/*656*/,  // Results = #657
/* 80737*/      OPC_EmitInteger, MVT::i64, 15|128,30/*3855*/, 
/* 80741*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 17|128,5/*657*/, 18|128,5/*658*/,  // Results = #659
/* 80751*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 5|128,5/*645*/, 19|128,5/*659*/,  // Results = #660
/* 80761*/      OPC_EmitInteger, MVT::i32, 63, 
/* 80764*/      OPC_EmitInteger, MVT::i32, 1, 
/* 80767*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                    MVT::i64, 3/*#Ops*/, 0, 21|128,5/*661*/, 22|128,5/*662*/,  // Results = #663
/* 80778*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #664
/* 80784*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 80789*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 25|128,5/*665*/,  // Results = #666
/* 80797*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 80802*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 26|128,5/*666*/, 27|128,5/*667*/,  // Results = #668
/* 80812*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 80815*/      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
/* 80827*/      OPC_EmitInteger, MVT::i32, 32, 
/* 80830*/      OPC_EmitInteger, MVT::i32, 31, 
/* 80833*/      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
/* 80845*/      OPC_EmitInteger, MVT::i64, 85|128,42|128,1/*21845*/, 
/* 80850*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 33|128,5/*673*/, 34|128,5/*674*/,  // Results = #675
/* 80860*/      OPC_EmitInteger, MVT::i64, 85|128,42|128,1/*21845*/, 
/* 80865*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 35|128,5/*675*/, 36|128,5/*676*/,  // Results = #677
/* 80875*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 23|128,5/*663*/, 37|128,5/*677*/,  // Results = #678
/* 80885*/      OPC_EmitInteger, MVT::i32, 1, 
/* 80888*/      OPC_EmitInteger, MVT::i32, 62, 
/* 80891*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 0, 39|128,5/*679*/, 40|128,5/*680*/,  // Results = #681
/* 80902*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #682
/* 80908*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 80913*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 43|128,5/*683*/,  // Results = #684
/* 80921*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 80926*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 44|128,5/*684*/, 45|128,5/*685*/,  // Results = #686
/* 80936*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 80939*/      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
/* 80951*/      OPC_EmitInteger, MVT::i32, 32, 
/* 80954*/      OPC_EmitInteger, MVT::i32, 31, 
/* 80957*/      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
/* 80969*/      OPC_EmitInteger, MVT::i64, 42|128,85|128,2/*43690*/, 
/* 80974*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 51|128,5/*691*/, 52|128,5/*692*/,  // Results = #693
/* 80984*/      OPC_EmitInteger, MVT::i64, 42|128,85|128,2/*43690*/, 
/* 80989*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 53|128,5/*693*/, 54|128,5/*694*/,  // Results = #695
/* 80999*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 41|128,5/*681*/, 55|128,5/*695*/,  // Results = #696
/* 81009*/      OPC_EmitNode1, TARGET_VAL(PPC::OR8), 0,
                    MVT::i64, 2/*#Ops*/, 38|128,5/*678*/, 56|128,5/*696*/,  // Results = #697
/* 81019*/      OPC_EmitInteger, MVT::i32, 62, 
/* 81022*/      OPC_EmitInteger, MVT::i32, 2, 
/* 81025*/      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
/* 81037*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #701
/* 81043*/      OPC_EmitInteger, MVT::i32, 51|128,102/*13107*/, 
/* 81047*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 62|128,5/*702*/,  // Results = #703
/* 81055*/      OPC_EmitInteger, MVT::i32, 51|128,102/*13107*/, 
/* 81059*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 63|128,5/*703*/, 64|128,5/*704*/,  // Results = #705
/* 81069*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 81072*/      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
/* 81084*/      OPC_EmitInteger, MVT::i32, 32, 
/* 81087*/      OPC_EmitInteger, MVT::i32, 31, 
/* 81090*/      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
/* 81102*/      OPC_EmitInteger, MVT::i64, 51|128,102/*13107*/, 
/* 81106*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 70|128,5/*710*/, 71|128,5/*711*/,  // Results = #712
/* 81116*/      OPC_EmitInteger, MVT::i64, 51|128,102/*13107*/, 
/* 81120*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 72|128,5/*712*/, 73|128,5/*713*/,  // Results = #714
/* 81130*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 60|128,5/*700*/, 74|128,5/*714*/,  // Results = #715
/* 81140*/      OPC_EmitInteger, MVT::i32, 63, 
/* 81143*/      OPC_EmitInteger, MVT::i32, 1, 
/* 81146*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                    MVT::i64, 3/*#Ops*/, 0, 76|128,5/*716*/, 77|128,5/*717*/,  // Results = #718
/* 81157*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #719
/* 81163*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 81168*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 80|128,5/*720*/,  // Results = #721
/* 81176*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 81181*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 81|128,5/*721*/, 82|128,5/*722*/,  // Results = #723
/* 81191*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 81194*/      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
/* 81206*/      OPC_EmitInteger, MVT::i32, 32, 
/* 81209*/      OPC_EmitInteger, MVT::i32, 31, 
/* 81212*/      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
/* 81224*/      OPC_EmitInteger, MVT::i64, 85|128,42|128,1/*21845*/, 
/* 81229*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 88|128,5/*728*/, 89|128,5/*729*/,  // Results = #730
/* 81239*/      OPC_EmitInteger, MVT::i64, 85|128,42|128,1/*21845*/, 
/* 81244*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 90|128,5/*730*/, 91|128,5/*731*/,  // Results = #732
/* 81254*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 78|128,5/*718*/, 92|128,5/*732*/,  // Results = #733
/* 81264*/      OPC_EmitInteger, MVT::i32, 1, 
/* 81267*/      OPC_EmitInteger, MVT::i32, 62, 
/* 81270*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 0, 94|128,5/*734*/, 95|128,5/*735*/,  // Results = #736
/* 81281*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #737
/* 81287*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 81292*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 98|128,5/*738*/,  // Results = #739
/* 81300*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 81305*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 99|128,5/*739*/, 100|128,5/*740*/,  // Results = #741
/* 81315*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 81318*/      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
/* 81330*/      OPC_EmitInteger, MVT::i32, 32, 
/* 81333*/      OPC_EmitInteger, MVT::i32, 31, 
/* 81336*/      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
/* 81348*/      OPC_EmitInteger, MVT::i64, 42|128,85|128,2/*43690*/, 
/* 81353*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 106|128,5/*746*/, 107|128,5/*747*/,  // Results = #748
/* 81363*/      OPC_EmitInteger, MVT::i64, 42|128,85|128,2/*43690*/, 
/* 81368*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 108|128,5/*748*/, 109|128,5/*749*/,  // Results = #750
/* 81378*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 96|128,5/*736*/, 110|128,5/*750*/,  // Results = #751
/* 81388*/      OPC_EmitNode1, TARGET_VAL(PPC::OR8), 0,
                    MVT::i64, 2/*#Ops*/, 93|128,5/*733*/, 111|128,5/*751*/,  // Results = #752
/* 81398*/      OPC_EmitInteger, MVT::i32, 2, 
/* 81401*/      OPC_EmitInteger, MVT::i32, 61, 
/* 81404*/      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
/* 81416*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #756
/* 81422*/      OPC_EmitInteger, MVT::i32, 76|128,25|128,3/*52428*/, 
/* 81427*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 117|128,5/*757*/,  // Results = #758
/* 81435*/      OPC_EmitInteger, MVT::i32, 76|128,25|128,3/*52428*/, 
/* 81440*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 118|128,5/*758*/, 119|128,5/*759*/,  // Results = #760
/* 81450*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 81453*/      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
/* 81465*/      OPC_EmitInteger, MVT::i32, 32, 
/* 81468*/      OPC_EmitInteger, MVT::i32, 31, 
/* 81471*/      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
/* 81483*/      OPC_EmitInteger, MVT::i64, 76|128,25|128,3/*52428*/, 
/* 81488*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 125|128,5/*765*/, 126|128,5/*766*/,  // Results = #767
/* 81498*/      OPC_EmitInteger, MVT::i64, 76|128,25|128,3/*52428*/, 
/* 81503*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 127|128,5/*767*/, 0|128,6/*768*/,  // Results = #769
/* 81513*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 115|128,5/*755*/, 1|128,6/*769*/,  // Results = #770
/* 81523*/      OPC_EmitNode1, TARGET_VAL(PPC::OR8), 0,
                    MVT::i64, 2/*#Ops*/, 75|128,5/*715*/, 2|128,6/*770*/,  // Results = #771
/* 81533*/      OPC_EmitInteger, MVT::i32, 4, 
/* 81536*/      OPC_EmitInteger, MVT::i32, 59, 
/* 81539*/      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
/* 81551*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #775
/* 81557*/      OPC_EmitInteger, MVT::i32, 112|128,97|128,3/*61680*/, 
/* 81562*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 8|128,6/*776*/,  // Results = #777
/* 81570*/      OPC_EmitInteger, MVT::i32, 112|128,97|128,3/*61680*/, 
/* 81575*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 9|128,6/*777*/, 10|128,6/*778*/,  // Results = #779
/* 81585*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 81588*/      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
/* 81600*/      OPC_EmitInteger, MVT::i32, 32, 
/* 81603*/      OPC_EmitInteger, MVT::i32, 31, 
/* 81606*/      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
/* 81618*/      OPC_EmitInteger, MVT::i64, 112|128,97|128,3/*61680*/, 
/* 81623*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 16|128,6/*784*/, 17|128,6/*785*/,  // Results = #786
/* 81633*/      OPC_EmitInteger, MVT::i64, 112|128,97|128,3/*61680*/, 
/* 81638*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 18|128,6/*786*/, 19|128,6/*787*/,  // Results = #788
/* 81648*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 6|128,6/*774*/, 20|128,6/*788*/,  // Results = #789
/* 81658*/      OPC_EmitNode1, TARGET_VAL(PPC::OR8), 0,
                    MVT::i64, 2/*#Ops*/, 20|128,5/*660*/, 21|128,6/*789*/,  // Results = #790
/* 81668*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 81671*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                    MVT::i32, 2/*#Ops*/, 22|128,6/*790*/, 23|128,6/*791*/,  // Results = #792
/* 81681*/      OPC_EmitInteger, MVT::i32, 8, 
/* 81684*/      OPC_EmitInteger, MVT::i32, 24, 
/* 81687*/      OPC_EmitInteger, MVT::i32, 31, 
/* 81690*/      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
/* 81706*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 81709*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::i64, 3/*#Ops*/, 1, 28|128,6/*796*/, 29|128,6/*797*/,  // Results = #798
/* 81720*/      OPC_EmitInteger, MVT::i32, 32, 
/* 81723*/      OPC_EmitInteger, MVT::i32, 31, 
/* 81726*/      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
/* 81738*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #802
/* 81744*/      OPC_EmitInteger, MVT::i32, 63, 
/* 81747*/      OPC_EmitInteger, MVT::i32, 1, 
/* 81750*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                    MVT::i64, 3/*#Ops*/, 0, 35|128,6/*803*/, 36|128,6/*804*/,  // Results = #805
/* 81761*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #806
/* 81767*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 81772*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 39|128,6/*807*/,  // Results = #808
/* 81780*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 81785*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 40|128,6/*808*/, 41|128,6/*809*/,  // Results = #810
/* 81795*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 81798*/      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
/* 81810*/      OPC_EmitInteger, MVT::i32, 32, 
/* 81813*/      OPC_EmitInteger, MVT::i32, 31, 
/* 81816*/      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
/* 81828*/      OPC_EmitInteger, MVT::i64, 85|128,42|128,1/*21845*/, 
/* 81833*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 47|128,6/*815*/, 48|128,6/*816*/,  // Results = #817
/* 81843*/      OPC_EmitInteger, MVT::i64, 85|128,42|128,1/*21845*/, 
/* 81848*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 49|128,6/*817*/, 50|128,6/*818*/,  // Results = #819
/* 81858*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 37|128,6/*805*/, 51|128,6/*819*/,  // Results = #820
/* 81868*/      OPC_EmitInteger, MVT::i32, 1, 
/* 81871*/      OPC_EmitInteger, MVT::i32, 62, 
/* 81874*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 0, 53|128,6/*821*/, 54|128,6/*822*/,  // Results = #823
/* 81885*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #824
/* 81891*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 81896*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 57|128,6/*825*/,  // Results = #826
/* 81904*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 81909*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 58|128,6/*826*/, 59|128,6/*827*/,  // Results = #828
/* 81919*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 81922*/      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
/* 81934*/      OPC_EmitInteger, MVT::i32, 32, 
/* 81937*/      OPC_EmitInteger, MVT::i32, 31, 
/* 81940*/      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
/* 81952*/      OPC_EmitInteger, MVT::i64, 42|128,85|128,2/*43690*/, 
/* 81957*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 65|128,6/*833*/, 66|128,6/*834*/,  // Results = #835
/* 81967*/      OPC_EmitInteger, MVT::i64, 42|128,85|128,2/*43690*/, 
/* 81972*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 67|128,6/*835*/, 68|128,6/*836*/,  // Results = #837
/* 81982*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 55|128,6/*823*/, 69|128,6/*837*/,  // Results = #838
/* 81992*/      OPC_EmitNode1, TARGET_VAL(PPC::OR8), 0,
                    MVT::i64, 2/*#Ops*/, 52|128,6/*820*/, 70|128,6/*838*/,  // Results = #839
/* 82002*/      OPC_EmitInteger, MVT::i32, 62, 
/* 82005*/      OPC_EmitInteger, MVT::i32, 2, 
/* 82008*/      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
/* 82020*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #843
/* 82026*/      OPC_EmitInteger, MVT::i32, 51|128,102/*13107*/, 
/* 82030*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 76|128,6/*844*/,  // Results = #845
/* 82038*/      OPC_EmitInteger, MVT::i32, 51|128,102/*13107*/, 
/* 82042*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 77|128,6/*845*/, 78|128,6/*846*/,  // Results = #847
/* 82052*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 82055*/      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
/* 82067*/      OPC_EmitInteger, MVT::i32, 32, 
/* 82070*/      OPC_EmitInteger, MVT::i32, 31, 
/* 82073*/      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
/* 82085*/      OPC_EmitInteger, MVT::i64, 51|128,102/*13107*/, 
/* 82089*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 84|128,6/*852*/, 85|128,6/*853*/,  // Results = #854
/* 82099*/      OPC_EmitInteger, MVT::i64, 51|128,102/*13107*/, 
/* 82103*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 86|128,6/*854*/, 87|128,6/*855*/,  // Results = #856
/* 82113*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 74|128,6/*842*/, 88|128,6/*856*/,  // Results = #857
/* 82123*/      OPC_EmitInteger, MVT::i32, 63, 
/* 82126*/      OPC_EmitInteger, MVT::i32, 1, 
/* 82129*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                    MVT::i64, 3/*#Ops*/, 0, 90|128,6/*858*/, 91|128,6/*859*/,  // Results = #860
/* 82140*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #861
/* 82146*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 82151*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 94|128,6/*862*/,  // Results = #863
/* 82159*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 82164*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 95|128,6/*863*/, 96|128,6/*864*/,  // Results = #865
/* 82174*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 82177*/      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
/* 82189*/      OPC_EmitInteger, MVT::i32, 32, 
/* 82192*/      OPC_EmitInteger, MVT::i32, 31, 
/* 82195*/      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
/* 82207*/      OPC_EmitInteger, MVT::i64, 85|128,42|128,1/*21845*/, 
/* 82212*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 102|128,6/*870*/, 103|128,6/*871*/,  // Results = #872
/* 82222*/      OPC_EmitInteger, MVT::i64, 85|128,42|128,1/*21845*/, 
/* 82227*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 104|128,6/*872*/, 105|128,6/*873*/,  // Results = #874
/* 82237*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 92|128,6/*860*/, 106|128,6/*874*/,  // Results = #875
/* 82247*/      OPC_EmitInteger, MVT::i32, 1, 
/* 82250*/      OPC_EmitInteger, MVT::i32, 62, 
/* 82253*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 0, 108|128,6/*876*/, 109|128,6/*877*/,  // Results = #878
/* 82264*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #879
/* 82270*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 82275*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 112|128,6/*880*/,  // Results = #881
/* 82283*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 82288*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 113|128,6/*881*/, 114|128,6/*882*/,  // Results = #883
/* 82298*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 82301*/      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
/* 82313*/      OPC_EmitInteger, MVT::i32, 32, 
/* 82316*/      OPC_EmitInteger, MVT::i32, 31, 
/* 82319*/      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
/* 82331*/      OPC_EmitInteger, MVT::i64, 42|128,85|128,2/*43690*/, 
/* 82336*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 120|128,6/*888*/, 121|128,6/*889*/,  // Results = #890
/* 82346*/      OPC_EmitInteger, MVT::i64, 42|128,85|128,2/*43690*/, 
/* 82351*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 122|128,6/*890*/, 123|128,6/*891*/,  // Results = #892
/* 82361*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 110|128,6/*878*/, 124|128,6/*892*/,  // Results = #893
/* 82371*/      OPC_EmitNode1, TARGET_VAL(PPC::OR8), 0,
                    MVT::i64, 2/*#Ops*/, 107|128,6/*875*/, 125|128,6/*893*/,  // Results = #894
/* 82381*/      OPC_EmitInteger, MVT::i32, 2, 
/* 82384*/      OPC_EmitInteger, MVT::i32, 61, 
/* 82387*/      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
/* 82399*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #898
/* 82405*/      OPC_EmitInteger, MVT::i32, 76|128,25|128,3/*52428*/, 
/* 82410*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 3|128,7/*899*/,  // Results = #900
/* 82418*/      OPC_EmitInteger, MVT::i32, 76|128,25|128,3/*52428*/, 
/* 82423*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 4|128,7/*900*/, 5|128,7/*901*/,  // Results = #902
/* 82433*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 82436*/      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
/* 82448*/      OPC_EmitInteger, MVT::i32, 32, 
/* 82451*/      OPC_EmitInteger, MVT::i32, 31, 
/* 82454*/      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
/* 82466*/      OPC_EmitInteger, MVT::i64, 76|128,25|128,3/*52428*/, 
/* 82471*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 11|128,7/*907*/, 12|128,7/*908*/,  // Results = #909
/* 82481*/      OPC_EmitInteger, MVT::i64, 76|128,25|128,3/*52428*/, 
/* 82486*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 13|128,7/*909*/, 14|128,7/*910*/,  // Results = #911
/* 82496*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 1|128,7/*897*/, 15|128,7/*911*/,  // Results = #912
/* 82506*/      OPC_EmitNode1, TARGET_VAL(PPC::OR8), 0,
                    MVT::i64, 2/*#Ops*/, 89|128,6/*857*/, 16|128,7/*912*/,  // Results = #913
/* 82516*/      OPC_EmitInteger, MVT::i32, 60, 
/* 82519*/      OPC_EmitInteger, MVT::i32, 4, 
/* 82522*/      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
/* 82534*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #917
/* 82540*/      OPC_EmitInteger, MVT::i32, 15|128,30/*3855*/, 
/* 82544*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 22|128,7/*918*/,  // Results = #919
/* 82552*/      OPC_EmitInteger, MVT::i32, 15|128,30/*3855*/, 
/* 82556*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 23|128,7/*919*/, 24|128,7/*920*/,  // Results = #921
/* 82566*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 82569*/      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
/* 82581*/      OPC_EmitInteger, MVT::i32, 32, 
/* 82584*/      OPC_EmitInteger, MVT::i32, 31, 
/* 82587*/      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
/* 82599*/      OPC_EmitInteger, MVT::i64, 15|128,30/*3855*/, 
/* 82603*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 30|128,7/*926*/, 31|128,7/*927*/,  // Results = #928
/* 82613*/      OPC_EmitInteger, MVT::i64, 15|128,30/*3855*/, 
/* 82617*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 32|128,7/*928*/, 33|128,7/*929*/,  // Results = #930
/* 82627*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 20|128,7/*916*/, 34|128,7/*930*/,  // Results = #931
/* 82637*/      OPC_EmitInteger, MVT::i32, 63, 
/* 82640*/      OPC_EmitInteger, MVT::i32, 1, 
/* 82643*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                    MVT::i64, 3/*#Ops*/, 0, 36|128,7/*932*/, 37|128,7/*933*/,  // Results = #934
/* 82654*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #935
/* 82660*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 82665*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 40|128,7/*936*/,  // Results = #937
/* 82673*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 82678*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 41|128,7/*937*/, 42|128,7/*938*/,  // Results = #939
/* 82688*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 82691*/      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
/* 82703*/      OPC_EmitInteger, MVT::i32, 32, 
/* 82706*/      OPC_EmitInteger, MVT::i32, 31, 
/* 82709*/      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
/* 82721*/      OPC_EmitInteger, MVT::i64, 85|128,42|128,1/*21845*/, 
/* 82726*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 48|128,7/*944*/, 49|128,7/*945*/,  // Results = #946
/* 82736*/      OPC_EmitInteger, MVT::i64, 85|128,42|128,1/*21845*/, 
/* 82741*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 50|128,7/*946*/, 51|128,7/*947*/,  // Results = #948
/* 82751*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 38|128,7/*934*/, 52|128,7/*948*/,  // Results = #949
/* 82761*/      OPC_EmitInteger, MVT::i32, 1, 
/* 82764*/      OPC_EmitInteger, MVT::i32, 62, 
/* 82767*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 0, 54|128,7/*950*/, 55|128,7/*951*/,  // Results = #952
/* 82778*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #953
/* 82784*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 82789*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 58|128,7/*954*/,  // Results = #955
/* 82797*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 82802*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 59|128,7/*955*/, 60|128,7/*956*/,  // Results = #957
/* 82812*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 82815*/      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
/* 82827*/      OPC_EmitInteger, MVT::i32, 32, 
/* 82830*/      OPC_EmitInteger, MVT::i32, 31, 
/* 82833*/      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
/* 82845*/      OPC_EmitInteger, MVT::i64, 42|128,85|128,2/*43690*/, 
/* 82850*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 66|128,7/*962*/, 67|128,7/*963*/,  // Results = #964
/* 82860*/      OPC_EmitInteger, MVT::i64, 42|128,85|128,2/*43690*/, 
/* 82865*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 68|128,7/*964*/, 69|128,7/*965*/,  // Results = #966
/* 82875*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 56|128,7/*952*/, 70|128,7/*966*/,  // Results = #967
/* 82885*/      OPC_EmitNode1, TARGET_VAL(PPC::OR8), 0,
                    MVT::i64, 2/*#Ops*/, 53|128,7/*949*/, 71|128,7/*967*/,  // Results = #968
/* 82895*/      OPC_EmitInteger, MVT::i32, 62, 
/* 82898*/      OPC_EmitInteger, MVT::i32, 2, 
/* 82901*/      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
/* 82913*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #972
/* 82919*/      OPC_EmitInteger, MVT::i32, 51|128,102/*13107*/, 
/* 82923*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 77|128,7/*973*/,  // Results = #974
/* 82931*/      OPC_EmitInteger, MVT::i32, 51|128,102/*13107*/, 
/* 82935*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 78|128,7/*974*/, 79|128,7/*975*/,  // Results = #976
/* 82945*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 82948*/      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
/* 82960*/      OPC_EmitInteger, MVT::i32, 32, 
/* 82963*/      OPC_EmitInteger, MVT::i32, 31, 
/* 82966*/      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
/* 82978*/      OPC_EmitInteger, MVT::i64, 51|128,102/*13107*/, 
/* 82982*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 85|128,7/*981*/, 86|128,7/*982*/,  // Results = #983
/* 82992*/      OPC_EmitInteger, MVT::i64, 51|128,102/*13107*/, 
/* 82996*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 87|128,7/*983*/, 88|128,7/*984*/,  // Results = #985
/* 83006*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 75|128,7/*971*/, 89|128,7/*985*/,  // Results = #986
/* 83016*/      OPC_EmitInteger, MVT::i32, 63, 
/* 83019*/      OPC_EmitInteger, MVT::i32, 1, 
/* 83022*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                    MVT::i64, 3/*#Ops*/, 0, 91|128,7/*987*/, 92|128,7/*988*/,  // Results = #989
/* 83033*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #990
/* 83039*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 83044*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 95|128,7/*991*/,  // Results = #992
/* 83052*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 83057*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 96|128,7/*992*/, 97|128,7/*993*/,  // Results = #994
/* 83067*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 83070*/      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
/* 83082*/      OPC_EmitInteger, MVT::i32, 32, 
/* 83085*/      OPC_EmitInteger, MVT::i32, 31, 
/* 83088*/      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
/* 83100*/      OPC_EmitInteger, MVT::i64, 85|128,42|128,1/*21845*/, 
/* 83105*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 103|128,7/*999*/, 104|128,7/*1000*/,  // Results = #1001
/* 83115*/      OPC_EmitInteger, MVT::i64, 85|128,42|128,1/*21845*/, 
/* 83120*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 105|128,7/*1001*/, 106|128,7/*1002*/,  // Results = #1003
/* 83130*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 93|128,7/*989*/, 107|128,7/*1003*/,  // Results = #1004
/* 83140*/      OPC_EmitInteger, MVT::i32, 1, 
/* 83143*/      OPC_EmitInteger, MVT::i32, 62, 
/* 83146*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 0, 109|128,7/*1005*/, 110|128,7/*1006*/,  // Results = #1007
/* 83157*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #1008
/* 83163*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 83168*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 113|128,7/*1009*/,  // Results = #1010
/* 83176*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 83181*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 114|128,7/*1010*/, 115|128,7/*1011*/,  // Results = #1012
/* 83191*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 83194*/      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
/* 83206*/      OPC_EmitInteger, MVT::i32, 32, 
/* 83209*/      OPC_EmitInteger, MVT::i32, 31, 
/* 83212*/      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
/* 83224*/      OPC_EmitInteger, MVT::i64, 42|128,85|128,2/*43690*/, 
/* 83229*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 121|128,7/*1017*/, 122|128,7/*1018*/,  // Results = #1019
/* 83239*/      OPC_EmitInteger, MVT::i64, 42|128,85|128,2/*43690*/, 
/* 83244*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 123|128,7/*1019*/, 124|128,7/*1020*/,  // Results = #1021
/* 83254*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 111|128,7/*1007*/, 125|128,7/*1021*/,  // Results = #1022
/* 83264*/      OPC_EmitNode1, TARGET_VAL(PPC::OR8), 0,
                    MVT::i64, 2/*#Ops*/, 108|128,7/*1004*/, 126|128,7/*1022*/,  // Results = #1023
/* 83274*/      OPC_EmitInteger, MVT::i32, 2, 
/* 83277*/      OPC_EmitInteger, MVT::i32, 61, 
/* 83280*/      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
/* 83292*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #1027
/* 83298*/      OPC_EmitInteger, MVT::i32, 76|128,25|128,3/*52428*/, 
/* 83303*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 4|128,8/*1028*/,  // Results = #1029
/* 83311*/      OPC_EmitInteger, MVT::i32, 76|128,25|128,3/*52428*/, 
/* 83316*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 5|128,8/*1029*/, 6|128,8/*1030*/,  // Results = #1031
/* 83326*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 83329*/      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
/* 83341*/      OPC_EmitInteger, MVT::i32, 32, 
/* 83344*/      OPC_EmitInteger, MVT::i32, 31, 
/* 83347*/      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
/* 83359*/      OPC_EmitInteger, MVT::i64, 76|128,25|128,3/*52428*/, 
/* 83364*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 12|128,8/*1036*/, 13|128,8/*1037*/,  // Results = #1038
/* 83374*/      OPC_EmitInteger, MVT::i64, 76|128,25|128,3/*52428*/, 
/* 83379*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 14|128,8/*1038*/, 15|128,8/*1039*/,  // Results = #1040
/* 83389*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 2|128,8/*1026*/, 16|128,8/*1040*/,  // Results = #1041
/* 83399*/      OPC_EmitNode1, TARGET_VAL(PPC::OR8), 0,
                    MVT::i64, 2/*#Ops*/, 90|128,7/*986*/, 17|128,8/*1041*/,  // Results = #1042
/* 83409*/      OPC_EmitInteger, MVT::i32, 4, 
/* 83412*/      OPC_EmitInteger, MVT::i32, 59, 
/* 83415*/      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
/* 83427*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #1046
/* 83433*/      OPC_EmitInteger, MVT::i32, 112|128,97|128,3/*61680*/, 
/* 83438*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 23|128,8/*1047*/,  // Results = #1048
/* 83446*/      OPC_EmitInteger, MVT::i32, 112|128,97|128,3/*61680*/, 
/* 83451*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 24|128,8/*1048*/, 25|128,8/*1049*/,  // Results = #1050
/* 83461*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 83464*/      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
/* 83476*/      OPC_EmitInteger, MVT::i32, 32, 
/* 83479*/      OPC_EmitInteger, MVT::i32, 31, 
/* 83482*/      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
/* 83494*/      OPC_EmitInteger, MVT::i64, 112|128,97|128,3/*61680*/, 
/* 83499*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 31|128,8/*1055*/, 32|128,8/*1056*/,  // Results = #1057
/* 83509*/      OPC_EmitInteger, MVT::i64, 112|128,97|128,3/*61680*/, 
/* 83514*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 33|128,8/*1057*/, 34|128,8/*1058*/,  // Results = #1059
/* 83524*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 21|128,8/*1045*/, 35|128,8/*1059*/,  // Results = #1060
/* 83534*/      OPC_EmitNode1, TARGET_VAL(PPC::OR8), 0,
                    MVT::i64, 2/*#Ops*/, 35|128,7/*931*/, 36|128,8/*1060*/,  // Results = #1061
/* 83544*/      OPC_EmitInteger, MVT::i32, 32, 
/* 83547*/      OPC_EmitInteger, MVT::i32, 32, 
/* 83550*/      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
/* 83562*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 83565*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                    MVT::i32, 2/*#Ops*/, 40|128,8/*1064*/, 41|128,8/*1065*/,  // Results = #1066
/* 83575*/      OPC_EmitInteger, MVT::i32, 24, 
/* 83578*/      OPC_EmitInteger, MVT::i32, 0, 
/* 83581*/      OPC_EmitInteger, MVT::i32, 31, 
/* 83584*/      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
/* 83598*/      OPC_EmitInteger, MVT::i32, 63, 
/* 83601*/      OPC_EmitInteger, MVT::i32, 1, 
/* 83604*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                    MVT::i64, 3/*#Ops*/, 0, 47|128,8/*1071*/, 48|128,8/*1072*/,  // Results = #1073
/* 83615*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #1074
/* 83621*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 83626*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 51|128,8/*1075*/,  // Results = #1076
/* 83634*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 83639*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 52|128,8/*1076*/, 53|128,8/*1077*/,  // Results = #1078
/* 83649*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 83652*/      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
/* 83664*/      OPC_EmitInteger, MVT::i32, 32, 
/* 83667*/      OPC_EmitInteger, MVT::i32, 31, 
/* 83670*/      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
/* 83682*/      OPC_EmitInteger, MVT::i64, 85|128,42|128,1/*21845*/, 
/* 83687*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 59|128,8/*1083*/, 60|128,8/*1084*/,  // Results = #1085
/* 83697*/      OPC_EmitInteger, MVT::i64, 85|128,42|128,1/*21845*/, 
/* 83702*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 61|128,8/*1085*/, 62|128,8/*1086*/,  // Results = #1087
/* 83712*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 49|128,8/*1073*/, 63|128,8/*1087*/,  // Results = #1088
/* 83722*/      OPC_EmitInteger, MVT::i32, 1, 
/* 83725*/      OPC_EmitInteger, MVT::i32, 62, 
/* 83728*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 0, 65|128,8/*1089*/, 66|128,8/*1090*/,  // Results = #1091
/* 83739*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #1092
/* 83745*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 83750*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 69|128,8/*1093*/,  // Results = #1094
/* 83758*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 83763*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 70|128,8/*1094*/, 71|128,8/*1095*/,  // Results = #1096
/* 83773*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 83776*/      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
/* 83788*/      OPC_EmitInteger, MVT::i32, 32, 
/* 83791*/      OPC_EmitInteger, MVT::i32, 31, 
/* 83794*/      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
/* 83806*/      OPC_EmitInteger, MVT::i64, 42|128,85|128,2/*43690*/, 
/* 83811*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 77|128,8/*1101*/, 78|128,8/*1102*/,  // Results = #1103
/* 83821*/      OPC_EmitInteger, MVT::i64, 42|128,85|128,2/*43690*/, 
/* 83826*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 79|128,8/*1103*/, 80|128,8/*1104*/,  // Results = #1105
/* 83836*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 67|128,8/*1091*/, 81|128,8/*1105*/,  // Results = #1106
/* 83846*/      OPC_EmitNode1, TARGET_VAL(PPC::OR8), 0,
                    MVT::i64, 2/*#Ops*/, 64|128,8/*1088*/, 82|128,8/*1106*/,  // Results = #1107
/* 83856*/      OPC_EmitInteger, MVT::i32, 62, 
/* 83859*/      OPC_EmitInteger, MVT::i32, 2, 
/* 83862*/      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
/* 83874*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #1111
/* 83880*/      OPC_EmitInteger, MVT::i32, 51|128,102/*13107*/, 
/* 83884*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 88|128,8/*1112*/,  // Results = #1113
/* 83892*/      OPC_EmitInteger, MVT::i32, 51|128,102/*13107*/, 
/* 83896*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 89|128,8/*1113*/, 90|128,8/*1114*/,  // Results = #1115
/* 83906*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 83909*/      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
/* 83921*/      OPC_EmitInteger, MVT::i32, 32, 
/* 83924*/      OPC_EmitInteger, MVT::i32, 31, 
/* 83927*/      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
/* 83939*/      OPC_EmitInteger, MVT::i64, 51|128,102/*13107*/, 
/* 83943*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 96|128,8/*1120*/, 97|128,8/*1121*/,  // Results = #1122
/* 83953*/      OPC_EmitInteger, MVT::i64, 51|128,102/*13107*/, 
/* 83957*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 98|128,8/*1122*/, 99|128,8/*1123*/,  // Results = #1124
/* 83967*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 86|128,8/*1110*/, 100|128,8/*1124*/,  // Results = #1125
/* 83977*/      OPC_EmitInteger, MVT::i32, 63, 
/* 83980*/      OPC_EmitInteger, MVT::i32, 1, 
/* 83983*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                    MVT::i64, 3/*#Ops*/, 0, 102|128,8/*1126*/, 103|128,8/*1127*/,  // Results = #1128
/* 83994*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #1129
/* 84000*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 84005*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 106|128,8/*1130*/,  // Results = #1131
/* 84013*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 84018*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 107|128,8/*1131*/, 108|128,8/*1132*/,  // Results = #1133
/* 84028*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 84031*/      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
/* 84043*/      OPC_EmitInteger, MVT::i32, 32, 
/* 84046*/      OPC_EmitInteger, MVT::i32, 31, 
/* 84049*/      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
/* 84061*/      OPC_EmitInteger, MVT::i64, 85|128,42|128,1/*21845*/, 
/* 84066*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 114|128,8/*1138*/, 115|128,8/*1139*/,  // Results = #1140
/* 84076*/      OPC_EmitInteger, MVT::i64, 85|128,42|128,1/*21845*/, 
/* 84081*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 116|128,8/*1140*/, 117|128,8/*1141*/,  // Results = #1142
/* 84091*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 104|128,8/*1128*/, 118|128,8/*1142*/,  // Results = #1143
/* 84101*/      OPC_EmitInteger, MVT::i32, 1, 
/* 84104*/      OPC_EmitInteger, MVT::i32, 62, 
/* 84107*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 0, 120|128,8/*1144*/, 121|128,8/*1145*/,  // Results = #1146
/* 84118*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #1147
/* 84124*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 84129*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 124|128,8/*1148*/,  // Results = #1149
/* 84137*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 84142*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 125|128,8/*1149*/, 126|128,8/*1150*/,  // Results = #1151
/* 84152*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 84155*/      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
/* 84167*/      OPC_EmitInteger, MVT::i32, 32, 
/* 84170*/      OPC_EmitInteger, MVT::i32, 31, 
/* 84173*/      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
/* 84185*/      OPC_EmitInteger, MVT::i64, 42|128,85|128,2/*43690*/, 
/* 84190*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 4|128,9/*1156*/, 5|128,9/*1157*/,  // Results = #1158
/* 84200*/      OPC_EmitInteger, MVT::i64, 42|128,85|128,2/*43690*/, 
/* 84205*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 6|128,9/*1158*/, 7|128,9/*1159*/,  // Results = #1160
/* 84215*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 122|128,8/*1146*/, 8|128,9/*1160*/,  // Results = #1161
/* 84225*/      OPC_EmitNode1, TARGET_VAL(PPC::OR8), 0,
                    MVT::i64, 2/*#Ops*/, 119|128,8/*1143*/, 9|128,9/*1161*/,  // Results = #1162
/* 84235*/      OPC_EmitInteger, MVT::i32, 2, 
/* 84238*/      OPC_EmitInteger, MVT::i32, 61, 
/* 84241*/      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
/* 84253*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #1166
/* 84259*/      OPC_EmitInteger, MVT::i32, 76|128,25|128,3/*52428*/, 
/* 84264*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 15|128,9/*1167*/,  // Results = #1168
/* 84272*/      OPC_EmitInteger, MVT::i32, 76|128,25|128,3/*52428*/, 
/* 84277*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 16|128,9/*1168*/, 17|128,9/*1169*/,  // Results = #1170
/* 84287*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 84290*/      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
/* 84302*/      OPC_EmitInteger, MVT::i32, 32, 
/* 84305*/      OPC_EmitInteger, MVT::i32, 31, 
/* 84308*/      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
/* 84320*/      OPC_EmitInteger, MVT::i64, 76|128,25|128,3/*52428*/, 
/* 84325*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 23|128,9/*1175*/, 24|128,9/*1176*/,  // Results = #1177
/* 84335*/      OPC_EmitInteger, MVT::i64, 76|128,25|128,3/*52428*/, 
/* 84340*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 25|128,9/*1177*/, 26|128,9/*1178*/,  // Results = #1179
/* 84350*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 13|128,9/*1165*/, 27|128,9/*1179*/,  // Results = #1180
/* 84360*/      OPC_EmitNode1, TARGET_VAL(PPC::OR8), 0,
                    MVT::i64, 2/*#Ops*/, 101|128,8/*1125*/, 28|128,9/*1180*/,  // Results = #1181
/* 84370*/      OPC_EmitInteger, MVT::i32, 60, 
/* 84373*/      OPC_EmitInteger, MVT::i32, 4, 
/* 84376*/      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
/* 84388*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #1185
/* 84394*/      OPC_EmitInteger, MVT::i32, 15|128,30/*3855*/, 
/* 84398*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 34|128,9/*1186*/,  // Results = #1187
/* 84406*/      OPC_EmitInteger, MVT::i32, 15|128,30/*3855*/, 
/* 84410*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 35|128,9/*1187*/, 36|128,9/*1188*/,  // Results = #1189
/* 84420*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 84423*/      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
/* 84435*/      OPC_EmitInteger, MVT::i32, 32, 
/* 84438*/      OPC_EmitInteger, MVT::i32, 31, 
/* 84441*/      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
/* 84453*/      OPC_EmitInteger, MVT::i64, 15|128,30/*3855*/, 
/* 84457*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 42|128,9/*1194*/, 43|128,9/*1195*/,  // Results = #1196
/* 84467*/      OPC_EmitInteger, MVT::i64, 15|128,30/*3855*/, 
/* 84471*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 44|128,9/*1196*/, 45|128,9/*1197*/,  // Results = #1198
/* 84481*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 32|128,9/*1184*/, 46|128,9/*1198*/,  // Results = #1199
/* 84491*/      OPC_EmitInteger, MVT::i32, 63, 
/* 84494*/      OPC_EmitInteger, MVT::i32, 1, 
/* 84497*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                    MVT::i64, 3/*#Ops*/, 0, 48|128,9/*1200*/, 49|128,9/*1201*/,  // Results = #1202
/* 84508*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #1203
/* 84514*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 84519*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 52|128,9/*1204*/,  // Results = #1205
/* 84527*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 84532*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 53|128,9/*1205*/, 54|128,9/*1206*/,  // Results = #1207
/* 84542*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 84545*/      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
/* 84557*/      OPC_EmitInteger, MVT::i32, 32, 
/* 84560*/      OPC_EmitInteger, MVT::i32, 31, 
/* 84563*/      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
/* 84575*/      OPC_EmitInteger, MVT::i64, 85|128,42|128,1/*21845*/, 
/* 84580*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 60|128,9/*1212*/, 61|128,9/*1213*/,  // Results = #1214
/* 84590*/      OPC_EmitInteger, MVT::i64, 85|128,42|128,1/*21845*/, 
/* 84595*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 62|128,9/*1214*/, 63|128,9/*1215*/,  // Results = #1216
/* 84605*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 50|128,9/*1202*/, 64|128,9/*1216*/,  // Results = #1217
/* 84615*/      OPC_EmitInteger, MVT::i32, 1, 
/* 84618*/      OPC_EmitInteger, MVT::i32, 62, 
/* 84621*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 0, 66|128,9/*1218*/, 67|128,9/*1219*/,  // Results = #1220
/* 84632*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #1221
/* 84638*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 84643*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 70|128,9/*1222*/,  // Results = #1223
/* 84651*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 84656*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 71|128,9/*1223*/, 72|128,9/*1224*/,  // Results = #1225
/* 84666*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 84669*/      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
/* 84681*/      OPC_EmitInteger, MVT::i32, 32, 
/* 84684*/      OPC_EmitInteger, MVT::i32, 31, 
/* 84687*/      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
/* 84699*/      OPC_EmitInteger, MVT::i64, 42|128,85|128,2/*43690*/, 
/* 84704*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 78|128,9/*1230*/, 79|128,9/*1231*/,  // Results = #1232
/* 84714*/      OPC_EmitInteger, MVT::i64, 42|128,85|128,2/*43690*/, 
/* 84719*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 80|128,9/*1232*/, 81|128,9/*1233*/,  // Results = #1234
/* 84729*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 68|128,9/*1220*/, 82|128,9/*1234*/,  // Results = #1235
/* 84739*/      OPC_EmitNode1, TARGET_VAL(PPC::OR8), 0,
                    MVT::i64, 2/*#Ops*/, 65|128,9/*1217*/, 83|128,9/*1235*/,  // Results = #1236
/* 84749*/      OPC_EmitInteger, MVT::i32, 62, 
/* 84752*/      OPC_EmitInteger, MVT::i32, 2, 
/* 84755*/      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
/* 84767*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #1240
/* 84773*/      OPC_EmitInteger, MVT::i32, 51|128,102/*13107*/, 
/* 84777*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 89|128,9/*1241*/,  // Results = #1242
/* 84785*/      OPC_EmitInteger, MVT::i32, 51|128,102/*13107*/, 
/* 84789*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 90|128,9/*1242*/, 91|128,9/*1243*/,  // Results = #1244
/* 84799*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 84802*/      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
/* 84814*/      OPC_EmitInteger, MVT::i32, 32, 
/* 84817*/      OPC_EmitInteger, MVT::i32, 31, 
/* 84820*/      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
/* 84832*/      OPC_EmitInteger, MVT::i64, 51|128,102/*13107*/, 
/* 84836*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 97|128,9/*1249*/, 98|128,9/*1250*/,  // Results = #1251
/* 84846*/      OPC_EmitInteger, MVT::i64, 51|128,102/*13107*/, 
/* 84850*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 99|128,9/*1251*/, 100|128,9/*1252*/,  // Results = #1253
/* 84860*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 87|128,9/*1239*/, 101|128,9/*1253*/,  // Results = #1254
/* 84870*/      OPC_EmitInteger, MVT::i32, 63, 
/* 84873*/      OPC_EmitInteger, MVT::i32, 1, 
/* 84876*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                    MVT::i64, 3/*#Ops*/, 0, 103|128,9/*1255*/, 104|128,9/*1256*/,  // Results = #1257
/* 84887*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #1258
/* 84893*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 84898*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 107|128,9/*1259*/,  // Results = #1260
/* 84906*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 84911*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 108|128,9/*1260*/, 109|128,9/*1261*/,  // Results = #1262
/* 84921*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 84924*/      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
/* 84936*/      OPC_EmitInteger, MVT::i32, 32, 
/* 84939*/      OPC_EmitInteger, MVT::i32, 31, 
/* 84942*/      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
/* 84954*/      OPC_EmitInteger, MVT::i64, 85|128,42|128,1/*21845*/, 
/* 84959*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 115|128,9/*1267*/, 116|128,9/*1268*/,  // Results = #1269
/* 84969*/      OPC_EmitInteger, MVT::i64, 85|128,42|128,1/*21845*/, 
/* 84974*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 117|128,9/*1269*/, 118|128,9/*1270*/,  // Results = #1271
/* 84984*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 105|128,9/*1257*/, 119|128,9/*1271*/,  // Results = #1272
/* 84994*/      OPC_EmitInteger, MVT::i32, 1, 
/* 84997*/      OPC_EmitInteger, MVT::i32, 62, 
/* 85000*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 0, 121|128,9/*1273*/, 122|128,9/*1274*/,  // Results = #1275
/* 85011*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #1276
/* 85017*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 85022*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 125|128,9/*1277*/,  // Results = #1278
/* 85030*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 85035*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 126|128,9/*1278*/, 127|128,9/*1279*/,  // Results = #1280
/* 85045*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 85048*/      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
/* 85060*/      OPC_EmitInteger, MVT::i32, 32, 
/* 85063*/      OPC_EmitInteger, MVT::i32, 31, 
/* 85066*/      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
/* 85078*/      OPC_EmitInteger, MVT::i64, 42|128,85|128,2/*43690*/, 
/* 85083*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 5|128,10/*1285*/, 6|128,10/*1286*/,  // Results = #1287
/* 85093*/      OPC_EmitInteger, MVT::i64, 42|128,85|128,2/*43690*/, 
/* 85098*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 7|128,10/*1287*/, 8|128,10/*1288*/,  // Results = #1289
/* 85108*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 123|128,9/*1275*/, 9|128,10/*1289*/,  // Results = #1290
/* 85118*/      OPC_EmitNode1, TARGET_VAL(PPC::OR8), 0,
                    MVT::i64, 2/*#Ops*/, 120|128,9/*1272*/, 10|128,10/*1290*/,  // Results = #1291
/* 85128*/      OPC_EmitInteger, MVT::i32, 2, 
/* 85131*/      OPC_EmitInteger, MVT::i32, 61, 
/* 85134*/      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
/* 85146*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #1295
/* 85152*/      OPC_EmitInteger, MVT::i32, 76|128,25|128,3/*52428*/, 
/* 85157*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 16|128,10/*1296*/,  // Results = #1297
/* 85165*/      OPC_EmitInteger, MVT::i32, 76|128,25|128,3/*52428*/, 
/* 85170*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 17|128,10/*1297*/, 18|128,10/*1298*/,  // Results = #1299
/* 85180*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 85183*/      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
/* 85195*/      OPC_EmitInteger, MVT::i32, 32, 
/* 85198*/      OPC_EmitInteger, MVT::i32, 31, 
/* 85201*/      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
/* 85213*/      OPC_EmitInteger, MVT::i64, 76|128,25|128,3/*52428*/, 
/* 85218*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 24|128,10/*1304*/, 25|128,10/*1305*/,  // Results = #1306
/* 85228*/      OPC_EmitInteger, MVT::i64, 76|128,25|128,3/*52428*/, 
/* 85233*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 26|128,10/*1306*/, 27|128,10/*1307*/,  // Results = #1308
/* 85243*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 14|128,10/*1294*/, 28|128,10/*1308*/,  // Results = #1309
/* 85253*/      OPC_EmitNode1, TARGET_VAL(PPC::OR8), 0,
                    MVT::i64, 2/*#Ops*/, 102|128,9/*1254*/, 29|128,10/*1309*/,  // Results = #1310
/* 85263*/      OPC_EmitInteger, MVT::i32, 4, 
/* 85266*/      OPC_EmitInteger, MVT::i32, 59, 
/* 85269*/      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
/* 85281*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #1314
/* 85287*/      OPC_EmitInteger, MVT::i32, 112|128,97|128,3/*61680*/, 
/* 85292*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 35|128,10/*1315*/,  // Results = #1316
/* 85300*/      OPC_EmitInteger, MVT::i32, 112|128,97|128,3/*61680*/, 
/* 85305*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 36|128,10/*1316*/, 37|128,10/*1317*/,  // Results = #1318
/* 85315*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 85318*/      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
/* 85330*/      OPC_EmitInteger, MVT::i32, 32, 
/* 85333*/      OPC_EmitInteger, MVT::i32, 31, 
/* 85336*/      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
/* 85348*/      OPC_EmitInteger, MVT::i64, 112|128,97|128,3/*61680*/, 
/* 85353*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 43|128,10/*1323*/, 44|128,10/*1324*/,  // Results = #1325
/* 85363*/      OPC_EmitInteger, MVT::i64, 112|128,97|128,3/*61680*/, 
/* 85368*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 45|128,10/*1325*/, 46|128,10/*1326*/,  // Results = #1327
/* 85378*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 33|128,10/*1313*/, 47|128,10/*1327*/,  // Results = #1328
/* 85388*/      OPC_EmitNode1, TARGET_VAL(PPC::OR8), 0,
                    MVT::i64, 2/*#Ops*/, 47|128,9/*1199*/, 48|128,10/*1328*/,  // Results = #1329
/* 85398*/      OPC_EmitInteger, MVT::i32, 32, 
/* 85401*/      OPC_EmitInteger, MVT::i32, 32, 
/* 85404*/      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
/* 85416*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 85419*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                    MVT::i32, 2/*#Ops*/, 52|128,10/*1332*/, 53|128,10/*1333*/,  // Results = #1334
/* 85429*/      OPC_EmitInteger, MVT::i32, 8, 
/* 85432*/      OPC_EmitInteger, MVT::i32, 8, 
/* 85435*/      OPC_EmitInteger, MVT::i32, 15, 
/* 85438*/      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
/* 85454*/      OPC_EmitInteger, MVT::i32, 63, 
/* 85457*/      OPC_EmitInteger, MVT::i32, 1, 
/* 85460*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                    MVT::i64, 3/*#Ops*/, 0, 59|128,10/*1339*/, 60|128,10/*1340*/,  // Results = #1341
/* 85471*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #1342
/* 85477*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 85482*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 63|128,10/*1343*/,  // Results = #1344
/* 85490*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 85495*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 64|128,10/*1344*/, 65|128,10/*1345*/,  // Results = #1346
/* 85505*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 85508*/      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
/* 85520*/      OPC_EmitInteger, MVT::i32, 32, 
/* 85523*/      OPC_EmitInteger, MVT::i32, 31, 
/* 85526*/      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
/* 85538*/      OPC_EmitInteger, MVT::i64, 85|128,42|128,1/*21845*/, 
/* 85543*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 71|128,10/*1351*/, 72|128,10/*1352*/,  // Results = #1353
/* 85553*/      OPC_EmitInteger, MVT::i64, 85|128,42|128,1/*21845*/, 
/* 85558*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 73|128,10/*1353*/, 74|128,10/*1354*/,  // Results = #1355
/* 85568*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 61|128,10/*1341*/, 75|128,10/*1355*/,  // Results = #1356
/* 85578*/      OPC_EmitInteger, MVT::i32, 1, 
/* 85581*/      OPC_EmitInteger, MVT::i32, 62, 
/* 85584*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 0, 77|128,10/*1357*/, 78|128,10/*1358*/,  // Results = #1359
/* 85595*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #1360
/* 85601*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 85606*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 81|128,10/*1361*/,  // Results = #1362
/* 85614*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 85619*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 82|128,10/*1362*/, 83|128,10/*1363*/,  // Results = #1364
/* 85629*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 85632*/      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
/* 85644*/      OPC_EmitInteger, MVT::i32, 32, 
/* 85647*/      OPC_EmitInteger, MVT::i32, 31, 
/* 85650*/      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
/* 85662*/      OPC_EmitInteger, MVT::i64, 42|128,85|128,2/*43690*/, 
/* 85667*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 89|128,10/*1369*/, 90|128,10/*1370*/,  // Results = #1371
/* 85677*/      OPC_EmitInteger, MVT::i64, 42|128,85|128,2/*43690*/, 
/* 85682*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 91|128,10/*1371*/, 92|128,10/*1372*/,  // Results = #1373
/* 85692*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 79|128,10/*1359*/, 93|128,10/*1373*/,  // Results = #1374
/* 85702*/      OPC_EmitNode1, TARGET_VAL(PPC::OR8), 0,
                    MVT::i64, 2/*#Ops*/, 76|128,10/*1356*/, 94|128,10/*1374*/,  // Results = #1375
/* 85712*/      OPC_EmitInteger, MVT::i32, 62, 
/* 85715*/      OPC_EmitInteger, MVT::i32, 2, 
/* 85718*/      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
/* 85730*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #1379
/* 85736*/      OPC_EmitInteger, MVT::i32, 51|128,102/*13107*/, 
/* 85740*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 100|128,10/*1380*/,  // Results = #1381
/* 85748*/      OPC_EmitInteger, MVT::i32, 51|128,102/*13107*/, 
/* 85752*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 101|128,10/*1381*/, 102|128,10/*1382*/,  // Results = #1383
/* 85762*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 85765*/      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
/* 85777*/      OPC_EmitInteger, MVT::i32, 32, 
/* 85780*/      OPC_EmitInteger, MVT::i32, 31, 
/* 85783*/      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
/* 85795*/      OPC_EmitInteger, MVT::i64, 51|128,102/*13107*/, 
/* 85799*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 108|128,10/*1388*/, 109|128,10/*1389*/,  // Results = #1390
/* 85809*/      OPC_EmitInteger, MVT::i64, 51|128,102/*13107*/, 
/* 85813*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 110|128,10/*1390*/, 111|128,10/*1391*/,  // Results = #1392
/* 85823*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 98|128,10/*1378*/, 112|128,10/*1392*/,  // Results = #1393
/* 85833*/      OPC_EmitInteger, MVT::i32, 63, 
/* 85836*/      OPC_EmitInteger, MVT::i32, 1, 
/* 85839*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                    MVT::i64, 3/*#Ops*/, 0, 114|128,10/*1394*/, 115|128,10/*1395*/,  // Results = #1396
/* 85850*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #1397
/* 85856*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 85861*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 118|128,10/*1398*/,  // Results = #1399
/* 85869*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 85874*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 119|128,10/*1399*/, 120|128,10/*1400*/,  // Results = #1401
/* 85884*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 85887*/      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
/* 85899*/      OPC_EmitInteger, MVT::i32, 32, 
/* 85902*/      OPC_EmitInteger, MVT::i32, 31, 
/* 85905*/      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
/* 85917*/      OPC_EmitInteger, MVT::i64, 85|128,42|128,1/*21845*/, 
/* 85922*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 126|128,10/*1406*/, 127|128,10/*1407*/,  // Results = #1408
/* 85932*/      OPC_EmitInteger, MVT::i64, 85|128,42|128,1/*21845*/, 
/* 85937*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 0|128,11/*1408*/, 1|128,11/*1409*/,  // Results = #1410
/* 85947*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 116|128,10/*1396*/, 2|128,11/*1410*/,  // Results = #1411
/* 85957*/      OPC_EmitInteger, MVT::i32, 1, 
/* 85960*/      OPC_EmitInteger, MVT::i32, 62, 
/* 85963*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 0, 4|128,11/*1412*/, 5|128,11/*1413*/,  // Results = #1414
/* 85974*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #1415
/* 85980*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 85985*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 8|128,11/*1416*/,  // Results = #1417
/* 85993*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 85998*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 9|128,11/*1417*/, 10|128,11/*1418*/,  // Results = #1419
/* 86008*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 86011*/      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
/* 86023*/      OPC_EmitInteger, MVT::i32, 32, 
/* 86026*/      OPC_EmitInteger, MVT::i32, 31, 
/* 86029*/      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
/* 86041*/      OPC_EmitInteger, MVT::i64, 42|128,85|128,2/*43690*/, 
/* 86046*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 16|128,11/*1424*/, 17|128,11/*1425*/,  // Results = #1426
/* 86056*/      OPC_EmitInteger, MVT::i64, 42|128,85|128,2/*43690*/, 
/* 86061*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 18|128,11/*1426*/, 19|128,11/*1427*/,  // Results = #1428
/* 86071*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 6|128,11/*1414*/, 20|128,11/*1428*/,  // Results = #1429
/* 86081*/      OPC_EmitNode1, TARGET_VAL(PPC::OR8), 0,
                    MVT::i64, 2/*#Ops*/, 3|128,11/*1411*/, 21|128,11/*1429*/,  // Results = #1430
/* 86091*/      OPC_EmitInteger, MVT::i32, 2, 
/* 86094*/      OPC_EmitInteger, MVT::i32, 61, 
/* 86097*/      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
/* 86109*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #1434
/* 86115*/      OPC_EmitInteger, MVT::i32, 76|128,25|128,3/*52428*/, 
/* 86120*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 27|128,11/*1435*/,  // Results = #1436
/* 86128*/      OPC_EmitInteger, MVT::i32, 76|128,25|128,3/*52428*/, 
/* 86133*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 28|128,11/*1436*/, 29|128,11/*1437*/,  // Results = #1438
/* 86143*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 86146*/      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
/* 86158*/      OPC_EmitInteger, MVT::i32, 32, 
/* 86161*/      OPC_EmitInteger, MVT::i32, 31, 
/* 86164*/      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
/* 86176*/      OPC_EmitInteger, MVT::i64, 76|128,25|128,3/*52428*/, 
/* 86181*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 35|128,11/*1443*/, 36|128,11/*1444*/,  // Results = #1445
/* 86191*/      OPC_EmitInteger, MVT::i64, 76|128,25|128,3/*52428*/, 
/* 86196*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 37|128,11/*1445*/, 38|128,11/*1446*/,  // Results = #1447
/* 86206*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 25|128,11/*1433*/, 39|128,11/*1447*/,  // Results = #1448
/* 86216*/      OPC_EmitNode1, TARGET_VAL(PPC::OR8), 0,
                    MVT::i64, 2/*#Ops*/, 113|128,10/*1393*/, 40|128,11/*1448*/,  // Results = #1449
/* 86226*/      OPC_EmitInteger, MVT::i32, 60, 
/* 86229*/      OPC_EmitInteger, MVT::i32, 4, 
/* 86232*/      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
/* 86244*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #1453
/* 86250*/      OPC_EmitInteger, MVT::i32, 15|128,30/*3855*/, 
/* 86254*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 46|128,11/*1454*/,  // Results = #1455
/* 86262*/      OPC_EmitInteger, MVT::i32, 15|128,30/*3855*/, 
/* 86266*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 47|128,11/*1455*/, 48|128,11/*1456*/,  // Results = #1457
/* 86276*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 86279*/      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
/* 86291*/      OPC_EmitInteger, MVT::i32, 32, 
/* 86294*/      OPC_EmitInteger, MVT::i32, 31, 
/* 86297*/      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
/* 86309*/      OPC_EmitInteger, MVT::i64, 15|128,30/*3855*/, 
/* 86313*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 54|128,11/*1462*/, 55|128,11/*1463*/,  // Results = #1464
/* 86323*/      OPC_EmitInteger, MVT::i64, 15|128,30/*3855*/, 
/* 86327*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 56|128,11/*1464*/, 57|128,11/*1465*/,  // Results = #1466
/* 86337*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 44|128,11/*1452*/, 58|128,11/*1466*/,  // Results = #1467
/* 86347*/      OPC_EmitInteger, MVT::i32, 63, 
/* 86350*/      OPC_EmitInteger, MVT::i32, 1, 
/* 86353*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                    MVT::i64, 3/*#Ops*/, 0, 60|128,11/*1468*/, 61|128,11/*1469*/,  // Results = #1470
/* 86364*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #1471
/* 86370*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 86375*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 64|128,11/*1472*/,  // Results = #1473
/* 86383*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 86388*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 65|128,11/*1473*/, 66|128,11/*1474*/,  // Results = #1475
/* 86398*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 86401*/      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
/* 86413*/      OPC_EmitInteger, MVT::i32, 32, 
/* 86416*/      OPC_EmitInteger, MVT::i32, 31, 
/* 86419*/      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
/* 86431*/      OPC_EmitInteger, MVT::i64, 85|128,42|128,1/*21845*/, 
/* 86436*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 72|128,11/*1480*/, 73|128,11/*1481*/,  // Results = #1482
/* 86446*/      OPC_EmitInteger, MVT::i64, 85|128,42|128,1/*21845*/, 
/* 86451*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 74|128,11/*1482*/, 75|128,11/*1483*/,  // Results = #1484
/* 86461*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 62|128,11/*1470*/, 76|128,11/*1484*/,  // Results = #1485
/* 86471*/      OPC_EmitInteger, MVT::i32, 1, 
/* 86474*/      OPC_EmitInteger, MVT::i32, 62, 
/* 86477*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 0, 78|128,11/*1486*/, 79|128,11/*1487*/,  // Results = #1488
/* 86488*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #1489
/* 86494*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 86499*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 82|128,11/*1490*/,  // Results = #1491
/* 86507*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 86512*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 83|128,11/*1491*/, 84|128,11/*1492*/,  // Results = #1493
/* 86522*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 86525*/      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
/* 86537*/      OPC_EmitInteger, MVT::i32, 32, 
/* 86540*/      OPC_EmitInteger, MVT::i32, 31, 
/* 86543*/      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
/* 86555*/      OPC_EmitInteger, MVT::i64, 42|128,85|128,2/*43690*/, 
/* 86560*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 90|128,11/*1498*/, 91|128,11/*1499*/,  // Results = #1500
/* 86570*/      OPC_EmitInteger, MVT::i64, 42|128,85|128,2/*43690*/, 
/* 86575*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 92|128,11/*1500*/, 93|128,11/*1501*/,  // Results = #1502
/* 86585*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 80|128,11/*1488*/, 94|128,11/*1502*/,  // Results = #1503
/* 86595*/      OPC_EmitNode1, TARGET_VAL(PPC::OR8), 0,
                    MVT::i64, 2/*#Ops*/, 77|128,11/*1485*/, 95|128,11/*1503*/,  // Results = #1504
/* 86605*/      OPC_EmitInteger, MVT::i32, 62, 
/* 86608*/      OPC_EmitInteger, MVT::i32, 2, 
/* 86611*/      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
/* 86623*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #1508
/* 86629*/      OPC_EmitInteger, MVT::i32, 51|128,102/*13107*/, 
/* 86633*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 101|128,11/*1509*/,  // Results = #1510
/* 86641*/      OPC_EmitInteger, MVT::i32, 51|128,102/*13107*/, 
/* 86645*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 102|128,11/*1510*/, 103|128,11/*1511*/,  // Results = #1512
/* 86655*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 86658*/      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
/* 86670*/      OPC_EmitInteger, MVT::i32, 32, 
/* 86673*/      OPC_EmitInteger, MVT::i32, 31, 
/* 86676*/      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
/* 86688*/      OPC_EmitInteger, MVT::i64, 51|128,102/*13107*/, 
/* 86692*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 109|128,11/*1517*/, 110|128,11/*1518*/,  // Results = #1519
/* 86702*/      OPC_EmitInteger, MVT::i64, 51|128,102/*13107*/, 
/* 86706*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 111|128,11/*1519*/, 112|128,11/*1520*/,  // Results = #1521
/* 86716*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 99|128,11/*1507*/, 113|128,11/*1521*/,  // Results = #1522
/* 86726*/      OPC_EmitInteger, MVT::i32, 63, 
/* 86729*/      OPC_EmitInteger, MVT::i32, 1, 
/* 86732*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICL), 0,
                    MVT::i64, 3/*#Ops*/, 0, 115|128,11/*1523*/, 116|128,11/*1524*/,  // Results = #1525
/* 86743*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #1526
/* 86749*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 86754*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 119|128,11/*1527*/,  // Results = #1528
/* 86762*/      OPC_EmitInteger, MVT::i32, 85|128,42|128,1/*21845*/, 
/* 86767*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 120|128,11/*1528*/, 121|128,11/*1529*/,  // Results = #1530
/* 86777*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 86780*/      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
/* 86792*/      OPC_EmitInteger, MVT::i32, 32, 
/* 86795*/      OPC_EmitInteger, MVT::i32, 31, 
/* 86798*/      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
/* 86810*/      OPC_EmitInteger, MVT::i64, 85|128,42|128,1/*21845*/, 
/* 86815*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 127|128,11/*1535*/, 0|128,12/*1536*/,  // Results = #1537
/* 86825*/      OPC_EmitInteger, MVT::i64, 85|128,42|128,1/*21845*/, 
/* 86830*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 1|128,12/*1537*/, 2|128,12/*1538*/,  // Results = #1539
/* 86840*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 117|128,11/*1525*/, 3|128,12/*1539*/,  // Results = #1540
/* 86850*/      OPC_EmitInteger, MVT::i32, 1, 
/* 86853*/      OPC_EmitInteger, MVT::i32, 62, 
/* 86856*/      OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                    MVT::i64, 3/*#Ops*/, 0, 5|128,12/*1541*/, 6|128,12/*1542*/,  // Results = #1543
/* 86867*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #1544
/* 86873*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 86878*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 9|128,12/*1545*/,  // Results = #1546
/* 86886*/      OPC_EmitInteger, MVT::i32, 42|128,85|128,2/*43690*/, 
/* 86891*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 10|128,12/*1546*/, 11|128,12/*1547*/,  // Results = #1548
/* 86901*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 86904*/      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
/* 86916*/      OPC_EmitInteger, MVT::i32, 32, 
/* 86919*/      OPC_EmitInteger, MVT::i32, 31, 
/* 86922*/      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
/* 86934*/      OPC_EmitInteger, MVT::i64, 42|128,85|128,2/*43690*/, 
/* 86939*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 17|128,12/*1553*/, 18|128,12/*1554*/,  // Results = #1555
/* 86949*/      OPC_EmitInteger, MVT::i64, 42|128,85|128,2/*43690*/, 
/* 86954*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 19|128,12/*1555*/, 20|128,12/*1556*/,  // Results = #1557
/* 86964*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 7|128,12/*1543*/, 21|128,12/*1557*/,  // Results = #1558
/* 86974*/      OPC_EmitNode1, TARGET_VAL(PPC::OR8), 0,
                    MVT::i64, 2/*#Ops*/, 4|128,12/*1540*/, 22|128,12/*1558*/,  // Results = #1559
/* 86984*/      OPC_EmitInteger, MVT::i32, 2, 
/* 86987*/      OPC_EmitInteger, MVT::i32, 61, 
/* 86990*/      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
/* 87002*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #1563
/* 87008*/      OPC_EmitInteger, MVT::i32, 76|128,25|128,3/*52428*/, 
/* 87013*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 28|128,12/*1564*/,  // Results = #1565
/* 87021*/      OPC_EmitInteger, MVT::i32, 76|128,25|128,3/*52428*/, 
/* 87026*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 29|128,12/*1565*/, 30|128,12/*1566*/,  // Results = #1567
/* 87036*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 87039*/      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
/* 87051*/      OPC_EmitInteger, MVT::i32, 32, 
/* 87054*/      OPC_EmitInteger, MVT::i32, 31, 
/* 87057*/      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
/* 87069*/      OPC_EmitInteger, MVT::i64, 76|128,25|128,3/*52428*/, 
/* 87074*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 36|128,12/*1572*/, 37|128,12/*1573*/,  // Results = #1574
/* 87084*/      OPC_EmitInteger, MVT::i64, 76|128,25|128,3/*52428*/, 
/* 87089*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 38|128,12/*1574*/, 39|128,12/*1575*/,  // Results = #1576
/* 87099*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 26|128,12/*1562*/, 40|128,12/*1576*/,  // Results = #1577
/* 87109*/      OPC_EmitNode1, TARGET_VAL(PPC::OR8), 0,
                    MVT::i64, 2/*#Ops*/, 114|128,11/*1522*/, 41|128,12/*1577*/,  // Results = #1578
/* 87119*/      OPC_EmitInteger, MVT::i32, 4, 
/* 87122*/      OPC_EmitInteger, MVT::i32, 59, 
/* 87125*/      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
/* 87137*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::i64, 0/*#Ops*/,  // Results = #1582
/* 87143*/      OPC_EmitInteger, MVT::i32, 112|128,97|128,3/*61680*/, 
/* 87148*/      OPC_EmitNode1, TARGET_VAL(PPC::LIS), 0,
                    MVT::i32, 1/*#Ops*/, 47|128,12/*1583*/,  // Results = #1584
/* 87156*/      OPC_EmitInteger, MVT::i32, 112|128,97|128,3/*61680*/, 
/* 87161*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI), 0,
                    MVT::i32, 2/*#Ops*/, 48|128,12/*1584*/, 49|128,12/*1585*/,  // Results = #1586
/* 87171*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 87174*/      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
/* 87186*/      OPC_EmitInteger, MVT::i32, 32, 
/* 87189*/      OPC_EmitInteger, MVT::i32, 31, 
/* 87192*/      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
/* 87204*/      OPC_EmitInteger, MVT::i64, 112|128,97|128,3/*61680*/, 
/* 87209*/      OPC_EmitNode1, TARGET_VAL(PPC::ORIS8), 0,
                    MVT::i64, 2/*#Ops*/, 55|128,12/*1591*/, 56|128,12/*1592*/,  // Results = #1593
/* 87219*/      OPC_EmitInteger, MVT::i64, 112|128,97|128,3/*61680*/, 
/* 87224*/      OPC_EmitNode1, TARGET_VAL(PPC::ORI8), 0,
                    MVT::i64, 2/*#Ops*/, 57|128,12/*1593*/, 58|128,12/*1594*/,  // Results = #1595
/* 87234*/      OPC_EmitNode1, TARGET_VAL(PPC::AND8), 0,
                    MVT::i64, 2/*#Ops*/, 45|128,12/*1581*/, 59|128,12/*1595*/,  // Results = #1596
/* 87244*/      OPC_EmitNode1, TARGET_VAL(PPC::OR8), 0,
                    MVT::i64, 2/*#Ops*/, 59|128,11/*1467*/, 60|128,12/*1596*/,  // Results = #1597
/* 87254*/      OPC_EmitInteger, MVT::i32, 32, 
/* 87257*/      OPC_EmitInteger, MVT::i32, 32, 
/* 87260*/      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
/* 87272*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 87275*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                    MVT::i32, 2/*#Ops*/, 64|128,12/*1600*/, 65|128,12/*1601*/,  // Results = #1602
/* 87285*/      OPC_EmitInteger, MVT::i32, 8, 
/* 87288*/      OPC_EmitInteger, MVT::i32, 24, 
/* 87291*/      OPC_EmitInteger, MVT::i32, 31, 
/* 87294*/      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
/* 87310*/      OPC_EmitInteger, MVT::i32, PPC::sub_32,
/* 87313*/      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
/* 87325*/      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] }))
/* 87335*/    0, // EndSwitchType
/* 87336*/  /*SwitchOpcode*/ 13|128,21/*2701*/, TARGET_VAL(ISD::UINT_TO_FP),// ->90041
/* 87340*/    OPC_Scope, 24|128,20/*2584*/, /*->89927*/ // 2 children in Scope
/* 87343*/      OPC_MoveChild0,
/* 87344*/      OPC_Scope, 77|128,2/*333*/, /*->87680*/ // 7 children in Scope
/* 87347*/        OPC_CheckAndImm, 127|128,127|128,3/*65535*/, 
/* 87351*/        OPC_MoveChild0,
/* 87352*/        OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/* 87355*/        OPC_RecordChild0, // #0 = $src
/* 87356*/        OPC_CheckChild0Type, MVT::v8i16,
/* 87358*/        OPC_Scope, 39, /*->87399*/ // 8 children in Scope
/* 87360*/          OPC_CheckChild1Integer, 0, 
/* 87362*/          OPC_MoveParent,
/* 87363*/          OPC_CheckType, MVT::i32,
/* 87365*/          OPC_MoveParent,
/* 87366*/          OPC_CheckType, MVT::f128,
/* 87368*/          OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 87370*/          OPC_EmitInteger, MVT::i32, 0, 
/* 87373*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUH), 0,
                        MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 87381*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 87384*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 87392*/          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] }))
/* 87399*/        /*Scope*/ 39, /*->87439*/
/* 87400*/          OPC_CheckChild1Integer, 1, 
/* 87402*/          OPC_MoveParent,
/* 87403*/          OPC_CheckType, MVT::i32,
/* 87405*/          OPC_MoveParent,
/* 87406*/          OPC_CheckType, MVT::f128,
/* 87408*/          OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 87410*/          OPC_EmitInteger, MVT::i32, 2, 
/* 87413*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUH), 0,
                        MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 87421*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 87424*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 87432*/          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] }))
/* 87439*/        /*Scope*/ 39, /*->87479*/
/* 87440*/          OPC_CheckChild1Integer, 2, 
/* 87442*/          OPC_MoveParent,
/* 87443*/          OPC_CheckType, MVT::i32,
/* 87445*/          OPC_MoveParent,
/* 87446*/          OPC_CheckType, MVT::f128,
/* 87448*/          OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 87450*/          OPC_EmitInteger, MVT::i32, 4, 
/* 87453*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUH), 0,
                        MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 87461*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 87464*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 87472*/          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] }))
/* 87479*/        /*Scope*/ 39, /*->87519*/
/* 87480*/          OPC_CheckChild1Integer, 3, 
/* 87482*/          OPC_MoveParent,
/* 87483*/          OPC_CheckType, MVT::i32,
/* 87485*/          OPC_MoveParent,
/* 87486*/          OPC_CheckType, MVT::f128,
/* 87488*/          OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 87490*/          OPC_EmitInteger, MVT::i32, 6, 
/* 87493*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUH), 0,
                        MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 87501*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 87504*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 87512*/          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] }))
/* 87519*/        /*Scope*/ 39, /*->87559*/
/* 87520*/          OPC_CheckChild1Integer, 4, 
/* 87522*/          OPC_MoveParent,
/* 87523*/          OPC_CheckType, MVT::i32,
/* 87525*/          OPC_MoveParent,
/* 87526*/          OPC_CheckType, MVT::f128,
/* 87528*/          OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 87530*/          OPC_EmitInteger, MVT::i32, 8, 
/* 87533*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUH), 0,
                        MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 87541*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 87544*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 87552*/          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] }))
/* 87559*/        /*Scope*/ 39, /*->87599*/
/* 87560*/          OPC_CheckChild1Integer, 5, 
/* 87562*/          OPC_MoveParent,
/* 87563*/          OPC_CheckType, MVT::i32,
/* 87565*/          OPC_MoveParent,
/* 87566*/          OPC_CheckType, MVT::f128,
/* 87568*/          OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 87570*/          OPC_EmitInteger, MVT::i32, 10, 
/* 87573*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUH), 0,
                        MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 87581*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 87584*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 87592*/          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] }))
/* 87599*/        /*Scope*/ 39, /*->87639*/
/* 87600*/          OPC_CheckChild1Integer, 6, 
/* 87602*/          OPC_MoveParent,
/* 87603*/          OPC_CheckType, MVT::i32,
/* 87605*/          OPC_MoveParent,
/* 87606*/          OPC_CheckType, MVT::f128,
/* 87608*/          OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 87610*/          OPC_EmitInteger, MVT::i32, 12, 
/* 87613*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUH), 0,
                        MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 87621*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 87624*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 87632*/          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] }))
/* 87639*/        /*Scope*/ 39, /*->87679*/
/* 87640*/          OPC_CheckChild1Integer, 7, 
/* 87642*/          OPC_MoveParent,
/* 87643*/          OPC_CheckType, MVT::i32,
/* 87645*/          OPC_MoveParent,
/* 87646*/          OPC_CheckType, MVT::f128,
/* 87648*/          OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 87650*/          OPC_EmitInteger, MVT::i32, 14, 
/* 87653*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUH), 0,
                        MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 87661*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 87664*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 87672*/          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] }))
/* 87679*/        0, /*End of Scope*/
/* 87680*/      /*Scope*/ 12|128,5/*652*/, /*->88334*/
/* 87682*/        OPC_CheckAndImm, 127|128,1/*255*/, 
/* 87685*/        OPC_MoveChild0,
/* 87686*/        OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/* 87689*/        OPC_RecordChild0, // #0 = $src
/* 87690*/        OPC_CheckChild0Type, MVT::v16i8,
/* 87692*/        OPC_Scope, 39, /*->87733*/ // 16 children in Scope
/* 87694*/          OPC_CheckChild1Integer, 0, 
/* 87696*/          OPC_MoveParent,
/* 87697*/          OPC_CheckType, MVT::i32,
/* 87699*/          OPC_MoveParent,
/* 87700*/          OPC_CheckType, MVT::f128,
/* 87702*/          OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 87704*/          OPC_EmitInteger, MVT::i32, 0, 
/* 87707*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                        MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 87715*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 87718*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 87726*/          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] }))
/* 87733*/        /*Scope*/ 39, /*->87773*/
/* 87734*/          OPC_CheckChild1Integer, 1, 
/* 87736*/          OPC_MoveParent,
/* 87737*/          OPC_CheckType, MVT::i32,
/* 87739*/          OPC_MoveParent,
/* 87740*/          OPC_CheckType, MVT::f128,
/* 87742*/          OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 87744*/          OPC_EmitInteger, MVT::i32, 1, 
/* 87747*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                        MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 87755*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 87758*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 87766*/          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] }))
/* 87773*/        /*Scope*/ 39, /*->87813*/
/* 87774*/          OPC_CheckChild1Integer, 2, 
/* 87776*/          OPC_MoveParent,
/* 87777*/          OPC_CheckType, MVT::i32,
/* 87779*/          OPC_MoveParent,
/* 87780*/          OPC_CheckType, MVT::f128,
/* 87782*/          OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 87784*/          OPC_EmitInteger, MVT::i32, 2, 
/* 87787*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                        MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 87795*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 87798*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 87806*/          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] }))
/* 87813*/        /*Scope*/ 39, /*->87853*/
/* 87814*/          OPC_CheckChild1Integer, 3, 
/* 87816*/          OPC_MoveParent,
/* 87817*/          OPC_CheckType, MVT::i32,
/* 87819*/          OPC_MoveParent,
/* 87820*/          OPC_CheckType, MVT::f128,
/* 87822*/          OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 87824*/          OPC_EmitInteger, MVT::i32, 3, 
/* 87827*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                        MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 87835*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 87838*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 87846*/          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] }))
/* 87853*/        /*Scope*/ 39, /*->87893*/
/* 87854*/          OPC_CheckChild1Integer, 4, 
/* 87856*/          OPC_MoveParent,
/* 87857*/          OPC_CheckType, MVT::i32,
/* 87859*/          OPC_MoveParent,
/* 87860*/          OPC_CheckType, MVT::f128,
/* 87862*/          OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 87864*/          OPC_EmitInteger, MVT::i32, 4, 
/* 87867*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                        MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 87875*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 87878*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 87886*/          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] }))
/* 87893*/        /*Scope*/ 39, /*->87933*/
/* 87894*/          OPC_CheckChild1Integer, 5, 
/* 87896*/          OPC_MoveParent,
/* 87897*/          OPC_CheckType, MVT::i32,
/* 87899*/          OPC_MoveParent,
/* 87900*/          OPC_CheckType, MVT::f128,
/* 87902*/          OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 87904*/          OPC_EmitInteger, MVT::i32, 5, 
/* 87907*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                        MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 87915*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 87918*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 87926*/          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] }))
/* 87933*/        /*Scope*/ 39, /*->87973*/
/* 87934*/          OPC_CheckChild1Integer, 6, 
/* 87936*/          OPC_MoveParent,
/* 87937*/          OPC_CheckType, MVT::i32,
/* 87939*/          OPC_MoveParent,
/* 87940*/          OPC_CheckType, MVT::f128,
/* 87942*/          OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 87944*/          OPC_EmitInteger, MVT::i32, 6, 
/* 87947*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                        MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 87955*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 87958*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 87966*/          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] }))
/* 87973*/        /*Scope*/ 39, /*->88013*/
/* 87974*/          OPC_CheckChild1Integer, 7, 
/* 87976*/          OPC_MoveParent,
/* 87977*/          OPC_CheckType, MVT::i32,
/* 87979*/          OPC_MoveParent,
/* 87980*/          OPC_CheckType, MVT::f128,
/* 87982*/          OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 87984*/          OPC_EmitInteger, MVT::i32, 7, 
/* 87987*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                        MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 87995*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 87998*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 88006*/          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] }))
/* 88013*/        /*Scope*/ 39, /*->88053*/
/* 88014*/          OPC_CheckChild1Integer, 8, 
/* 88016*/          OPC_MoveParent,
/* 88017*/          OPC_CheckType, MVT::i32,
/* 88019*/          OPC_MoveParent,
/* 88020*/          OPC_CheckType, MVT::f128,
/* 88022*/          OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 88024*/          OPC_EmitInteger, MVT::i32, 8, 
/* 88027*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                        MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 88035*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 88038*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 88046*/          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] }))
/* 88053*/        /*Scope*/ 39, /*->88093*/
/* 88054*/          OPC_CheckChild1Integer, 9, 
/* 88056*/          OPC_MoveParent,
/* 88057*/          OPC_CheckType, MVT::i32,
/* 88059*/          OPC_MoveParent,
/* 88060*/          OPC_CheckType, MVT::f128,
/* 88062*/          OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 88064*/          OPC_EmitInteger, MVT::i32, 9, 
/* 88067*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                        MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 88075*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 88078*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 88086*/          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] }))
/* 88093*/        /*Scope*/ 39, /*->88133*/
/* 88094*/          OPC_CheckChild1Integer, 10, 
/* 88096*/          OPC_MoveParent,
/* 88097*/          OPC_CheckType, MVT::i32,
/* 88099*/          OPC_MoveParent,
/* 88100*/          OPC_CheckType, MVT::f128,
/* 88102*/          OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 88104*/          OPC_EmitInteger, MVT::i32, 10, 
/* 88107*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                        MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 88115*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 88118*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 88126*/          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] }))
/* 88133*/        /*Scope*/ 39, /*->88173*/
/* 88134*/          OPC_CheckChild1Integer, 11, 
/* 88136*/          OPC_MoveParent,
/* 88137*/          OPC_CheckType, MVT::i32,
/* 88139*/          OPC_MoveParent,
/* 88140*/          OPC_CheckType, MVT::f128,
/* 88142*/          OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 88144*/          OPC_EmitInteger, MVT::i32, 11, 
/* 88147*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                        MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 88155*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 88158*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 88166*/          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] }))
/* 88173*/        /*Scope*/ 39, /*->88213*/
/* 88174*/          OPC_CheckChild1Integer, 12, 
/* 88176*/          OPC_MoveParent,
/* 88177*/          OPC_CheckType, MVT::i32,
/* 88179*/          OPC_MoveParent,
/* 88180*/          OPC_CheckType, MVT::f128,
/* 88182*/          OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 88184*/          OPC_EmitInteger, MVT::i32, 12, 
/* 88187*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                        MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 88195*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 88198*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 88206*/          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] }))
/* 88213*/        /*Scope*/ 39, /*->88253*/
/* 88214*/          OPC_CheckChild1Integer, 13, 
/* 88216*/          OPC_MoveParent,
/* 88217*/          OPC_CheckType, MVT::i32,
/* 88219*/          OPC_MoveParent,
/* 88220*/          OPC_CheckType, MVT::f128,
/* 88222*/          OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 88224*/          OPC_EmitInteger, MVT::i32, 13, 
/* 88227*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                        MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 88235*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 88238*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 88246*/          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] }))
/* 88253*/        /*Scope*/ 39, /*->88293*/
/* 88254*/          OPC_CheckChild1Integer, 14, 
/* 88256*/          OPC_MoveParent,
/* 88257*/          OPC_CheckType, MVT::i32,
/* 88259*/          OPC_MoveParent,
/* 88260*/          OPC_CheckType, MVT::f128,
/* 88262*/          OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 88264*/          OPC_EmitInteger, MVT::i32, 14, 
/* 88267*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                        MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 88275*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 88278*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 88286*/          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] }))
/* 88293*/        /*Scope*/ 39, /*->88333*/
/* 88294*/          OPC_CheckChild1Integer, 15, 
/* 88296*/          OPC_MoveParent,
/* 88297*/          OPC_CheckType, MVT::i32,
/* 88299*/          OPC_MoveParent,
/* 88300*/          OPC_CheckType, MVT::f128,
/* 88302*/          OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 88304*/          OPC_EmitInteger, MVT::i32, 15, 
/* 88307*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                        MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 88315*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 88318*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 88326*/          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] }))
/* 88333*/        0, /*End of Scope*/
/* 88334*/      /*Scope*/ 77|128,2/*333*/, /*->88669*/
/* 88336*/        OPC_CheckAndImm, 127|128,127|128,3/*65535*/, 
/* 88340*/        OPC_MoveChild0,
/* 88341*/        OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/* 88344*/        OPC_RecordChild0, // #0 = $src
/* 88345*/        OPC_CheckChild0Type, MVT::v8i16,
/* 88347*/        OPC_Scope, 39, /*->88388*/ // 8 children in Scope
/* 88349*/          OPC_CheckChild1Integer, 0, 
/* 88351*/          OPC_MoveParent,
/* 88352*/          OPC_CheckType, MVT::i32,
/* 88354*/          OPC_MoveParent,
/* 88355*/          OPC_CheckType, MVT::f128,
/* 88357*/          OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 88359*/          OPC_EmitInteger, MVT::i32, 14, 
/* 88362*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUH), 0,
                        MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 88370*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 88373*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 88381*/          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] }))
/* 88388*/        /*Scope*/ 39, /*->88428*/
/* 88389*/          OPC_CheckChild1Integer, 1, 
/* 88391*/          OPC_MoveParent,
/* 88392*/          OPC_CheckType, MVT::i32,
/* 88394*/          OPC_MoveParent,
/* 88395*/          OPC_CheckType, MVT::f128,
/* 88397*/          OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 88399*/          OPC_EmitInteger, MVT::i32, 12, 
/* 88402*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUH), 0,
                        MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 88410*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 88413*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 88421*/          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] }))
/* 88428*/        /*Scope*/ 39, /*->88468*/
/* 88429*/          OPC_CheckChild1Integer, 2, 
/* 88431*/          OPC_MoveParent,
/* 88432*/          OPC_CheckType, MVT::i32,
/* 88434*/          OPC_MoveParent,
/* 88435*/          OPC_CheckType, MVT::f128,
/* 88437*/          OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 88439*/          OPC_EmitInteger, MVT::i32, 10, 
/* 88442*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUH), 0,
                        MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 88450*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 88453*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 88461*/          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] }))
/* 88468*/        /*Scope*/ 39, /*->88508*/
/* 88469*/          OPC_CheckChild1Integer, 3, 
/* 88471*/          OPC_MoveParent,
/* 88472*/          OPC_CheckType, MVT::i32,
/* 88474*/          OPC_MoveParent,
/* 88475*/          OPC_CheckType, MVT::f128,
/* 88477*/          OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 88479*/          OPC_EmitInteger, MVT::i32, 8, 
/* 88482*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUH), 0,
                        MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 88490*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 88493*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 88501*/          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] }))
/* 88508*/        /*Scope*/ 39, /*->88548*/
/* 88509*/          OPC_CheckChild1Integer, 4, 
/* 88511*/          OPC_MoveParent,
/* 88512*/          OPC_CheckType, MVT::i32,
/* 88514*/          OPC_MoveParent,
/* 88515*/          OPC_CheckType, MVT::f128,
/* 88517*/          OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 88519*/          OPC_EmitInteger, MVT::i32, 6, 
/* 88522*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUH), 0,
                        MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 88530*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 88533*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 88541*/          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] }))
/* 88548*/        /*Scope*/ 39, /*->88588*/
/* 88549*/          OPC_CheckChild1Integer, 5, 
/* 88551*/          OPC_MoveParent,
/* 88552*/          OPC_CheckType, MVT::i32,
/* 88554*/          OPC_MoveParent,
/* 88555*/          OPC_CheckType, MVT::f128,
/* 88557*/          OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 88559*/          OPC_EmitInteger, MVT::i32, 4, 
/* 88562*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUH), 0,
                        MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 88570*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 88573*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 88581*/          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] }))
/* 88588*/        /*Scope*/ 39, /*->88628*/
/* 88589*/          OPC_CheckChild1Integer, 6, 
/* 88591*/          OPC_MoveParent,
/* 88592*/          OPC_CheckType, MVT::i32,
/* 88594*/          OPC_MoveParent,
/* 88595*/          OPC_CheckType, MVT::f128,
/* 88597*/          OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 88599*/          OPC_EmitInteger, MVT::i32, 2, 
/* 88602*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUH), 0,
                        MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 88610*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 88613*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 88621*/          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] }))
/* 88628*/        /*Scope*/ 39, /*->88668*/
/* 88629*/          OPC_CheckChild1Integer, 7, 
/* 88631*/          OPC_MoveParent,
/* 88632*/          OPC_CheckType, MVT::i32,
/* 88634*/          OPC_MoveParent,
/* 88635*/          OPC_CheckType, MVT::f128,
/* 88637*/          OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 88639*/          OPC_EmitInteger, MVT::i32, 0, 
/* 88642*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUH), 0,
                        MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 88650*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 88653*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 88661*/          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] }))
/* 88668*/        0, /*End of Scope*/
/* 88669*/      /*Scope*/ 12|128,5/*652*/, /*->89323*/
/* 88671*/        OPC_CheckAndImm, 127|128,1/*255*/, 
/* 88674*/        OPC_MoveChild0,
/* 88675*/        OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/* 88678*/        OPC_RecordChild0, // #0 = $src
/* 88679*/        OPC_CheckChild0Type, MVT::v16i8,
/* 88681*/        OPC_Scope, 39, /*->88722*/ // 16 children in Scope
/* 88683*/          OPC_CheckChild1Integer, 0, 
/* 88685*/          OPC_MoveParent,
/* 88686*/          OPC_CheckType, MVT::i32,
/* 88688*/          OPC_MoveParent,
/* 88689*/          OPC_CheckType, MVT::f128,
/* 88691*/          OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 88693*/          OPC_EmitInteger, MVT::i32, 15, 
/* 88696*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                        MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 88704*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 88707*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 88715*/          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] }))
/* 88722*/        /*Scope*/ 39, /*->88762*/
/* 88723*/          OPC_CheckChild1Integer, 1, 
/* 88725*/          OPC_MoveParent,
/* 88726*/          OPC_CheckType, MVT::i32,
/* 88728*/          OPC_MoveParent,
/* 88729*/          OPC_CheckType, MVT::f128,
/* 88731*/          OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 88733*/          OPC_EmitInteger, MVT::i32, 14, 
/* 88736*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                        MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 88744*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 88747*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 88755*/          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] }))
/* 88762*/        /*Scope*/ 39, /*->88802*/
/* 88763*/          OPC_CheckChild1Integer, 2, 
/* 88765*/          OPC_MoveParent,
/* 88766*/          OPC_CheckType, MVT::i32,
/* 88768*/          OPC_MoveParent,
/* 88769*/          OPC_CheckType, MVT::f128,
/* 88771*/          OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 88773*/          OPC_EmitInteger, MVT::i32, 13, 
/* 88776*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                        MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 88784*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 88787*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 88795*/          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] }))
/* 88802*/        /*Scope*/ 39, /*->88842*/
/* 88803*/          OPC_CheckChild1Integer, 3, 
/* 88805*/          OPC_MoveParent,
/* 88806*/          OPC_CheckType, MVT::i32,
/* 88808*/          OPC_MoveParent,
/* 88809*/          OPC_CheckType, MVT::f128,
/* 88811*/          OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 88813*/          OPC_EmitInteger, MVT::i32, 12, 
/* 88816*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                        MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 88824*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 88827*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 88835*/          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] }))
/* 88842*/        /*Scope*/ 39, /*->88882*/
/* 88843*/          OPC_CheckChild1Integer, 4, 
/* 88845*/          OPC_MoveParent,
/* 88846*/          OPC_CheckType, MVT::i32,
/* 88848*/          OPC_MoveParent,
/* 88849*/          OPC_CheckType, MVT::f128,
/* 88851*/          OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 88853*/          OPC_EmitInteger, MVT::i32, 11, 
/* 88856*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                        MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 88864*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 88867*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 88875*/          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] }))
/* 88882*/        /*Scope*/ 39, /*->88922*/
/* 88883*/          OPC_CheckChild1Integer, 5, 
/* 88885*/          OPC_MoveParent,
/* 88886*/          OPC_CheckType, MVT::i32,
/* 88888*/          OPC_MoveParent,
/* 88889*/          OPC_CheckType, MVT::f128,
/* 88891*/          OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 88893*/          OPC_EmitInteger, MVT::i32, 10, 
/* 88896*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                        MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 88904*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 88907*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 88915*/          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] }))
/* 88922*/        /*Scope*/ 39, /*->88962*/
/* 88923*/          OPC_CheckChild1Integer, 6, 
/* 88925*/          OPC_MoveParent,
/* 88926*/          OPC_CheckType, MVT::i32,
/* 88928*/          OPC_MoveParent,
/* 88929*/          OPC_CheckType, MVT::f128,
/* 88931*/          OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 88933*/          OPC_EmitInteger, MVT::i32, 9, 
/* 88936*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                        MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 88944*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 88947*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 88955*/          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] }))
/* 88962*/        /*Scope*/ 39, /*->89002*/
/* 88963*/          OPC_CheckChild1Integer, 7, 
/* 88965*/          OPC_MoveParent,
/* 88966*/          OPC_CheckType, MVT::i32,
/* 88968*/          OPC_MoveParent,
/* 88969*/          OPC_CheckType, MVT::f128,
/* 88971*/          OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 88973*/          OPC_EmitInteger, MVT::i32, 8, 
/* 88976*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                        MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 88984*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 88987*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 88995*/          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] }))
/* 89002*/        /*Scope*/ 39, /*->89042*/
/* 89003*/          OPC_CheckChild1Integer, 8, 
/* 89005*/          OPC_MoveParent,
/* 89006*/          OPC_CheckType, MVT::i32,
/* 89008*/          OPC_MoveParent,
/* 89009*/          OPC_CheckType, MVT::f128,
/* 89011*/          OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 89013*/          OPC_EmitInteger, MVT::i32, 7, 
/* 89016*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                        MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 89024*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 89027*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 89035*/          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] }))
/* 89042*/        /*Scope*/ 39, /*->89082*/
/* 89043*/          OPC_CheckChild1Integer, 9, 
/* 89045*/          OPC_MoveParent,
/* 89046*/          OPC_CheckType, MVT::i32,
/* 89048*/          OPC_MoveParent,
/* 89049*/          OPC_CheckType, MVT::f128,
/* 89051*/          OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 89053*/          OPC_EmitInteger, MVT::i32, 6, 
/* 89056*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                        MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 89064*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 89067*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 89075*/          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] }))
/* 89082*/        /*Scope*/ 39, /*->89122*/
/* 89083*/          OPC_CheckChild1Integer, 10, 
/* 89085*/          OPC_MoveParent,
/* 89086*/          OPC_CheckType, MVT::i32,
/* 89088*/          OPC_MoveParent,
/* 89089*/          OPC_CheckType, MVT::f128,
/* 89091*/          OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 89093*/          OPC_EmitInteger, MVT::i32, 5, 
/* 89096*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                        MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 89104*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 89107*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 89115*/          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] }))
/* 89122*/        /*Scope*/ 39, /*->89162*/
/* 89123*/          OPC_CheckChild1Integer, 11, 
/* 89125*/          OPC_MoveParent,
/* 89126*/          OPC_CheckType, MVT::i32,
/* 89128*/          OPC_MoveParent,
/* 89129*/          OPC_CheckType, MVT::f128,
/* 89131*/          OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 89133*/          OPC_EmitInteger, MVT::i32, 4, 
/* 89136*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                        MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 89144*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 89147*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 89155*/          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] }))
/* 89162*/        /*Scope*/ 39, /*->89202*/
/* 89163*/          OPC_CheckChild1Integer, 12, 
/* 89165*/          OPC_MoveParent,
/* 89166*/          OPC_CheckType, MVT::i32,
/* 89168*/          OPC_MoveParent,
/* 89169*/          OPC_CheckType, MVT::f128,
/* 89171*/          OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 89173*/          OPC_EmitInteger, MVT::i32, 3, 
/* 89176*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                        MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 89184*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 89187*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 89195*/          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] }))
/* 89202*/        /*Scope*/ 39, /*->89242*/
/* 89203*/          OPC_CheckChild1Integer, 13, 
/* 89205*/          OPC_MoveParent,
/* 89206*/          OPC_CheckType, MVT::i32,
/* 89208*/          OPC_MoveParent,
/* 89209*/          OPC_CheckType, MVT::f128,
/* 89211*/          OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 89213*/          OPC_EmitInteger, MVT::i32, 2, 
/* 89216*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                        MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 89224*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 89227*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 89235*/          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] }))
/* 89242*/        /*Scope*/ 39, /*->89282*/
/* 89243*/          OPC_CheckChild1Integer, 14, 
/* 89245*/          OPC_MoveParent,
/* 89246*/          OPC_CheckType, MVT::i32,
/* 89248*/          OPC_MoveParent,
/* 89249*/          OPC_CheckType, MVT::f128,
/* 89251*/          OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 89253*/          OPC_EmitInteger, MVT::i32, 1, 
/* 89256*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                        MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 89264*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 89267*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 89275*/          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] }))
/* 89282*/        /*Scope*/ 39, /*->89322*/
/* 89283*/          OPC_CheckChild1Integer, 15, 
/* 89285*/          OPC_MoveParent,
/* 89286*/          OPC_CheckType, MVT::i32,
/* 89288*/          OPC_MoveParent,
/* 89289*/          OPC_CheckType, MVT::f128,
/* 89291*/          OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 89293*/          OPC_EmitInteger, MVT::i32, 0, 
/* 89296*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                        MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 89304*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 89307*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 89315*/          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] }))
/* 89322*/        0, /*End of Scope*/
/* 89323*/      /*Scope*/ 29|128,1/*157*/, /*->89482*/
/* 89325*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 89328*/        OPC_RecordMemRef,
/* 89329*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 89330*/        OPC_RecordChild1, // #1 = $src
/* 89331*/        OPC_CheckPredicate, 20, // Predicate_unindexedload
/* 89333*/        OPC_Scope, 56, /*->89391*/ // 3 children in Scope
/* 89335*/          OPC_CheckPredicate, 23, // Predicate_load
/* 89337*/          OPC_SwitchType /*2 cases */, 24, MVT::i32,// ->89364
/* 89340*/            OPC_MoveParent,
/* 89341*/            OPC_CheckType, MVT::f128,
/* 89343*/            OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/* 89345*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/* 89348*/            OPC_EmitMergeInputChains1_0,
/* 89349*/            OPC_EmitNode1, TARGET_VAL(PPC::LIWZX), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 89357*/            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))
/* 89364*/          /*SwitchType*/ 24, MVT::i64,// ->89390
/* 89366*/            OPC_MoveParent,
/* 89367*/            OPC_CheckType, MVT::f128,
/* 89369*/            OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/* 89371*/            OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectAddrImmX4:$src #2 #3
/* 89374*/            OPC_EmitMergeInputChains1_0,
/* 89375*/            OPC_EmitNode1, TARGET_VAL(PPC::LXSD), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 89383*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVUDQP), 0|OPFL_Chain,
                          MVT::f128, 1/*#Ops*/, 4, 
                      // Src: (uint_to_fp:{ *:[f128] } (ld:{ *:[i64] } iaddrX4:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 416
                      // Dst: (XSCVUDQP:{ *:[f128] } (LXSD:{ *:[f64] } iaddrX4:{ *:[iPTR] }:$src))
/* 89390*/          0, // EndSwitchType
/* 89391*/        /*Scope*/ 60, /*->89452*/
/* 89392*/          OPC_CheckPredicate, 21, // Predicate_zextload
/* 89394*/          OPC_CheckType, MVT::i32,
/* 89396*/          OPC_Scope, 26, /*->89424*/ // 2 children in Scope
/* 89398*/            OPC_CheckPredicate, 3, // Predicate_zextloadi16
/* 89400*/            OPC_MoveParent,
/* 89401*/            OPC_CheckType, MVT::f128,
/* 89403*/            OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/* 89405*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/* 89408*/            OPC_EmitMergeInputChains1_0,
/* 89409*/            OPC_EmitNode1, TARGET_VAL(PPC::LXSIHZX), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 89417*/            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))
/* 89424*/          /*Scope*/ 26, /*->89451*/
/* 89425*/            OPC_CheckPredicate, 2, // Predicate_zextloadi8
/* 89427*/            OPC_MoveParent,
/* 89428*/            OPC_CheckType, MVT::f128,
/* 89430*/            OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/* 89432*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/* 89435*/            OPC_EmitMergeInputChains1_0,
/* 89436*/            OPC_EmitNode1, TARGET_VAL(PPC::LXSIBZX), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 89444*/            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))
/* 89451*/          0, /*End of Scope*/
/* 89452*/        /*Scope*/ 28, /*->89481*/
/* 89453*/          OPC_CheckPredicate, 23, // Predicate_load
/* 89455*/          OPC_CheckType, MVT::i64,
/* 89457*/          OPC_MoveParent,
/* 89458*/          OPC_CheckType, MVT::f128,
/* 89460*/          OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/* 89462*/          OPC_CheckComplexPat, /*CP*/2, /*#*/1, // SelectAddrIdxX4:$src #2 #3
/* 89465*/          OPC_EmitMergeInputChains1_0,
/* 89466*/          OPC_EmitNode1, TARGET_VAL(PPC::LXSDX), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 89474*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVUDQP), 0|OPFL_Chain,
                        MVT::f128, 1/*#Ops*/, 4, 
                    // Src: (uint_to_fp:{ *:[f128] } (ld:{ *:[i64] } xaddrX4:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 416
                    // Dst: (XSCVUDQP:{ *:[f128] } (LXSDX:{ *:[f64] } xaddrX4:{ *:[iPTR] }:$src))
/* 89481*/        0, /*End of Scope*/
/* 89482*/      /*Scope*/ 84|128,2/*340*/, /*->89824*/
/* 89484*/        OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/* 89487*/        OPC_RecordChild0, // #0 = $src
/* 89488*/        OPC_Scope, 114, /*->89604*/ // 4 children in Scope
/* 89490*/          OPC_CheckChild1Integer, 0, 
/* 89492*/          OPC_SwitchType /*2 cases */, 59, MVT::i64,// ->89554
/* 89495*/            OPC_MoveParent,
/* 89496*/            OPC_CheckType, MVT::f128,
/* 89498*/            OPC_Scope, 20, /*->89520*/ // 2 children in Scope
/* 89500*/              OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 89502*/              OPC_EmitInteger, MVT::i32, PPC::VFRCRegClassID,
/* 89505*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::f64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 89513*/              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] }))
/* 89520*/            /*Scope*/ 32, /*->89553*/
/* 89521*/              OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 89523*/              OPC_EmitInteger, MVT::i32, 3, 
/* 89526*/              OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                            MVT::v4i32, 3/*#Ops*/, 0, 0, 1,  // Results = #2
/* 89535*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 89538*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 89546*/              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] }))
/* 89553*/            0, /*End of Scope*/
/* 89554*/          /*SwitchType*/ 47, MVT::i32,// ->89603
/* 89556*/            OPC_MoveParent,
/* 89557*/            OPC_CheckType, MVT::f128,
/* 89559*/            OPC_Scope, 20, /*->89581*/ // 2 children in Scope
/* 89561*/              OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 89563*/              OPC_EmitInteger, MVT::i32, 0, 
/* 89566*/              OPC_EmitNode1, TARGET_VAL(PPC::XXEXTRACTUW), 0,
                            MVT::f64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 89574*/              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] }))
/* 89581*/            /*Scope*/ 20, /*->89602*/
/* 89582*/              OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 89584*/              OPC_EmitInteger, MVT::i32, 12, 
/* 89587*/              OPC_EmitNode1, TARGET_VAL(PPC::XXEXTRACTUW), 0,
                            MVT::f64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 89595*/              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] }))
/* 89602*/            0, /*End of Scope*/
/* 89603*/          0, // EndSwitchType
/* 89604*/        /*Scope*/ 114, /*->89719*/
/* 89605*/          OPC_CheckChild1Integer, 1, 
/* 89607*/          OPC_SwitchType /*2 cases */, 47, MVT::i32,// ->89657
/* 89610*/            OPC_MoveParent,
/* 89611*/            OPC_CheckType, MVT::f128,
/* 89613*/            OPC_Scope, 20, /*->89635*/ // 2 children in Scope
/* 89615*/              OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 89617*/              OPC_EmitInteger, MVT::i32, 4, 
/* 89620*/              OPC_EmitNode1, TARGET_VAL(PPC::XXEXTRACTUW), 0,
                            MVT::f64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 89628*/              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] }))
/* 89635*/            /*Scope*/ 20, /*->89656*/
/* 89636*/              OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 89638*/              OPC_EmitInteger, MVT::i32, 8, 
/* 89641*/              OPC_EmitNode1, TARGET_VAL(PPC::XXEXTRACTUW), 0,
                            MVT::f64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 89649*/              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] }))
/* 89656*/            0, /*End of Scope*/
/* 89657*/          /*SwitchType*/ 59, MVT::i64,// ->89718
/* 89659*/            OPC_MoveParent,
/* 89660*/            OPC_CheckType, MVT::f128,
/* 89662*/            OPC_Scope, 20, /*->89684*/ // 2 children in Scope
/* 89664*/              OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 89666*/              OPC_EmitInteger, MVT::i32, PPC::VFRCRegClassID,
/* 89669*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::f64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 89677*/              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] }))
/* 89684*/            /*Scope*/ 32, /*->89717*/
/* 89685*/              OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 89687*/              OPC_EmitInteger, MVT::i32, 3, 
/* 89690*/              OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                            MVT::v4i32, 3/*#Ops*/, 0, 0, 1,  // Results = #2
/* 89699*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 89702*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 89710*/              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] }))
/* 89717*/            0, /*End of Scope*/
/* 89718*/          0, // EndSwitchType
/* 89719*/        /*Scope*/ 51, /*->89771*/
/* 89720*/          OPC_CheckChild1Integer, 2, 
/* 89722*/          OPC_CheckType, MVT::i32,
/* 89724*/          OPC_MoveParent,
/* 89725*/          OPC_CheckType, MVT::f128,
/* 89727*/          OPC_Scope, 20, /*->89749*/ // 2 children in Scope
/* 89729*/            OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 89731*/            OPC_EmitInteger, MVT::i32, 8, 
/* 89734*/            OPC_EmitNode1, TARGET_VAL(PPC::XXEXTRACTUW), 0,
                          MVT::f64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 89742*/            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] }))
/* 89749*/          /*Scope*/ 20, /*->89770*/
/* 89750*/            OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 89752*/            OPC_EmitInteger, MVT::i32, 4, 
/* 89755*/            OPC_EmitNode1, TARGET_VAL(PPC::XXEXTRACTUW), 0,
                          MVT::f64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 89763*/            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] }))
/* 89770*/          0, /*End of Scope*/
/* 89771*/        /*Scope*/ 51, /*->89823*/
/* 89772*/          OPC_CheckChild1Integer, 3, 
/* 89774*/          OPC_CheckType, MVT::i32,
/* 89776*/          OPC_MoveParent,
/* 89777*/          OPC_CheckType, MVT::f128,
/* 89779*/          OPC_Scope, 20, /*->89801*/ // 2 children in Scope
/* 89781*/            OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 89783*/            OPC_EmitInteger, MVT::i32, 12, 
/* 89786*/            OPC_EmitNode1, TARGET_VAL(PPC::XXEXTRACTUW), 0,
                          MVT::f64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 89794*/            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] }))
/* 89801*/          /*Scope*/ 20, /*->89822*/
/* 89802*/            OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 89804*/            OPC_EmitInteger, MVT::i32, 0, 
/* 89807*/            OPC_EmitNode1, TARGET_VAL(PPC::XXEXTRACTUW), 0,
                          MVT::f64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 89815*/            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] }))
/* 89822*/          0, /*End of Scope*/
/* 89823*/        0, /*End of Scope*/
/* 89824*/      /*Scope*/ 101, /*->89926*/
/* 89825*/        OPC_CheckOpcode, TARGET_VAL(PPCISD::MFVSR),
/* 89828*/        OPC_RecordChild0, // #0 = $src
/* 89829*/        OPC_CheckChild0Type, MVT::f64,
/* 89831*/        OPC_SwitchType /*2 cases */, 12, MVT::i64,// ->89846
/* 89834*/          OPC_MoveParent,
/* 89835*/          OPC_CheckType, MVT::f128,
/* 89837*/          OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/* 89839*/          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)
/* 89846*/        /*SwitchType*/ 77, MVT::i32,// ->89925
/* 89848*/          OPC_MoveParent,
/* 89849*/          OPC_CheckType, MVT::f128,
/* 89851*/          OPC_Scope, 35, /*->89888*/ // 2 children in Scope
/* 89853*/            OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 89855*/            OPC_EmitInteger, MVT::i64, 1, 
/* 89858*/            OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 89861*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                          MVT::v4i32, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/* 89870*/            OPC_EmitInteger, MVT::i32, 4, 
/* 89873*/            OPC_EmitNode1, TARGET_VAL(PPC::XXEXTRACTUW), 0,
                          MVT::f64, 2/*#Ops*/, 3, 4,  // Results = #5
/* 89881*/            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] }))
/* 89888*/          /*Scope*/ 35, /*->89924*/
/* 89889*/            OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 89891*/            OPC_EmitInteger, MVT::i64, 1, 
/* 89894*/            OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 89897*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                          MVT::v4i32, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/* 89906*/            OPC_EmitInteger, MVT::i32, 8, 
/* 89909*/            OPC_EmitNode1, TARGET_VAL(PPC::XXEXTRACTUW), 0,
                          MVT::f64, 2/*#Ops*/, 3, 4,  // Results = #5
/* 89917*/            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] }))
/* 89924*/          0, /*End of Scope*/
/* 89925*/        0, // EndSwitchType
/* 89926*/      0, /*End of Scope*/
/* 89927*/    /*Scope*/ 112, /*->90040*/
/* 89928*/      OPC_RecordChild0, // #0 = $src
/* 89929*/      OPC_Scope, 24, /*->89955*/ // 4 children in Scope
/* 89931*/        OPC_CheckChild0Type, MVT::i64,
/* 89933*/        OPC_CheckType, MVT::f128,
/* 89935*/        OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/* 89937*/        OPC_EmitInteger, MVT::i32, PPC::VFRCRegClassID,
/* 89940*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::f64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 89948*/        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] }))
/* 89955*/      /*Scope*/ 44, /*->90000*/
/* 89956*/        OPC_CheckChild0Type, MVT::i32,
/* 89958*/        OPC_SwitchType /*3 cases */, 16, MVT::f128,// ->89977
/* 89961*/          OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/* 89963*/          OPC_EmitNode1, TARGET_VAL(PPC::MTVSRWZ), 0,
                        MVT::f64, 1/*#Ops*/, 0,  // Results = #1
/* 89970*/          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))
/* 89977*/        /*SwitchType*/ 9, MVT::f64,// ->89988
/* 89979*/          OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 89981*/          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)
/* 89988*/        /*SwitchType*/ 9, MVT::f32,// ->89999
/* 89990*/          OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 89992*/          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)
/* 89999*/        0, // EndSwitchType
/* 90000*/      /*Scope*/ 11, /*->90012*/
/* 90001*/        OPC_CheckType, MVT::v2f64,
/* 90003*/        OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 90005*/        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)
/* 90012*/      /*Scope*/ 26, /*->90039*/
/* 90013*/        OPC_CheckType, MVT::v4f32,
/* 90015*/        OPC_CheckChild0Type, MVT::v4i32,
/* 90017*/        OPC_Scope, 9, /*->90028*/ // 2 children in Scope
/* 90019*/          OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 90021*/          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)
/* 90028*/        /*Scope*/ 9, /*->90038*/
/* 90029*/          OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 90031*/          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)
/* 90038*/        0, /*End of Scope*/
/* 90039*/      0, /*End of Scope*/
/* 90040*/    0, /*End of Scope*/
/* 90041*/  /*SwitchOpcode*/ 38, TARGET_VAL(PPCISD::LXSIZX),// ->90082
/* 90044*/    OPC_RecordNode, // #0 = 'PPClxsizx' chained node
/* 90045*/    OPC_RecordChild1, // #1 = $src
/* 90046*/    OPC_Scope, 16, /*->90064*/ // 2 children in Scope
/* 90048*/      OPC_CheckChild2Integer, 1, 
/* 90050*/      OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/* 90052*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/* 90055*/      OPC_EmitMergeInputChains1_0,
/* 90056*/      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)
/* 90064*/    /*Scope*/ 16, /*->90081*/
/* 90065*/      OPC_CheckChild2Integer, 2, 
/* 90067*/      OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/* 90069*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/* 90072*/      OPC_EmitMergeInputChains1_0,
/* 90073*/      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)
/* 90081*/    0, /*End of Scope*/
/* 90082*/  /*SwitchOpcode*/ 20|128,1/*148*/, TARGET_VAL(ISD::FP_ROUND),// ->90234
/* 90086*/    OPC_Scope, 50, /*->90138*/ // 2 children in Scope
/* 90088*/      OPC_MoveChild0,
/* 90089*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 90092*/      OPC_RecordMemRef,
/* 90093*/      OPC_RecordNode, // #0 = 'ld' chained node
/* 90094*/      OPC_RecordChild1, // #1 = $src
/* 90095*/      OPC_CheckPredicate, 20, // Predicate_unindexedload
/* 90097*/      OPC_CheckPredicate, 25, // Predicate_extload
/* 90099*/      OPC_CheckPredicate, 28, // Predicate_extloadf32
/* 90101*/      OPC_CheckType, MVT::f64,
/* 90103*/      OPC_MoveParent,
/* 90104*/      OPC_CheckType, MVT::f32,
/* 90106*/      OPC_Scope, 14, /*->90122*/ // 2 children in Scope
/* 90108*/        OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/* 90110*/        OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectAddrImmX4:$src #2 #3
/* 90113*/        OPC_EmitMergeInputChains1_0,
/* 90114*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::DFLOADf32), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f32, 2/*#Ops*/, 2, 3, 
                  // Src: (fpround:{ *:[f32] } (ld:{ *:[f64] } iaddrX4:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadf32>>) - Complexity = 416
                  // Dst: (DFLOADf32:{ *:[f32] } iaddrX4:{ *:[iPTR] }:$src)
/* 90122*/      /*Scope*/ 14, /*->90137*/
/* 90123*/        OPC_CheckPatternPredicate, 10, // (PPCSubTarget->hasP8Vector())
/* 90125*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/* 90128*/        OPC_EmitMergeInputChains1_0,
/* 90129*/        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)
/* 90137*/      0, /*End of Scope*/
/* 90138*/    /*Scope*/ 94, /*->90233*/
/* 90139*/      OPC_RecordChild0, // #0 = $src
/* 90140*/      OPC_SwitchType /*3 cases */, 9, MVT::f64,// ->90152
/* 90143*/        OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/* 90145*/        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)
/* 90152*/      /*SwitchType*/ 46, MVT::f32,// ->90200
/* 90154*/        OPC_Scope, 18, /*->90174*/ // 2 children in Scope
/* 90156*/          OPC_CheckChild0Type, MVT::f128,
/* 90158*/          OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/* 90160*/          OPC_EmitNode1, TARGET_VAL(PPC::XSCVQPDPO), 0,
                        MVT::f64, 1/*#Ops*/, 0,  // Results = #1
/* 90167*/          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))
/* 90174*/        /*Scope*/ 24, /*->90199*/
/* 90175*/          OPC_CheckChild0Type, MVT::f64,
/* 90177*/          OPC_Scope, 9, /*->90188*/ // 2 children in Scope
/* 90179*/            OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 90181*/            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)
/* 90188*/          /*Scope*/ 9, /*->90198*/
/* 90189*/            OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 90191*/            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)
/* 90198*/          0, /*End of Scope*/
/* 90199*/        0, /*End of Scope*/
/* 90200*/      /*SwitchType*/ 30, MVT::v4f32,// ->90232
/* 90202*/        OPC_Scope, 11, /*->90215*/ // 2 children in Scope
/* 90204*/          OPC_CheckPredicate, 33, // Predicate_fround_inexact
/* 90206*/          OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 90208*/          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)
/* 90215*/        /*Scope*/ 15, /*->90231*/
/* 90216*/          OPC_CheckPredicate, 34, // Predicate_fround_exact
/* 90218*/          OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 90220*/          OPC_EmitInteger, MVT::i32, PPC::QSRCRegClassID,
/* 90223*/          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] })
/* 90231*/        0, /*End of Scope*/
/* 90232*/      0, // EndSwitchType
/* 90233*/    0, /*End of Scope*/
/* 90234*/  /*SwitchOpcode*/ 26|128,23/*2970*/, TARGET_VAL(ISD::SINT_TO_FP),// ->93208
/* 90238*/    OPC_Scope, 37|128,22/*2853*/, /*->93094*/ // 2 children in Scope
/* 90241*/      OPC_MoveChild0,
/* 90242*/      OPC_SwitchOpcode /*4 cases */, 84, TARGET_VAL(ISD::LOAD),// ->90330
/* 90246*/        OPC_RecordMemRef,
/* 90247*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 90248*/        OPC_RecordChild1, // #1 = $src
/* 90249*/        OPC_CheckPredicate, 20, // Predicate_unindexedload
/* 90251*/        OPC_CheckPredicate, 23, // Predicate_load
/* 90253*/        OPC_SwitchType /*2 cases */, 24, MVT::i32,// ->90280
/* 90256*/          OPC_MoveParent,
/* 90257*/          OPC_CheckType, MVT::f128,
/* 90259*/          OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/* 90261*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/* 90264*/          OPC_EmitMergeInputChains1_0,
/* 90265*/          OPC_EmitNode1, TARGET_VAL(PPC::LIWAX), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 90273*/          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))
/* 90280*/        /*SwitchType*/ 47, MVT::i64,// ->90329
/* 90282*/          OPC_MoveParent,
/* 90283*/          OPC_CheckType, MVT::f128,
/* 90285*/          OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/* 90287*/          OPC_Scope, 19, /*->90308*/ // 2 children in Scope
/* 90289*/            OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectAddrImmX4:$src #2 #3
/* 90292*/            OPC_EmitMergeInputChains1_0,
/* 90293*/            OPC_EmitNode1, TARGET_VAL(PPC::LXSD), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 90301*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVSDQP), 0|OPFL_Chain,
                          MVT::f128, 1/*#Ops*/, 4, 
                      // Src: (sint_to_fp:{ *:[f128] } (ld:{ *:[i64] } iaddrX4:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 416
                      // Dst: (XSCVSDQP:{ *:[f128] } (LXSD:{ *:[f64] } iaddrX4:{ *:[iPTR] }:$src))
/* 90308*/          /*Scope*/ 19, /*->90328*/
/* 90309*/            OPC_CheckComplexPat, /*CP*/2, /*#*/1, // SelectAddrIdxX4:$src #2 #3
/* 90312*/            OPC_EmitMergeInputChains1_0,
/* 90313*/            OPC_EmitNode1, TARGET_VAL(PPC::LXSDX), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 90321*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVSDQP), 0|OPFL_Chain,
                          MVT::f128, 1/*#Ops*/, 4, 
                      // Src: (sint_to_fp:{ *:[f128] } (ld:{ *:[i64] } xaddrX4:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 416
                      // Dst: (XSCVSDQP:{ *:[f128] } (LXSDX:{ *:[f64] } xaddrX4:{ *:[iPTR] }:$src))
/* 90328*/          0, /*End of Scope*/
/* 90329*/        0, // EndSwitchType
/* 90330*/      /*SwitchOpcode*/ 75|128,17/*2251*/, TARGET_VAL(ISD::SIGN_EXTEND_INREG),// ->92585
/* 90334*/        OPC_MoveChild0,
/* 90335*/        OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/* 90338*/        OPC_RecordChild0, // #0 = $src
/* 90339*/        OPC_Scope, 108|128,5/*748*/, /*->91090*/ // 2 children in Scope
/* 90342*/          OPC_CheckChild0Type, MVT::v8i16,
/* 90344*/          OPC_Scope, 92, /*->90438*/ // 8 children in Scope
/* 90346*/            OPC_CheckChild1Integer, 0, 
/* 90348*/            OPC_MoveParent,
/* 90349*/            OPC_MoveChild1,
/* 90350*/            OPC_CheckValueType, MVT::i16,
/* 90352*/            OPC_MoveParent,
/* 90353*/            OPC_CheckType, MVT::i32,
/* 90355*/            OPC_MoveParent,
/* 90356*/            OPC_CheckType, MVT::f128,
/* 90358*/            OPC_Scope, 38, /*->90398*/ // 2 children in Scope
/* 90360*/              OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 90362*/              OPC_EmitInteger, MVT::i32, 0, 
/* 90365*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUH), 0,
                            MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 90373*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTSH2D), 0,
                            MVT::f128, 1/*#Ops*/, 2,  // Results = #3
/* 90380*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 90383*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 3, 4,  // Results = #5
/* 90391*/              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] }))
/* 90398*/            /*Scope*/ 38, /*->90437*/
/* 90399*/              OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 90401*/              OPC_EmitInteger, MVT::i32, 14, 
/* 90404*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUH), 0,
                            MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 90412*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTSH2D), 0,
                            MVT::f128, 1/*#Ops*/, 2,  // Results = #3
/* 90419*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 90422*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 3, 4,  // Results = #5
/* 90430*/              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] }))
/* 90437*/            0, /*End of Scope*/
/* 90438*/          /*Scope*/ 92, /*->90531*/
/* 90439*/            OPC_CheckChild1Integer, 1, 
/* 90441*/            OPC_MoveParent,
/* 90442*/            OPC_MoveChild1,
/* 90443*/            OPC_CheckValueType, MVT::i16,
/* 90445*/            OPC_MoveParent,
/* 90446*/            OPC_CheckType, MVT::i32,
/* 90448*/            OPC_MoveParent,
/* 90449*/            OPC_CheckType, MVT::f128,
/* 90451*/            OPC_Scope, 38, /*->90491*/ // 2 children in Scope
/* 90453*/              OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 90455*/              OPC_EmitInteger, MVT::i32, 2, 
/* 90458*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUH), 0,
                            MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 90466*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTSH2D), 0,
                            MVT::f128, 1/*#Ops*/, 2,  // Results = #3
/* 90473*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 90476*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 3, 4,  // Results = #5
/* 90484*/              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] }))
/* 90491*/            /*Scope*/ 38, /*->90530*/
/* 90492*/              OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 90494*/              OPC_EmitInteger, MVT::i32, 12, 
/* 90497*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUH), 0,
                            MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 90505*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTSH2D), 0,
                            MVT::f128, 1/*#Ops*/, 2,  // Results = #3
/* 90512*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 90515*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 3, 4,  // Results = #5
/* 90523*/              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] }))
/* 90530*/            0, /*End of Scope*/
/* 90531*/          /*Scope*/ 92, /*->90624*/
/* 90532*/            OPC_CheckChild1Integer, 2, 
/* 90534*/            OPC_MoveParent,
/* 90535*/            OPC_MoveChild1,
/* 90536*/            OPC_CheckValueType, MVT::i16,
/* 90538*/            OPC_MoveParent,
/* 90539*/            OPC_CheckType, MVT::i32,
/* 90541*/            OPC_MoveParent,
/* 90542*/            OPC_CheckType, MVT::f128,
/* 90544*/            OPC_Scope, 38, /*->90584*/ // 2 children in Scope
/* 90546*/              OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 90548*/              OPC_EmitInteger, MVT::i32, 4, 
/* 90551*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUH), 0,
                            MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 90559*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTSH2D), 0,
                            MVT::f128, 1/*#Ops*/, 2,  // Results = #3
/* 90566*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 90569*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 3, 4,  // Results = #5
/* 90577*/              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] }))
/* 90584*/            /*Scope*/ 38, /*->90623*/
/* 90585*/              OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 90587*/              OPC_EmitInteger, MVT::i32, 10, 
/* 90590*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUH), 0,
                            MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 90598*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTSH2D), 0,
                            MVT::f128, 1/*#Ops*/, 2,  // Results = #3
/* 90605*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 90608*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 3, 4,  // Results = #5
/* 90616*/              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] }))
/* 90623*/            0, /*End of Scope*/
/* 90624*/          /*Scope*/ 92, /*->90717*/
/* 90625*/            OPC_CheckChild1Integer, 3, 
/* 90627*/            OPC_MoveParent,
/* 90628*/            OPC_MoveChild1,
/* 90629*/            OPC_CheckValueType, MVT::i16,
/* 90631*/            OPC_MoveParent,
/* 90632*/            OPC_CheckType, MVT::i32,
/* 90634*/            OPC_MoveParent,
/* 90635*/            OPC_CheckType, MVT::f128,
/* 90637*/            OPC_Scope, 38, /*->90677*/ // 2 children in Scope
/* 90639*/              OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 90641*/              OPC_EmitInteger, MVT::i32, 6, 
/* 90644*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUH), 0,
                            MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 90652*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTSH2D), 0,
                            MVT::f128, 1/*#Ops*/, 2,  // Results = #3
/* 90659*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 90662*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 3, 4,  // Results = #5
/* 90670*/              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] }))
/* 90677*/            /*Scope*/ 38, /*->90716*/
/* 90678*/              OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 90680*/              OPC_EmitInteger, MVT::i32, 8, 
/* 90683*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUH), 0,
                            MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 90691*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTSH2D), 0,
                            MVT::f128, 1/*#Ops*/, 2,  // Results = #3
/* 90698*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 90701*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 3, 4,  // Results = #5
/* 90709*/              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] }))
/* 90716*/            0, /*End of Scope*/
/* 90717*/          /*Scope*/ 92, /*->90810*/
/* 90718*/            OPC_CheckChild1Integer, 4, 
/* 90720*/            OPC_MoveParent,
/* 90721*/            OPC_MoveChild1,
/* 90722*/            OPC_CheckValueType, MVT::i16,
/* 90724*/            OPC_MoveParent,
/* 90725*/            OPC_CheckType, MVT::i32,
/* 90727*/            OPC_MoveParent,
/* 90728*/            OPC_CheckType, MVT::f128,
/* 90730*/            OPC_Scope, 38, /*->90770*/ // 2 children in Scope
/* 90732*/              OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 90734*/              OPC_EmitInteger, MVT::i32, 8, 
/* 90737*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUH), 0,
                            MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 90745*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTSH2D), 0,
                            MVT::f128, 1/*#Ops*/, 2,  // Results = #3
/* 90752*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 90755*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 3, 4,  // Results = #5
/* 90763*/              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] }))
/* 90770*/            /*Scope*/ 38, /*->90809*/
/* 90771*/              OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 90773*/              OPC_EmitInteger, MVT::i32, 6, 
/* 90776*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUH), 0,
                            MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 90784*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTSH2D), 0,
                            MVT::f128, 1/*#Ops*/, 2,  // Results = #3
/* 90791*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 90794*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 3, 4,  // Results = #5
/* 90802*/              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] }))
/* 90809*/            0, /*End of Scope*/
/* 90810*/          /*Scope*/ 92, /*->90903*/
/* 90811*/            OPC_CheckChild1Integer, 5, 
/* 90813*/            OPC_MoveParent,
/* 90814*/            OPC_MoveChild1,
/* 90815*/            OPC_CheckValueType, MVT::i16,
/* 90817*/            OPC_MoveParent,
/* 90818*/            OPC_CheckType, MVT::i32,
/* 90820*/            OPC_MoveParent,
/* 90821*/            OPC_CheckType, MVT::f128,
/* 90823*/            OPC_Scope, 38, /*->90863*/ // 2 children in Scope
/* 90825*/              OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 90827*/              OPC_EmitInteger, MVT::i32, 10, 
/* 90830*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUH), 0,
                            MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 90838*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTSH2D), 0,
                            MVT::f128, 1/*#Ops*/, 2,  // Results = #3
/* 90845*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 90848*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 3, 4,  // Results = #5
/* 90856*/              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] }))
/* 90863*/            /*Scope*/ 38, /*->90902*/
/* 90864*/              OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 90866*/              OPC_EmitInteger, MVT::i32, 4, 
/* 90869*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUH), 0,
                            MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 90877*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTSH2D), 0,
                            MVT::f128, 1/*#Ops*/, 2,  // Results = #3
/* 90884*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 90887*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 3, 4,  // Results = #5
/* 90895*/              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] }))
/* 90902*/            0, /*End of Scope*/
/* 90903*/          /*Scope*/ 92, /*->90996*/
/* 90904*/            OPC_CheckChild1Integer, 6, 
/* 90906*/            OPC_MoveParent,
/* 90907*/            OPC_MoveChild1,
/* 90908*/            OPC_CheckValueType, MVT::i16,
/* 90910*/            OPC_MoveParent,
/* 90911*/            OPC_CheckType, MVT::i32,
/* 90913*/            OPC_MoveParent,
/* 90914*/            OPC_CheckType, MVT::f128,
/* 90916*/            OPC_Scope, 38, /*->90956*/ // 2 children in Scope
/* 90918*/              OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 90920*/              OPC_EmitInteger, MVT::i32, 12, 
/* 90923*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUH), 0,
                            MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 90931*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTSH2D), 0,
                            MVT::f128, 1/*#Ops*/, 2,  // Results = #3
/* 90938*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 90941*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 3, 4,  // Results = #5
/* 90949*/              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] }))
/* 90956*/            /*Scope*/ 38, /*->90995*/
/* 90957*/              OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 90959*/              OPC_EmitInteger, MVT::i32, 2, 
/* 90962*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUH), 0,
                            MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 90970*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTSH2D), 0,
                            MVT::f128, 1/*#Ops*/, 2,  // Results = #3
/* 90977*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 90980*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 3, 4,  // Results = #5
/* 90988*/              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] }))
/* 90995*/            0, /*End of Scope*/
/* 90996*/          /*Scope*/ 92, /*->91089*/
/* 90997*/            OPC_CheckChild1Integer, 7, 
/* 90999*/            OPC_MoveParent,
/* 91000*/            OPC_MoveChild1,
/* 91001*/            OPC_CheckValueType, MVT::i16,
/* 91003*/            OPC_MoveParent,
/* 91004*/            OPC_CheckType, MVT::i32,
/* 91006*/            OPC_MoveParent,
/* 91007*/            OPC_CheckType, MVT::f128,
/* 91009*/            OPC_Scope, 38, /*->91049*/ // 2 children in Scope
/* 91011*/              OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 91013*/              OPC_EmitInteger, MVT::i32, 14, 
/* 91016*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUH), 0,
                            MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 91024*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTSH2D), 0,
                            MVT::f128, 1/*#Ops*/, 2,  // Results = #3
/* 91031*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 91034*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 3, 4,  // Results = #5
/* 91042*/              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] }))
/* 91049*/            /*Scope*/ 38, /*->91088*/
/* 91050*/              OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 91052*/              OPC_EmitInteger, MVT::i32, 0, 
/* 91055*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUH), 0,
                            MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 91063*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTSH2D), 0,
                            MVT::f128, 1/*#Ops*/, 2,  // Results = #3
/* 91070*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 91073*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 3, 4,  // Results = #5
/* 91081*/              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] }))
/* 91088*/            0, /*End of Scope*/
/* 91089*/          0, /*End of Scope*/
/* 91090*/        /*Scope*/ 84|128,11/*1492*/, /*->92584*/
/* 91092*/          OPC_CheckChild0Type, MVT::v16i8,
/* 91094*/          OPC_Scope, 92, /*->91188*/ // 16 children in Scope
/* 91096*/            OPC_CheckChild1Integer, 0, 
/* 91098*/            OPC_MoveParent,
/* 91099*/            OPC_MoveChild1,
/* 91100*/            OPC_CheckValueType, MVT::i8,
/* 91102*/            OPC_MoveParent,
/* 91103*/            OPC_CheckType, MVT::i32,
/* 91105*/            OPC_MoveParent,
/* 91106*/            OPC_CheckType, MVT::f128,
/* 91108*/            OPC_Scope, 38, /*->91148*/ // 2 children in Scope
/* 91110*/              OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 91112*/              OPC_EmitInteger, MVT::i32, 0, 
/* 91115*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                            MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 91123*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTSB2D), 0,
                            MVT::f128, 1/*#Ops*/, 2,  // Results = #3
/* 91130*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 91133*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 3, 4,  // Results = #5
/* 91141*/              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] }))
/* 91148*/            /*Scope*/ 38, /*->91187*/
/* 91149*/              OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 91151*/              OPC_EmitInteger, MVT::i32, 15, 
/* 91154*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                            MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 91162*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTSB2D), 0,
                            MVT::f128, 1/*#Ops*/, 2,  // Results = #3
/* 91169*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 91172*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 3, 4,  // Results = #5
/* 91180*/              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] }))
/* 91187*/            0, /*End of Scope*/
/* 91188*/          /*Scope*/ 92, /*->91281*/
/* 91189*/            OPC_CheckChild1Integer, 1, 
/* 91191*/            OPC_MoveParent,
/* 91192*/            OPC_MoveChild1,
/* 91193*/            OPC_CheckValueType, MVT::i8,
/* 91195*/            OPC_MoveParent,
/* 91196*/            OPC_CheckType, MVT::i32,
/* 91198*/            OPC_MoveParent,
/* 91199*/            OPC_CheckType, MVT::f128,
/* 91201*/            OPC_Scope, 38, /*->91241*/ // 2 children in Scope
/* 91203*/              OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 91205*/              OPC_EmitInteger, MVT::i32, 1, 
/* 91208*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                            MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 91216*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTSB2D), 0,
                            MVT::f128, 1/*#Ops*/, 2,  // Results = #3
/* 91223*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 91226*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 3, 4,  // Results = #5
/* 91234*/              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] }))
/* 91241*/            /*Scope*/ 38, /*->91280*/
/* 91242*/              OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 91244*/              OPC_EmitInteger, MVT::i32, 14, 
/* 91247*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                            MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 91255*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTSB2D), 0,
                            MVT::f128, 1/*#Ops*/, 2,  // Results = #3
/* 91262*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 91265*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 3, 4,  // Results = #5
/* 91273*/              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] }))
/* 91280*/            0, /*End of Scope*/
/* 91281*/          /*Scope*/ 92, /*->91374*/
/* 91282*/            OPC_CheckChild1Integer, 2, 
/* 91284*/            OPC_MoveParent,
/* 91285*/            OPC_MoveChild1,
/* 91286*/            OPC_CheckValueType, MVT::i8,
/* 91288*/            OPC_MoveParent,
/* 91289*/            OPC_CheckType, MVT::i32,
/* 91291*/            OPC_MoveParent,
/* 91292*/            OPC_CheckType, MVT::f128,
/* 91294*/            OPC_Scope, 38, /*->91334*/ // 2 children in Scope
/* 91296*/              OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 91298*/              OPC_EmitInteger, MVT::i32, 2, 
/* 91301*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                            MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 91309*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTSB2D), 0,
                            MVT::f128, 1/*#Ops*/, 2,  // Results = #3
/* 91316*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 91319*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 3, 4,  // Results = #5
/* 91327*/              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] }))
/* 91334*/            /*Scope*/ 38, /*->91373*/
/* 91335*/              OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 91337*/              OPC_EmitInteger, MVT::i32, 13, 
/* 91340*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                            MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 91348*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTSB2D), 0,
                            MVT::f128, 1/*#Ops*/, 2,  // Results = #3
/* 91355*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 91358*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 3, 4,  // Results = #5
/* 91366*/              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] }))
/* 91373*/            0, /*End of Scope*/
/* 91374*/          /*Scope*/ 92, /*->91467*/
/* 91375*/            OPC_CheckChild1Integer, 3, 
/* 91377*/            OPC_MoveParent,
/* 91378*/            OPC_MoveChild1,
/* 91379*/            OPC_CheckValueType, MVT::i8,
/* 91381*/            OPC_MoveParent,
/* 91382*/            OPC_CheckType, MVT::i32,
/* 91384*/            OPC_MoveParent,
/* 91385*/            OPC_CheckType, MVT::f128,
/* 91387*/            OPC_Scope, 38, /*->91427*/ // 2 children in Scope
/* 91389*/              OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 91391*/              OPC_EmitInteger, MVT::i32, 3, 
/* 91394*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                            MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 91402*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTSB2D), 0,
                            MVT::f128, 1/*#Ops*/, 2,  // Results = #3
/* 91409*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 91412*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 3, 4,  // Results = #5
/* 91420*/              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] }))
/* 91427*/            /*Scope*/ 38, /*->91466*/
/* 91428*/              OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 91430*/              OPC_EmitInteger, MVT::i32, 12, 
/* 91433*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                            MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 91441*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTSB2D), 0,
                            MVT::f128, 1/*#Ops*/, 2,  // Results = #3
/* 91448*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 91451*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 3, 4,  // Results = #5
/* 91459*/              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] }))
/* 91466*/            0, /*End of Scope*/
/* 91467*/          /*Scope*/ 92, /*->91560*/
/* 91468*/            OPC_CheckChild1Integer, 4, 
/* 91470*/            OPC_MoveParent,
/* 91471*/            OPC_MoveChild1,
/* 91472*/            OPC_CheckValueType, MVT::i8,
/* 91474*/            OPC_MoveParent,
/* 91475*/            OPC_CheckType, MVT::i32,
/* 91477*/            OPC_MoveParent,
/* 91478*/            OPC_CheckType, MVT::f128,
/* 91480*/            OPC_Scope, 38, /*->91520*/ // 2 children in Scope
/* 91482*/              OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 91484*/              OPC_EmitInteger, MVT::i32, 4, 
/* 91487*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                            MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 91495*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTSB2D), 0,
                            MVT::f128, 1/*#Ops*/, 2,  // Results = #3
/* 91502*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 91505*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 3, 4,  // Results = #5
/* 91513*/              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] }))
/* 91520*/            /*Scope*/ 38, /*->91559*/
/* 91521*/              OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 91523*/              OPC_EmitInteger, MVT::i32, 11, 
/* 91526*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                            MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 91534*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTSB2D), 0,
                            MVT::f128, 1/*#Ops*/, 2,  // Results = #3
/* 91541*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 91544*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 3, 4,  // Results = #5
/* 91552*/              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] }))
/* 91559*/            0, /*End of Scope*/
/* 91560*/          /*Scope*/ 92, /*->91653*/
/* 91561*/            OPC_CheckChild1Integer, 5, 
/* 91563*/            OPC_MoveParent,
/* 91564*/            OPC_MoveChild1,
/* 91565*/            OPC_CheckValueType, MVT::i8,
/* 91567*/            OPC_MoveParent,
/* 91568*/            OPC_CheckType, MVT::i32,
/* 91570*/            OPC_MoveParent,
/* 91571*/            OPC_CheckType, MVT::f128,
/* 91573*/            OPC_Scope, 38, /*->91613*/ // 2 children in Scope
/* 91575*/              OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 91577*/              OPC_EmitInteger, MVT::i32, 5, 
/* 91580*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                            MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 91588*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTSB2D), 0,
                            MVT::f128, 1/*#Ops*/, 2,  // Results = #3
/* 91595*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 91598*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 3, 4,  // Results = #5
/* 91606*/              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] }))
/* 91613*/            /*Scope*/ 38, /*->91652*/
/* 91614*/              OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 91616*/              OPC_EmitInteger, MVT::i32, 10, 
/* 91619*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                            MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 91627*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTSB2D), 0,
                            MVT::f128, 1/*#Ops*/, 2,  // Results = #3
/* 91634*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 91637*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 3, 4,  // Results = #5
/* 91645*/              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] }))
/* 91652*/            0, /*End of Scope*/
/* 91653*/          /*Scope*/ 92, /*->91746*/
/* 91654*/            OPC_CheckChild1Integer, 6, 
/* 91656*/            OPC_MoveParent,
/* 91657*/            OPC_MoveChild1,
/* 91658*/            OPC_CheckValueType, MVT::i8,
/* 91660*/            OPC_MoveParent,
/* 91661*/            OPC_CheckType, MVT::i32,
/* 91663*/            OPC_MoveParent,
/* 91664*/            OPC_CheckType, MVT::f128,
/* 91666*/            OPC_Scope, 38, /*->91706*/ // 2 children in Scope
/* 91668*/              OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 91670*/              OPC_EmitInteger, MVT::i32, 6, 
/* 91673*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                            MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 91681*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTSB2D), 0,
                            MVT::f128, 1/*#Ops*/, 2,  // Results = #3
/* 91688*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 91691*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 3, 4,  // Results = #5
/* 91699*/              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] }))
/* 91706*/            /*Scope*/ 38, /*->91745*/
/* 91707*/              OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 91709*/              OPC_EmitInteger, MVT::i32, 9, 
/* 91712*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                            MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 91720*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTSB2D), 0,
                            MVT::f128, 1/*#Ops*/, 2,  // Results = #3
/* 91727*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 91730*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 3, 4,  // Results = #5
/* 91738*/              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] }))
/* 91745*/            0, /*End of Scope*/
/* 91746*/          /*Scope*/ 92, /*->91839*/
/* 91747*/            OPC_CheckChild1Integer, 7, 
/* 91749*/            OPC_MoveParent,
/* 91750*/            OPC_MoveChild1,
/* 91751*/            OPC_CheckValueType, MVT::i8,
/* 91753*/            OPC_MoveParent,
/* 91754*/            OPC_CheckType, MVT::i32,
/* 91756*/            OPC_MoveParent,
/* 91757*/            OPC_CheckType, MVT::f128,
/* 91759*/            OPC_Scope, 38, /*->91799*/ // 2 children in Scope
/* 91761*/              OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 91763*/              OPC_EmitInteger, MVT::i32, 7, 
/* 91766*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                            MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 91774*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTSB2D), 0,
                            MVT::f128, 1/*#Ops*/, 2,  // Results = #3
/* 91781*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 91784*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 3, 4,  // Results = #5
/* 91792*/              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] }))
/* 91799*/            /*Scope*/ 38, /*->91838*/
/* 91800*/              OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 91802*/              OPC_EmitInteger, MVT::i32, 8, 
/* 91805*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                            MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 91813*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTSB2D), 0,
                            MVT::f128, 1/*#Ops*/, 2,  // Results = #3
/* 91820*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 91823*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 3, 4,  // Results = #5
/* 91831*/              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] }))
/* 91838*/            0, /*End of Scope*/
/* 91839*/          /*Scope*/ 92, /*->91932*/
/* 91840*/            OPC_CheckChild1Integer, 8, 
/* 91842*/            OPC_MoveParent,
/* 91843*/            OPC_MoveChild1,
/* 91844*/            OPC_CheckValueType, MVT::i8,
/* 91846*/            OPC_MoveParent,
/* 91847*/            OPC_CheckType, MVT::i32,
/* 91849*/            OPC_MoveParent,
/* 91850*/            OPC_CheckType, MVT::f128,
/* 91852*/            OPC_Scope, 38, /*->91892*/ // 2 children in Scope
/* 91854*/              OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 91856*/              OPC_EmitInteger, MVT::i32, 8, 
/* 91859*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                            MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 91867*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTSB2D), 0,
                            MVT::f128, 1/*#Ops*/, 2,  // Results = #3
/* 91874*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 91877*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 3, 4,  // Results = #5
/* 91885*/              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] }))
/* 91892*/            /*Scope*/ 38, /*->91931*/
/* 91893*/              OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 91895*/              OPC_EmitInteger, MVT::i32, 7, 
/* 91898*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                            MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 91906*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTSB2D), 0,
                            MVT::f128, 1/*#Ops*/, 2,  // Results = #3
/* 91913*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 91916*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 3, 4,  // Results = #5
/* 91924*/              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] }))
/* 91931*/            0, /*End of Scope*/
/* 91932*/          /*Scope*/ 92, /*->92025*/
/* 91933*/            OPC_CheckChild1Integer, 9, 
/* 91935*/            OPC_MoveParent,
/* 91936*/            OPC_MoveChild1,
/* 91937*/            OPC_CheckValueType, MVT::i8,
/* 91939*/            OPC_MoveParent,
/* 91940*/            OPC_CheckType, MVT::i32,
/* 91942*/            OPC_MoveParent,
/* 91943*/            OPC_CheckType, MVT::f128,
/* 91945*/            OPC_Scope, 38, /*->91985*/ // 2 children in Scope
/* 91947*/              OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 91949*/              OPC_EmitInteger, MVT::i32, 9, 
/* 91952*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                            MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 91960*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTSB2D), 0,
                            MVT::f128, 1/*#Ops*/, 2,  // Results = #3
/* 91967*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 91970*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 3, 4,  // Results = #5
/* 91978*/              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] }))
/* 91985*/            /*Scope*/ 38, /*->92024*/
/* 91986*/              OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 91988*/              OPC_EmitInteger, MVT::i32, 6, 
/* 91991*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                            MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 91999*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTSB2D), 0,
                            MVT::f128, 1/*#Ops*/, 2,  // Results = #3
/* 92006*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 92009*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 3, 4,  // Results = #5
/* 92017*/              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] }))
/* 92024*/            0, /*End of Scope*/
/* 92025*/          /*Scope*/ 92, /*->92118*/
/* 92026*/            OPC_CheckChild1Integer, 10, 
/* 92028*/            OPC_MoveParent,
/* 92029*/            OPC_MoveChild1,
/* 92030*/            OPC_CheckValueType, MVT::i8,
/* 92032*/            OPC_MoveParent,
/* 92033*/            OPC_CheckType, MVT::i32,
/* 92035*/            OPC_MoveParent,
/* 92036*/            OPC_CheckType, MVT::f128,
/* 92038*/            OPC_Scope, 38, /*->92078*/ // 2 children in Scope
/* 92040*/              OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 92042*/              OPC_EmitInteger, MVT::i32, 10, 
/* 92045*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                            MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 92053*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTSB2D), 0,
                            MVT::f128, 1/*#Ops*/, 2,  // Results = #3
/* 92060*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 92063*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 3, 4,  // Results = #5
/* 92071*/              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] }))
/* 92078*/            /*Scope*/ 38, /*->92117*/
/* 92079*/              OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 92081*/              OPC_EmitInteger, MVT::i32, 5, 
/* 92084*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                            MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 92092*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTSB2D), 0,
                            MVT::f128, 1/*#Ops*/, 2,  // Results = #3
/* 92099*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 92102*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 3, 4,  // Results = #5
/* 92110*/              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] }))
/* 92117*/            0, /*End of Scope*/
/* 92118*/          /*Scope*/ 92, /*->92211*/
/* 92119*/            OPC_CheckChild1Integer, 11, 
/* 92121*/            OPC_MoveParent,
/* 92122*/            OPC_MoveChild1,
/* 92123*/            OPC_CheckValueType, MVT::i8,
/* 92125*/            OPC_MoveParent,
/* 92126*/            OPC_CheckType, MVT::i32,
/* 92128*/            OPC_MoveParent,
/* 92129*/            OPC_CheckType, MVT::f128,
/* 92131*/            OPC_Scope, 38, /*->92171*/ // 2 children in Scope
/* 92133*/              OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 92135*/              OPC_EmitInteger, MVT::i32, 11, 
/* 92138*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                            MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 92146*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTSB2D), 0,
                            MVT::f128, 1/*#Ops*/, 2,  // Results = #3
/* 92153*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 92156*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 3, 4,  // Results = #5
/* 92164*/              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] }))
/* 92171*/            /*Scope*/ 38, /*->92210*/
/* 92172*/              OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 92174*/              OPC_EmitInteger, MVT::i32, 4, 
/* 92177*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                            MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 92185*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTSB2D), 0,
                            MVT::f128, 1/*#Ops*/, 2,  // Results = #3
/* 92192*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 92195*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 3, 4,  // Results = #5
/* 92203*/              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] }))
/* 92210*/            0, /*End of Scope*/
/* 92211*/          /*Scope*/ 92, /*->92304*/
/* 92212*/            OPC_CheckChild1Integer, 12, 
/* 92214*/            OPC_MoveParent,
/* 92215*/            OPC_MoveChild1,
/* 92216*/            OPC_CheckValueType, MVT::i8,
/* 92218*/            OPC_MoveParent,
/* 92219*/            OPC_CheckType, MVT::i32,
/* 92221*/            OPC_MoveParent,
/* 92222*/            OPC_CheckType, MVT::f128,
/* 92224*/            OPC_Scope, 38, /*->92264*/ // 2 children in Scope
/* 92226*/              OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 92228*/              OPC_EmitInteger, MVT::i32, 12, 
/* 92231*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                            MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 92239*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTSB2D), 0,
                            MVT::f128, 1/*#Ops*/, 2,  // Results = #3
/* 92246*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 92249*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 3, 4,  // Results = #5
/* 92257*/              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] }))
/* 92264*/            /*Scope*/ 38, /*->92303*/
/* 92265*/              OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 92267*/              OPC_EmitInteger, MVT::i32, 3, 
/* 92270*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                            MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 92278*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTSB2D), 0,
                            MVT::f128, 1/*#Ops*/, 2,  // Results = #3
/* 92285*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 92288*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 3, 4,  // Results = #5
/* 92296*/              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] }))
/* 92303*/            0, /*End of Scope*/
/* 92304*/          /*Scope*/ 92, /*->92397*/
/* 92305*/            OPC_CheckChild1Integer, 13, 
/* 92307*/            OPC_MoveParent,
/* 92308*/            OPC_MoveChild1,
/* 92309*/            OPC_CheckValueType, MVT::i8,
/* 92311*/            OPC_MoveParent,
/* 92312*/            OPC_CheckType, MVT::i32,
/* 92314*/            OPC_MoveParent,
/* 92315*/            OPC_CheckType, MVT::f128,
/* 92317*/            OPC_Scope, 38, /*->92357*/ // 2 children in Scope
/* 92319*/              OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 92321*/              OPC_EmitInteger, MVT::i32, 13, 
/* 92324*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                            MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 92332*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTSB2D), 0,
                            MVT::f128, 1/*#Ops*/, 2,  // Results = #3
/* 92339*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 92342*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 3, 4,  // Results = #5
/* 92350*/              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] }))
/* 92357*/            /*Scope*/ 38, /*->92396*/
/* 92358*/              OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 92360*/              OPC_EmitInteger, MVT::i32, 2, 
/* 92363*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                            MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 92371*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTSB2D), 0,
                            MVT::f128, 1/*#Ops*/, 2,  // Results = #3
/* 92378*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 92381*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 3, 4,  // Results = #5
/* 92389*/              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] }))
/* 92396*/            0, /*End of Scope*/
/* 92397*/          /*Scope*/ 92, /*->92490*/
/* 92398*/            OPC_CheckChild1Integer, 14, 
/* 92400*/            OPC_MoveParent,
/* 92401*/            OPC_MoveChild1,
/* 92402*/            OPC_CheckValueType, MVT::i8,
/* 92404*/            OPC_MoveParent,
/* 92405*/            OPC_CheckType, MVT::i32,
/* 92407*/            OPC_MoveParent,
/* 92408*/            OPC_CheckType, MVT::f128,
/* 92410*/            OPC_Scope, 38, /*->92450*/ // 2 children in Scope
/* 92412*/              OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 92414*/              OPC_EmitInteger, MVT::i32, 14, 
/* 92417*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                            MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 92425*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTSB2D), 0,
                            MVT::f128, 1/*#Ops*/, 2,  // Results = #3
/* 92432*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 92435*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 3, 4,  // Results = #5
/* 92443*/              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] }))
/* 92450*/            /*Scope*/ 38, /*->92489*/
/* 92451*/              OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 92453*/              OPC_EmitInteger, MVT::i32, 1, 
/* 92456*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                            MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 92464*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTSB2D), 0,
                            MVT::f128, 1/*#Ops*/, 2,  // Results = #3
/* 92471*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 92474*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 3, 4,  // Results = #5
/* 92482*/              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] }))
/* 92489*/            0, /*End of Scope*/
/* 92490*/          /*Scope*/ 92, /*->92583*/
/* 92491*/            OPC_CheckChild1Integer, 15, 
/* 92493*/            OPC_MoveParent,
/* 92494*/            OPC_MoveChild1,
/* 92495*/            OPC_CheckValueType, MVT::i8,
/* 92497*/            OPC_MoveParent,
/* 92498*/            OPC_CheckType, MVT::i32,
/* 92500*/            OPC_MoveParent,
/* 92501*/            OPC_CheckType, MVT::f128,
/* 92503*/            OPC_Scope, 38, /*->92543*/ // 2 children in Scope
/* 92505*/              OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 92507*/              OPC_EmitInteger, MVT::i32, 15, 
/* 92510*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                            MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 92518*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTSB2D), 0,
                            MVT::f128, 1/*#Ops*/, 2,  // Results = #3
/* 92525*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 92528*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 3, 4,  // Results = #5
/* 92536*/              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] }))
/* 92543*/            /*Scope*/ 38, /*->92582*/
/* 92544*/              OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 92546*/              OPC_EmitInteger, MVT::i32, 0, 
/* 92549*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTRACTUB), 0,
                            MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 92557*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTSB2D), 0,
                            MVT::f128, 1/*#Ops*/, 2,  // Results = #3
/* 92564*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 92567*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 3, 4,  // Results = #5
/* 92575*/              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] }))
/* 92582*/            0, /*End of Scope*/
/* 92583*/          0, /*End of Scope*/
/* 92584*/        0, /*End of Scope*/
/* 92585*/      /*SwitchOpcode*/ 77|128,3/*461*/, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),// ->93050
/* 92589*/        OPC_RecordChild0, // #0 = $src
/* 92590*/        OPC_Scope, 22|128,1/*150*/, /*->92743*/ // 4 children in Scope
/* 92593*/          OPC_CheckChild1Integer, 0, 
/* 92595*/          OPC_SwitchType /*2 cases */, 59, MVT::i64,// ->92657
/* 92598*/            OPC_MoveParent,
/* 92599*/            OPC_CheckType, MVT::f128,
/* 92601*/            OPC_Scope, 20, /*->92623*/ // 2 children in Scope
/* 92603*/              OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 92605*/              OPC_EmitInteger, MVT::i32, PPC::VFRCRegClassID,
/* 92608*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::f64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 92616*/              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] }))
/* 92623*/            /*Scope*/ 32, /*->92656*/
/* 92624*/              OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 92626*/              OPC_EmitInteger, MVT::i32, 3, 
/* 92629*/              OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                            MVT::v4i32, 3/*#Ops*/, 0, 0, 1,  // Results = #2
/* 92638*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 92641*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 92649*/              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] }))
/* 92656*/            0, /*End of Scope*/
/* 92657*/          /*SwitchType*/ 83, MVT::i32,// ->92742
/* 92659*/            OPC_MoveParent,
/* 92660*/            OPC_CheckType, MVT::f128,
/* 92662*/            OPC_Scope, 38, /*->92702*/ // 2 children in Scope
/* 92664*/              OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 92666*/              OPC_EmitInteger, MVT::i32, 0, 
/* 92669*/              OPC_EmitNode1, TARGET_VAL(PPC::VSPLTW), 0,
                            MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 92677*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTSW2D), 0,
                            MVT::f128, 1/*#Ops*/, 2,  // Results = #3
/* 92684*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 92687*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 3, 4,  // Results = #5
/* 92695*/              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] }))
/* 92702*/            /*Scope*/ 38, /*->92741*/
/* 92703*/              OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 92705*/              OPC_EmitInteger, MVT::i32, 3, 
/* 92708*/              OPC_EmitNode1, TARGET_VAL(PPC::VSPLTW), 0,
                            MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 92716*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTSW2D), 0,
                            MVT::f128, 1/*#Ops*/, 2,  // Results = #3
/* 92723*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 92726*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 3, 4,  // Results = #5
/* 92734*/              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] }))
/* 92741*/            0, /*End of Scope*/
/* 92742*/          0, // EndSwitchType
/* 92743*/        /*Scope*/ 11|128,1/*139*/, /*->92884*/
/* 92745*/          OPC_CheckChild1Integer, 1, 
/* 92747*/          OPC_SwitchType /*2 cases */, 59, MVT::i64,// ->92809
/* 92750*/            OPC_MoveParent,
/* 92751*/            OPC_CheckType, MVT::f128,
/* 92753*/            OPC_Scope, 20, /*->92775*/ // 2 children in Scope
/* 92755*/              OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 92757*/              OPC_EmitInteger, MVT::i32, PPC::VFRCRegClassID,
/* 92760*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::f64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 92768*/              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] }))
/* 92775*/            /*Scope*/ 32, /*->92808*/
/* 92776*/              OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 92778*/              OPC_EmitInteger, MVT::i32, 3, 
/* 92781*/              OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                            MVT::v4i32, 3/*#Ops*/, 0, 0, 1,  // Results = #2
/* 92790*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 92793*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 92801*/              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] }))
/* 92808*/            0, /*End of Scope*/
/* 92809*/          /*SwitchType*/ 72, MVT::i32,// ->92883
/* 92811*/            OPC_MoveParent,
/* 92812*/            OPC_CheckType, MVT::f128,
/* 92814*/            OPC_Scope, 27, /*->92843*/ // 2 children in Scope
/* 92816*/              OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 92818*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTSW2D), 0,
                            MVT::f128, 1/*#Ops*/, 0,  // Results = #1
/* 92825*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 92828*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 1, 2,  // Results = #3
/* 92836*/              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] }))
/* 92843*/            /*Scope*/ 38, /*->92882*/
/* 92844*/              OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 92846*/              OPC_EmitInteger, MVT::i32, 2, 
/* 92849*/              OPC_EmitNode1, TARGET_VAL(PPC::VSPLTW), 0,
                            MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 92857*/              OPC_EmitNode1, TARGET_VAL(PPC::VEXTSW2D), 0,
                            MVT::f128, 1/*#Ops*/, 2,  // Results = #3
/* 92864*/              OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 92867*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::f64, 2/*#Ops*/, 3, 4,  // Results = #5
/* 92875*/              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] }))
/* 92882*/            0, /*End of Scope*/
/* 92883*/          0, // EndSwitchType
/* 92884*/        /*Scope*/ 76, /*->92961*/
/* 92885*/          OPC_CheckChild1Integer, 2, 
/* 92887*/          OPC_CheckType, MVT::i32,
/* 92889*/          OPC_MoveParent,
/* 92890*/          OPC_CheckType, MVT::f128,
/* 92892*/          OPC_Scope, 27, /*->92921*/ // 2 children in Scope
/* 92894*/            OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 92896*/            OPC_EmitNode1, TARGET_VAL(PPC::VEXTSW2D), 0,
                          MVT::f128, 1/*#Ops*/, 0,  // Results = #1
/* 92903*/            OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 92906*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::f64, 2/*#Ops*/, 1, 2,  // Results = #3
/* 92914*/            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] }))
/* 92921*/          /*Scope*/ 38, /*->92960*/
/* 92922*/            OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 92924*/            OPC_EmitInteger, MVT::i32, 2, 
/* 92927*/            OPC_EmitNode1, TARGET_VAL(PPC::VSPLTW), 0,
                          MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 92935*/            OPC_EmitNode1, TARGET_VAL(PPC::VEXTSW2D), 0,
                          MVT::f128, 1/*#Ops*/, 2,  // Results = #3
/* 92942*/            OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 92945*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::f64, 2/*#Ops*/, 3, 4,  // Results = #5
/* 92953*/            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] }))
/* 92960*/          0, /*End of Scope*/
/* 92961*/        /*Scope*/ 87, /*->93049*/
/* 92962*/          OPC_CheckChild1Integer, 3, 
/* 92964*/          OPC_CheckType, MVT::i32,
/* 92966*/          OPC_MoveParent,
/* 92967*/          OPC_CheckType, MVT::f128,
/* 92969*/          OPC_Scope, 38, /*->93009*/ // 2 children in Scope
/* 92971*/            OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 92973*/            OPC_EmitInteger, MVT::i32, 3, 
/* 92976*/            OPC_EmitNode1, TARGET_VAL(PPC::VSPLTW), 0,
                          MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 92984*/            OPC_EmitNode1, TARGET_VAL(PPC::VEXTSW2D), 0,
                          MVT::f128, 1/*#Ops*/, 2,  // Results = #3
/* 92991*/            OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 92994*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::f64, 2/*#Ops*/, 3, 4,  // Results = #5
/* 93002*/            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] }))
/* 93009*/          /*Scope*/ 38, /*->93048*/
/* 93010*/            OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 93012*/            OPC_EmitInteger, MVT::i32, 0, 
/* 93015*/            OPC_EmitNode1, TARGET_VAL(PPC::VSPLTW), 0,
                          MVT::f128, 2/*#Ops*/, 1, 0,  // Results = #2
/* 93023*/            OPC_EmitNode1, TARGET_VAL(PPC::VEXTSW2D), 0,
                          MVT::f128, 1/*#Ops*/, 2,  // Results = #3
/* 93030*/            OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 93033*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::f64, 2/*#Ops*/, 3, 4,  // Results = #5
/* 93041*/            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] }))
/* 93048*/          0, /*End of Scope*/
/* 93049*/        0, /*End of Scope*/
/* 93050*/      /*SwitchOpcode*/ 40, TARGET_VAL(PPCISD::MFVSR),// ->93093
/* 93053*/        OPC_RecordChild0, // #0 = $src
/* 93054*/        OPC_CheckChild0Type, MVT::f64,
/* 93056*/        OPC_SwitchType /*2 cases */, 12, MVT::i64,// ->93071
/* 93059*/          OPC_MoveParent,
/* 93060*/          OPC_CheckType, MVT::f128,
/* 93062*/          OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/* 93064*/          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)
/* 93071*/        /*SwitchType*/ 19, MVT::i32,// ->93092
/* 93073*/          OPC_MoveParent,
/* 93074*/          OPC_CheckType, MVT::f128,
/* 93076*/          OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/* 93078*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTSW2Ds), 0,
                        MVT::f64, 1/*#Ops*/, 0,  // Results = #1
/* 93085*/          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))
/* 93092*/        0, // EndSwitchType
/* 93093*/      0, // EndSwitchOpcode
/* 93094*/    /*Scope*/ 112, /*->93207*/
/* 93095*/      OPC_RecordChild0, // #0 = $src
/* 93096*/      OPC_Scope, 24, /*->93122*/ // 4 children in Scope
/* 93098*/        OPC_CheckChild0Type, MVT::i64,
/* 93100*/        OPC_CheckType, MVT::f128,
/* 93102*/        OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/* 93104*/        OPC_EmitInteger, MVT::i32, PPC::VFRCRegClassID,
/* 93107*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::f64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 93115*/        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] }))
/* 93122*/      /*Scope*/ 44, /*->93167*/
/* 93123*/        OPC_CheckChild0Type, MVT::i32,
/* 93125*/        OPC_SwitchType /*3 cases */, 16, MVT::f128,// ->93144
/* 93128*/          OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/* 93130*/          OPC_EmitNode1, TARGET_VAL(PPC::MTVSRWA), 0,
                        MVT::f64, 1/*#Ops*/, 0,  // Results = #1
/* 93137*/          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))
/* 93144*/        /*SwitchType*/ 9, MVT::f64,// ->93155
/* 93146*/          OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 93148*/          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)
/* 93155*/        /*SwitchType*/ 9, MVT::f32,// ->93166
/* 93157*/          OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 93159*/          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)
/* 93166*/        0, // EndSwitchType
/* 93167*/      /*Scope*/ 11, /*->93179*/
/* 93168*/        OPC_CheckType, MVT::v2f64,
/* 93170*/        OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 93172*/        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)
/* 93179*/      /*Scope*/ 26, /*->93206*/
/* 93180*/        OPC_CheckType, MVT::v4f32,
/* 93182*/        OPC_CheckChild0Type, MVT::v4i32,
/* 93184*/        OPC_Scope, 9, /*->93195*/ // 2 children in Scope
/* 93186*/          OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 93188*/          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)
/* 93195*/        /*Scope*/ 9, /*->93205*/
/* 93196*/          OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 93198*/          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)
/* 93205*/        0, /*End of Scope*/
/* 93206*/      0, /*End of Scope*/
/* 93207*/    0, /*End of Scope*/
/* 93208*/  /*SwitchOpcode*/ 32|128,5/*672*/, TARGET_VAL(ISD::FNEG),// ->93884
/* 93212*/    OPC_Scope, 47|128,1/*175*/, /*->93390*/ // 8 children in Scope
/* 93215*/      OPC_MoveChild0,
/* 93216*/      OPC_SwitchOpcode /*3 cases */, 40, TARGET_VAL(ISD::INTRINSIC_WO_CHAIN),// ->93260
/* 93220*/        OPC_CheckChild0Integer, 67|128,45/*5827*/, 
/* 93223*/        OPC_RecordChild1, // #0 = $vA
/* 93224*/        OPC_RecordChild2, // #1 = $vB
/* 93225*/        OPC_Scope, 18, /*->93245*/ // 2 children in Scope
/* 93227*/          OPC_MoveChild3,
/* 93228*/          OPC_CheckOpcode, TARGET_VAL(ISD::FNEG),
/* 93231*/          OPC_RecordChild0, // #2 = $vTi
/* 93232*/          OPC_MoveParent,
/* 93233*/          OPC_MoveParent,
/* 93234*/          OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/* 93236*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XSNMSUBQPO), 0,
                        MVT::f128, 3/*#Ops*/, 2, 0, 1, 
                    // Src: (fneg:{ *:[f128] } (intrinsic_wo_chain:{ *:[f128] } 5827:{ *:[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)
/* 93245*/        /*Scope*/ 13, /*->93259*/
/* 93246*/          OPC_RecordChild3, // #2 = $vTi
/* 93247*/          OPC_MoveParent,
/* 93248*/          OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/* 93250*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XSNMADDQPO), 0,
                        MVT::f128, 3/*#Ops*/, 2, 0, 1, 
                    // Src: (fneg:{ *:[f128] } (intrinsic_wo_chain:{ *:[f128] } 5827:{ *:[iPTR] }, f128:{ *:[f128] }:$vA, f128:{ *:[f128] }:$vB, f128:{ *:[f128] }:$vTi)) - Complexity = 411
                    // Dst: (XSNMADDQPO:{ *:[f128] } f128:{ *:[f128] }:$vTi, f128:{ *:[f128] }:$vA, f128:{ *:[f128] }:$vB)
/* 93259*/        0, /*End of Scope*/
/* 93260*/      /*SwitchOpcode*/ 97, TARGET_VAL(ISD::FMA),// ->93360
/* 93263*/        OPC_RecordChild0, // #0 = $XA
/* 93264*/        OPC_RecordChild1, // #1 = $XB
/* 93265*/        OPC_Scope, 48, /*->93315*/ // 2 children in Scope
/* 93267*/          OPC_MoveChild2,
/* 93268*/          OPC_CheckOpcode, TARGET_VAL(ISD::FNEG),
/* 93271*/          OPC_RecordChild0, // #2 = $XTi
/* 93272*/          OPC_MoveParent,
/* 93273*/          OPC_MoveParent,
/* 93274*/          OPC_SwitchType /*3 cases */, 11, MVT::f64,// ->93288
/* 93277*/            OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 93279*/            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)
/* 93288*/          /*SwitchType*/ 11, MVT::f32,// ->93301
/* 93290*/            OPC_CheckPatternPredicate, 10, // (PPCSubTarget->hasP8Vector())
/* 93292*/            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)
/* 93301*/          /*SwitchType*/ 11, MVT::f128,// ->93314
/* 93303*/            OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/* 93305*/            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)
/* 93314*/          0, // EndSwitchType
/* 93315*/        /*Scope*/ 43, /*->93359*/
/* 93316*/          OPC_RecordChild2, // #2 = $XTi
/* 93317*/          OPC_MoveParent,
/* 93318*/          OPC_SwitchType /*3 cases */, 11, MVT::f64,// ->93332
/* 93321*/            OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 93323*/            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)
/* 93332*/          /*SwitchType*/ 11, MVT::f32,// ->93345
/* 93334*/            OPC_CheckPatternPredicate, 10, // (PPCSubTarget->hasP8Vector())
/* 93336*/            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)
/* 93345*/          /*SwitchType*/ 11, MVT::f128,// ->93358
/* 93347*/            OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/* 93349*/            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)
/* 93358*/          0, // EndSwitchType
/* 93359*/        0, /*End of Scope*/
/* 93360*/      /*SwitchOpcode*/ 26, TARGET_VAL(ISD::FABS),// ->93389
/* 93363*/        OPC_RecordChild0, // #0 = $XB
/* 93364*/        OPC_MoveParent,
/* 93365*/        OPC_SwitchType /*2 cases */, 9, MVT::f64,// ->93377
/* 93368*/          OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 93370*/          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)
/* 93377*/        /*SwitchType*/ 9, MVT::f128,// ->93388
/* 93379*/          OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/* 93381*/          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)
/* 93388*/        0, // EndSwitchType
/* 93389*/      0, // EndSwitchOpcode
/* 93390*/    /*Scope*/ 25, /*->93416*/
/* 93391*/      OPC_RecordChild0, // #0 = $XB
/* 93392*/      OPC_SwitchType /*2 cases */, 9, MVT::f64,// ->93404
/* 93395*/        OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 93397*/        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)
/* 93404*/      /*SwitchType*/ 9, MVT::f128,// ->93415
/* 93406*/        OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/* 93408*/        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)
/* 93415*/      0, // EndSwitchType
/* 93416*/    /*Scope*/ 4|128,1/*132*/, /*->93550*/
/* 93418*/      OPC_MoveChild0,
/* 93419*/      OPC_SwitchOpcode /*2 cases */, 71, TARGET_VAL(ISD::FMA),// ->93494
/* 93423*/        OPC_RecordChild0, // #0 = $FRA
/* 93424*/        OPC_RecordChild1, // #1 = $FRC
/* 93425*/        OPC_Scope, 35, /*->93462*/ // 2 children in Scope
/* 93427*/          OPC_MoveChild2,
/* 93428*/          OPC_CheckOpcode, TARGET_VAL(ISD::FNEG),
/* 93431*/          OPC_RecordChild0, // #2 = $FRB
/* 93432*/          OPC_MoveParent,
/* 93433*/          OPC_MoveParent,
/* 93434*/          OPC_SwitchType /*2 cases */, 11, MVT::f64,// ->93448
/* 93437*/            OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 93439*/            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)
/* 93448*/          /*SwitchType*/ 11, MVT::f32,// ->93461
/* 93450*/            OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 93452*/            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)
/* 93461*/          0, // EndSwitchType
/* 93462*/        /*Scope*/ 30, /*->93493*/
/* 93463*/          OPC_RecordChild2, // #2 = $FRB
/* 93464*/          OPC_MoveParent,
/* 93465*/          OPC_SwitchType /*2 cases */, 11, MVT::f64,// ->93479
/* 93468*/            OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 93470*/            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)
/* 93479*/          /*SwitchType*/ 11, MVT::f32,// ->93492
/* 93481*/            OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 93483*/            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)
/* 93492*/          0, // EndSwitchType
/* 93493*/        0, /*End of Scope*/
/* 93494*/      /*SwitchOpcode*/ 52, TARGET_VAL(ISD::FABS),// ->93549
/* 93497*/        OPC_RecordChild0, // #0 = $frB
/* 93498*/        OPC_MoveParent,
/* 93499*/        OPC_SwitchType /*2 cases */, 22, MVT::f32,// ->93524
/* 93502*/          OPC_Scope, 9, /*->93513*/ // 2 children in Scope
/* 93504*/            OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 93506*/            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)
/* 93513*/          /*Scope*/ 9, /*->93523*/
/* 93514*/            OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 93516*/            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)
/* 93523*/          0, /*End of Scope*/
/* 93524*/        /*SwitchType*/ 22, MVT::f64,// ->93548
/* 93526*/          OPC_Scope, 9, /*->93537*/ // 2 children in Scope
/* 93528*/            OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 93530*/            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)
/* 93537*/          /*Scope*/ 9, /*->93547*/
/* 93538*/            OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 93540*/            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)
/* 93547*/          0, /*End of Scope*/
/* 93548*/        0, // EndSwitchType
/* 93549*/      0, // EndSwitchOpcode
/* 93550*/    /*Scope*/ 51, /*->93602*/
/* 93551*/      OPC_RecordChild0, // #0 = $frB
/* 93552*/      OPC_SwitchType /*2 cases */, 22, MVT::f32,// ->93577
/* 93555*/        OPC_Scope, 9, /*->93566*/ // 2 children in Scope
/* 93557*/          OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 93559*/          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)
/* 93566*/        /*Scope*/ 9, /*->93576*/
/* 93567*/          OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 93569*/          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)
/* 93576*/        0, /*End of Scope*/
/* 93577*/      /*SwitchType*/ 22, MVT::f64,// ->93601
/* 93579*/        OPC_Scope, 9, /*->93590*/ // 2 children in Scope
/* 93581*/          OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 93583*/          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)
/* 93590*/        /*Scope*/ 9, /*->93600*/
/* 93591*/          OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 93593*/          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)
/* 93600*/        0, /*End of Scope*/
/* 93601*/      0, // EndSwitchType
/* 93602*/    /*Scope*/ 106, /*->93709*/
/* 93603*/      OPC_MoveChild0,
/* 93604*/      OPC_SwitchOpcode /*2 cases */, 71, TARGET_VAL(ISD::FMA),// ->93679
/* 93608*/        OPC_RecordChild0, // #0 = $XA
/* 93609*/        OPC_RecordChild1, // #1 = $XB
/* 93610*/        OPC_Scope, 35, /*->93647*/ // 2 children in Scope
/* 93612*/          OPC_MoveChild2,
/* 93613*/          OPC_CheckOpcode, TARGET_VAL(ISD::FNEG),
/* 93616*/          OPC_RecordChild0, // #2 = $XTi
/* 93617*/          OPC_MoveParent,
/* 93618*/          OPC_MoveParent,
/* 93619*/          OPC_SwitchType /*2 cases */, 11, MVT::v2f64,// ->93633
/* 93622*/            OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 93624*/            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)
/* 93633*/          /*SwitchType*/ 11, MVT::v4f32,// ->93646
/* 93635*/            OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 93637*/            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)
/* 93646*/          0, // EndSwitchType
/* 93647*/        /*Scope*/ 30, /*->93678*/
/* 93648*/          OPC_RecordChild2, // #2 = $XTi
/* 93649*/          OPC_MoveParent,
/* 93650*/          OPC_SwitchType /*2 cases */, 11, MVT::v2f64,// ->93664
/* 93653*/            OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 93655*/            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)
/* 93664*/          /*SwitchType*/ 11, MVT::v4f32,// ->93677
/* 93666*/            OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 93668*/            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)
/* 93677*/          0, // EndSwitchType
/* 93678*/        0, /*End of Scope*/
/* 93679*/      /*SwitchOpcode*/ 26, TARGET_VAL(ISD::FABS),// ->93708
/* 93682*/        OPC_RecordChild0, // #0 = $XB
/* 93683*/        OPC_MoveParent,
/* 93684*/        OPC_SwitchType /*2 cases */, 9, MVT::v2f64,// ->93696
/* 93687*/          OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 93689*/          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)
/* 93696*/        /*SwitchType*/ 9, MVT::v4f32,// ->93707
/* 93698*/          OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 93700*/          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)
/* 93707*/        0, // EndSwitchType
/* 93708*/      0, // EndSwitchOpcode
/* 93709*/    /*Scope*/ 25, /*->93735*/
/* 93710*/      OPC_RecordChild0, // #0 = $XB
/* 93711*/      OPC_SwitchType /*2 cases */, 9, MVT::v2f64,// ->93723
/* 93714*/        OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 93716*/        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)
/* 93723*/      /*SwitchType*/ 9, MVT::v4f32,// ->93734
/* 93725*/        OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 93727*/        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)
/* 93734*/      0, // EndSwitchType
/* 93735*/    /*Scope*/ 121, /*->93857*/
/* 93736*/      OPC_MoveChild0,
/* 93737*/      OPC_SwitchOpcode /*2 cases */, 86, TARGET_VAL(ISD::FMA),// ->93827
/* 93741*/        OPC_RecordChild0, // #0 = $vA
/* 93742*/        OPC_RecordChild1, // #1 = $vC
/* 93743*/        OPC_Scope, 50, /*->93795*/ // 2 children in Scope
/* 93745*/          OPC_MoveChild2,
/* 93746*/          OPC_CheckOpcode, TARGET_VAL(ISD::FNEG),
/* 93749*/          OPC_RecordChild0, // #2 = $vB
/* 93750*/          OPC_MoveParent,
/* 93751*/          OPC_MoveParent,
/* 93752*/          OPC_SwitchType /*2 cases */, 26, MVT::v4f32,// ->93781
/* 93755*/            OPC_Scope, 11, /*->93768*/ // 2 children in Scope
/* 93757*/              OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 93759*/              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)
/* 93768*/            /*Scope*/ 11, /*->93780*/
/* 93769*/              OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 93771*/              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)
/* 93780*/            0, /*End of Scope*/
/* 93781*/          /*SwitchType*/ 11, MVT::v4f64,// ->93794
/* 93783*/            OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 93785*/            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)
/* 93794*/          0, // EndSwitchType
/* 93795*/        /*Scope*/ 30, /*->93826*/
/* 93796*/          OPC_RecordChild2, // #2 = $FRB
/* 93797*/          OPC_MoveParent,
/* 93798*/          OPC_SwitchType /*2 cases */, 11, MVT::v4f64,// ->93812
/* 93801*/            OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 93803*/            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)
/* 93812*/          /*SwitchType*/ 11, MVT::v4f32,// ->93825
/* 93814*/            OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 93816*/            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)
/* 93825*/          0, // EndSwitchType
/* 93826*/        0, /*End of Scope*/
/* 93827*/      /*SwitchOpcode*/ 26, TARGET_VAL(ISD::FABS),// ->93856
/* 93830*/        OPC_RecordChild0, // #0 = $FRB
/* 93831*/        OPC_MoveParent,
/* 93832*/        OPC_SwitchType /*2 cases */, 9, MVT::v4f64,// ->93844
/* 93835*/          OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 93837*/          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)
/* 93844*/        /*SwitchType*/ 9, MVT::v4f32,// ->93855
/* 93846*/          OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 93848*/          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)
/* 93855*/        0, // EndSwitchType
/* 93856*/      0, // EndSwitchOpcode
/* 93857*/    /*Scope*/ 25, /*->93883*/
/* 93858*/      OPC_RecordChild0, // #0 = $FRB
/* 93859*/      OPC_SwitchType /*2 cases */, 9, MVT::v4f64,// ->93871
/* 93862*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 93864*/        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)
/* 93871*/      /*SwitchType*/ 9, MVT::v4f32,// ->93882
/* 93873*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 93875*/        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)
/* 93882*/      0, // EndSwitchType
/* 93883*/    0, /*End of Scope*/
/* 93884*/  /*SwitchOpcode*/ 96|128,3/*480*/, TARGET_VAL(PPCISD::FCFID),// ->94368
/* 93888*/    OPC_Scope, 68|128,3/*452*/, /*->94343*/ // 2 children in Scope
/* 93891*/      OPC_MoveChild0,
/* 93892*/      OPC_CheckOpcode, TARGET_VAL(PPCISD::MTVSRA),
/* 93895*/      OPC_MoveChild0,
/* 93896*/      OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/* 93899*/      OPC_RecordChild0, // #0 = $S
/* 93900*/      OPC_SwitchType /*2 cases */, 13|128,1/*141*/, MVT::i64,// ->94045
/* 93904*/        OPC_CheckChild0Type, MVT::v2i64,
/* 93906*/        OPC_Scope, 62, /*->93970*/ // 2 children in Scope
/* 93908*/          OPC_CheckChild1Integer, 0, 
/* 93910*/          OPC_MoveParent,
/* 93911*/          OPC_MoveParent,
/* 93912*/          OPC_CheckType, MVT::f64,
/* 93914*/          OPC_Scope, 20, /*->93936*/ // 2 children in Scope
/* 93916*/            OPC_CheckPatternPredicate, 28, // (!PPCSubTarget->isLittleEndian())
/* 93918*/            OPC_EmitInteger, MVT::i32, PPC::VSFRCRegClassID,
/* 93921*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::f64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 93929*/            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] }))
/* 93936*/          /*Scope*/ 32, /*->93969*/
/* 93937*/            OPC_CheckPatternPredicate, 29, // (PPCSubTarget->isLittleEndian())
/* 93939*/            OPC_EmitInteger, MVT::i32, 2, 
/* 93942*/            OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                          MVT::v4i32, 3/*#Ops*/, 0, 0, 1,  // Results = #2
/* 93951*/            OPC_EmitInteger, MVT::i32, PPC::VSFRCRegClassID,
/* 93954*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 93962*/            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] }))
/* 93969*/          0, /*End of Scope*/
/* 93970*/        /*Scope*/ 73, /*->94044*/
/* 93971*/          OPC_CheckChild1Integer, 1, 
/* 93973*/          OPC_MoveParent,
/* 93974*/          OPC_MoveParent,
/* 93975*/          OPC_CheckType, MVT::f64,
/* 93977*/          OPC_Scope, 31, /*->94010*/ // 2 children in Scope
/* 93979*/            OPC_CheckPatternPredicate, 29, // (PPCSubTarget->isLittleEndian())
/* 93981*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 93984*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::f64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 93992*/            OPC_EmitInteger, MVT::i32, PPC::VSFRCRegClassID,
/* 93995*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 94003*/            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] }))
/* 94010*/          /*Scope*/ 32, /*->94043*/
/* 94011*/            OPC_CheckPatternPredicate, 28, // (!PPCSubTarget->isLittleEndian())
/* 94013*/            OPC_EmitInteger, MVT::i32, 2, 
/* 94016*/            OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                          MVT::v4i32, 3/*#Ops*/, 0, 0, 1,  // Results = #2
/* 94025*/            OPC_EmitInteger, MVT::i32, PPC::VSFRCRegClassID,
/* 94028*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 94036*/            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] }))
/* 94043*/          0, /*End of Scope*/
/* 94044*/        0, /*End of Scope*/
/* 94045*/      /*SwitchType*/ 38|128,2/*294*/, MVT::i32,// ->94342
/* 94048*/        OPC_Scope, 72, /*->94122*/ // 4 children in Scope
/* 94050*/          OPC_CheckChild1Integer, 0, 
/* 94052*/          OPC_MoveParent,
/* 94053*/          OPC_MoveParent,
/* 94054*/          OPC_CheckType, MVT::f64,
/* 94056*/          OPC_Scope, 31, /*->94089*/ // 2 children in Scope
/* 94058*/            OPC_CheckPatternPredicate, 29, // (PPCSubTarget->isLittleEndian())
/* 94060*/            OPC_EmitInteger, MVT::i32, 3, 
/* 94063*/            OPC_EmitNode1, TARGET_VAL(PPC::XXSPLTW), 0,
                          MVT::v4i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 94071*/            OPC_EmitNode1, TARGET_VAL(PPC::XVCVSXWDP), 0,
                          MVT::v4i32, 1/*#Ops*/, 2,  // Results = #3
/* 94078*/            OPC_EmitInteger, MVT::i32, PPC::VSFRCRegClassID,
/* 94081*/            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] })
/* 94089*/          /*Scope*/ 31, /*->94121*/
/* 94090*/            OPC_CheckPatternPredicate, 28, // (!PPCSubTarget->isLittleEndian())
/* 94092*/            OPC_EmitInteger, MVT::i32, 0, 
/* 94095*/            OPC_EmitNode1, TARGET_VAL(PPC::XXSPLTW), 0,
                          MVT::v4i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 94103*/            OPC_EmitNode1, TARGET_VAL(PPC::XVCVSXWDP), 0,
                          MVT::v4i32, 1/*#Ops*/, 2,  // Results = #3
/* 94110*/            OPC_EmitInteger, MVT::i32, PPC::VSFRCRegClassID,
/* 94113*/            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] })
/* 94121*/          0, /*End of Scope*/
/* 94122*/        /*Scope*/ 72, /*->94195*/
/* 94123*/          OPC_CheckChild1Integer, 1, 
/* 94125*/          OPC_MoveParent,
/* 94126*/          OPC_MoveParent,
/* 94127*/          OPC_CheckType, MVT::f64,
/* 94129*/          OPC_Scope, 31, /*->94162*/ // 2 children in Scope
/* 94131*/            OPC_CheckPatternPredicate, 29, // (PPCSubTarget->isLittleEndian())
/* 94133*/            OPC_EmitInteger, MVT::i32, 2, 
/* 94136*/            OPC_EmitNode1, TARGET_VAL(PPC::XXSPLTW), 0,
                          MVT::v4i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 94144*/            OPC_EmitNode1, TARGET_VAL(PPC::XVCVSXWDP), 0,
                          MVT::v4i32, 1/*#Ops*/, 2,  // Results = #3
/* 94151*/            OPC_EmitInteger, MVT::i32, PPC::VSFRCRegClassID,
/* 94154*/            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] })
/* 94162*/          /*Scope*/ 31, /*->94194*/
/* 94163*/            OPC_CheckPatternPredicate, 28, // (!PPCSubTarget->isLittleEndian())
/* 94165*/            OPC_EmitInteger, MVT::i32, 1, 
/* 94168*/            OPC_EmitNode1, TARGET_VAL(PPC::XXSPLTW), 0,
                          MVT::v4i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 94176*/            OPC_EmitNode1, TARGET_VAL(PPC::XVCVSXWDP), 0,
                          MVT::v4i32, 1/*#Ops*/, 2,  // Results = #3
/* 94183*/            OPC_EmitInteger, MVT::i32, PPC::VSFRCRegClassID,
/* 94186*/            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] })
/* 94194*/          0, /*End of Scope*/
/* 94195*/        /*Scope*/ 72, /*->94268*/
/* 94196*/          OPC_CheckChild1Integer, 2, 
/* 94198*/          OPC_MoveParent,
/* 94199*/          OPC_MoveParent,
/* 94200*/          OPC_CheckType, MVT::f64,
/* 94202*/          OPC_Scope, 31, /*->94235*/ // 2 children in Scope
/* 94204*/            OPC_CheckPatternPredicate, 29, // (PPCSubTarget->isLittleEndian())
/* 94206*/            OPC_EmitInteger, MVT::i32, 1, 
/* 94209*/            OPC_EmitNode1, TARGET_VAL(PPC::XXSPLTW), 0,
                          MVT::v4i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 94217*/            OPC_EmitNode1, TARGET_VAL(PPC::XVCVSXWDP), 0,
                          MVT::v4i32, 1/*#Ops*/, 2,  // Results = #3
/* 94224*/            OPC_EmitInteger, MVT::i32, PPC::VSFRCRegClassID,
/* 94227*/            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] })
/* 94235*/          /*Scope*/ 31, /*->94267*/
/* 94236*/            OPC_CheckPatternPredicate, 28, // (!PPCSubTarget->isLittleEndian())
/* 94238*/            OPC_EmitInteger, MVT::i32, 2, 
/* 94241*/            OPC_EmitNode1, TARGET_VAL(PPC::XXSPLTW), 0,
                          MVT::v4i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 94249*/            OPC_EmitNode1, TARGET_VAL(PPC::XVCVSXWDP), 0,
                          MVT::v4i32, 1/*#Ops*/, 2,  // Results = #3
/* 94256*/            OPC_EmitInteger, MVT::i32, PPC::VSFRCRegClassID,
/* 94259*/            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] })
/* 94267*/          0, /*End of Scope*/
/* 94268*/        /*Scope*/ 72, /*->94341*/
/* 94269*/          OPC_CheckChild1Integer, 3, 
/* 94271*/          OPC_MoveParent,
/* 94272*/          OPC_MoveParent,
/* 94273*/          OPC_CheckType, MVT::f64,
/* 94275*/          OPC_Scope, 31, /*->94308*/ // 2 children in Scope
/* 94277*/            OPC_CheckPatternPredicate, 29, // (PPCSubTarget->isLittleEndian())
/* 94279*/            OPC_EmitInteger, MVT::i32, 0, 
/* 94282*/            OPC_EmitNode1, TARGET_VAL(PPC::XXSPLTW), 0,
                          MVT::v4i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 94290*/            OPC_EmitNode1, TARGET_VAL(PPC::XVCVSXWDP), 0,
                          MVT::v4i32, 1/*#Ops*/, 2,  // Results = #3
/* 94297*/            OPC_EmitInteger, MVT::i32, PPC::VSFRCRegClassID,
/* 94300*/            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] })
/* 94308*/          /*Scope*/ 31, /*->94340*/
/* 94309*/            OPC_CheckPatternPredicate, 28, // (!PPCSubTarget->isLittleEndian())
/* 94311*/            OPC_EmitInteger, MVT::i32, 3, 
/* 94314*/            OPC_EmitNode1, TARGET_VAL(PPC::XXSPLTW), 0,
                          MVT::v4i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 94322*/            OPC_EmitNode1, TARGET_VAL(PPC::XVCVSXWDP), 0,
                          MVT::v4i32, 1/*#Ops*/, 2,  // Results = #3
/* 94329*/            OPC_EmitInteger, MVT::i32, PPC::VSFRCRegClassID,
/* 94332*/            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] })
/* 94340*/          0, /*End of Scope*/
/* 94341*/        0, /*End of Scope*/
/* 94342*/      0, // EndSwitchType
/* 94343*/    /*Scope*/ 23, /*->94367*/
/* 94344*/      OPC_RecordChild0, // #0 = $XB
/* 94345*/      OPC_CheckType, MVT::f64,
/* 94347*/      OPC_Scope, 9, /*->94358*/ // 2 children in Scope
/* 94349*/        OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 94351*/        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)
/* 94358*/      /*Scope*/ 7, /*->94366*/
/* 94359*/        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)
/* 94366*/      0, /*End of Scope*/
/* 94367*/    0, /*End of Scope*/
/* 94368*/  /*SwitchOpcode*/ 16|128,3/*400*/, TARGET_VAL(PPCISD::FCFIDU),// ->94772
/* 94372*/    OPC_Scope, 116|128,2/*372*/, /*->94747*/ // 2 children in Scope
/* 94375*/      OPC_MoveChild0,
/* 94376*/      OPC_SwitchOpcode /*2 cases */, 20|128,1/*148*/, TARGET_VAL(PPCISD::MTVSRA),// ->94529
/* 94381*/        OPC_MoveChild0,
/* 94382*/        OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/* 94385*/        OPC_RecordChild0, // #0 = $S
/* 94386*/        OPC_CheckChild0Type, MVT::v2i64,
/* 94388*/        OPC_CheckType, MVT::i64,
/* 94390*/        OPC_Scope, 62, /*->94454*/ // 2 children in Scope
/* 94392*/          OPC_CheckChild1Integer, 0, 
/* 94394*/          OPC_MoveParent,
/* 94395*/          OPC_MoveParent,
/* 94396*/          OPC_CheckType, MVT::f64,
/* 94398*/          OPC_Scope, 20, /*->94420*/ // 2 children in Scope
/* 94400*/            OPC_CheckPatternPredicate, 28, // (!PPCSubTarget->isLittleEndian())
/* 94402*/            OPC_EmitInteger, MVT::i32, PPC::VSFRCRegClassID,
/* 94405*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::f64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 94413*/            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] }))
/* 94420*/          /*Scope*/ 32, /*->94453*/
/* 94421*/            OPC_CheckPatternPredicate, 29, // (PPCSubTarget->isLittleEndian())
/* 94423*/            OPC_EmitInteger, MVT::i32, 2, 
/* 94426*/            OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                          MVT::v4i32, 3/*#Ops*/, 0, 0, 1,  // Results = #2
/* 94435*/            OPC_EmitInteger, MVT::i32, PPC::VSFRCRegClassID,
/* 94438*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 94446*/            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] }))
/* 94453*/          0, /*End of Scope*/
/* 94454*/        /*Scope*/ 73, /*->94528*/
/* 94455*/          OPC_CheckChild1Integer, 1, 
/* 94457*/          OPC_MoveParent,
/* 94458*/          OPC_MoveParent,
/* 94459*/          OPC_CheckType, MVT::f64,
/* 94461*/          OPC_Scope, 31, /*->94494*/ // 2 children in Scope
/* 94463*/            OPC_CheckPatternPredicate, 29, // (PPCSubTarget->isLittleEndian())
/* 94465*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 94468*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::f64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 94476*/            OPC_EmitInteger, MVT::i32, PPC::VSFRCRegClassID,
/* 94479*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 94487*/            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] }))
/* 94494*/          /*Scope*/ 32, /*->94527*/
/* 94495*/            OPC_CheckPatternPredicate, 28, // (!PPCSubTarget->isLittleEndian())
/* 94497*/            OPC_EmitInteger, MVT::i32, 2, 
/* 94500*/            OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                          MVT::v4i32, 3/*#Ops*/, 0, 0, 1,  // Results = #2
/* 94509*/            OPC_EmitInteger, MVT::i32, PPC::VSFRCRegClassID,
/* 94512*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 94520*/            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] }))
/* 94527*/          0, /*End of Scope*/
/* 94528*/        0, /*End of Scope*/
/* 94529*/      /*SwitchOpcode*/ 85|128,1/*213*/, TARGET_VAL(PPCISD::MTVSRZ),// ->94746
/* 94533*/        OPC_MoveChild0,
/* 94534*/        OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/* 94537*/        OPC_RecordChild0, // #0 = $A
/* 94538*/        OPC_CheckType, MVT::i32,
/* 94540*/        OPC_Scope, 50, /*->94592*/ // 4 children in Scope
/* 94542*/          OPC_CheckChild1Integer, 0, 
/* 94544*/          OPC_MoveParent,
/* 94545*/          OPC_MoveParent,
/* 94546*/          OPC_CheckType, MVT::f64,
/* 94548*/          OPC_Scope, 20, /*->94570*/ // 2 children in Scope
/* 94550*/            OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 94552*/            OPC_EmitInteger, MVT::i32, 12, 
/* 94555*/            OPC_EmitNode1, TARGET_VAL(PPC::XXEXTRACTUW), 0,
                          MVT::f64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 94563*/            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] }))
/* 94570*/          /*Scope*/ 20, /*->94591*/
/* 94571*/            OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 94573*/            OPC_EmitInteger, MVT::i32, 0, 
/* 94576*/            OPC_EmitNode1, TARGET_VAL(PPC::XXEXTRACTUW), 0,
                          MVT::f64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 94584*/            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] }))
/* 94591*/          0, /*End of Scope*/
/* 94592*/        /*Scope*/ 50, /*->94643*/
/* 94593*/          OPC_CheckChild1Integer, 1, 
/* 94595*/          OPC_MoveParent,
/* 94596*/          OPC_MoveParent,
/* 94597*/          OPC_CheckType, MVT::f64,
/* 94599*/          OPC_Scope, 20, /*->94621*/ // 2 children in Scope
/* 94601*/            OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 94603*/            OPC_EmitInteger, MVT::i32, 8, 
/* 94606*/            OPC_EmitNode1, TARGET_VAL(PPC::XXEXTRACTUW), 0,
                          MVT::f64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 94614*/            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] }))
/* 94621*/          /*Scope*/ 20, /*->94642*/
/* 94622*/            OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 94624*/            OPC_EmitInteger, MVT::i32, 4, 
/* 94627*/            OPC_EmitNode1, TARGET_VAL(PPC::XXEXTRACTUW), 0,
                          MVT::f64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 94635*/            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] }))
/* 94642*/          0, /*End of Scope*/
/* 94643*/        /*Scope*/ 50, /*->94694*/
/* 94644*/          OPC_CheckChild1Integer, 2, 
/* 94646*/          OPC_MoveParent,
/* 94647*/          OPC_MoveParent,
/* 94648*/          OPC_CheckType, MVT::f64,
/* 94650*/          OPC_Scope, 20, /*->94672*/ // 2 children in Scope
/* 94652*/            OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 94654*/            OPC_EmitInteger, MVT::i32, 4, 
/* 94657*/            OPC_EmitNode1, TARGET_VAL(PPC::XXEXTRACTUW), 0,
                          MVT::f64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 94665*/            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] }))
/* 94672*/          /*Scope*/ 20, /*->94693*/
/* 94673*/            OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 94675*/            OPC_EmitInteger, MVT::i32, 8, 
/* 94678*/            OPC_EmitNode1, TARGET_VAL(PPC::XXEXTRACTUW), 0,
                          MVT::f64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 94686*/            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] }))
/* 94693*/          0, /*End of Scope*/
/* 94694*/        /*Scope*/ 50, /*->94745*/
/* 94695*/          OPC_CheckChild1Integer, 3, 
/* 94697*/          OPC_MoveParent,
/* 94698*/          OPC_MoveParent,
/* 94699*/          OPC_CheckType, MVT::f64,
/* 94701*/          OPC_Scope, 20, /*->94723*/ // 2 children in Scope
/* 94703*/            OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 94705*/            OPC_EmitInteger, MVT::i32, 0, 
/* 94708*/            OPC_EmitNode1, TARGET_VAL(PPC::XXEXTRACTUW), 0,
                          MVT::f64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 94716*/            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] }))
/* 94723*/          /*Scope*/ 20, /*->94744*/
/* 94724*/            OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 94726*/            OPC_EmitInteger, MVT::i32, 12, 
/* 94729*/            OPC_EmitNode1, TARGET_VAL(PPC::XXEXTRACTUW), 0,
                          MVT::f64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 94737*/            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] }))
/* 94744*/          0, /*End of Scope*/
/* 94745*/        0, /*End of Scope*/
/* 94746*/      0, // EndSwitchOpcode
/* 94747*/    /*Scope*/ 23, /*->94771*/
/* 94748*/      OPC_RecordChild0, // #0 = $XB
/* 94749*/      OPC_CheckType, MVT::f64,
/* 94751*/      OPC_Scope, 9, /*->94762*/ // 2 children in Scope
/* 94753*/        OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 94755*/        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)
/* 94762*/      /*Scope*/ 7, /*->94770*/
/* 94763*/        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)
/* 94770*/      0, /*End of Scope*/
/* 94771*/    0, /*End of Scope*/
/* 94772*/  /*SwitchOpcode*/ 78|128,3/*462*/, TARGET_VAL(PPCISD::FCFIDS),// ->95238
/* 94776*/    OPC_Scope, 48|128,3/*432*/, /*->95211*/ // 2 children in Scope
/* 94779*/      OPC_MoveChild0,
/* 94780*/      OPC_CheckOpcode, TARGET_VAL(PPCISD::MTVSRA),
/* 94783*/      OPC_MoveChild0,
/* 94784*/      OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/* 94787*/      OPC_RecordChild0, // #0 = $S1
/* 94788*/      OPC_SwitchType /*2 cases */, 17|128,1/*145*/, MVT::i64,// ->94937
/* 94792*/        OPC_CheckChild0Type, MVT::v2i64,
/* 94794*/        OPC_Scope, 64, /*->94860*/ // 2 children in Scope
/* 94796*/          OPC_CheckChild1Integer, 0, 
/* 94798*/          OPC_MoveParent,
/* 94799*/          OPC_CheckType, MVT::f64,
/* 94801*/          OPC_MoveParent,
/* 94802*/          OPC_CheckType, MVT::f32,
/* 94804*/          OPC_Scope, 20, /*->94826*/ // 2 children in Scope
/* 94806*/            OPC_CheckPatternPredicate, 28, // (!PPCSubTarget->isLittleEndian())
/* 94808*/            OPC_EmitInteger, MVT::i32, PPC::VSFRCRegClassID,
/* 94811*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::f64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 94819*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVSXDSP), 0,
                          MVT::f32, 1/*#Ops*/, 2, 
                      // Src: (PPCfcfids:{ *:[f32] } (PPCmtvsra:{ *:[f64] } (vector_extract:{ *:[i64] } v2i64:{ *:[v2i64] }:$S1, 0:{ *:[iPTR] }))) - Complexity = 414
                      // Dst: (XSCVSXDSP:{ *:[f32] } (COPY_TO_REGCLASS:{ *:[f64] } ?:{ *:[v2i64] }:$S1, VSFRC:{ *:[i32] }))
/* 94826*/          /*Scope*/ 32, /*->94859*/
/* 94827*/            OPC_CheckPatternPredicate, 29, // (PPCSubTarget->isLittleEndian())
/* 94829*/            OPC_EmitInteger, MVT::i32, 2, 
/* 94832*/            OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                          MVT::v4i32, 3/*#Ops*/, 0, 0, 1,  // Results = #2
/* 94841*/            OPC_EmitInteger, MVT::i32, PPC::VSFRCRegClassID,
/* 94844*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 94852*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVSXDSP), 0,
                          MVT::f32, 1/*#Ops*/, 4, 
                      // Src: (PPCfcfids:{ *:[f32] } (PPCmtvsra:{ *:[f64] } (vector_extract:{ *:[i64] } v2i64:{ *:[v2i64] }:$S1, 0:{ *:[iPTR] }))) - Complexity = 414
                      // Dst: (XSCVSXDSP:{ *:[f32] } (COPY_TO_REGCLASS:{ *:[f64] } (XXPERMDI:{ *:[v4i32] } ?:{ *:[v2i64] }:$S1, ?:{ *:[v2i64] }:$S1, 2:{ *:[i32] }), VSFRC:{ *:[i32] }))
/* 94859*/          0, /*End of Scope*/
/* 94860*/        /*Scope*/ 75, /*->94936*/
/* 94861*/          OPC_CheckChild1Integer, 1, 
/* 94863*/          OPC_MoveParent,
/* 94864*/          OPC_CheckType, MVT::f64,
/* 94866*/          OPC_MoveParent,
/* 94867*/          OPC_CheckType, MVT::f32,
/* 94869*/          OPC_Scope, 31, /*->94902*/ // 2 children in Scope
/* 94871*/            OPC_CheckPatternPredicate, 29, // (PPCSubTarget->isLittleEndian())
/* 94873*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 94876*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::f64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 94884*/            OPC_EmitInteger, MVT::i32, PPC::VSFRCRegClassID,
/* 94887*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 94895*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVSXDSP), 0,
                          MVT::f32, 1/*#Ops*/, 4, 
                      // Src: (PPCfcfids:{ *:[f32] } (PPCmtvsra:{ *:[f64] } (vector_extract:{ *:[i64] } v2i64:{ *:[v2i64] }:$S1, 1:{ *:[iPTR] }))) - Complexity = 414
                      // Dst: (XSCVSXDSP:{ *:[f32] } (COPY_TO_REGCLASS:{ *:[f64] } (COPY_TO_REGCLASS:{ *:[f64] } ?:{ *:[v2i64] }:$S1, VSRC:{ *:[i32] }), VSFRC:{ *:[i32] }))
/* 94902*/          /*Scope*/ 32, /*->94935*/
/* 94903*/            OPC_CheckPatternPredicate, 28, // (!PPCSubTarget->isLittleEndian())
/* 94905*/            OPC_EmitInteger, MVT::i32, 2, 
/* 94908*/            OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                          MVT::v4i32, 3/*#Ops*/, 0, 0, 1,  // Results = #2
/* 94917*/            OPC_EmitInteger, MVT::i32, PPC::VSFRCRegClassID,
/* 94920*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 94928*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVSXDSP), 0,
                          MVT::f32, 1/*#Ops*/, 4, 
                      // Src: (PPCfcfids:{ *:[f32] } (PPCmtvsra:{ *:[f64] } (vector_extract:{ *:[i64] } v2i64:{ *:[v2i64] }:$S1, 1:{ *:[iPTR] }))) - Complexity = 414
                      // Dst: (XSCVSXDSP:{ *:[f32] } (COPY_TO_REGCLASS:{ *:[f64] } (XXPERMDI:{ *:[v4i32] } ?:{ *:[v2i64] }:$S1, ?:{ *:[v2i64] }:$S1, 2:{ *:[i32] }), VSFRC:{ *:[i32] }))
/* 94935*/          0, /*End of Scope*/
/* 94936*/        0, /*End of Scope*/
/* 94937*/      /*SwitchType*/ 14|128,2/*270*/, MVT::i32,// ->95210
/* 94940*/        OPC_Scope, 66, /*->95008*/ // 4 children in Scope
/* 94942*/          OPC_CheckChild1Integer, 0, 
/* 94944*/          OPC_MoveParent,
/* 94945*/          OPC_CheckType, MVT::f64,
/* 94947*/          OPC_MoveParent,
/* 94948*/          OPC_CheckType, MVT::f32,
/* 94950*/          OPC_Scope, 27, /*->94979*/ // 2 children in Scope
/* 94952*/            OPC_CheckPatternPredicate, 29, // (PPCSubTarget->isLittleEndian())
/* 94954*/            OPC_EmitInteger, MVT::i32, 3, 
/* 94957*/            OPC_EmitNode1, TARGET_VAL(PPC::XXSPLTW), 0,
                          MVT::v4i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 94965*/            OPC_EmitNode1, TARGET_VAL(PPC::XVCVSXWSP), 0,
                          MVT::v4i32, 1/*#Ops*/, 2,  // Results = #3
/* 94972*/            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] })))
/* 94979*/          /*Scope*/ 27, /*->95007*/
/* 94980*/            OPC_CheckPatternPredicate, 28, // (!PPCSubTarget->isLittleEndian())
/* 94982*/            OPC_EmitInteger, MVT::i32, 0, 
/* 94985*/            OPC_EmitNode1, TARGET_VAL(PPC::XXSPLTW), 0,
                          MVT::v4i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 94993*/            OPC_EmitNode1, TARGET_VAL(PPC::XVCVSXWSP), 0,
                          MVT::v4i32, 1/*#Ops*/, 2,  // Results = #3
/* 95000*/            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] })))
/* 95007*/          0, /*End of Scope*/
/* 95008*/        /*Scope*/ 66, /*->95075*/
/* 95009*/          OPC_CheckChild1Integer, 1, 
/* 95011*/          OPC_MoveParent,
/* 95012*/          OPC_CheckType, MVT::f64,
/* 95014*/          OPC_MoveParent,
/* 95015*/          OPC_CheckType, MVT::f32,
/* 95017*/          OPC_Scope, 27, /*->95046*/ // 2 children in Scope
/* 95019*/            OPC_CheckPatternPredicate, 29, // (PPCSubTarget->isLittleEndian())
/* 95021*/            OPC_EmitInteger, MVT::i32, 2, 
/* 95024*/            OPC_EmitNode1, TARGET_VAL(PPC::XXSPLTW), 0,
                          MVT::v4i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 95032*/            OPC_EmitNode1, TARGET_VAL(PPC::XVCVSXWSP), 0,
                          MVT::v4i32, 1/*#Ops*/, 2,  // Results = #3
/* 95039*/            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] })))
/* 95046*/          /*Scope*/ 27, /*->95074*/
/* 95047*/            OPC_CheckPatternPredicate, 28, // (!PPCSubTarget->isLittleEndian())
/* 95049*/            OPC_EmitInteger, MVT::i32, 1, 
/* 95052*/            OPC_EmitNode1, TARGET_VAL(PPC::XXSPLTW), 0,
                          MVT::v4i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 95060*/            OPC_EmitNode1, TARGET_VAL(PPC::XVCVSXWSP), 0,
                          MVT::v4i32, 1/*#Ops*/, 2,  // Results = #3
/* 95067*/            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] })))
/* 95074*/          0, /*End of Scope*/
/* 95075*/        /*Scope*/ 66, /*->95142*/
/* 95076*/          OPC_CheckChild1Integer, 2, 
/* 95078*/          OPC_MoveParent,
/* 95079*/          OPC_CheckType, MVT::f64,
/* 95081*/          OPC_MoveParent,
/* 95082*/          OPC_CheckType, MVT::f32,
/* 95084*/          OPC_Scope, 27, /*->95113*/ // 2 children in Scope
/* 95086*/            OPC_CheckPatternPredicate, 29, // (PPCSubTarget->isLittleEndian())
/* 95088*/            OPC_EmitInteger, MVT::i32, 1, 
/* 95091*/            OPC_EmitNode1, TARGET_VAL(PPC::XXSPLTW), 0,
                          MVT::v4i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 95099*/            OPC_EmitNode1, TARGET_VAL(PPC::XVCVSXWSP), 0,
                          MVT::v4i32, 1/*#Ops*/, 2,  // Results = #3
/* 95106*/            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] })))
/* 95113*/          /*Scope*/ 27, /*->95141*/
/* 95114*/            OPC_CheckPatternPredicate, 28, // (!PPCSubTarget->isLittleEndian())
/* 95116*/            OPC_EmitInteger, MVT::i32, 2, 
/* 95119*/            OPC_EmitNode1, TARGET_VAL(PPC::XXSPLTW), 0,
                          MVT::v4i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 95127*/            OPC_EmitNode1, TARGET_VAL(PPC::XVCVSXWSP), 0,
                          MVT::v4i32, 1/*#Ops*/, 2,  // Results = #3
/* 95134*/            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] })))
/* 95141*/          0, /*End of Scope*/
/* 95142*/        /*Scope*/ 66, /*->95209*/
/* 95143*/          OPC_CheckChild1Integer, 3, 
/* 95145*/          OPC_MoveParent,
/* 95146*/          OPC_CheckType, MVT::f64,
/* 95148*/          OPC_MoveParent,
/* 95149*/          OPC_CheckType, MVT::f32,
/* 95151*/          OPC_Scope, 27, /*->95180*/ // 2 children in Scope
/* 95153*/            OPC_CheckPatternPredicate, 29, // (PPCSubTarget->isLittleEndian())
/* 95155*/            OPC_EmitInteger, MVT::i32, 0, 
/* 95158*/            OPC_EmitNode1, TARGET_VAL(PPC::XXSPLTW), 0,
                          MVT::v4i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 95166*/            OPC_EmitNode1, TARGET_VAL(PPC::XVCVSXWSP), 0,
                          MVT::v4i32, 1/*#Ops*/, 2,  // Results = #3
/* 95173*/            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] })))
/* 95180*/          /*Scope*/ 27, /*->95208*/
/* 95181*/            OPC_CheckPatternPredicate, 28, // (!PPCSubTarget->isLittleEndian())
/* 95183*/            OPC_EmitInteger, MVT::i32, 3, 
/* 95186*/            OPC_EmitNode1, TARGET_VAL(PPC::XXSPLTW), 0,
                          MVT::v4i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 95194*/            OPC_EmitNode1, TARGET_VAL(PPC::XVCVSXWSP), 0,
                          MVT::v4i32, 1/*#Ops*/, 2,  // Results = #3
/* 95201*/            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] })))
/* 95208*/          0, /*End of Scope*/
/* 95209*/        0, /*End of Scope*/
/* 95210*/      0, // EndSwitchType
/* 95211*/    /*Scope*/ 25, /*->95237*/
/* 95212*/      OPC_RecordChild0, // #0 = $XB
/* 95213*/      OPC_CheckChild0Type, MVT::f64,
/* 95215*/      OPC_CheckType, MVT::f32,
/* 95217*/      OPC_Scope, 9, /*->95228*/ // 2 children in Scope
/* 95219*/        OPC_CheckPatternPredicate, 10, // (PPCSubTarget->hasP8Vector())
/* 95221*/        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)
/* 95228*/      /*Scope*/ 7, /*->95236*/
/* 95229*/        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)
/* 95236*/      0, /*End of Scope*/
/* 95237*/    0, /*End of Scope*/
/* 95238*/  /*SwitchOpcode*/ 30|128,3/*414*/, TARGET_VAL(PPCISD::FCFIDUS),// ->95656
/* 95242*/    OPC_Scope, 0|128,3/*384*/, /*->95629*/ // 2 children in Scope
/* 95245*/      OPC_MoveChild0,
/* 95246*/      OPC_SwitchOpcode /*2 cases */, 24|128,1/*152*/, TARGET_VAL(PPCISD::MTVSRA),// ->95403
/* 95251*/        OPC_MoveChild0,
/* 95252*/        OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/* 95255*/        OPC_RecordChild0, // #0 = $S1
/* 95256*/        OPC_CheckChild0Type, MVT::v2i64,
/* 95258*/        OPC_CheckType, MVT::i64,
/* 95260*/        OPC_Scope, 64, /*->95326*/ // 2 children in Scope
/* 95262*/          OPC_CheckChild1Integer, 0, 
/* 95264*/          OPC_MoveParent,
/* 95265*/          OPC_CheckType, MVT::f64,
/* 95267*/          OPC_MoveParent,
/* 95268*/          OPC_CheckType, MVT::f32,
/* 95270*/          OPC_Scope, 20, /*->95292*/ // 2 children in Scope
/* 95272*/            OPC_CheckPatternPredicate, 28, // (!PPCSubTarget->isLittleEndian())
/* 95274*/            OPC_EmitInteger, MVT::i32, PPC::VSFRCRegClassID,
/* 95277*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::f64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 95285*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVUXDSP), 0,
                          MVT::f32, 1/*#Ops*/, 2, 
                      // Src: (PPCfcfidus:{ *:[f32] } (PPCmtvsra:{ *:[f64] } (vector_extract:{ *:[i64] } v2i64:{ *:[v2i64] }:$S1, 0:{ *:[iPTR] }))) - Complexity = 414
                      // Dst: (XSCVUXDSP:{ *:[f32] } (COPY_TO_REGCLASS:{ *:[f64] } ?:{ *:[v2i64] }:$S1, VSFRC:{ *:[i32] }))
/* 95292*/          /*Scope*/ 32, /*->95325*/
/* 95293*/            OPC_CheckPatternPredicate, 29, // (PPCSubTarget->isLittleEndian())
/* 95295*/            OPC_EmitInteger, MVT::i32, 2, 
/* 95298*/            OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                          MVT::v4i32, 3/*#Ops*/, 0, 0, 1,  // Results = #2
/* 95307*/            OPC_EmitInteger, MVT::i32, PPC::VSFRCRegClassID,
/* 95310*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 95318*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVUXDSP), 0,
                          MVT::f32, 1/*#Ops*/, 4, 
                      // Src: (PPCfcfidus:{ *:[f32] } (PPCmtvsra:{ *:[f64] } (vector_extract:{ *:[i64] } v2i64:{ *:[v2i64] }:$S1, 0:{ *:[iPTR] }))) - Complexity = 414
                      // Dst: (XSCVUXDSP:{ *:[f32] } (COPY_TO_REGCLASS:{ *:[f64] } (XXPERMDI:{ *:[v4i32] } ?:{ *:[v2i64] }:$S1, ?:{ *:[v2i64] }:$S1, 2:{ *:[i32] }), VSFRC:{ *:[i32] }))
/* 95325*/          0, /*End of Scope*/
/* 95326*/        /*Scope*/ 75, /*->95402*/
/* 95327*/          OPC_CheckChild1Integer, 1, 
/* 95329*/          OPC_MoveParent,
/* 95330*/          OPC_CheckType, MVT::f64,
/* 95332*/          OPC_MoveParent,
/* 95333*/          OPC_CheckType, MVT::f32,
/* 95335*/          OPC_Scope, 31, /*->95368*/ // 2 children in Scope
/* 95337*/            OPC_CheckPatternPredicate, 29, // (PPCSubTarget->isLittleEndian())
/* 95339*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 95342*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::f64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 95350*/            OPC_EmitInteger, MVT::i32, PPC::VSFRCRegClassID,
/* 95353*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 95361*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVUXDSP), 0,
                          MVT::f32, 1/*#Ops*/, 4, 
                      // Src: (PPCfcfidus:{ *:[f32] } (PPCmtvsra:{ *:[f64] } (vector_extract:{ *:[i64] } v2i64:{ *:[v2i64] }:$S1, 1:{ *:[iPTR] }))) - Complexity = 414
                      // Dst: (XSCVUXDSP:{ *:[f32] } (COPY_TO_REGCLASS:{ *:[f64] } (COPY_TO_REGCLASS:{ *:[f64] } ?:{ *:[v2i64] }:$S1, VSRC:{ *:[i32] }), VSFRC:{ *:[i32] }))
/* 95368*/          /*Scope*/ 32, /*->95401*/
/* 95369*/            OPC_CheckPatternPredicate, 28, // (!PPCSubTarget->isLittleEndian())
/* 95371*/            OPC_EmitInteger, MVT::i32, 2, 
/* 95374*/            OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                          MVT::v4i32, 3/*#Ops*/, 0, 0, 1,  // Results = #2
/* 95383*/            OPC_EmitInteger, MVT::i32, PPC::VSFRCRegClassID,
/* 95386*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/* 95394*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XSCVUXDSP), 0,
                          MVT::f32, 1/*#Ops*/, 4, 
                      // Src: (PPCfcfidus:{ *:[f32] } (PPCmtvsra:{ *:[f64] } (vector_extract:{ *:[i64] } v2i64:{ *:[v2i64] }:$S1, 1:{ *:[iPTR] }))) - Complexity = 414
                      // Dst: (XSCVUXDSP:{ *:[f32] } (COPY_TO_REGCLASS:{ *:[f64] } (XXPERMDI:{ *:[v4i32] } ?:{ *:[v2i64] }:$S1, ?:{ *:[v2i64] }:$S1, 2:{ *:[i32] }), VSFRC:{ *:[i32] }))
/* 95401*/          0, /*End of Scope*/
/* 95402*/        0, /*End of Scope*/
/* 95403*/      /*SwitchOpcode*/ 93|128,1/*221*/, TARGET_VAL(PPCISD::MTVSRZ),// ->95628
/* 95407*/        OPC_MoveChild0,
/* 95408*/        OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/* 95411*/        OPC_RecordChild0, // #0 = $A
/* 95412*/        OPC_CheckType, MVT::i32,
/* 95414*/        OPC_Scope, 52, /*->95468*/ // 4 children in Scope
/* 95416*/          OPC_CheckChild1Integer, 0, 
/* 95418*/          OPC_MoveParent,
/* 95419*/          OPC_CheckType, MVT::f64,
/* 95421*/          OPC_MoveParent,
/* 95422*/          OPC_CheckType, MVT::f32,
/* 95424*/          OPC_Scope, 20, /*->95446*/ // 2 children in Scope
/* 95426*/            OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 95428*/            OPC_EmitInteger, MVT::i32, 12, 
/* 95431*/            OPC_EmitNode1, TARGET_VAL(PPC::XXEXTRACTUW), 0,
                          MVT::f64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 95439*/            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] }))
/* 95446*/          /*Scope*/ 20, /*->95467*/
/* 95447*/            OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 95449*/            OPC_EmitInteger, MVT::i32, 0, 
/* 95452*/            OPC_EmitNode1, TARGET_VAL(PPC::XXEXTRACTUW), 0,
                          MVT::f64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 95460*/            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] }))
/* 95467*/          0, /*End of Scope*/
/* 95468*/        /*Scope*/ 52, /*->95521*/
/* 95469*/          OPC_CheckChild1Integer, 1, 
/* 95471*/          OPC_MoveParent,
/* 95472*/          OPC_CheckType, MVT::f64,
/* 95474*/          OPC_MoveParent,
/* 95475*/          OPC_CheckType, MVT::f32,
/* 95477*/          OPC_Scope, 20, /*->95499*/ // 2 children in Scope
/* 95479*/            OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 95481*/            OPC_EmitInteger, MVT::i32, 8, 
/* 95484*/            OPC_EmitNode1, TARGET_VAL(PPC::XXEXTRACTUW), 0,
                          MVT::f64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 95492*/            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] }))
/* 95499*/          /*Scope*/ 20, /*->95520*/
/* 95500*/            OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 95502*/            OPC_EmitInteger, MVT::i32, 4, 
/* 95505*/            OPC_EmitNode1, TARGET_VAL(PPC::XXEXTRACTUW), 0,
                          MVT::f64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 95513*/            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] }))
/* 95520*/          0, /*End of Scope*/
/* 95521*/        /*Scope*/ 52, /*->95574*/
/* 95522*/          OPC_CheckChild1Integer, 2, 
/* 95524*/          OPC_MoveParent,
/* 95525*/          OPC_CheckType, MVT::f64,
/* 95527*/          OPC_MoveParent,
/* 95528*/          OPC_CheckType, MVT::f32,
/* 95530*/          OPC_Scope, 20, /*->95552*/ // 2 children in Scope
/* 95532*/            OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 95534*/            OPC_EmitInteger, MVT::i32, 4, 
/* 95537*/            OPC_EmitNode1, TARGET_VAL(PPC::XXEXTRACTUW), 0,
                          MVT::f64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 95545*/            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] }))
/* 95552*/          /*Scope*/ 20, /*->95573*/
/* 95553*/            OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 95555*/            OPC_EmitInteger, MVT::i32, 8, 
/* 95558*/            OPC_EmitNode1, TARGET_VAL(PPC::XXEXTRACTUW), 0,
                          MVT::f64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 95566*/            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] }))
/* 95573*/          0, /*End of Scope*/
/* 95574*/        /*Scope*/ 52, /*->95627*/
/* 95575*/          OPC_CheckChild1Integer, 3, 
/* 95577*/          OPC_MoveParent,
/* 95578*/          OPC_CheckType, MVT::f64,
/* 95580*/          OPC_MoveParent,
/* 95581*/          OPC_CheckType, MVT::f32,
/* 95583*/          OPC_Scope, 20, /*->95605*/ // 2 children in Scope
/* 95585*/            OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/* 95587*/            OPC_EmitInteger, MVT::i32, 0, 
/* 95590*/            OPC_EmitNode1, TARGET_VAL(PPC::XXEXTRACTUW), 0,
                          MVT::f64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 95598*/            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] }))
/* 95605*/          /*Scope*/ 20, /*->95626*/
/* 95606*/            OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/* 95608*/            OPC_EmitInteger, MVT::i32, 12, 
/* 95611*/            OPC_EmitNode1, TARGET_VAL(PPC::XXEXTRACTUW), 0,
                          MVT::f64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 95619*/            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] }))
/* 95626*/          0, /*End of Scope*/
/* 95627*/        0, /*End of Scope*/
/* 95628*/      0, // EndSwitchOpcode
/* 95629*/    /*Scope*/ 25, /*->95655*/
/* 95630*/      OPC_RecordChild0, // #0 = $XB
/* 95631*/      OPC_CheckChild0Type, MVT::f64,
/* 95633*/      OPC_CheckType, MVT::f32,
/* 95635*/      OPC_Scope, 9, /*->95646*/ // 2 children in Scope
/* 95637*/        OPC_CheckPatternPredicate, 10, // (PPCSubTarget->hasP8Vector())
/* 95639*/        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)
/* 95646*/      /*Scope*/ 7, /*->95654*/
/* 95647*/        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)
/* 95654*/      0, /*End of Scope*/
/* 95655*/    0, /*End of Scope*/
/* 95656*/  /*SwitchOpcode*/ 35, TARGET_VAL(PPCISD::LFIWAX),// ->95694
/* 95659*/    OPC_RecordMemRef,
/* 95660*/    OPC_RecordNode, // #0 = 'PPClfiwax' chained node
/* 95661*/    OPC_RecordChild1, // #1 = $src
/* 95662*/    OPC_Scope, 14, /*->95678*/ // 2 children in Scope
/* 95664*/      OPC_CheckPatternPredicate, 10, // (PPCSubTarget->hasP8Vector())
/* 95666*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/* 95669*/      OPC_EmitMergeInputChains1_0,
/* 95670*/      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)
/* 95678*/    /*Scope*/ 14, /*->95693*/
/* 95679*/      OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 95681*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/* 95684*/      OPC_EmitMergeInputChains1_0,
/* 95685*/      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)
/* 95693*/    0, /*End of Scope*/
/* 95694*/  /*SwitchOpcode*/ 35, TARGET_VAL(PPCISD::LFIWZX),// ->95732
/* 95697*/    OPC_RecordMemRef,
/* 95698*/    OPC_RecordNode, // #0 = 'PPClfiwzx' chained node
/* 95699*/    OPC_RecordChild1, // #1 = $src
/* 95700*/    OPC_Scope, 14, /*->95716*/ // 2 children in Scope
/* 95702*/      OPC_CheckPatternPredicate, 10, // (PPCSubTarget->hasP8Vector())
/* 95704*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/* 95707*/      OPC_EmitMergeInputChains1_0,
/* 95708*/      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)
/* 95716*/    /*Scope*/ 14, /*->95731*/
/* 95717*/      OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 95719*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/* 95722*/      OPC_EmitMergeInputChains1_0,
/* 95723*/      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)
/* 95731*/    0, /*End of Scope*/
/* 95732*/  /*SwitchOpcode*/ 25|128,2/*281*/, TARGET_VAL(ISD::FMINNUM_IEEE),// ->96017
/* 95736*/    OPC_Scope, 88, /*->95826*/ // 4 children in Scope
/* 95738*/      OPC_MoveChild0,
/* 95739*/      OPC_CheckOpcode, TARGET_VAL(ISD::FCANONICALIZE),
/* 95742*/      OPC_RecordChild0, // #0 = $A
/* 95743*/      OPC_MoveParent,
/* 95744*/      OPC_Scope, 65, /*->95811*/ // 2 children in Scope
/* 95746*/        OPC_MoveChild1,
/* 95747*/        OPC_CheckOpcode, TARGET_VAL(ISD::FCANONICALIZE),
/* 95750*/        OPC_RecordChild0, // #1 = $B
/* 95751*/        OPC_MoveParent,
/* 95752*/        OPC_SwitchType /*2 cases */, 10, MVT::f64,// ->95765
/* 95755*/          OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 95757*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XSMINDP), 0,
                        MVT::f64, 2/*#Ops*/, 0, 1, 
                    // Src: (fminnum_ieee:{ *:[f64] } (fcanonicalize:{ *:[f64] } f64:{ *:[f64] }:$A), (fcanonicalize:{ *:[f64] } f64:{ *:[f64] }:$B)) - Complexity = 409
                    // Dst: (XSMINDP:{ *:[f64] } ?:{ *:[f64] }:$A, ?:{ *:[f64] }:$B)
/* 95765*/        /*SwitchType*/ 43, MVT::f32,// ->95810
/* 95767*/          OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 95769*/          OPC_EmitInteger, MVT::i32, PPC::VSFRCRegClassID,
/* 95772*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::f64, 2/*#Ops*/, 0, 2,  // Results = #3
/* 95780*/          OPC_EmitInteger, MVT::i32, PPC::VSFRCRegClassID,
/* 95783*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::f64, 2/*#Ops*/, 1, 4,  // Results = #5
/* 95791*/          OPC_EmitNode1, TARGET_VAL(PPC::XSMINDP), 0,
                        MVT::f64, 2/*#Ops*/, 3, 5,  // Results = #6
/* 95799*/          OPC_EmitInteger, MVT::i32, PPC::VSSRCRegClassID,
/* 95802*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::f32, 2/*#Ops*/, 6, 7, 
                    // Src: (fminnum_ieee:{ *:[f32] } (fcanonicalize:{ *:[f32] } f32:{ *:[f32] }:$A), (fcanonicalize:{ *:[f32] } f32:{ *:[f32] }:$B)) - Complexity = 409
                    // Dst: (COPY_TO_REGCLASS:{ *:[f32] } (XSMINDP:{ *:[f64] } (COPY_TO_REGCLASS:{ *:[f64] } ?:{ *:[f32] }:$A, VSFRC:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[f64] } ?:{ *:[f32] }:$B, VSFRC:{ *:[i32] })), VSSRC:{ *:[i32] })
/* 95810*/        0, // EndSwitchType
/* 95811*/      /*Scope*/ 13, /*->95825*/
/* 95812*/        OPC_RecordChild1, // #1 = $B
/* 95813*/        OPC_CheckType, MVT::f64,
/* 95815*/        OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 95817*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::XSMINDP), 0,
                      MVT::f64, 2/*#Ops*/, 0, 1, 
                  // Src: (fminnum_ieee:{ *:[f64] } (fcanonicalize:{ *:[f64] } f64:{ *:[f64] }:$A), f64:{ *:[f64] }:$B) - Complexity = 406
                  // Dst: (XSMINDP:{ *:[f64] } ?:{ *:[f64] }:$A, ?:{ *:[f64] }:$B)
/* 95825*/      0, /*End of Scope*/
/* 95826*/    /*Scope*/ 19, /*->95846*/
/* 95827*/      OPC_RecordChild0, // #0 = $A
/* 95828*/      OPC_MoveChild1,
/* 95829*/      OPC_CheckOpcode, TARGET_VAL(ISD::FCANONICALIZE),
/* 95832*/      OPC_RecordChild0, // #1 = $B
/* 95833*/      OPC_MoveParent,
/* 95834*/      OPC_CheckType, MVT::f64,
/* 95836*/      OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 95838*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XSMINDP), 0,
                    MVT::f64, 2/*#Ops*/, 0, 1, 
                // Src: (fminnum_ieee:{ *:[f64] } f64:{ *:[f64] }:$A, (fcanonicalize:{ *:[f64] } f64:{ *:[f64] }:$B)) - Complexity = 406
                // Dst: (XSMINDP:{ *:[f64] } ?:{ *:[f64] }:$A, ?:{ *:[f64] }:$B)
/* 95846*/    /*Scope*/ 52, /*->95899*/
/* 95847*/      OPC_MoveChild0,
/* 95848*/      OPC_CheckOpcode, TARGET_VAL(ISD::FCANONICALIZE),
/* 95851*/      OPC_RecordChild0, // #0 = $A
/* 95852*/      OPC_MoveParent,
/* 95853*/      OPC_RecordChild1, // #1 = $B
/* 95854*/      OPC_CheckType, MVT::f32,
/* 95856*/      OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 95858*/      OPC_EmitInteger, MVT::i32, PPC::VSFRCRegClassID,
/* 95861*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::f64, 2/*#Ops*/, 0, 2,  // Results = #3
/* 95869*/      OPC_EmitInteger, MVT::i32, PPC::VSFRCRegClassID,
/* 95872*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::f64, 2/*#Ops*/, 1, 4,  // Results = #5
/* 95880*/      OPC_EmitNode1, TARGET_VAL(PPC::XSMINDP), 0,
                    MVT::f64, 2/*#Ops*/, 3, 5,  // Results = #6
/* 95888*/      OPC_EmitInteger, MVT::i32, PPC::VSSRCRegClassID,
/* 95891*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::f32, 2/*#Ops*/, 6, 7, 
                // Src: (fminnum_ieee:{ *:[f32] } (fcanonicalize:{ *:[f32] } f32:{ *:[f32] }:$A), f32:{ *:[f32] }:$B) - Complexity = 406
                // Dst: (COPY_TO_REGCLASS:{ *:[f32] } (XSMINDP:{ *:[f64] } (COPY_TO_REGCLASS:{ *:[f64] } ?:{ *:[f32] }:$A, VSFRC:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[f64] } ?:{ *:[f32] }:$B, VSFRC:{ *:[i32] })), VSSRC:{ *:[i32] })
/* 95899*/    /*Scope*/ 116, /*->96016*/
/* 95900*/      OPC_RecordChild0, // #0 = $A
/* 95901*/      OPC_Scope, 51, /*->95954*/ // 2 children in Scope
/* 95903*/        OPC_MoveChild1,
/* 95904*/        OPC_CheckOpcode, TARGET_VAL(ISD::FCANONICALIZE),
/* 95907*/        OPC_RecordChild0, // #1 = $B
/* 95908*/        OPC_MoveParent,
/* 95909*/        OPC_CheckType, MVT::f32,
/* 95911*/        OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 95913*/        OPC_EmitInteger, MVT::i32, PPC::VSFRCRegClassID,
/* 95916*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::f64, 2/*#Ops*/, 0, 2,  // Results = #3
/* 95924*/        OPC_EmitInteger, MVT::i32, PPC::VSFRCRegClassID,
/* 95927*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::f64, 2/*#Ops*/, 1, 4,  // Results = #5
/* 95935*/        OPC_EmitNode1, TARGET_VAL(PPC::XSMINDP), 0,
                      MVT::f64, 2/*#Ops*/, 3, 5,  // Results = #6
/* 95943*/        OPC_EmitInteger, MVT::i32, PPC::VSSRCRegClassID,
/* 95946*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::f32, 2/*#Ops*/, 6, 7, 
                  // Src: (fminnum_ieee:{ *:[f32] } f32:{ *:[f32] }:$A, (fcanonicalize:{ *:[f32] } f32:{ *:[f32] }:$B)) - Complexity = 406
                  // Dst: (COPY_TO_REGCLASS:{ *:[f32] } (XSMINDP:{ *:[f64] } (COPY_TO_REGCLASS:{ *:[f64] } ?:{ *:[f32] }:$A, VSFRC:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[f64] } ?:{ *:[f32] }:$B, VSFRC:{ *:[i32] })), VSSRC:{ *:[i32] })
/* 95954*/      /*Scope*/ 60, /*->96015*/
/* 95955*/        OPC_RecordChild1, // #1 = $B
/* 95956*/        OPC_SwitchType /*2 cases */, 10, MVT::f64,// ->95969
/* 95959*/          OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 95961*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XSMINDP), 0,
                        MVT::f64, 2/*#Ops*/, 0, 1, 
                    // Src: (fminnum_ieee:{ *:[f64] } f64:{ *:[f64] }:$A, f64:{ *:[f64] }:$B) - Complexity = 403
                    // Dst: (XSMINDP:{ *:[f64] } ?:{ *:[f64] }:$A, ?:{ *:[f64] }:$B)
/* 95969*/        /*SwitchType*/ 43, MVT::f32,// ->96014
/* 95971*/          OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 95973*/          OPC_EmitInteger, MVT::i32, PPC::VSFRCRegClassID,
/* 95976*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::f64, 2/*#Ops*/, 0, 2,  // Results = #3
/* 95984*/          OPC_EmitInteger, MVT::i32, PPC::VSFRCRegClassID,
/* 95987*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::f64, 2/*#Ops*/, 1, 4,  // Results = #5
/* 95995*/          OPC_EmitNode1, TARGET_VAL(PPC::XSMINDP), 0,
                        MVT::f64, 2/*#Ops*/, 3, 5,  // Results = #6
/* 96003*/          OPC_EmitInteger, MVT::i32, PPC::VSSRCRegClassID,
/* 96006*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::f32, 2/*#Ops*/, 6, 7, 
                    // Src: (fminnum_ieee:{ *:[f32] } f32:{ *:[f32] }:$A, f32:{ *:[f32] }:$B) - Complexity = 403
                    // Dst: (COPY_TO_REGCLASS:{ *:[f32] } (XSMINDP:{ *:[f64] } (COPY_TO_REGCLASS:{ *:[f64] } ?:{ *:[f32] }:$A, VSFRC:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[f64] } ?:{ *:[f32] }:$B, VSFRC:{ *:[i32] })), VSSRC:{ *:[i32] })
/* 96014*/        0, // EndSwitchType
/* 96015*/      0, /*End of Scope*/
/* 96016*/    0, /*End of Scope*/
/* 96017*/  /*SwitchOpcode*/ 25|128,2/*281*/, TARGET_VAL(ISD::FMAXNUM_IEEE),// ->96302
/* 96021*/    OPC_Scope, 88, /*->96111*/ // 4 children in Scope
/* 96023*/      OPC_MoveChild0,
/* 96024*/      OPC_CheckOpcode, TARGET_VAL(ISD::FCANONICALIZE),
/* 96027*/      OPC_RecordChild0, // #0 = $A
/* 96028*/      OPC_MoveParent,
/* 96029*/      OPC_Scope, 65, /*->96096*/ // 2 children in Scope
/* 96031*/        OPC_MoveChild1,
/* 96032*/        OPC_CheckOpcode, TARGET_VAL(ISD::FCANONICALIZE),
/* 96035*/        OPC_RecordChild0, // #1 = $B
/* 96036*/        OPC_MoveParent,
/* 96037*/        OPC_SwitchType /*2 cases */, 10, MVT::f64,// ->96050
/* 96040*/          OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 96042*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XSMAXDP), 0,
                        MVT::f64, 2/*#Ops*/, 0, 1, 
                    // Src: (fmaxnum_ieee:{ *:[f64] } (fcanonicalize:{ *:[f64] } f64:{ *:[f64] }:$A), (fcanonicalize:{ *:[f64] } f64:{ *:[f64] }:$B)) - Complexity = 409
                    // Dst: (XSMAXDP:{ *:[f64] } ?:{ *:[f64] }:$A, ?:{ *:[f64] }:$B)
/* 96050*/        /*SwitchType*/ 43, MVT::f32,// ->96095
/* 96052*/          OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 96054*/          OPC_EmitInteger, MVT::i32, PPC::VSFRCRegClassID,
/* 96057*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::f64, 2/*#Ops*/, 0, 2,  // Results = #3
/* 96065*/          OPC_EmitInteger, MVT::i32, PPC::VSFRCRegClassID,
/* 96068*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::f64, 2/*#Ops*/, 1, 4,  // Results = #5
/* 96076*/          OPC_EmitNode1, TARGET_VAL(PPC::XSMAXDP), 0,
                        MVT::f64, 2/*#Ops*/, 3, 5,  // Results = #6
/* 96084*/          OPC_EmitInteger, MVT::i32, PPC::VSSRCRegClassID,
/* 96087*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::f32, 2/*#Ops*/, 6, 7, 
                    // Src: (fmaxnum_ieee:{ *:[f32] } (fcanonicalize:{ *:[f32] } f32:{ *:[f32] }:$A), (fcanonicalize:{ *:[f32] } f32:{ *:[f32] }:$B)) - Complexity = 409
                    // Dst: (COPY_TO_REGCLASS:{ *:[f32] } (XSMAXDP:{ *:[f64] } (COPY_TO_REGCLASS:{ *:[f64] } ?:{ *:[f32] }:$A, VSFRC:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[f64] } ?:{ *:[f32] }:$B, VSFRC:{ *:[i32] })), VSSRC:{ *:[i32] })
/* 96095*/        0, // EndSwitchType
/* 96096*/      /*Scope*/ 13, /*->96110*/
/* 96097*/        OPC_RecordChild1, // #1 = $B
/* 96098*/        OPC_CheckType, MVT::f64,
/* 96100*/        OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 96102*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::XSMAXDP), 0,
                      MVT::f64, 2/*#Ops*/, 0, 1, 
                  // Src: (fmaxnum_ieee:{ *:[f64] } (fcanonicalize:{ *:[f64] } f64:{ *:[f64] }:$A), f64:{ *:[f64] }:$B) - Complexity = 406
                  // Dst: (XSMAXDP:{ *:[f64] } ?:{ *:[f64] }:$A, ?:{ *:[f64] }:$B)
/* 96110*/      0, /*End of Scope*/
/* 96111*/    /*Scope*/ 19, /*->96131*/
/* 96112*/      OPC_RecordChild0, // #0 = $A
/* 96113*/      OPC_MoveChild1,
/* 96114*/      OPC_CheckOpcode, TARGET_VAL(ISD::FCANONICALIZE),
/* 96117*/      OPC_RecordChild0, // #1 = $B
/* 96118*/      OPC_MoveParent,
/* 96119*/      OPC_CheckType, MVT::f64,
/* 96121*/      OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 96123*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XSMAXDP), 0,
                    MVT::f64, 2/*#Ops*/, 0, 1, 
                // Src: (fmaxnum_ieee:{ *:[f64] } f64:{ *:[f64] }:$A, (fcanonicalize:{ *:[f64] } f64:{ *:[f64] }:$B)) - Complexity = 406
                // Dst: (XSMAXDP:{ *:[f64] } ?:{ *:[f64] }:$A, ?:{ *:[f64] }:$B)
/* 96131*/    /*Scope*/ 52, /*->96184*/
/* 96132*/      OPC_MoveChild0,
/* 96133*/      OPC_CheckOpcode, TARGET_VAL(ISD::FCANONICALIZE),
/* 96136*/      OPC_RecordChild0, // #0 = $A
/* 96137*/      OPC_MoveParent,
/* 96138*/      OPC_RecordChild1, // #1 = $B
/* 96139*/      OPC_CheckType, MVT::f32,
/* 96141*/      OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 96143*/      OPC_EmitInteger, MVT::i32, PPC::VSFRCRegClassID,
/* 96146*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::f64, 2/*#Ops*/, 0, 2,  // Results = #3
/* 96154*/      OPC_EmitInteger, MVT::i32, PPC::VSFRCRegClassID,
/* 96157*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::f64, 2/*#Ops*/, 1, 4,  // Results = #5
/* 96165*/      OPC_EmitNode1, TARGET_VAL(PPC::XSMAXDP), 0,
                    MVT::f64, 2/*#Ops*/, 3, 5,  // Results = #6
/* 96173*/      OPC_EmitInteger, MVT::i32, PPC::VSSRCRegClassID,
/* 96176*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::f32, 2/*#Ops*/, 6, 7, 
                // Src: (fmaxnum_ieee:{ *:[f32] } (fcanonicalize:{ *:[f32] } f32:{ *:[f32] }:$A), f32:{ *:[f32] }:$B) - Complexity = 406
                // Dst: (COPY_TO_REGCLASS:{ *:[f32] } (XSMAXDP:{ *:[f64] } (COPY_TO_REGCLASS:{ *:[f64] } ?:{ *:[f32] }:$A, VSFRC:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[f64] } ?:{ *:[f32] }:$B, VSFRC:{ *:[i32] })), VSSRC:{ *:[i32] })
/* 96184*/    /*Scope*/ 116, /*->96301*/
/* 96185*/      OPC_RecordChild0, // #0 = $A
/* 96186*/      OPC_Scope, 51, /*->96239*/ // 2 children in Scope
/* 96188*/        OPC_MoveChild1,
/* 96189*/        OPC_CheckOpcode, TARGET_VAL(ISD::FCANONICALIZE),
/* 96192*/        OPC_RecordChild0, // #1 = $B
/* 96193*/        OPC_MoveParent,
/* 96194*/        OPC_CheckType, MVT::f32,
/* 96196*/        OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 96198*/        OPC_EmitInteger, MVT::i32, PPC::VSFRCRegClassID,
/* 96201*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::f64, 2/*#Ops*/, 0, 2,  // Results = #3
/* 96209*/        OPC_EmitInteger, MVT::i32, PPC::VSFRCRegClassID,
/* 96212*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::f64, 2/*#Ops*/, 1, 4,  // Results = #5
/* 96220*/        OPC_EmitNode1, TARGET_VAL(PPC::XSMAXDP), 0,
                      MVT::f64, 2/*#Ops*/, 3, 5,  // Results = #6
/* 96228*/        OPC_EmitInteger, MVT::i32, PPC::VSSRCRegClassID,
/* 96231*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::f32, 2/*#Ops*/, 6, 7, 
                  // Src: (fmaxnum_ieee:{ *:[f32] } f32:{ *:[f32] }:$A, (fcanonicalize:{ *:[f32] } f32:{ *:[f32] }:$B)) - Complexity = 406
                  // Dst: (COPY_TO_REGCLASS:{ *:[f32] } (XSMAXDP:{ *:[f64] } (COPY_TO_REGCLASS:{ *:[f64] } ?:{ *:[f32] }:$A, VSFRC:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[f64] } ?:{ *:[f32] }:$B, VSFRC:{ *:[i32] })), VSSRC:{ *:[i32] })
/* 96239*/      /*Scope*/ 60, /*->96300*/
/* 96240*/        OPC_RecordChild1, // #1 = $B
/* 96241*/        OPC_SwitchType /*2 cases */, 10, MVT::f64,// ->96254
/* 96244*/          OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 96246*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XSMAXDP), 0,
                        MVT::f64, 2/*#Ops*/, 0, 1, 
                    // Src: (fmaxnum_ieee:{ *:[f64] } f64:{ *:[f64] }:$A, f64:{ *:[f64] }:$B) - Complexity = 403
                    // Dst: (XSMAXDP:{ *:[f64] } ?:{ *:[f64] }:$A, ?:{ *:[f64] }:$B)
/* 96254*/        /*SwitchType*/ 43, MVT::f32,// ->96299
/* 96256*/          OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 96258*/          OPC_EmitInteger, MVT::i32, PPC::VSFRCRegClassID,
/* 96261*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::f64, 2/*#Ops*/, 0, 2,  // Results = #3
/* 96269*/          OPC_EmitInteger, MVT::i32, PPC::VSFRCRegClassID,
/* 96272*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::f64, 2/*#Ops*/, 1, 4,  // Results = #5
/* 96280*/          OPC_EmitNode1, TARGET_VAL(PPC::XSMAXDP), 0,
                        MVT::f64, 2/*#Ops*/, 3, 5,  // Results = #6
/* 96288*/          OPC_EmitInteger, MVT::i32, PPC::VSSRCRegClassID,
/* 96291*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::f32, 2/*#Ops*/, 6, 7, 
                    // Src: (fmaxnum_ieee:{ *:[f32] } f32:{ *:[f32] }:$A, f32:{ *:[f32] }:$B) - Complexity = 403
                    // Dst: (COPY_TO_REGCLASS:{ *:[f32] } (XSMAXDP:{ *:[f64] } (COPY_TO_REGCLASS:{ *:[f64] } ?:{ *:[f32] }:$A, VSFRC:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[f64] } ?:{ *:[f32] }:$B, VSFRC:{ *:[i32] })), VSSRC:{ *:[i32] })
/* 96299*/        0, // EndSwitchType
/* 96300*/      0, /*End of Scope*/
/* 96301*/    0, /*End of Scope*/
/* 96302*/  /*SwitchOpcode*/ 49, TARGET_VAL(PPCISD::VEXTS),// ->96354
/* 96305*/    OPC_RecordChild0, // #0 = $A
/* 96306*/    OPC_Scope, 22, /*->96330*/ // 2 children in Scope
/* 96308*/      OPC_CheckChild1Integer, 1, 
/* 96310*/      OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/* 96312*/      OPC_EmitNode1, TARGET_VAL(PPC::VEXTSB2Ds), 0,
                    MVT::f64, 1/*#Ops*/, 0,  // Results = #1
/* 96319*/      OPC_EmitInteger, MVT::i32, PPC::VSFRCRegClassID,
/* 96322*/      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] })
/* 96330*/    /*Scope*/ 22, /*->96353*/
/* 96331*/      OPC_CheckChild1Integer, 2, 
/* 96333*/      OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/* 96335*/      OPC_EmitNode1, TARGET_VAL(PPC::VEXTSH2Ds), 0,
                    MVT::f64, 1/*#Ops*/, 0,  // Results = #1
/* 96342*/      OPC_EmitInteger, MVT::i32, PPC::VSFRCRegClassID,
/* 96345*/      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] })
/* 96353*/    0, /*End of Scope*/
/* 96354*/  /*SwitchOpcode*/ 106|128,5/*746*/, TARGET_VAL(ISD::FMA),// ->97104
/* 96358*/    OPC_Scope, 21, /*->96381*/ // 19 children in Scope
/* 96360*/      OPC_RecordChild0, // #0 = $XA
/* 96361*/      OPC_RecordChild1, // #1 = $XB
/* 96362*/      OPC_MoveChild2,
/* 96363*/      OPC_CheckOpcode, TARGET_VAL(ISD::FNEG),
/* 96366*/      OPC_RecordChild0, // #2 = $XTi
/* 96367*/      OPC_MoveParent,
/* 96368*/      OPC_CheckType, MVT::f64,
/* 96370*/      OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 96372*/      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)
/* 96381*/    /*Scope*/ 21, /*->96403*/
/* 96382*/      OPC_MoveChild0,
/* 96383*/      OPC_CheckOpcode, TARGET_VAL(ISD::FNEG),
/* 96386*/      OPC_RecordChild0, // #0 = $A
/* 96387*/      OPC_MoveParent,
/* 96388*/      OPC_RecordChild1, // #1 = $B
/* 96389*/      OPC_RecordChild2, // #2 = $C
/* 96390*/      OPC_CheckType, MVT::f64,
/* 96392*/      OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 96394*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XSNMSUBADP), 0,
                    MVT::f64, 3/*#Ops*/, 2, 0, 1, 
                // Src: (fma:{ *:[f64] } (fneg:{ *:[f64] } f64:{ *:[f64] }:$A), f64:{ *:[f64] }:$B, f64:{ *:[f64] }:$C) - Complexity = 406
                // Dst: (XSNMSUBADP:{ *:[f64] } ?:{ *:[f64] }:$C, ?:{ *:[f64] }:$A, ?:{ *:[f64] }:$B)
/* 96403*/    /*Scope*/ 45, /*->96449*/
/* 96404*/      OPC_RecordChild0, // #0 = $A
/* 96405*/      OPC_Scope, 20, /*->96427*/ // 2 children in Scope
/* 96407*/        OPC_MoveChild1,
/* 96408*/        OPC_CheckOpcode, TARGET_VAL(ISD::FNEG),
/* 96411*/        OPC_RecordChild0, // #1 = $B
/* 96412*/        OPC_MoveParent,
/* 96413*/        OPC_RecordChild2, // #2 = $C
/* 96414*/        OPC_CheckType, MVT::f64,
/* 96416*/        OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 96418*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::XSNMSUBADP), 0,
                      MVT::f64, 3/*#Ops*/, 2, 0, 1, 
                  // Src: (fma:{ *:[f64] } f64:{ *:[f64] }:$A, (fneg:{ *:[f64] } f64:{ *:[f64] }:$B), f64:{ *:[f64] }:$C) - Complexity = 406
                  // Dst: (XSNMSUBADP:{ *:[f64] } ?:{ *:[f64] }:$C, ?:{ *:[f64] }:$A, ?:{ *:[f64] }:$B)
/* 96427*/      /*Scope*/ 20, /*->96448*/
/* 96428*/        OPC_RecordChild1, // #1 = $XB
/* 96429*/        OPC_MoveChild2,
/* 96430*/        OPC_CheckOpcode, TARGET_VAL(ISD::FNEG),
/* 96433*/        OPC_RecordChild0, // #2 = $XTi
/* 96434*/        OPC_MoveParent,
/* 96435*/        OPC_CheckType, MVT::f32,
/* 96437*/        OPC_CheckPatternPredicate, 10, // (PPCSubTarget->hasP8Vector())
/* 96439*/        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)
/* 96448*/      0, /*End of Scope*/
/* 96449*/    /*Scope*/ 21, /*->96471*/
/* 96450*/      OPC_MoveChild0,
/* 96451*/      OPC_CheckOpcode, TARGET_VAL(ISD::FNEG),
/* 96454*/      OPC_RecordChild0, // #0 = $A
/* 96455*/      OPC_MoveParent,
/* 96456*/      OPC_RecordChild1, // #1 = $B
/* 96457*/      OPC_RecordChild2, // #2 = $C
/* 96458*/      OPC_CheckType, MVT::f32,
/* 96460*/      OPC_CheckPatternPredicate, 10, // (PPCSubTarget->hasP8Vector())
/* 96462*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XSNMSUBASP), 0,
                    MVT::f32, 3/*#Ops*/, 2, 0, 1, 
                // Src: (fma:{ *:[f32] } (fneg:{ *:[f32] } f32:{ *:[f32] }:$A), f32:{ *:[f32] }:$B, f32:{ *:[f32] }:$C) - Complexity = 406
                // Dst: (XSNMSUBASP:{ *:[f32] } ?:{ *:[f32] }:$C, ?:{ *:[f32] }:$A, ?:{ *:[f32] }:$B)
/* 96471*/    /*Scope*/ 45, /*->96517*/
/* 96472*/      OPC_RecordChild0, // #0 = $A
/* 96473*/      OPC_Scope, 20, /*->96495*/ // 2 children in Scope
/* 96475*/        OPC_MoveChild1,
/* 96476*/        OPC_CheckOpcode, TARGET_VAL(ISD::FNEG),
/* 96479*/        OPC_RecordChild0, // #1 = $B
/* 96480*/        OPC_MoveParent,
/* 96481*/        OPC_RecordChild2, // #2 = $C
/* 96482*/        OPC_CheckType, MVT::f32,
/* 96484*/        OPC_CheckPatternPredicate, 10, // (PPCSubTarget->hasP8Vector())
/* 96486*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::XSNMSUBASP), 0,
                      MVT::f32, 3/*#Ops*/, 2, 0, 1, 
                  // Src: (fma:{ *:[f32] } f32:{ *:[f32] }:$A, (fneg:{ *:[f32] } f32:{ *:[f32] }:$B), f32:{ *:[f32] }:$C) - Complexity = 406
                  // Dst: (XSNMSUBASP:{ *:[f32] } ?:{ *:[f32] }:$C, ?:{ *:[f32] }:$A, ?:{ *:[f32] }:$B)
/* 96495*/      /*Scope*/ 20, /*->96516*/
/* 96496*/        OPC_RecordChild1, // #1 = $vB
/* 96497*/        OPC_MoveChild2,
/* 96498*/        OPC_CheckOpcode, TARGET_VAL(ISD::FNEG),
/* 96501*/        OPC_RecordChild0, // #2 = $vTi
/* 96502*/        OPC_MoveParent,
/* 96503*/        OPC_CheckType, MVT::f128,
/* 96505*/        OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/* 96507*/        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)
/* 96516*/      0, /*End of Scope*/
/* 96517*/    /*Scope*/ 21, /*->96539*/
/* 96518*/      OPC_MoveChild0,
/* 96519*/      OPC_CheckOpcode, TARGET_VAL(ISD::FNEG),
/* 96522*/      OPC_RecordChild0, // #0 = $A
/* 96523*/      OPC_MoveParent,
/* 96524*/      OPC_RecordChild1, // #1 = $B
/* 96525*/      OPC_RecordChild2, // #2 = $C
/* 96526*/      OPC_CheckType, MVT::f128,
/* 96528*/      OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/* 96530*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XSNMSUBQP), 0,
                    MVT::f128, 3/*#Ops*/, 2, 0, 1, 
                // Src: (fma:{ *:[f128] } (fneg:{ *:[f128] } f128:{ *:[f128] }:$A), f128:{ *:[f128] }:$B, f128:{ *:[f128] }:$C) - Complexity = 406
                // Dst: (XSNMSUBQP:{ *:[f128] } ?:{ *:[f128] }:$C, ?:{ *:[f128] }:$A, ?:{ *:[f128] }:$B)
/* 96539*/    /*Scope*/ 106, /*->96646*/
/* 96540*/      OPC_RecordChild0, // #0 = $A
/* 96541*/      OPC_Scope, 20, /*->96563*/ // 2 children in Scope
/* 96543*/        OPC_MoveChild1,
/* 96544*/        OPC_CheckOpcode, TARGET_VAL(ISD::FNEG),
/* 96547*/        OPC_RecordChild0, // #1 = $B
/* 96548*/        OPC_MoveParent,
/* 96549*/        OPC_RecordChild2, // #2 = $C
/* 96550*/        OPC_CheckType, MVT::f128,
/* 96552*/        OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/* 96554*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::XSNMSUBQP), 0,
                      MVT::f128, 3/*#Ops*/, 2, 0, 1, 
                  // Src: (fma:{ *:[f128] } f128:{ *:[f128] }:$A, (fneg:{ *:[f128] } f128:{ *:[f128] }:$B), f128:{ *:[f128] }:$C) - Complexity = 406
                  // Dst: (XSNMSUBQP:{ *:[f128] } ?:{ *:[f128] }:$C, ?:{ *:[f128] }:$A, ?:{ *:[f128] }:$B)
/* 96563*/      /*Scope*/ 81, /*->96645*/
/* 96564*/        OPC_RecordChild1, // #1 = $XB
/* 96565*/        OPC_Scope, 42, /*->96609*/ // 2 children in Scope
/* 96567*/          OPC_RecordChild2, // #2 = $XTi
/* 96568*/          OPC_SwitchType /*3 cases */, 11, MVT::f64,// ->96582
/* 96571*/            OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 96573*/            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)
/* 96582*/          /*SwitchType*/ 11, MVT::f32,// ->96595
/* 96584*/            OPC_CheckPatternPredicate, 10, // (PPCSubTarget->hasP8Vector())
/* 96586*/            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)
/* 96595*/          /*SwitchType*/ 11, MVT::f128,// ->96608
/* 96597*/            OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/* 96599*/            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)
/* 96608*/          0, // EndSwitchType
/* 96609*/        /*Scope*/ 34, /*->96644*/
/* 96610*/          OPC_MoveChild2,
/* 96611*/          OPC_CheckOpcode, TARGET_VAL(ISD::FNEG),
/* 96614*/          OPC_RecordChild0, // #2 = $FRB
/* 96615*/          OPC_MoveParent,
/* 96616*/          OPC_SwitchType /*2 cases */, 11, MVT::f64,// ->96630
/* 96619*/            OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 96621*/            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)
/* 96630*/          /*SwitchType*/ 11, MVT::f32,// ->96643
/* 96632*/            OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 96634*/            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)
/* 96643*/          0, // EndSwitchType
/* 96644*/        0, /*End of Scope*/
/* 96645*/      0, /*End of Scope*/
/* 96646*/    /*Scope*/ 21, /*->96668*/
/* 96647*/      OPC_MoveChild0,
/* 96648*/      OPC_CheckOpcode, TARGET_VAL(ISD::FNEG),
/* 96651*/      OPC_RecordChild0, // #0 = $A
/* 96652*/      OPC_MoveParent,
/* 96653*/      OPC_RecordChild1, // #1 = $C
/* 96654*/      OPC_RecordChild2, // #2 = $B
/* 96655*/      OPC_CheckType, MVT::f64,
/* 96657*/      OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 96659*/      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)
/* 96668*/    /*Scope*/ 21, /*->96690*/
/* 96669*/      OPC_RecordChild0, // #0 = $A
/* 96670*/      OPC_MoveChild1,
/* 96671*/      OPC_CheckOpcode, TARGET_VAL(ISD::FNEG),
/* 96674*/      OPC_RecordChild0, // #1 = $C
/* 96675*/      OPC_MoveParent,
/* 96676*/      OPC_RecordChild2, // #2 = $B
/* 96677*/      OPC_CheckType, MVT::f64,
/* 96679*/      OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 96681*/      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)
/* 96690*/    /*Scope*/ 21, /*->96712*/
/* 96691*/      OPC_MoveChild0,
/* 96692*/      OPC_CheckOpcode, TARGET_VAL(ISD::FNEG),
/* 96695*/      OPC_RecordChild0, // #0 = $A
/* 96696*/      OPC_MoveParent,
/* 96697*/      OPC_RecordChild1, // #1 = $C
/* 96698*/      OPC_RecordChild2, // #2 = $B
/* 96699*/      OPC_CheckType, MVT::f32,
/* 96701*/      OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 96703*/      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)
/* 96712*/    /*Scope*/ 93, /*->96806*/
/* 96713*/      OPC_RecordChild0, // #0 = $A
/* 96714*/      OPC_Scope, 20, /*->96736*/ // 2 children in Scope
/* 96716*/        OPC_MoveChild1,
/* 96717*/        OPC_CheckOpcode, TARGET_VAL(ISD::FNEG),
/* 96720*/        OPC_RecordChild0, // #1 = $C
/* 96721*/        OPC_MoveParent,
/* 96722*/        OPC_RecordChild2, // #2 = $B
/* 96723*/        OPC_CheckType, MVT::f32,
/* 96725*/        OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 96727*/        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)
/* 96736*/      /*Scope*/ 68, /*->96805*/
/* 96737*/        OPC_RecordChild1, // #1 = $FRC
/* 96738*/        OPC_Scope, 29, /*->96769*/ // 2 children in Scope
/* 96740*/          OPC_RecordChild2, // #2 = $FRB
/* 96741*/          OPC_SwitchType /*2 cases */, 11, MVT::f64,// ->96755
/* 96744*/            OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 96746*/            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)
/* 96755*/          /*SwitchType*/ 11, MVT::f32,// ->96768
/* 96757*/            OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 96759*/            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)
/* 96768*/          0, // EndSwitchType
/* 96769*/        /*Scope*/ 34, /*->96804*/
/* 96770*/          OPC_MoveChild2,
/* 96771*/          OPC_CheckOpcode, TARGET_VAL(ISD::FNEG),
/* 96774*/          OPC_RecordChild0, // #2 = $XTi
/* 96775*/          OPC_MoveParent,
/* 96776*/          OPC_SwitchType /*2 cases */, 11, MVT::v2f64,// ->96790
/* 96779*/            OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 96781*/            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)
/* 96790*/          /*SwitchType*/ 11, MVT::v4f32,// ->96803
/* 96792*/            OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 96794*/            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)
/* 96803*/          0, // EndSwitchType
/* 96804*/        0, /*End of Scope*/
/* 96805*/      0, /*End of Scope*/
/* 96806*/    /*Scope*/ 21, /*->96828*/
/* 96807*/      OPC_MoveChild0,
/* 96808*/      OPC_CheckOpcode, TARGET_VAL(ISD::FNEG),
/* 96811*/      OPC_RecordChild0, // #0 = $A
/* 96812*/      OPC_MoveParent,
/* 96813*/      OPC_RecordChild1, // #1 = $B
/* 96814*/      OPC_RecordChild2, // #2 = $C
/* 96815*/      OPC_CheckType, MVT::v2f64,
/* 96817*/      OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 96819*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XVNMSUBADP), 0,
                    MVT::v2f64, 3/*#Ops*/, 2, 0, 1, 
                // Src: (fma:{ *:[v2f64] } (fneg:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$A), v2f64:{ *:[v2f64] }:$B, v2f64:{ *:[v2f64] }:$C) - Complexity = 406
                // Dst: (XVNMSUBADP:{ *:[v2f64] } ?:{ *:[v2f64] }:$C, ?:{ *:[v2f64] }:$A, ?:{ *:[v2f64] }:$B)
/* 96828*/    /*Scope*/ 21, /*->96850*/
/* 96829*/      OPC_RecordChild0, // #0 = $A
/* 96830*/      OPC_MoveChild1,
/* 96831*/      OPC_CheckOpcode, TARGET_VAL(ISD::FNEG),
/* 96834*/      OPC_RecordChild0, // #1 = $B
/* 96835*/      OPC_MoveParent,
/* 96836*/      OPC_RecordChild2, // #2 = $C
/* 96837*/      OPC_CheckType, MVT::v2f64,
/* 96839*/      OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 96841*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XVNMSUBADP), 0,
                    MVT::v2f64, 3/*#Ops*/, 2, 0, 1, 
                // Src: (fma:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$A, (fneg:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$B), v2f64:{ *:[v2f64] }:$C) - Complexity = 406
                // Dst: (XVNMSUBADP:{ *:[v2f64] } ?:{ *:[v2f64] }:$C, ?:{ *:[v2f64] }:$A, ?:{ *:[v2f64] }:$B)
/* 96850*/    /*Scope*/ 21, /*->96872*/
/* 96851*/      OPC_MoveChild0,
/* 96852*/      OPC_CheckOpcode, TARGET_VAL(ISD::FNEG),
/* 96855*/      OPC_RecordChild0, // #0 = $A
/* 96856*/      OPC_MoveParent,
/* 96857*/      OPC_RecordChild1, // #1 = $B
/* 96858*/      OPC_RecordChild2, // #2 = $C
/* 96859*/      OPC_CheckType, MVT::v4f32,
/* 96861*/      OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 96863*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XVNMSUBASP), 0,
                    MVT::v4f32, 3/*#Ops*/, 2, 0, 1, 
                // Src: (fma:{ *:[v4f32] } (fneg:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$A), v4f32:{ *:[v4f32] }:$B, v4f32:{ *:[v4f32] }:$C) - Complexity = 406
                // Dst: (XVNMSUBASP:{ *:[v4f32] } ?:{ *:[v4f32] }:$C, ?:{ *:[v4f32] }:$A, ?:{ *:[v4f32] }:$B)
/* 96872*/    /*Scope*/ 93, /*->96966*/
/* 96873*/      OPC_RecordChild0, // #0 = $A
/* 96874*/      OPC_Scope, 20, /*->96896*/ // 2 children in Scope
/* 96876*/        OPC_MoveChild1,
/* 96877*/        OPC_CheckOpcode, TARGET_VAL(ISD::FNEG),
/* 96880*/        OPC_RecordChild0, // #1 = $B
/* 96881*/        OPC_MoveParent,
/* 96882*/        OPC_RecordChild2, // #2 = $C
/* 96883*/        OPC_CheckType, MVT::v4f32,
/* 96885*/        OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 96887*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::XVNMSUBASP), 0,
                      MVT::v4f32, 3/*#Ops*/, 2, 0, 1, 
                  // Src: (fma:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$A, (fneg:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$B), v4f32:{ *:[v4f32] }:$C) - Complexity = 406
                  // Dst: (XVNMSUBASP:{ *:[v4f32] } ?:{ *:[v4f32] }:$C, ?:{ *:[v4f32] }:$A, ?:{ *:[v4f32] }:$B)
/* 96896*/      /*Scope*/ 68, /*->96965*/
/* 96897*/        OPC_RecordChild1, // #1 = $XB
/* 96898*/        OPC_Scope, 29, /*->96929*/ // 2 children in Scope
/* 96900*/          OPC_RecordChild2, // #2 = $XTi
/* 96901*/          OPC_SwitchType /*2 cases */, 11, MVT::v2f64,// ->96915
/* 96904*/            OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 96906*/            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)
/* 96915*/          /*SwitchType*/ 11, MVT::v4f32,// ->96928
/* 96917*/            OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 96919*/            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)
/* 96928*/          0, // EndSwitchType
/* 96929*/        /*Scope*/ 34, /*->96964*/
/* 96930*/          OPC_MoveChild2,
/* 96931*/          OPC_CheckOpcode, TARGET_VAL(ISD::FNEG),
/* 96934*/          OPC_RecordChild0, // #2 = $FRB
/* 96935*/          OPC_MoveParent,
/* 96936*/          OPC_SwitchType /*2 cases */, 11, MVT::v4f64,// ->96950
/* 96939*/            OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 96941*/            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)
/* 96950*/          /*SwitchType*/ 11, MVT::v4f32,// ->96963
/* 96952*/            OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 96954*/            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)
/* 96963*/          0, // EndSwitchType
/* 96964*/        0, /*End of Scope*/
/* 96965*/      0, /*End of Scope*/
/* 96966*/    /*Scope*/ 21, /*->96988*/
/* 96967*/      OPC_MoveChild0,
/* 96968*/      OPC_CheckOpcode, TARGET_VAL(ISD::FNEG),
/* 96971*/      OPC_RecordChild0, // #0 = $A
/* 96972*/      OPC_MoveParent,
/* 96973*/      OPC_RecordChild1, // #1 = $C
/* 96974*/      OPC_RecordChild2, // #2 = $B
/* 96975*/      OPC_CheckType, MVT::v4f64,
/* 96977*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 96979*/      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)
/* 96988*/    /*Scope*/ 21, /*->97010*/
/* 96989*/      OPC_RecordChild0, // #0 = $A
/* 96990*/      OPC_MoveChild1,
/* 96991*/      OPC_CheckOpcode, TARGET_VAL(ISD::FNEG),
/* 96994*/      OPC_RecordChild0, // #1 = $C
/* 96995*/      OPC_MoveParent,
/* 96996*/      OPC_RecordChild2, // #2 = $B
/* 96997*/      OPC_CheckType, MVT::v4f64,
/* 96999*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 97001*/      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)
/* 97010*/    /*Scope*/ 21, /*->97032*/
/* 97011*/      OPC_MoveChild0,
/* 97012*/      OPC_CheckOpcode, TARGET_VAL(ISD::FNEG),
/* 97015*/      OPC_RecordChild0, // #0 = $A
/* 97016*/      OPC_MoveParent,
/* 97017*/      OPC_RecordChild1, // #1 = $C
/* 97018*/      OPC_RecordChild2, // #2 = $B
/* 97019*/      OPC_CheckType, MVT::v4f32,
/* 97021*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 97023*/      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)
/* 97032*/    /*Scope*/ 70, /*->97103*/
/* 97033*/      OPC_RecordChild0, // #0 = $A
/* 97034*/      OPC_Scope, 20, /*->97056*/ // 2 children in Scope
/* 97036*/        OPC_MoveChild1,
/* 97037*/        OPC_CheckOpcode, TARGET_VAL(ISD::FNEG),
/* 97040*/        OPC_RecordChild0, // #1 = $C
/* 97041*/        OPC_MoveParent,
/* 97042*/        OPC_RecordChild2, // #2 = $B
/* 97043*/        OPC_CheckType, MVT::v4f32,
/* 97045*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 97047*/        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)
/* 97056*/      /*Scope*/ 45, /*->97102*/
/* 97057*/        OPC_RecordChild1, // #1 = $vC
/* 97058*/        OPC_RecordChild2, // #2 = $vB
/* 97059*/        OPC_SwitchType /*2 cases */, 26, MVT::v4f32,// ->97088
/* 97062*/          OPC_Scope, 11, /*->97075*/ // 2 children in Scope
/* 97064*/            OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 97066*/            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)
/* 97075*/          /*Scope*/ 11, /*->97087*/
/* 97076*/            OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 97078*/            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)
/* 97087*/          0, /*End of Scope*/
/* 97088*/        /*SwitchType*/ 11, MVT::v4f64,// ->97101
/* 97090*/          OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 97092*/          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)
/* 97101*/        0, // EndSwitchType
/* 97102*/      0, /*End of Scope*/
/* 97103*/    0, /*End of Scope*/
/* 97104*/  /*SwitchOpcode*/ 24, TARGET_VAL(ISD::ConstantFP),// ->97131
/* 97107*/    OPC_CheckPredicate, 35, // Predicate_fpimm0
/* 97109*/    OPC_SwitchType /*2 cases */, 8, MVT::f64,// ->97120
/* 97112*/      OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 97114*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XXLXORdpz), 0,
                    MVT::f64, 0/*#Ops*/, 
                // Src: (fpimm:{ *:[f64] })<<P:Predicate_fpimm0>> - Complexity = 404
                // Dst: (XXLXORdpz:{ *:[f64] })
/* 97120*/    /*SwitchType*/ 8, MVT::f32,// ->97130
/* 97122*/      OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 97124*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XXLXORspz), 0,
                    MVT::f32, 0/*#Ops*/, 
                // Src: (fpimm:{ *:[f32] })<<P:Predicate_fpimm0>> - Complexity = 404
                // Dst: (XXLXORspz:{ *:[f32] })
/* 97130*/    0, // EndSwitchType
/* 97131*/  /*SwitchOpcode*/ 23|128,1/*151*/, TARGET_VAL(ISD::FADD),// ->97286
/* 97135*/    OPC_RecordChild0, // #0 = $XA
/* 97136*/    OPC_RecordChild1, // #1 = $XB
/* 97137*/    OPC_SwitchType /*6 cases */, 35, MVT::f64,// ->97175
/* 97140*/      OPC_Scope, 10, /*->97152*/ // 3 children in Scope
/* 97142*/        OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 97144*/        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)
/* 97152*/      /*Scope*/ 10, /*->97163*/
/* 97153*/        OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 97155*/        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)
/* 97163*/      /*Scope*/ 10, /*->97174*/
/* 97164*/        OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 97166*/        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)
/* 97174*/      0, /*End of Scope*/
/* 97175*/    /*SwitchType*/ 35, MVT::f32,// ->97212
/* 97177*/      OPC_Scope, 10, /*->97189*/ // 3 children in Scope
/* 97179*/        OPC_CheckPatternPredicate, 10, // (PPCSubTarget->hasP8Vector())
/* 97181*/        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)
/* 97189*/      /*Scope*/ 10, /*->97200*/
/* 97190*/        OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 97192*/        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)
/* 97200*/      /*Scope*/ 10, /*->97211*/
/* 97201*/        OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 97203*/        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)
/* 97211*/      0, /*End of Scope*/
/* 97212*/    /*SwitchType*/ 10, MVT::f128,// ->97224
/* 97214*/      OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/* 97216*/      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)
/* 97224*/    /*SwitchType*/ 10, MVT::v2f64,// ->97236
/* 97226*/      OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 97228*/      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)
/* 97236*/    /*SwitchType*/ 35, MVT::v4f32,// ->97273
/* 97238*/      OPC_Scope, 10, /*->97250*/ // 3 children in Scope
/* 97240*/        OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 97242*/        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)
/* 97250*/      /*Scope*/ 10, /*->97261*/
/* 97251*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 97253*/        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)
/* 97261*/      /*Scope*/ 10, /*->97272*/
/* 97262*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 97264*/        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)
/* 97272*/      0, /*End of Scope*/
/* 97273*/    /*SwitchType*/ 10, MVT::v4f64,// ->97285
/* 97275*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 97277*/      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)
/* 97285*/    0, // EndSwitchType
/* 97286*/  /*SwitchOpcode*/ 44|128,1/*172*/, TARGET_VAL(ISD::FMUL),// ->97462
/* 97290*/    OPC_RecordChild0, // #0 = $XA
/* 97291*/    OPC_RecordChild1, // #1 = $XB
/* 97292*/    OPC_SwitchType /*6 cases */, 35, MVT::f64,// ->97330
/* 97295*/      OPC_Scope, 10, /*->97307*/ // 3 children in Scope
/* 97297*/        OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 97299*/        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)
/* 97307*/      /*Scope*/ 10, /*->97318*/
/* 97308*/        OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 97310*/        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)
/* 97318*/      /*Scope*/ 10, /*->97329*/
/* 97319*/        OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 97321*/        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)
/* 97329*/      0, /*End of Scope*/
/* 97330*/    /*SwitchType*/ 35, MVT::f32,// ->97367
/* 97332*/      OPC_Scope, 10, /*->97344*/ // 3 children in Scope
/* 97334*/        OPC_CheckPatternPredicate, 10, // (PPCSubTarget->hasP8Vector())
/* 97336*/        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)
/* 97344*/      /*Scope*/ 10, /*->97355*/
/* 97345*/        OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 97347*/        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)
/* 97355*/      /*Scope*/ 10, /*->97366*/
/* 97356*/        OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 97358*/        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)
/* 97366*/      0, /*End of Scope*/
/* 97367*/    /*SwitchType*/ 10, MVT::f128,// ->97379
/* 97369*/      OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/* 97371*/      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)
/* 97379*/    /*SwitchType*/ 10, MVT::v2f64,// ->97391
/* 97381*/      OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 97383*/      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)
/* 97391*/    /*SwitchType*/ 56, MVT::v4f32,// ->97449
/* 97393*/      OPC_Scope, 10, /*->97405*/ // 3 children in Scope
/* 97395*/        OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 97397*/        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)
/* 97405*/      /*Scope*/ 10, /*->97416*/
/* 97406*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 97408*/        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)
/* 97416*/      /*Scope*/ 31, /*->97448*/
/* 97417*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 97419*/        OPC_EmitNode1, TARGET_VAL(PPC::V_SETALLONES), 0,
                      MVT::v4i32, 0/*#Ops*/,  // Results = #2
/* 97425*/        OPC_EmitNode1, TARGET_VAL(PPC::V_SETALLONES), 0,
                      MVT::v4i32, 0/*#Ops*/,  // Results = #3
/* 97431*/        OPC_EmitNode1, TARGET_VAL(PPC::VSLW), 0,
                      MVT::v4i32, 2/*#Ops*/, 2, 3,  // Results = #4
/* 97439*/        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] })))
/* 97448*/      0, /*End of Scope*/
/* 97449*/    /*SwitchType*/ 10, MVT::v4f64,// ->97461
/* 97451*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 97453*/      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)
/* 97461*/    0, // EndSwitchType
/* 97462*/  /*SwitchOpcode*/ 23|128,1/*151*/, TARGET_VAL(ISD::FSUB),// ->97617
/* 97466*/    OPC_RecordChild0, // #0 = $XA
/* 97467*/    OPC_RecordChild1, // #1 = $XB
/* 97468*/    OPC_SwitchType /*6 cases */, 35, MVT::f64,// ->97506
/* 97471*/      OPC_Scope, 10, /*->97483*/ // 3 children in Scope
/* 97473*/        OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 97475*/        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)
/* 97483*/      /*Scope*/ 10, /*->97494*/
/* 97484*/        OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 97486*/        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)
/* 97494*/      /*Scope*/ 10, /*->97505*/
/* 97495*/        OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 97497*/        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)
/* 97505*/      0, /*End of Scope*/
/* 97506*/    /*SwitchType*/ 35, MVT::f32,// ->97543
/* 97508*/      OPC_Scope, 10, /*->97520*/ // 3 children in Scope
/* 97510*/        OPC_CheckPatternPredicate, 10, // (PPCSubTarget->hasP8Vector())
/* 97512*/        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)
/* 97520*/      /*Scope*/ 10, /*->97531*/
/* 97521*/        OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 97523*/        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)
/* 97531*/      /*Scope*/ 10, /*->97542*/
/* 97532*/        OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 97534*/        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)
/* 97542*/      0, /*End of Scope*/
/* 97543*/    /*SwitchType*/ 10, MVT::f128,// ->97555
/* 97545*/      OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/* 97547*/      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)
/* 97555*/    /*SwitchType*/ 10, MVT::v2f64,// ->97567
/* 97557*/      OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 97559*/      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)
/* 97567*/    /*SwitchType*/ 35, MVT::v4f32,// ->97604
/* 97569*/      OPC_Scope, 10, /*->97581*/ // 3 children in Scope
/* 97571*/        OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 97573*/        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)
/* 97581*/      /*Scope*/ 10, /*->97592*/
/* 97582*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 97584*/        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)
/* 97592*/      /*Scope*/ 10, /*->97603*/
/* 97593*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 97595*/        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)
/* 97603*/      0, /*End of Scope*/
/* 97604*/    /*SwitchType*/ 10, MVT::v4f64,// ->97616
/* 97606*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 97608*/      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)
/* 97616*/    0, // EndSwitchType
/* 97617*/  /*SwitchOpcode*/ 114, TARGET_VAL(ISD::FDIV),// ->97734
/* 97620*/    OPC_RecordChild0, // #0 = $XA
/* 97621*/    OPC_RecordChild1, // #1 = $XB
/* 97622*/    OPC_SwitchType /*5 cases */, 35, MVT::f64,// ->97660
/* 97625*/      OPC_Scope, 10, /*->97637*/ // 3 children in Scope
/* 97627*/        OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 97629*/        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)
/* 97637*/      /*Scope*/ 10, /*->97648*/
/* 97638*/        OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 97640*/        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)
/* 97648*/      /*Scope*/ 10, /*->97659*/
/* 97649*/        OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 97651*/        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)
/* 97659*/      0, /*End of Scope*/
/* 97660*/    /*SwitchType*/ 35, MVT::f32,// ->97697
/* 97662*/      OPC_Scope, 10, /*->97674*/ // 3 children in Scope
/* 97664*/        OPC_CheckPatternPredicate, 10, // (PPCSubTarget->hasP8Vector())
/* 97666*/        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)
/* 97674*/      /*Scope*/ 10, /*->97685*/
/* 97675*/        OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 97677*/        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)
/* 97685*/      /*Scope*/ 10, /*->97696*/
/* 97686*/        OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 97688*/        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)
/* 97696*/      0, /*End of Scope*/
/* 97697*/    /*SwitchType*/ 10, MVT::f128,// ->97709
/* 97699*/      OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/* 97701*/      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)
/* 97709*/    /*SwitchType*/ 10, MVT::v2f64,// ->97721
/* 97711*/      OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 97713*/      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)
/* 97721*/    /*SwitchType*/ 10, MVT::v4f32,// ->97733
/* 97723*/      OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 97725*/      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)
/* 97733*/    0, // EndSwitchType
/* 97734*/  /*SwitchOpcode*/ 84, TARGET_VAL(ISD::FSQRT),// ->97821
/* 97737*/    OPC_RecordChild0, // #0 = $XB
/* 97738*/    OPC_SwitchType /*5 cases */, 22, MVT::f64,// ->97763
/* 97741*/      OPC_Scope, 9, /*->97752*/ // 2 children in Scope
/* 97743*/        OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 97745*/        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)
/* 97752*/      /*Scope*/ 9, /*->97762*/
/* 97753*/        OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 97755*/        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)
/* 97762*/      0, /*End of Scope*/
/* 97763*/    /*SwitchType*/ 22, MVT::f32,// ->97787
/* 97765*/      OPC_Scope, 9, /*->97776*/ // 2 children in Scope
/* 97767*/        OPC_CheckPatternPredicate, 10, // (PPCSubTarget->hasP8Vector())
/* 97769*/        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)
/* 97776*/      /*Scope*/ 9, /*->97786*/
/* 97777*/        OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 97779*/        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)
/* 97786*/      0, /*End of Scope*/
/* 97787*/    /*SwitchType*/ 9, MVT::f128,// ->97798
/* 97789*/      OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/* 97791*/      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)
/* 97798*/    /*SwitchType*/ 9, MVT::v2f64,// ->97809
/* 97800*/      OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 97802*/      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)
/* 97809*/    /*SwitchType*/ 9, MVT::v4f32,// ->97820
/* 97811*/      OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 97813*/      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)
/* 97820*/    0, // EndSwitchType
/* 97821*/  /*SwitchOpcode*/ 107, TARGET_VAL(PPCISD::FRE),// ->97931
/* 97824*/    OPC_RecordChild0, // #0 = $XB
/* 97825*/    OPC_SwitchType /*5 cases */, 22, MVT::f64,// ->97850
/* 97828*/      OPC_Scope, 9, /*->97839*/ // 2 children in Scope
/* 97830*/        OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 97832*/        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)
/* 97839*/      /*Scope*/ 9, /*->97849*/
/* 97840*/        OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 97842*/        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)
/* 97849*/      0, /*End of Scope*/
/* 97850*/    /*SwitchType*/ 22, MVT::f32,// ->97874
/* 97852*/      OPC_Scope, 9, /*->97863*/ // 2 children in Scope
/* 97854*/        OPC_CheckPatternPredicate, 10, // (PPCSubTarget->hasP8Vector())
/* 97856*/        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)
/* 97863*/      /*Scope*/ 9, /*->97873*/
/* 97864*/        OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 97866*/        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)
/* 97873*/      0, /*End of Scope*/
/* 97874*/    /*SwitchType*/ 9, MVT::v2f64,// ->97885
/* 97876*/      OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 97878*/      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)
/* 97885*/    /*SwitchType*/ 32, MVT::v4f32,// ->97919
/* 97887*/      OPC_Scope, 9, /*->97898*/ // 3 children in Scope
/* 97889*/        OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 97891*/        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)
/* 97898*/      /*Scope*/ 9, /*->97908*/
/* 97899*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 97901*/        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)
/* 97908*/      /*Scope*/ 9, /*->97918*/
/* 97909*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 97911*/        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)
/* 97918*/      0, /*End of Scope*/
/* 97919*/    /*SwitchType*/ 9, MVT::v4f64,// ->97930
/* 97921*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 97923*/      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)
/* 97930*/    0, // EndSwitchType
/* 97931*/  /*SwitchOpcode*/ 107, TARGET_VAL(PPCISD::FRSQRTE),// ->98041
/* 97934*/    OPC_RecordChild0, // #0 = $XB
/* 97935*/    OPC_SwitchType /*5 cases */, 22, MVT::f64,// ->97960
/* 97938*/      OPC_Scope, 9, /*->97949*/ // 2 children in Scope
/* 97940*/        OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 97942*/        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)
/* 97949*/      /*Scope*/ 9, /*->97959*/
/* 97950*/        OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 97952*/        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)
/* 97959*/      0, /*End of Scope*/
/* 97960*/    /*SwitchType*/ 22, MVT::f32,// ->97984
/* 97962*/      OPC_Scope, 9, /*->97973*/ // 2 children in Scope
/* 97964*/        OPC_CheckPatternPredicate, 10, // (PPCSubTarget->hasP8Vector())
/* 97966*/        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)
/* 97973*/      /*Scope*/ 9, /*->97983*/
/* 97974*/        OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 97976*/        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)
/* 97983*/      0, /*End of Scope*/
/* 97984*/    /*SwitchType*/ 9, MVT::v2f64,// ->97995
/* 97986*/      OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 97988*/      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)
/* 97995*/    /*SwitchType*/ 32, MVT::v4f32,// ->98029
/* 97997*/      OPC_Scope, 9, /*->98008*/ // 3 children in Scope
/* 97999*/        OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 98001*/        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)
/* 98008*/      /*Scope*/ 9, /*->98018*/
/* 98009*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 98011*/        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)
/* 98018*/      /*Scope*/ 9, /*->98028*/
/* 98019*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 98021*/        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)
/* 98028*/      0, /*End of Scope*/
/* 98029*/    /*SwitchType*/ 9, MVT::v4f64,// ->98040
/* 98031*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 98033*/      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)
/* 98040*/    0, // EndSwitchType
/* 98041*/  /*SwitchOpcode*/ 118, TARGET_VAL(ISD::FABS),// ->98162
/* 98044*/    OPC_RecordChild0, // #0 = $XB
/* 98045*/    OPC_SwitchType /*6 cases */, 32, MVT::f64,// ->98080
/* 98048*/      OPC_Scope, 9, /*->98059*/ // 3 children in Scope
/* 98050*/        OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 98052*/        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)
/* 98059*/      /*Scope*/ 9, /*->98069*/
/* 98060*/        OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 98062*/        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)
/* 98069*/      /*Scope*/ 9, /*->98079*/
/* 98070*/        OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 98072*/        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)
/* 98079*/      0, /*End of Scope*/
/* 98080*/    /*SwitchType*/ 9, MVT::f128,// ->98091
/* 98082*/      OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/* 98084*/      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)
/* 98091*/    /*SwitchType*/ 22, MVT::f32,// ->98115
/* 98093*/      OPC_Scope, 9, /*->98104*/ // 2 children in Scope
/* 98095*/        OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 98097*/        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)
/* 98104*/      /*Scope*/ 9, /*->98114*/
/* 98105*/        OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 98107*/        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)
/* 98114*/      0, /*End of Scope*/
/* 98115*/    /*SwitchType*/ 9, MVT::v2f64,// ->98126
/* 98117*/      OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 98119*/      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)
/* 98126*/    /*SwitchType*/ 22, MVT::v4f32,// ->98150
/* 98128*/      OPC_Scope, 9, /*->98139*/ // 2 children in Scope
/* 98130*/        OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 98132*/        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)
/* 98139*/      /*Scope*/ 9, /*->98149*/
/* 98140*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 98142*/        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)
/* 98149*/      0, /*End of Scope*/
/* 98150*/    /*SwitchType*/ 9, MVT::v4f64,// ->98161
/* 98152*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 98154*/      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)
/* 98161*/    0, // EndSwitchType
/* 98162*/  /*SwitchOpcode*/ 94|128,1/*222*/, TARGET_VAL(ISD::FCOPYSIGN),// ->98388
/* 98166*/    OPC_RecordChild0, // #0 = $XB
/* 98167*/    OPC_RecordChild1, // #1 = $XA
/* 98168*/    OPC_Scope, 53, /*->98223*/ // 6 children in Scope
/* 98170*/      OPC_CheckChild1Type, MVT::f64,
/* 98172*/      OPC_SwitchType /*2 cases */, 24, MVT::f64,// ->98199
/* 98175*/        OPC_Scope, 10, /*->98187*/ // 2 children in Scope
/* 98177*/          OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 98179*/          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)
/* 98187*/        /*Scope*/ 10, /*->98198*/
/* 98188*/          OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 98190*/          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)
/* 98198*/        0, /*End of Scope*/
/* 98199*/      /*SwitchType*/ 21, MVT::f32,// ->98222
/* 98201*/        OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 98203*/        OPC_EmitInteger, MVT::i32, PPC::F4RCRegClassID,
/* 98206*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::f32, 2/*#Ops*/, 1, 2,  // Results = #3
/* 98214*/        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)
/* 98222*/      0, // EndSwitchType
/* 98223*/    /*Scope*/ 14, /*->98238*/
/* 98224*/      OPC_CheckChild1Type, MVT::f128,
/* 98226*/      OPC_CheckType, MVT::f128,
/* 98228*/      OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/* 98230*/      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)
/* 98238*/    /*Scope*/ 39, /*->98278*/
/* 98239*/      OPC_CheckChild1Type, MVT::f32,
/* 98241*/      OPC_SwitchType /*2 cases */, 10, MVT::f32,// ->98254
/* 98244*/        OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 98246*/        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)
/* 98254*/      /*SwitchType*/ 21, MVT::f64,// ->98277
/* 98256*/        OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 98258*/        OPC_EmitInteger, MVT::i32, PPC::F8RCRegClassID,
/* 98261*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::f64, 2/*#Ops*/, 1, 2,  // Results = #3
/* 98269*/        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)
/* 98277*/      0, // EndSwitchType
/* 98278*/    /*Scope*/ 14, /*->98293*/
/* 98279*/      OPC_CheckChild1Type, MVT::v2f64,
/* 98281*/      OPC_CheckType, MVT::v2f64,
/* 98283*/      OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 98285*/      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)
/* 98293*/    /*Scope*/ 53, /*->98347*/
/* 98294*/      OPC_CheckChild1Type, MVT::v4f32,
/* 98296*/      OPC_SwitchType /*2 cases */, 24, MVT::v4f32,// ->98323
/* 98299*/        OPC_Scope, 10, /*->98311*/ // 2 children in Scope
/* 98301*/          OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 98303*/          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)
/* 98311*/        /*Scope*/ 10, /*->98322*/
/* 98312*/          OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 98314*/          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)
/* 98322*/        0, /*End of Scope*/
/* 98323*/      /*SwitchType*/ 21, MVT::v4f64,// ->98346
/* 98325*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 98327*/        OPC_EmitInteger, MVT::i32, PPC::QFRCRegClassID,
/* 98330*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v4f64, 2/*#Ops*/, 1, 2,  // Results = #3
/* 98338*/        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)
/* 98346*/      0, // EndSwitchType
/* 98347*/    /*Scope*/ 39, /*->98387*/
/* 98348*/      OPC_CheckChild1Type, MVT::v4f64,
/* 98350*/      OPC_SwitchType /*2 cases */, 10, MVT::v4f64,// ->98363
/* 98353*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 98355*/        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)
/* 98363*/      /*SwitchType*/ 21, MVT::v4f32,// ->98386
/* 98365*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 98367*/        OPC_EmitInteger, MVT::i32, PPC::QSRCRegClassID,
/* 98370*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v4f32, 2/*#Ops*/, 1, 2,  // Results = #3
/* 98378*/        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)
/* 98386*/      0, // EndSwitchType
/* 98387*/    0, /*End of Scope*/
/* 98388*/  /*SwitchOpcode*/ 36, TARGET_VAL(PPCISD::FCTIDZ),// ->98427
/* 98391*/    OPC_RecordChild0, // #0 = $XB
/* 98392*/    OPC_SwitchType /*2 cases */, 20, MVT::f64,// ->98415
/* 98395*/      OPC_Scope, 9, /*->98406*/ // 2 children in Scope
/* 98397*/        OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 98399*/        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)
/* 98406*/      /*Scope*/ 7, /*->98414*/
/* 98407*/        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)
/* 98414*/      0, /*End of Scope*/
/* 98415*/    /*SwitchType*/ 9, MVT::f32,// ->98426
/* 98417*/      OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 98419*/      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)
/* 98426*/    0, // EndSwitchType
/* 98427*/  /*SwitchOpcode*/ 38, TARGET_VAL(PPCISD::FCTIWZ),// ->98468
/* 98430*/    OPC_RecordChild0, // #0 = $XB
/* 98431*/    OPC_SwitchType /*2 cases */, 22, MVT::f64,// ->98456
/* 98434*/      OPC_Scope, 9, /*->98445*/ // 2 children in Scope
/* 98436*/        OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 98438*/        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)
/* 98445*/      /*Scope*/ 9, /*->98455*/
/* 98446*/        OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 98448*/        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)
/* 98455*/      0, /*End of Scope*/
/* 98456*/    /*SwitchType*/ 9, MVT::f32,// ->98467
/* 98458*/      OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 98460*/      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)
/* 98467*/    0, // EndSwitchType
/* 98468*/  /*SwitchOpcode*/ 36, TARGET_VAL(PPCISD::FCTIDUZ),// ->98507
/* 98471*/    OPC_RecordChild0, // #0 = $XB
/* 98472*/    OPC_SwitchType /*2 cases */, 20, MVT::f64,// ->98495
/* 98475*/      OPC_Scope, 9, /*->98486*/ // 2 children in Scope
/* 98477*/        OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 98479*/        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)
/* 98486*/      /*Scope*/ 7, /*->98494*/
/* 98487*/        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)
/* 98494*/      0, /*End of Scope*/
/* 98495*/    /*SwitchType*/ 9, MVT::f32,// ->98506
/* 98497*/      OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 98499*/      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)
/* 98506*/    0, // EndSwitchType
/* 98507*/  /*SwitchOpcode*/ 36, TARGET_VAL(PPCISD::FCTIWUZ),// ->98546
/* 98510*/    OPC_RecordChild0, // #0 = $XB
/* 98511*/    OPC_SwitchType /*2 cases */, 20, MVT::f64,// ->98534
/* 98514*/      OPC_Scope, 9, /*->98525*/ // 2 children in Scope
/* 98516*/        OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 98518*/        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)
/* 98525*/      /*Scope*/ 7, /*->98533*/
/* 98526*/        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)
/* 98533*/      0, /*End of Scope*/
/* 98534*/    /*SwitchType*/ 9, MVT::f32,// ->98545
/* 98536*/      OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 98538*/      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)
/* 98545*/    0, // EndSwitchType
/* 98546*/  /*SwitchOpcode*/ 10|128,1/*138*/, TARGET_VAL(ISD::FROUND),// ->98688
/* 98550*/    OPC_RecordChild0, // #0 = $XB
/* 98551*/    OPC_SwitchType /*6 cases */, 22, MVT::f64,// ->98576
/* 98554*/      OPC_Scope, 9, /*->98565*/ // 2 children in Scope
/* 98556*/        OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 98558*/        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)
/* 98565*/      /*Scope*/ 9, /*->98575*/
/* 98566*/        OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 98568*/        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)
/* 98575*/      0, /*End of Scope*/
/* 98576*/    /*SwitchType*/ 17, MVT::f128,// ->98595
/* 98578*/      OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/* 98580*/      OPC_EmitInteger, MVT::i32, 0, 
/* 98583*/      OPC_EmitInteger, MVT::i32, 0, 
/* 98586*/      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] })
/* 98595*/    /*SwitchType*/ 44, MVT::f32,// ->98641
/* 98597*/      OPC_Scope, 31, /*->98630*/ // 2 children in Scope
/* 98599*/        OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 98601*/        OPC_EmitInteger, MVT::i32, PPC::VSFRCRegClassID,
/* 98604*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::f64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 98612*/        OPC_EmitNode1, TARGET_VAL(PPC::XSRDPI), 0,
                      MVT::f64, 1/*#Ops*/, 2,  // Results = #3
/* 98619*/        OPC_EmitInteger, MVT::i32, PPC::VSSRCRegClassID,
/* 98622*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::f32, 2/*#Ops*/, 3, 4, 
                  // Src: (fround:{ *:[f32] } f32:{ *:[f32] }:$S) - Complexity = 403
                  // Dst: (COPY_TO_REGCLASS:{ *:[f32] } (XSRDPI:{ *:[f64] } (COPY_TO_REGCLASS:{ *:[f64] } ?:{ *:[f32] }:$S, VSFRC:{ *:[i32] })), VSSRC:{ *:[i32] })
/* 98630*/      /*Scope*/ 9, /*->98640*/
/* 98631*/        OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 98633*/        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)
/* 98640*/      0, /*End of Scope*/
/* 98641*/    /*SwitchType*/ 9, MVT::v2f64,// ->98652
/* 98643*/      OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 98645*/      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)
/* 98652*/    /*SwitchType*/ 22, MVT::v4f32,// ->98676
/* 98654*/      OPC_Scope, 9, /*->98665*/ // 2 children in Scope
/* 98656*/        OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 98658*/        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)
/* 98665*/      /*Scope*/ 9, /*->98675*/
/* 98666*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 98668*/        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)
/* 98675*/      0, /*End of Scope*/
/* 98676*/    /*SwitchType*/ 9, MVT::v4f64,// ->98687
/* 98678*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 98680*/      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)
/* 98687*/    0, // EndSwitchType
/* 98688*/  /*SwitchOpcode*/ 101, TARGET_VAL(ISD::FNEARBYINT),// ->98792
/* 98691*/    OPC_RecordChild0, // #0 = $XB
/* 98692*/    OPC_SwitchType /*5 cases */, 9, MVT::f64,// ->98704
/* 98695*/      OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 98697*/      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)
/* 98704*/    /*SwitchType*/ 17, MVT::f128,// ->98723
/* 98706*/      OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/* 98708*/      OPC_EmitInteger, MVT::i32, 0, 
/* 98711*/      OPC_EmitInteger, MVT::i32, 3, 
/* 98714*/      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] })
/* 98723*/    /*SwitchType*/ 31, MVT::f32,// ->98756
/* 98725*/      OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 98727*/      OPC_EmitInteger, MVT::i32, PPC::VSFRCRegClassID,
/* 98730*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::f64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 98738*/      OPC_EmitNode1, TARGET_VAL(PPC::XSRDPIC), 0,
                    MVT::f64, 1/*#Ops*/, 2,  // Results = #3
/* 98745*/      OPC_EmitInteger, MVT::i32, PPC::VSSRCRegClassID,
/* 98748*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::f32, 2/*#Ops*/, 3, 4, 
                // Src: (fnearbyint:{ *:[f32] } f32:{ *:[f32] }:$S) - Complexity = 403
                // Dst: (COPY_TO_REGCLASS:{ *:[f32] } (XSRDPIC:{ *:[f64] } (COPY_TO_REGCLASS:{ *:[f64] } ?:{ *:[f32] }:$S, VSFRC:{ *:[i32] })), VSSRC:{ *:[i32] })
/* 98756*/    /*SwitchType*/ 9, MVT::v2f64,// ->98767
/* 98758*/      OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 98760*/      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)
/* 98767*/    /*SwitchType*/ 22, MVT::v4f32,// ->98791
/* 98769*/      OPC_Scope, 9, /*->98780*/ // 2 children in Scope
/* 98771*/        OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 98773*/        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)
/* 98780*/      /*Scope*/ 9, /*->98790*/
/* 98781*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 98783*/        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)
/* 98790*/      0, /*End of Scope*/
/* 98791*/    0, // EndSwitchType
/* 98792*/  /*SwitchOpcode*/ 20|128,1/*148*/, TARGET_VAL(ISD::FFLOOR),// ->98944
/* 98796*/    OPC_RecordChild0, // #0 = $XB
/* 98797*/    OPC_SwitchType /*6 cases */, 22, MVT::f64,// ->98822
/* 98800*/      OPC_Scope, 9, /*->98811*/ // 2 children in Scope
/* 98802*/        OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 98804*/        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)
/* 98811*/      /*Scope*/ 9, /*->98821*/
/* 98812*/        OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 98814*/        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)
/* 98821*/      0, /*End of Scope*/
/* 98822*/    /*SwitchType*/ 17, MVT::f128,// ->98841
/* 98824*/      OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/* 98826*/      OPC_EmitInteger, MVT::i32, 1, 
/* 98829*/      OPC_EmitInteger, MVT::i32, 3, 
/* 98832*/      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] })
/* 98841*/    /*SwitchType*/ 44, MVT::f32,// ->98887
/* 98843*/      OPC_Scope, 31, /*->98876*/ // 2 children in Scope
/* 98845*/        OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 98847*/        OPC_EmitInteger, MVT::i32, PPC::VSFRCRegClassID,
/* 98850*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::f64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 98858*/        OPC_EmitNode1, TARGET_VAL(PPC::XSRDPIM), 0,
                      MVT::f64, 1/*#Ops*/, 2,  // Results = #3
/* 98865*/        OPC_EmitInteger, MVT::i32, PPC::VSSRCRegClassID,
/* 98868*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::f32, 2/*#Ops*/, 3, 4, 
                  // Src: (ffloor:{ *:[f32] } f32:{ *:[f32] }:$S) - Complexity = 403
                  // Dst: (COPY_TO_REGCLASS:{ *:[f32] } (XSRDPIM:{ *:[f64] } (COPY_TO_REGCLASS:{ *:[f64] } ?:{ *:[f32] }:$S, VSFRC:{ *:[i32] })), VSSRC:{ *:[i32] })
/* 98876*/      /*Scope*/ 9, /*->98886*/
/* 98877*/        OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 98879*/        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)
/* 98886*/      0, /*End of Scope*/
/* 98887*/    /*SwitchType*/ 9, MVT::v2f64,// ->98898
/* 98889*/      OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 98891*/      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)
/* 98898*/    /*SwitchType*/ 32, MVT::v4f32,// ->98932
/* 98900*/      OPC_Scope, 9, /*->98911*/ // 3 children in Scope
/* 98902*/        OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 98904*/        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)
/* 98911*/      /*Scope*/ 9, /*->98921*/
/* 98912*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 98914*/        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)
/* 98921*/      /*Scope*/ 9, /*->98931*/
/* 98922*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 98924*/        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)
/* 98931*/      0, /*End of Scope*/
/* 98932*/    /*SwitchType*/ 9, MVT::v4f64,// ->98943
/* 98934*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 98936*/      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)
/* 98943*/    0, // EndSwitchType
/* 98944*/  /*SwitchOpcode*/ 20|128,1/*148*/, TARGET_VAL(ISD::FCEIL),// ->99096
/* 98948*/    OPC_RecordChild0, // #0 = $XB
/* 98949*/    OPC_SwitchType /*6 cases */, 22, MVT::f64,// ->98974
/* 98952*/      OPC_Scope, 9, /*->98963*/ // 2 children in Scope
/* 98954*/        OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 98956*/        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)
/* 98963*/      /*Scope*/ 9, /*->98973*/
/* 98964*/        OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 98966*/        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)
/* 98973*/      0, /*End of Scope*/
/* 98974*/    /*SwitchType*/ 17, MVT::f128,// ->98993
/* 98976*/      OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/* 98978*/      OPC_EmitInteger, MVT::i32, 1, 
/* 98981*/      OPC_EmitInteger, MVT::i32, 2, 
/* 98984*/      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] })
/* 98993*/    /*SwitchType*/ 44, MVT::f32,// ->99039
/* 98995*/      OPC_Scope, 31, /*->99028*/ // 2 children in Scope
/* 98997*/        OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 98999*/        OPC_EmitInteger, MVT::i32, PPC::VSFRCRegClassID,
/* 99002*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::f64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 99010*/        OPC_EmitNode1, TARGET_VAL(PPC::XSRDPIP), 0,
                      MVT::f64, 1/*#Ops*/, 2,  // Results = #3
/* 99017*/        OPC_EmitInteger, MVT::i32, PPC::VSSRCRegClassID,
/* 99020*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::f32, 2/*#Ops*/, 3, 4, 
                  // Src: (fceil:{ *:[f32] } f32:{ *:[f32] }:$S) - Complexity = 403
                  // Dst: (COPY_TO_REGCLASS:{ *:[f32] } (XSRDPIP:{ *:[f64] } (COPY_TO_REGCLASS:{ *:[f64] } ?:{ *:[f32] }:$S, VSFRC:{ *:[i32] })), VSSRC:{ *:[i32] })
/* 99028*/      /*Scope*/ 9, /*->99038*/
/* 99029*/        OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 99031*/        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)
/* 99038*/      0, /*End of Scope*/
/* 99039*/    /*SwitchType*/ 9, MVT::v2f64,// ->99050
/* 99041*/      OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 99043*/      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)
/* 99050*/    /*SwitchType*/ 32, MVT::v4f32,// ->99084
/* 99052*/      OPC_Scope, 9, /*->99063*/ // 3 children in Scope
/* 99054*/        OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 99056*/        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)
/* 99063*/      /*Scope*/ 9, /*->99073*/
/* 99064*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 99066*/        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)
/* 99073*/      /*Scope*/ 9, /*->99083*/
/* 99074*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 99076*/        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)
/* 99083*/      0, /*End of Scope*/
/* 99084*/    /*SwitchType*/ 9, MVT::v4f64,// ->99095
/* 99086*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 99088*/      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)
/* 99095*/    0, // EndSwitchType
/* 99096*/  /*SwitchOpcode*/ 20|128,1/*148*/, TARGET_VAL(ISD::FTRUNC),// ->99248
/* 99100*/    OPC_RecordChild0, // #0 = $XB
/* 99101*/    OPC_SwitchType /*6 cases */, 22, MVT::f64,// ->99126
/* 99104*/      OPC_Scope, 9, /*->99115*/ // 2 children in Scope
/* 99106*/        OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 99108*/        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)
/* 99115*/      /*Scope*/ 9, /*->99125*/
/* 99116*/        OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 99118*/        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)
/* 99125*/      0, /*End of Scope*/
/* 99126*/    /*SwitchType*/ 17, MVT::f128,// ->99145
/* 99128*/      OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/* 99130*/      OPC_EmitInteger, MVT::i32, 1, 
/* 99133*/      OPC_EmitInteger, MVT::i32, 1, 
/* 99136*/      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] })
/* 99145*/    /*SwitchType*/ 44, MVT::f32,// ->99191
/* 99147*/      OPC_Scope, 31, /*->99180*/ // 2 children in Scope
/* 99149*/        OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 99151*/        OPC_EmitInteger, MVT::i32, PPC::VSFRCRegClassID,
/* 99154*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::f64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 99162*/        OPC_EmitNode1, TARGET_VAL(PPC::XSRDPIZ), 0,
                      MVT::f64, 1/*#Ops*/, 2,  // Results = #3
/* 99169*/        OPC_EmitInteger, MVT::i32, PPC::VSSRCRegClassID,
/* 99172*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::f32, 2/*#Ops*/, 3, 4, 
                  // Src: (ftrunc:{ *:[f32] } f32:{ *:[f32] }:$S) - Complexity = 403
                  // Dst: (COPY_TO_REGCLASS:{ *:[f32] } (XSRDPIZ:{ *:[f64] } (COPY_TO_REGCLASS:{ *:[f64] } ?:{ *:[f32] }:$S, VSFRC:{ *:[i32] })), VSSRC:{ *:[i32] })
/* 99180*/      /*Scope*/ 9, /*->99190*/
/* 99181*/        OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 99183*/        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)
/* 99190*/      0, /*End of Scope*/
/* 99191*/    /*SwitchType*/ 9, MVT::v2f64,// ->99202
/* 99193*/      OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 99195*/      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)
/* 99202*/    /*SwitchType*/ 32, MVT::v4f32,// ->99236
/* 99204*/      OPC_Scope, 9, /*->99215*/ // 3 children in Scope
/* 99206*/        OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/* 99208*/        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)
/* 99215*/      /*Scope*/ 9, /*->99225*/
/* 99216*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/* 99218*/        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)
/* 99225*/      /*Scope*/ 9, /*->99235*/
/* 99226*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 99228*/        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)
/* 99235*/      0, /*End of Scope*/
/* 99236*/    /*SwitchType*/ 9, MVT::v4f64,// ->99247
/* 99238*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 99240*/      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)
/* 99247*/    0, // EndSwitchType
/* 99248*/  /*SwitchOpcode*/ 114, TARGET_VAL(ISD::FP_EXTEND),// ->99365
/* 99251*/    OPC_RecordChild0, // #0 = $src
/* 99252*/    OPC_SwitchType /*3 cases */, 55, MVT::f64,// ->99310
/* 99255*/      OPC_Scope, 13, /*->99270*/ // 3 children in Scope
/* 99257*/        OPC_CheckPatternPredicate, 10, // (PPCSubTarget->hasP8Vector())
/* 99259*/        OPC_EmitInteger, MVT::i32, PPC::VSFRCRegClassID,
/* 99262*/        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] })
/* 99270*/      /*Scope*/ 13, /*->99284*/
/* 99271*/        OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 99273*/        OPC_EmitInteger, MVT::i32, PPC::F8RCRegClassID,
/* 99276*/        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] })
/* 99284*/      /*Scope*/ 24, /*->99309*/
/* 99285*/        OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 99287*/        OPC_Scope, 7, /*->99296*/ // 2 children in Scope
/* 99289*/          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)
/* 99296*/        /*Scope*/ 11, /*->99308*/
/* 99297*/          OPC_EmitInteger, MVT::i32, PPC::SPERCRegClassID,
/* 99300*/          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] })
/* 99308*/        0, /*End of Scope*/
/* 99309*/      0, /*End of Scope*/
/* 99310*/    /*SwitchType*/ 37, MVT::f128,// ->99349
/* 99312*/      OPC_Scope, 11, /*->99325*/ // 2 children in Scope
/* 99314*/        OPC_CheckChild0Type, MVT::f64,
/* 99316*/        OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/* 99318*/        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)
/* 99325*/      /*Scope*/ 22, /*->99348*/
/* 99326*/        OPC_CheckChild0Type, MVT::f32,
/* 99328*/        OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/* 99330*/        OPC_EmitInteger, MVT::i32, PPC::VFRCRegClassID,
/* 99333*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::f64, 2/*#Ops*/, 0, 1,  // Results = #2
/* 99341*/        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] }))
/* 99348*/      0, /*End of Scope*/
/* 99349*/    /*SwitchType*/ 13, MVT::v4f64,// ->99364
/* 99351*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/* 99353*/      OPC_EmitInteger, MVT::i32, PPC::QFRCRegClassID,
/* 99356*/      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] })
/* 99364*/    0, // EndSwitchType
/* 99365*/  /*SwitchOpcode*/ 29, TARGET_VAL(PPCISD::MTVSRA),// ->99397
/* 99368*/    OPC_RecordChild0, // #0 = $rA
/* 99369*/    OPC_CheckType, MVT::f64,
/* 99371*/    OPC_Scope, 11, /*->99384*/ // 2 children in Scope
/* 99373*/      OPC_CheckChild0Type, MVT::i64,
/* 99375*/      OPC_CheckPatternPredicate, 36, // (PPCSubTarget->hasDirectMove())
/* 99377*/      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)
/* 99384*/    /*Scope*/ 11, /*->99396*/
/* 99385*/      OPC_CheckChild0Type, MVT::i32,
/* 99387*/      OPC_CheckPatternPredicate, 36, // (PPCSubTarget->hasDirectMove())
/* 99389*/      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)
/* 99396*/    0, /*End of Scope*/
/* 99397*/  /*SwitchOpcode*/ 68, TARGET_VAL(PPCISD::MTVSRZ),// ->99468
/* 99400*/    OPC_RecordChild0, // #0 = $rA
/* 99401*/    OPC_CheckChild0Type, MVT::i32,
/* 99403*/    OPC_SwitchType /*3 cases */, 9, MVT::f64,// ->99415
/* 99406*/      OPC_CheckPatternPredicate, 36, // (PPCSubTarget->hasDirectMove())
/* 99408*/      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)
/* 99415*/    /*SwitchType*/ 24, MVT::v8i16,// ->99441
/* 99417*/      OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/* 99419*/      OPC_EmitInteger, MVT::i64, 1, 
/* 99422*/      OPC_EmitNode1, TARGET_VAL(PPC::MTVSRWZ), 0,
                    MVT::f64, 1/*#Ops*/, 0,  // Results = #2
/* 99429*/      OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 99432*/      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] })
/* 99441*/    /*SwitchType*/ 24, MVT::v16i8,// ->99467
/* 99443*/      OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/* 99445*/      OPC_EmitInteger, MVT::i64, 1, 
/* 99448*/      OPC_EmitNode1, TARGET_VAL(PPC::MTVSRWZ), 0,
                    MVT::f64, 1/*#Ops*/, 0,  // Results = #2
/* 99455*/      OPC_EmitInteger, MVT::i32, PPC::sub_64,
/* 99458*/      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] })
/* 99467*/    0, // EndSwitchType
/* 99468*/  /*SwitchOpcode*/ 20, TARGET_VAL(ISD::FRINT),// ->99491
/* 99471*/    OPC_RecordChild0, // #0 = $vB
/* 99472*/    OPC_CheckType, MVT::f128,
/* 99474*/    OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/* 99476*/    OPC_EmitInteger, MVT::i32, 0, 
/* 99479*/    OPC_EmitInteger, MVT::i32, 3, 
/* 99482*/    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] })
/* 99491*/  /*SwitchOpcode*/ 61, TARGET_VAL(PPCISD::XSMAXCDP),// ->99555
/* 99494*/    OPC_RecordChild0, // #0 = $XA
/* 99495*/    OPC_RecordChild1, // #1 = $XB
/* 99496*/    OPC_SwitchType /*2 cases */, 10, MVT::f64,// ->99509
/* 99499*/      OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/* 99501*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XSMAXCDP), 0,
                    MVT::f64, 2/*#Ops*/, 0, 1, 
                // Src: (PPCxsmaxc:{ *:[f64] } f64:{ *:[f64] }:$XA, f64:{ *:[f64] }:$XB) - Complexity = 403
                // Dst: (XSMAXCDP:{ *:[f64] } f64:{ *:[f64] }:$XA, f64:{ *:[f64] }:$XB)
/* 99509*/    /*SwitchType*/ 43, MVT::f32,// ->99554
/* 99511*/      OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/* 99513*/      OPC_EmitInteger, MVT::i32, PPC::VSSRCRegClassID,
/* 99516*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::f64, 2/*#Ops*/, 0, 2,  // Results = #3
/* 99524*/      OPC_EmitInteger, MVT::i32, PPC::VSSRCRegClassID,
/* 99527*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::f64, 2/*#Ops*/, 1, 4,  // Results = #5
/* 99535*/      OPC_EmitNode1, TARGET_VAL(PPC::XSMAXCDP), 0,
                    MVT::f64, 2/*#Ops*/, 3, 5,  // Results = #6
/* 99543*/      OPC_EmitInteger, MVT::i32, PPC::VSSRCRegClassID,
/* 99546*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::f32, 2/*#Ops*/, 6, 7, 
                // Src: (PPCxsmaxc:{ *:[f32] } f32:{ *:[f32] }:$XA, f32:{ *:[f32] }:$XB) - Complexity = 403
                // Dst: (COPY_TO_REGCLASS:{ *:[f32] } (XSMAXCDP:{ *:[f64] } (COPY_TO_REGCLASS:{ *:[f64] } ?:{ *:[f32] }:$XA, VSSRC:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[f64] } ?:{ *:[f32] }:$XB, VSSRC:{ *:[i32] })), VSSRC:{ *:[i32] })
/* 99554*/    0, // EndSwitchType
/* 99555*/  /*SwitchOpcode*/ 61, TARGET_VAL(PPCISD::XSMINCDP),// ->99619
/* 99558*/    OPC_RecordChild0, // #0 = $XA
/* 99559*/    OPC_RecordChild1, // #1 = $XB
/* 99560*/    OPC_SwitchType /*2 cases */, 10, MVT::f64,// ->99573
/* 99563*/      OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/* 99565*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XSMINCDP), 0,
                    MVT::f64, 2/*#Ops*/, 0, 1, 
                // Src: (PPCxsminc:{ *:[f64] } f64:{ *:[f64] }:$XA, f64:{ *:[f64] }:$XB) - Complexity = 403
                // Dst: (XSMINCDP:{ *:[f64] } f64:{ *:[f64] }:$XA, f64:{ *:[f64] }:$XB)
/* 99573*/    /*SwitchType*/ 43, MVT::f32,// ->99618
/* 99575*/      OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/* 99577*/      OPC_EmitInteger, MVT::i32, PPC::VSSRCRegClassID,
/* 99580*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::f64, 2/*#Ops*/, 0, 2,  // Results = #3
/* 99588*/      OPC_EmitInteger, MVT::i32, PPC::VSSRCRegClassID,
/* 99591*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::f64, 2/*#Ops*/, 1, 4,  // Results = #5
/* 99599*/      OPC_EmitNode1, TARGET_VAL(PPC::XSMINCDP), 0,
                    MVT::f64, 2/*#Ops*/, 3, 5,  // Results = #6
/* 99607*/      OPC_EmitInteger, MVT::i32, PPC::VSSRCRegClassID,
/* 99610*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::f32, 2/*#Ops*/, 6, 7, 
                // Src: (PPCxsminc:{ *:[f32] } f32:{ *:[f32] }:$XA, f32:{ *:[f32] }:$XB) - Complexity = 403
                // Dst: (COPY_TO_REGCLASS:{ *:[f32] } (XSMINCDP:{ *:[f64] } (COPY_TO_REGCLASS:{ *:[f64] } ?:{ *:[f32] }:$XA, VSSRC:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[f64] } ?:{ *:[f32] }:$XB, VSSRC:{ *:[i32] })), VSSRC:{ *:[i32] })
/* 99618*/    0, // EndSwitchType
/* 99619*/  /*SwitchOpcode*/ 52, TARGET_VAL(PPCISD::BUILD_FP128),// ->99674
/* 99622*/    OPC_RecordChild0, // #0 = $rB
/* 99623*/    OPC_CheckChild0Type, MVT::i64,
/* 99625*/    OPC_RecordChild1, // #1 = $rA
/* 99626*/    OPC_CheckType, MVT::f128,
/* 99628*/    OPC_Scope, 21, /*->99651*/ // 2 children in Scope
/* 99630*/      OPC_CheckPatternPredicate, 42, // (PPCSubTarget->hasDirectMove()) && (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian()) && (PPCSubTarget->isISA3_0())
/* 99632*/      OPC_EmitNode1, TARGET_VAL(PPC::MTVSRDD), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1,  // Results = #2
/* 99640*/      OPC_EmitInteger, MVT::i32, PPC::VRRCRegClassID,
/* 99643*/      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] })
/* 99651*/    /*Scope*/ 21, /*->99673*/
/* 99652*/      OPC_CheckPatternPredicate, 43, // (PPCSubTarget->hasDirectMove()) && (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isISA3_0()) && (PPCSubTarget->isLittleEndian())
/* 99654*/      OPC_EmitNode1, TARGET_VAL(PPC::MTVSRDD), 0,
                    MVT::v4i32, 2/*#Ops*/, 1, 0,  // Results = #2
/* 99662*/      OPC_EmitInteger, MVT::i32, PPC::VRRCRegClassID,
/* 99665*/      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] })
/* 99673*/    0, /*End of Scope*/
/* 99674*/  /*SwitchOpcode*/ 8, TARGET_VAL(PPCISD::MFFS),// ->99685
/* 99677*/    OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 99679*/    OPC_MorphNodeTo1, TARGET_VAL(PPC::MFFS), 0,
                  MVT::f64, 0/*#Ops*/, 
              // Src: (PPCmffs:{ *:[f64] }) - Complexity = 3
              // Dst: (MFFS:{ *:[f64] })
/* 99685*/  /*SwitchOpcode*/ 31, TARGET_VAL(PPCISD::FSEL),// ->99719
/* 99688*/    OPC_RecordChild0, // #0 = $FRA
/* 99689*/    OPC_RecordChild1, // #1 = $FRC
/* 99690*/    OPC_RecordChild2, // #2 = $FRB
/* 99691*/    OPC_SwitchType /*2 cases */, 11, MVT::f64,// ->99705
/* 99694*/      OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 99696*/      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)
/* 99705*/    /*SwitchType*/ 11, MVT::f32,// ->99718
/* 99707*/      OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 99709*/      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)
/* 99718*/    0, // EndSwitchType
/* 99719*/  /*SwitchOpcode*/ 25, TARGET_VAL(PPCISD::BUILD_SPE64),// ->99747
/* 99722*/    OPC_RecordChild0, // #0 = $rB
/* 99723*/    OPC_RecordChild1, // #1 = $rA
/* 99724*/    OPC_CheckChild1Type, MVT::i32,
/* 99726*/    OPC_CheckPatternPredicate, 12, // (PPCSubTarget->hasSPE())
/* 99728*/    OPC_EmitNode1, TARGET_VAL(PPC::EVMERGELO), 0,
                  MVT::f64, 2/*#Ops*/, 1, 0,  // Results = #2
/* 99736*/    OPC_EmitInteger, MVT::i32, PPC::SPERCRegClassID,
/* 99739*/    OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                  MVT::f64, 2/*#Ops*/, 2, 3, 
              // Src: (PPCbuild_spe64:{ *:[f64] } i32:{ *:[i32] }:$rB, i32:{ *:[i32] }:$rA) - Complexity = 3
              // Dst: (COPY_TO_REGCLASS:{ *:[f64] } (EVMERGELO:{ *:[f64] } ?:{ *:[i32] }:$rA, ?:{ *:[i32] }:$rB), SPERC:{ *:[i32] })
/* 99747*/  /*SwitchOpcode*/ 14, TARGET_VAL(PPCISD::FADDRTZ),// ->99764
/* 99750*/    OPC_RecordChild0, // #0 = $FRA
/* 99751*/    OPC_RecordChild1, // #1 = $FRB
/* 99752*/    OPC_CheckType, MVT::f64,
/* 99754*/    OPC_CheckPatternPredicate, 11, // (PPCSubTarget->hasFPU())
/* 99756*/    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)
/* 99764*/  /*SwitchOpcode*/ 17|128,34/*4369*/, TARGET_VAL(ISD::BUILD_VECTOR),// ->104137
/* 99768*/    OPC_Scope, 96, /*->99866*/ // 13 children in Scope
/* 99770*/      OPC_RecordChild0, // #0 = $A
/* 99771*/      OPC_MoveChild0,
/* 99772*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 99775*/      OPC_CheckPredicate, 36, // Predicate_immNonAllOneAnyExt8
/* 99777*/      OPC_CheckType, MVT::i32,
/* 99779*/      OPC_MoveParent,
/* 99780*/      OPC_CheckChild1Same, 0,
/* 99782*/      OPC_CheckChild2Same, 0,
/* 99784*/      OPC_CheckChild3Same, 0,
/* 99786*/      OPC_MoveChild4,
/* 99787*/      OPC_CheckSame, 0,
/* 99789*/      OPC_MoveParent,
/* 99790*/      OPC_MoveChild5,
/* 99791*/      OPC_CheckSame, 0,
/* 99793*/      OPC_MoveParent,
/* 99794*/      OPC_MoveChild6,
/* 99795*/      OPC_CheckSame, 0,
/* 99797*/      OPC_MoveParent,
/* 99798*/      OPC_MoveChild7,
/* 99799*/      OPC_CheckSame, 0,
/* 99801*/      OPC_MoveParent,
/* 99802*/      OPC_MoveChild, 8,
/* 99804*/      OPC_CheckSame, 0,
/* 99806*/      OPC_MoveParent,
/* 99807*/      OPC_MoveChild, 9,
/* 99809*/      OPC_CheckSame, 0,
/* 99811*/      OPC_MoveParent,
/* 99812*/      OPC_MoveChild, 10,
/* 99814*/      OPC_CheckSame, 0,
/* 99816*/      OPC_MoveParent,
/* 99817*/      OPC_MoveChild, 11,
/* 99819*/      OPC_CheckSame, 0,
/* 99821*/      OPC_MoveParent,
/* 99822*/      OPC_MoveChild, 12,
/* 99824*/      OPC_CheckSame, 0,
/* 99826*/      OPC_MoveParent,
/* 99827*/      OPC_MoveChild, 13,
/* 99829*/      OPC_CheckSame, 0,
/* 99831*/      OPC_MoveParent,
/* 99832*/      OPC_MoveChild, 14,
/* 99834*/      OPC_CheckSame, 0,
/* 99836*/      OPC_MoveParent,
/* 99837*/      OPC_MoveChild, 15,
/* 99839*/      OPC_CheckSame, 0,
/* 99841*/      OPC_MoveParent,
/* 99842*/      OPC_CheckType, MVT::v16i8,
/* 99844*/      OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/* 99846*/      OPC_EmitConvertToTarget, 0,
/* 99848*/      OPC_EmitNode1, TARGET_VAL(PPC::XXSPLTIB), 0,
                    MVT::v4i32, 1/*#Ops*/, 1,  // Results = #2
/* 99855*/      OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/* 99858*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::v16i8, 2/*#Ops*/, 2, 3, 
                // Src: (build_vector:{ *:[v16i8] } (imm:{ *:[i32] })<<P:Predicate_immNonAllOneAnyExt8>>:$A, (imm:{ *:[i32] })<<P:Predicate_immNonAllOneAnyExt8>>:$A, (imm:{ *:[i32] })<<P:Predicate_immNonAllOneAnyExt8>>:$A, (imm:{ *:[i32] })<<P:Predicate_immNonAllOneAnyExt8>>:$A, (imm:{ *:[i32] })<<P:Predicate_immNonAllOneAnyExt8>>:$A, (imm:{ *:[i32] })<<P:Predicate_immNonAllOneAnyExt8>>:$A, (imm:{ *:[i32] })<<P:Predicate_immNonAllOneAnyExt8>>:$A, (imm:{ *:[i32] })<<P:Predicate_immNonAllOneAnyExt8>>:$A, (imm:{ *:[i32] })<<P:Predicate_immNonAllOneAnyExt8>>:$A, (imm:{ *:[i32] })<<P:Predicate_immNonAllOneAnyExt8>>:$A, (imm:{ *:[i32] })<<P:Predicate_immNonAllOneAnyExt8>>:$A, (imm:{ *:[i32] })<<P:Predicate_immNonAllOneAnyExt8>>:$A, (imm:{ *:[i32] })<<P:Predicate_immNonAllOneAnyExt8>>:$A, (imm:{ *:[i32] })<<P:Predicate_immNonAllOneAnyExt8>>:$A, (imm:{ *:[i32] })<<P:Predicate_immNonAllOneAnyExt8>>:$A, (imm:{ *:[i32] })<<P:Predicate_immNonAllOneAnyExt8>>:$A) - Complexity = 467
                // Dst: (COPY_TO_REGCLASS:{ *:[v16i8] } (XXSPLTIB:{ *:[v4i32] } (imm:{ *:[i32] }):$A), VSRC:{ *:[i32] })
/* 99866*/    /*Scope*/ 51|128,14/*1843*/, /*->101711*/
/* 99868*/      OPC_MoveChild0,
/* 99869*/      OPC_SwitchOpcode /*3 cases */, 21|128,9/*1173*/, TARGET_VAL(PPCISD::MFVSR),// ->101047
/* 99874*/        OPC_MoveChild0,
/* 99875*/        OPC_SwitchOpcode /*4 cases */, 0|128,4/*512*/, TARGET_VAL(PPCISD::FCTIWZ),// ->100392
/* 99880*/          OPC_Scope, 60|128,1/*188*/, /*->100071*/ // 2 children in Scope
/* 99883*/            OPC_MoveChild0,
/* 99884*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/* 99887*/            OPC_RecordChild0, // #0 = $A
/* 99888*/            OPC_CheckChild0Type, MVT::v2f64,
/* 99890*/            OPC_CheckChild1Integer, 0, 
/* 99892*/            OPC_MoveParent,
/* 99893*/            OPC_CheckType, MVT::f64,
/* 99895*/            OPC_MoveParent,
/* 99896*/            OPC_CheckType, MVT::i32,
/* 99898*/            OPC_MoveParent,
/* 99899*/            OPC_MoveChild1,
/* 99900*/            OPC_CheckOpcode, TARGET_VAL(PPCISD::MFVSR),
/* 99903*/            OPC_MoveChild0,
/* 99904*/            OPC_CheckOpcode, TARGET_VAL(PPCISD::FCTIWZ),
/* 99907*/            OPC_MoveChild0,
/* 99908*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/* 99911*/            OPC_CheckChild0Same, 0,
/* 99913*/            OPC_CheckChild1Integer, 1, 
/* 99915*/            OPC_MoveParent,
/* 99916*/            OPC_CheckType, MVT::f64,
/* 99918*/            OPC_MoveParent,
/* 99919*/            OPC_CheckType, MVT::i32,
/* 99921*/            OPC_MoveParent,
/* 99922*/            OPC_MoveChild2,
/* 99923*/            OPC_CheckOpcode, TARGET_VAL(PPCISD::MFVSR),
/* 99926*/            OPC_MoveChild0,
/* 99927*/            OPC_CheckOpcode, TARGET_VAL(PPCISD::FCTIWZ),
/* 99930*/            OPC_MoveChild0,
/* 99931*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/* 99934*/            OPC_RecordChild0, // #1 = $B
/* 99935*/            OPC_CheckChild0Type, MVT::v2f64,
/* 99937*/            OPC_CheckChild1Integer, 0, 
/* 99939*/            OPC_MoveParent,
/* 99940*/            OPC_CheckType, MVT::f64,
/* 99942*/            OPC_MoveParent,
/* 99943*/            OPC_CheckType, MVT::i32,
/* 99945*/            OPC_MoveParent,
/* 99946*/            OPC_MoveChild3,
/* 99947*/            OPC_CheckOpcode, TARGET_VAL(PPCISD::MFVSR),
/* 99950*/            OPC_MoveChild0,
/* 99951*/            OPC_CheckOpcode, TARGET_VAL(PPCISD::FCTIWZ),
/* 99954*/            OPC_MoveChild0,
/* 99955*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/* 99958*/            OPC_CheckChild0Same, 1,
/* 99960*/            OPC_CheckChild1Integer, 1, 
/* 99962*/            OPC_MoveParent,
/* 99963*/            OPC_CheckType, MVT::f64,
/* 99965*/            OPC_MoveParent,
/* 99966*/            OPC_CheckType, MVT::i32,
/* 99968*/            OPC_MoveParent,
/* 99969*/            OPC_CheckType, MVT::v4i32,
/* 99971*/            OPC_Scope, 48, /*->100021*/ // 2 children in Scope
/* 99973*/              OPC_CheckPatternPredicate, 30, // (PPCSubTarget->hasVSX()) && (!PPCSubTarget->isLittleEndian())
/* 99975*/              OPC_EmitInteger, MVT::i32, 0, 
/* 99978*/              OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                            MVT::v2f64, 3/*#Ops*/, 0, 1, 2,  // Results = #3
/* 99987*/              OPC_EmitNode1, TARGET_VAL(PPC::XVCVDPSXWS), 0,
                            MVT::v4i32, 1/*#Ops*/, 3,  // Results = #4
/* 99994*/              OPC_EmitInteger, MVT::i32, 3, 
/* 99997*/              OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                            MVT::v2f64, 3/*#Ops*/, 0, 1, 5,  // Results = #6
/*100006*/              OPC_EmitNode1, TARGET_VAL(PPC::XVCVDPSXWS), 0,
                            MVT::v4i32, 1/*#Ops*/, 6,  // Results = #7
/*100013*/              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] })))
/*100021*/            /*Scope*/ 48, /*->100070*/
/*100022*/              OPC_CheckPatternPredicate, 19, // (PPCSubTarget->hasVSX()) && (PPCSubTarget->isLittleEndian())
/*100024*/              OPC_EmitInteger, MVT::i32, 0, 
/*100027*/              OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                            MVT::v2f64, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*100036*/              OPC_EmitNode1, TARGET_VAL(PPC::XVCVDPSXWS), 0,
                            MVT::v4i32, 1/*#Ops*/, 3,  // Results = #4
/*100043*/              OPC_EmitInteger, MVT::i32, 3, 
/*100046*/              OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                            MVT::v2f64, 3/*#Ops*/, 1, 0, 5,  // Results = #6
/*100055*/              OPC_EmitNode1, TARGET_VAL(PPC::XVCVDPSXWS), 0,
                            MVT::v4i32, 1/*#Ops*/, 6,  // Results = #7
/*100062*/              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] })))
/*100070*/            0, /*End of Scope*/
/*100071*/          /*Scope*/ 62|128,2/*318*/, /*->100391*/
/*100073*/            OPC_RecordChild0, // #0 = $A
/*100074*/            OPC_CheckType, MVT::f64,
/*100076*/            OPC_MoveParent,
/*100077*/            OPC_CheckType, MVT::i32,
/*100079*/            OPC_MoveParent,
/*100080*/            OPC_MoveChild1,
/*100081*/            OPC_CheckOpcode, TARGET_VAL(PPCISD::MFVSR),
/*100084*/            OPC_MoveChild0,
/*100085*/            OPC_CheckOpcode, TARGET_VAL(PPCISD::FCTIWZ),
/*100088*/            OPC_CheckType, MVT::f64,
/*100090*/            OPC_Scope, 71, /*->100163*/ // 2 children in Scope
/*100092*/              OPC_CheckChild0Same, 0,
/*100094*/              OPC_MoveParent,
/*100095*/              OPC_CheckType, MVT::i32,
/*100097*/              OPC_MoveParent,
/*100098*/              OPC_MoveChild2,
/*100099*/              OPC_CheckOpcode, TARGET_VAL(PPCISD::MFVSR),
/*100102*/              OPC_MoveChild0,
/*100103*/              OPC_CheckOpcode, TARGET_VAL(PPCISD::FCTIWZ),
/*100106*/              OPC_CheckChild0Same, 0,
/*100108*/              OPC_CheckType, MVT::f64,
/*100110*/              OPC_MoveParent,
/*100111*/              OPC_CheckType, MVT::i32,
/*100113*/              OPC_MoveParent,
/*100114*/              OPC_MoveChild3,
/*100115*/              OPC_CheckOpcode, TARGET_VAL(PPCISD::MFVSR),
/*100118*/              OPC_MoveChild0,
/*100119*/              OPC_CheckOpcode, TARGET_VAL(PPCISD::FCTIWZ),
/*100122*/              OPC_CheckChild0Same, 0,
/*100124*/              OPC_CheckType, MVT::f64,
/*100126*/              OPC_MoveParent,
/*100127*/              OPC_CheckType, MVT::i32,
/*100129*/              OPC_MoveParent,
/*100130*/              OPC_CheckType, MVT::v4i32,
/*100132*/              OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/*100134*/              OPC_EmitNode1, TARGET_VAL(PPC::XSCVDPSXWS), 0,
                            MVT::f64, 1/*#Ops*/, 0,  // Results = #1
/*100141*/              OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*100144*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v4i32, 2/*#Ops*/, 1, 2,  // Results = #3
/*100152*/              OPC_EmitInteger, MVT::i32, 1, 
/*100155*/              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] })
/*100163*/            /*Scope*/ 97|128,1/*225*/, /*->100390*/
/*100165*/              OPC_RecordChild0, // #1 = $B
/*100166*/              OPC_MoveParent,
/*100167*/              OPC_CheckType, MVT::i32,
/*100169*/              OPC_MoveParent,
/*100170*/              OPC_MoveChild2,
/*100171*/              OPC_CheckOpcode, TARGET_VAL(PPCISD::MFVSR),
/*100174*/              OPC_MoveChild0,
/*100175*/              OPC_CheckOpcode, TARGET_VAL(PPCISD::FCTIWZ),
/*100178*/              OPC_RecordChild0, // #2 = $C
/*100179*/              OPC_CheckType, MVT::f64,
/*100181*/              OPC_MoveParent,
/*100182*/              OPC_CheckType, MVT::i32,
/*100184*/              OPC_MoveParent,
/*100185*/              OPC_MoveChild3,
/*100186*/              OPC_CheckOpcode, TARGET_VAL(PPCISD::MFVSR),
/*100189*/              OPC_MoveChild0,
/*100190*/              OPC_CheckOpcode, TARGET_VAL(PPCISD::FCTIWZ),
/*100193*/              OPC_RecordChild0, // #3 = $D
/*100194*/              OPC_CheckType, MVT::f64,
/*100196*/              OPC_MoveParent,
/*100197*/              OPC_CheckType, MVT::i32,
/*100199*/              OPC_MoveParent,
/*100200*/              OPC_CheckType, MVT::v4i32,
/*100202*/              OPC_Scope, 92, /*->100296*/ // 2 children in Scope
/*100204*/                OPC_CheckPatternPredicate, 30, // (PPCSubTarget->hasVSX()) && (!PPCSubTarget->isLittleEndian())
/*100206*/                OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*100209*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4i32, 2/*#Ops*/, 0, 4,  // Results = #5
/*100217*/                OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*100220*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4i32, 2/*#Ops*/, 2, 6,  // Results = #7
/*100228*/                OPC_EmitInteger, MVT::i32, 0, 
/*100231*/                OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                              MVT::v2f64, 3/*#Ops*/, 5, 7, 8,  // Results = #9
/*100240*/                OPC_EmitNode1, TARGET_VAL(PPC::XVCVDPSXWS), 0,
                              MVT::v4i32, 1/*#Ops*/, 9,  // Results = #10
/*100247*/                OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*100250*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4i32, 2/*#Ops*/, 1, 11,  // Results = #12
/*100258*/                OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*100261*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4i32, 2/*#Ops*/, 3, 13,  // Results = #14
/*100269*/                OPC_EmitInteger, MVT::i32, 0, 
/*100272*/                OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                              MVT::v2f64, 3/*#Ops*/, 12, 14, 15,  // Results = #16
/*100281*/                OPC_EmitNode1, TARGET_VAL(PPC::XVCVDPSXWS), 0,
                              MVT::v4i32, 1/*#Ops*/, 16,  // Results = #17
/*100288*/                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] })))
/*100296*/              /*Scope*/ 92, /*->100389*/
/*100297*/                OPC_CheckPatternPredicate, 19, // (PPCSubTarget->hasVSX()) && (PPCSubTarget->isLittleEndian())
/*100299*/                OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*100302*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4i32, 2/*#Ops*/, 3, 4,  // Results = #5
/*100310*/                OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*100313*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4i32, 2/*#Ops*/, 1, 6,  // Results = #7
/*100321*/                OPC_EmitInteger, MVT::i32, 0, 
/*100324*/                OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                              MVT::v2f64, 3/*#Ops*/, 5, 7, 8,  // Results = #9
/*100333*/                OPC_EmitNode1, TARGET_VAL(PPC::XVCVDPSXWS), 0,
                              MVT::v4i32, 1/*#Ops*/, 9,  // Results = #10
/*100340*/                OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*100343*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4i32, 2/*#Ops*/, 2, 11,  // Results = #12
/*100351*/                OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*100354*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4i32, 2/*#Ops*/, 0, 13,  // Results = #14
/*100362*/                OPC_EmitInteger, MVT::i32, 0, 
/*100365*/                OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                              MVT::v2f64, 3/*#Ops*/, 12, 14, 15,  // Results = #16
/*100374*/                OPC_EmitNode1, TARGET_VAL(PPC::XVCVDPSXWS), 0,
                              MVT::v4i32, 1/*#Ops*/, 16,  // Results = #17
/*100381*/                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] })))
/*100389*/              0, /*End of Scope*/
/*100390*/            0, /*End of Scope*/
/*100391*/          0, /*End of Scope*/
/*100392*/        /*SwitchOpcode*/ 0|128,4/*512*/, TARGET_VAL(PPCISD::FCTIWUZ),// ->100908
/*100396*/          OPC_Scope, 60|128,1/*188*/, /*->100587*/ // 2 children in Scope
/*100399*/            OPC_MoveChild0,
/*100400*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*100403*/            OPC_RecordChild0, // #0 = $A
/*100404*/            OPC_CheckChild0Type, MVT::v2f64,
/*100406*/            OPC_CheckChild1Integer, 0, 
/*100408*/            OPC_MoveParent,
/*100409*/            OPC_CheckType, MVT::f64,
/*100411*/            OPC_MoveParent,
/*100412*/            OPC_CheckType, MVT::i32,
/*100414*/            OPC_MoveParent,
/*100415*/            OPC_MoveChild1,
/*100416*/            OPC_CheckOpcode, TARGET_VAL(PPCISD::MFVSR),
/*100419*/            OPC_MoveChild0,
/*100420*/            OPC_CheckOpcode, TARGET_VAL(PPCISD::FCTIWUZ),
/*100423*/            OPC_MoveChild0,
/*100424*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*100427*/            OPC_CheckChild0Same, 0,
/*100429*/            OPC_CheckChild1Integer, 1, 
/*100431*/            OPC_MoveParent,
/*100432*/            OPC_CheckType, MVT::f64,
/*100434*/            OPC_MoveParent,
/*100435*/            OPC_CheckType, MVT::i32,
/*100437*/            OPC_MoveParent,
/*100438*/            OPC_MoveChild2,
/*100439*/            OPC_CheckOpcode, TARGET_VAL(PPCISD::MFVSR),
/*100442*/            OPC_MoveChild0,
/*100443*/            OPC_CheckOpcode, TARGET_VAL(PPCISD::FCTIWUZ),
/*100446*/            OPC_MoveChild0,
/*100447*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*100450*/            OPC_RecordChild0, // #1 = $B
/*100451*/            OPC_CheckChild0Type, MVT::v2f64,
/*100453*/            OPC_CheckChild1Integer, 0, 
/*100455*/            OPC_MoveParent,
/*100456*/            OPC_CheckType, MVT::f64,
/*100458*/            OPC_MoveParent,
/*100459*/            OPC_CheckType, MVT::i32,
/*100461*/            OPC_MoveParent,
/*100462*/            OPC_MoveChild3,
/*100463*/            OPC_CheckOpcode, TARGET_VAL(PPCISD::MFVSR),
/*100466*/            OPC_MoveChild0,
/*100467*/            OPC_CheckOpcode, TARGET_VAL(PPCISD::FCTIWUZ),
/*100470*/            OPC_MoveChild0,
/*100471*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*100474*/            OPC_CheckChild0Same, 1,
/*100476*/            OPC_CheckChild1Integer, 1, 
/*100478*/            OPC_MoveParent,
/*100479*/            OPC_CheckType, MVT::f64,
/*100481*/            OPC_MoveParent,
/*100482*/            OPC_CheckType, MVT::i32,
/*100484*/            OPC_MoveParent,
/*100485*/            OPC_CheckType, MVT::v4i32,
/*100487*/            OPC_Scope, 48, /*->100537*/ // 2 children in Scope
/*100489*/              OPC_CheckPatternPredicate, 30, // (PPCSubTarget->hasVSX()) && (!PPCSubTarget->isLittleEndian())
/*100491*/              OPC_EmitInteger, MVT::i32, 0, 
/*100494*/              OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                            MVT::v2f64, 3/*#Ops*/, 0, 1, 2,  // Results = #3
/*100503*/              OPC_EmitNode1, TARGET_VAL(PPC::XVCVDPUXWS), 0,
                            MVT::v4i32, 1/*#Ops*/, 3,  // Results = #4
/*100510*/              OPC_EmitInteger, MVT::i32, 3, 
/*100513*/              OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                            MVT::v2f64, 3/*#Ops*/, 0, 1, 5,  // Results = #6
/*100522*/              OPC_EmitNode1, TARGET_VAL(PPC::XVCVDPUXWS), 0,
                            MVT::v4i32, 1/*#Ops*/, 6,  // Results = #7
/*100529*/              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] })))
/*100537*/            /*Scope*/ 48, /*->100586*/
/*100538*/              OPC_CheckPatternPredicate, 19, // (PPCSubTarget->hasVSX()) && (PPCSubTarget->isLittleEndian())
/*100540*/              OPC_EmitInteger, MVT::i32, 0, 
/*100543*/              OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                            MVT::v2f64, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*100552*/              OPC_EmitNode1, TARGET_VAL(PPC::XVCVDPUXWS), 0,
                            MVT::v4i32, 1/*#Ops*/, 3,  // Results = #4
/*100559*/              OPC_EmitInteger, MVT::i32, 3, 
/*100562*/              OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                            MVT::v2f64, 3/*#Ops*/, 1, 0, 5,  // Results = #6
/*100571*/              OPC_EmitNode1, TARGET_VAL(PPC::XVCVDPUXWS), 0,
                            MVT::v4i32, 1/*#Ops*/, 6,  // Results = #7
/*100578*/              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] })))
/*100586*/            0, /*End of Scope*/
/*100587*/          /*Scope*/ 62|128,2/*318*/, /*->100907*/
/*100589*/            OPC_RecordChild0, // #0 = $A
/*100590*/            OPC_CheckType, MVT::f64,
/*100592*/            OPC_MoveParent,
/*100593*/            OPC_CheckType, MVT::i32,
/*100595*/            OPC_MoveParent,
/*100596*/            OPC_MoveChild1,
/*100597*/            OPC_CheckOpcode, TARGET_VAL(PPCISD::MFVSR),
/*100600*/            OPC_MoveChild0,
/*100601*/            OPC_CheckOpcode, TARGET_VAL(PPCISD::FCTIWUZ),
/*100604*/            OPC_CheckType, MVT::f64,
/*100606*/            OPC_Scope, 71, /*->100679*/ // 2 children in Scope
/*100608*/              OPC_CheckChild0Same, 0,
/*100610*/              OPC_MoveParent,
/*100611*/              OPC_CheckType, MVT::i32,
/*100613*/              OPC_MoveParent,
/*100614*/              OPC_MoveChild2,
/*100615*/              OPC_CheckOpcode, TARGET_VAL(PPCISD::MFVSR),
/*100618*/              OPC_MoveChild0,
/*100619*/              OPC_CheckOpcode, TARGET_VAL(PPCISD::FCTIWUZ),
/*100622*/              OPC_CheckChild0Same, 0,
/*100624*/              OPC_CheckType, MVT::f64,
/*100626*/              OPC_MoveParent,
/*100627*/              OPC_CheckType, MVT::i32,
/*100629*/              OPC_MoveParent,
/*100630*/              OPC_MoveChild3,
/*100631*/              OPC_CheckOpcode, TARGET_VAL(PPCISD::MFVSR),
/*100634*/              OPC_MoveChild0,
/*100635*/              OPC_CheckOpcode, TARGET_VAL(PPCISD::FCTIWUZ),
/*100638*/              OPC_CheckChild0Same, 0,
/*100640*/              OPC_CheckType, MVT::f64,
/*100642*/              OPC_MoveParent,
/*100643*/              OPC_CheckType, MVT::i32,
/*100645*/              OPC_MoveParent,
/*100646*/              OPC_CheckType, MVT::v4i32,
/*100648*/              OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/*100650*/              OPC_EmitNode1, TARGET_VAL(PPC::XSCVDPUXWS), 0,
                            MVT::f64, 1/*#Ops*/, 0,  // Results = #1
/*100657*/              OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*100660*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v4i32, 2/*#Ops*/, 1, 2,  // Results = #3
/*100668*/              OPC_EmitInteger, MVT::i32, 1, 
/*100671*/              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] })
/*100679*/            /*Scope*/ 97|128,1/*225*/, /*->100906*/
/*100681*/              OPC_RecordChild0, // #1 = $B
/*100682*/              OPC_MoveParent,
/*100683*/              OPC_CheckType, MVT::i32,
/*100685*/              OPC_MoveParent,
/*100686*/              OPC_MoveChild2,
/*100687*/              OPC_CheckOpcode, TARGET_VAL(PPCISD::MFVSR),
/*100690*/              OPC_MoveChild0,
/*100691*/              OPC_CheckOpcode, TARGET_VAL(PPCISD::FCTIWUZ),
/*100694*/              OPC_RecordChild0, // #2 = $C
/*100695*/              OPC_CheckType, MVT::f64,
/*100697*/              OPC_MoveParent,
/*100698*/              OPC_CheckType, MVT::i32,
/*100700*/              OPC_MoveParent,
/*100701*/              OPC_MoveChild3,
/*100702*/              OPC_CheckOpcode, TARGET_VAL(PPCISD::MFVSR),
/*100705*/              OPC_MoveChild0,
/*100706*/              OPC_CheckOpcode, TARGET_VAL(PPCISD::FCTIWUZ),
/*100709*/              OPC_RecordChild0, // #3 = $D
/*100710*/              OPC_CheckType, MVT::f64,
/*100712*/              OPC_MoveParent,
/*100713*/              OPC_CheckType, MVT::i32,
/*100715*/              OPC_MoveParent,
/*100716*/              OPC_CheckType, MVT::v4i32,
/*100718*/              OPC_Scope, 92, /*->100812*/ // 2 children in Scope
/*100720*/                OPC_CheckPatternPredicate, 30, // (PPCSubTarget->hasVSX()) && (!PPCSubTarget->isLittleEndian())
/*100722*/                OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*100725*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4i32, 2/*#Ops*/, 0, 4,  // Results = #5
/*100733*/                OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*100736*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4i32, 2/*#Ops*/, 2, 6,  // Results = #7
/*100744*/                OPC_EmitInteger, MVT::i32, 0, 
/*100747*/                OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                              MVT::v2f64, 3/*#Ops*/, 5, 7, 8,  // Results = #9
/*100756*/                OPC_EmitNode1, TARGET_VAL(PPC::XVCVDPUXWS), 0,
                              MVT::v4i32, 1/*#Ops*/, 9,  // Results = #10
/*100763*/                OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*100766*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4i32, 2/*#Ops*/, 1, 11,  // Results = #12
/*100774*/                OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*100777*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4i32, 2/*#Ops*/, 3, 13,  // Results = #14
/*100785*/                OPC_EmitInteger, MVT::i32, 0, 
/*100788*/                OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                              MVT::v2f64, 3/*#Ops*/, 12, 14, 15,  // Results = #16
/*100797*/                OPC_EmitNode1, TARGET_VAL(PPC::XVCVDPUXWS), 0,
                              MVT::v4i32, 1/*#Ops*/, 16,  // Results = #17
/*100804*/                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] })))
/*100812*/              /*Scope*/ 92, /*->100905*/
/*100813*/                OPC_CheckPatternPredicate, 19, // (PPCSubTarget->hasVSX()) && (PPCSubTarget->isLittleEndian())
/*100815*/                OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*100818*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4i32, 2/*#Ops*/, 3, 4,  // Results = #5
/*100826*/                OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*100829*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4i32, 2/*#Ops*/, 1, 6,  // Results = #7
/*100837*/                OPC_EmitInteger, MVT::i32, 0, 
/*100840*/                OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                              MVT::v2f64, 3/*#Ops*/, 5, 7, 8,  // Results = #9
/*100849*/                OPC_EmitNode1, TARGET_VAL(PPC::XVCVDPUXWS), 0,
                              MVT::v4i32, 1/*#Ops*/, 9,  // Results = #10
/*100856*/                OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*100859*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4i32, 2/*#Ops*/, 2, 11,  // Results = #12
/*100867*/                OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*100870*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4i32, 2/*#Ops*/, 0, 13,  // Results = #14
/*100878*/                OPC_EmitInteger, MVT::i32, 0, 
/*100881*/                OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                              MVT::v2f64, 3/*#Ops*/, 12, 14, 15,  // Results = #16
/*100890*/                OPC_EmitNode1, TARGET_VAL(PPC::XVCVDPUXWS), 0,
                              MVT::v4i32, 1/*#Ops*/, 16,  // Results = #17
/*100897*/                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] })))
/*100905*/              0, /*End of Scope*/
/*100906*/            0, /*End of Scope*/
/*100907*/          0, /*End of Scope*/
/*100908*/        /*SwitchOpcode*/ 66, TARGET_VAL(PPCISD::FCTIDZ),// ->100977
/*100911*/          OPC_MoveChild0,
/*100912*/          OPC_CheckOpcode, TARGET_VAL(ISD::FP_EXTEND),
/*100915*/          OPC_RecordChild0, // #0 = $A
/*100916*/          OPC_MoveParent,
/*100917*/          OPC_CheckType, MVT::f64,
/*100919*/          OPC_MoveParent,
/*100920*/          OPC_CheckType, MVT::i64,
/*100922*/          OPC_MoveParent,
/*100923*/          OPC_MoveChild1,
/*100924*/          OPC_CheckOpcode, TARGET_VAL(PPCISD::MFVSR),
/*100927*/          OPC_MoveChild0,
/*100928*/          OPC_CheckOpcode, TARGET_VAL(PPCISD::FCTIDZ),
/*100931*/          OPC_MoveChild0,
/*100932*/          OPC_CheckOpcode, TARGET_VAL(ISD::FP_EXTEND),
/*100935*/          OPC_CheckChild0Same, 0,
/*100937*/          OPC_MoveParent,
/*100938*/          OPC_CheckType, MVT::f64,
/*100940*/          OPC_MoveParent,
/*100941*/          OPC_CheckType, MVT::i64,
/*100943*/          OPC_MoveParent,
/*100944*/          OPC_CheckType, MVT::v2i64,
/*100946*/          OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/*100948*/          OPC_EmitNode1, TARGET_VAL(PPC::XSCVDPSXDSs), 0,
                        MVT::f32, 1/*#Ops*/, 0,  // Results = #1
/*100955*/          OPC_EmitInteger, MVT::i32, PPC::VSFRCRegClassID,
/*100958*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::f64, 2/*#Ops*/, 1, 2,  // Results = #3
/*100966*/          OPC_EmitInteger, MVT::i32, 0, 
/*100969*/          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] })
/*100977*/        /*SwitchOpcode*/ 66, TARGET_VAL(PPCISD::FCTIDUZ),// ->101046
/*100980*/          OPC_MoveChild0,
/*100981*/          OPC_CheckOpcode, TARGET_VAL(ISD::FP_EXTEND),
/*100984*/          OPC_RecordChild0, // #0 = $A
/*100985*/          OPC_MoveParent,
/*100986*/          OPC_CheckType, MVT::f64,
/*100988*/          OPC_MoveParent,
/*100989*/          OPC_CheckType, MVT::i64,
/*100991*/          OPC_MoveParent,
/*100992*/          OPC_MoveChild1,
/*100993*/          OPC_CheckOpcode, TARGET_VAL(PPCISD::MFVSR),
/*100996*/          OPC_MoveChild0,
/*100997*/          OPC_CheckOpcode, TARGET_VAL(PPCISD::FCTIDUZ),
/*101000*/          OPC_MoveChild0,
/*101001*/          OPC_CheckOpcode, TARGET_VAL(ISD::FP_EXTEND),
/*101004*/          OPC_CheckChild0Same, 0,
/*101006*/          OPC_MoveParent,
/*101007*/          OPC_CheckType, MVT::f64,
/*101009*/          OPC_MoveParent,
/*101010*/          OPC_CheckType, MVT::i64,
/*101012*/          OPC_MoveParent,
/*101013*/          OPC_CheckType, MVT::v2i64,
/*101015*/          OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/*101017*/          OPC_EmitNode1, TARGET_VAL(PPC::XSCVDPUXDSs), 0,
                        MVT::f32, 1/*#Ops*/, 0,  // Results = #1
/*101024*/          OPC_EmitInteger, MVT::i32, PPC::VSFRCRegClassID,
/*101027*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::f64, 2/*#Ops*/, 1, 2,  // Results = #3
/*101035*/          OPC_EmitInteger, MVT::i32, 0, 
/*101038*/          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] })
/*101046*/        0, // EndSwitchOpcode
/*101047*/      /*SwitchOpcode*/ 61|128,4/*573*/, TARGET_VAL(ISD::SIGN_EXTEND_INREG),// ->101624
/*101051*/        OPC_MoveChild0,
/*101052*/        OPC_SwitchOpcode /*2 cases */, 87|128,2/*343*/, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),// ->101400
/*101057*/          OPC_RecordChild0, // #0 = $A
/*101058*/          OPC_Scope, 40|128,1/*168*/, /*->101229*/ // 2 children in Scope
/*101061*/            OPC_CheckChild0Type, MVT::v8i16,
/*101063*/            OPC_Scope, 81, /*->101146*/ // 2 children in Scope
/*101065*/              OPC_CheckChild1Integer, 0, 
/*101067*/              OPC_MoveParent,
/*101068*/              OPC_MoveChild1,
/*101069*/              OPC_CheckValueType, MVT::i16,
/*101071*/              OPC_MoveParent,
/*101072*/              OPC_CheckType, MVT::i32,
/*101074*/              OPC_MoveParent,
/*101075*/              OPC_MoveChild1,
/*101076*/              OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
/*101079*/              OPC_MoveChild0,
/*101080*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*101083*/              OPC_CheckChild0Same, 0,
/*101085*/              OPC_CheckChild1Integer, 2, 
/*101087*/              OPC_MoveParent,
/*101088*/              OPC_MoveChild1,
/*101089*/              OPC_CheckValueType, MVT::i16,
/*101091*/              OPC_MoveParent,
/*101092*/              OPC_CheckType, MVT::i32,
/*101094*/              OPC_MoveParent,
/*101095*/              OPC_MoveChild2,
/*101096*/              OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
/*101099*/              OPC_MoveChild0,
/*101100*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*101103*/              OPC_CheckChild0Same, 0,
/*101105*/              OPC_CheckChild1Integer, 4, 
/*101107*/              OPC_MoveParent,
/*101108*/              OPC_MoveChild1,
/*101109*/              OPC_CheckValueType, MVT::i16,
/*101111*/              OPC_MoveParent,
/*101112*/              OPC_CheckType, MVT::i32,
/*101114*/              OPC_MoveParent,
/*101115*/              OPC_MoveChild3,
/*101116*/              OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
/*101119*/              OPC_MoveChild0,
/*101120*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*101123*/              OPC_CheckChild0Same, 0,
/*101125*/              OPC_CheckChild1Integer, 6, 
/*101127*/              OPC_MoveParent,
/*101128*/              OPC_MoveChild1,
/*101129*/              OPC_CheckValueType, MVT::i16,
/*101131*/              OPC_MoveParent,
/*101132*/              OPC_CheckType, MVT::i32,
/*101134*/              OPC_MoveParent,
/*101135*/              OPC_CheckType, MVT::v4i32,
/*101137*/              OPC_CheckPatternPredicate, 20, // (PPCSubTarget->hasP9Altivec()) && (PPCSubTarget->isLittleEndian())
/*101139*/              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)
/*101146*/            /*Scope*/ 81, /*->101228*/
/*101147*/              OPC_CheckChild1Integer, 1, 
/*101149*/              OPC_MoveParent,
/*101150*/              OPC_MoveChild1,
/*101151*/              OPC_CheckValueType, MVT::i16,
/*101153*/              OPC_MoveParent,
/*101154*/              OPC_CheckType, MVT::i32,
/*101156*/              OPC_MoveParent,
/*101157*/              OPC_MoveChild1,
/*101158*/              OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
/*101161*/              OPC_MoveChild0,
/*101162*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*101165*/              OPC_CheckChild0Same, 0,
/*101167*/              OPC_CheckChild1Integer, 3, 
/*101169*/              OPC_MoveParent,
/*101170*/              OPC_MoveChild1,
/*101171*/              OPC_CheckValueType, MVT::i16,
/*101173*/              OPC_MoveParent,
/*101174*/              OPC_CheckType, MVT::i32,
/*101176*/              OPC_MoveParent,
/*101177*/              OPC_MoveChild2,
/*101178*/              OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
/*101181*/              OPC_MoveChild0,
/*101182*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*101185*/              OPC_CheckChild0Same, 0,
/*101187*/              OPC_CheckChild1Integer, 5, 
/*101189*/              OPC_MoveParent,
/*101190*/              OPC_MoveChild1,
/*101191*/              OPC_CheckValueType, MVT::i16,
/*101193*/              OPC_MoveParent,
/*101194*/              OPC_CheckType, MVT::i32,
/*101196*/              OPC_MoveParent,
/*101197*/              OPC_MoveChild3,
/*101198*/              OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
/*101201*/              OPC_MoveChild0,
/*101202*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*101205*/              OPC_CheckChild0Same, 0,
/*101207*/              OPC_CheckChild1Integer, 7, 
/*101209*/              OPC_MoveParent,
/*101210*/              OPC_MoveChild1,
/*101211*/              OPC_CheckValueType, MVT::i16,
/*101213*/              OPC_MoveParent,
/*101214*/              OPC_CheckType, MVT::i32,
/*101216*/              OPC_MoveParent,
/*101217*/              OPC_CheckType, MVT::v4i32,
/*101219*/              OPC_CheckPatternPredicate, 21, // (PPCSubTarget->hasP9Altivec()) && (!PPCSubTarget->isLittleEndian())
/*101221*/              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)
/*101228*/            0, /*End of Scope*/
/*101229*/          /*Scope*/ 40|128,1/*168*/, /*->101399*/
/*101231*/            OPC_CheckChild0Type, MVT::v16i8,
/*101233*/            OPC_Scope, 81, /*->101316*/ // 2 children in Scope
/*101235*/              OPC_CheckChild1Integer, 0, 
/*101237*/              OPC_MoveParent,
/*101238*/              OPC_MoveChild1,
/*101239*/              OPC_CheckValueType, MVT::i8,
/*101241*/              OPC_MoveParent,
/*101242*/              OPC_CheckType, MVT::i32,
/*101244*/              OPC_MoveParent,
/*101245*/              OPC_MoveChild1,
/*101246*/              OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
/*101249*/              OPC_MoveChild0,
/*101250*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*101253*/              OPC_CheckChild0Same, 0,
/*101255*/              OPC_CheckChild1Integer, 4, 
/*101257*/              OPC_MoveParent,
/*101258*/              OPC_MoveChild1,
/*101259*/              OPC_CheckValueType, MVT::i8,
/*101261*/              OPC_MoveParent,
/*101262*/              OPC_CheckType, MVT::i32,
/*101264*/              OPC_MoveParent,
/*101265*/              OPC_MoveChild2,
/*101266*/              OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
/*101269*/              OPC_MoveChild0,
/*101270*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*101273*/              OPC_CheckChild0Same, 0,
/*101275*/              OPC_CheckChild1Integer, 8, 
/*101277*/              OPC_MoveParent,
/*101278*/              OPC_MoveChild1,
/*101279*/              OPC_CheckValueType, MVT::i8,
/*101281*/              OPC_MoveParent,
/*101282*/              OPC_CheckType, MVT::i32,
/*101284*/              OPC_MoveParent,
/*101285*/              OPC_MoveChild3,
/*101286*/              OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
/*101289*/              OPC_MoveChild0,
/*101290*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*101293*/              OPC_CheckChild0Same, 0,
/*101295*/              OPC_CheckChild1Integer, 12, 
/*101297*/              OPC_MoveParent,
/*101298*/              OPC_MoveChild1,
/*101299*/              OPC_CheckValueType, MVT::i8,
/*101301*/              OPC_MoveParent,
/*101302*/              OPC_CheckType, MVT::i32,
/*101304*/              OPC_MoveParent,
/*101305*/              OPC_CheckType, MVT::v4i32,
/*101307*/              OPC_CheckPatternPredicate, 20, // (PPCSubTarget->hasP9Altivec()) && (PPCSubTarget->isLittleEndian())
/*101309*/              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)
/*101316*/            /*Scope*/ 81, /*->101398*/
/*101317*/              OPC_CheckChild1Integer, 3, 
/*101319*/              OPC_MoveParent,
/*101320*/              OPC_MoveChild1,
/*101321*/              OPC_CheckValueType, MVT::i8,
/*101323*/              OPC_MoveParent,
/*101324*/              OPC_CheckType, MVT::i32,
/*101326*/              OPC_MoveParent,
/*101327*/              OPC_MoveChild1,
/*101328*/              OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
/*101331*/              OPC_MoveChild0,
/*101332*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*101335*/              OPC_CheckChild0Same, 0,
/*101337*/              OPC_CheckChild1Integer, 7, 
/*101339*/              OPC_MoveParent,
/*101340*/              OPC_MoveChild1,
/*101341*/              OPC_CheckValueType, MVT::i8,
/*101343*/              OPC_MoveParent,
/*101344*/              OPC_CheckType, MVT::i32,
/*101346*/              OPC_MoveParent,
/*101347*/              OPC_MoveChild2,
/*101348*/              OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
/*101351*/              OPC_MoveChild0,
/*101352*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*101355*/              OPC_CheckChild0Same, 0,
/*101357*/              OPC_CheckChild1Integer, 11, 
/*101359*/              OPC_MoveParent,
/*101360*/              OPC_MoveChild1,
/*101361*/              OPC_CheckValueType, MVT::i8,
/*101363*/              OPC_MoveParent,
/*101364*/              OPC_CheckType, MVT::i32,
/*101366*/              OPC_MoveParent,
/*101367*/              OPC_MoveChild3,
/*101368*/              OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
/*101371*/              OPC_MoveChild0,
/*101372*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*101375*/              OPC_CheckChild0Same, 0,
/*101377*/              OPC_CheckChild1Integer, 15, 
/*101379*/              OPC_MoveParent,
/*101380*/              OPC_MoveChild1,
/*101381*/              OPC_CheckValueType, MVT::i8,
/*101383*/              OPC_MoveParent,
/*101384*/              OPC_CheckType, MVT::i32,
/*101386*/              OPC_MoveParent,
/*101387*/              OPC_CheckType, MVT::v4i32,
/*101389*/              OPC_CheckPatternPredicate, 21, // (PPCSubTarget->hasP9Altivec()) && (!PPCSubTarget->isLittleEndian())
/*101391*/              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)
/*101398*/            0, /*End of Scope*/
/*101399*/          0, /*End of Scope*/
/*101400*/        /*SwitchOpcode*/ 91|128,1/*219*/, TARGET_VAL(ISD::ANY_EXTEND),// ->101623
/*101404*/          OPC_MoveChild0,
/*101405*/          OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*101408*/          OPC_RecordChild0, // #0 = $A
/*101409*/          OPC_CheckType, MVT::i32,
/*101411*/          OPC_Scope, 104, /*->101517*/ // 2 children in Scope
/*101413*/            OPC_CheckChild0Type, MVT::v8i16,
/*101415*/            OPC_Scope, 49, /*->101466*/ // 2 children in Scope
/*101417*/              OPC_CheckChild1Integer, 0, 
/*101419*/              OPC_MoveParent,
/*101420*/              OPC_MoveParent,
/*101421*/              OPC_MoveChild1,
/*101422*/              OPC_CheckValueType, MVT::i16,
/*101424*/              OPC_MoveParent,
/*101425*/              OPC_CheckType, MVT::i64,
/*101427*/              OPC_MoveParent,
/*101428*/              OPC_MoveChild1,
/*101429*/              OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
/*101432*/              OPC_MoveChild0,
/*101433*/              OPC_CheckOpcode, TARGET_VAL(ISD::ANY_EXTEND),
/*101436*/              OPC_MoveChild0,
/*101437*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*101440*/              OPC_CheckChild0Same, 0,
/*101442*/              OPC_CheckChild1Integer, 4, 
/*101444*/              OPC_CheckType, MVT::i32,
/*101446*/              OPC_MoveParent,
/*101447*/              OPC_MoveParent,
/*101448*/              OPC_MoveChild1,
/*101449*/              OPC_CheckValueType, MVT::i16,
/*101451*/              OPC_MoveParent,
/*101452*/              OPC_CheckType, MVT::i64,
/*101454*/              OPC_MoveParent,
/*101455*/              OPC_CheckType, MVT::v2i64,
/*101457*/              OPC_CheckPatternPredicate, 20, // (PPCSubTarget->hasP9Altivec()) && (PPCSubTarget->isLittleEndian())
/*101459*/              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)
/*101466*/            /*Scope*/ 49, /*->101516*/
/*101467*/              OPC_CheckChild1Integer, 3, 
/*101469*/              OPC_MoveParent,
/*101470*/              OPC_MoveParent,
/*101471*/              OPC_MoveChild1,
/*101472*/              OPC_CheckValueType, MVT::i16,
/*101474*/              OPC_MoveParent,
/*101475*/              OPC_CheckType, MVT::i64,
/*101477*/              OPC_MoveParent,
/*101478*/              OPC_MoveChild1,
/*101479*/              OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
/*101482*/              OPC_MoveChild0,
/*101483*/              OPC_CheckOpcode, TARGET_VAL(ISD::ANY_EXTEND),
/*101486*/              OPC_MoveChild0,
/*101487*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*101490*/              OPC_CheckChild0Same, 0,
/*101492*/              OPC_CheckChild1Integer, 7, 
/*101494*/              OPC_CheckType, MVT::i32,
/*101496*/              OPC_MoveParent,
/*101497*/              OPC_MoveParent,
/*101498*/              OPC_MoveChild1,
/*101499*/              OPC_CheckValueType, MVT::i16,
/*101501*/              OPC_MoveParent,
/*101502*/              OPC_CheckType, MVT::i64,
/*101504*/              OPC_MoveParent,
/*101505*/              OPC_CheckType, MVT::v2i64,
/*101507*/              OPC_CheckPatternPredicate, 21, // (PPCSubTarget->hasP9Altivec()) && (!PPCSubTarget->isLittleEndian())
/*101509*/              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)
/*101516*/            0, /*End of Scope*/
/*101517*/          /*Scope*/ 104, /*->101622*/
/*101518*/            OPC_CheckChild0Type, MVT::v16i8,
/*101520*/            OPC_Scope, 49, /*->101571*/ // 2 children in Scope
/*101522*/              OPC_CheckChild1Integer, 0, 
/*101524*/              OPC_MoveParent,
/*101525*/              OPC_MoveParent,
/*101526*/              OPC_MoveChild1,
/*101527*/              OPC_CheckValueType, MVT::i8,
/*101529*/              OPC_MoveParent,
/*101530*/              OPC_CheckType, MVT::i64,
/*101532*/              OPC_MoveParent,
/*101533*/              OPC_MoveChild1,
/*101534*/              OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
/*101537*/              OPC_MoveChild0,
/*101538*/              OPC_CheckOpcode, TARGET_VAL(ISD::ANY_EXTEND),
/*101541*/              OPC_MoveChild0,
/*101542*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*101545*/              OPC_CheckChild0Same, 0,
/*101547*/              OPC_CheckChild1Integer, 8, 
/*101549*/              OPC_CheckType, MVT::i32,
/*101551*/              OPC_MoveParent,
/*101552*/              OPC_MoveParent,
/*101553*/              OPC_MoveChild1,
/*101554*/              OPC_CheckValueType, MVT::i8,
/*101556*/              OPC_MoveParent,
/*101557*/              OPC_CheckType, MVT::i64,
/*101559*/              OPC_MoveParent,
/*101560*/              OPC_CheckType, MVT::v2i64,
/*101562*/              OPC_CheckPatternPredicate, 20, // (PPCSubTarget->hasP9Altivec()) && (PPCSubTarget->isLittleEndian())
/*101564*/              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)
/*101571*/            /*Scope*/ 49, /*->101621*/
/*101572*/              OPC_CheckChild1Integer, 7, 
/*101574*/              OPC_MoveParent,
/*101575*/              OPC_MoveParent,
/*101576*/              OPC_MoveChild1,
/*101577*/              OPC_CheckValueType, MVT::i8,
/*101579*/              OPC_MoveParent,
/*101580*/              OPC_CheckType, MVT::i64,
/*101582*/              OPC_MoveParent,
/*101583*/              OPC_MoveChild1,
/*101584*/              OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
/*101587*/              OPC_MoveChild0,
/*101588*/              OPC_CheckOpcode, TARGET_VAL(ISD::ANY_EXTEND),
/*101591*/              OPC_MoveChild0,
/*101592*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*101595*/              OPC_CheckChild0Same, 0,
/*101597*/              OPC_CheckChild1Integer, 15, 
/*101599*/              OPC_CheckType, MVT::i32,
/*101601*/              OPC_MoveParent,
/*101602*/              OPC_MoveParent,
/*101603*/              OPC_MoveChild1,
/*101604*/              OPC_CheckValueType, MVT::i8,
/*101606*/              OPC_MoveParent,
/*101607*/              OPC_CheckType, MVT::i64,
/*101609*/              OPC_MoveParent,
/*101610*/              OPC_CheckType, MVT::v2i64,
/*101612*/              OPC_CheckPatternPredicate, 21, // (PPCSubTarget->hasP9Altivec()) && (!PPCSubTarget->isLittleEndian())
/*101614*/              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)
/*101621*/            0, /*End of Scope*/
/*101622*/          0, /*End of Scope*/
/*101623*/        0, // EndSwitchOpcode
/*101624*/      /*SwitchOpcode*/ 83, TARGET_VAL(ISD::SIGN_EXTEND),// ->101710
/*101627*/        OPC_MoveChild0,
/*101628*/        OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*101631*/        OPC_RecordChild0, // #0 = $A
/*101632*/        OPC_CheckChild0Type, MVT::v4i32,
/*101634*/        OPC_CheckType, MVT::i32,
/*101636*/        OPC_Scope, 35, /*->101673*/ // 2 children in Scope
/*101638*/          OPC_CheckChild1Integer, 0, 
/*101640*/          OPC_MoveParent,
/*101641*/          OPC_CheckType, MVT::i64,
/*101643*/          OPC_MoveParent,
/*101644*/          OPC_MoveChild1,
/*101645*/          OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND),
/*101648*/          OPC_MoveChild0,
/*101649*/          OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*101652*/          OPC_CheckChild0Same, 0,
/*101654*/          OPC_CheckChild1Integer, 2, 
/*101656*/          OPC_CheckType, MVT::i32,
/*101658*/          OPC_MoveParent,
/*101659*/          OPC_CheckType, MVT::i64,
/*101661*/          OPC_MoveParent,
/*101662*/          OPC_CheckType, MVT::v2i64,
/*101664*/          OPC_CheckPatternPredicate, 20, // (PPCSubTarget->hasP9Altivec()) && (PPCSubTarget->isLittleEndian())
/*101666*/          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)
/*101673*/        /*Scope*/ 35, /*->101709*/
/*101674*/          OPC_CheckChild1Integer, 1, 
/*101676*/          OPC_MoveParent,
/*101677*/          OPC_CheckType, MVT::i64,
/*101679*/          OPC_MoveParent,
/*101680*/          OPC_MoveChild1,
/*101681*/          OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND),
/*101684*/          OPC_MoveChild0,
/*101685*/          OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*101688*/          OPC_CheckChild0Same, 0,
/*101690*/          OPC_CheckChild1Integer, 3, 
/*101692*/          OPC_CheckType, MVT::i32,
/*101694*/          OPC_MoveParent,
/*101695*/          OPC_CheckType, MVT::i64,
/*101697*/          OPC_MoveParent,
/*101698*/          OPC_CheckType, MVT::v2i64,
/*101700*/          OPC_CheckPatternPredicate, 21, // (PPCSubTarget->hasP9Altivec()) && (!PPCSubTarget->isLittleEndian())
/*101702*/          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)
/*101709*/        0, /*End of Scope*/
/*101710*/      0, // EndSwitchOpcode
/*101711*/    /*Scope*/ 29, /*->101741*/
/*101712*/      OPC_RecordChild0, // #0 = $A
/*101713*/      OPC_MoveChild0,
/*101714*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*101717*/      OPC_CheckPredicate, 37, // Predicate_immSExt5NonZero
/*101719*/      OPC_CheckType, MVT::i32,
/*101721*/      OPC_MoveParent,
/*101722*/      OPC_CheckChild1Same, 0,
/*101724*/      OPC_CheckChild2Same, 0,
/*101726*/      OPC_CheckChild3Same, 0,
/*101728*/      OPC_CheckType, MVT::v4i32,
/*101730*/      OPC_CheckPatternPredicate, 36, // (PPCSubTarget->hasDirectMove())
/*101732*/      OPC_EmitConvertToTarget, 0,
/*101734*/      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)
/*101741*/    /*Scope*/ 35|128,1/*163*/, /*->101906*/
/*101743*/      OPC_MoveChild0,
/*101744*/      OPC_CheckOpcode, TARGET_VAL(PPCISD::MFVSR),
/*101747*/      OPC_MoveChild0,
/*101748*/      OPC_SwitchOpcode /*2 cases */, 75, TARGET_VAL(PPCISD::FCTIDZ),// ->101827
/*101752*/        OPC_RecordChild0, // #0 = $A
/*101753*/        OPC_CheckType, MVT::f64,
/*101755*/        OPC_MoveParent,
/*101756*/        OPC_CheckType, MVT::i64,
/*101758*/        OPC_MoveParent,
/*101759*/        OPC_MoveChild1,
/*101760*/        OPC_CheckOpcode, TARGET_VAL(PPCISD::MFVSR),
/*101763*/        OPC_MoveChild0,
/*101764*/        OPC_CheckOpcode, TARGET_VAL(PPCISD::FCTIDZ),
/*101767*/        OPC_CheckChild0Same, 0,
/*101769*/        OPC_CheckType, MVT::f64,
/*101771*/        OPC_MoveParent,
/*101772*/        OPC_CheckType, MVT::i64,
/*101774*/        OPC_MoveParent,
/*101775*/        OPC_CheckType, MVT::v2i64,
/*101777*/        OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/*101779*/        OPC_EmitNode1, TARGET_VAL(PPC::XSCVDPSXDS), 0,
                      MVT::f64, 1/*#Ops*/, 0,  // Results = #1
/*101786*/        OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*101789*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v4i32, 2/*#Ops*/, 1, 2,  // Results = #3
/*101797*/        OPC_EmitNode1, TARGET_VAL(PPC::XSCVDPSXDS), 0,
                      MVT::f64, 1/*#Ops*/, 0,  // Results = #4
/*101804*/        OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*101807*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v4i32, 2/*#Ops*/, 4, 5,  // Results = #6
/*101815*/        OPC_EmitInteger, MVT::i32, 0, 
/*101818*/        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] })
/*101827*/      /*SwitchOpcode*/ 75, TARGET_VAL(PPCISD::FCTIDUZ),// ->101905
/*101830*/        OPC_RecordChild0, // #0 = $A
/*101831*/        OPC_CheckType, MVT::f64,
/*101833*/        OPC_MoveParent,
/*101834*/        OPC_CheckType, MVT::i64,
/*101836*/        OPC_MoveParent,
/*101837*/        OPC_MoveChild1,
/*101838*/        OPC_CheckOpcode, TARGET_VAL(PPCISD::MFVSR),
/*101841*/        OPC_MoveChild0,
/*101842*/        OPC_CheckOpcode, TARGET_VAL(PPCISD::FCTIDUZ),
/*101845*/        OPC_CheckChild0Same, 0,
/*101847*/        OPC_CheckType, MVT::f64,
/*101849*/        OPC_MoveParent,
/*101850*/        OPC_CheckType, MVT::i64,
/*101852*/        OPC_MoveParent,
/*101853*/        OPC_CheckType, MVT::v2i64,
/*101855*/        OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/*101857*/        OPC_EmitNode1, TARGET_VAL(PPC::XSCVDPUXDS), 0,
                      MVT::f64, 1/*#Ops*/, 0,  // Results = #1
/*101864*/        OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*101867*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v4i32, 2/*#Ops*/, 1, 2,  // Results = #3
/*101875*/        OPC_EmitNode1, TARGET_VAL(PPC::XSCVDPUXDS), 0,
                      MVT::f64, 1/*#Ops*/, 0,  // Results = #4
/*101882*/        OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*101885*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v4i32, 2/*#Ops*/, 4, 5,  // Results = #6
/*101893*/        OPC_EmitInteger, MVT::i32, 0, 
/*101896*/        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] })
/*101905*/      0, // EndSwitchOpcode
/*101906*/    /*Scope*/ 21, /*->101928*/
/*101907*/      OPC_CheckImmAllZerosV,
/*101908*/      OPC_SwitchType /*2 cases */, 8, MVT::v4i32,// ->101919
/*101911*/        OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/*101913*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::XXLXORz), 0,
                      MVT::v4i32, 0/*#Ops*/, 
                  // Src: immAllZerosV:{ *:[v4i32] } - Complexity = 403
                  // Dst: (XXLXORz:{ *:[v4i32] })
/*101919*/      /*SwitchType*/ 6, MVT::v2i64,// ->101927
/*101921*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::XXLXORz), 0,
                      MVT::v2i64, 0/*#Ops*/, 
                  // Src: immAllZerosV:{ *:[v2i64] } - Complexity = 403
                  // Dst: (XXLXORz:{ *:[v2i64] })
/*101927*/      0, // EndSwitchType
/*101928*/    /*Scope*/ 53, /*->101982*/
/*101929*/      OPC_RecordChild0, // #0 = $A
/*101930*/      OPC_SwitchType /*2 cases */, 17, MVT::v4i32,// ->101950
/*101933*/        OPC_CheckChild0Type, MVT::i32,
/*101935*/        OPC_CheckChild1Same, 0,
/*101937*/        OPC_CheckChild2Same, 0,
/*101939*/        OPC_CheckChild3Same, 0,
/*101941*/        OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/*101943*/        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)
/*101950*/      /*SwitchType*/ 29, MVT::v2i64,// ->101981
/*101952*/        OPC_CheckChild0Type, MVT::i64,
/*101954*/        OPC_RecordChild1, // #1 = $rA
/*101955*/        OPC_CheckChild1Type, MVT::i64,
/*101957*/        OPC_Scope, 10, /*->101969*/ // 2 children in Scope
/*101959*/          OPC_CheckPatternPredicate, 22, // (PPCSubTarget->hasDirectMove()) && (!PPCSubTarget->isLittleEndian()) && (PPCSubTarget->isISA3_0())
/*101961*/          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)
/*101969*/        /*Scope*/ 10, /*->101980*/
/*101970*/          OPC_CheckPatternPredicate, 27, // (PPCSubTarget->hasDirectMove()) && (PPCSubTarget->isISA3_0()) && (PPCSubTarget->isLittleEndian())
/*101972*/          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)
/*101980*/        0, /*End of Scope*/
/*101981*/      0, // EndSwitchType
/*101982*/    /*Scope*/ 22, /*->102005*/
/*101983*/      OPC_CheckImmAllOnesV,
/*101984*/      OPC_CheckType, MVT::v16i8,
/*101986*/      OPC_CheckPatternPredicate, 10, // (PPCSubTarget->hasP8Vector())
/*101988*/      OPC_EmitNode1, TARGET_VAL(PPC::XXLEQVOnes), 0,
                    MVT::v4i32, 0/*#Ops*/,  // Results = #0
/*101994*/      OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*101997*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::v16i8, 2/*#Ops*/, 0, 1, 
                // Src: immAllOnesV:{ *:[v16i8] } - Complexity = 403
                // Dst: (COPY_TO_REGCLASS:{ *:[v16i8] } (XXLEQVOnes:{ *:[v4i32] }), VSRC:{ *:[i32] })
/*102005*/    /*Scope*/ 109|128,5/*749*/, /*->102756*/
/*102007*/      OPC_RecordChild0, // #0 = $A
/*102008*/      OPC_SwitchType /*2 cases */, 120|128,4/*632*/, MVT::v4i32,// ->102644
/*102012*/        OPC_CheckChild0Type, MVT::i32,
/*102014*/        OPC_Scope, 72, /*->102088*/ // 2 children in Scope
/*102016*/          OPC_CheckChild1Same, 0,
/*102018*/          OPC_CheckChild2Same, 0,
/*102020*/          OPC_CheckChild3Same, 0,
/*102022*/          OPC_Scope, 31, /*->102055*/ // 2 children in Scope
/*102024*/            OPC_CheckPatternPredicate, 44, // (PPCSubTarget->hasDirectMove()) && (!PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Vector())
/*102026*/            OPC_EmitNode1, TARGET_VAL(PPC::MTVSRWZ), 0,
                          MVT::f64, 1/*#Ops*/, 0,  // Results = #1
/*102033*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*102036*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i32, 2/*#Ops*/, 1, 2,  // Results = #3
/*102044*/            OPC_EmitInteger, MVT::i32, 1, 
/*102047*/            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] })
/*102055*/          /*Scope*/ 31, /*->102087*/
/*102056*/            OPC_CheckPatternPredicate, 45, // (PPCSubTarget->hasDirectMove()) && (PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Vector())
/*102058*/            OPC_EmitNode1, TARGET_VAL(PPC::MTVSRWZ), 0,
                          MVT::f64, 1/*#Ops*/, 0,  // Results = #1
/*102065*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*102068*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i32, 2/*#Ops*/, 1, 2,  // Results = #3
/*102076*/            OPC_EmitInteger, MVT::i32, 1, 
/*102079*/            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] })
/*102087*/          0, /*End of Scope*/
/*102088*/        /*Scope*/ 41|128,4/*553*/, /*->102643*/
/*102090*/          OPC_RecordChild1, // #1 = $B
/*102091*/          OPC_CheckChild1Type, MVT::i32,
/*102093*/          OPC_RecordChild2, // #2 = $C
/*102094*/          OPC_CheckChild2Type, MVT::i32,
/*102096*/          OPC_RecordChild3, // #3 = $D
/*102097*/          OPC_CheckChild3Type, MVT::i32,
/*102099*/          OPC_Scope, 114, /*->102215*/ // 4 children in Scope
/*102101*/            OPC_CheckPatternPredicate, 22, // (PPCSubTarget->hasDirectMove()) && (!PPCSubTarget->isLittleEndian()) && (PPCSubTarget->isISA3_0())
/*102103*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::i64, 0/*#Ops*/,  // Results = #4
/*102109*/            OPC_EmitInteger, MVT::i32, PPC::sub_32,
/*102112*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::i64, 3/*#Ops*/, 4, 1, 5,  // Results = #6
/*102121*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::i64, 0/*#Ops*/,  // Results = #7
/*102127*/            OPC_EmitInteger, MVT::i32, PPC::sub_32,
/*102130*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::i64, 3/*#Ops*/, 7, 0, 8,  // Results = #9
/*102139*/            OPC_EmitInteger, MVT::i32, 32, 
/*102142*/            OPC_EmitInteger, MVT::i32, 0, 
/*102145*/            OPC_EmitNode1, TARGET_VAL(PPC::RLDIMI), 0,
                          MVT::i64, 4/*#Ops*/, 6, 9, 10, 11,  // Results = #12
/*102155*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::i64, 0/*#Ops*/,  // Results = #13
/*102161*/            OPC_EmitInteger, MVT::i32, PPC::sub_32,
/*102164*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::i64, 3/*#Ops*/, 13, 3, 14,  // Results = #15
/*102173*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::i64, 0/*#Ops*/,  // Results = #16
/*102179*/            OPC_EmitInteger, MVT::i32, PPC::sub_32,
/*102182*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::i64, 3/*#Ops*/, 16, 2, 17,  // Results = #18
/*102191*/            OPC_EmitInteger, MVT::i32, 32, 
/*102194*/            OPC_EmitInteger, MVT::i32, 0, 
/*102197*/            OPC_EmitNode1, TARGET_VAL(PPC::RLDIMI), 0,
                          MVT::i64, 4/*#Ops*/, 15, 18, 19, 20,  // Results = #21
/*102207*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::MTVSRDD), 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: (MTVSRDD:{ *:[v4i32] } (RLDIMI:{ *:[i64] } (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), ?:{ *:[i32] }:$B, sub_32:{ *:[i32] }), (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), ?:{ *:[i32] }:$A, sub_32:{ *:[i32] }), 32:{ *:[i32] }, 0:{ *:[i32] }), (RLDIMI:{ *:[i64] } (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), ?:{ *:[i32] }:$D, sub_32:{ *:[i32] }), (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), ?:{ *:[i32] }:$C, sub_32:{ *:[i32] }), 32:{ *:[i32] }, 0:{ *:[i32] }))
/*102215*/          /*Scope*/ 114, /*->102330*/
/*102216*/            OPC_CheckPatternPredicate, 27, // (PPCSubTarget->hasDirectMove()) && (PPCSubTarget->isISA3_0()) && (PPCSubTarget->isLittleEndian())
/*102218*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::i64, 0/*#Ops*/,  // Results = #4
/*102224*/            OPC_EmitInteger, MVT::i32, PPC::sub_32,
/*102227*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::i64, 3/*#Ops*/, 4, 2, 5,  // Results = #6
/*102236*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::i64, 0/*#Ops*/,  // Results = #7
/*102242*/            OPC_EmitInteger, MVT::i32, PPC::sub_32,
/*102245*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::i64, 3/*#Ops*/, 7, 3, 8,  // Results = #9
/*102254*/            OPC_EmitInteger, MVT::i32, 32, 
/*102257*/            OPC_EmitInteger, MVT::i32, 0, 
/*102260*/            OPC_EmitNode1, TARGET_VAL(PPC::RLDIMI), 0,
                          MVT::i64, 4/*#Ops*/, 6, 9, 10, 11,  // Results = #12
/*102270*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::i64, 0/*#Ops*/,  // Results = #13
/*102276*/            OPC_EmitInteger, MVT::i32, PPC::sub_32,
/*102279*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::i64, 3/*#Ops*/, 13, 0, 14,  // Results = #15
/*102288*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::i64, 0/*#Ops*/,  // Results = #16
/*102294*/            OPC_EmitInteger, MVT::i32, PPC::sub_32,
/*102297*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::i64, 3/*#Ops*/, 16, 1, 17,  // Results = #18
/*102306*/            OPC_EmitInteger, MVT::i32, 32, 
/*102309*/            OPC_EmitInteger, MVT::i32, 0, 
/*102312*/            OPC_EmitNode1, TARGET_VAL(PPC::RLDIMI), 0,
                          MVT::i64, 4/*#Ops*/, 15, 18, 19, 20,  // Results = #21
/*102322*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::MTVSRDD), 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: (MTVSRDD:{ *:[v4i32] } (RLDIMI:{ *:[i64] } (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), ?:{ *:[i32] }:$C, sub_32:{ *:[i32] }), (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), ?:{ *:[i32] }:$D, sub_32:{ *:[i32] }), 32:{ *:[i32] }, 0:{ *:[i32] }), (RLDIMI:{ *:[i64] } (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), ?:{ *:[i32] }:$A, sub_32:{ *:[i32] }), (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), ?:{ *:[i32] }:$B, sub_32:{ *:[i32] }), 32:{ *:[i32] }, 0:{ *:[i32] }))
/*102330*/          /*Scope*/ 26|128,1/*154*/, /*->102486*/
/*102332*/            OPC_CheckPatternPredicate, 44, // (PPCSubTarget->hasDirectMove()) && (!PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Vector())
/*102334*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::i64, 0/*#Ops*/,  // Results = #4
/*102340*/            OPC_EmitInteger, MVT::i32, PPC::sub_32,
/*102343*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::i64, 3/*#Ops*/, 4, 1, 5,  // Results = #6
/*102352*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::i64, 0/*#Ops*/,  // Results = #7
/*102358*/            OPC_EmitInteger, MVT::i32, PPC::sub_32,
/*102361*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::i64, 3/*#Ops*/, 7, 0, 8,  // Results = #9
/*102370*/            OPC_EmitInteger, MVT::i32, 32, 
/*102373*/            OPC_EmitInteger, MVT::i32, 0, 
/*102376*/            OPC_EmitNode1, TARGET_VAL(PPC::RLDIMI), 0,
                          MVT::i64, 4/*#Ops*/, 6, 9, 10, 11,  // Results = #12
/*102386*/            OPC_EmitNode1, TARGET_VAL(PPC::MTVSRD), 0,
                          MVT::f64, 1/*#Ops*/, 12,  // Results = #13
/*102393*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*102396*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i32, 2/*#Ops*/, 13, 14,  // Results = #15
/*102404*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::i64, 0/*#Ops*/,  // Results = #16
/*102410*/            OPC_EmitInteger, MVT::i32, PPC::sub_32,
/*102413*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::i64, 3/*#Ops*/, 16, 3, 17,  // Results = #18
/*102422*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::i64, 0/*#Ops*/,  // Results = #19
/*102428*/            OPC_EmitInteger, MVT::i32, PPC::sub_32,
/*102431*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::i64, 3/*#Ops*/, 19, 2, 20,  // Results = #21
/*102440*/            OPC_EmitInteger, MVT::i32, 32, 
/*102443*/            OPC_EmitInteger, MVT::i32, 0, 
/*102446*/            OPC_EmitNode1, TARGET_VAL(PPC::RLDIMI), 0,
                          MVT::i64, 4/*#Ops*/, 18, 21, 22, 23,  // Results = #24
/*102456*/            OPC_EmitNode1, TARGET_VAL(PPC::MTVSRD), 0,
                          MVT::f64, 1/*#Ops*/, 24,  // Results = #25
/*102463*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*102466*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i32, 2/*#Ops*/, 25, 26,  // Results = #27
/*102474*/            OPC_EmitInteger, MVT::i32, 0, 
/*102477*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XXPERMDI), 0,
                          MVT::v4i32, 3/*#Ops*/, 15, 27, 28, 
                      // Src: (build_vector:{ *:[v4i32] } i32:{ *:[i32] }:$A, i32:{ *:[i32] }:$B, i32:{ *:[i32] }:$C, i32:{ *:[i32] }:$D) - Complexity = 403
                      // Dst: (XXPERMDI:{ *:[v4i32] } (COPY_TO_REGCLASS:{ *:[v4i32] } (MTVSRD:{ *:[f64] } (RLDIMI:{ *:[i64] } (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), ?:{ *:[i32] }:$B, sub_32:{ *:[i32] }), (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), ?:{ *:[i32] }:$A, sub_32:{ *:[i32] }), 32:{ *:[i32] }, 0:{ *:[i32] })), VSRC:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4i32] } (MTVSRD:{ *:[f64] } (RLDIMI:{ *:[i64] } (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), ?:{ *:[i32] }:$D, sub_32:{ *:[i32] }), (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), ?:{ *:[i32] }:$C, sub_32:{ *:[i32] }), 32:{ *:[i32] }, 0:{ *:[i32] })), VSRC:{ *:[i32] }), 0:{ *:[i32] })
/*102486*/          /*Scope*/ 26|128,1/*154*/, /*->102642*/
/*102488*/            OPC_CheckPatternPredicate, 45, // (PPCSubTarget->hasDirectMove()) && (PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Vector())
/*102490*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::i64, 0/*#Ops*/,  // Results = #4
/*102496*/            OPC_EmitInteger, MVT::i32, PPC::sub_32,
/*102499*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::i64, 3/*#Ops*/, 4, 2, 5,  // Results = #6
/*102508*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::i64, 0/*#Ops*/,  // Results = #7
/*102514*/            OPC_EmitInteger, MVT::i32, PPC::sub_32,
/*102517*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::i64, 3/*#Ops*/, 7, 3, 8,  // Results = #9
/*102526*/            OPC_EmitInteger, MVT::i32, 32, 
/*102529*/            OPC_EmitInteger, MVT::i32, 0, 
/*102532*/            OPC_EmitNode1, TARGET_VAL(PPC::RLDIMI), 0,
                          MVT::i64, 4/*#Ops*/, 6, 9, 10, 11,  // Results = #12
/*102542*/            OPC_EmitNode1, TARGET_VAL(PPC::MTVSRD), 0,
                          MVT::f64, 1/*#Ops*/, 12,  // Results = #13
/*102549*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*102552*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i32, 2/*#Ops*/, 13, 14,  // Results = #15
/*102560*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::i64, 0/*#Ops*/,  // Results = #16
/*102566*/            OPC_EmitInteger, MVT::i32, PPC::sub_32,
/*102569*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::i64, 3/*#Ops*/, 16, 0, 17,  // Results = #18
/*102578*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::i64, 0/*#Ops*/,  // Results = #19
/*102584*/            OPC_EmitInteger, MVT::i32, PPC::sub_32,
/*102587*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::i64, 3/*#Ops*/, 19, 1, 20,  // Results = #21
/*102596*/            OPC_EmitInteger, MVT::i32, 32, 
/*102599*/            OPC_EmitInteger, MVT::i32, 0, 
/*102602*/            OPC_EmitNode1, TARGET_VAL(PPC::RLDIMI), 0,
                          MVT::i64, 4/*#Ops*/, 18, 21, 22, 23,  // Results = #24
/*102612*/            OPC_EmitNode1, TARGET_VAL(PPC::MTVSRD), 0,
                          MVT::f64, 1/*#Ops*/, 24,  // Results = #25
/*102619*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*102622*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i32, 2/*#Ops*/, 25, 26,  // Results = #27
/*102630*/            OPC_EmitInteger, MVT::i32, 0, 
/*102633*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XXPERMDI), 0,
                          MVT::v4i32, 3/*#Ops*/, 15, 27, 28, 
                      // Src: (build_vector:{ *:[v4i32] } i32:{ *:[i32] }:$A, i32:{ *:[i32] }:$B, i32:{ *:[i32] }:$C, i32:{ *:[i32] }:$D) - Complexity = 403
                      // Dst: (XXPERMDI:{ *:[v4i32] } (COPY_TO_REGCLASS:{ *:[v4i32] } (MTVSRD:{ *:[f64] } (RLDIMI:{ *:[i64] } (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), ?:{ *:[i32] }:$C, sub_32:{ *:[i32] }), (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), ?:{ *:[i32] }:$D, sub_32:{ *:[i32] }), 32:{ *:[i32] }, 0:{ *:[i32] })), VSRC:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4i32] } (MTVSRD:{ *:[f64] } (RLDIMI:{ *:[i64] } (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), ?:{ *:[i32] }:$A, sub_32:{ *:[i32] }), (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), ?:{ *:[i32] }:$B, sub_32:{ *:[i32] }), 32:{ *:[i32] }, 0:{ *:[i32] })), VSRC:{ *:[i32] }), 0:{ *:[i32] })
/*102642*/          0, /*End of Scope*/
/*102643*/        0, /*End of Scope*/
/*102644*/      /*SwitchType*/ 109, MVT::v2i64,// ->102755
/*102646*/        OPC_CheckChild0Type, MVT::i64,
/*102648*/        OPC_RecordChild1, // #1 = $B
/*102649*/        OPC_CheckChild1Type, MVT::i64,
/*102651*/        OPC_Scope, 50, /*->102703*/ // 2 children in Scope
/*102653*/          OPC_CheckPatternPredicate, 44, // (PPCSubTarget->hasDirectMove()) && (!PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Vector())
/*102655*/          OPC_EmitNode1, TARGET_VAL(PPC::MTVSRD), 0,
                        MVT::f64, 1/*#Ops*/, 0,  // Results = #2
/*102662*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*102665*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i32, 2/*#Ops*/, 2, 3,  // Results = #4
/*102673*/          OPC_EmitNode1, TARGET_VAL(PPC::MTVSRD), 0,
                        MVT::f64, 1/*#Ops*/, 1,  // Results = #5
/*102680*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*102683*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i32, 2/*#Ops*/, 5, 6,  // Results = #7
/*102691*/          OPC_EmitInteger, MVT::i32, 0, 
/*102694*/          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] })
/*102703*/        /*Scope*/ 50, /*->102754*/
/*102704*/          OPC_CheckPatternPredicate, 45, // (PPCSubTarget->hasDirectMove()) && (PPCSubTarget->isLittleEndian()) && (!PPCSubTarget->hasP9Vector())
/*102706*/          OPC_EmitNode1, TARGET_VAL(PPC::MTVSRD), 0,
                        MVT::f64, 1/*#Ops*/, 1,  // Results = #2
/*102713*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*102716*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i32, 2/*#Ops*/, 2, 3,  // Results = #4
/*102724*/          OPC_EmitNode1, TARGET_VAL(PPC::MTVSRD), 0,
                        MVT::f64, 1/*#Ops*/, 0,  // Results = #5
/*102731*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*102734*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i32, 2/*#Ops*/, 5, 6,  // Results = #7
/*102742*/          OPC_EmitInteger, MVT::i32, 0, 
/*102745*/          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] })
/*102754*/        0, /*End of Scope*/
/*102755*/      0, // EndSwitchType
/*102756*/    /*Scope*/ 51, /*->102808*/
/*102757*/      OPC_RecordNode, // #0 = $SIMM
/*102758*/      OPC_SwitchType /*3 cases */, 14, MVT::v16i8,// ->102775
/*102761*/        OPC_CheckPredicate, 38, // Predicate_vecspltisb
/*102763*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/*102765*/        OPC_EmitNodeXForm, 10, 0, // VSPLTISB_get_imm
/*102768*/        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))
/*102775*/      /*SwitchType*/ 14, MVT::v8i16,// ->102791
/*102777*/        OPC_CheckPredicate, 39, // Predicate_vecspltish
/*102779*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/*102781*/        OPC_EmitNodeXForm, 11, 0, // VSPLTISH_get_imm
/*102784*/        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))
/*102791*/      /*SwitchType*/ 14, MVT::v4i32,// ->102807
/*102793*/        OPC_CheckPredicate, 40, // Predicate_vecspltisw
/*102795*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/*102797*/        OPC_EmitNodeXForm, 12, 0, // VSPLTISW_get_imm
/*102800*/        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))
/*102807*/      0, // EndSwitchType
/*102808*/    /*Scope*/ 33, /*->102842*/
/*102809*/      OPC_CheckImmAllZerosV,
/*102810*/      OPC_SwitchType /*3 cases */, 8, MVT::v16i8,// ->102821
/*102813*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/*102815*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::V_SET0B), 0,
                      MVT::v16i8, 0/*#Ops*/, 
                  // Src: immAllZerosV:{ *:[v16i8] } - Complexity = 3
                  // Dst: (V_SET0B:{ *:[v16i8] })
/*102821*/      /*SwitchType*/ 8, MVT::v8i16,// ->102831
/*102823*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/*102825*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::V_SET0H), 0,
                      MVT::v8i16, 0/*#Ops*/, 
                  // Src: immAllZerosV:{ *:[v8i16] } - Complexity = 3
                  // Dst: (V_SET0H:{ *:[v8i16] })
/*102831*/      /*SwitchType*/ 8, MVT::v4i32,// ->102841
/*102833*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/*102835*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::V_SET0), 0,
                      MVT::v4i32, 0/*#Ops*/, 
                  // Src: immAllZerosV:{ *:[v4i32] } - Complexity = 3
                  // Dst: (V_SET0:{ *:[v4i32] })
/*102841*/      0, // EndSwitchType
/*102842*/    /*Scope*/ 33, /*->102876*/
/*102843*/      OPC_CheckImmAllOnesV,
/*102844*/      OPC_SwitchType /*3 cases */, 8, MVT::v16i8,// ->102855
/*102847*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/*102849*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::V_SETALLONESB), 0,
                      MVT::v16i8, 0/*#Ops*/, 
                  // Src: immAllOnesV:{ *:[v16i8] } - Complexity = 3
                  // Dst: (V_SETALLONESB:{ *:[v16i8] })
/*102855*/      /*SwitchType*/ 8, MVT::v8i16,// ->102865
/*102857*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/*102859*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::V_SETALLONESH), 0,
                      MVT::v8i16, 0/*#Ops*/, 
                  // Src: immAllOnesV:{ *:[v8i16] } - Complexity = 3
                  // Dst: (V_SETALLONESH:{ *:[v8i16] })
/*102865*/      /*SwitchType*/ 8, MVT::v4i32,// ->102875
/*102867*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/*102869*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::V_SETALLONES), 0,
                      MVT::v4i32, 0/*#Ops*/, 
                  // Src: immAllOnesV:{ *:[v4i32] } - Complexity = 3
                  // Dst: (V_SETALLONES:{ *:[v4i32] })
/*102875*/      0, // EndSwitchType
/*102876*/    /*Scope*/ 41|128,7/*937*/, /*->103815*/
/*102878*/      OPC_MoveChild0,
/*102879*/      OPC_SwitchOpcode /*4 cases */, 100|128,1/*228*/, TARGET_VAL(PPCISD::FCFIDUS),// ->103112
/*102884*/        OPC_MoveChild0,
/*102885*/        OPC_CheckOpcode, TARGET_VAL(PPCISD::MTVSRA),
/*102888*/        OPC_MoveChild0,
/*102889*/        OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*102892*/        OPC_RecordChild0, // #0 = $S1
/*102893*/        OPC_CheckChild0Type, MVT::v2i64,
/*102895*/        OPC_CheckChild1Integer, 0, 
/*102897*/        OPC_CheckType, MVT::i64,
/*102899*/        OPC_MoveParent,
/*102900*/        OPC_CheckType, MVT::f64,
/*102902*/        OPC_MoveParent,
/*102903*/        OPC_CheckType, MVT::f32,
/*102905*/        OPC_MoveParent,
/*102906*/        OPC_MoveChild1,
/*102907*/        OPC_CheckOpcode, TARGET_VAL(PPCISD::FCFIDUS),
/*102910*/        OPC_MoveChild0,
/*102911*/        OPC_CheckOpcode, TARGET_VAL(PPCISD::MTVSRA),
/*102914*/        OPC_MoveChild0,
/*102915*/        OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*102918*/        OPC_CheckChild0Same, 0,
/*102920*/        OPC_CheckChild1Integer, 1, 
/*102922*/        OPC_CheckType, MVT::i64,
/*102924*/        OPC_MoveParent,
/*102925*/        OPC_CheckType, MVT::f64,
/*102927*/        OPC_MoveParent,
/*102928*/        OPC_CheckType, MVT::f32,
/*102930*/        OPC_MoveParent,
/*102931*/        OPC_MoveChild2,
/*102932*/        OPC_CheckOpcode, TARGET_VAL(PPCISD::FCFIDUS),
/*102935*/        OPC_MoveChild0,
/*102936*/        OPC_CheckOpcode, TARGET_VAL(PPCISD::MTVSRA),
/*102939*/        OPC_MoveChild0,
/*102940*/        OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*102943*/        OPC_RecordChild0, // #1 = $S2
/*102944*/        OPC_CheckChild0Type, MVT::v2i64,
/*102946*/        OPC_CheckChild1Integer, 0, 
/*102948*/        OPC_CheckType, MVT::i64,
/*102950*/        OPC_MoveParent,
/*102951*/        OPC_CheckType, MVT::f64,
/*102953*/        OPC_MoveParent,
/*102954*/        OPC_CheckType, MVT::f32,
/*102956*/        OPC_MoveParent,
/*102957*/        OPC_MoveChild3,
/*102958*/        OPC_CheckOpcode, TARGET_VAL(PPCISD::FCFIDUS),
/*102961*/        OPC_MoveChild0,
/*102962*/        OPC_CheckOpcode, TARGET_VAL(PPCISD::MTVSRA),
/*102965*/        OPC_MoveChild0,
/*102966*/        OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*102969*/        OPC_CheckChild0Same, 1,
/*102971*/        OPC_CheckChild1Integer, 1, 
/*102973*/        OPC_CheckType, MVT::i64,
/*102975*/        OPC_MoveParent,
/*102976*/        OPC_CheckType, MVT::f64,
/*102978*/        OPC_MoveParent,
/*102979*/        OPC_CheckType, MVT::f32,
/*102981*/        OPC_MoveParent,
/*102982*/        OPC_CheckType, MVT::v4f32,
/*102984*/        OPC_Scope, 62, /*->103048*/ // 2 children in Scope
/*102986*/          OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasP8Vector()) && (!PPCSubTarget->isLittleEndian())
/*102988*/          OPC_EmitNode1, TARGET_VAL(PPC::XVCVUXDSP), 0,
                        MVT::v4i32, 1/*#Ops*/, 0,  // Results = #2
/*102995*/          OPC_EmitNode1, TARGET_VAL(PPC::XVCVUXDSP), 0,
                        MVT::v4i32, 1/*#Ops*/, 0,  // Results = #3
/*103002*/          OPC_EmitInteger, MVT::i32, 3, 
/*103005*/          OPC_EmitNode1, TARGET_VAL(PPC::XXSLDWI), 0,
                        MVT::v4i32, 3/*#Ops*/, 2, 3, 4,  // Results = #5
/*103014*/          OPC_EmitNode1, TARGET_VAL(PPC::XVCVUXDSP), 0,
                        MVT::v4i32, 1/*#Ops*/, 1,  // Results = #6
/*103021*/          OPC_EmitNode1, TARGET_VAL(PPC::XVCVUXDSP), 0,
                        MVT::v4i32, 1/*#Ops*/, 1,  // Results = #7
/*103028*/          OPC_EmitInteger, MVT::i32, 3, 
/*103031*/          OPC_EmitNode1, TARGET_VAL(PPC::XXSLDWI), 0,
                        MVT::v4i32, 3/*#Ops*/, 6, 7, 8,  // Results = #9
/*103040*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::VPKUDUM), 0,
                        MVT::v4f32, 2/*#Ops*/, 5, 9, 
                    // Src: (build_vector:{ *:[v4f32] } (PPCfcfidus:{ *:[f32] } (PPCmtvsra:{ *:[f64] } (vector_extract:{ *:[i64] } v2i64:{ *:[v2i64] }:$S1, 0:{ *:[iPTR] }))), (PPCfcfidus:{ *:[f32] } (PPCmtvsra:{ *:[f64] } (vector_extract:{ *:[i64] } v2i64:{ *:[v2i64] }:$S1, 1:{ *:[iPTR] }))), (PPCfcfidus:{ *:[f32] } (PPCmtvsra:{ *:[f64] } (vector_extract:{ *:[i64] } v2i64:{ *:[v2i64] }:$S2, 0:{ *:[iPTR] }))), (PPCfcfidus:{ *:[f32] } (PPCmtvsra:{ *:[f64] } (vector_extract:{ *:[i64] } v2i64:{ *:[v2i64] }:$S2, 1:{ *:[iPTR] })))) - Complexity = 459
                    // Dst: (VPKUDUM:{ *:[v4f32] } (XXSLDWI:{ *:[v4i32] } (XVCVUXDSP:{ *:[v4i32] } ?:{ *:[v2i64] }:$S1), (XVCVUXDSP:{ *:[v4i32] } ?:{ *:[v2i64] }:$S1), 3:{ *:[i32] }), (XXSLDWI:{ *:[v4i32] } (XVCVUXDSP:{ *:[v4i32] } ?:{ *:[v2i64] }:$S2), (XVCVUXDSP:{ *:[v4i32] } ?:{ *:[v2i64] }:$S2), 3:{ *:[i32] }))
/*103048*/        /*Scope*/ 62, /*->103111*/
/*103049*/          OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasP8Vector()) && (PPCSubTarget->isLittleEndian())
/*103051*/          OPC_EmitNode1, TARGET_VAL(PPC::XVCVUXDSP), 0,
                        MVT::v4i32, 1/*#Ops*/, 1,  // Results = #2
/*103058*/          OPC_EmitNode1, TARGET_VAL(PPC::XVCVUXDSP), 0,
                        MVT::v4i32, 1/*#Ops*/, 1,  // Results = #3
/*103065*/          OPC_EmitInteger, MVT::i32, 3, 
/*103068*/          OPC_EmitNode1, TARGET_VAL(PPC::XXSLDWI), 0,
                        MVT::v4i32, 3/*#Ops*/, 2, 3, 4,  // Results = #5
/*103077*/          OPC_EmitNode1, TARGET_VAL(PPC::XVCVUXDSP), 0,
                        MVT::v4i32, 1/*#Ops*/, 0,  // Results = #6
/*103084*/          OPC_EmitNode1, TARGET_VAL(PPC::XVCVUXDSP), 0,
                        MVT::v4i32, 1/*#Ops*/, 0,  // Results = #7
/*103091*/          OPC_EmitInteger, MVT::i32, 3, 
/*103094*/          OPC_EmitNode1, TARGET_VAL(PPC::XXSLDWI), 0,
                        MVT::v4i32, 3/*#Ops*/, 6, 7, 8,  // Results = #9
/*103103*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::VPKUDUM), 0,
                        MVT::v4f32, 2/*#Ops*/, 5, 9, 
                    // Src: (build_vector:{ *:[v4f32] } (PPCfcfidus:{ *:[f32] } (PPCmtvsra:{ *:[f64] } (vector_extract:{ *:[i64] } v2i64:{ *:[v2i64] }:$S1, 0:{ *:[iPTR] }))), (PPCfcfidus:{ *:[f32] } (PPCmtvsra:{ *:[f64] } (vector_extract:{ *:[i64] } v2i64:{ *:[v2i64] }:$S1, 1:{ *:[iPTR] }))), (PPCfcfidus:{ *:[f32] } (PPCmtvsra:{ *:[f64] } (vector_extract:{ *:[i64] } v2i64:{ *:[v2i64] }:$S2, 0:{ *:[iPTR] }))), (PPCfcfidus:{ *:[f32] } (PPCmtvsra:{ *:[f64] } (vector_extract:{ *:[i64] } v2i64:{ *:[v2i64] }:$S2, 1:{ *:[iPTR] })))) - Complexity = 459
                    // Dst: (VPKUDUM:{ *:[v4f32] } (XXSLDWI:{ *:[v4i32] } (XVCVUXDSP:{ *:[v4i32] } ?:{ *:[v2i64] }:$S2), (XVCVUXDSP:{ *:[v4i32] } ?:{ *:[v2i64] }:$S2), 3:{ *:[i32] }), (XXSLDWI:{ *:[v4i32] } (XVCVUXDSP:{ *:[v4i32] } ?:{ *:[v2i64] }:$S1), (XVCVUXDSP:{ *:[v4i32] } ?:{ *:[v2i64] }:$S1), 3:{ *:[i32] }))
/*103111*/        0, /*End of Scope*/
/*103112*/      /*SwitchOpcode*/ 100|128,1/*228*/, TARGET_VAL(PPCISD::FCFIDS),// ->103344
/*103116*/        OPC_MoveChild0,
/*103117*/        OPC_CheckOpcode, TARGET_VAL(PPCISD::MTVSRA),
/*103120*/        OPC_MoveChild0,
/*103121*/        OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*103124*/        OPC_RecordChild0, // #0 = $S1
/*103125*/        OPC_CheckChild0Type, MVT::v2i64,
/*103127*/        OPC_CheckChild1Integer, 0, 
/*103129*/        OPC_CheckType, MVT::i64,
/*103131*/        OPC_MoveParent,
/*103132*/        OPC_CheckType, MVT::f64,
/*103134*/        OPC_MoveParent,
/*103135*/        OPC_CheckType, MVT::f32,
/*103137*/        OPC_MoveParent,
/*103138*/        OPC_MoveChild1,
/*103139*/        OPC_CheckOpcode, TARGET_VAL(PPCISD::FCFIDS),
/*103142*/        OPC_MoveChild0,
/*103143*/        OPC_CheckOpcode, TARGET_VAL(PPCISD::MTVSRA),
/*103146*/        OPC_MoveChild0,
/*103147*/        OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*103150*/        OPC_CheckChild0Same, 0,
/*103152*/        OPC_CheckChild1Integer, 1, 
/*103154*/        OPC_CheckType, MVT::i64,
/*103156*/        OPC_MoveParent,
/*103157*/        OPC_CheckType, MVT::f64,
/*103159*/        OPC_MoveParent,
/*103160*/        OPC_CheckType, MVT::f32,
/*103162*/        OPC_MoveParent,
/*103163*/        OPC_MoveChild2,
/*103164*/        OPC_CheckOpcode, TARGET_VAL(PPCISD::FCFIDS),
/*103167*/        OPC_MoveChild0,
/*103168*/        OPC_CheckOpcode, TARGET_VAL(PPCISD::MTVSRA),
/*103171*/        OPC_MoveChild0,
/*103172*/        OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*103175*/        OPC_RecordChild0, // #1 = $S2
/*103176*/        OPC_CheckChild0Type, MVT::v2i64,
/*103178*/        OPC_CheckChild1Integer, 0, 
/*103180*/        OPC_CheckType, MVT::i64,
/*103182*/        OPC_MoveParent,
/*103183*/        OPC_CheckType, MVT::f64,
/*103185*/        OPC_MoveParent,
/*103186*/        OPC_CheckType, MVT::f32,
/*103188*/        OPC_MoveParent,
/*103189*/        OPC_MoveChild3,
/*103190*/        OPC_CheckOpcode, TARGET_VAL(PPCISD::FCFIDS),
/*103193*/        OPC_MoveChild0,
/*103194*/        OPC_CheckOpcode, TARGET_VAL(PPCISD::MTVSRA),
/*103197*/        OPC_MoveChild0,
/*103198*/        OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*103201*/        OPC_CheckChild0Same, 1,
/*103203*/        OPC_CheckChild1Integer, 1, 
/*103205*/        OPC_CheckType, MVT::i64,
/*103207*/        OPC_MoveParent,
/*103208*/        OPC_CheckType, MVT::f64,
/*103210*/        OPC_MoveParent,
/*103211*/        OPC_CheckType, MVT::f32,
/*103213*/        OPC_MoveParent,
/*103214*/        OPC_CheckType, MVT::v4f32,
/*103216*/        OPC_Scope, 62, /*->103280*/ // 2 children in Scope
/*103218*/          OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasP8Vector()) && (!PPCSubTarget->isLittleEndian())
/*103220*/          OPC_EmitNode1, TARGET_VAL(PPC::XVCVSXDSP), 0,
                        MVT::v4i32, 1/*#Ops*/, 0,  // Results = #2
/*103227*/          OPC_EmitNode1, TARGET_VAL(PPC::XVCVSXDSP), 0,
                        MVT::v4i32, 1/*#Ops*/, 0,  // Results = #3
/*103234*/          OPC_EmitInteger, MVT::i32, 3, 
/*103237*/          OPC_EmitNode1, TARGET_VAL(PPC::XXSLDWI), 0,
                        MVT::v4i32, 3/*#Ops*/, 2, 3, 4,  // Results = #5
/*103246*/          OPC_EmitNode1, TARGET_VAL(PPC::XVCVSXDSP), 0,
                        MVT::v4i32, 1/*#Ops*/, 1,  // Results = #6
/*103253*/          OPC_EmitNode1, TARGET_VAL(PPC::XVCVSXDSP), 0,
                        MVT::v4i32, 1/*#Ops*/, 1,  // Results = #7
/*103260*/          OPC_EmitInteger, MVT::i32, 3, 
/*103263*/          OPC_EmitNode1, TARGET_VAL(PPC::XXSLDWI), 0,
                        MVT::v4i32, 3/*#Ops*/, 6, 7, 8,  // Results = #9
/*103272*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::VPKUDUM), 0,
                        MVT::v4f32, 2/*#Ops*/, 5, 9, 
                    // Src: (build_vector:{ *:[v4f32] } (PPCfcfids:{ *:[f32] } (PPCmtvsra:{ *:[f64] } (vector_extract:{ *:[i64] } v2i64:{ *:[v2i64] }:$S1, 0:{ *:[iPTR] }))), (PPCfcfids:{ *:[f32] } (PPCmtvsra:{ *:[f64] } (vector_extract:{ *:[i64] } v2i64:{ *:[v2i64] }:$S1, 1:{ *:[iPTR] }))), (PPCfcfids:{ *:[f32] } (PPCmtvsra:{ *:[f64] } (vector_extract:{ *:[i64] } v2i64:{ *:[v2i64] }:$S2, 0:{ *:[iPTR] }))), (PPCfcfids:{ *:[f32] } (PPCmtvsra:{ *:[f64] } (vector_extract:{ *:[i64] } v2i64:{ *:[v2i64] }:$S2, 1:{ *:[iPTR] })))) - Complexity = 459
                    // Dst: (VPKUDUM:{ *:[v4f32] } (XXSLDWI:{ *:[v4i32] } (XVCVSXDSP:{ *:[v4i32] } ?:{ *:[v2i64] }:$S1), (XVCVSXDSP:{ *:[v4i32] } ?:{ *:[v2i64] }:$S1), 3:{ *:[i32] }), (XXSLDWI:{ *:[v4i32] } (XVCVSXDSP:{ *:[v4i32] } ?:{ *:[v2i64] }:$S2), (XVCVSXDSP:{ *:[v4i32] } ?:{ *:[v2i64] }:$S2), 3:{ *:[i32] }))
/*103280*/        /*Scope*/ 62, /*->103343*/
/*103281*/          OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasP8Vector()) && (PPCSubTarget->isLittleEndian())
/*103283*/          OPC_EmitNode1, TARGET_VAL(PPC::XVCVSXDSP), 0,
                        MVT::v4i32, 1/*#Ops*/, 1,  // Results = #2
/*103290*/          OPC_EmitNode1, TARGET_VAL(PPC::XVCVSXDSP), 0,
                        MVT::v4i32, 1/*#Ops*/, 1,  // Results = #3
/*103297*/          OPC_EmitInteger, MVT::i32, 3, 
/*103300*/          OPC_EmitNode1, TARGET_VAL(PPC::XXSLDWI), 0,
                        MVT::v4i32, 3/*#Ops*/, 2, 3, 4,  // Results = #5
/*103309*/          OPC_EmitNode1, TARGET_VAL(PPC::XVCVSXDSP), 0,
                        MVT::v4i32, 1/*#Ops*/, 0,  // Results = #6
/*103316*/          OPC_EmitNode1, TARGET_VAL(PPC::XVCVSXDSP), 0,
                        MVT::v4i32, 1/*#Ops*/, 0,  // Results = #7
/*103323*/          OPC_EmitInteger, MVT::i32, 3, 
/*103326*/          OPC_EmitNode1, TARGET_VAL(PPC::XXSLDWI), 0,
                        MVT::v4i32, 3/*#Ops*/, 6, 7, 8,  // Results = #9
/*103335*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::VPKUDUM), 0,
                        MVT::v4f32, 2/*#Ops*/, 5, 9, 
                    // Src: (build_vector:{ *:[v4f32] } (PPCfcfids:{ *:[f32] } (PPCmtvsra:{ *:[f64] } (vector_extract:{ *:[i64] } v2i64:{ *:[v2i64] }:$S1, 0:{ *:[iPTR] }))), (PPCfcfids:{ *:[f32] } (PPCmtvsra:{ *:[f64] } (vector_extract:{ *:[i64] } v2i64:{ *:[v2i64] }:$S1, 1:{ *:[iPTR] }))), (PPCfcfids:{ *:[f32] } (PPCmtvsra:{ *:[f64] } (vector_extract:{ *:[i64] } v2i64:{ *:[v2i64] }:$S2, 0:{ *:[iPTR] }))), (PPCfcfids:{ *:[f32] } (PPCmtvsra:{ *:[f64] } (vector_extract:{ *:[i64] } v2i64:{ *:[v2i64] }:$S2, 1:{ *:[iPTR] })))) - Complexity = 459
                    // Dst: (VPKUDUM:{ *:[v4f32] } (XXSLDWI:{ *:[v4i32] } (XVCVSXDSP:{ *:[v4i32] } ?:{ *:[v2i64] }:$S2), (XVCVSXDSP:{ *:[v4i32] } ?:{ *:[v2i64] }:$S2), 3:{ *:[i32] }), (XXSLDWI:{ *:[v4i32] } (XVCVSXDSP:{ *:[v4i32] } ?:{ *:[v2i64] }:$S1), (XVCVSXDSP:{ *:[v4i32] } ?:{ *:[v2i64] }:$S1), 3:{ *:[i32] }))
/*103343*/        0, /*End of Scope*/
/*103344*/      /*SwitchOpcode*/ 50|128,2/*306*/, TARGET_VAL(ISD::LOAD),// ->103654
/*103348*/        OPC_RecordMemRef,
/*103349*/        OPC_RecordNode, // #0 = 'ld' chained node
/*103350*/        OPC_RecordChild1, // #1 = $A
/*103351*/        OPC_CheckPredicate, 20, // Predicate_unindexedload
/*103353*/        OPC_CheckPredicate, 23, // Predicate_load
/*103355*/        OPC_CheckType, MVT::f32,
/*103357*/        OPC_MoveParent,
/*103358*/        OPC_MoveChild1,
/*103359*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*103362*/        OPC_RecordMemRef,
/*103363*/        OPC_RecordNode, // #2 = 'ld' chained node
/*103364*/        OPC_RecordChild1, // #3 = $B
/*103365*/        OPC_CheckPredicate, 20, // Predicate_unindexedload
/*103367*/        OPC_CheckPredicate, 23, // Predicate_load
/*103369*/        OPC_CheckType, MVT::f32,
/*103371*/        OPC_MoveParent,
/*103372*/        OPC_MoveChild2,
/*103373*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*103376*/        OPC_RecordMemRef,
/*103377*/        OPC_RecordNode, // #4 = 'ld' chained node
/*103378*/        OPC_RecordChild1, // #5 = $C
/*103379*/        OPC_CheckPredicate, 20, // Predicate_unindexedload
/*103381*/        OPC_CheckPredicate, 23, // Predicate_load
/*103383*/        OPC_CheckType, MVT::f32,
/*103385*/        OPC_MoveParent,
/*103386*/        OPC_MoveChild3,
/*103387*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*103390*/        OPC_RecordMemRef,
/*103391*/        OPC_RecordNode, // #6 = 'ld' chained node
/*103392*/        OPC_RecordChild1, // #7 = $D
/*103393*/        OPC_CheckPredicate, 20, // Predicate_unindexedload
/*103395*/        OPC_CheckPredicate, 23, // Predicate_load
/*103397*/        OPC_CheckType, MVT::f32,
/*103399*/        OPC_MoveParent,
/*103400*/        OPC_CheckType, MVT::v4f32,
/*103402*/        OPC_Scope, 124, /*->103528*/ // 2 children in Scope
/*103404*/          OPC_CheckPatternPredicate, 30, // (PPCSubTarget->hasVSX()) && (!PPCSubTarget->isLittleEndian())
/*103406*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$A #8 #9
/*103409*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // SelectAddrIdxOnly:$B #10 #11
/*103412*/          OPC_CheckComplexPat, /*CP*/0, /*#*/5, // SelectAddrIdxOnly:$C #12 #13
/*103415*/          OPC_CheckComplexPat, /*CP*/0, /*#*/7, // SelectAddrIdxOnly:$D #14 #15
/*103418*/          OPC_EmitMergeInputChains, 4, 0, 2, 4, 6, 
/*103424*/          OPC_EmitNode1, TARGET_VAL(PPC::LIWZX), 0|OPFL_Chain,
                        MVT::f64, 2/*#Ops*/, 8, 9,  // Results = #16
/*103432*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*103435*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i32, 2/*#Ops*/, 16, 17,  // Results = #18
/*103443*/          OPC_EmitNode1, TARGET_VAL(PPC::LIWZX), 0|OPFL_Chain,
                        MVT::f64, 2/*#Ops*/, 10, 11,  // Results = #19
/*103451*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*103454*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i32, 2/*#Ops*/, 19, 20,  // Results = #21
/*103462*/          OPC_EmitNode1, TARGET_VAL(PPC::XXMRGHW), 0,
                        MVT::v4i32, 2/*#Ops*/, 18, 21,  // Results = #22
/*103470*/          OPC_EmitNode1, TARGET_VAL(PPC::LIWZX), 0|OPFL_Chain,
                        MVT::f64, 2/*#Ops*/, 12, 13,  // Results = #23
/*103478*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*103481*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i32, 2/*#Ops*/, 23, 24,  // Results = #25
/*103489*/          OPC_EmitNode1, TARGET_VAL(PPC::LIWZX), 0|OPFL_Chain,
                        MVT::f64, 2/*#Ops*/, 14, 15,  // Results = #26
/*103497*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*103500*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i32, 2/*#Ops*/, 26, 27,  // Results = #28
/*103508*/          OPC_EmitNode1, TARGET_VAL(PPC::XXMRGHW), 0,
                        MVT::v4i32, 2/*#Ops*/, 25, 28,  // Results = #29
/*103516*/          OPC_EmitInteger, MVT::i32, 3, 
/*103519*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XXPERMDI), 0|OPFL_MemRefs,
                        MVT::v4f32, 3/*#Ops*/, 22, 29, 30, 
                    // Src: (build_vector:{ *:[v4f32] } (ld:{ *:[f32] } xoaddr:{ *:[iPTR] }:$A)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (ld:{ *:[f32] } xoaddr:{ *:[iPTR] }:$B)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (ld:{ *:[f32] } xoaddr:{ *:[iPTR] }:$C)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (ld:{ *:[f32] } xoaddr:{ *:[iPTR] }:$D)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 455
                    // Dst: (XXPERMDI:{ *:[v4f32] } (XXMRGHW:{ *:[v4i32] } (COPY_TO_REGCLASS:{ *:[v4i32] } (LIWZX:{ *:[f64] } xoaddr:{ *:[iPTR] }:$A), VSRC:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4i32] } (LIWZX:{ *:[f64] } xoaddr:{ *:[iPTR] }:$B), VSRC:{ *:[i32] })), (XXMRGHW:{ *:[v4i32] } (COPY_TO_REGCLASS:{ *:[v4i32] } (LIWZX:{ *:[f64] } xoaddr:{ *:[iPTR] }:$C), VSRC:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4i32] } (LIWZX:{ *:[f64] } xoaddr:{ *:[iPTR] }:$D), VSRC:{ *:[i32] })), 3:{ *:[i32] })
/*103528*/        /*Scope*/ 124, /*->103653*/
/*103529*/          OPC_CheckPatternPredicate, 19, // (PPCSubTarget->hasVSX()) && (PPCSubTarget->isLittleEndian())
/*103531*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$A #8 #9
/*103534*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // SelectAddrIdxOnly:$B #10 #11
/*103537*/          OPC_CheckComplexPat, /*CP*/0, /*#*/5, // SelectAddrIdxOnly:$C #12 #13
/*103540*/          OPC_CheckComplexPat, /*CP*/0, /*#*/7, // SelectAddrIdxOnly:$D #14 #15
/*103543*/          OPC_EmitMergeInputChains, 4, 0, 2, 4, 6, 
/*103549*/          OPC_EmitNode1, TARGET_VAL(PPC::LIWZX), 0|OPFL_Chain,
                        MVT::f64, 2/*#Ops*/, 14, 15,  // Results = #16
/*103557*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*103560*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i32, 2/*#Ops*/, 16, 17,  // Results = #18
/*103568*/          OPC_EmitNode1, TARGET_VAL(PPC::LIWZX), 0|OPFL_Chain,
                        MVT::f64, 2/*#Ops*/, 12, 13,  // Results = #19
/*103576*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*103579*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i32, 2/*#Ops*/, 19, 20,  // Results = #21
/*103587*/          OPC_EmitNode1, TARGET_VAL(PPC::XXMRGHW), 0,
                        MVT::v4i32, 2/*#Ops*/, 18, 21,  // Results = #22
/*103595*/          OPC_EmitNode1, TARGET_VAL(PPC::LIWZX), 0|OPFL_Chain,
                        MVT::f64, 2/*#Ops*/, 10, 11,  // Results = #23
/*103603*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*103606*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i32, 2/*#Ops*/, 23, 24,  // Results = #25
/*103614*/          OPC_EmitNode1, TARGET_VAL(PPC::LIWZX), 0|OPFL_Chain,
                        MVT::f64, 2/*#Ops*/, 8, 9,  // Results = #26
/*103622*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*103625*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i32, 2/*#Ops*/, 26, 27,  // Results = #28
/*103633*/          OPC_EmitNode1, TARGET_VAL(PPC::XXMRGHW), 0,
                        MVT::v4i32, 2/*#Ops*/, 25, 28,  // Results = #29
/*103641*/          OPC_EmitInteger, MVT::i32, 3, 
/*103644*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::XXPERMDI), 0|OPFL_MemRefs,
                        MVT::v4f32, 3/*#Ops*/, 22, 29, 30, 
                    // Src: (build_vector:{ *:[v4f32] } (ld:{ *:[f32] } xoaddr:{ *:[iPTR] }:$A)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (ld:{ *:[f32] } xoaddr:{ *:[iPTR] }:$B)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (ld:{ *:[f32] } xoaddr:{ *:[iPTR] }:$C)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (ld:{ *:[f32] } xoaddr:{ *:[iPTR] }:$D)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 455
                    // Dst: (XXPERMDI:{ *:[v4f32] } (XXMRGHW:{ *:[v4i32] } (COPY_TO_REGCLASS:{ *:[v4i32] } (LIWZX:{ *:[f64] } xoaddr:{ *:[iPTR] }:$D), VSRC:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4i32] } (LIWZX:{ *:[f64] } xoaddr:{ *:[iPTR] }:$C), VSRC:{ *:[i32] })), (XXMRGHW:{ *:[v4i32] } (COPY_TO_REGCLASS:{ *:[v4i32] } (LIWZX:{ *:[f64] } xoaddr:{ *:[iPTR] }:$B), VSRC:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4i32] } (LIWZX:{ *:[f64] } xoaddr:{ *:[iPTR] }:$A), VSRC:{ *:[i32] })), 3:{ *:[i32] })
/*103653*/        0, /*End of Scope*/
/*103654*/      /*SwitchOpcode*/ 28|128,1/*156*/, TARGET_VAL(ISD::FP_ROUND),// ->103814
/*103658*/        OPC_MoveChild0,
/*103659*/        OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*103662*/        OPC_RecordChild0, // #0 = $A
/*103663*/        OPC_CheckChild0Type, MVT::v2f64,
/*103665*/        OPC_CheckChild1Integer, 0, 
/*103667*/        OPC_MoveParent,
/*103668*/        OPC_MoveParent,
/*103669*/        OPC_MoveChild1,
/*103670*/        OPC_CheckOpcode, TARGET_VAL(ISD::FP_ROUND),
/*103673*/        OPC_MoveChild0,
/*103674*/        OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*103677*/        OPC_CheckChild0Same, 0,
/*103679*/        OPC_CheckChild1Integer, 1, 
/*103681*/        OPC_MoveParent,
/*103682*/        OPC_MoveParent,
/*103683*/        OPC_MoveChild2,
/*103684*/        OPC_CheckOpcode, TARGET_VAL(ISD::FP_ROUND),
/*103687*/        OPC_MoveChild0,
/*103688*/        OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*103691*/        OPC_RecordChild0, // #1 = $B
/*103692*/        OPC_CheckChild0Type, MVT::v2f64,
/*103694*/        OPC_CheckChild1Integer, 0, 
/*103696*/        OPC_MoveParent,
/*103697*/        OPC_MoveParent,
/*103698*/        OPC_MoveChild3,
/*103699*/        OPC_CheckOpcode, TARGET_VAL(ISD::FP_ROUND),
/*103702*/        OPC_MoveChild0,
/*103703*/        OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*103706*/        OPC_CheckChild0Same, 1,
/*103708*/        OPC_CheckChild1Integer, 1, 
/*103710*/        OPC_MoveParent,
/*103711*/        OPC_MoveParent,
/*103712*/        OPC_CheckType, MVT::v4f32,
/*103714*/        OPC_Scope, 48, /*->103764*/ // 2 children in Scope
/*103716*/          OPC_CheckPatternPredicate, 30, // (PPCSubTarget->hasVSX()) && (!PPCSubTarget->isLittleEndian())
/*103718*/          OPC_EmitInteger, MVT::i32, 0, 
/*103721*/          OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                        MVT::v4i32, 3/*#Ops*/, 0, 1, 2,  // Results = #3
/*103730*/          OPC_EmitNode1, TARGET_VAL(PPC::XVCVDPSP), 0,
                        MVT::v4i32, 1/*#Ops*/, 3,  // Results = #4
/*103737*/          OPC_EmitInteger, MVT::i32, 3, 
/*103740*/          OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                        MVT::v4i32, 3/*#Ops*/, 0, 1, 5,  // Results = #6
/*103749*/          OPC_EmitNode1, TARGET_VAL(PPC::XVCVDPSP), 0,
                        MVT::v4i32, 1/*#Ops*/, 6,  // Results = #7
/*103756*/          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] })))
/*103764*/        /*Scope*/ 48, /*->103813*/
/*103765*/          OPC_CheckPatternPredicate, 19, // (PPCSubTarget->hasVSX()) && (PPCSubTarget->isLittleEndian())
/*103767*/          OPC_EmitInteger, MVT::i32, 0, 
/*103770*/          OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                        MVT::v4i32, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*103779*/          OPC_EmitNode1, TARGET_VAL(PPC::XVCVDPSP), 0,
                        MVT::v4i32, 1/*#Ops*/, 3,  // Results = #4
/*103786*/          OPC_EmitInteger, MVT::i32, 3, 
/*103789*/          OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                        MVT::v4i32, 3/*#Ops*/, 1, 0, 5,  // Results = #6
/*103798*/          OPC_EmitNode1, TARGET_VAL(PPC::XVCVDPSP), 0,
                        MVT::v4i32, 1/*#Ops*/, 6,  // Results = #7
/*103805*/          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] })))
/*103813*/        0, /*End of Scope*/
/*103814*/      0, // EndSwitchOpcode
/*103815*/    /*Scope*/ 63|128,2/*319*/, /*->104136*/
/*103817*/      OPC_RecordChild0, // #0 = $A
/*103818*/      OPC_SwitchType /*2 cases */, 102|128,1/*230*/, MVT::v4f32,// ->104052
/*103822*/        OPC_CheckChild0Type, MVT::f32,
/*103824*/        OPC_Scope, 26, /*->103852*/ // 2 children in Scope
/*103826*/          OPC_CheckChild1Same, 0,
/*103828*/          OPC_CheckChild2Same, 0,
/*103830*/          OPC_CheckChild3Same, 0,
/*103832*/          OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/*103834*/          OPC_EmitNode1, TARGET_VAL(PPC::XSCVDPSPN), 0,
                        MVT::v4f32, 1/*#Ops*/, 0,  // Results = #1
/*103841*/          OPC_EmitInteger, MVT::i32, 0, 
/*103844*/          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] })
/*103852*/        /*Scope*/ 69|128,1/*197*/, /*->104051*/
/*103854*/          OPC_RecordChild1, // #1 = $B
/*103855*/          OPC_CheckChild1Type, MVT::f32,
/*103857*/          OPC_RecordChild2, // #2 = $C
/*103858*/          OPC_CheckChild2Type, MVT::f32,
/*103860*/          OPC_RecordChild3, // #3 = $D
/*103861*/          OPC_CheckChild3Type, MVT::f32,
/*103863*/          OPC_Scope, 92, /*->103957*/ // 2 children in Scope
/*103865*/            OPC_CheckPatternPredicate, 30, // (PPCSubTarget->hasVSX()) && (!PPCSubTarget->isLittleEndian())
/*103867*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*103870*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i32, 2/*#Ops*/, 0, 4,  // Results = #5
/*103878*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*103881*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i32, 2/*#Ops*/, 2, 6,  // Results = #7
/*103889*/            OPC_EmitInteger, MVT::i32, 0, 
/*103892*/            OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                          MVT::v4i32, 3/*#Ops*/, 5, 7, 8,  // Results = #9
/*103901*/            OPC_EmitNode1, TARGET_VAL(PPC::XVCVDPSP), 0,
                          MVT::v4i32, 1/*#Ops*/, 9,  // Results = #10
/*103908*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*103911*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i32, 2/*#Ops*/, 1, 11,  // Results = #12
/*103919*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*103922*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i32, 2/*#Ops*/, 3, 13,  // Results = #14
/*103930*/            OPC_EmitInteger, MVT::i32, 0, 
/*103933*/            OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                          MVT::v4i32, 3/*#Ops*/, 12, 14, 15,  // Results = #16
/*103942*/            OPC_EmitNode1, TARGET_VAL(PPC::XVCVDPSP), 0,
                          MVT::v4i32, 1/*#Ops*/, 16,  // Results = #17
/*103949*/            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] })))
/*103957*/          /*Scope*/ 92, /*->104050*/
/*103958*/            OPC_CheckPatternPredicate, 19, // (PPCSubTarget->hasVSX()) && (PPCSubTarget->isLittleEndian())
/*103960*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*103963*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i32, 2/*#Ops*/, 3, 4,  // Results = #5
/*103971*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*103974*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i32, 2/*#Ops*/, 1, 6,  // Results = #7
/*103982*/            OPC_EmitInteger, MVT::i32, 0, 
/*103985*/            OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                          MVT::v4i32, 3/*#Ops*/, 5, 7, 8,  // Results = #9
/*103994*/            OPC_EmitNode1, TARGET_VAL(PPC::XVCVDPSP), 0,
                          MVT::v4i32, 1/*#Ops*/, 9,  // Results = #10
/*104001*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*104004*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i32, 2/*#Ops*/, 2, 11,  // Results = #12
/*104012*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*104015*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i32, 2/*#Ops*/, 0, 13,  // Results = #14
/*104023*/            OPC_EmitInteger, MVT::i32, 0, 
/*104026*/            OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                          MVT::v4i32, 3/*#Ops*/, 12, 14, 15,  // Results = #16
/*104035*/            OPC_EmitNode1, TARGET_VAL(PPC::XVCVDPSP), 0,
                          MVT::v4i32, 1/*#Ops*/, 16,  // Results = #17
/*104042*/            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] })))
/*104050*/          0, /*End of Scope*/
/*104051*/        0, /*End of Scope*/
/*104052*/      /*SwitchType*/ 81, MVT::v2f64,// ->104135
/*104054*/        OPC_CheckChild0Type, MVT::f64,
/*104056*/        OPC_RecordChild1, // #1 = $B
/*104057*/        OPC_CheckChild1Type, MVT::f64,
/*104059*/        OPC_Scope, 36, /*->104097*/ // 2 children in Scope
/*104061*/          OPC_CheckPatternPredicate, 30, // (PPCSubTarget->hasVSX()) && (!PPCSubTarget->isLittleEndian())
/*104063*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*104066*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 2,  // Results = #3
/*104074*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*104077*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i32, 2/*#Ops*/, 1, 4,  // Results = #5
/*104085*/          OPC_EmitInteger, MVT::i32, 0, 
/*104088*/          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] })
/*104097*/        /*Scope*/ 36, /*->104134*/
/*104098*/          OPC_CheckPatternPredicate, 19, // (PPCSubTarget->hasVSX()) && (PPCSubTarget->isLittleEndian())
/*104100*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*104103*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i32, 2/*#Ops*/, 1, 2,  // Results = #3
/*104111*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*104114*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 4,  // Results = #5
/*104122*/          OPC_EmitInteger, MVT::i32, 0, 
/*104125*/          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] })
/*104134*/        0, /*End of Scope*/
/*104135*/      0, // EndSwitchType
/*104136*/    0, /*End of Scope*/
/*104137*/  /*SwitchOpcode*/ 37|128,20/*2597*/, TARGET_VAL(ISD::SCALAR_TO_VECTOR),// ->106738
/*104141*/    OPC_Scope, 27|128,12/*1563*/, /*->105707*/ // 4 children in Scope
/*104144*/      OPC_MoveChild0,
/*104145*/      OPC_SwitchOpcode /*3 cases */, 105|128,5/*745*/, TARGET_VAL(PPCISD::MFVSR),// ->104895
/*104150*/        OPC_MoveChild0,
/*104151*/        OPC_SwitchOpcode /*4 cases */, 21|128,1/*149*/, TARGET_VAL(PPCISD::FCTIDZ),// ->104305
/*104156*/          OPC_MoveChild0,
/*104157*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*104160*/          OPC_RecordMemRef,
/*104161*/          OPC_RecordNode, // #0 = 'ld' chained node
/*104162*/          OPC_CheckFoldableChainNode,
/*104163*/          OPC_RecordChild1, // #1 = $A
/*104164*/          OPC_CheckPredicate, 20, // Predicate_unindexedload
/*104166*/          OPC_Scope, 32, /*->104200*/ // 2 children in Scope
/*104168*/            OPC_CheckPredicate, 23, // Predicate_load
/*104170*/            OPC_MoveParent,
/*104171*/            OPC_CheckType, MVT::f64,
/*104173*/            OPC_MoveParent,
/*104174*/            OPC_CheckType, MVT::i64,
/*104176*/            OPC_MoveParent,
/*104177*/            OPC_CheckType, MVT::v2i64,
/*104179*/            OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/*104181*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$A #2 #3
/*104184*/            OPC_EmitMergeInputChains1_0,
/*104185*/            OPC_EmitNode1, TARGET_VAL(PPC::LXVDSX), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 2/*#Ops*/, 2, 3,  // Results = #4
/*104193*/            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))
/*104200*/          /*Scope*/ 103, /*->104304*/
/*104201*/            OPC_CheckPredicate, 25, // Predicate_extload
/*104203*/            OPC_CheckPredicate, 28, // Predicate_extloadf32
/*104205*/            OPC_MoveParent,
/*104206*/            OPC_CheckType, MVT::f64,
/*104208*/            OPC_MoveParent,
/*104209*/            OPC_CheckType, MVT::i64,
/*104211*/            OPC_MoveParent,
/*104212*/            OPC_CheckType, MVT::v2i64,
/*104214*/            OPC_Scope, 43, /*->104259*/ // 2 children in Scope
/*104216*/              OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/*104218*/              OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectAddrImmX4:$A #2 #3
/*104221*/              OPC_EmitMergeInputChains1_0,
/*104222*/              OPC_EmitNode1, TARGET_VAL(PPC::DFLOADf32), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::f32, 2/*#Ops*/, 2, 3,  // Results = #4
/*104230*/              OPC_EmitInteger, MVT::i32, PPC::VSFRCRegClassID,
/*104233*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::f64, 2/*#Ops*/, 4, 5,  // Results = #6
/*104241*/              OPC_EmitNode1, TARGET_VAL(PPC::XSCVDPSXDS), 0,
                            MVT::f64, 1/*#Ops*/, 6,  // Results = #7
/*104248*/              OPC_EmitInteger, MVT::i32, 0, 
/*104251*/              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] } iaddrX4:{ *:[iPTR] }:$A)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadf32>>))) - Complexity = 422
                        // Dst: (XXPERMDIs:{ *:[v2i64] } (XSCVDPSXDS:{ *:[f64] } (COPY_TO_REGCLASS:{ *:[f64] } (DFLOADf32:{ *:[f32] } iaddrX4:{ *:[iPTR] }:$A), VSFRC:{ *:[i32] })), 0:{ *:[i32] })
/*104259*/            /*Scope*/ 43, /*->104303*/
/*104260*/              OPC_CheckPatternPredicate, 46, // (PPCSubTarget->hasVSX()) && (!PPCSubTarget->hasP9Vector())
/*104262*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$A #2 #3
/*104265*/              OPC_EmitMergeInputChains1_0,
/*104266*/              OPC_EmitNode1, TARGET_VAL(PPC::XFLOADf32), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::f32, 2/*#Ops*/, 2, 3,  // Results = #4
/*104274*/              OPC_EmitInteger, MVT::i32, PPC::VSFRCRegClassID,
/*104277*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::f64, 2/*#Ops*/, 4, 5,  // Results = #6
/*104285*/              OPC_EmitNode1, TARGET_VAL(PPC::XSCVDPSXDS), 0,
                            MVT::f64, 1/*#Ops*/, 6,  // Results = #7
/*104292*/              OPC_EmitInteger, MVT::i32, 0, 
/*104295*/              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] })
/*104303*/            0, /*End of Scope*/
/*104304*/          0, /*End of Scope*/
/*104305*/        /*SwitchOpcode*/ 21|128,1/*149*/, TARGET_VAL(PPCISD::FCTIDUZ),// ->104458
/*104309*/          OPC_MoveChild0,
/*104310*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*104313*/          OPC_RecordMemRef,
/*104314*/          OPC_RecordNode, // #0 = 'ld' chained node
/*104315*/          OPC_CheckFoldableChainNode,
/*104316*/          OPC_RecordChild1, // #1 = $A
/*104317*/          OPC_CheckPredicate, 20, // Predicate_unindexedload
/*104319*/          OPC_Scope, 32, /*->104353*/ // 2 children in Scope
/*104321*/            OPC_CheckPredicate, 23, // Predicate_load
/*104323*/            OPC_MoveParent,
/*104324*/            OPC_CheckType, MVT::f64,
/*104326*/            OPC_MoveParent,
/*104327*/            OPC_CheckType, MVT::i64,
/*104329*/            OPC_MoveParent,
/*104330*/            OPC_CheckType, MVT::v2i64,
/*104332*/            OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/*104334*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$A #2 #3
/*104337*/            OPC_EmitMergeInputChains1_0,
/*104338*/            OPC_EmitNode1, TARGET_VAL(PPC::LXVDSX), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 2/*#Ops*/, 2, 3,  // Results = #4
/*104346*/            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))
/*104353*/          /*Scope*/ 103, /*->104457*/
/*104354*/            OPC_CheckPredicate, 25, // Predicate_extload
/*104356*/            OPC_CheckPredicate, 28, // Predicate_extloadf32
/*104358*/            OPC_MoveParent,
/*104359*/            OPC_CheckType, MVT::f64,
/*104361*/            OPC_MoveParent,
/*104362*/            OPC_CheckType, MVT::i64,
/*104364*/            OPC_MoveParent,
/*104365*/            OPC_CheckType, MVT::v2i64,
/*104367*/            OPC_Scope, 43, /*->104412*/ // 2 children in Scope
/*104369*/              OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/*104371*/              OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectAddrImmX4:$A #2 #3
/*104374*/              OPC_EmitMergeInputChains1_0,
/*104375*/              OPC_EmitNode1, TARGET_VAL(PPC::DFLOADf32), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::f32, 2/*#Ops*/, 2, 3,  // Results = #4
/*104383*/              OPC_EmitInteger, MVT::i32, PPC::VSFRCRegClassID,
/*104386*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::f64, 2/*#Ops*/, 4, 5,  // Results = #6
/*104394*/              OPC_EmitNode1, TARGET_VAL(PPC::XSCVDPUXDS), 0,
                            MVT::f64, 1/*#Ops*/, 6,  // Results = #7
/*104401*/              OPC_EmitInteger, MVT::i32, 0, 
/*104404*/              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] } iaddrX4:{ *:[iPTR] }:$A)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadf32>>))) - Complexity = 422
                        // Dst: (XXPERMDIs:{ *:[v2i64] } (XSCVDPUXDS:{ *:[f64] } (COPY_TO_REGCLASS:{ *:[f64] } (DFLOADf32:{ *:[f32] } iaddrX4:{ *:[iPTR] }:$A), VSFRC:{ *:[i32] })), 0:{ *:[i32] })
/*104412*/            /*Scope*/ 43, /*->104456*/
/*104413*/              OPC_CheckPatternPredicate, 46, // (PPCSubTarget->hasVSX()) && (!PPCSubTarget->hasP9Vector())
/*104415*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$A #2 #3
/*104418*/              OPC_EmitMergeInputChains1_0,
/*104419*/              OPC_EmitNode1, TARGET_VAL(PPC::XFLOADf32), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::f32, 2/*#Ops*/, 2, 3,  // Results = #4
/*104427*/              OPC_EmitInteger, MVT::i32, PPC::VSFRCRegClassID,
/*104430*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::f64, 2/*#Ops*/, 4, 5,  // Results = #6
/*104438*/              OPC_EmitNode1, TARGET_VAL(PPC::XSCVDPUXDS), 0,
                            MVT::f64, 1/*#Ops*/, 6,  // Results = #7
/*104445*/              OPC_EmitInteger, MVT::i32, 0, 
/*104448*/              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] })
/*104456*/            0, /*End of Scope*/
/*104457*/          0, /*End of Scope*/
/*104458*/        /*SwitchOpcode*/ 86|128,1/*214*/, TARGET_VAL(PPCISD::FCTIWZ),// ->104676
/*104462*/          OPC_MoveChild0,
/*104463*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*104466*/          OPC_RecordMemRef,
/*104467*/          OPC_RecordNode, // #0 = 'ld' chained node
/*104468*/          OPC_CheckFoldableChainNode,
/*104469*/          OPC_RecordChild1, // #1 = $A
/*104470*/          OPC_CheckPredicate, 20, // Predicate_unindexedload
/*104472*/          OPC_Scope, 34, /*->104508*/ // 4 children in Scope
/*104474*/            OPC_CheckPredicate, 25, // Predicate_extload
/*104476*/            OPC_CheckPredicate, 28, // Predicate_extloadf32
/*104478*/            OPC_MoveParent,
/*104479*/            OPC_CheckType, MVT::f64,
/*104481*/            OPC_MoveParent,
/*104482*/            OPC_CheckType, MVT::i32,
/*104484*/            OPC_MoveParent,
/*104485*/            OPC_CheckType, MVT::v4i32,
/*104487*/            OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/*104489*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$A #2 #3
/*104492*/            OPC_EmitMergeInputChains1_0,
/*104493*/            OPC_EmitNode1, TARGET_VAL(PPC::LXVWSX), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 2/*#Ops*/, 2, 3,  // Results = #4
/*104501*/            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))
/*104508*/          /*Scope*/ 54, /*->104563*/
/*104509*/            OPC_CheckPredicate, 23, // Predicate_load
/*104511*/            OPC_MoveParent,
/*104512*/            OPC_CheckType, MVT::f64,
/*104514*/            OPC_MoveParent,
/*104515*/            OPC_CheckType, MVT::i32,
/*104517*/            OPC_MoveParent,
/*104518*/            OPC_CheckType, MVT::v4i32,
/*104520*/            OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/*104522*/            OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectAddrImmX4:$A #2 #3
/*104525*/            OPC_EmitMergeInputChains1_0,
/*104526*/            OPC_EmitNode1, TARGET_VAL(PPC::DFLOADf64), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/*104534*/            OPC_EmitNode1, TARGET_VAL(PPC::XSCVDPSXWS), 0,
                          MVT::f64, 1/*#Ops*/, 4,  // Results = #5
/*104541*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*104544*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i32, 2/*#Ops*/, 5, 6,  // Results = #7
/*104552*/            OPC_EmitInteger, MVT::i32, 1, 
/*104555*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XXSPLTW), 0,
                          MVT::v4i32, 2/*#Ops*/, 7, 8, 
                      // Src: (scalar_to_vector:{ *:[v4i32] } (PPCmfvsr:{ *:[i32] } (PPCfctiwz:{ *:[f64] } (ld:{ *:[f64] } iaddrX4:{ *:[iPTR] }:$A)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 422
                      // Dst: (XXSPLTW:{ *:[v4i32] } (COPY_TO_REGCLASS:{ *:[v4i32] } (XSCVDPSXWS:{ *:[f64] } (DFLOADf64:{ *:[f64] } iaddrX4:{ *:[iPTR] }:$A)), VSRC:{ *:[i32] }), 1:{ *:[i32] })
/*104563*/          /*Scope*/ 56, /*->104620*/
/*104564*/            OPC_CheckPredicate, 25, // Predicate_extload
/*104566*/            OPC_CheckPredicate, 28, // Predicate_extloadf32
/*104568*/            OPC_MoveParent,
/*104569*/            OPC_CheckType, MVT::f64,
/*104571*/            OPC_MoveParent,
/*104572*/            OPC_CheckType, MVT::i32,
/*104574*/            OPC_MoveParent,
/*104575*/            OPC_CheckType, MVT::v4i32,
/*104577*/            OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/*104579*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$A #2 #3
/*104582*/            OPC_EmitMergeInputChains1_0,
/*104583*/            OPC_EmitNode1, TARGET_VAL(PPC::XFLOADf32), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f32, 2/*#Ops*/, 2, 3,  // Results = #4
/*104591*/            OPC_EmitNode1, TARGET_VAL(PPC::XSCVDPSXWSs), 0,
                          MVT::f32, 1/*#Ops*/, 4,  // Results = #5
/*104598*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*104601*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i32, 2/*#Ops*/, 5, 6,  // Results = #7
/*104609*/            OPC_EmitInteger, MVT::i32, 1, 
/*104612*/            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] })
/*104620*/          /*Scope*/ 54, /*->104675*/
/*104621*/            OPC_CheckPredicate, 23, // Predicate_load
/*104623*/            OPC_MoveParent,
/*104624*/            OPC_CheckType, MVT::f64,
/*104626*/            OPC_MoveParent,
/*104627*/            OPC_CheckType, MVT::i32,
/*104629*/            OPC_MoveParent,
/*104630*/            OPC_CheckType, MVT::v4i32,
/*104632*/            OPC_CheckPatternPredicate, 46, // (PPCSubTarget->hasVSX()) && (!PPCSubTarget->hasP9Vector())
/*104634*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$A #2 #3
/*104637*/            OPC_EmitMergeInputChains1_0,
/*104638*/            OPC_EmitNode1, TARGET_VAL(PPC::XFLOADf64), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/*104646*/            OPC_EmitNode1, TARGET_VAL(PPC::XSCVDPSXWS), 0,
                          MVT::f64, 1/*#Ops*/, 4,  // Results = #5
/*104653*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*104656*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i32, 2/*#Ops*/, 5, 6,  // Results = #7
/*104664*/            OPC_EmitInteger, MVT::i32, 1, 
/*104667*/            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] })
/*104675*/          0, /*End of Scope*/
/*104676*/        /*SwitchOpcode*/ 86|128,1/*214*/, TARGET_VAL(PPCISD::FCTIWUZ),// ->104894
/*104680*/          OPC_MoveChild0,
/*104681*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*104684*/          OPC_RecordMemRef,
/*104685*/          OPC_RecordNode, // #0 = 'ld' chained node
/*104686*/          OPC_CheckFoldableChainNode,
/*104687*/          OPC_RecordChild1, // #1 = $A
/*104688*/          OPC_CheckPredicate, 20, // Predicate_unindexedload
/*104690*/          OPC_Scope, 34, /*->104726*/ // 4 children in Scope
/*104692*/            OPC_CheckPredicate, 25, // Predicate_extload
/*104694*/            OPC_CheckPredicate, 28, // Predicate_extloadf32
/*104696*/            OPC_MoveParent,
/*104697*/            OPC_CheckType, MVT::f64,
/*104699*/            OPC_MoveParent,
/*104700*/            OPC_CheckType, MVT::i32,
/*104702*/            OPC_MoveParent,
/*104703*/            OPC_CheckType, MVT::v4i32,
/*104705*/            OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/*104707*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$A #2 #3
/*104710*/            OPC_EmitMergeInputChains1_0,
/*104711*/            OPC_EmitNode1, TARGET_VAL(PPC::LXVWSX), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 2/*#Ops*/, 2, 3,  // Results = #4
/*104719*/            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))
/*104726*/          /*Scope*/ 54, /*->104781*/
/*104727*/            OPC_CheckPredicate, 23, // Predicate_load
/*104729*/            OPC_MoveParent,
/*104730*/            OPC_CheckType, MVT::f64,
/*104732*/            OPC_MoveParent,
/*104733*/            OPC_CheckType, MVT::i32,
/*104735*/            OPC_MoveParent,
/*104736*/            OPC_CheckType, MVT::v4i32,
/*104738*/            OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/*104740*/            OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectAddrImmX4:$A #2 #3
/*104743*/            OPC_EmitMergeInputChains1_0,
/*104744*/            OPC_EmitNode1, TARGET_VAL(PPC::DFLOADf64), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/*104752*/            OPC_EmitNode1, TARGET_VAL(PPC::XSCVDPUXWS), 0,
                          MVT::f64, 1/*#Ops*/, 4,  // Results = #5
/*104759*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*104762*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i32, 2/*#Ops*/, 5, 6,  // Results = #7
/*104770*/            OPC_EmitInteger, MVT::i32, 1, 
/*104773*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XXSPLTW), 0,
                          MVT::v4i32, 2/*#Ops*/, 7, 8, 
                      // Src: (scalar_to_vector:{ *:[v4i32] } (PPCmfvsr:{ *:[i32] } (PPCfctiwuz:{ *:[f64] } (ld:{ *:[f64] } iaddrX4:{ *:[iPTR] }:$A)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 422
                      // Dst: (XXSPLTW:{ *:[v4i32] } (COPY_TO_REGCLASS:{ *:[v4i32] } (XSCVDPUXWS:{ *:[f64] } (DFLOADf64:{ *:[f64] } iaddrX4:{ *:[iPTR] }:$A)), VSRC:{ *:[i32] }), 1:{ *:[i32] })
/*104781*/          /*Scope*/ 56, /*->104838*/
/*104782*/            OPC_CheckPredicate, 25, // Predicate_extload
/*104784*/            OPC_CheckPredicate, 28, // Predicate_extloadf32
/*104786*/            OPC_MoveParent,
/*104787*/            OPC_CheckType, MVT::f64,
/*104789*/            OPC_MoveParent,
/*104790*/            OPC_CheckType, MVT::i32,
/*104792*/            OPC_MoveParent,
/*104793*/            OPC_CheckType, MVT::v4i32,
/*104795*/            OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/*104797*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$A #2 #3
/*104800*/            OPC_EmitMergeInputChains1_0,
/*104801*/            OPC_EmitNode1, TARGET_VAL(PPC::XFLOADf32), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f32, 2/*#Ops*/, 2, 3,  // Results = #4
/*104809*/            OPC_EmitNode1, TARGET_VAL(PPC::XSCVDPUXWSs), 0,
                          MVT::f32, 1/*#Ops*/, 4,  // Results = #5
/*104816*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*104819*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i32, 2/*#Ops*/, 5, 6,  // Results = #7
/*104827*/            OPC_EmitInteger, MVT::i32, 1, 
/*104830*/            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] })
/*104838*/          /*Scope*/ 54, /*->104893*/
/*104839*/            OPC_CheckPredicate, 23, // Predicate_load
/*104841*/            OPC_MoveParent,
/*104842*/            OPC_CheckType, MVT::f64,
/*104844*/            OPC_MoveParent,
/*104845*/            OPC_CheckType, MVT::i32,
/*104847*/            OPC_MoveParent,
/*104848*/            OPC_CheckType, MVT::v4i32,
/*104850*/            OPC_CheckPatternPredicate, 46, // (PPCSubTarget->hasVSX()) && (!PPCSubTarget->hasP9Vector())
/*104852*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$A #2 #3
/*104855*/            OPC_EmitMergeInputChains1_0,
/*104856*/            OPC_EmitNode1, TARGET_VAL(PPC::XFLOADf64), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/*104864*/            OPC_EmitNode1, TARGET_VAL(PPC::XSCVDPUXWS), 0,
                          MVT::f64, 1/*#Ops*/, 4,  // Results = #5
/*104871*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*104874*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4i32, 2/*#Ops*/, 5, 6,  // Results = #7
/*104882*/            OPC_EmitInteger, MVT::i32, 1, 
/*104885*/            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] })
/*104893*/          0, /*End of Scope*/
/*104894*/        0, // EndSwitchOpcode
/*104895*/      /*SwitchOpcode*/ 95, TARGET_VAL(ISD::SIGN_EXTEND_INREG),// ->104993
/*104898*/        OPC_MoveChild0,
/*104899*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*104902*/        OPC_RecordMemRef,
/*104903*/        OPC_RecordNode, // #0 = 'ld' chained node
/*104904*/        OPC_CheckFoldableChainNode,
/*104905*/        OPC_RecordChild1, // #1 = $src
/*104906*/        OPC_CheckPredicate, 20, // Predicate_unindexedload
/*104908*/        OPC_CheckPredicate, 25, // Predicate_extload
/*104910*/        OPC_CheckPredicate, 2, // Predicate_extloadi8
/*104912*/        OPC_MoveParent,
/*104913*/        OPC_MoveChild1,
/*104914*/        OPC_CheckValueType, MVT::i8,
/*104916*/        OPC_MoveParent,
/*104917*/        OPC_SwitchType /*2 cases */, 35, MVT::i32,// ->104955
/*104920*/          OPC_MoveParent,
/*104921*/          OPC_CheckType, MVT::v4i32,
/*104923*/          OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/*104925*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/*104928*/          OPC_EmitMergeInputChains1_0,
/*104929*/          OPC_EmitNode1, TARGET_VAL(PPC::LXSIBZX), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/*104937*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTSB2Ws), 0|OPFL_Chain,
                        MVT::f64, 1/*#Ops*/, 4,  // Results = #5
/*104944*/          OPC_EmitInteger, MVT::i32, 1, 
/*104947*/          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] })
/*104955*/        /*SwitchType*/ 35, MVT::i64,// ->104992
/*104957*/          OPC_MoveParent,
/*104958*/          OPC_CheckType, MVT::v2i64,
/*104960*/          OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/*104962*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/*104965*/          OPC_EmitMergeInputChains1_0,
/*104966*/          OPC_EmitNode1, TARGET_VAL(PPC::LXSIBZX), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/*104974*/          OPC_EmitNode1, TARGET_VAL(PPC::VEXTSB2Ds), 0|OPFL_Chain,
                        MVT::f64, 1/*#Ops*/, 4,  // Results = #5
/*104981*/          OPC_EmitInteger, MVT::i32, 0, 
/*104984*/          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] })
/*104992*/        0, // EndSwitchType
/*104993*/      /*SwitchOpcode*/ 69|128,5/*709*/, TARGET_VAL(ISD::LOAD),// ->105706
/*104997*/        OPC_RecordMemRef,
/*104998*/        OPC_RecordNode, // #0 = 'ld' chained node
/*104999*/        OPC_RecordChild1, // #1 = $src
/*105000*/        OPC_CheckPredicate, 20, // Predicate_unindexedload
/*105002*/        OPC_Scope, 34, /*->105038*/ // 12 children in Scope
/*105004*/          OPC_CheckPredicate, 22, // Predicate_sextload
/*105006*/          OPC_CheckPredicate, 8, // Predicate_sextloadi32
/*105008*/          OPC_CheckType, MVT::i64,
/*105010*/          OPC_MoveParent,
/*105011*/          OPC_CheckType, MVT::v2i64,
/*105013*/          OPC_CheckPatternPredicate, 28, // (!PPCSubTarget->isLittleEndian())
/*105015*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/*105018*/          OPC_EmitMergeInputChains1_0,
/*105019*/          OPC_EmitNode1, TARGET_VAL(PPC::LIWAX), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/*105027*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*105030*/          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] })
/*105038*/        /*Scope*/ 34, /*->105073*/
/*105039*/          OPC_CheckPredicate, 21, // Predicate_zextload
/*105041*/          OPC_CheckPredicate, 8, // Predicate_zextloadi32
/*105043*/          OPC_CheckType, MVT::i64,
/*105045*/          OPC_MoveParent,
/*105046*/          OPC_CheckType, MVT::v2i64,
/*105048*/          OPC_CheckPatternPredicate, 28, // (!PPCSubTarget->isLittleEndian())
/*105050*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/*105053*/          OPC_EmitMergeInputChains1_0,
/*105054*/          OPC_EmitNode1, TARGET_VAL(PPC::LIWZX), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/*105062*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*105065*/          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] })
/*105073*/        /*Scope*/ 34, /*->105108*/
/*105074*/          OPC_CheckPredicate, 25, // Predicate_extload
/*105076*/          OPC_CheckPredicate, 2, // Predicate_extloadi8
/*105078*/          OPC_CheckType, MVT::i32,
/*105080*/          OPC_MoveParent,
/*105081*/          OPC_CheckType, MVT::v16i8,
/*105083*/          OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/*105085*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/*105088*/          OPC_EmitMergeInputChains1_0,
/*105089*/          OPC_EmitInteger, MVT::i32, 7, 
/*105092*/          OPC_EmitNode1, TARGET_VAL(PPC::LXSIBZX), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #5
/*105100*/          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))
/*105108*/        /*Scope*/ 95, /*->105204*/
/*105109*/          OPC_CheckPredicate, 21, // Predicate_zextload
/*105111*/          OPC_CheckPredicate, 2, // Predicate_zextloadi8
/*105113*/          OPC_SwitchType /*2 cases */, 57, MVT::i32,// ->105173
/*105116*/            OPC_MoveParent,
/*105117*/            OPC_SwitchType /*2 cases */, 25, MVT::v8i16,// ->105145
/*105120*/              OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/*105122*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/*105125*/              OPC_EmitMergeInputChains1_0,
/*105126*/              OPC_EmitInteger, MVT::i32, 3, 
/*105129*/              OPC_EmitNode1, TARGET_VAL(PPC::LXSIBZX), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #5
/*105137*/              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))
/*105145*/            /*SwitchType*/ 25, MVT::v4i32,// ->105172
/*105147*/              OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/*105149*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/*105152*/              OPC_EmitMergeInputChains1_0,
/*105153*/              OPC_EmitNode1, TARGET_VAL(PPC::LXSIBZX), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/*105161*/              OPC_EmitInteger, MVT::i32, 1, 
/*105164*/              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] })
/*105172*/            0, // EndSwitchType
/*105173*/          /*SwitchType*/ 28, MVT::i64,// ->105203
/*105175*/            OPC_MoveParent,
/*105176*/            OPC_CheckType, MVT::v2i64,
/*105178*/            OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/*105180*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/*105183*/            OPC_EmitMergeInputChains1_0,
/*105184*/            OPC_EmitNode1, TARGET_VAL(PPC::LXSIBZX), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/*105192*/            OPC_EmitInteger, MVT::i32, 0, 
/*105195*/            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] })
/*105203*/          0, // EndSwitchType
/*105204*/        /*Scope*/ 34, /*->105239*/
/*105205*/          OPC_CheckPredicate, 25, // Predicate_extload
/*105207*/          OPC_CheckPredicate, 3, // Predicate_extloadi16
/*105209*/          OPC_CheckType, MVT::i32,
/*105211*/          OPC_MoveParent,
/*105212*/          OPC_CheckType, MVT::v8i16,
/*105214*/          OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/*105216*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/*105219*/          OPC_EmitMergeInputChains1_0,
/*105220*/          OPC_EmitInteger, MVT::i32, 3, 
/*105223*/          OPC_EmitNode1, TARGET_VAL(PPC::LXSIHZX), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #5
/*105231*/          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))
/*105239*/        /*Scope*/ 66, /*->105306*/
/*105240*/          OPC_CheckPredicate, 21, // Predicate_zextload
/*105242*/          OPC_CheckPredicate, 3, // Predicate_zextloadi16
/*105244*/          OPC_SwitchType /*2 cases */, 28, MVT::i32,// ->105275
/*105247*/            OPC_MoveParent,
/*105248*/            OPC_CheckType, MVT::v4i32,
/*105250*/            OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/*105252*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/*105255*/            OPC_EmitMergeInputChains1_0,
/*105256*/            OPC_EmitNode1, TARGET_VAL(PPC::LXSIHZX), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/*105264*/            OPC_EmitInteger, MVT::i32, 1, 
/*105267*/            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] })
/*105275*/          /*SwitchType*/ 28, MVT::i64,// ->105305
/*105277*/            OPC_MoveParent,
/*105278*/            OPC_CheckType, MVT::v2i64,
/*105280*/            OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/*105282*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/*105285*/            OPC_EmitMergeInputChains1_0,
/*105286*/            OPC_EmitNode1, TARGET_VAL(PPC::LXSIHZX), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/*105294*/            OPC_EmitInteger, MVT::i32, 0, 
/*105297*/            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] })
/*105305*/          0, // EndSwitchType
/*105306*/        /*Scope*/ 59, /*->105366*/
/*105307*/          OPC_CheckPredicate, 23, // Predicate_load
/*105309*/          OPC_CheckType, MVT::i64,
/*105311*/          OPC_MoveParent,
/*105312*/          OPC_CheckType, MVT::v2i64,
/*105314*/          OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/*105316*/          OPC_Scope, 23, /*->105341*/ // 2 children in Scope
/*105318*/            OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectAddrImmX4:$src #2 #3
/*105321*/            OPC_EmitMergeInputChains1_0,
/*105322*/            OPC_EmitNode1, TARGET_VAL(PPC::DFLOADf64), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/*105330*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*105333*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                          MVT::v2i64, 2/*#Ops*/, 4, 5, 
                      // Src: (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } iaddrX4:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 416
                      // Dst: (COPY_TO_REGCLASS:{ *:[v2i64] } (DFLOADf64:{ *:[f64] } iaddrX4:{ *:[iPTR] }:$src), VSRC:{ *:[i32] })
/*105341*/          /*Scope*/ 23, /*->105365*/
/*105342*/            OPC_CheckComplexPat, /*CP*/2, /*#*/1, // SelectAddrIdxX4:$src #2 #3
/*105345*/            OPC_EmitMergeInputChains1_0,
/*105346*/            OPC_EmitNode1, TARGET_VAL(PPC::XFLOADf64), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/*105354*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*105357*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                          MVT::v2i64, 2/*#Ops*/, 4, 5, 
                      // Src: (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } xaddrX4:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 416
                      // Dst: (COPY_TO_REGCLASS:{ *:[v2i64] } (XFLOADf64:{ *:[f64] } xaddrX4:{ *:[iPTR] }:$src), VSRC:{ *:[i32] })
/*105365*/          0, /*End of Scope*/
/*105366*/        /*Scope*/ 45, /*->105412*/
/*105367*/          OPC_CheckPredicate, 22, // Predicate_sextload
/*105369*/          OPC_CheckPredicate, 8, // Predicate_sextloadi32
/*105371*/          OPC_CheckType, MVT::i64,
/*105373*/          OPC_MoveParent,
/*105374*/          OPC_CheckType, MVT::v2i64,
/*105376*/          OPC_CheckPatternPredicate, 29, // (PPCSubTarget->isLittleEndian())
/*105378*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/*105381*/          OPC_EmitMergeInputChains1_0,
/*105382*/          OPC_EmitNode1, TARGET_VAL(PPC::LIWAX), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/*105390*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*105393*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::f64, 2/*#Ops*/, 4, 5,  // Results = #6
/*105401*/          OPC_EmitInteger, MVT::i32, 2, 
/*105404*/          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] })
/*105412*/        /*Scope*/ 45, /*->105458*/
/*105413*/          OPC_CheckPredicate, 21, // Predicate_zextload
/*105415*/          OPC_CheckPredicate, 8, // Predicate_zextloadi32
/*105417*/          OPC_CheckType, MVT::i64,
/*105419*/          OPC_MoveParent,
/*105420*/          OPC_CheckType, MVT::v2i64,
/*105422*/          OPC_CheckPatternPredicate, 29, // (PPCSubTarget->isLittleEndian())
/*105424*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/*105427*/          OPC_EmitMergeInputChains1_0,
/*105428*/          OPC_EmitNode1, TARGET_VAL(PPC::LIWZX), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/*105436*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*105439*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::f64, 2/*#Ops*/, 4, 5,  // Results = #6
/*105447*/          OPC_EmitInteger, MVT::i32, 2, 
/*105450*/          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] })
/*105458*/        /*Scope*/ 83, /*->105542*/
/*105459*/          OPC_CheckPredicate, 23, // Predicate_load
/*105461*/          OPC_CheckType, MVT::i32,
/*105463*/          OPC_MoveParent,
/*105464*/          OPC_CheckType, MVT::v4i32,
/*105466*/          OPC_Scope, 36, /*->105504*/ // 2 children in Scope
/*105468*/            OPC_CheckPatternPredicate, 29, // (PPCSubTarget->isLittleEndian())
/*105470*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/*105473*/            OPC_EmitMergeInputChains1_0,
/*105474*/            OPC_EmitNode1, TARGET_VAL(PPC::LIWZX), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/*105482*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*105485*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::f64, 2/*#Ops*/, 4, 5,  // Results = #6
/*105493*/            OPC_EmitInteger, MVT::i32, 2, 
/*105496*/            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] })
/*105504*/          /*Scope*/ 36, /*->105541*/
/*105505*/            OPC_CheckPatternPredicate, 28, // (!PPCSubTarget->isLittleEndian())
/*105507*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/*105510*/            OPC_EmitMergeInputChains1_0,
/*105511*/            OPC_EmitNode1, TARGET_VAL(PPC::LIWZX), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/*105519*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*105522*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::f64, 2/*#Ops*/, 4, 5,  // Results = #6
/*105530*/            OPC_EmitInteger, MVT::i32, 1, 
/*105533*/            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] })
/*105541*/          0, /*End of Scope*/
/*105542*/        /*Scope*/ 80, /*->105623*/
/*105543*/          OPC_CheckPredicate, 22, // Predicate_sextload
/*105545*/          OPC_CheckPredicate, 3, // Predicate_sextloadi16
/*105547*/          OPC_SwitchType /*2 cases */, 35, MVT::i32,// ->105585
/*105550*/            OPC_MoveParent,
/*105551*/            OPC_CheckType, MVT::v4i32,
/*105553*/            OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/*105555*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/*105558*/            OPC_EmitMergeInputChains1_0,
/*105559*/            OPC_EmitNode1, TARGET_VAL(PPC::LXSIHZX), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/*105567*/            OPC_EmitNode1, TARGET_VAL(PPC::VEXTSH2Ws), 0|OPFL_Chain,
                          MVT::f64, 1/*#Ops*/, 4,  // Results = #5
/*105574*/            OPC_EmitInteger, MVT::i32, 1, 
/*105577*/            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] })
/*105585*/          /*SwitchType*/ 35, MVT::i64,// ->105622
/*105587*/            OPC_MoveParent,
/*105588*/            OPC_CheckType, MVT::v2i64,
/*105590*/            OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/*105592*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/*105595*/            OPC_EmitMergeInputChains1_0,
/*105596*/            OPC_EmitNode1, TARGET_VAL(PPC::LXSIHZX), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/*105604*/            OPC_EmitNode1, TARGET_VAL(PPC::VEXTSH2Ds), 0|OPFL_Chain,
                          MVT::f64, 1/*#Ops*/, 4,  // Results = #5
/*105611*/            OPC_EmitInteger, MVT::i32, 0, 
/*105614*/            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] })
/*105622*/          0, // EndSwitchType
/*105623*/        /*Scope*/ 81, /*->105705*/
/*105624*/          OPC_CheckPredicate, 23, // Predicate_load
/*105626*/          OPC_CheckType, MVT::i64,
/*105628*/          OPC_MoveParent,
/*105629*/          OPC_CheckType, MVT::v2i64,
/*105631*/          OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/*105633*/          OPC_Scope, 34, /*->105669*/ // 2 children in Scope
/*105635*/            OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectAddrImmX4:$src #2 #3
/*105638*/            OPC_EmitMergeInputChains1_0,
/*105639*/            OPC_EmitNode1, TARGET_VAL(PPC::DFLOADf64), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/*105647*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*105650*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::f64, 2/*#Ops*/, 4, 5,  // Results = #6
/*105658*/            OPC_EmitInteger, MVT::i32, 2, 
/*105661*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XXPERMDIs), 0|OPFL_Chain,
                          MVT::v2i64, 2/*#Ops*/, 6, 7, 
                      // Src: (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } iaddrX4:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 416
                      // Dst: (XXPERMDIs:{ *:[v2i64] } (COPY_TO_REGCLASS:{ *:[f64] } (DFLOADf64:{ *:[f64] } iaddrX4:{ *:[iPTR] }:$src), VSRC:{ *:[i32] }), 2:{ *:[i32] })
/*105669*/          /*Scope*/ 34, /*->105704*/
/*105670*/            OPC_CheckComplexPat, /*CP*/2, /*#*/1, // SelectAddrIdxX4:$src #2 #3
/*105673*/            OPC_EmitMergeInputChains1_0,
/*105674*/            OPC_EmitNode1, TARGET_VAL(PPC::XFLOADf64), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/*105682*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*105685*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::f64, 2/*#Ops*/, 4, 5,  // Results = #6
/*105693*/            OPC_EmitInteger, MVT::i32, 2, 
/*105696*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XXPERMDIs), 0|OPFL_Chain,
                          MVT::v2i64, 2/*#Ops*/, 6, 7, 
                      // Src: (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } xaddrX4:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 416
                      // Dst: (XXPERMDIs:{ *:[v2i64] } (COPY_TO_REGCLASS:{ *:[f64] } (XFLOADf64:{ *:[f64] } xaddrX4:{ *:[iPTR] }:$src), VSRC:{ *:[i32] }), 2:{ *:[i32] })
/*105704*/          0, /*End of Scope*/
/*105705*/        0, /*End of Scope*/
/*105706*/      0, // EndSwitchOpcode
/*105707*/    /*Scope*/ 118|128,4/*630*/, /*->106339*/
/*105709*/      OPC_RecordChild0, // #0 = $A
/*105710*/      OPC_Scope, 16|128,4/*528*/, /*->106241*/ // 2 children in Scope
/*105713*/        OPC_CheckChild0Type, MVT::i32,
/*105715*/        OPC_SwitchType /*3 cases */, 43|128,1/*171*/, MVT::v4i32,// ->105890
/*105719*/          OPC_Scope, 9, /*->105730*/ // 3 children in Scope
/*105721*/            OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/*105723*/            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)
/*105730*/          /*Scope*/ 57, /*->105788*/
/*105731*/            OPC_CheckPatternPredicate, 24, // (PPCSubTarget->hasDirectMove()) && (!PPCSubTarget->isLittleEndian())
/*105733*/            OPC_EmitInteger, MVT::i64, 1, 
/*105736*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::i64, 0/*#Ops*/,  // Results = #2
/*105742*/            OPC_EmitInteger, MVT::i32, PPC::sub_32,
/*105745*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::i64, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/*105754*/            OPC_EmitInteger, MVT::i32, 32, 
/*105757*/            OPC_EmitInteger, MVT::i32, 31, 
/*105760*/            OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                          MVT::i64, 3/*#Ops*/, 4, 5, 6,  // Results = #7
/*105769*/            OPC_EmitNode1, TARGET_VAL(PPC::MTVSRD), 0,
                          MVT::f64, 1/*#Ops*/, 7,  // Results = #8
/*105776*/            OPC_EmitInteger, MVT::i32, PPC::sub_64,
/*105779*/            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] })
/*105788*/          /*Scope*/ 100, /*->105889*/
/*105789*/            OPC_CheckPatternPredicate, 23, // (PPCSubTarget->hasDirectMove()) && (PPCSubTarget->isLittleEndian())
/*105791*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v2i64, 0/*#Ops*/,  // Results = #1
/*105797*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::i64, 0/*#Ops*/,  // Results = #2
/*105803*/            OPC_EmitInteger, MVT::i32, PPC::sub_32,
/*105806*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::i64, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/*105815*/            OPC_EmitNode1, TARGET_VAL(PPC::MTVSRD), 0,
                          MVT::f64, 1/*#Ops*/, 4,  // Results = #5
/*105822*/            OPC_EmitInteger, MVT::i32, PPC::sub_64,
/*105825*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v2i64, 3/*#Ops*/, 1, 5, 6,  // Results = #7
/*105834*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v2i64, 0/*#Ops*/,  // Results = #8
/*105840*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::i64, 0/*#Ops*/,  // Results = #9
/*105846*/            OPC_EmitInteger, MVT::i32, PPC::sub_32,
/*105849*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::i64, 3/*#Ops*/, 9, 0, 10,  // Results = #11
/*105858*/            OPC_EmitNode1, TARGET_VAL(PPC::MTVSRD), 0,
                          MVT::f64, 1/*#Ops*/, 11,  // Results = #12
/*105865*/            OPC_EmitInteger, MVT::i32, PPC::sub_64,
/*105868*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v2i64, 3/*#Ops*/, 8, 12, 13,  // Results = #14
/*105877*/            OPC_EmitInteger, MVT::i32, 2, 
/*105880*/            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] })
/*105889*/          0, /*End of Scope*/
/*105890*/        /*SwitchType*/ 44|128,1/*172*/, MVT::v16i8,// ->106065
/*105893*/          OPC_Scope, 57, /*->105952*/ // 2 children in Scope
/*105895*/            OPC_CheckPatternPredicate, 24, // (PPCSubTarget->hasDirectMove()) && (!PPCSubTarget->isLittleEndian())
/*105897*/            OPC_EmitInteger, MVT::i64, 1, 
/*105900*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::i64, 0/*#Ops*/,  // Results = #2
/*105906*/            OPC_EmitInteger, MVT::i32, PPC::sub_32,
/*105909*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::i64, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/*105918*/            OPC_EmitInteger, MVT::i32, 56, 
/*105921*/            OPC_EmitInteger, MVT::i32, 7, 
/*105924*/            OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                          MVT::i64, 3/*#Ops*/, 4, 5, 6,  // Results = #7
/*105933*/            OPC_EmitNode1, TARGET_VAL(PPC::MTVSRD), 0,
                          MVT::f64, 1/*#Ops*/, 7,  // Results = #8
/*105940*/            OPC_EmitInteger, MVT::i32, PPC::sub_64,
/*105943*/            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] })
/*105952*/          /*Scope*/ 111, /*->106064*/
/*105953*/            OPC_CheckPatternPredicate, 23, // (PPCSubTarget->hasDirectMove()) && (PPCSubTarget->isLittleEndian())
/*105955*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v2i64, 0/*#Ops*/,  // Results = #1
/*105961*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::i64, 0/*#Ops*/,  // Results = #2
/*105967*/            OPC_EmitInteger, MVT::i32, PPC::sub_32,
/*105970*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::i64, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/*105979*/            OPC_EmitNode1, TARGET_VAL(PPC::MTVSRD), 0,
                          MVT::f64, 1/*#Ops*/, 4,  // Results = #5
/*105986*/            OPC_EmitInteger, MVT::i32, PPC::sub_64,
/*105989*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v2i64, 3/*#Ops*/, 1, 5, 6,  // Results = #7
/*105998*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v2i64, 0/*#Ops*/,  // Results = #8
/*106004*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::i64, 0/*#Ops*/,  // Results = #9
/*106010*/            OPC_EmitInteger, MVT::i32, PPC::sub_32,
/*106013*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::i64, 3/*#Ops*/, 9, 0, 10,  // Results = #11
/*106022*/            OPC_EmitNode1, TARGET_VAL(PPC::MTVSRD), 0,
                          MVT::f64, 1/*#Ops*/, 11,  // Results = #12
/*106029*/            OPC_EmitInteger, MVT::i32, PPC::sub_64,
/*106032*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v2i64, 3/*#Ops*/, 8, 12, 13,  // Results = #14
/*106041*/            OPC_EmitInteger, MVT::i32, 2, 
/*106044*/            OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                          MVT::v4i32, 3/*#Ops*/, 7, 14, 15,  // Results = #16
/*106053*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*106056*/            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] })
/*106064*/          0, /*End of Scope*/
/*106065*/        /*SwitchType*/ 44|128,1/*172*/, MVT::v8i16,// ->106240
/*106068*/          OPC_Scope, 57, /*->106127*/ // 2 children in Scope
/*106070*/            OPC_CheckPatternPredicate, 24, // (PPCSubTarget->hasDirectMove()) && (!PPCSubTarget->isLittleEndian())
/*106072*/            OPC_EmitInteger, MVT::i64, 1, 
/*106075*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::i64, 0/*#Ops*/,  // Results = #2
/*106081*/            OPC_EmitInteger, MVT::i32, PPC::sub_32,
/*106084*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::i64, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/*106093*/            OPC_EmitInteger, MVT::i32, 48, 
/*106096*/            OPC_EmitInteger, MVT::i32, 15, 
/*106099*/            OPC_EmitNode1, TARGET_VAL(PPC::RLDICR), 0,
                          MVT::i64, 3/*#Ops*/, 4, 5, 6,  // Results = #7
/*106108*/            OPC_EmitNode1, TARGET_VAL(PPC::MTVSRD), 0,
                          MVT::f64, 1/*#Ops*/, 7,  // Results = #8
/*106115*/            OPC_EmitInteger, MVT::i32, PPC::sub_64,
/*106118*/            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] })
/*106127*/          /*Scope*/ 111, /*->106239*/
/*106128*/            OPC_CheckPatternPredicate, 23, // (PPCSubTarget->hasDirectMove()) && (PPCSubTarget->isLittleEndian())
/*106130*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v2i64, 0/*#Ops*/,  // Results = #1
/*106136*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::i64, 0/*#Ops*/,  // Results = #2
/*106142*/            OPC_EmitInteger, MVT::i32, PPC::sub_32,
/*106145*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::i64, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/*106154*/            OPC_EmitNode1, TARGET_VAL(PPC::MTVSRD), 0,
                          MVT::f64, 1/*#Ops*/, 4,  // Results = #5
/*106161*/            OPC_EmitInteger, MVT::i32, PPC::sub_64,
/*106164*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v2i64, 3/*#Ops*/, 1, 5, 6,  // Results = #7
/*106173*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v2i64, 0/*#Ops*/,  // Results = #8
/*106179*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::i64, 0/*#Ops*/,  // Results = #9
/*106185*/            OPC_EmitInteger, MVT::i32, PPC::sub_32,
/*106188*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::i64, 3/*#Ops*/, 9, 0, 10,  // Results = #11
/*106197*/            OPC_EmitNode1, TARGET_VAL(PPC::MTVSRD), 0,
                          MVT::f64, 1/*#Ops*/, 11,  // Results = #12
/*106204*/            OPC_EmitInteger, MVT::i32, PPC::sub_64,
/*106207*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v2i64, 3/*#Ops*/, 8, 12, 13,  // Results = #14
/*106216*/            OPC_EmitInteger, MVT::i32, 2, 
/*106219*/            OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                          MVT::v4i32, 3/*#Ops*/, 7, 14, 15,  // Results = #16
/*106228*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*106231*/            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] })
/*106239*/          0, /*End of Scope*/
/*106240*/        0, // EndSwitchType
/*106241*/      /*Scope*/ 96, /*->106338*/
/*106242*/        OPC_CheckChild0Type, MVT::i64,
/*106244*/        OPC_CheckType, MVT::v2i64,
/*106246*/        OPC_Scope, 24, /*->106272*/ // 2 children in Scope
/*106248*/          OPC_CheckPatternPredicate, 24, // (PPCSubTarget->hasDirectMove()) && (!PPCSubTarget->isLittleEndian())
/*106250*/          OPC_EmitInteger, MVT::i64, 1, 
/*106253*/          OPC_EmitNode1, TARGET_VAL(PPC::MTVSRD), 0,
                        MVT::f64, 1/*#Ops*/, 0,  // Results = #2
/*106260*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/*106263*/          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] })
/*106272*/        /*Scope*/ 64, /*->106337*/
/*106273*/          OPC_CheckPatternPredicate, 23, // (PPCSubTarget->hasDirectMove()) && (PPCSubTarget->isLittleEndian())
/*106275*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v2i64, 0/*#Ops*/,  // Results = #1
/*106281*/          OPC_EmitNode1, TARGET_VAL(PPC::MTVSRD), 0,
                        MVT::f64, 1/*#Ops*/, 0,  // Results = #2
/*106288*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/*106291*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v2i64, 3/*#Ops*/, 1, 2, 3,  // Results = #4
/*106300*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v2i64, 0/*#Ops*/,  // Results = #5
/*106306*/          OPC_EmitNode1, TARGET_VAL(PPC::MTVSRD), 0,
                        MVT::f64, 1/*#Ops*/, 0,  // Results = #6
/*106313*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/*106316*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v2i64, 3/*#Ops*/, 5, 6, 7,  // Results = #8
/*106325*/          OPC_EmitInteger, MVT::i32, 2, 
/*106328*/          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] })
/*106337*/        0, /*End of Scope*/
/*106338*/      0, /*End of Scope*/
/*106339*/    /*Scope*/ 102|128,1/*230*/, /*->106571*/
/*106341*/      OPC_MoveChild0,
/*106342*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*106345*/      OPC_RecordMemRef,
/*106346*/      OPC_RecordNode, // #0 = 'ld' chained node
/*106347*/      OPC_RecordChild1, // #1 = $src
/*106348*/      OPC_CheckPredicate, 20, // Predicate_unindexedload
/*106350*/      OPC_CheckPredicate, 23, // Predicate_load
/*106352*/      OPC_SwitchType /*2 cases */, 5|128,1/*133*/, MVT::f64,// ->106489
/*106356*/        OPC_MoveParent,
/*106357*/        OPC_CheckType, MVT::v2f64,
/*106359*/        OPC_Scope, 52, /*->106413*/ // 2 children in Scope
/*106361*/          OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/*106363*/          OPC_Scope, 23, /*->106388*/ // 2 children in Scope
/*106365*/            OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectAddrImmX4:$src #2 #3
/*106368*/            OPC_EmitMergeInputChains1_0,
/*106369*/            OPC_EmitNode1, TARGET_VAL(PPC::DFLOADf64), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/*106377*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*106380*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                          MVT::v2f64, 2/*#Ops*/, 4, 5, 
                      // Src: (scalar_to_vector:{ *:[v2f64] } (ld:{ *:[f64] } iaddrX4:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 416
                      // Dst: (COPY_TO_REGCLASS:{ *:[v2f64] } (DFLOADf64:{ *:[f64] } iaddrX4:{ *:[iPTR] }:$src), VSRC:{ *:[i32] })
/*106388*/          /*Scope*/ 23, /*->106412*/
/*106389*/            OPC_CheckComplexPat, /*CP*/2, /*#*/1, // SelectAddrIdxX4:$src #2 #3
/*106392*/            OPC_EmitMergeInputChains1_0,
/*106393*/            OPC_EmitNode1, TARGET_VAL(PPC::XFLOADf64), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/*106401*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*106404*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                          MVT::v2f64, 2/*#Ops*/, 4, 5, 
                      // Src: (scalar_to_vector:{ *:[v2f64] } (ld:{ *:[f64] } xaddrX4:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 416
                      // Dst: (COPY_TO_REGCLASS:{ *:[v2f64] } (XFLOADf64:{ *:[f64] } xaddrX4:{ *:[iPTR] }:$src), VSRC:{ *:[i32] })
/*106412*/          0, /*End of Scope*/
/*106413*/        /*Scope*/ 74, /*->106488*/
/*106414*/          OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/*106416*/          OPC_Scope, 34, /*->106452*/ // 2 children in Scope
/*106418*/            OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectAddrImmX4:$src #2 #3
/*106421*/            OPC_EmitMergeInputChains1_0,
/*106422*/            OPC_EmitNode1, TARGET_VAL(PPC::DFLOADf64), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/*106430*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*106433*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::f64, 2/*#Ops*/, 4, 5,  // Results = #6
/*106441*/            OPC_EmitInteger, MVT::i32, 2, 
/*106444*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XXPERMDIs), 0|OPFL_Chain,
                          MVT::v2f64, 2/*#Ops*/, 6, 7, 
                      // Src: (scalar_to_vector:{ *:[v2f64] } (ld:{ *:[f64] } iaddrX4:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 416
                      // Dst: (XXPERMDIs:{ *:[v2f64] } (COPY_TO_REGCLASS:{ *:[f64] } (DFLOADf64:{ *:[f64] } iaddrX4:{ *:[iPTR] }:$src), VSRC:{ *:[i32] }), 2:{ *:[i32] })
/*106452*/          /*Scope*/ 34, /*->106487*/
/*106453*/            OPC_CheckComplexPat, /*CP*/2, /*#*/1, // SelectAddrIdxX4:$src #2 #3
/*106456*/            OPC_EmitMergeInputChains1_0,
/*106457*/            OPC_EmitNode1, TARGET_VAL(PPC::XFLOADf64), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/*106465*/            OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*106468*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::f64, 2/*#Ops*/, 4, 5,  // Results = #6
/*106476*/            OPC_EmitInteger, MVT::i32, 2, 
/*106479*/            OPC_MorphNodeTo1, TARGET_VAL(PPC::XXPERMDIs), 0|OPFL_Chain,
                          MVT::v2f64, 2/*#Ops*/, 6, 7, 
                      // Src: (scalar_to_vector:{ *:[v2f64] } (ld:{ *:[f64] } xaddrX4:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 416
                      // Dst: (XXPERMDIs:{ *:[v2f64] } (COPY_TO_REGCLASS:{ *:[f64] } (XFLOADf64:{ *:[f64] } xaddrX4:{ *:[iPTR] }:$src), VSRC:{ *:[i32] }), 2:{ *:[i32] })
/*106487*/          0, /*End of Scope*/
/*106488*/        0, /*End of Scope*/
/*106489*/      /*SwitchType*/ 79, MVT::f32,// ->106570
/*106491*/        OPC_MoveParent,
/*106492*/        OPC_CheckType, MVT::v4f32,
/*106494*/        OPC_Scope, 36, /*->106532*/ // 2 children in Scope
/*106496*/          OPC_CheckPatternPredicate, 29, // (PPCSubTarget->isLittleEndian())
/*106498*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/*106501*/          OPC_EmitMergeInputChains1_0,
/*106502*/          OPC_EmitNode1, TARGET_VAL(PPC::LIWZX), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/*106510*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*106513*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::f64, 2/*#Ops*/, 4, 5,  // Results = #6
/*106521*/          OPC_EmitInteger, MVT::i32, 2, 
/*106524*/          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] })
/*106532*/        /*Scope*/ 36, /*->106569*/
/*106533*/          OPC_CheckPatternPredicate, 28, // (!PPCSubTarget->isLittleEndian())
/*106535*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/*106538*/          OPC_EmitMergeInputChains1_0,
/*106539*/          OPC_EmitNode1, TARGET_VAL(PPC::LIWZX), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/*106547*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*106550*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::f64, 2/*#Ops*/, 4, 5,  // Results = #6
/*106558*/          OPC_EmitInteger, MVT::i32, 1, 
/*106561*/          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] })
/*106569*/        0, /*End of Scope*/
/*106570*/      0, // EndSwitchType
/*106571*/    /*Scope*/ 36|128,1/*164*/, /*->106737*/
/*106573*/      OPC_RecordChild0, // #0 = $A
/*106574*/      OPC_Scope, 93, /*->106669*/ // 2 children in Scope
/*106576*/        OPC_CheckChild0Type, MVT::f64,
/*106578*/        OPC_SwitchType /*2 cases */, 65, MVT::v2f64,// ->106646
/*106581*/          OPC_Scope, 17, /*->106600*/ // 2 children in Scope
/*106583*/            OPC_CheckPatternPredicate, 28, // (!PPCSubTarget->isLittleEndian())
/*106585*/            OPC_EmitInteger, MVT::i64, 1, 
/*106588*/            OPC_EmitInteger, MVT::i32, PPC::sub_64,
/*106591*/            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] })
/*106600*/          /*Scope*/ 44, /*->106645*/
/*106601*/            OPC_CheckPatternPredicate, 29, // (PPCSubTarget->isLittleEndian())
/*106603*/            OPC_EmitInteger, MVT::i64, 1, 
/*106606*/            OPC_EmitInteger, MVT::i32, PPC::sub_64,
/*106609*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                          MVT::v4i32, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*106618*/            OPC_EmitInteger, MVT::i64, 1, 
/*106621*/            OPC_EmitInteger, MVT::i32, PPC::sub_64,
/*106624*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                          MVT::v4i32, 3/*#Ops*/, 4, 0, 5,  // Results = #6
/*106633*/            OPC_EmitInteger, MVT::i32, 0, 
/*106636*/            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] })
/*106645*/          0, /*End of Scope*/
/*106646*/        /*SwitchType*/ 20, MVT::v4f64,// ->106668
/*106648*/          OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/*106650*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4f64, 0/*#Ops*/,  // Results = #1
/*106656*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/*106659*/          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] })
/*106668*/        0, // EndSwitchType
/*106669*/      /*Scope*/ 66, /*->106736*/
/*106670*/        OPC_CheckChild0Type, MVT::f32,
/*106672*/        OPC_CheckType, MVT::v4f32,
/*106674*/        OPC_Scope, 9, /*->106685*/ // 3 children in Scope
/*106676*/          OPC_CheckPatternPredicate, 4, // (PPCSubTarget->hasP8Vector()) && (!PPCSubTarget->isLittleEndian())
/*106678*/          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)
/*106685*/        /*Scope*/ 28, /*->106714*/
/*106686*/          OPC_CheckPatternPredicate, 5, // (PPCSubTarget->hasP8Vector()) && (PPCSubTarget->isLittleEndian())
/*106688*/          OPC_EmitNode1, TARGET_VAL(PPC::XSCVDPSPN), 0,
                        MVT::v4i32, 1/*#Ops*/, 0,  // Results = #1
/*106695*/          OPC_EmitNode1, TARGET_VAL(PPC::XSCVDPSPN), 0,
                        MVT::v4i32, 1/*#Ops*/, 0,  // Results = #2
/*106702*/          OPC_EmitInteger, MVT::i32, 1, 
/*106705*/          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] })
/*106714*/        /*Scope*/ 20, /*->106735*/
/*106715*/          OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/*106717*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4f32, 0/*#Ops*/,  // Results = #1
/*106723*/          OPC_EmitInteger, MVT::i32, PPC::sub_64,
/*106726*/          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] })
/*106735*/        0, /*End of Scope*/
/*106736*/      0, /*End of Scope*/
/*106737*/    0, /*End of Scope*/
/*106738*/  /*SwitchOpcode*/ 123, TARGET_VAL(PPCISD::LOAD_VEC_BE),// ->106864
/*106741*/    OPC_RecordMemRef,
/*106742*/    OPC_RecordNode, // #0 = 'PPCld_vec_be' chained node
/*106743*/    OPC_RecordChild1, // #1 = $src
/*106744*/    OPC_SwitchType /*6 cases */, 14, MVT::v2i64,// ->106761
/*106747*/      OPC_CheckPatternPredicate, 19, // (PPCSubTarget->hasVSX()) && (PPCSubTarget->isLittleEndian())
/*106749*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/*106752*/      OPC_EmitMergeInputChains1_0,
/*106753*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::LXVD2X), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v2i64, 2/*#Ops*/, 2, 3, 
                // Src: (PPCld_vec_be:{ *:[v2i64] } xoaddr:{ *:[iPTR] }:$src) - Complexity = 412
                // Dst: (LXVD2X:{ *:[v2i64] } xoaddr:{ *:[iPTR] }:$src)
/*106761*/    /*SwitchType*/ 14, MVT::v4i32,// ->106777
/*106763*/      OPC_CheckPatternPredicate, 19, // (PPCSubTarget->hasVSX()) && (PPCSubTarget->isLittleEndian())
/*106765*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/*106768*/      OPC_EmitMergeInputChains1_0,
/*106769*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::LXVW4X), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4i32, 2/*#Ops*/, 2, 3, 
                // Src: (PPCld_vec_be:{ *:[v4i32] } xoaddr:{ *:[iPTR] }:$src) - Complexity = 412
                // Dst: (LXVW4X:{ *:[v4i32] } xoaddr:{ *:[iPTR] }:$src)
/*106777*/    /*SwitchType*/ 25, MVT::v8i16,// ->106804
/*106779*/      OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/*106781*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/*106784*/      OPC_EmitMergeInputChains1_0,
/*106785*/      OPC_EmitNode1, TARGET_VAL(PPC::LXVH8X), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4i32, 2/*#Ops*/, 2, 3,  // Results = #4
/*106793*/      OPC_EmitInteger, MVT::i32, PPC::VRRCRegClassID,
/*106796*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                    MVT::v8i16, 2/*#Ops*/, 4, 5, 
                // Src: (PPCld_vec_be:{ *:[v8i16] } xoaddr:{ *:[iPTR] }:$src) - Complexity = 412
                // Dst: (COPY_TO_REGCLASS:{ *:[v8i16] } (LXVH8X:{ *:[v4i32] } xoaddr:{ *:[iPTR] }:$src), VRRC:{ *:[i32] })
/*106804*/    /*SwitchType*/ 25, MVT::v16i8,// ->106831
/*106806*/      OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/*106808*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/*106811*/      OPC_EmitMergeInputChains1_0,
/*106812*/      OPC_EmitNode1, TARGET_VAL(PPC::LXVB16X), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4i32, 2/*#Ops*/, 2, 3,  // Results = #4
/*106820*/      OPC_EmitInteger, MVT::i32, PPC::VRRCRegClassID,
/*106823*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                    MVT::v16i8, 2/*#Ops*/, 4, 5, 
                // Src: (PPCld_vec_be:{ *:[v16i8] } xoaddr:{ *:[iPTR] }:$src) - Complexity = 412
                // Dst: (COPY_TO_REGCLASS:{ *:[v16i8] } (LXVB16X:{ *:[v4i32] } xoaddr:{ *:[iPTR] }:$src), VRRC:{ *:[i32] })
/*106831*/    /*SwitchType*/ 14, MVT::v2f64,// ->106847
/*106833*/      OPC_CheckPatternPredicate, 19, // (PPCSubTarget->hasVSX()) && (PPCSubTarget->isLittleEndian())
/*106835*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/*106838*/      OPC_EmitMergeInputChains1_0,
/*106839*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::LXVD2X), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v2f64, 2/*#Ops*/, 2, 3, 
                // Src: (PPCld_vec_be:{ *:[v2f64] } xoaddr:{ *:[iPTR] }:$src) - Complexity = 412
                // Dst: (LXVD2X:{ *:[v2f64] } xoaddr:{ *:[iPTR] }:$src)
/*106847*/    /*SwitchType*/ 14, MVT::v4f32,// ->106863
/*106849*/      OPC_CheckPatternPredicate, 19, // (PPCSubTarget->hasVSX()) && (PPCSubTarget->isLittleEndian())
/*106851*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/*106854*/      OPC_EmitMergeInputChains1_0,
/*106855*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::LXVW4X), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4f32, 2/*#Ops*/, 2, 3, 
                // Src: (PPCld_vec_be:{ *:[v4f32] } xoaddr:{ *:[iPTR] }:$src) - Complexity = 412
                // Dst: (LXVW4X:{ *:[v4f32] } xoaddr:{ *:[iPTR] }:$src)
/*106863*/    0, // EndSwitchType
/*106864*/  /*SwitchOpcode*/ 69, TARGET_VAL(PPCISD::LD_SPLAT),// ->106936
/*106867*/    OPC_RecordMemRef,
/*106868*/    OPC_RecordNode, // #0 = 'PPCldsplat' chained node
/*106869*/    OPC_RecordChild1, // #1 = $A
/*106870*/    OPC_SwitchType /*4 cases */, 14, MVT::v2i64,// ->106887
/*106873*/      OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/*106875*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$A #2 #3
/*106878*/      OPC_EmitMergeInputChains1_0,
/*106879*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::LXVDSX), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v2i64, 2/*#Ops*/, 2, 3, 
                // Src: (PPCldsplat:{ *:[v2i64] } xoaddr:{ *:[iPTR] }:$A) - Complexity = 412
                // Dst: (LXVDSX:{ *:[v2i64] } xoaddr:{ *:[iPTR] }:$A)
/*106887*/    /*SwitchType*/ 14, MVT::v4i32,// ->106903
/*106889*/      OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/*106891*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$A #2 #3
/*106894*/      OPC_EmitMergeInputChains1_0,
/*106895*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::LXVWSX), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4i32, 2/*#Ops*/, 2, 3, 
                // Src: (PPCldsplat:{ *:[v4i32] } xoaddr:{ *:[iPTR] }:$A) - Complexity = 412
                // Dst: (LXVWSX:{ *:[v4i32] } xoaddr:{ *:[iPTR] }:$A)
/*106903*/    /*SwitchType*/ 14, MVT::v2f64,// ->106919
/*106905*/      OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/*106907*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$A #2 #3
/*106910*/      OPC_EmitMergeInputChains1_0,
/*106911*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::LXVDSX), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v2f64, 2/*#Ops*/, 2, 3, 
                // Src: (PPCldsplat:{ *:[v2f64] } xoaddr:{ *:[iPTR] }:$A) - Complexity = 412
                // Dst: (LXVDSX:{ *:[v2f64] } xoaddr:{ *:[iPTR] }:$A)
/*106919*/    /*SwitchType*/ 14, MVT::v4f32,// ->106935
/*106921*/      OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/*106923*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$A #2 #3
/*106926*/      OPC_EmitMergeInputChains1_0,
/*106927*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::LXVWSX), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4f32, 2/*#Ops*/, 2, 3, 
                // Src: (PPCldsplat:{ *:[v4f32] } xoaddr:{ *:[iPTR] }:$A) - Complexity = 412
                // Dst: (LXVWSX:{ *:[v4f32] } xoaddr:{ *:[iPTR] }:$A)
/*106935*/    0, // EndSwitchType
/*106936*/  /*SwitchOpcode*/ 89, TARGET_VAL(PPCISD::VECSHL),// ->107028
/*106939*/    OPC_RecordChild0, // #0 = $src
/*106940*/    OPC_Scope, 54, /*->106996*/ // 2 children in Scope
/*106942*/      OPC_CheckChild0Type, MVT::v4i32,
/*106944*/      OPC_Scope, 20, /*->106966*/ // 2 children in Scope
/*106946*/        OPC_CheckChild1Same, 0,
/*106948*/        OPC_CheckChild2Integer, 2, 
/*106950*/        OPC_CheckType, MVT::v4i32,
/*106952*/        OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/*106954*/        OPC_EmitInteger, MVT::i32, 2, 
/*106957*/        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] })
/*106966*/      /*Scope*/ 28, /*->106995*/
/*106967*/        OPC_RecordChild1, // #1 = $XB
/*106968*/        OPC_CheckChild1Type, MVT::v4i32,
/*106970*/        OPC_RecordChild2, // #2 = $SHW
/*106971*/        OPC_MoveChild2,
/*106972*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*106975*/        OPC_CheckPredicate, 13, // Predicate_imm32SExt16
/*106977*/        OPC_CheckType, MVT::i32,
/*106979*/        OPC_MoveParent,
/*106980*/        OPC_CheckType, MVT::v4i32,
/*106982*/        OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/*106984*/        OPC_EmitConvertToTarget, 2,
/*106986*/        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)
/*106995*/      0, /*End of Scope*/
/*106996*/    /*Scope*/ 30, /*->107027*/
/*106997*/      OPC_CheckChild0Type, MVT::v16i8,
/*106999*/      OPC_RecordChild1, // #1 = $vB
/*107000*/      OPC_CheckChild1Type, MVT::v16i8,
/*107002*/      OPC_RecordChild2, // #2 = $SH
/*107003*/      OPC_MoveChild2,
/*107004*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*107007*/      OPC_CheckPredicate, 13, // Predicate_imm32SExt16
/*107009*/      OPC_CheckType, MVT::i32,
/*107011*/      OPC_MoveParent,
/*107012*/      OPC_CheckType, MVT::v16i8,
/*107014*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/*107016*/      OPC_EmitConvertToTarget, 2,
/*107018*/      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)
/*107027*/    0, /*End of Scope*/
/*107028*/  /*SwitchOpcode*/ 12|128,5/*652*/, TARGET_VAL(ISD::INSERT_VECTOR_ELT),// ->107684
/*107032*/    OPC_RecordChild0, // #0 = $A
/*107033*/    OPC_RecordChild1, // #1 = $B
/*107034*/    OPC_Scope, 32|128,1/*160*/, /*->107197*/ // 4 children in Scope
/*107037*/      OPC_CheckChild2Integer, 0, 
/*107039*/      OPC_SwitchType /*2 cases */, 68, MVT::v4i32,// ->107110
/*107042*/        OPC_Scope, 32, /*->107076*/ // 2 children in Scope
/*107044*/          OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/*107046*/          OPC_EmitNode1, TARGET_VAL(PPC::MTVSRWZ), 0,
                        MVT::f64, 1/*#Ops*/, 1,  // Results = #2
/*107053*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*107056*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i32, 2/*#Ops*/, 2, 3,  // Results = #4
/*107064*/          OPC_EmitInteger, MVT::i32, 12, 
/*107067*/          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] })
/*107076*/        /*Scope*/ 32, /*->107109*/
/*107077*/          OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/*107079*/          OPC_EmitNode1, TARGET_VAL(PPC::MTVSRWZ), 0,
                        MVT::f64, 1/*#Ops*/, 1,  // Results = #2
/*107086*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*107089*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i32, 2/*#Ops*/, 2, 3,  // Results = #4
/*107097*/          OPC_EmitInteger, MVT::i32, 0, 
/*107100*/          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] })
/*107109*/        0, /*End of Scope*/
/*107110*/      /*SwitchType*/ 84, MVT::v4f32,// ->107196
/*107112*/        OPC_Scope, 40, /*->107154*/ // 2 children in Scope
/*107114*/          OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/*107116*/          OPC_EmitNode1, TARGET_VAL(PPC::XSCVDPSPN), 0,
                        MVT::v4i32, 1/*#Ops*/, 1,  // Results = #2
/*107123*/          OPC_EmitNode1, TARGET_VAL(PPC::XSCVDPSPN), 0,
                        MVT::v4i32, 1/*#Ops*/, 1,  // Results = #3
/*107130*/          OPC_EmitInteger, MVT::i32, 3, 
/*107133*/          OPC_EmitNode1, TARGET_VAL(PPC::XXSLDWI), 0,
                        MVT::v4f32, 3/*#Ops*/, 2, 3, 4,  // Results = #5
/*107142*/          OPC_EmitInteger, MVT::i32, 12, 
/*107145*/          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] })
/*107154*/        /*Scope*/ 40, /*->107195*/
/*107155*/          OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/*107157*/          OPC_EmitNode1, TARGET_VAL(PPC::XSCVDPSPN), 0,
                        MVT::v4i32, 1/*#Ops*/, 1,  // Results = #2
/*107164*/          OPC_EmitNode1, TARGET_VAL(PPC::XSCVDPSPN), 0,
                        MVT::v4i32, 1/*#Ops*/, 1,  // Results = #3
/*107171*/          OPC_EmitInteger, MVT::i32, 3, 
/*107174*/          OPC_EmitNode1, TARGET_VAL(PPC::XXSLDWI), 0,
                        MVT::v4f32, 3/*#Ops*/, 2, 3, 4,  // Results = #5
/*107183*/          OPC_EmitInteger, MVT::i32, 0, 
/*107186*/          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] })
/*107195*/        0, /*End of Scope*/
/*107196*/      0, // EndSwitchType
/*107197*/    /*Scope*/ 32|128,1/*160*/, /*->107359*/
/*107199*/      OPC_CheckChild2Integer, 1, 
/*107201*/      OPC_SwitchType /*2 cases */, 68, MVT::v4i32,// ->107272
/*107204*/        OPC_Scope, 32, /*->107238*/ // 2 children in Scope
/*107206*/          OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/*107208*/          OPC_EmitNode1, TARGET_VAL(PPC::MTVSRWZ), 0,
                        MVT::f64, 1/*#Ops*/, 1,  // Results = #2
/*107215*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*107218*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i32, 2/*#Ops*/, 2, 3,  // Results = #4
/*107226*/          OPC_EmitInteger, MVT::i32, 8, 
/*107229*/          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] })
/*107238*/        /*Scope*/ 32, /*->107271*/
/*107239*/          OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/*107241*/          OPC_EmitNode1, TARGET_VAL(PPC::MTVSRWZ), 0,
                        MVT::f64, 1/*#Ops*/, 1,  // Results = #2
/*107248*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*107251*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i32, 2/*#Ops*/, 2, 3,  // Results = #4
/*107259*/          OPC_EmitInteger, MVT::i32, 4, 
/*107262*/          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] })
/*107271*/        0, /*End of Scope*/
/*107272*/      /*SwitchType*/ 84, MVT::v4f32,// ->107358
/*107274*/        OPC_Scope, 40, /*->107316*/ // 2 children in Scope
/*107276*/          OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/*107278*/          OPC_EmitNode1, TARGET_VAL(PPC::XSCVDPSPN), 0,
                        MVT::v4i32, 1/*#Ops*/, 1,  // Results = #2
/*107285*/          OPC_EmitNode1, TARGET_VAL(PPC::XSCVDPSPN), 0,
                        MVT::v4i32, 1/*#Ops*/, 1,  // Results = #3
/*107292*/          OPC_EmitInteger, MVT::i32, 3, 
/*107295*/          OPC_EmitNode1, TARGET_VAL(PPC::XXSLDWI), 0,
                        MVT::v4f32, 3/*#Ops*/, 2, 3, 4,  // Results = #5
/*107304*/          OPC_EmitInteger, MVT::i32, 8, 
/*107307*/          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] })
/*107316*/        /*Scope*/ 40, /*->107357*/
/*107317*/          OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/*107319*/          OPC_EmitNode1, TARGET_VAL(PPC::XSCVDPSPN), 0,
                        MVT::v4i32, 1/*#Ops*/, 1,  // Results = #2
/*107326*/          OPC_EmitNode1, TARGET_VAL(PPC::XSCVDPSPN), 0,
                        MVT::v4i32, 1/*#Ops*/, 1,  // Results = #3
/*107333*/          OPC_EmitInteger, MVT::i32, 3, 
/*107336*/          OPC_EmitNode1, TARGET_VAL(PPC::XXSLDWI), 0,
                        MVT::v4f32, 3/*#Ops*/, 2, 3, 4,  // Results = #5
/*107345*/          OPC_EmitInteger, MVT::i32, 4, 
/*107348*/          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] })
/*107357*/        0, /*End of Scope*/
/*107358*/      0, // EndSwitchType
/*107359*/    /*Scope*/ 32|128,1/*160*/, /*->107521*/
/*107361*/      OPC_CheckChild2Integer, 2, 
/*107363*/      OPC_SwitchType /*2 cases */, 68, MVT::v4i32,// ->107434
/*107366*/        OPC_Scope, 32, /*->107400*/ // 2 children in Scope
/*107368*/          OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/*107370*/          OPC_EmitNode1, TARGET_VAL(PPC::MTVSRWZ), 0,
                        MVT::f64, 1/*#Ops*/, 1,  // Results = #2
/*107377*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*107380*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i32, 2/*#Ops*/, 2, 3,  // Results = #4
/*107388*/          OPC_EmitInteger, MVT::i32, 4, 
/*107391*/          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] })
/*107400*/        /*Scope*/ 32, /*->107433*/
/*107401*/          OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/*107403*/          OPC_EmitNode1, TARGET_VAL(PPC::MTVSRWZ), 0,
                        MVT::f64, 1/*#Ops*/, 1,  // Results = #2
/*107410*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*107413*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i32, 2/*#Ops*/, 2, 3,  // Results = #4
/*107421*/          OPC_EmitInteger, MVT::i32, 8, 
/*107424*/          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] })
/*107433*/        0, /*End of Scope*/
/*107434*/      /*SwitchType*/ 84, MVT::v4f32,// ->107520
/*107436*/        OPC_Scope, 40, /*->107478*/ // 2 children in Scope
/*107438*/          OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/*107440*/          OPC_EmitNode1, TARGET_VAL(PPC::XSCVDPSPN), 0,
                        MVT::v4i32, 1/*#Ops*/, 1,  // Results = #2
/*107447*/          OPC_EmitNode1, TARGET_VAL(PPC::XSCVDPSPN), 0,
                        MVT::v4i32, 1/*#Ops*/, 1,  // Results = #3
/*107454*/          OPC_EmitInteger, MVT::i32, 3, 
/*107457*/          OPC_EmitNode1, TARGET_VAL(PPC::XXSLDWI), 0,
                        MVT::v4f32, 3/*#Ops*/, 2, 3, 4,  // Results = #5
/*107466*/          OPC_EmitInteger, MVT::i32, 4, 
/*107469*/          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] })
/*107478*/        /*Scope*/ 40, /*->107519*/
/*107479*/          OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/*107481*/          OPC_EmitNode1, TARGET_VAL(PPC::XSCVDPSPN), 0,
                        MVT::v4i32, 1/*#Ops*/, 1,  // Results = #2
/*107488*/          OPC_EmitNode1, TARGET_VAL(PPC::XSCVDPSPN), 0,
                        MVT::v4i32, 1/*#Ops*/, 1,  // Results = #3
/*107495*/          OPC_EmitInteger, MVT::i32, 3, 
/*107498*/          OPC_EmitNode1, TARGET_VAL(PPC::XXSLDWI), 0,
                        MVT::v4f32, 3/*#Ops*/, 2, 3, 4,  // Results = #5
/*107507*/          OPC_EmitInteger, MVT::i32, 8, 
/*107510*/          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] })
/*107519*/        0, /*End of Scope*/
/*107520*/      0, // EndSwitchType
/*107521*/    /*Scope*/ 32|128,1/*160*/, /*->107683*/
/*107523*/      OPC_CheckChild2Integer, 3, 
/*107525*/      OPC_SwitchType /*2 cases */, 68, MVT::v4i32,// ->107596
/*107528*/        OPC_Scope, 32, /*->107562*/ // 2 children in Scope
/*107530*/          OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/*107532*/          OPC_EmitNode1, TARGET_VAL(PPC::MTVSRWZ), 0,
                        MVT::f64, 1/*#Ops*/, 1,  // Results = #2
/*107539*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*107542*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i32, 2/*#Ops*/, 2, 3,  // Results = #4
/*107550*/          OPC_EmitInteger, MVT::i32, 0, 
/*107553*/          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] })
/*107562*/        /*Scope*/ 32, /*->107595*/
/*107563*/          OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/*107565*/          OPC_EmitNode1, TARGET_VAL(PPC::MTVSRWZ), 0,
                        MVT::f64, 1/*#Ops*/, 1,  // Results = #2
/*107572*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*107575*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i32, 2/*#Ops*/, 2, 3,  // Results = #4
/*107583*/          OPC_EmitInteger, MVT::i32, 12, 
/*107586*/          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] })
/*107595*/        0, /*End of Scope*/
/*107596*/      /*SwitchType*/ 84, MVT::v4f32,// ->107682
/*107598*/        OPC_Scope, 40, /*->107640*/ // 2 children in Scope
/*107600*/          OPC_CheckPatternPredicate, 1, // (PPCSubTarget->hasP9Vector()) && (PPCSubTarget->isLittleEndian())
/*107602*/          OPC_EmitNode1, TARGET_VAL(PPC::XSCVDPSPN), 0,
                        MVT::v4i32, 1/*#Ops*/, 1,  // Results = #2
/*107609*/          OPC_EmitNode1, TARGET_VAL(PPC::XSCVDPSPN), 0,
                        MVT::v4i32, 1/*#Ops*/, 1,  // Results = #3
/*107616*/          OPC_EmitInteger, MVT::i32, 3, 
/*107619*/          OPC_EmitNode1, TARGET_VAL(PPC::XXSLDWI), 0,
                        MVT::v4f32, 3/*#Ops*/, 2, 3, 4,  // Results = #5
/*107628*/          OPC_EmitInteger, MVT::i32, 0, 
/*107631*/          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] })
/*107640*/        /*Scope*/ 40, /*->107681*/
/*107641*/          OPC_CheckPatternPredicate, 0, // (PPCSubTarget->hasP9Vector()) && (!PPCSubTarget->isLittleEndian())
/*107643*/          OPC_EmitNode1, TARGET_VAL(PPC::XSCVDPSPN), 0,
                        MVT::v4i32, 1/*#Ops*/, 1,  // Results = #2
/*107650*/          OPC_EmitNode1, TARGET_VAL(PPC::XSCVDPSPN), 0,
                        MVT::v4i32, 1/*#Ops*/, 1,  // Results = #3
/*107657*/          OPC_EmitInteger, MVT::i32, 3, 
/*107660*/          OPC_EmitNode1, TARGET_VAL(PPC::XXSLDWI), 0,
                        MVT::v4f32, 3/*#Ops*/, 2, 3, 4,  // Results = #5
/*107669*/          OPC_EmitInteger, MVT::i32, 12, 
/*107672*/          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] })
/*107681*/        0, /*End of Scope*/
/*107682*/      0, // EndSwitchType
/*107683*/    0, /*End of Scope*/
/*107684*/  /*SwitchOpcode*/ 31, TARGET_VAL(PPCISD::XXPERMDI),// ->107718
/*107687*/    OPC_RecordChild0, // #0 = $XA
/*107688*/    OPC_CheckChild0Type, MVT::v2i64,
/*107690*/    OPC_RecordChild1, // #1 = $XB
/*107691*/    OPC_CheckChild1Type, MVT::v2i64,
/*107693*/    OPC_RecordChild2, // #2 = $DM
/*107694*/    OPC_MoveChild2,
/*107695*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*107698*/    OPC_CheckPredicate, 13, // Predicate_imm32SExt16
/*107700*/    OPC_CheckType, MVT::i32,
/*107702*/    OPC_MoveParent,
/*107703*/    OPC_CheckType, MVT::v2i64,
/*107705*/    OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/*107707*/    OPC_EmitConvertToTarget, 2,
/*107709*/    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)
/*107718*/  /*SwitchOpcode*/ 27, TARGET_VAL(PPCISD::XXSPLT),// ->107748
/*107721*/    OPC_RecordChild0, // #0 = $XB
/*107722*/    OPC_CheckChild0Type, MVT::v4i32,
/*107724*/    OPC_RecordChild1, // #1 = $UIM
/*107725*/    OPC_MoveChild1,
/*107726*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*107729*/    OPC_CheckPredicate, 13, // Predicate_imm32SExt16
/*107731*/    OPC_CheckType, MVT::i32,
/*107733*/    OPC_MoveParent,
/*107734*/    OPC_CheckType, MVT::v4i32,
/*107736*/    OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/*107738*/    OPC_EmitConvertToTarget, 1,
/*107740*/    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)
/*107748*/  /*SwitchOpcode*/ 96, TARGET_VAL(PPCISD::VECINSERT),// ->107847
/*107751*/    OPC_RecordChild0, // #0 = $XTi
/*107752*/    OPC_Scope, 30, /*->107784*/ // 3 children in Scope
/*107754*/      OPC_CheckChild0Type, MVT::v4i32,
/*107756*/      OPC_RecordChild1, // #1 = $XB
/*107757*/      OPC_CheckChild1Type, MVT::v4i32,
/*107759*/      OPC_RecordChild2, // #2 = $UIM
/*107760*/      OPC_MoveChild2,
/*107761*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*107764*/      OPC_CheckPredicate, 13, // Predicate_imm32SExt16
/*107766*/      OPC_CheckType, MVT::i32,
/*107768*/      OPC_MoveParent,
/*107769*/      OPC_CheckType, MVT::v4i32,
/*107771*/      OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/*107773*/      OPC_EmitConvertToTarget, 2,
/*107775*/      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)
/*107784*/    /*Scope*/ 30, /*->107815*/
/*107785*/      OPC_CheckChild0Type, MVT::v16i8,
/*107787*/      OPC_RecordChild1, // #1 = $vB
/*107788*/      OPC_CheckChild1Type, MVT::v16i8,
/*107790*/      OPC_RecordChild2, // #2 = $UIM
/*107791*/      OPC_MoveChild2,
/*107792*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*107795*/      OPC_CheckPredicate, 13, // Predicate_imm32SExt16
/*107797*/      OPC_CheckType, MVT::i32,
/*107799*/      OPC_MoveParent,
/*107800*/      OPC_CheckType, MVT::v16i8,
/*107802*/      OPC_CheckPatternPredicate, 32, // (PPCSubTarget->hasP9Altivec())
/*107804*/      OPC_EmitConvertToTarget, 2,
/*107806*/      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)
/*107815*/    /*Scope*/ 30, /*->107846*/
/*107816*/      OPC_CheckChild0Type, MVT::v8i16,
/*107818*/      OPC_RecordChild1, // #1 = $vB
/*107819*/      OPC_CheckChild1Type, MVT::v8i16,
/*107821*/      OPC_RecordChild2, // #2 = $UIM
/*107822*/      OPC_MoveChild2,
/*107823*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*107826*/      OPC_CheckPredicate, 13, // Predicate_imm32SExt16
/*107828*/      OPC_CheckType, MVT::i32,
/*107830*/      OPC_MoveParent,
/*107831*/      OPC_CheckType, MVT::v8i16,
/*107833*/      OPC_CheckPatternPredicate, 32, // (PPCSubTarget->hasP9Altivec())
/*107835*/      OPC_EmitConvertToTarget, 2,
/*107837*/      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)
/*107846*/    0, /*End of Scope*/
/*107847*/  /*SwitchOpcode*/ 84, TARGET_VAL(PPCISD::XXSWAPD),// ->107934
/*107850*/    OPC_RecordNode, // #0 = 'PPCxxswapd' chained node
/*107851*/    OPC_RecordChild1, // #1 = $src
/*107852*/    OPC_SwitchType /*4 cases */, 18, MVT::v2i64,// ->107873
/*107855*/      OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/*107857*/      OPC_EmitMergeInputChains1_0,
/*107858*/      OPC_EmitInteger, MVT::i32, 2, 
/*107861*/      OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                    MVT::v2i64, 3/*#Ops*/, 1, 1, 2,  // Results = #3
/*107870*/      OPC_CompleteMatch, 1, 3, 
                 // Src: (PPCxxswapd:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$src) - Complexity = 403
                 // Dst: (XXPERMDI:{ *:[v2i64] } ?:{ *:[v2i64] }:$src, ?:{ *:[v2i64] }:$src, 2:{ *:[i32] })
/*107873*/    /*SwitchType*/ 18, MVT::v4i32,// ->107893
/*107875*/      OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/*107877*/      OPC_EmitMergeInputChains1_0,
/*107878*/      OPC_EmitInteger, MVT::i32, 2, 
/*107881*/      OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                    MVT::v4i32, 3/*#Ops*/, 1, 1, 2,  // Results = #3
/*107890*/      OPC_CompleteMatch, 1, 3, 
                 // Src: (PPCxxswapd:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$src) - Complexity = 403
                 // Dst: (XXPERMDI:{ *:[v4i32] } ?:{ *:[v4i32] }:$src, ?:{ *:[v4i32] }:$src, 2:{ *:[i32] })
/*107893*/    /*SwitchType*/ 18, MVT::v2f64,// ->107913
/*107895*/      OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/*107897*/      OPC_EmitMergeInputChains1_0,
/*107898*/      OPC_EmitInteger, MVT::i32, 2, 
/*107901*/      OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                    MVT::v2f64, 3/*#Ops*/, 1, 1, 2,  // Results = #3
/*107910*/      OPC_CompleteMatch, 1, 3, 
                 // Src: (PPCxxswapd:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$src) - Complexity = 403
                 // Dst: (XXPERMDI:{ *:[v2f64] } ?:{ *:[v2f64] }:$src, ?:{ *:[v2f64] }:$src, 2:{ *:[i32] })
/*107913*/    /*SwitchType*/ 18, MVT::v4f32,// ->107933
/*107915*/      OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/*107917*/      OPC_EmitMergeInputChains1_0,
/*107918*/      OPC_EmitInteger, MVT::i32, 2, 
/*107921*/      OPC_EmitNode1, TARGET_VAL(PPC::XXPERMDI), 0,
                    MVT::v4f32, 3/*#Ops*/, 1, 1, 2,  // Results = #3
/*107930*/      OPC_CompleteMatch, 1, 3, 
                 // Src: (PPCxxswapd:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$src) - Complexity = 403
                 // Dst: (XXPERMDI:{ *:[v4f32] } ?:{ *:[v4f32] }:$src, ?:{ *:[v4f32] }:$src, 2:{ *:[i32] })
/*107933*/    0, // EndSwitchType
/*107934*/  /*SwitchOpcode*/ 81|128,2/*337*/, TARGET_VAL(ISD::VSELECT),// ->108275
/*107938*/    OPC_RecordChild0, // #0 = $vA
/*107939*/    OPC_Scope, 17, /*->107958*/ // 10 children in Scope
/*107941*/      OPC_CheckChild0Type, MVT::v4i32,
/*107943*/      OPC_RecordChild1, // #1 = $vB
/*107944*/      OPC_RecordChild2, // #2 = $vC
/*107945*/      OPC_CheckType, MVT::v4i32,
/*107947*/      OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/*107949*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XXSEL), 0,
                    MVT::v4i32, 3/*#Ops*/, 2, 1, 0, 
                // Src: (vselect:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB, v4i32:{ *:[v4i32] }:$vC) - Complexity = 403
                // Dst: (XXSEL:{ *:[v4i32] } ?:{ *:[v4i32] }:$vC, ?:{ *:[v4i32] }:$vB, ?:{ *:[v4i32] }:$vA)
/*107958*/    /*Scope*/ 33|128,1/*161*/, /*->108121*/
/*107960*/      OPC_RecordChild1, // #1 = $vB
/*107961*/      OPC_RecordChild2, // #2 = $vC
/*107962*/      OPC_SwitchType /*3 cases */, 11, MVT::v2i64,// ->107976
/*107965*/        OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/*107967*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::XXSEL), 0,
                      MVT::v2i64, 3/*#Ops*/, 2, 1, 0, 
                  // Src: (vselect:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vA, v2i64:{ *:[v2i64] }:$vB, v2i64:{ *:[v2i64] }:$vC) - Complexity = 403
                  // Dst: (XXSEL:{ *:[v2i64] } ?:{ *:[v2i64] }:$vC, ?:{ *:[v2i64] }:$vB, ?:{ *:[v2i64] }:$vA)
/*107976*/      /*SwitchType*/ 70, MVT::v16i8,// ->108048
/*107978*/        OPC_Scope, 55, /*->108035*/ // 2 children in Scope
/*107980*/          OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/*107982*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*107985*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i32, 2/*#Ops*/, 2, 3,  // Results = #4
/*107993*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*107996*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i32, 2/*#Ops*/, 1, 5,  // Results = #6
/*108004*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*108007*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 7,  // Results = #8
/*108015*/          OPC_EmitNode1, TARGET_VAL(PPC::XXSEL), 0,
                        MVT::v4i32, 3/*#Ops*/, 4, 6, 8,  // Results = #9
/*108024*/          OPC_EmitInteger, MVT::i32, PPC::VRRCRegClassID,
/*108027*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i8, 2/*#Ops*/, 9, 10, 
                    // Src: (vselect:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB, v16i8:{ *:[v16i8] }:$vC) - Complexity = 403
                    // Dst: (COPY_TO_REGCLASS:{ *:[v16i8] } (XXSEL:{ *:[v4i32] } (COPY_TO_REGCLASS:{ *:[v4i32] } ?:{ *:[v16i8] }:$vC, VSRC:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4i32] } ?:{ *:[v16i8] }:$vB, VSRC:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4i32] } ?:{ *:[v16i8] }:$vA, VSRC:{ *:[i32] })), VRRC:{ *:[i32] })
/*108035*/        /*Scope*/ 11, /*->108047*/
/*108036*/          OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/*108038*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::VSEL), 0,
                        MVT::v16i8, 3/*#Ops*/, 2, 1, 0, 
                    // Src: (vselect:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB, v16i8:{ *:[v16i8] }:$vC) - Complexity = 3
                    // Dst: (VSEL:{ *:[v16i8] } ?:{ *:[v16i8] }:$vC, ?:{ *:[v16i8] }:$vB, ?:{ *:[v16i8] }:$vA)
/*108047*/        0, /*End of Scope*/
/*108048*/      /*SwitchType*/ 70, MVT::v8i16,// ->108120
/*108050*/        OPC_Scope, 55, /*->108107*/ // 2 children in Scope
/*108052*/          OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/*108054*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*108057*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i32, 2/*#Ops*/, 2, 3,  // Results = #4
/*108065*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*108068*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i32, 2/*#Ops*/, 1, 5,  // Results = #6
/*108076*/          OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*108079*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 7,  // Results = #8
/*108087*/          OPC_EmitNode1, TARGET_VAL(PPC::XXSEL), 0,
                        MVT::v4i32, 3/*#Ops*/, 4, 6, 8,  // Results = #9
/*108096*/          OPC_EmitInteger, MVT::i32, PPC::VRRCRegClassID,
/*108099*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v8i16, 2/*#Ops*/, 9, 10, 
                    // Src: (vselect:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB, v8i16:{ *:[v8i16] }:$vC) - Complexity = 403
                    // Dst: (COPY_TO_REGCLASS:{ *:[v8i16] } (XXSEL:{ *:[v4i32] } (COPY_TO_REGCLASS:{ *:[v4i32] } ?:{ *:[v8i16] }:$vC, VSRC:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4i32] } ?:{ *:[v8i16] }:$vB, VSRC:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v4i32] } ?:{ *:[v8i16] }:$vA, VSRC:{ *:[i32] })), VRRC:{ *:[i32] })
/*108107*/        /*Scope*/ 11, /*->108119*/
/*108108*/          OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/*108110*/          OPC_MorphNodeTo1, TARGET_VAL(PPC::VSEL), 0,
                        MVT::v8i16, 3/*#Ops*/, 2, 1, 0, 
                    // Src: (vselect:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB, v8i16:{ *:[v8i16] }:$vC) - Complexity = 3
                    // Dst: (VSEL:{ *:[v8i16] } ?:{ *:[v8i16] }:$vC, ?:{ *:[v8i16] }:$vB, ?:{ *:[v8i16] }:$vA)
/*108119*/        0, /*End of Scope*/
/*108120*/      0, // EndSwitchType
/*108121*/    /*Scope*/ 17, /*->108139*/
/*108122*/      OPC_CheckChild0Type, MVT::v4i32,
/*108124*/      OPC_RecordChild1, // #1 = $vB
/*108125*/      OPC_RecordChild2, // #2 = $vC
/*108126*/      OPC_CheckType, MVT::v4i32,
/*108128*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/*108130*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VSEL), 0,
                    MVT::v4i32, 3/*#Ops*/, 2, 1, 0, 
                // Src: (vselect:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB, v4i32:{ *:[v4i32] }:$vC) - Complexity = 3
                // Dst: (VSEL:{ *:[v4i32] } ?:{ *:[v4i32] }:$vC, ?:{ *:[v4i32] }:$vB, ?:{ *:[v4i32] }:$vA)
/*108139*/    /*Scope*/ 15, /*->108155*/
/*108140*/      OPC_RecordChild1, // #1 = $vB
/*108141*/      OPC_RecordChild2, // #2 = $vC
/*108142*/      OPC_CheckType, MVT::v2i64,
/*108144*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/*108146*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VSEL), 0,
                    MVT::v2i64, 3/*#Ops*/, 2, 1, 0, 
                // Src: (vselect:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$vA, v2i64:{ *:[v2i64] }:$vB, v2i64:{ *:[v2i64] }:$vC) - Complexity = 3
                // Dst: (VSEL:{ *:[v2i64] } ?:{ *:[v2i64] }:$vC, ?:{ *:[v2i64] }:$vB, ?:{ *:[v2i64] }:$vA)
/*108155*/    /*Scope*/ 17, /*->108173*/
/*108156*/      OPC_CheckChild0Type, MVT::v4i1,
/*108158*/      OPC_RecordChild1, // #1 = $FRC
/*108159*/      OPC_RecordChild2, // #2 = $FRB
/*108160*/      OPC_CheckType, MVT::v4i1,
/*108162*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/*108164*/      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)
/*108173*/    /*Scope*/ 17, /*->108191*/
/*108174*/      OPC_CheckChild0Type, MVT::v4i32,
/*108176*/      OPC_RecordChild1, // #1 = $vB
/*108177*/      OPC_RecordChild2, // #2 = $vC
/*108178*/      OPC_CheckType, MVT::v4f32,
/*108180*/      OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/*108182*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XXSEL), 0,
                    MVT::v4f32, 3/*#Ops*/, 2, 1, 0, 
                // Src: (vselect:{ *:[v4f32] } v4i32:{ *:[v4i32] }:$vA, v4f32:{ *:[v4f32] }:$vB, v4f32:{ *:[v4f32] }:$vC) - Complexity = 403
                // Dst: (XXSEL:{ *:[v4f32] } ?:{ *:[v4f32] }:$vC, ?:{ *:[v4f32] }:$vB, ?:{ *:[v4i32] }:$vA)
/*108191*/    /*Scope*/ 15, /*->108207*/
/*108192*/      OPC_RecordChild1, // #1 = $vB
/*108193*/      OPC_RecordChild2, // #2 = $vC
/*108194*/      OPC_CheckType, MVT::v2f64,
/*108196*/      OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/*108198*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XXSEL), 0,
                    MVT::v2f64, 3/*#Ops*/, 2, 1, 0, 
                // Src: (vselect:{ *:[v2f64] } v2i64:{ *:[v2i64] }:$vA, v2f64:{ *:[v2f64] }:$vB, v2f64:{ *:[v2f64] }:$vC) - Complexity = 403
                // Dst: (XXSEL:{ *:[v2f64] } ?:{ *:[v2f64] }:$vC, ?:{ *:[v2f64] }:$vB, ?:{ *:[v2i64] }:$vA)
/*108207*/    /*Scope*/ 17, /*->108225*/
/*108208*/      OPC_CheckChild0Type, MVT::v4i32,
/*108210*/      OPC_RecordChild1, // #1 = $vB
/*108211*/      OPC_RecordChild2, // #2 = $vC
/*108212*/      OPC_CheckType, MVT::v4f32,
/*108214*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/*108216*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VSEL), 0,
                    MVT::v4f32, 3/*#Ops*/, 2, 1, 0, 
                // Src: (vselect:{ *:[v4f32] } v4i32:{ *:[v4i32] }:$vA, v4f32:{ *:[v4f32] }:$vB, v4f32:{ *:[v4f32] }:$vC) - Complexity = 3
                // Dst: (VSEL:{ *:[v4f32] } ?:{ *:[v4f32] }:$vC, ?:{ *:[v4f32] }:$vB, ?:{ *:[v4i32] }:$vA)
/*108225*/    /*Scope*/ 15, /*->108241*/
/*108226*/      OPC_RecordChild1, // #1 = $vB
/*108227*/      OPC_RecordChild2, // #2 = $vC
/*108228*/      OPC_CheckType, MVT::v2f64,
/*108230*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/*108232*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VSEL), 0,
                    MVT::v2f64, 3/*#Ops*/, 2, 1, 0, 
                // Src: (vselect:{ *:[v2f64] } v2i64:{ *:[v2i64] }:$vA, v2f64:{ *:[v2f64] }:$vB, v2f64:{ *:[v2f64] }:$vC) - Complexity = 3
                // Dst: (VSEL:{ *:[v2f64] } ?:{ *:[v2f64] }:$vC, ?:{ *:[v2f64] }:$vB, ?:{ *:[v2i64] }:$vA)
/*108241*/    /*Scope*/ 32, /*->108274*/
/*108242*/      OPC_CheckChild0Type, MVT::v4i1,
/*108244*/      OPC_RecordChild1, // #1 = $FRC
/*108245*/      OPC_RecordChild2, // #2 = $FRB
/*108246*/      OPC_SwitchType /*2 cases */, 11, MVT::v4f64,// ->108260
/*108249*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/*108251*/        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)
/*108260*/      /*SwitchType*/ 11, MVT::v4f32,// ->108273
/*108262*/        OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/*108264*/        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)
/*108273*/      0, // EndSwitchType
/*108274*/    0, /*End of Scope*/
/*108275*/  /*SwitchOpcode*/ 91, TARGET_VAL(ISD::BSWAP),// ->108369
/*108278*/    OPC_RecordChild0, // #0 = $XB
/*108279*/    OPC_SwitchType /*4 cases */, 9, MVT::v4i32,// ->108291
/*108282*/      OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/*108284*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XXBRW), 0,
                    MVT::v4i32, 1/*#Ops*/, 0, 
                // Src: (bswap:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$XB) - Complexity = 403
                // Dst: (XXBRW:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$XB)
/*108291*/    /*SwitchType*/ 9, MVT::v2i64,// ->108302
/*108293*/      OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/*108295*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XXBRD), 0,
                    MVT::v2i64, 1/*#Ops*/, 0, 
                // Src: (bswap:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$XB) - Complexity = 403
                // Dst: (XXBRD:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$XB)
/*108302*/    /*SwitchType*/ 31, MVT::v8i16,// ->108335
/*108304*/      OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/*108306*/      OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*108309*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1,  // Results = #2
/*108317*/      OPC_EmitNode1, TARGET_VAL(PPC::XXBRH), 0,
                    MVT::v4i32, 1/*#Ops*/, 2,  // Results = #3
/*108324*/      OPC_EmitInteger, MVT::i32, PPC::VRRCRegClassID,
/*108327*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::v8i16, 2/*#Ops*/, 3, 4, 
                // Src: (bswap:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$A) - Complexity = 403
                // Dst: (COPY_TO_REGCLASS:{ *:[v8i16] } (XXBRH:{ *:[v4i32] } (COPY_TO_REGCLASS:{ *:[v4i32] } ?:{ *:[v8i16] }:$A, VSRC:{ *:[i32] })), VRRC:{ *:[i32] })
/*108335*/    /*SwitchType*/ 31, MVT::v1i128,// ->108368
/*108337*/      OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/*108339*/      OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*108342*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1,  // Results = #2
/*108350*/      OPC_EmitNode1, TARGET_VAL(PPC::XXBRQ), 0,
                    MVT::v4i32, 1/*#Ops*/, 2,  // Results = #3
/*108357*/      OPC_EmitInteger, MVT::i32, PPC::VRRCRegClassID,
/*108360*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::v1i128, 2/*#Ops*/, 3, 4, 
                // Src: (bswap:{ *:[v1i128] } v1i128:{ *:[v1i128] }:$A) - Complexity = 403
                // Dst: (COPY_TO_REGCLASS:{ *:[v1i128] } (XXBRQ:{ *:[v4i32] } (COPY_TO_REGCLASS:{ *:[v4i32] } ?:{ *:[v1i128] }:$A, VSRC:{ *:[i32] })), VRRC:{ *:[i32] })
/*108368*/    0, // EndSwitchType
/*108369*/  /*SwitchOpcode*/ 71, TARGET_VAL(PPCISD::SExtVElems),// ->108443
/*108372*/    OPC_RecordChild0, // #0 = $A
/*108373*/    OPC_Scope, 26, /*->108401*/ // 3 children in Scope
/*108375*/      OPC_CheckChild0Type, MVT::v16i8,
/*108377*/      OPC_SwitchType /*2 cases */, 9, MVT::v2i64,// ->108389
/*108380*/        OPC_CheckPatternPredicate, 32, // (PPCSubTarget->hasP9Altivec())
/*108382*/        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)
/*108389*/      /*SwitchType*/ 9, MVT::v4i32,// ->108400
/*108391*/        OPC_CheckPatternPredicate, 32, // (PPCSubTarget->hasP9Altivec())
/*108393*/        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)
/*108400*/      0, // EndSwitchType
/*108401*/    /*Scope*/ 26, /*->108428*/
/*108402*/      OPC_CheckChild0Type, MVT::v8i16,
/*108404*/      OPC_SwitchType /*2 cases */, 9, MVT::v2i64,// ->108416
/*108407*/        OPC_CheckPatternPredicate, 32, // (PPCSubTarget->hasP9Altivec())
/*108409*/        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)
/*108416*/      /*SwitchType*/ 9, MVT::v4i32,// ->108427
/*108418*/        OPC_CheckPatternPredicate, 32, // (PPCSubTarget->hasP9Altivec())
/*108420*/        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)
/*108427*/      0, // EndSwitchType
/*108428*/    /*Scope*/ 13, /*->108442*/
/*108429*/      OPC_CheckChild0Type, MVT::v4i32,
/*108431*/      OPC_CheckType, MVT::v2i64,
/*108433*/      OPC_CheckPatternPredicate, 32, // (PPCSubTarget->hasP9Altivec())
/*108435*/      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)
/*108442*/    0, /*End of Scope*/
/*108443*/  /*SwitchOpcode*/ 74, TARGET_VAL(ISD::SMAX),// ->108520
/*108446*/    OPC_RecordChild0, // #0 = $src1
/*108447*/    OPC_RecordChild1, // #1 = $src2
/*108448*/    OPC_SwitchType /*4 cases */, 32, MVT::v2i64,// ->108483
/*108451*/      OPC_CheckPatternPredicate, 10, // (PPCSubTarget->hasP8Vector())
/*108453*/      OPC_EmitInteger, MVT::i32, PPC::VRRCRegClassID,
/*108456*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::f128, 2/*#Ops*/, 0, 2,  // Results = #3
/*108464*/      OPC_EmitInteger, MVT::i32, PPC::VRRCRegClassID,
/*108467*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::f128, 2/*#Ops*/, 1, 4,  // Results = #5
/*108475*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VMAXSD), 0,
                    MVT::v2i64, 2/*#Ops*/, 3, 5, 
                // Src: (smax:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$src1, v2i64:{ *:[v2i64] }:$src2) - Complexity = 403
                // Dst: (VMAXSD:{ *:[v2i64] } (COPY_TO_REGCLASS:{ *:[f128] } ?:{ *:[v2i64] }:$src1, VRRC:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[f128] } ?:{ *:[v2i64] }:$src2, VRRC:{ *:[i32] }))
/*108483*/    /*SwitchType*/ 10, MVT::v16i8,// ->108495
/*108485*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/*108487*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VMAXSB), 0,
                    MVT::v16i8, 2/*#Ops*/, 0, 1, 
                // Src: (smax:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$src1, v16i8:{ *:[v16i8] }:$src2) - Complexity = 3
                // Dst: (VMAXSB:{ *:[v16i8] } ?:{ *:[v16i8] }:$src1, ?:{ *:[v16i8] }:$src2)
/*108495*/    /*SwitchType*/ 10, MVT::v8i16,// ->108507
/*108497*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/*108499*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VMAXSH), 0,
                    MVT::v8i16, 2/*#Ops*/, 0, 1, 
                // Src: (smax:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$src1, v8i16:{ *:[v8i16] }:$src2) - Complexity = 3
                // Dst: (VMAXSH:{ *:[v8i16] } ?:{ *:[v8i16] }:$src1, ?:{ *:[v8i16] }:$src2)
/*108507*/    /*SwitchType*/ 10, MVT::v4i32,// ->108519
/*108509*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/*108511*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VMAXSW), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (smax:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$src1, v4i32:{ *:[v4i32] }:$src2) - Complexity = 3
                // Dst: (VMAXSW:{ *:[v4i32] } ?:{ *:[v4i32] }:$src1, ?:{ *:[v4i32] }:$src2)
/*108519*/    0, // EndSwitchType
/*108520*/  /*SwitchOpcode*/ 74, TARGET_VAL(ISD::UMAX),// ->108597
/*108523*/    OPC_RecordChild0, // #0 = $src1
/*108524*/    OPC_RecordChild1, // #1 = $src2
/*108525*/    OPC_SwitchType /*4 cases */, 32, MVT::v2i64,// ->108560
/*108528*/      OPC_CheckPatternPredicate, 10, // (PPCSubTarget->hasP8Vector())
/*108530*/      OPC_EmitInteger, MVT::i32, PPC::VRRCRegClassID,
/*108533*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::f128, 2/*#Ops*/, 0, 2,  // Results = #3
/*108541*/      OPC_EmitInteger, MVT::i32, PPC::VRRCRegClassID,
/*108544*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::f128, 2/*#Ops*/, 1, 4,  // Results = #5
/*108552*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VMAXUD), 0,
                    MVT::v2i64, 2/*#Ops*/, 3, 5, 
                // Src: (umax:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$src1, v2i64:{ *:[v2i64] }:$src2) - Complexity = 403
                // Dst: (VMAXUD:{ *:[v2i64] } (COPY_TO_REGCLASS:{ *:[f128] } ?:{ *:[v2i64] }:$src1, VRRC:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[f128] } ?:{ *:[v2i64] }:$src2, VRRC:{ *:[i32] }))
/*108560*/    /*SwitchType*/ 10, MVT::v16i8,// ->108572
/*108562*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/*108564*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VMAXUB), 0,
                    MVT::v16i8, 2/*#Ops*/, 0, 1, 
                // Src: (umax:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$src1, v16i8:{ *:[v16i8] }:$src2) - Complexity = 3
                // Dst: (VMAXUB:{ *:[v16i8] } ?:{ *:[v16i8] }:$src1, ?:{ *:[v16i8] }:$src2)
/*108572*/    /*SwitchType*/ 10, MVT::v8i16,// ->108584
/*108574*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/*108576*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VMAXUH), 0,
                    MVT::v8i16, 2/*#Ops*/, 0, 1, 
                // Src: (umax:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$src1, v8i16:{ *:[v8i16] }:$src2) - Complexity = 3
                // Dst: (VMAXUH:{ *:[v8i16] } ?:{ *:[v8i16] }:$src1, ?:{ *:[v8i16] }:$src2)
/*108584*/    /*SwitchType*/ 10, MVT::v4i32,// ->108596
/*108586*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/*108588*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VMAXUW), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (umax:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$src1, v4i32:{ *:[v4i32] }:$src2) - Complexity = 3
                // Dst: (VMAXUW:{ *:[v4i32] } ?:{ *:[v4i32] }:$src1, ?:{ *:[v4i32] }:$src2)
/*108596*/    0, // EndSwitchType
/*108597*/  /*SwitchOpcode*/ 74, TARGET_VAL(ISD::SMIN),// ->108674
/*108600*/    OPC_RecordChild0, // #0 = $src1
/*108601*/    OPC_RecordChild1, // #1 = $src2
/*108602*/    OPC_SwitchType /*4 cases */, 32, MVT::v2i64,// ->108637
/*108605*/      OPC_CheckPatternPredicate, 10, // (PPCSubTarget->hasP8Vector())
/*108607*/      OPC_EmitInteger, MVT::i32, PPC::VRRCRegClassID,
/*108610*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::f128, 2/*#Ops*/, 0, 2,  // Results = #3
/*108618*/      OPC_EmitInteger, MVT::i32, PPC::VRRCRegClassID,
/*108621*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::f128, 2/*#Ops*/, 1, 4,  // Results = #5
/*108629*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VMINSD), 0,
                    MVT::v2i64, 2/*#Ops*/, 3, 5, 
                // Src: (smin:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$src1, v2i64:{ *:[v2i64] }:$src2) - Complexity = 403
                // Dst: (VMINSD:{ *:[v2i64] } (COPY_TO_REGCLASS:{ *:[f128] } ?:{ *:[v2i64] }:$src1, VRRC:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[f128] } ?:{ *:[v2i64] }:$src2, VRRC:{ *:[i32] }))
/*108637*/    /*SwitchType*/ 10, MVT::v16i8,// ->108649
/*108639*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/*108641*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VMINSB), 0,
                    MVT::v16i8, 2/*#Ops*/, 0, 1, 
                // Src: (smin:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$src1, v16i8:{ *:[v16i8] }:$src2) - Complexity = 3
                // Dst: (VMINSB:{ *:[v16i8] } ?:{ *:[v16i8] }:$src1, ?:{ *:[v16i8] }:$src2)
/*108649*/    /*SwitchType*/ 10, MVT::v8i16,// ->108661
/*108651*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/*108653*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VMINSH), 0,
                    MVT::v8i16, 2/*#Ops*/, 0, 1, 
                // Src: (smin:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$src1, v8i16:{ *:[v8i16] }:$src2) - Complexity = 3
                // Dst: (VMINSH:{ *:[v8i16] } ?:{ *:[v8i16] }:$src1, ?:{ *:[v8i16] }:$src2)
/*108661*/    /*SwitchType*/ 10, MVT::v4i32,// ->108673
/*108663*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/*108665*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VMINSW), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (smin:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$src1, v4i32:{ *:[v4i32] }:$src2) - Complexity = 3
                // Dst: (VMINSW:{ *:[v4i32] } ?:{ *:[v4i32] }:$src1, ?:{ *:[v4i32] }:$src2)
/*108673*/    0, // EndSwitchType
/*108674*/  /*SwitchOpcode*/ 74, TARGET_VAL(ISD::UMIN),// ->108751
/*108677*/    OPC_RecordChild0, // #0 = $src1
/*108678*/    OPC_RecordChild1, // #1 = $src2
/*108679*/    OPC_SwitchType /*4 cases */, 32, MVT::v2i64,// ->108714
/*108682*/      OPC_CheckPatternPredicate, 10, // (PPCSubTarget->hasP8Vector())
/*108684*/      OPC_EmitInteger, MVT::i32, PPC::VRRCRegClassID,
/*108687*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::f128, 2/*#Ops*/, 0, 2,  // Results = #3
/*108695*/      OPC_EmitInteger, MVT::i32, PPC::VRRCRegClassID,
/*108698*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::f128, 2/*#Ops*/, 1, 4,  // Results = #5
/*108706*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VMINUD), 0,
                    MVT::v2i64, 2/*#Ops*/, 3, 5, 
                // Src: (umin:{ *:[v2i64] } v2i64:{ *:[v2i64] }:$src1, v2i64:{ *:[v2i64] }:$src2) - Complexity = 403
                // Dst: (VMINUD:{ *:[v2i64] } (COPY_TO_REGCLASS:{ *:[f128] } ?:{ *:[v2i64] }:$src1, VRRC:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[f128] } ?:{ *:[v2i64] }:$src2, VRRC:{ *:[i32] }))
/*108714*/    /*SwitchType*/ 10, MVT::v16i8,// ->108726
/*108716*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/*108718*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VMINUB), 0,
                    MVT::v16i8, 2/*#Ops*/, 0, 1, 
                // Src: (umin:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$src1, v16i8:{ *:[v16i8] }:$src2) - Complexity = 3
                // Dst: (VMINUB:{ *:[v16i8] } ?:{ *:[v16i8] }:$src1, ?:{ *:[v16i8] }:$src2)
/*108726*/    /*SwitchType*/ 10, MVT::v8i16,// ->108738
/*108728*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/*108730*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VMINUH), 0,
                    MVT::v8i16, 2/*#Ops*/, 0, 1, 
                // Src: (umin:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$src1, v8i16:{ *:[v8i16] }:$src2) - Complexity = 3
                // Dst: (VMINUH:{ *:[v8i16] } ?:{ *:[v8i16] }:$src1, ?:{ *:[v8i16] }:$src2)
/*108738*/    /*SwitchType*/ 10, MVT::v4i32,// ->108750
/*108740*/      OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/*108742*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VMINUW), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (umin:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$src1, v4i32:{ *:[v4i32] }:$src2) - Complexity = 3
                // Dst: (VMINUW:{ *:[v4i32] } ?:{ *:[v4i32] }:$src1, ?:{ *:[v4i32] }:$src2)
/*108750*/    0, // EndSwitchType
/*108751*/  /*SwitchOpcode*/ 18, TARGET_VAL(PPCISD::QVLFSb),// ->108772
/*108754*/    OPC_RecordNode, // #0 = 'PPCqvlfsb' chained node
/*108755*/    OPC_RecordChild1, // #1 = $src
/*108756*/    OPC_CheckType, MVT::v4i1,
/*108758*/    OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/*108760*/    OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/*108763*/    OPC_EmitMergeInputChains1_0,
/*108764*/    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)
/*108772*/  /*SwitchOpcode*/ 72|128,2/*328*/, TARGET_VAL(PPCISD::VCMP),// ->109104
/*108776*/    OPC_RecordChild0, // #0 = $vA
/*108777*/    OPC_RecordChild1, // #1 = $vB
/*108778*/    OPC_SwitchType /*5 cases */, 70, MVT::v16i8,// ->108851
/*108781*/      OPC_Scope, 12, /*->108795*/ // 5 children in Scope
/*108783*/        OPC_CheckChild2Integer, 6, 
/*108785*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/*108787*/        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)
/*108795*/      /*Scope*/ 13, /*->108809*/
/*108796*/        OPC_CheckChild2Integer, 6|128,6/*774*/, 
/*108799*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/*108801*/        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)
/*108809*/      /*Scope*/ 13, /*->108823*/
/*108810*/        OPC_CheckChild2Integer, 6|128,4/*518*/, 
/*108813*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/*108815*/        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)
/*108823*/      /*Scope*/ 12, /*->108836*/
/*108824*/        OPC_CheckChild2Integer, 7, 
/*108826*/        OPC_CheckPatternPredicate, 32, // (PPCSubTarget->hasP9Altivec())
/*108828*/        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)
/*108836*/      /*Scope*/ 13, /*->108850*/
/*108837*/        OPC_CheckChild2Integer, 7|128,2/*263*/, 
/*108840*/        OPC_CheckPatternPredicate, 32, // (PPCSubTarget->hasP9Altivec())
/*108842*/        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)
/*108850*/      0, /*End of Scope*/
/*108851*/    /*SwitchType*/ 70, MVT::v8i16,// ->108923
/*108853*/      OPC_Scope, 12, /*->108867*/ // 5 children in Scope
/*108855*/        OPC_CheckChild2Integer, 70, 
/*108857*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/*108859*/        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)
/*108867*/      /*Scope*/ 13, /*->108881*/
/*108868*/        OPC_CheckChild2Integer, 70|128,6/*838*/, 
/*108871*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/*108873*/        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)
/*108881*/      /*Scope*/ 13, /*->108895*/
/*108882*/        OPC_CheckChild2Integer, 70|128,4/*582*/, 
/*108885*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/*108887*/        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)
/*108895*/      /*Scope*/ 12, /*->108908*/
/*108896*/        OPC_CheckChild2Integer, 71, 
/*108898*/        OPC_CheckPatternPredicate, 32, // (PPCSubTarget->hasP9Altivec())
/*108900*/        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)
/*108908*/      /*Scope*/ 13, /*->108922*/
/*108909*/        OPC_CheckChild2Integer, 71|128,2/*327*/, 
/*108912*/        OPC_CheckPatternPredicate, 32, // (PPCSubTarget->hasP9Altivec())
/*108914*/        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)
/*108922*/      0, /*End of Scope*/
/*108923*/    /*SwitchType*/ 72, MVT::v4i32,// ->108997
/*108925*/      OPC_Scope, 13, /*->108940*/ // 5 children in Scope
/*108927*/        OPC_CheckChild2Integer, 6|128,1/*134*/, 
/*108930*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/*108932*/        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)
/*108940*/      /*Scope*/ 13, /*->108954*/
/*108941*/        OPC_CheckChild2Integer, 6|128,7/*902*/, 
/*108944*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/*108946*/        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)
/*108954*/      /*Scope*/ 13, /*->108968*/
/*108955*/        OPC_CheckChild2Integer, 6|128,5/*646*/, 
/*108958*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/*108960*/        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)
/*108968*/      /*Scope*/ 13, /*->108982*/
/*108969*/        OPC_CheckChild2Integer, 7|128,1/*135*/, 
/*108972*/        OPC_CheckPatternPredicate, 32, // (PPCSubTarget->hasP9Altivec())
/*108974*/        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)
/*108982*/      /*Scope*/ 13, /*->108996*/
/*108983*/        OPC_CheckChild2Integer, 7|128,3/*391*/, 
/*108986*/        OPC_CheckPatternPredicate, 32, // (PPCSubTarget->hasP9Altivec())
/*108988*/        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)
/*108996*/      0, /*End of Scope*/
/*108997*/    /*SwitchType*/ 44, MVT::v2i64,// ->109043
/*108999*/      OPC_Scope, 13, /*->109014*/ // 3 children in Scope
/*109001*/        OPC_CheckChild2Integer, 71|128,1/*199*/, 
/*109004*/        OPC_CheckPatternPredicate, 35, // (PPCSubTarget->hasP8Altivec())
/*109006*/        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)
/*109014*/      /*Scope*/ 13, /*->109028*/
/*109015*/        OPC_CheckChild2Integer, 71|128,7/*967*/, 
/*109018*/        OPC_CheckPatternPredicate, 35, // (PPCSubTarget->hasP8Altivec())
/*109020*/        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)
/*109028*/      /*Scope*/ 13, /*->109042*/
/*109029*/        OPC_CheckChild2Integer, 71|128,5/*711*/, 
/*109032*/        OPC_CheckPatternPredicate, 35, // (PPCSubTarget->hasP8Altivec())
/*109034*/        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)
/*109042*/      0, /*End of Scope*/
/*109043*/    /*SwitchType*/ 58, MVT::v4f32,// ->109103
/*109045*/      OPC_Scope, 13, /*->109060*/ // 4 children in Scope
/*109047*/        OPC_CheckChild2Integer, 70|128,7/*966*/, 
/*109050*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/*109052*/        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)
/*109060*/      /*Scope*/ 13, /*->109074*/
/*109061*/        OPC_CheckChild2Integer, 70|128,1/*198*/, 
/*109064*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/*109066*/        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)
/*109074*/      /*Scope*/ 13, /*->109088*/
/*109075*/        OPC_CheckChild2Integer, 70|128,3/*454*/, 
/*109078*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/*109080*/        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)
/*109088*/      /*Scope*/ 13, /*->109102*/
/*109089*/        OPC_CheckChild2Integer, 70|128,5/*710*/, 
/*109092*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/*109094*/        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)
/*109102*/      0, /*End of Scope*/
/*109103*/    0, // EndSwitchType
/*109104*/  /*SwitchOpcode*/ 54|128,3/*438*/, TARGET_VAL(PPCISD::VCMPo),// ->109546
/*109108*/    OPC_RecordChild0, // #0 = $vA
/*109109*/    OPC_RecordChild1, // #1 = $vB
/*109110*/    OPC_SwitchType /*6 cases */, 75, MVT::v16i8,// ->109188
/*109113*/      OPC_Scope, 13, /*->109128*/ // 5 children in Scope
/*109115*/        OPC_CheckChild2Integer, 6, 
/*109117*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/*109119*/        OPC_MorphNodeTo2, TARGET_VAL(PPC::VCMPEQUB_rec), 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: (VCMPEQUB_rec:{ *:[v16i8] }:{ *:[i32] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB)
/*109128*/      /*Scope*/ 14, /*->109143*/
/*109129*/        OPC_CheckChild2Integer, 6|128,6/*774*/, 
/*109132*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/*109134*/        OPC_MorphNodeTo2, TARGET_VAL(PPC::VCMPGTSB_rec), 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: (VCMPGTSB_rec:{ *:[v16i8] }:{ *:[i32] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB)
/*109143*/      /*Scope*/ 14, /*->109158*/
/*109144*/        OPC_CheckChild2Integer, 6|128,4/*518*/, 
/*109147*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/*109149*/        OPC_MorphNodeTo2, TARGET_VAL(PPC::VCMPGTUB_rec), 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: (VCMPGTUB_rec:{ *:[v16i8] }:{ *:[i32] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB)
/*109158*/      /*Scope*/ 13, /*->109172*/
/*109159*/        OPC_CheckChild2Integer, 7, 
/*109161*/        OPC_CheckPatternPredicate, 32, // (PPCSubTarget->hasP9Altivec())
/*109163*/        OPC_MorphNodeTo2, TARGET_VAL(PPC::VCMPNEB_rec), 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: (VCMPNEB_rec:{ *:[v16i8] }:{ *:[i32] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB)
/*109172*/      /*Scope*/ 14, /*->109187*/
/*109173*/        OPC_CheckChild2Integer, 7|128,2/*263*/, 
/*109176*/        OPC_CheckPatternPredicate, 32, // (PPCSubTarget->hasP9Altivec())
/*109178*/        OPC_MorphNodeTo2, TARGET_VAL(PPC::VCMPNEZB_rec), 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: (VCMPNEZB_rec:{ *:[v16i8] }:{ *:[i32] } v16i8:{ *:[v16i8] }:$vA, v16i8:{ *:[v16i8] }:$vB)
/*109187*/      0, /*End of Scope*/
/*109188*/    /*SwitchType*/ 75, MVT::v8i16,// ->109265
/*109190*/      OPC_Scope, 13, /*->109205*/ // 5 children in Scope
/*109192*/        OPC_CheckChild2Integer, 70, 
/*109194*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/*109196*/        OPC_MorphNodeTo2, TARGET_VAL(PPC::VCMPEQUH_rec), 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: (VCMPEQUH_rec:{ *:[v8i16] }:{ *:[i32] } v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB)
/*109205*/      /*Scope*/ 14, /*->109220*/
/*109206*/        OPC_CheckChild2Integer, 70|128,6/*838*/, 
/*109209*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/*109211*/        OPC_MorphNodeTo2, TARGET_VAL(PPC::VCMPGTSH_rec), 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: (VCMPGTSH_rec:{ *:[v8i16] }:{ *:[i32] } v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB)
/*109220*/      /*Scope*/ 14, /*->109235*/
/*109221*/        OPC_CheckChild2Integer, 70|128,4/*582*/, 
/*109224*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/*109226*/        OPC_MorphNodeTo2, TARGET_VAL(PPC::VCMPGTUH_rec), 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: (VCMPGTUH_rec:{ *:[v8i16] }:{ *:[i32] } v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB)
/*109235*/      /*Scope*/ 13, /*->109249*/
/*109236*/        OPC_CheckChild2Integer, 71, 
/*109238*/        OPC_CheckPatternPredicate, 32, // (PPCSubTarget->hasP9Altivec())
/*109240*/        OPC_MorphNodeTo2, TARGET_VAL(PPC::VCMPNEH_rec), 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: (VCMPNEH_rec:{ *:[v8i16] }:{ *:[i32] } v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB)
/*109249*/      /*Scope*/ 14, /*->109264*/
/*109250*/        OPC_CheckChild2Integer, 71|128,2/*327*/, 
/*109253*/        OPC_CheckPatternPredicate, 32, // (PPCSubTarget->hasP9Altivec())
/*109255*/        OPC_MorphNodeTo2, TARGET_VAL(PPC::VCMPNEZH_rec), 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: (VCMPNEZH_rec:{ *:[v8i16] }:{ *:[i32] } v8i16:{ *:[v8i16] }:$vA, v8i16:{ *:[v8i16] }:$vB)
/*109264*/      0, /*End of Scope*/
/*109265*/    /*SwitchType*/ 77, MVT::v4i32,// ->109344
/*109267*/      OPC_Scope, 14, /*->109283*/ // 5 children in Scope
/*109269*/        OPC_CheckChild2Integer, 6|128,1/*134*/, 
/*109272*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/*109274*/        OPC_MorphNodeTo2, TARGET_VAL(PPC::VCMPEQUW_rec), 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: (VCMPEQUW_rec:{ *:[v4i32] }:{ *:[i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/*109283*/      /*Scope*/ 14, /*->109298*/
/*109284*/        OPC_CheckChild2Integer, 6|128,7/*902*/, 
/*109287*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/*109289*/        OPC_MorphNodeTo2, TARGET_VAL(PPC::VCMPGTSW_rec), 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: (VCMPGTSW_rec:{ *:[v4i32] }:{ *:[i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/*109298*/      /*Scope*/ 14, /*->109313*/
/*109299*/        OPC_CheckChild2Integer, 6|128,5/*646*/, 
/*109302*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/*109304*/        OPC_MorphNodeTo2, TARGET_VAL(PPC::VCMPGTUW_rec), 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: (VCMPGTUW_rec:{ *:[v4i32] }:{ *:[i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/*109313*/      /*Scope*/ 14, /*->109328*/
/*109314*/        OPC_CheckChild2Integer, 7|128,1/*135*/, 
/*109317*/        OPC_CheckPatternPredicate, 32, // (PPCSubTarget->hasP9Altivec())
/*109319*/        OPC_MorphNodeTo2, TARGET_VAL(PPC::VCMPNEW_rec), 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: (VCMPNEW_rec:{ *:[v4i32] }:{ *:[i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/*109328*/      /*Scope*/ 14, /*->109343*/
/*109329*/        OPC_CheckChild2Integer, 7|128,3/*391*/, 
/*109332*/        OPC_CheckPatternPredicate, 32, // (PPCSubTarget->hasP9Altivec())
/*109334*/        OPC_MorphNodeTo2, TARGET_VAL(PPC::VCMPNEZW_rec), 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: (VCMPNEZW_rec:{ *:[v4i32] }:{ *:[i32] } v4i32:{ *:[v4i32] }:$vA, v4i32:{ *:[v4i32] }:$vB)
/*109343*/      0, /*End of Scope*/
/*109344*/    /*SwitchType*/ 47, MVT::v2i64,// ->109393
/*109346*/      OPC_Scope, 14, /*->109362*/ // 3 children in Scope
/*109348*/        OPC_CheckChild2Integer, 71|128,1/*199*/, 
/*109351*/        OPC_CheckPatternPredicate, 35, // (PPCSubTarget->hasP8Altivec())
/*109353*/        OPC_MorphNodeTo2, TARGET_VAL(PPC::VCMPEQUD_rec), 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: (VCMPEQUD_rec:{ *:[v2i64] }:{ *:[i32] } v2i64:{ *:[v2i64] }:$vA, v2i64:{ *:[v2i64] }:$vB)
/*109362*/      /*Scope*/ 14, /*->109377*/
/*109363*/        OPC_CheckChild2Integer, 71|128,7/*967*/, 
/*109366*/        OPC_CheckPatternPredicate, 35, // (PPCSubTarget->hasP8Altivec())
/*109368*/        OPC_MorphNodeTo2, TARGET_VAL(PPC::VCMPGTSD_rec), 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: (VCMPGTSD_rec:{ *:[v2i64] }:{ *:[i32] } v2i64:{ *:[v2i64] }:$vA, v2i64:{ *:[v2i64] }:$vB)
/*109377*/      /*Scope*/ 14, /*->109392*/
/*109378*/        OPC_CheckChild2Integer, 71|128,5/*711*/, 
/*109381*/        OPC_CheckPatternPredicate, 35, // (PPCSubTarget->hasP8Altivec())
/*109383*/        OPC_MorphNodeTo2, TARGET_VAL(PPC::VCMPGTUD_rec), 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: (VCMPGTUD_rec:{ *:[v2i64] }:{ *:[i32] } v2i64:{ *:[v2i64] }:$vA, v2i64:{ *:[v2i64] }:$vB)
/*109392*/      0, /*End of Scope*/
/*109393*/    /*SwitchType*/ 44, MVT::v2f64,// ->109439
/*109395*/      OPC_Scope, 13, /*->109410*/ // 3 children in Scope
/*109397*/        OPC_CheckChild2Integer, 99, 
/*109399*/        OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/*109401*/        OPC_MorphNodeTo2, TARGET_VAL(PPC::XVCMPEQDP_rec), 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: (XVCMPEQDP_rec:{ *:[v2f64] }:{ *:[i32] } v2f64:{ *:[v2f64] }:$XA, v2f64:{ *:[v2f64] }:$XB)
/*109410*/      /*Scope*/ 13, /*->109424*/
/*109411*/        OPC_CheckChild2Integer, 115, 
/*109413*/        OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/*109415*/        OPC_MorphNodeTo2, TARGET_VAL(PPC::XVCMPGEDP_rec), 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: (XVCMPGEDP_rec:{ *:[v2f64] }:{ *:[i32] } v2f64:{ *:[v2f64] }:$XA, v2f64:{ *:[v2f64] }:$XB)
/*109424*/      /*Scope*/ 13, /*->109438*/
/*109425*/        OPC_CheckChild2Integer, 107, 
/*109427*/        OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/*109429*/        OPC_MorphNodeTo2, TARGET_VAL(PPC::XVCMPGTDP_rec), 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: (XVCMPGTDP_rec:{ *:[v2f64] }:{ *:[i32] } v2f64:{ *:[v2f64] }:$XA, v2f64:{ *:[v2f64] }:$XB)
/*109438*/      0, /*End of Scope*/
/*109439*/    /*SwitchType*/ 104, MVT::v4f32,// ->109545
/*109441*/      OPC_Scope, 13, /*->109456*/ // 7 children in Scope
/*109443*/        OPC_CheckChild2Integer, 67, 
/*109445*/        OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/*109447*/        OPC_MorphNodeTo2, TARGET_VAL(PPC::XVCMPEQSP_rec), 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: (XVCMPEQSP_rec:{ *:[v4f32] }:{ *:[i32] } v4f32:{ *:[v4f32] }:$XA, v4f32:{ *:[v4f32] }:$XB)
/*109456*/      /*Scope*/ 13, /*->109470*/
/*109457*/        OPC_CheckChild2Integer, 83, 
/*109459*/        OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/*109461*/        OPC_MorphNodeTo2, TARGET_VAL(PPC::XVCMPGESP_rec), 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: (XVCMPGESP_rec:{ *:[v4f32] }:{ *:[i32] } v4f32:{ *:[v4f32] }:$XA, v4f32:{ *:[v4f32] }:$XB)
/*109470*/      /*Scope*/ 13, /*->109484*/
/*109471*/        OPC_CheckChild2Integer, 75, 
/*109473*/        OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/*109475*/        OPC_MorphNodeTo2, TARGET_VAL(PPC::XVCMPGTSP_rec), 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: (XVCMPGTSP_rec:{ *:[v4f32] }:{ *:[i32] } v4f32:{ *:[v4f32] }:$XA, v4f32:{ *:[v4f32] }:$XB)
/*109484*/      /*Scope*/ 14, /*->109499*/
/*109485*/        OPC_CheckChild2Integer, 70|128,7/*966*/, 
/*109488*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/*109490*/        OPC_MorphNodeTo2, TARGET_VAL(PPC::VCMPBFP_rec), 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: (VCMPBFP_rec:{ *:[v4f32] }:{ *:[i32] } v4f32:{ *:[v4f32] }:$vA, v4f32:{ *:[v4f32] }:$vB)
/*109499*/      /*Scope*/ 14, /*->109514*/
/*109500*/        OPC_CheckChild2Integer, 70|128,1/*198*/, 
/*109503*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/*109505*/        OPC_MorphNodeTo2, TARGET_VAL(PPC::VCMPEQFP_rec), 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: (VCMPEQFP_rec:{ *:[v4f32] }:{ *:[i32] } v4f32:{ *:[v4f32] }:$vA, v4f32:{ *:[v4f32] }:$vB)
/*109514*/      /*Scope*/ 14, /*->109529*/
/*109515*/        OPC_CheckChild2Integer, 70|128,3/*454*/, 
/*109518*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/*109520*/        OPC_MorphNodeTo2, TARGET_VAL(PPC::VCMPGEFP_rec), 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: (VCMPGEFP_rec:{ *:[v4f32] }:{ *:[i32] } v4f32:{ *:[v4f32] }:$vA, v4f32:{ *:[v4f32] }:$vB)
/*109529*/      /*Scope*/ 14, /*->109544*/
/*109530*/        OPC_CheckChild2Integer, 70|128,5/*710*/, 
/*109533*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/*109535*/        OPC_MorphNodeTo2, TARGET_VAL(PPC::VCMPGTFP_rec), 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: (VCMPGTFP_rec:{ *:[v4f32] }:{ *:[i32] } v4f32:{ *:[v4f32] }:$vA, v4f32:{ *:[v4f32] }:$vB)
/*109544*/      0, /*End of Scope*/
/*109545*/    0, // EndSwitchType
/*109546*/  /*SwitchOpcode*/ 74, TARGET_VAL(PPCISD::VABSD),// ->109623
/*109549*/    OPC_RecordChild0, // #0 = $A
/*109550*/    OPC_RecordChild1, // #1 = $B
/*109551*/    OPC_Scope, 40, /*->109593*/ // 2 children in Scope
/*109553*/      OPC_CheckChild2Integer, 0, 
/*109555*/      OPC_SwitchType /*3 cases */, 10, MVT::v4i32,// ->109568
/*109558*/        OPC_CheckPatternPredicate, 32, // (PPCSubTarget->hasP9Altivec())
/*109560*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::VABSDUW), 0,
                      MVT::v4i32, 2/*#Ops*/, 0, 1, 
                  // Src: (PPCvabsd:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$A, v4i32:{ *:[v4i32] }:$B, 0:{ *:[i32] }) - Complexity = 8
                  // Dst: (VABSDUW:{ *:[v4i32] } ?:{ *:[v4i32] }:$A, ?:{ *:[v4i32] }:$B)
/*109568*/      /*SwitchType*/ 10, MVT::v8i16,// ->109580
/*109570*/        OPC_CheckPatternPredicate, 32, // (PPCSubTarget->hasP9Altivec())
/*109572*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::VABSDUH), 0,
                      MVT::v8i16, 2/*#Ops*/, 0, 1, 
                  // Src: (PPCvabsd:{ *:[v8i16] } v8i16:{ *:[v8i16] }:$A, v8i16:{ *:[v8i16] }:$B, 0:{ *:[i32] }) - Complexity = 8
                  // Dst: (VABSDUH:{ *:[v8i16] } ?:{ *:[v8i16] }:$A, ?:{ *:[v8i16] }:$B)
/*109580*/      /*SwitchType*/ 10, MVT::v16i8,// ->109592
/*109582*/        OPC_CheckPatternPredicate, 32, // (PPCSubTarget->hasP9Altivec())
/*109584*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::VABSDUB), 0,
                      MVT::v16i8, 2/*#Ops*/, 0, 1, 
                  // Src: (PPCvabsd:{ *:[v16i8] } v16i8:{ *:[v16i8] }:$A, v16i8:{ *:[v16i8] }:$B, 0:{ *:[i32] }) - Complexity = 8
                  // Dst: (VABSDUB:{ *:[v16i8] } ?:{ *:[v16i8] }:$A, ?:{ *:[v16i8] }:$B)
/*109592*/      0, // EndSwitchType
/*109593*/    /*Scope*/ 28, /*->109622*/
/*109594*/      OPC_CheckChild2Integer, 1, 
/*109596*/      OPC_CheckType, MVT::v4i32,
/*109598*/      OPC_CheckPatternPredicate, 32, // (PPCSubTarget->hasP9Altivec())
/*109600*/      OPC_EmitNode1, TARGET_VAL(PPC::XVNEGSP), 0,
                    MVT::v4i32, 1/*#Ops*/, 0,  // Results = #2
/*109607*/      OPC_EmitNode1, TARGET_VAL(PPC::XVNEGSP), 0,
                    MVT::v4i32, 1/*#Ops*/, 1,  // Results = #3
/*109614*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::VABSDUW), 0,
                    MVT::v4i32, 2/*#Ops*/, 2, 3, 
                // Src: (PPCvabsd:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$A, v4i32:{ *:[v4i32] }:$B, 1:{ *:[i32] }) - Complexity = 8
                // Dst: (VABSDUW:{ *:[v4i32] } (XVNEGSP:{ *:[v4i32] } ?:{ *:[v4i32] }:$A), (XVNEGSP:{ *:[v4i32] } ?:{ *:[v4i32] }:$B))
/*109622*/    0, /*End of Scope*/
/*109623*/  /*SwitchOpcode*/ 68|128,4/*580*/, TARGET_VAL(ISD::VECTOR_SHUFFLE),// ->110207
/*109627*/    OPC_Scope, 76, /*->109705*/ // 4 children in Scope
/*109629*/      OPC_RecordNode, // #0 = $UIMM
/*109630*/      OPC_RecordChild0, // #1 = $vB
/*109631*/      OPC_MoveChild1,
/*109632*/      OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
/*109635*/      OPC_MoveParent,
/*109636*/      OPC_CheckType, MVT::v16i8,
/*109638*/      OPC_Scope, 15, /*->109655*/ // 4 children in Scope
/*109640*/        OPC_CheckPredicate, 41, // Predicate_vspltb_shuffle
/*109642*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/*109644*/        OPC_EmitNodeXForm, 13, 0, // VSPLTB_get_imm
/*109647*/        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)
/*109655*/      /*Scope*/ 15, /*->109671*/
/*109656*/        OPC_CheckPredicate, 42, // Predicate_vsplth_shuffle
/*109658*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/*109660*/        OPC_EmitNodeXForm, 14, 0, // VSPLTH_get_imm
/*109663*/        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)
/*109671*/      /*Scope*/ 15, /*->109687*/
/*109672*/        OPC_CheckPredicate, 43, // Predicate_vspltw_shuffle
/*109674*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/*109676*/        OPC_EmitNodeXForm, 15, 0, // VSPLTW_get_imm
/*109679*/        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)
/*109687*/      /*Scope*/ 16, /*->109704*/
/*109688*/        OPC_CheckPredicate, 44, // Predicate_vsldoi_unary_shuffle
/*109690*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/*109692*/        OPC_EmitNodeXForm, 16, 0, // VSLDOI_unary_get_imm
/*109695*/        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))
/*109704*/      0, /*End of Scope*/
/*109705*/    /*Scope*/ 11|128,2/*267*/, /*->109974*/
/*109707*/      OPC_RecordChild0, // #0 = $vA
/*109708*/      OPC_Scope, 24|128,1/*152*/, /*->109863*/ // 2 children in Scope
/*109711*/        OPC_MoveChild1,
/*109712*/        OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
/*109715*/        OPC_MoveParent,
/*109716*/        OPC_CheckType, MVT::v16i8,
/*109718*/        OPC_Scope, 12, /*->109732*/ // 11 children in Scope
/*109720*/          OPC_CheckPredicate, 45, // Predicate_vpkuwum_unary_shuffle
/*109722*/          OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/*109724*/          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)
/*109732*/        /*Scope*/ 12, /*->109745*/
/*109733*/          OPC_CheckPredicate, 46, // Predicate_vpkuhum_unary_shuffle
/*109735*/          OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/*109737*/          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)
/*109745*/        /*Scope*/ 12, /*->109758*/
/*109746*/          OPC_CheckPredicate, 47, // Predicate_vmrglb_unary_shuffle
/*109748*/          OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/*109750*/          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)
/*109758*/        /*Scope*/ 12, /*->109771*/
/*109759*/          OPC_CheckPredicate, 48, // Predicate_vmrglh_unary_shuffle
/*109761*/          OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/*109763*/          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)
/*109771*/        /*Scope*/ 12, /*->109784*/
/*109772*/          OPC_CheckPredicate, 49, // Predicate_vmrglw_unary_shuffle
/*109774*/          OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/*109776*/          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)
/*109784*/        /*Scope*/ 12, /*->109797*/
/*109785*/          OPC_CheckPredicate, 50, // Predicate_vmrghb_unary_shuffle
/*109787*/          OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/*109789*/          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)
/*109797*/        /*Scope*/ 12, /*->109810*/
/*109798*/          OPC_CheckPredicate, 51, // Predicate_vmrghh_unary_shuffle
/*109800*/          OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/*109802*/          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)
/*109810*/        /*Scope*/ 12, /*->109823*/
/*109811*/          OPC_CheckPredicate, 52, // Predicate_vmrghw_unary_shuffle
/*109813*/          OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/*109815*/          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)
/*109823*/        /*Scope*/ 12, /*->109836*/
/*109824*/          OPC_CheckPredicate, 53, // Predicate_vmrgew_unary_shuffle
/*109826*/          OPC_CheckPatternPredicate, 35, // (PPCSubTarget->hasP8Altivec())
/*109828*/          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)
/*109836*/        /*Scope*/ 12, /*->109849*/
/*109837*/          OPC_CheckPredicate, 54, // Predicate_vmrgow_unary_shuffle
/*109839*/          OPC_CheckPatternPredicate, 35, // (PPCSubTarget->hasP8Altivec())
/*109841*/          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)
/*109849*/        /*Scope*/ 12, /*->109862*/
/*109850*/          OPC_CheckPredicate, 55, // Predicate_vpkudum_unary_shuffle
/*109852*/          OPC_CheckPatternPredicate, 35, // (PPCSubTarget->hasP8Altivec())
/*109854*/          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)
/*109862*/        0, /*End of Scope*/
/*109863*/      /*Scope*/ 109, /*->109973*/
/*109864*/        OPC_RecordChild1, // #1 = $vB
/*109865*/        OPC_CheckType, MVT::v16i8,
/*109867*/        OPC_Scope, 12, /*->109881*/ // 8 children in Scope
/*109869*/          OPC_CheckPredicate, 56, // Predicate_vmrghb_shuffle
/*109871*/          OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/*109873*/          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)
/*109881*/        /*Scope*/ 12, /*->109894*/
/*109882*/          OPC_CheckPredicate, 57, // Predicate_vmrghh_shuffle
/*109884*/          OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/*109886*/          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)
/*109894*/        /*Scope*/ 12, /*->109907*/
/*109895*/          OPC_CheckPredicate, 58, // Predicate_vmrghw_shuffle
/*109897*/          OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/*109899*/          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)
/*109907*/        /*Scope*/ 12, /*->109920*/
/*109908*/          OPC_CheckPredicate, 59, // Predicate_vmrglb_shuffle
/*109910*/          OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/*109912*/          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)
/*109920*/        /*Scope*/ 12, /*->109933*/
/*109921*/          OPC_CheckPredicate, 60, // Predicate_vmrglh_shuffle
/*109923*/          OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/*109925*/          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)
/*109933*/        /*Scope*/ 12, /*->109946*/
/*109934*/          OPC_CheckPredicate, 61, // Predicate_vmrglw_shuffle
/*109936*/          OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/*109938*/          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)
/*109946*/        /*Scope*/ 12, /*->109959*/
/*109947*/          OPC_CheckPredicate, 62, // Predicate_vpkuhum_shuffle
/*109949*/          OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/*109951*/          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)
/*109959*/        /*Scope*/ 12, /*->109972*/
/*109960*/          OPC_CheckPredicate, 63, // Predicate_vpkuwum_shuffle
/*109962*/          OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/*109964*/          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)
/*109972*/        0, /*End of Scope*/
/*109973*/      0, /*End of Scope*/
/*109974*/    /*Scope*/ 41, /*->110016*/
/*109975*/      OPC_RecordNode, // #0 = $SH
/*109976*/      OPC_RecordChild0, // #1 = $vA
/*109977*/      OPC_RecordChild1, // #2 = $vB
/*109978*/      OPC_CheckType, MVT::v16i8,
/*109980*/      OPC_Scope, 16, /*->109998*/ // 2 children in Scope
/*109982*/        OPC_CheckPredicate, 64, // Predicate_vsldoi_shuffle
/*109984*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/*109986*/        OPC_EmitNodeXForm, 17, 0, // VSLDOI_get_imm
/*109989*/        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))
/*109998*/      /*Scope*/ 16, /*->110015*/
/*109999*/        OPC_CheckPredicate, 65, // Predicate_vsldoi_swapped_shuffle
/*110001*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/*110003*/        OPC_EmitNodeXForm, 18, 0, // VSLDOI_swapped_get_imm
/*110006*/        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))
/*110015*/      0, /*End of Scope*/
/*110016*/    /*Scope*/ 60|128,1/*188*/, /*->110206*/
/*110018*/      OPC_RecordChild0, // #0 = $vA
/*110019*/      OPC_RecordChild1, // #1 = $vB
/*110020*/      OPC_CheckType, MVT::v16i8,
/*110022*/      OPC_Scope, 12, /*->110036*/ // 14 children in Scope
/*110024*/        OPC_CheckPredicate, 66, // Predicate_vpkuwum_swapped_shuffle
/*110026*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/*110028*/        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)
/*110036*/      /*Scope*/ 12, /*->110049*/
/*110037*/        OPC_CheckPredicate, 67, // Predicate_vpkuhum_swapped_shuffle
/*110039*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/*110041*/        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)
/*110049*/      /*Scope*/ 12, /*->110062*/
/*110050*/        OPC_CheckPredicate, 68, // Predicate_vmrglb_swapped_shuffle
/*110052*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/*110054*/        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)
/*110062*/      /*Scope*/ 12, /*->110075*/
/*110063*/        OPC_CheckPredicate, 69, // Predicate_vmrglh_swapped_shuffle
/*110065*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/*110067*/        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)
/*110075*/      /*Scope*/ 12, /*->110088*/
/*110076*/        OPC_CheckPredicate, 70, // Predicate_vmrglw_swapped_shuffle
/*110078*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/*110080*/        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)
/*110088*/      /*Scope*/ 12, /*->110101*/
/*110089*/        OPC_CheckPredicate, 71, // Predicate_vmrghb_swapped_shuffle
/*110091*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/*110093*/        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)
/*110101*/      /*Scope*/ 12, /*->110114*/
/*110102*/        OPC_CheckPredicate, 72, // Predicate_vmrghh_swapped_shuffle
/*110104*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/*110106*/        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)
/*110114*/      /*Scope*/ 12, /*->110127*/
/*110115*/        OPC_CheckPredicate, 73, // Predicate_vmrghw_swapped_shuffle
/*110117*/        OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/*110119*/        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)
/*110127*/      /*Scope*/ 12, /*->110140*/
/*110128*/        OPC_CheckPredicate, 74, // Predicate_vmrgew_shuffle
/*110130*/        OPC_CheckPatternPredicate, 35, // (PPCSubTarget->hasP8Altivec())
/*110132*/        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)
/*110140*/      /*Scope*/ 12, /*->110153*/
/*110141*/        OPC_CheckPredicate, 75, // Predicate_vmrgow_shuffle
/*110143*/        OPC_CheckPatternPredicate, 35, // (PPCSubTarget->hasP8Altivec())
/*110145*/        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)
/*110153*/      /*Scope*/ 12, /*->110166*/
/*110154*/        OPC_CheckPredicate, 76, // Predicate_vmrgew_swapped_shuffle
/*110156*/        OPC_CheckPatternPredicate, 35, // (PPCSubTarget->hasP8Altivec())
/*110158*/        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)
/*110166*/      /*Scope*/ 12, /*->110179*/
/*110167*/        OPC_CheckPredicate, 77, // Predicate_vmrgow_swapped_shuffle
/*110169*/        OPC_CheckPatternPredicate, 35, // (PPCSubTarget->hasP8Altivec())
/*110171*/        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)
/*110179*/      /*Scope*/ 12, /*->110192*/
/*110180*/        OPC_CheckPredicate, 78, // Predicate_vpkudum_shuffle
/*110182*/        OPC_CheckPatternPredicate, 35, // (PPCSubTarget->hasP8Altivec())
/*110184*/        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)
/*110192*/      /*Scope*/ 12, /*->110205*/
/*110193*/        OPC_CheckPredicate, 79, // Predicate_vpkudum_swapped_shuffle
/*110195*/        OPC_CheckPatternPredicate, 35, // (PPCSubTarget->hasP8Altivec())
/*110197*/        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)
/*110205*/      0, /*End of Scope*/
/*110206*/    0, /*End of Scope*/
/*110207*/  /*SwitchOpcode*/ 57, TARGET_VAL(PPCISD::QVALIGNI),// ->110267
/*110210*/    OPC_RecordChild0, // #0 = $FRA
/*110211*/    OPC_RecordChild1, // #1 = $FRB
/*110212*/    OPC_RecordChild2, // #2 = $idx
/*110213*/    OPC_MoveChild2,
/*110214*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*110217*/    OPC_CheckType, MVT::i32,
/*110219*/    OPC_MoveParent,
/*110220*/    OPC_SwitchType /*3 cases */, 13, MVT::v4i1,// ->110236
/*110223*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/*110225*/      OPC_EmitConvertToTarget, 2,
/*110227*/      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)
/*110236*/    /*SwitchType*/ 13, MVT::v4f64,// ->110251
/*110238*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/*110240*/      OPC_EmitConvertToTarget, 2,
/*110242*/      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)
/*110251*/    /*SwitchType*/ 13, MVT::v4f32,// ->110266
/*110253*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/*110255*/      OPC_EmitConvertToTarget, 2,
/*110257*/      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)
/*110266*/    0, // EndSwitchType
/*110267*/  /*SwitchOpcode*/ 53, TARGET_VAL(PPCISD::QVESPLATI),// ->110323
/*110270*/    OPC_RecordChild0, // #0 = $FRA
/*110271*/    OPC_RecordChild1, // #1 = $idx
/*110272*/    OPC_MoveChild1,
/*110273*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*110276*/    OPC_CheckType, MVT::i32,
/*110278*/    OPC_MoveParent,
/*110279*/    OPC_SwitchType /*3 cases */, 12, MVT::v4i1,// ->110294
/*110282*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/*110284*/      OPC_EmitConvertToTarget, 1,
/*110286*/      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)
/*110294*/    /*SwitchType*/ 12, MVT::v4f64,// ->110308
/*110296*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/*110298*/      OPC_EmitConvertToTarget, 1,
/*110300*/      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)
/*110308*/    /*SwitchType*/ 12, MVT::v4f32,// ->110322
/*110310*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/*110312*/      OPC_EmitConvertToTarget, 1,
/*110314*/      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)
/*110322*/    0, // EndSwitchType
/*110323*/  /*SwitchOpcode*/ 16, TARGET_VAL(PPCISD::VPERM),// ->110342
/*110326*/    OPC_RecordChild0, // #0 = $vA
/*110327*/    OPC_RecordChild1, // #1 = $vB
/*110328*/    OPC_RecordChild2, // #2 = $vC
/*110329*/    OPC_CheckType, MVT::v16i8,
/*110331*/    OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/*110333*/    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)
/*110342*/  /*SwitchOpcode*/ 17, TARGET_VAL(PPCISD::LXVD2X),// ->110362
/*110345*/    OPC_RecordMemRef,
/*110346*/    OPC_RecordNode, // #0 = 'PPClxvd2x' chained node
/*110347*/    OPC_RecordChild1, // #1 = $src
/*110348*/    OPC_CheckPatternPredicate, 15, // (!PPCSubTarget->hasP9Vector()) && (PPCSubTarget->hasVSX())
/*110350*/    OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrIdxOnly:$src #2 #3
/*110353*/    OPC_EmitMergeInputChains1_0,
/*110354*/    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)
/*110362*/  /*SwitchOpcode*/ 55, TARGET_VAL(PPCISD::LD_VSX_LH),// ->110420
/*110365*/    OPC_RecordMemRef,
/*110366*/    OPC_RecordNode, // #0 = 'PPCldvsxlh' chained node
/*110367*/    OPC_RecordChild1, // #1 = $src
/*110368*/    OPC_CheckPatternPredicate, 7, // (PPCSubTarget->hasP9Vector())
/*110370*/    OPC_Scope, 23, /*->110395*/ // 2 children in Scope
/*110372*/      OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectAddrImmX4:$src #2 #3
/*110375*/      OPC_EmitMergeInputChains1_0,
/*110376*/      OPC_EmitNode1, TARGET_VAL(PPC::DFLOADf64), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/*110384*/      OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*110387*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                    MVT::v4f32, 2/*#Ops*/, 4, 5, 
                // Src: (PPCldvsxlh:{ *:[v4f32] } iaddrX4:{ *:[iPTR] }:$src) - Complexity = 412
                // Dst: (COPY_TO_REGCLASS:{ *:[v4f32] } (DFLOADf64:{ *:[f64] } iaddrX4:{ *:[iPTR] }:$src), VSRC:{ *:[i32] })
/*110395*/    /*Scope*/ 23, /*->110419*/
/*110396*/      OPC_CheckComplexPat, /*CP*/6, /*#*/1, // SelectAddrIdx:$src #2 #3
/*110399*/      OPC_EmitMergeInputChains1_0,
/*110400*/      OPC_EmitNode1, TARGET_VAL(PPC::XFLOADf64), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::f64, 2/*#Ops*/, 2, 3,  // Results = #4
/*110408*/      OPC_EmitInteger, MVT::i32, PPC::VSRCRegClassID,
/*110411*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                    MVT::v4f32, 2/*#Ops*/, 4, 5, 
                // Src: (PPCldvsxlh:{ *:[v4f32] } xaddr:{ *:[iPTR] }:$src) - Complexity = 412
                // Dst: (COPY_TO_REGCLASS:{ *:[v4f32] } (XFLOADf64:{ *:[f64] } xaddr:{ *:[iPTR] }:$src), VSRC:{ *:[i32] })
/*110419*/    0, /*End of Scope*/
/*110420*/  /*SwitchOpcode*/ 47, TARGET_VAL(PPCISD::SINT_VEC_TO_FP),// ->110470
/*110423*/    OPC_RecordChild0, // #0 = $C
/*110424*/    OPC_CheckChild0Type, MVT::v4i32,
/*110426*/    OPC_CheckType, MVT::v2f64,
/*110428*/    OPC_Scope, 19, /*->110449*/ // 2 children in Scope
/*110430*/      OPC_CheckChild1Integer, 0, 
/*110432*/      OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/*110434*/      OPC_EmitNode1, TARGET_VAL(PPC::XXMRGHW), 0,
                    MVT::v2i64, 2/*#Ops*/, 0, 0,  // Results = #1
/*110442*/      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))
/*110449*/    /*Scope*/ 19, /*->110469*/
/*110450*/      OPC_CheckChild1Integer, 1, 
/*110452*/      OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/*110454*/      OPC_EmitNode1, TARGET_VAL(PPC::XXMRGLW), 0,
                    MVT::v2i64, 2/*#Ops*/, 0, 0,  // Results = #1
/*110462*/      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))
/*110469*/    0, /*End of Scope*/
/*110470*/  /*SwitchOpcode*/ 47, TARGET_VAL(PPCISD::UINT_VEC_TO_FP),// ->110520
/*110473*/    OPC_RecordChild0, // #0 = $C
/*110474*/    OPC_CheckChild0Type, MVT::v4i32,
/*110476*/    OPC_CheckType, MVT::v2f64,
/*110478*/    OPC_Scope, 19, /*->110499*/ // 2 children in Scope
/*110480*/      OPC_CheckChild1Integer, 0, 
/*110482*/      OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/*110484*/      OPC_EmitNode1, TARGET_VAL(PPC::XXMRGHW), 0,
                    MVT::v2i64, 2/*#Ops*/, 0, 0,  // Results = #1
/*110492*/      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))
/*110499*/    /*Scope*/ 19, /*->110519*/
/*110500*/      OPC_CheckChild1Integer, 1, 
/*110502*/      OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/*110504*/      OPC_EmitNode1, TARGET_VAL(PPC::XXMRGLW), 0,
                    MVT::v2i64, 2/*#Ops*/, 0, 0,  // Results = #1
/*110512*/      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))
/*110519*/    0, /*End of Scope*/
/*110520*/  /*SwitchOpcode*/ 43, TARGET_VAL(PPCISD::FP_EXTEND_HALF),// ->110566
/*110523*/    OPC_RecordChild0, // #0 = $C
/*110524*/    OPC_Scope, 19, /*->110545*/ // 2 children in Scope
/*110526*/      OPC_CheckChild1Integer, 0, 
/*110528*/      OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/*110530*/      OPC_EmitNode1, TARGET_VAL(PPC::XXMRGHW), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 0,  // Results = #1
/*110538*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XVCVSPDP), 0,
                    MVT::v2f64, 1/*#Ops*/, 1, 
                // Src: (PPCfpexth:{ *:[v2f64] } v4f32:{ *:[v4f32] }:$C, 0:{ *:[iPTR] }) - Complexity = 408
                // Dst: (XVCVSPDP:{ *:[v2f64] } (XXMRGHW:{ *:[v4i32] } ?:{ *:[v4f32] }:$C, ?:{ *:[v4f32] }:$C))
/*110545*/    /*Scope*/ 19, /*->110565*/
/*110546*/      OPC_CheckChild1Integer, 1, 
/*110548*/      OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/*110550*/      OPC_EmitNode1, TARGET_VAL(PPC::XXMRGLW), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 0,  // Results = #1
/*110558*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XVCVSPDP), 0,
                    MVT::v2f64, 1/*#Ops*/, 1, 
                // Src: (PPCfpexth:{ *:[v2f64] } v4f32:{ *:[v4f32] }:$C, 1:{ *:[iPTR] }) - Complexity = 408
                // Dst: (XVCVSPDP:{ *:[v2f64] } (XXMRGLW:{ *:[v4i32] } ?:{ *:[v4f32] }:$C, ?:{ *:[v4f32] }:$C))
/*110565*/    0, /*End of Scope*/
/*110566*/  /*SwitchOpcode*/ 17, TARGET_VAL(PPCISD::SWAP_NO_CHAIN),// ->110586
/*110569*/    OPC_RecordChild0, // #0 = $src
/*110570*/    OPC_CheckType, MVT::v2f64,
/*110572*/    OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/*110574*/    OPC_EmitInteger, MVT::i32, 2, 
/*110577*/    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] })
/*110586*/  /*SwitchOpcode*/ 27|128,1/*155*/, TARGET_VAL(ISD::FMAXNUM),// ->110745
/*110590*/    OPC_RecordChild0, // #0 = $src1
/*110591*/    OPC_RecordChild1, // #1 = $src2
/*110592*/    OPC_SwitchType /*3 cases */, 73, MVT::v4f32,// ->110668
/*110595*/      OPC_Scope, 10, /*->110607*/ // 3 children in Scope
/*110597*/        OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/*110599*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::XVMAXSP), 0,
                      MVT::v4f32, 2/*#Ops*/, 0, 1, 
                  // Src: (fmaxnum:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$src1, v4f32:{ *:[v4f32] }:$src2) - Complexity = 403
                  // Dst: (XVMAXSP:{ *:[v4f32] } ?:{ *:[v4f32] }:$src1, ?:{ *:[v4f32] }:$src2)
/*110607*/      /*Scope*/ 19, /*->110627*/
/*110608*/        OPC_CheckPatternPredicate, 47, // (PPCSubTarget->hasQPX()) && (TM.Options.NoNaNsFPMath)
/*110610*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFCMPGTbs), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1,  // Results = #2
/*110618*/        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)
/*110627*/      /*Scope*/ 39, /*->110667*/
/*110628*/        OPC_CheckPatternPredicate, 48, // (PPCSubTarget->hasQPX()) && (!TM.Options.NoNaNsFPMath)
/*110630*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFCMPGTbs), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1,  // Results = #2
/*110638*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFTSTNANbs), 0,
                      MVT::v4i1, 2/*#Ops*/, 1, 1,  // Results = #3
/*110646*/        OPC_EmitInteger, MVT::i32, 7, 
/*110649*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFLOGICALb), 0,
                      MVT::v4i1, 3/*#Ops*/, 2, 3, 4,  // Results = #5
/*110658*/        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)
/*110667*/      0, /*End of Scope*/
/*110668*/    /*SwitchType*/ 10, MVT::v2f64,// ->110680
/*110670*/      OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/*110672*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XVMAXDP), 0,
                    MVT::v2f64, 2/*#Ops*/, 0, 1, 
                // Src: (fmaxnum:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$src1, v2f64:{ *:[v2f64] }:$src2) - Complexity = 403
                // Dst: (XVMAXDP:{ *:[v2f64] } ?:{ *:[v2f64] }:$src1, ?:{ *:[v2f64] }:$src2)
/*110680*/    /*SwitchType*/ 62, MVT::v4f64,// ->110744
/*110682*/      OPC_Scope, 19, /*->110703*/ // 2 children in Scope
/*110684*/        OPC_CheckPatternPredicate, 47, // (PPCSubTarget->hasQPX()) && (TM.Options.NoNaNsFPMath)
/*110686*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFCMPGTb), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1,  // Results = #2
/*110694*/        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)
/*110703*/      /*Scope*/ 39, /*->110743*/
/*110704*/        OPC_CheckPatternPredicate, 48, // (PPCSubTarget->hasQPX()) && (!TM.Options.NoNaNsFPMath)
/*110706*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFCMPGTb), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1,  // Results = #2
/*110714*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFTSTNANb), 0,
                      MVT::v4i1, 2/*#Ops*/, 1, 1,  // Results = #3
/*110722*/        OPC_EmitInteger, MVT::i32, 7, 
/*110725*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFLOGICALb), 0,
                      MVT::v4i1, 3/*#Ops*/, 2, 3, 4,  // Results = #5
/*110734*/        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)
/*110743*/      0, /*End of Scope*/
/*110744*/    0, // EndSwitchType
/*110745*/  /*SwitchOpcode*/ 27|128,1/*155*/, TARGET_VAL(ISD::FMINNUM),// ->110904
/*110749*/    OPC_RecordChild0, // #0 = $src1
/*110750*/    OPC_RecordChild1, // #1 = $src2
/*110751*/    OPC_SwitchType /*3 cases */, 73, MVT::v4f32,// ->110827
/*110754*/      OPC_Scope, 10, /*->110766*/ // 3 children in Scope
/*110756*/        OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/*110758*/        OPC_MorphNodeTo1, TARGET_VAL(PPC::XVMINSP), 0,
                      MVT::v4f32, 2/*#Ops*/, 0, 1, 
                  // Src: (fminnum:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$src1, v4f32:{ *:[v4f32] }:$src2) - Complexity = 403
                  // Dst: (XVMINSP:{ *:[v4f32] } ?:{ *:[v4f32] }:$src1, ?:{ *:[v4f32] }:$src2)
/*110766*/      /*Scope*/ 19, /*->110786*/
/*110767*/        OPC_CheckPatternPredicate, 47, // (PPCSubTarget->hasQPX()) && (TM.Options.NoNaNsFPMath)
/*110769*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFCMPLTbs), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1,  // Results = #2
/*110777*/        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)
/*110786*/      /*Scope*/ 39, /*->110826*/
/*110787*/        OPC_CheckPatternPredicate, 48, // (PPCSubTarget->hasQPX()) && (!TM.Options.NoNaNsFPMath)
/*110789*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFCMPLTbs), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1,  // Results = #2
/*110797*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFTSTNANbs), 0,
                      MVT::v4i1, 2/*#Ops*/, 1, 1,  // Results = #3
/*110805*/        OPC_EmitInteger, MVT::i32, 7, 
/*110808*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFLOGICALb), 0,
                      MVT::v4i1, 3/*#Ops*/, 2, 3, 4,  // Results = #5
/*110817*/        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)
/*110826*/      0, /*End of Scope*/
/*110827*/    /*SwitchType*/ 10, MVT::v2f64,// ->110839
/*110829*/      OPC_CheckPatternPredicate, 13, // (PPCSubTarget->hasVSX())
/*110831*/      OPC_MorphNodeTo1, TARGET_VAL(PPC::XVMINDP), 0,
                    MVT::v2f64, 2/*#Ops*/, 0, 1, 
                // Src: (fminnum:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$src1, v2f64:{ *:[v2f64] }:$src2) - Complexity = 403
                // Dst: (XVMINDP:{ *:[v2f64] } ?:{ *:[v2f64] }:$src1, ?:{ *:[v2f64] }:$src2)
/*110839*/    /*SwitchType*/ 62, MVT::v4f64,// ->110903
/*110841*/      OPC_Scope, 19, /*->110862*/ // 2 children in Scope
/*110843*/        OPC_CheckPatternPredicate, 47, // (PPCSubTarget->hasQPX()) && (TM.Options.NoNaNsFPMath)
/*110845*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFCMPLTb), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1,  // Results = #2
/*110853*/        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)
/*110862*/      /*Scope*/ 39, /*->110902*/
/*110863*/        OPC_CheckPatternPredicate, 48, // (PPCSubTarget->hasQPX()) && (!TM.Options.NoNaNsFPMath)
/*110865*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFCMPLTb), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1,  // Results = #2
/*110873*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFTSTNANb), 0,
                      MVT::v4i1, 2/*#Ops*/, 1, 1,  // Results = #3
/*110881*/        OPC_EmitInteger, MVT::i32, 7, 
/*110884*/        OPC_EmitNode1, TARGET_VAL(PPC::QVFLOGICALb), 0,
                      MVT::v4i1, 3/*#Ops*/, 2, 3, 4,  // Results = #5
/*110893*/        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)
/*110902*/      0, /*End of Scope*/
/*110903*/    0, // EndSwitchType
/*110904*/  /*SwitchOpcode*/ 23, TARGET_VAL(PPCISD::QVGPCI),// ->110930
/*110907*/    OPC_RecordChild0, // #0 = $idx
/*110908*/    OPC_MoveChild0,
/*110909*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*110912*/    OPC_CheckPredicate, 16, // Predicate_u12
/*110914*/    OPC_CheckType, MVT::i32,
/*110916*/    OPC_MoveParent,
/*110917*/    OPC_CheckType, MVT::v4f64,
/*110919*/    OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/*110921*/    OPC_EmitConvertToTarget, 0,
/*110923*/    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)
/*110930*/  /*SwitchOpcode*/ 16, TARGET_VAL(PPCISD::VMADDFP),// ->110949
/*110933*/    OPC_RecordChild0, // #0 = $A
/*110934*/    OPC_RecordChild1, // #1 = $B
/*110935*/    OPC_RecordChild2, // #2 = $C
/*110936*/    OPC_CheckType, MVT::v4f32,
/*110938*/    OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/*110940*/    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)
/*110949*/  /*SwitchOpcode*/ 16, TARGET_VAL(PPCISD::VNMSUBFP),// ->110968
/*110952*/    OPC_RecordChild0, // #0 = $A
/*110953*/    OPC_RecordChild1, // #1 = $B
/*110954*/    OPC_RecordChild2, // #2 = $C
/*110955*/    OPC_CheckType, MVT::v4f32,
/*110957*/    OPC_CheckPatternPredicate, 8, // (PPCSubTarget->hasAltivec())
/*110959*/    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)
/*110968*/  /*SwitchOpcode*/ 33, TARGET_VAL(PPCISD::QVFPERM),// ->111004
/*110971*/    OPC_RecordChild0, // #0 = $FRA
/*110972*/    OPC_RecordChild1, // #1 = $FRB
/*110973*/    OPC_RecordChild2, // #2 = $FRC
/*110974*/    OPC_CheckChild2Type, MVT::v4f64,
/*110976*/    OPC_SwitchType /*2 cases */, 11, MVT::v4f64,// ->110990
/*110979*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/*110981*/      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)
/*110990*/    /*SwitchType*/ 11, MVT::v4f32,// ->111003
/*110992*/      OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/*110994*/      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)
/*111003*/    0, // EndSwitchType
/*111004*/  /*SwitchOpcode*/ 18, TARGET_VAL(PPCISD::QBFLT),// ->111025
/*111007*/    OPC_RecordChild0, // #0 = $src
/*111008*/    OPC_CheckChild0Type, MVT::v4i1,
/*111010*/    OPC_CheckType, MVT::v4f64,
/*111012*/    OPC_CheckPatternPredicate, 9, // (PPCSubTarget->hasQPX())
/*111014*/    OPC_EmitInteger, MVT::i32, PPC::QFRCRegClassID,
/*111017*/    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] })
/*111025*/  0, // EndSwitchOpcode
    0
  }; // Total Array size is 111027 bytes

  // Opcode Histogram:
  // #OPC_Scope                                = 909
  // #OPC_RecordNode                           = 79
  // #OPC_RecordChild                          = 1495
  // #OPC_RecordMemRef                         = 41
  // #OPC_CaptureGlueInput                     = 12
  // #OPC_MoveChild                            = 586
  // #OPC_MoveParent                           = 1833
  // #OPC_CheckSame                            = 12
  // #OPC_CheckChildSame                       = 70
  // #OPC_CheckPatternPredicate                = 2226
  // #OPC_CheckPredicate                       = 557
  // #OPC_CheckOpcode                          = 422
  // #OPC_SwitchOpcode                         = 41
  // #OPC_CheckType                            = 1834
  // #OPC_SwitchType                           = 248
  // #OPC_CheckChildType                       = 375
  // #OPC_CheckInteger                         = 3
  // #OPC_CheckChildInteger                    = 825
  // #OPC_CheckCondCode                        = 150
  // #OPC_CheckChild2CondCode                  = 504
  // #OPC_CheckValueType                       = 63
  // #OPC_CheckComplexPat                      = 481
  // #OPC_CheckAndImm                          = 4
  // #OPC_CheckOrImm                           = 0
  // #OPC_CheckImmAllOnesV                     = 61
  // #OPC_CheckImmAllZerosV                    = 4
  // #OPC_CheckFoldableChainNode               = 5
  // #OPC_EmitInteger                          = 2690
  // #OPC_EmitStringInteger                    = 1547
  // #OPC_EmitRegister                         = 12
  // #OPC_EmitConvertToTarget                  = 267
  // #OPC_EmitMergeInputChains                 = 572
  // #OPC_EmitCopyToReg                        = 0
  // #OPC_EmitNode                             = 4929
  // #OPC_EmitNodeXForm                        = 88
  // #OPC_CompleteMatch                        = 35
  // #OPC_MorphNodeTo                          = 3063

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

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

  }
  case 2: { 
    // Predicate_truncstorei8
    // Predicate_pre_truncsti8
    // Predicate_zextloadi8
    // Predicate_extloadi8
    // 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;
    (void)N;
if (cast<MemSDNode>(N)->getMemoryVT() != MVT::i8) return false;
return true;

  }
  case 3: { 
    // Predicate_truncstorei16
    // Predicate_pre_truncsti16
    // Predicate_sextloadi16
    // Predicate_zextloadi16
    // Predicate_extloadi16
    // 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;
    (void)N;
if (cast<MemSDNode>(N)->getMemoryVT() != MVT::i16) return false;
return true;

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

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

  return isOffsetMultipleOf(N, 16);

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

  return !isOffsetMultipleOf(N, 16);

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

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

  }
  case 8: { 
    // Predicate_truncstorei32
    // Predicate_pre_truncsti32
    // Predicate_sextloadi32
    // Predicate_zextloadi32
    // Predicate_extloadi32
    // 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;
    (void)N;
if (cast<MemSDNode>(N)->getMemoryVT() != MVT::i32) return false;
return true;

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

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

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

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

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

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

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

  // 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_u12
    int64_t Imm = cast<ConstantSDNode>(Node)->getSExtValue();
 return (Imm & 0xFFF) == Imm; 
  }
  case 17: { 
    // Predicate_imm16ShiftedZExt
    auto *N = cast<ConstantSDNode>(Node);
    (void)N;

  // 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 18: { 
    // Predicate_mul_without_simm16
    // Predicate_add_without_simm16
    SDNode *N = Node;
    (void)N;

    int16_t Imm;
    return !isIntS16Immediate(N->getOperand(0), Imm)
             && !isIntS16Immediate(N->getOperand(1), Imm);

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

  // 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 20: { 
    // Predicate_unindexedload
    SDNode *N = Node;
    (void)N;
if (cast<LoadSDNode>(N)->getAddressingMode() != ISD::UNINDEXED) return false;
return true;

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

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

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

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

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

  }
  case 26: { 
    // Predicate_aligned4sextloadi32
    // Predicate_aligned4load
    SDNode *N = Node;
    (void)N;

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

  }
  case 27: { 
    // Predicate_unaligned4sextloadi32
    // Predicate_unaligned4load
    SDNode *N = Node;
    (void)N;

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

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

  }
  case 29: { 
    // Predicate_extloadv4f32
    SDNode *N = Node;
    (void)N;

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

  }
  case 30: { 
    // 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;
    (void)N;
if (cast<MemSDNode>(N)->getMemoryVT() != MVT::i64) return false;
return true;

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

  // 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 32: { 
    // Predicate_immEQOneV
    SDNode *N = Node;
    (void)N;

  if (ConstantSDNode *C = cast<BuildVectorSDNode>(N)->getConstantSplatNode())
    return C->isOne();
  return false;

  }
  case 33: { 
    // Predicate_fround_inexact
    SDNode *N = Node;
    (void)N;

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

  }
  case 34: { 
    // Predicate_fround_exact
    SDNode *N = Node;
    (void)N;

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

  }
  case 35: { 
    // Predicate_fpimm0
    auto *N = cast<ConstantFPSDNode>(Node);
    (void)N;
 return N->isExactlyValue(+0.0); 
  }
  case 36: { 
    // Predicate_immNonAllOneAnyExt8
    int64_t Imm = cast<ConstantSDNode>(Node)->getSExtValue();
 
  return (isInt<8>(Imm) && (Imm != -1)) || (isUInt<8>(Imm) && (Imm != 0xFF));

  }
  case 37: { 
    // Predicate_immSExt5NonZero
    int64_t Imm = cast<ConstantSDNode>(Node)->getSExtValue();
 return Imm && isInt<5>(Imm); 
  }
  case 38: { 
    // Predicate_vecspltisb
    SDNode *N = Node;
    (void)N;

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

  }
  case 39: { 
    // Predicate_vecspltish
    SDNode *N = Node;
    (void)N;

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

  }
  case 40: { 
    // Predicate_vecspltisw
    SDNode *N = Node;
    (void)N;

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

  }
  case 41: { 
    // Predicate_vspltb_shuffle
    SDNode *N = Node;
    (void)N;

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

  }
  case 42: { 
    // Predicate_vsplth_shuffle
    SDNode *N = Node;
    (void)N;

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

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

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

  }
  case 44: { 
    // Predicate_vsldoi_unary_shuffle
    SDNode *N = Node;
    (void)N;

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

  }
  case 45: { 
    // Predicate_vpkuwum_unary_shuffle
    SDNode *N = Node;
    (void)N;

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

  }
  case 46: { 
    // Predicate_vpkuhum_unary_shuffle
    SDNode *N = Node;
    (void)N;

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

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

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

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

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

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

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

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

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

  }
  case 51: { 
    // Predicate_vmrghh_unary_shuffle
    SDNode *N = Node;
    (void)N;

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

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

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

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

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

  }
  case 54: { 
    // Predicate_vmrgow_unary_shuffle
    SDNode *N = Node;
    (void)N;

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

  }
  case 55: { 
    // Predicate_vpkudum_unary_shuffle
    SDNode *N = Node;
    (void)N;

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

  }
  case 56: { 
    // Predicate_vmrghb_shuffle
    SDNode *N = Node;
    (void)N;

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

  }
  case 57: { 
    // Predicate_vmrghh_shuffle
    SDNode *N = Node;
    (void)N;

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

  }
  case 58: { 
    // Predicate_vmrghw_shuffle
    SDNode *N = Node;
    (void)N;

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

  }
  case 59: { 
    // Predicate_vmrglb_shuffle
    SDNode *N = Node;
    (void)N;

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

  }
  case 60: { 
    // Predicate_vmrglh_shuffle
    SDNode *N = Node;
    (void)N;

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

  }
  case 61: { 
    // Predicate_vmrglw_shuffle
    SDNode *N = Node;
    (void)N;

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

  }
  case 62: { 
    // Predicate_vpkuhum_shuffle
    SDNode *N = Node;
    (void)N;

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

  }
  case 63: { 
    // Predicate_vpkuwum_shuffle
    SDNode *N = Node;
    (void)N;

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

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

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

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

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

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

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

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

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

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

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

  }
  case 69: { 
    // Predicate_vmrglh_swapped_shuffle
    SDNode *N = Node;
    (void)N;

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

  }
  case 70: { 
    // Predicate_vmrglw_swapped_shuffle
    SDNode *N = Node;
    (void)N;

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

  }
  case 71: { 
    // Predicate_vmrghb_swapped_shuffle
    SDNode *N = Node;
    (void)N;

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

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

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

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

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

  }
  case 74: { 
    // Predicate_vmrgew_shuffle
    SDNode *N = Node;
    (void)N;

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

  }
  case 75: { 
    // Predicate_vmrgow_shuffle
    SDNode *N = Node;
    (void)N;

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

  }
  case 76: { 
    // Predicate_vmrgew_swapped_shuffle
    SDNode *N = Node;
    (void)N;

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

  }
  case 77: { 
    // Predicate_vmrgow_swapped_shuffle
    SDNode *N = Node;
    (void)N;

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

  }
  case 78: { 
    // Predicate_vpkudum_shuffle
    SDNode *N = Node;
    (void)N;

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

  }
  case 79: { 
    // Predicate_vpkudum_swapped_shuffle
    SDNode *N = Node;
    (void)N;

  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 SelectAddrImmX4(N, Result[NextRes+0].first, Result[NextRes+1].first);
  case 2:
    Result.resize(NextRes+2);
  return SelectAddrIdxX4(N, Result[NextRes+0].first, Result[NextRes+1].first);
  case 3:
    Result.resize(NextRes+2);
  return SelectAddrIdxX16(N, Result[NextRes+0].first, Result[NextRes+1].first);
  case 4:
    Result.resize(NextRes+2);
  return SelectAddrImmX16(N, Result[NextRes+0].first, Result[NextRes+1].first);
  case 5:
    Result.resize(NextRes+2);
  return SelectAddrImm(N, Result[NextRes+0].first, Result[NextRes+1].first);
  case 6:
    Result.resize(NextRes+2);
  return SelectAddrIdx(N, Result[NextRes+0].first, Result[NextRes+1].first);
  case 7:
    Result.resize(NextRes+1);
  return SelectAddrImmOffs(N, Result[NextRes+0].first);
  case 8:
    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::getSplatIdxForPPCMnemonics(N, 1, *CurDAG), SDLoc(N));

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

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

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

  return getI32Imm(PPC::getSplatIdxForPPCMnemonics(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
