//===- TableGen'erated file -------------------------------------*- C++ -*-===//
//
// DAG Instruction Selector for the X86 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.

// The main instruction selector code.
SDNode *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 /*199 cases */, 28|128,100/*12828*/,  TARGET_VAL(ISD::STORE),// ->12833
/*5*/       OPC_RecordMemRef,
/*6*/       OPC_RecordNode,   // #0 = 'st' chained node
/*7*/       OPC_Scope, 80|128,2/*336*/, /*->346*/ // 5 children in Scope
/*10*/        OPC_RecordChild1, // #1 = $src
/*11*/        OPC_Scope, 80, /*->93*/ // 7 children in Scope
/*13*/          OPC_CheckChild1Type, MVT::v4f32,
/*15*/          OPC_RecordChild2, // #2 = $dst
/*16*/          OPC_CheckPredicate, 0, // Predicate_alignednontemporalstore
/*18*/          OPC_Scope, 34, /*->54*/ // 3 children in Scope
/*20*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*22*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*25*/            OPC_EmitMergeInputChains1_0,
/*26*/            OPC_Scope, 12, /*->40*/ // 2 children in Scope
/*28*/              OPC_MorphNodeTo, TARGET_VAL(X86::VMOVNTPSmr), 0|OPFL_Chain|OPFL_MemRefs,
                        0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                    // Src: (st VR128:v4f32:$src, addr:iPTR:$dst)<<P:Predicate_alignednontemporalstore>> - Complexity = 422
                    // Dst: (VMOVNTPSmr addr:iPTR:$dst, VR128:v4f32:$src)
/*40*/            /*Scope*/ 12, /*->53*/
/*41*/              OPC_MorphNodeTo, TARGET_VAL(X86::VMOVNTDQmr), 0|OPFL_Chain|OPFL_MemRefs,
                        0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                    // Src: (st VR128:v4f32:$src, addr:iPTR:$dst)<<P:Predicate_alignednontemporalstore>> - Complexity = 422
                    // Dst: (VMOVNTDQmr addr:iPTR:$dst, VR128:v4f32:$src)
/*53*/            0, /*End of Scope*/
/*54*/          /*Scope*/ 18, /*->73*/
/*55*/            OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*57*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*60*/            OPC_EmitMergeInputChains1_0,
/*61*/            OPC_MorphNodeTo, TARGET_VAL(X86::MOVNTPSmr), 0|OPFL_Chain|OPFL_MemRefs,
                      0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                  // Src: (st VR128:v4f32:$src, addr:iPTR:$dst)<<P:Predicate_alignednontemporalstore>> - Complexity = 422
                  // Dst: (MOVNTPSmr addr:iPTR:$dst, VR128:v4f32:$src)
/*73*/          /*Scope*/ 18, /*->92*/
/*74*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*76*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*79*/            OPC_EmitMergeInputChains1_0,
/*80*/            OPC_MorphNodeTo, TARGET_VAL(X86::MOVNTDQmr), 0|OPFL_Chain|OPFL_MemRefs,
                      0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                  // Src: (st VR128:v4f32:$src, addr:iPTR:$dst)<<P:Predicate_alignednontemporalstore>> - Complexity = 422
                  // Dst: (MOVNTDQmr addr:iPTR:$dst, VR128:v4f32:$src)
/*92*/          0, /*End of Scope*/
/*93*/        /*Scope*/ 77, /*->171*/
/*94*/          OPC_CheckChild1Type, MVT::v2f64,
/*96*/          OPC_RecordChild2, // #2 = $dst
/*97*/          OPC_CheckPredicate, 0, // Predicate_alignednontemporalstore
/*99*/          OPC_Scope, 34, /*->135*/ // 2 children in Scope
/*101*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*103*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*106*/           OPC_EmitMergeInputChains1_0,
/*107*/           OPC_Scope, 12, /*->121*/ // 2 children in Scope
/*109*/             OPC_MorphNodeTo, TARGET_VAL(X86::VMOVNTPDmr), 0|OPFL_Chain|OPFL_MemRefs,
                        0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                    // Src: (st VR128:v2f64:$src, addr:iPTR:$dst)<<P:Predicate_alignednontemporalstore>> - Complexity = 422
                    // Dst: (VMOVNTPDmr addr:iPTR:$dst, VR128:v2f64:$src)
/*121*/           /*Scope*/ 12, /*->134*/
/*122*/             OPC_MorphNodeTo, TARGET_VAL(X86::VMOVNTDQ_64mr), 0|OPFL_Chain|OPFL_MemRefs,
                        0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                    // Src: (st VR128:v2f64:$src, addr:iPTR:$dst)<<P:Predicate_alignednontemporalstore>> - Complexity = 422
                    // Dst: (VMOVNTDQ_64mr addr:iPTR:$dst, VR128:v2f64:$src)
/*134*/           0, /*End of Scope*/
/*135*/         /*Scope*/ 34, /*->170*/
/*136*/           OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*138*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*141*/           OPC_EmitMergeInputChains1_0,
/*142*/           OPC_Scope, 12, /*->156*/ // 2 children in Scope
/*144*/             OPC_MorphNodeTo, TARGET_VAL(X86::MOVNTPDmr), 0|OPFL_Chain|OPFL_MemRefs,
                        0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                    // Src: (st VR128:v2f64:$src, addr:iPTR:$dst)<<P:Predicate_alignednontemporalstore>> - Complexity = 422
                    // Dst: (MOVNTPDmr addr:iPTR:$dst, VR128:v2f64:$src)
/*156*/           /*Scope*/ 12, /*->169*/
/*157*/             OPC_MorphNodeTo, TARGET_VAL(X86::MOVNTDQ_64mr), 0|OPFL_Chain|OPFL_MemRefs,
                        0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                    // Src: (st VR128:v2f64:$src, addr:iPTR:$dst)<<P:Predicate_alignednontemporalstore>> - Complexity = 422
                    // Dst: (MOVNTDQ_64mr addr:iPTR:$dst, VR128:v2f64:$src)
/*169*/           0, /*End of Scope*/
/*170*/         0, /*End of Scope*/
/*171*/       /*Scope*/ 45, /*->217*/
/*172*/         OPC_CheckChild1Type, MVT::v2i64,
/*174*/         OPC_RecordChild2, // #2 = $dst
/*175*/         OPC_CheckPredicate, 0, // Predicate_alignednontemporalstore
/*177*/         OPC_Scope, 18, /*->197*/ // 2 children in Scope
/*179*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*181*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*184*/           OPC_EmitMergeInputChains1_0,
/*185*/           OPC_MorphNodeTo, TARGET_VAL(X86::VMOVNTDQmr), 0|OPFL_Chain|OPFL_MemRefs,
                      0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                  // Src: (st VR128:v2i64:$src, addr:iPTR:$dst)<<P:Predicate_alignednontemporalstore>> - Complexity = 422
                  // Dst: (VMOVNTDQmr addr:iPTR:$dst, VR128:v2i64:$src)
/*197*/         /*Scope*/ 18, /*->216*/
/*198*/           OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*200*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*203*/           OPC_EmitMergeInputChains1_0,
/*204*/           OPC_MorphNodeTo, TARGET_VAL(X86::MOVNTDQmr), 0|OPFL_Chain|OPFL_MemRefs,
                      0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                  // Src: (st VR128:v2i64:$src, addr:iPTR:$dst)<<P:Predicate_alignednontemporalstore>> - Complexity = 422
                  // Dst: (MOVNTDQmr addr:iPTR:$dst, VR128:v2i64:$src)
/*216*/         0, /*End of Scope*/
/*217*/       /*Scope*/ 39, /*->257*/
/*218*/         OPC_CheckChild1Type, MVT::v8f32,
/*220*/         OPC_RecordChild2, // #2 = $dst
/*221*/         OPC_CheckPredicate, 0, // Predicate_alignednontemporalstore
/*223*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*225*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*228*/         OPC_EmitMergeInputChains1_0,
/*229*/         OPC_Scope, 12, /*->243*/ // 2 children in Scope
/*231*/           OPC_MorphNodeTo, TARGET_VAL(X86::VMOVNTPSYmr), 0|OPFL_Chain|OPFL_MemRefs,
                      0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                  // Src: (st VR256:v8f32:$src, addr:iPTR:$dst)<<P:Predicate_alignednontemporalstore>> - Complexity = 422
                  // Dst: (VMOVNTPSYmr addr:iPTR:$dst, VR256:v8f32:$src)
/*243*/         /*Scope*/ 12, /*->256*/
/*244*/           OPC_MorphNodeTo, TARGET_VAL(X86::VMOVNTDQYmr), 0|OPFL_Chain|OPFL_MemRefs,
                      0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                  // Src: (st VR256:v8f32:$src, addr:iPTR:$dst)<<P:Predicate_alignednontemporalstore>> - Complexity = 422
                  // Dst: (VMOVNTDQYmr addr:iPTR:$dst, VR256:v8f32:$src)
/*256*/         0, /*End of Scope*/
/*257*/       /*Scope*/ 39, /*->297*/
/*258*/         OPC_CheckChild1Type, MVT::v4f64,
/*260*/         OPC_RecordChild2, // #2 = $dst
/*261*/         OPC_CheckPredicate, 0, // Predicate_alignednontemporalstore
/*263*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*265*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*268*/         OPC_EmitMergeInputChains1_0,
/*269*/         OPC_Scope, 12, /*->283*/ // 2 children in Scope
/*271*/           OPC_MorphNodeTo, TARGET_VAL(X86::VMOVNTPDYmr), 0|OPFL_Chain|OPFL_MemRefs,
                      0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                  // Src: (st VR256:v4f64:$src, addr:iPTR:$dst)<<P:Predicate_alignednontemporalstore>> - Complexity = 422
                  // Dst: (VMOVNTPDYmr addr:iPTR:$dst, VR256:v4f64:$src)
/*283*/         /*Scope*/ 12, /*->296*/
/*284*/           OPC_MorphNodeTo, TARGET_VAL(X86::VMOVNTDQY_64mr), 0|OPFL_Chain|OPFL_MemRefs,
                      0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                  // Src: (st VR256:v4f64:$src, addr:iPTR:$dst)<<P:Predicate_alignednontemporalstore>> - Complexity = 422
                  // Dst: (VMOVNTDQY_64mr addr:iPTR:$dst, VR256:v4f64:$src)
/*296*/         0, /*End of Scope*/
/*297*/       /*Scope*/ 23, /*->321*/
/*298*/         OPC_CheckChild1Type, MVT::i32,
/*300*/         OPC_RecordChild2, // #2 = $dst
/*301*/         OPC_CheckPredicate, 1, // Predicate_nontemporalstore
/*303*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*305*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*308*/         OPC_EmitMergeInputChains1_0,
/*309*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOVNTImr), 0|OPFL_Chain|OPFL_MemRefs,
                    0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                // Src: (st GR32:i32:$src, addr:iPTR:$dst)<<P:Predicate_nontemporalstore>> - Complexity = 422
                // Dst: (MOVNTImr addr:iPTR:$dst, GR32:i32:$src)
/*321*/       /*Scope*/ 23, /*->345*/
/*322*/         OPC_CheckChild1Type, MVT::i64,
/*324*/         OPC_RecordChild2, // #2 = $dst
/*325*/         OPC_CheckPredicate, 1, // Predicate_nontemporalstore
/*327*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*329*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*332*/         OPC_EmitMergeInputChains1_0,
/*333*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOVNTI_64mr), 0|OPFL_Chain|OPFL_MemRefs,
                    0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                // Src: (st GR64:i64:$src, addr:iPTR:$dst)<<P:Predicate_nontemporalstore>> - Complexity = 422
                // Dst: (MOVNTI_64mr addr:iPTR:$dst, GR64:i64:$src)
/*345*/       0, /*End of Scope*/
/*346*/     /*Scope*/ 96|128,85/*10976*/, /*->11324*/
/*348*/       OPC_MoveChild, 1,
/*350*/       OPC_SwitchOpcode /*22 cases */, 72|128,5/*712*/,  TARGET_VAL(ISD::SHL),// ->1067
/*355*/         OPC_MoveChild, 0,
/*357*/         OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*360*/         OPC_RecordMemRef,
/*361*/         OPC_RecordNode, // #1 = 'ld' chained node
/*362*/         OPC_CheckFoldableChainNode,
/*363*/         OPC_RecordChild1, // #2 = $dst
/*364*/         OPC_CheckPredicate, 2, // Predicate_unindexedload
/*366*/         OPC_Scope, 45, /*->413*/ // 13 children in Scope
/*368*/           OPC_CheckPredicate, 3, // Predicate_load
/*370*/           OPC_MoveParent,
/*371*/           OPC_MoveChild, 1,
/*373*/           OPC_CheckAndImm, 31, 
/*375*/           OPC_RecordChild0, // #3 = physreg input CL
/*376*/           OPC_CheckType, MVT::i8,
/*378*/           OPC_MoveParent,
/*379*/           OPC_CheckType, MVT::i8,
/*381*/           OPC_MoveParent,
/*382*/           OPC_MoveChild, 2,
/*384*/           OPC_CheckSame, 2,
/*386*/           OPC_MoveParent,
/*387*/           OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*389*/           OPC_CheckPredicate, 5, // Predicate_store
/*391*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #4 #5 #6 #7 #8
/*394*/           OPC_EmitMergeInputChains, 2, 0, 1, 
/*398*/           OPC_EmitCopyToReg, 3, X86::CL,
/*401*/           OPC_MorphNodeTo, TARGET_VAL(X86::SHL8mCL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      1/*#VTs*/, MVT::i32, 5/*#Ops*/, 4, 5, 6, 7, 8, 
                  // Src: (st (shl:i8 (ld:i8 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (and:i8 CL:i8, 31:i8)), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 55
                  // Dst: (SHL8mCL:i32 addr:iPTR:$dst)
/*413*/         /*Scope*/ 45, /*->459*/
/*414*/           OPC_CheckPredicate, 6, // Predicate_loadi16
/*416*/           OPC_MoveParent,
/*417*/           OPC_MoveChild, 1,
/*419*/           OPC_CheckAndImm, 31, 
/*421*/           OPC_RecordChild0, // #3 = physreg input CL
/*422*/           OPC_CheckType, MVT::i8,
/*424*/           OPC_MoveParent,
/*425*/           OPC_CheckType, MVT::i16,
/*427*/           OPC_MoveParent,
/*428*/           OPC_MoveChild, 2,
/*430*/           OPC_CheckSame, 2,
/*432*/           OPC_MoveParent,
/*433*/           OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*435*/           OPC_CheckPredicate, 5, // Predicate_store
/*437*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #4 #5 #6 #7 #8
/*440*/           OPC_EmitMergeInputChains, 2, 0, 1, 
/*444*/           OPC_EmitCopyToReg, 3, X86::CL,
/*447*/           OPC_MorphNodeTo, TARGET_VAL(X86::SHL16mCL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      1/*#VTs*/, MVT::i32, 5/*#Ops*/, 4, 5, 6, 7, 8, 
                  // Src: (st (shl:i16 (ld:i16 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>, (and:i8 CL:i8, 31:i8)), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 55
                  // Dst: (SHL16mCL:i32 addr:iPTR:$dst)
/*459*/         /*Scope*/ 45, /*->505*/
/*460*/           OPC_CheckPredicate, 7, // Predicate_loadi32
/*462*/           OPC_MoveParent,
/*463*/           OPC_MoveChild, 1,
/*465*/           OPC_CheckAndImm, 31, 
/*467*/           OPC_RecordChild0, // #3 = physreg input CL
/*468*/           OPC_CheckType, MVT::i8,
/*470*/           OPC_MoveParent,
/*471*/           OPC_CheckType, MVT::i32,
/*473*/           OPC_MoveParent,
/*474*/           OPC_MoveChild, 2,
/*476*/           OPC_CheckSame, 2,
/*478*/           OPC_MoveParent,
/*479*/           OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*481*/           OPC_CheckPredicate, 5, // Predicate_store
/*483*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #4 #5 #6 #7 #8
/*486*/           OPC_EmitMergeInputChains, 2, 0, 1, 
/*490*/           OPC_EmitCopyToReg, 3, X86::CL,
/*493*/           OPC_MorphNodeTo, TARGET_VAL(X86::SHL32mCL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      1/*#VTs*/, MVT::i32, 5/*#Ops*/, 4, 5, 6, 7, 8, 
                  // Src: (st (shl:i32 (ld:i32 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>, (and:i8 CL:i8, 31:i8)), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 55
                  // Dst: (SHL32mCL:i32 addr:iPTR:$dst)
/*505*/         /*Scope*/ 83, /*->589*/
/*506*/           OPC_CheckPredicate, 3, // Predicate_load
/*508*/           OPC_MoveParent,
/*509*/           OPC_MoveChild, 1,
/*511*/           OPC_CheckType, MVT::i8,
/*513*/           OPC_Scope, 38, /*->553*/ // 2 children in Scope
/*515*/             OPC_CheckAndImm, 63, 
/*517*/             OPC_RecordChild0, // #3 = physreg input CL
/*518*/             OPC_MoveParent,
/*519*/             OPC_CheckType, MVT::i64,
/*521*/             OPC_MoveParent,
/*522*/             OPC_MoveChild, 2,
/*524*/             OPC_CheckSame, 2,
/*526*/             OPC_MoveParent,
/*527*/             OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*529*/             OPC_CheckPredicate, 5, // Predicate_store
/*531*/             OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #4 #5 #6 #7 #8
/*534*/             OPC_EmitMergeInputChains, 2, 0, 1, 
/*538*/             OPC_EmitCopyToReg, 3, X86::CL,
/*541*/             OPC_MorphNodeTo, TARGET_VAL(X86::SHL64mCL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                        1/*#VTs*/, MVT::i32, 5/*#Ops*/, 4, 5, 6, 7, 8, 
                    // Src: (st (shl:i64 (ld:i64 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (and:i8 CL:i8, 63:i8)), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 55
                    // Dst: (SHL64mCL:i32 addr:iPTR:$dst)
/*553*/           /*Scope*/ 34, /*->588*/
/*554*/             OPC_CheckInteger, 1, 
/*556*/             OPC_MoveParent,
/*557*/             OPC_CheckType, MVT::i8,
/*559*/             OPC_MoveParent,
/*560*/             OPC_MoveChild, 2,
/*562*/             OPC_CheckSame, 2,
/*564*/             OPC_MoveParent,
/*565*/             OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*567*/             OPC_CheckPredicate, 5, // Predicate_store
/*569*/             OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*572*/             OPC_EmitMergeInputChains, 2, 0, 1, 
/*576*/             OPC_MorphNodeTo, TARGET_VAL(X86::SHL8m1), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::i32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                    // Src: (st (shl:i8 (ld:i8 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, 1:i8), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 52
                    // Dst: (SHL8m1:i32 addr:iPTR:$dst)
/*588*/           0, /*End of Scope*/
/*589*/         /*Scope*/ 41, /*->631*/
/*590*/           OPC_CheckPredicate, 6, // Predicate_loadi16
/*592*/           OPC_MoveParent,
/*593*/           OPC_MoveChild, 1,
/*595*/           OPC_CheckInteger, 1, 
/*597*/           OPC_CheckType, MVT::i8,
/*599*/           OPC_MoveParent,
/*600*/           OPC_CheckType, MVT::i16,
/*602*/           OPC_MoveParent,
/*603*/           OPC_MoveChild, 2,
/*605*/           OPC_CheckSame, 2,
/*607*/           OPC_MoveParent,
/*608*/           OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*610*/           OPC_CheckPredicate, 5, // Predicate_store
/*612*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*615*/           OPC_EmitMergeInputChains, 2, 0, 1, 
/*619*/           OPC_MorphNodeTo, TARGET_VAL(X86::SHL16m1), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::i32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                  // Src: (st (shl:i16 (ld:i16 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>, 1:i8), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 52
                  // Dst: (SHL16m1:i32 addr:iPTR:$dst)
/*631*/         /*Scope*/ 41, /*->673*/
/*632*/           OPC_CheckPredicate, 7, // Predicate_loadi32
/*634*/           OPC_MoveParent,
/*635*/           OPC_MoveChild, 1,
/*637*/           OPC_CheckInteger, 1, 
/*639*/           OPC_CheckType, MVT::i8,
/*641*/           OPC_MoveParent,
/*642*/           OPC_CheckType, MVT::i32,
/*644*/           OPC_MoveParent,
/*645*/           OPC_MoveChild, 2,
/*647*/           OPC_CheckSame, 2,
/*649*/           OPC_MoveParent,
/*650*/           OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*652*/           OPC_CheckPredicate, 5, // Predicate_store
/*654*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*657*/           OPC_EmitMergeInputChains, 2, 0, 1, 
/*661*/           OPC_MorphNodeTo, TARGET_VAL(X86::SHL32m1), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::i32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                  // Src: (st (shl:i32 (ld:i32 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>, 1:i8), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 52
                  // Dst: (SHL32m1:i32 addr:iPTR:$dst)
/*673*/         /*Scope*/ 88, /*->762*/
/*674*/           OPC_CheckPredicate, 3, // Predicate_load
/*676*/           OPC_MoveParent,
/*677*/           OPC_Scope, 38, /*->717*/ // 2 children in Scope
/*679*/             OPC_MoveChild, 1,
/*681*/             OPC_CheckInteger, 1, 
/*683*/             OPC_CheckType, MVT::i8,
/*685*/             OPC_MoveParent,
/*686*/             OPC_CheckType, MVT::i64,
/*688*/             OPC_MoveParent,
/*689*/             OPC_MoveChild, 2,
/*691*/             OPC_CheckSame, 2,
/*693*/             OPC_MoveParent,
/*694*/             OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*696*/             OPC_CheckPredicate, 5, // Predicate_store
/*698*/             OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*701*/             OPC_EmitMergeInputChains, 2, 0, 1, 
/*705*/             OPC_MorphNodeTo, TARGET_VAL(X86::SHL64m1), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::i32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                    // Src: (st (shl:i64 (ld:i64 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, 1:i8), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 52
                    // Dst: (SHL64m1:i32 addr:iPTR:$dst)
/*717*/           /*Scope*/ 43, /*->761*/
/*718*/             OPC_RecordChild1, // #3 = $src
/*719*/             OPC_MoveChild, 1,
/*721*/             OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*724*/             OPC_CheckType, MVT::i8,
/*726*/             OPC_MoveParent,
/*727*/             OPC_CheckType, MVT::i8,
/*729*/             OPC_MoveParent,
/*730*/             OPC_MoveChild, 2,
/*732*/             OPC_CheckSame, 2,
/*734*/             OPC_MoveParent,
/*735*/             OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*737*/             OPC_CheckPredicate, 5, // Predicate_store
/*739*/             OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #4 #5 #6 #7 #8
/*742*/             OPC_EmitMergeInputChains, 2, 0, 1, 
/*746*/             OPC_EmitConvertToTarget, 3,
/*748*/             OPC_MorphNodeTo, TARGET_VAL(X86::SHL8mi), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 9, 
                    // Src: (st (shl:i8 (ld:i8 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:i8):$src), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 50
                    // Dst: (SHL8mi:i32 addr:iPTR:$dst, (imm:i8):$src)
/*761*/           0, /*End of Scope*/
/*762*/         /*Scope*/ 46, /*->809*/
/*763*/           OPC_CheckPredicate, 6, // Predicate_loadi16
/*765*/           OPC_MoveParent,
/*766*/           OPC_RecordChild1, // #3 = $src
/*767*/           OPC_MoveChild, 1,
/*769*/           OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*772*/           OPC_CheckType, MVT::i8,
/*774*/           OPC_MoveParent,
/*775*/           OPC_CheckType, MVT::i16,
/*777*/           OPC_MoveParent,
/*778*/           OPC_MoveChild, 2,
/*780*/           OPC_CheckSame, 2,
/*782*/           OPC_MoveParent,
/*783*/           OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*785*/           OPC_CheckPredicate, 5, // Predicate_store
/*787*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #4 #5 #6 #7 #8
/*790*/           OPC_EmitMergeInputChains, 2, 0, 1, 
/*794*/           OPC_EmitConvertToTarget, 3,
/*796*/           OPC_MorphNodeTo, TARGET_VAL(X86::SHL16mi), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 9, 
                  // Src: (st (shl:i16 (ld:i16 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>, (imm:i8):$src), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 50
                  // Dst: (SHL16mi:i32 addr:iPTR:$dst, (imm:i8):$src)
/*809*/         /*Scope*/ 46, /*->856*/
/*810*/           OPC_CheckPredicate, 7, // Predicate_loadi32
/*812*/           OPC_MoveParent,
/*813*/           OPC_RecordChild1, // #3 = $src
/*814*/           OPC_MoveChild, 1,
/*816*/           OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*819*/           OPC_CheckType, MVT::i8,
/*821*/           OPC_MoveParent,
/*822*/           OPC_CheckType, MVT::i32,
/*824*/           OPC_MoveParent,
/*825*/           OPC_MoveChild, 2,
/*827*/           OPC_CheckSame, 2,
/*829*/           OPC_MoveParent,
/*830*/           OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*832*/           OPC_CheckPredicate, 5, // Predicate_store
/*834*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #4 #5 #6 #7 #8
/*837*/           OPC_EmitMergeInputChains, 2, 0, 1, 
/*841*/           OPC_EmitConvertToTarget, 3,
/*843*/           OPC_MorphNodeTo, TARGET_VAL(X86::SHL32mi), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 9, 
                  // Src: (st (shl:i32 (ld:i32 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>, (imm:i8):$src), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 50
                  // Dst: (SHL32mi:i32 addr:iPTR:$dst, (imm:i8):$src)
/*856*/         /*Scope*/ 86, /*->943*/
/*857*/           OPC_CheckPredicate, 3, // Predicate_load
/*859*/           OPC_MoveParent,
/*860*/           OPC_RecordChild1, // #3 = $src
/*861*/           OPC_Scope, 42, /*->905*/ // 2 children in Scope
/*863*/             OPC_MoveChild, 1,
/*865*/             OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*868*/             OPC_CheckType, MVT::i8,
/*870*/             OPC_MoveParent,
/*871*/             OPC_CheckType, MVT::i64,
/*873*/             OPC_MoveParent,
/*874*/             OPC_MoveChild, 2,
/*876*/             OPC_CheckSame, 2,
/*878*/             OPC_MoveParent,
/*879*/             OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*881*/             OPC_CheckPredicate, 5, // Predicate_store
/*883*/             OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #4 #5 #6 #7 #8
/*886*/             OPC_EmitMergeInputChains, 2, 0, 1, 
/*890*/             OPC_EmitConvertToTarget, 3,
/*892*/             OPC_MorphNodeTo, TARGET_VAL(X86::SHL64mi), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 9, 
                    // Src: (st (shl:i64 (ld:i64 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:i8):$src), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 50
                    // Dst: (SHL64mi:i32 addr:iPTR:$dst, (imm:i8):$src)
/*905*/           /*Scope*/ 36, /*->942*/
/*906*/             OPC_CheckChild1Type, MVT::i8,
/*908*/             OPC_CheckType, MVT::i8,
/*910*/             OPC_MoveParent,
/*911*/             OPC_MoveChild, 2,
/*913*/             OPC_CheckSame, 2,
/*915*/             OPC_MoveParent,
/*916*/             OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*918*/             OPC_CheckPredicate, 5, // Predicate_store
/*920*/             OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #4 #5 #6 #7 #8
/*923*/             OPC_EmitMergeInputChains, 2, 0, 1, 
/*927*/             OPC_EmitCopyToReg, 3, X86::CL,
/*930*/             OPC_MorphNodeTo, TARGET_VAL(X86::SHL8mCL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                        1/*#VTs*/, MVT::i32, 5/*#Ops*/, 4, 5, 6, 7, 8, 
                    // Src: (st (shl:i8 (ld:i8 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, CL:i8), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 47
                    // Dst: (SHL8mCL:i32 addr:iPTR:$dst)
/*942*/           0, /*End of Scope*/
/*943*/         /*Scope*/ 40, /*->984*/
/*944*/           OPC_CheckPredicate, 6, // Predicate_loadi16
/*946*/           OPC_MoveParent,
/*947*/           OPC_RecordChild1, // #3 = physreg input CL
/*948*/           OPC_CheckChild1Type, MVT::i8,
/*950*/           OPC_CheckType, MVT::i16,
/*952*/           OPC_MoveParent,
/*953*/           OPC_MoveChild, 2,
/*955*/           OPC_CheckSame, 2,
/*957*/           OPC_MoveParent,
/*958*/           OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*960*/           OPC_CheckPredicate, 5, // Predicate_store
/*962*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #4 #5 #6 #7 #8
/*965*/           OPC_EmitMergeInputChains, 2, 0, 1, 
/*969*/           OPC_EmitCopyToReg, 3, X86::CL,
/*972*/           OPC_MorphNodeTo, TARGET_VAL(X86::SHL16mCL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      1/*#VTs*/, MVT::i32, 5/*#Ops*/, 4, 5, 6, 7, 8, 
                  // Src: (st (shl:i16 (ld:i16 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>, CL:i8), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 47
                  // Dst: (SHL16mCL:i32 addr:iPTR:$dst)
/*984*/         /*Scope*/ 40, /*->1025*/
/*985*/           OPC_CheckPredicate, 7, // Predicate_loadi32
/*987*/           OPC_MoveParent,
/*988*/           OPC_RecordChild1, // #3 = physreg input CL
/*989*/           OPC_CheckChild1Type, MVT::i8,
/*991*/           OPC_CheckType, MVT::i32,
/*993*/           OPC_MoveParent,
/*994*/           OPC_MoveChild, 2,
/*996*/           OPC_CheckSame, 2,
/*998*/           OPC_MoveParent,
/*999*/           OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*1001*/          OPC_CheckPredicate, 5, // Predicate_store
/*1003*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #4 #5 #6 #7 #8
/*1006*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*1010*/          OPC_EmitCopyToReg, 3, X86::CL,
/*1013*/          OPC_MorphNodeTo, TARGET_VAL(X86::SHL32mCL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      1/*#VTs*/, MVT::i32, 5/*#Ops*/, 4, 5, 6, 7, 8, 
                  // Src: (st (shl:i32 (ld:i32 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>, CL:i8), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 47
                  // Dst: (SHL32mCL:i32 addr:iPTR:$dst)
/*1025*/        /*Scope*/ 40, /*->1066*/
/*1026*/          OPC_CheckPredicate, 3, // Predicate_load
/*1028*/          OPC_MoveParent,
/*1029*/          OPC_RecordChild1, // #3 = physreg input CL
/*1030*/          OPC_CheckChild1Type, MVT::i8,
/*1032*/          OPC_CheckType, MVT::i64,
/*1034*/          OPC_MoveParent,
/*1035*/          OPC_MoveChild, 2,
/*1037*/          OPC_CheckSame, 2,
/*1039*/          OPC_MoveParent,
/*1040*/          OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*1042*/          OPC_CheckPredicate, 5, // Predicate_store
/*1044*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #4 #5 #6 #7 #8
/*1047*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*1051*/          OPC_EmitCopyToReg, 3, X86::CL,
/*1054*/          OPC_MorphNodeTo, TARGET_VAL(X86::SHL64mCL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      1/*#VTs*/, MVT::i32, 5/*#Ops*/, 4, 5, 6, 7, 8, 
                  // Src: (st (shl:i64 (ld:i64 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, CL:i8), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 47
                  // Dst: (SHL64mCL:i32 addr:iPTR:$dst)
/*1066*/        0, /*End of Scope*/
              /*SwitchOpcode*/ 72|128,5/*712*/,  TARGET_VAL(ISD::SRL),// ->1783
/*1071*/        OPC_MoveChild, 0,
/*1073*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*1076*/        OPC_RecordMemRef,
/*1077*/        OPC_RecordNode, // #1 = 'ld' chained node
/*1078*/        OPC_CheckFoldableChainNode,
/*1079*/        OPC_RecordChild1, // #2 = $dst
/*1080*/        OPC_CheckPredicate, 2, // Predicate_unindexedload
/*1082*/        OPC_Scope, 45, /*->1129*/ // 13 children in Scope
/*1084*/          OPC_CheckPredicate, 3, // Predicate_load
/*1086*/          OPC_MoveParent,
/*1087*/          OPC_MoveChild, 1,
/*1089*/          OPC_CheckAndImm, 31, 
/*1091*/          OPC_RecordChild0, // #3 = physreg input CL
/*1092*/          OPC_CheckType, MVT::i8,
/*1094*/          OPC_MoveParent,
/*1095*/          OPC_CheckType, MVT::i8,
/*1097*/          OPC_MoveParent,
/*1098*/          OPC_MoveChild, 2,
/*1100*/          OPC_CheckSame, 2,
/*1102*/          OPC_MoveParent,
/*1103*/          OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*1105*/          OPC_CheckPredicate, 5, // Predicate_store
/*1107*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #4 #5 #6 #7 #8
/*1110*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*1114*/          OPC_EmitCopyToReg, 3, X86::CL,
/*1117*/          OPC_MorphNodeTo, TARGET_VAL(X86::SHR8mCL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      1/*#VTs*/, MVT::i32, 5/*#Ops*/, 4, 5, 6, 7, 8, 
                  // Src: (st (srl:i8 (ld:i8 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (and:i8 CL:i8, 31:i8)), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 55
                  // Dst: (SHR8mCL:i32 addr:iPTR:$dst)
/*1129*/        /*Scope*/ 45, /*->1175*/
/*1130*/          OPC_CheckPredicate, 6, // Predicate_loadi16
/*1132*/          OPC_MoveParent,
/*1133*/          OPC_MoveChild, 1,
/*1135*/          OPC_CheckAndImm, 31, 
/*1137*/          OPC_RecordChild0, // #3 = physreg input CL
/*1138*/          OPC_CheckType, MVT::i8,
/*1140*/          OPC_MoveParent,
/*1141*/          OPC_CheckType, MVT::i16,
/*1143*/          OPC_MoveParent,
/*1144*/          OPC_MoveChild, 2,
/*1146*/          OPC_CheckSame, 2,
/*1148*/          OPC_MoveParent,
/*1149*/          OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*1151*/          OPC_CheckPredicate, 5, // Predicate_store
/*1153*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #4 #5 #6 #7 #8
/*1156*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*1160*/          OPC_EmitCopyToReg, 3, X86::CL,
/*1163*/          OPC_MorphNodeTo, TARGET_VAL(X86::SHR16mCL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      1/*#VTs*/, MVT::i32, 5/*#Ops*/, 4, 5, 6, 7, 8, 
                  // Src: (st (srl:i16 (ld:i16 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>, (and:i8 CL:i8, 31:i8)), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 55
                  // Dst: (SHR16mCL:i32 addr:iPTR:$dst)
/*1175*/        /*Scope*/ 45, /*->1221*/
/*1176*/          OPC_CheckPredicate, 7, // Predicate_loadi32
/*1178*/          OPC_MoveParent,
/*1179*/          OPC_MoveChild, 1,
/*1181*/          OPC_CheckAndImm, 31, 
/*1183*/          OPC_RecordChild0, // #3 = physreg input CL
/*1184*/          OPC_CheckType, MVT::i8,
/*1186*/          OPC_MoveParent,
/*1187*/          OPC_CheckType, MVT::i32,
/*1189*/          OPC_MoveParent,
/*1190*/          OPC_MoveChild, 2,
/*1192*/          OPC_CheckSame, 2,
/*1194*/          OPC_MoveParent,
/*1195*/          OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*1197*/          OPC_CheckPredicate, 5, // Predicate_store
/*1199*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #4 #5 #6 #7 #8
/*1202*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*1206*/          OPC_EmitCopyToReg, 3, X86::CL,
/*1209*/          OPC_MorphNodeTo, TARGET_VAL(X86::SHR32mCL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      1/*#VTs*/, MVT::i32, 5/*#Ops*/, 4, 5, 6, 7, 8, 
                  // Src: (st (srl:i32 (ld:i32 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>, (and:i8 CL:i8, 31:i8)), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 55
                  // Dst: (SHR32mCL:i32 addr:iPTR:$dst)
/*1221*/        /*Scope*/ 83, /*->1305*/
/*1222*/          OPC_CheckPredicate, 3, // Predicate_load
/*1224*/          OPC_MoveParent,
/*1225*/          OPC_MoveChild, 1,
/*1227*/          OPC_CheckType, MVT::i8,
/*1229*/          OPC_Scope, 38, /*->1269*/ // 2 children in Scope
/*1231*/            OPC_CheckAndImm, 63, 
/*1233*/            OPC_RecordChild0, // #3 = physreg input CL
/*1234*/            OPC_MoveParent,
/*1235*/            OPC_CheckType, MVT::i64,
/*1237*/            OPC_MoveParent,
/*1238*/            OPC_MoveChild, 2,
/*1240*/            OPC_CheckSame, 2,
/*1242*/            OPC_MoveParent,
/*1243*/            OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*1245*/            OPC_CheckPredicate, 5, // Predicate_store
/*1247*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #4 #5 #6 #7 #8
/*1250*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*1254*/            OPC_EmitCopyToReg, 3, X86::CL,
/*1257*/            OPC_MorphNodeTo, TARGET_VAL(X86::SHR64mCL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                        1/*#VTs*/, MVT::i32, 5/*#Ops*/, 4, 5, 6, 7, 8, 
                    // Src: (st (srl:i64 (ld:i64 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (and:i8 CL:i8, 63:i8)), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 55
                    // Dst: (SHR64mCL:i32 addr:iPTR:$dst)
/*1269*/          /*Scope*/ 34, /*->1304*/
/*1270*/            OPC_CheckInteger, 1, 
/*1272*/            OPC_MoveParent,
/*1273*/            OPC_CheckType, MVT::i8,
/*1275*/            OPC_MoveParent,
/*1276*/            OPC_MoveChild, 2,
/*1278*/            OPC_CheckSame, 2,
/*1280*/            OPC_MoveParent,
/*1281*/            OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*1283*/            OPC_CheckPredicate, 5, // Predicate_store
/*1285*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*1288*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*1292*/            OPC_MorphNodeTo, TARGET_VAL(X86::SHR8m1), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::i32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                    // Src: (st (srl:i8 (ld:i8 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, 1:i8), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 52
                    // Dst: (SHR8m1:i32 addr:iPTR:$dst)
/*1304*/          0, /*End of Scope*/
/*1305*/        /*Scope*/ 41, /*->1347*/
/*1306*/          OPC_CheckPredicate, 6, // Predicate_loadi16
/*1308*/          OPC_MoveParent,
/*1309*/          OPC_MoveChild, 1,
/*1311*/          OPC_CheckInteger, 1, 
/*1313*/          OPC_CheckType, MVT::i8,
/*1315*/          OPC_MoveParent,
/*1316*/          OPC_CheckType, MVT::i16,
/*1318*/          OPC_MoveParent,
/*1319*/          OPC_MoveChild, 2,
/*1321*/          OPC_CheckSame, 2,
/*1323*/          OPC_MoveParent,
/*1324*/          OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*1326*/          OPC_CheckPredicate, 5, // Predicate_store
/*1328*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*1331*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*1335*/          OPC_MorphNodeTo, TARGET_VAL(X86::SHR16m1), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::i32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                  // Src: (st (srl:i16 (ld:i16 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>, 1:i8), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 52
                  // Dst: (SHR16m1:i32 addr:iPTR:$dst)
/*1347*/        /*Scope*/ 41, /*->1389*/
/*1348*/          OPC_CheckPredicate, 7, // Predicate_loadi32
/*1350*/          OPC_MoveParent,
/*1351*/          OPC_MoveChild, 1,
/*1353*/          OPC_CheckInteger, 1, 
/*1355*/          OPC_CheckType, MVT::i8,
/*1357*/          OPC_MoveParent,
/*1358*/          OPC_CheckType, MVT::i32,
/*1360*/          OPC_MoveParent,
/*1361*/          OPC_MoveChild, 2,
/*1363*/          OPC_CheckSame, 2,
/*1365*/          OPC_MoveParent,
/*1366*/          OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*1368*/          OPC_CheckPredicate, 5, // Predicate_store
/*1370*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*1373*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*1377*/          OPC_MorphNodeTo, TARGET_VAL(X86::SHR32m1), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::i32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                  // Src: (st (srl:i32 (ld:i32 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>, 1:i8), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 52
                  // Dst: (SHR32m1:i32 addr:iPTR:$dst)
/*1389*/        /*Scope*/ 88, /*->1478*/
/*1390*/          OPC_CheckPredicate, 3, // Predicate_load
/*1392*/          OPC_MoveParent,
/*1393*/          OPC_Scope, 38, /*->1433*/ // 2 children in Scope
/*1395*/            OPC_MoveChild, 1,
/*1397*/            OPC_CheckInteger, 1, 
/*1399*/            OPC_CheckType, MVT::i8,
/*1401*/            OPC_MoveParent,
/*1402*/            OPC_CheckType, MVT::i64,
/*1404*/            OPC_MoveParent,
/*1405*/            OPC_MoveChild, 2,
/*1407*/            OPC_CheckSame, 2,
/*1409*/            OPC_MoveParent,
/*1410*/            OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*1412*/            OPC_CheckPredicate, 5, // Predicate_store
/*1414*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*1417*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*1421*/            OPC_MorphNodeTo, TARGET_VAL(X86::SHR64m1), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::i32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                    // Src: (st (srl:i64 (ld:i64 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, 1:i8), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 52
                    // Dst: (SHR64m1:i32 addr:iPTR:$dst)
/*1433*/          /*Scope*/ 43, /*->1477*/
/*1434*/            OPC_RecordChild1, // #3 = $src
/*1435*/            OPC_MoveChild, 1,
/*1437*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*1440*/            OPC_CheckType, MVT::i8,
/*1442*/            OPC_MoveParent,
/*1443*/            OPC_CheckType, MVT::i8,
/*1445*/            OPC_MoveParent,
/*1446*/            OPC_MoveChild, 2,
/*1448*/            OPC_CheckSame, 2,
/*1450*/            OPC_MoveParent,
/*1451*/            OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*1453*/            OPC_CheckPredicate, 5, // Predicate_store
/*1455*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #4 #5 #6 #7 #8
/*1458*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*1462*/            OPC_EmitConvertToTarget, 3,
/*1464*/            OPC_MorphNodeTo, TARGET_VAL(X86::SHR8mi), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 9, 
                    // Src: (st (srl:i8 (ld:i8 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:i8):$src), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 50
                    // Dst: (SHR8mi:i32 addr:iPTR:$dst, (imm:i8):$src)
/*1477*/          0, /*End of Scope*/
/*1478*/        /*Scope*/ 46, /*->1525*/
/*1479*/          OPC_CheckPredicate, 6, // Predicate_loadi16
/*1481*/          OPC_MoveParent,
/*1482*/          OPC_RecordChild1, // #3 = $src
/*1483*/          OPC_MoveChild, 1,
/*1485*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*1488*/          OPC_CheckType, MVT::i8,
/*1490*/          OPC_MoveParent,
/*1491*/          OPC_CheckType, MVT::i16,
/*1493*/          OPC_MoveParent,
/*1494*/          OPC_MoveChild, 2,
/*1496*/          OPC_CheckSame, 2,
/*1498*/          OPC_MoveParent,
/*1499*/          OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*1501*/          OPC_CheckPredicate, 5, // Predicate_store
/*1503*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #4 #5 #6 #7 #8
/*1506*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*1510*/          OPC_EmitConvertToTarget, 3,
/*1512*/          OPC_MorphNodeTo, TARGET_VAL(X86::SHR16mi), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 9, 
                  // Src: (st (srl:i16 (ld:i16 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>, (imm:i8):$src), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 50
                  // Dst: (SHR16mi:i32 addr:iPTR:$dst, (imm:i8):$src)
/*1525*/        /*Scope*/ 46, /*->1572*/
/*1526*/          OPC_CheckPredicate, 7, // Predicate_loadi32
/*1528*/          OPC_MoveParent,
/*1529*/          OPC_RecordChild1, // #3 = $src
/*1530*/          OPC_MoveChild, 1,
/*1532*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*1535*/          OPC_CheckType, MVT::i8,
/*1537*/          OPC_MoveParent,
/*1538*/          OPC_CheckType, MVT::i32,
/*1540*/          OPC_MoveParent,
/*1541*/          OPC_MoveChild, 2,
/*1543*/          OPC_CheckSame, 2,
/*1545*/          OPC_MoveParent,
/*1546*/          OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*1548*/          OPC_CheckPredicate, 5, // Predicate_store
/*1550*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #4 #5 #6 #7 #8
/*1553*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*1557*/          OPC_EmitConvertToTarget, 3,
/*1559*/          OPC_MorphNodeTo, TARGET_VAL(X86::SHR32mi), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 9, 
                  // Src: (st (srl:i32 (ld:i32 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>, (imm:i8):$src), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 50
                  // Dst: (SHR32mi:i32 addr:iPTR:$dst, (imm:i8):$src)
/*1572*/        /*Scope*/ 86, /*->1659*/
/*1573*/          OPC_CheckPredicate, 3, // Predicate_load
/*1575*/          OPC_MoveParent,
/*1576*/          OPC_RecordChild1, // #3 = $src
/*1577*/          OPC_Scope, 42, /*->1621*/ // 2 children in Scope
/*1579*/            OPC_MoveChild, 1,
/*1581*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*1584*/            OPC_CheckType, MVT::i8,
/*1586*/            OPC_MoveParent,
/*1587*/            OPC_CheckType, MVT::i64,
/*1589*/            OPC_MoveParent,
/*1590*/            OPC_MoveChild, 2,
/*1592*/            OPC_CheckSame, 2,
/*1594*/            OPC_MoveParent,
/*1595*/            OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*1597*/            OPC_CheckPredicate, 5, // Predicate_store
/*1599*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #4 #5 #6 #7 #8
/*1602*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*1606*/            OPC_EmitConvertToTarget, 3,
/*1608*/            OPC_MorphNodeTo, TARGET_VAL(X86::SHR64mi), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 9, 
                    // Src: (st (srl:i64 (ld:i64 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:i8):$src), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 50
                    // Dst: (SHR64mi:i32 addr:iPTR:$dst, (imm:i8):$src)
/*1621*/          /*Scope*/ 36, /*->1658*/
/*1622*/            OPC_CheckChild1Type, MVT::i8,
/*1624*/            OPC_CheckType, MVT::i8,
/*1626*/            OPC_MoveParent,
/*1627*/            OPC_MoveChild, 2,
/*1629*/            OPC_CheckSame, 2,
/*1631*/            OPC_MoveParent,
/*1632*/            OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*1634*/            OPC_CheckPredicate, 5, // Predicate_store
/*1636*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #4 #5 #6 #7 #8
/*1639*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*1643*/            OPC_EmitCopyToReg, 3, X86::CL,
/*1646*/            OPC_MorphNodeTo, TARGET_VAL(X86::SHR8mCL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                        1/*#VTs*/, MVT::i32, 5/*#Ops*/, 4, 5, 6, 7, 8, 
                    // Src: (st (srl:i8 (ld:i8 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, CL:i8), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 47
                    // Dst: (SHR8mCL:i32 addr:iPTR:$dst)
/*1658*/          0, /*End of Scope*/
/*1659*/        /*Scope*/ 40, /*->1700*/
/*1660*/          OPC_CheckPredicate, 6, // Predicate_loadi16
/*1662*/          OPC_MoveParent,
/*1663*/          OPC_RecordChild1, // #3 = physreg input CL
/*1664*/          OPC_CheckChild1Type, MVT::i8,
/*1666*/          OPC_CheckType, MVT::i16,
/*1668*/          OPC_MoveParent,
/*1669*/          OPC_MoveChild, 2,
/*1671*/          OPC_CheckSame, 2,
/*1673*/          OPC_MoveParent,
/*1674*/          OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*1676*/          OPC_CheckPredicate, 5, // Predicate_store
/*1678*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #4 #5 #6 #7 #8
/*1681*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*1685*/          OPC_EmitCopyToReg, 3, X86::CL,
/*1688*/          OPC_MorphNodeTo, TARGET_VAL(X86::SHR16mCL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      1/*#VTs*/, MVT::i32, 5/*#Ops*/, 4, 5, 6, 7, 8, 
                  // Src: (st (srl:i16 (ld:i16 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>, CL:i8), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 47
                  // Dst: (SHR16mCL:i32 addr:iPTR:$dst)
/*1700*/        /*Scope*/ 40, /*->1741*/
/*1701*/          OPC_CheckPredicate, 7, // Predicate_loadi32
/*1703*/          OPC_MoveParent,
/*1704*/          OPC_RecordChild1, // #3 = physreg input CL
/*1705*/          OPC_CheckChild1Type, MVT::i8,
/*1707*/          OPC_CheckType, MVT::i32,
/*1709*/          OPC_MoveParent,
/*1710*/          OPC_MoveChild, 2,
/*1712*/          OPC_CheckSame, 2,
/*1714*/          OPC_MoveParent,
/*1715*/          OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*1717*/          OPC_CheckPredicate, 5, // Predicate_store
/*1719*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #4 #5 #6 #7 #8
/*1722*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*1726*/          OPC_EmitCopyToReg, 3, X86::CL,
/*1729*/          OPC_MorphNodeTo, TARGET_VAL(X86::SHR32mCL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      1/*#VTs*/, MVT::i32, 5/*#Ops*/, 4, 5, 6, 7, 8, 
                  // Src: (st (srl:i32 (ld:i32 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>, CL:i8), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 47
                  // Dst: (SHR32mCL:i32 addr:iPTR:$dst)
/*1741*/        /*Scope*/ 40, /*->1782*/
/*1742*/          OPC_CheckPredicate, 3, // Predicate_load
/*1744*/          OPC_MoveParent,
/*1745*/          OPC_RecordChild1, // #3 = physreg input CL
/*1746*/          OPC_CheckChild1Type, MVT::i8,
/*1748*/          OPC_CheckType, MVT::i64,
/*1750*/          OPC_MoveParent,
/*1751*/          OPC_MoveChild, 2,
/*1753*/          OPC_CheckSame, 2,
/*1755*/          OPC_MoveParent,
/*1756*/          OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*1758*/          OPC_CheckPredicate, 5, // Predicate_store
/*1760*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #4 #5 #6 #7 #8
/*1763*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*1767*/          OPC_EmitCopyToReg, 3, X86::CL,
/*1770*/          OPC_MorphNodeTo, TARGET_VAL(X86::SHR64mCL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      1/*#VTs*/, MVT::i32, 5/*#Ops*/, 4, 5, 6, 7, 8, 
                  // Src: (st (srl:i64 (ld:i64 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, CL:i8), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 47
                  // Dst: (SHR64mCL:i32 addr:iPTR:$dst)
/*1782*/        0, /*End of Scope*/
              /*SwitchOpcode*/ 72|128,5/*712*/,  TARGET_VAL(ISD::SRA),// ->2499
/*1787*/        OPC_MoveChild, 0,
/*1789*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*1792*/        OPC_RecordMemRef,
/*1793*/        OPC_RecordNode, // #1 = 'ld' chained node
/*1794*/        OPC_CheckFoldableChainNode,
/*1795*/        OPC_RecordChild1, // #2 = $dst
/*1796*/        OPC_CheckPredicate, 2, // Predicate_unindexedload
/*1798*/        OPC_Scope, 45, /*->1845*/ // 13 children in Scope
/*1800*/          OPC_CheckPredicate, 3, // Predicate_load
/*1802*/          OPC_MoveParent,
/*1803*/          OPC_MoveChild, 1,
/*1805*/          OPC_CheckAndImm, 31, 
/*1807*/          OPC_RecordChild0, // #3 = physreg input CL
/*1808*/          OPC_CheckType, MVT::i8,
/*1810*/          OPC_MoveParent,
/*1811*/          OPC_CheckType, MVT::i8,
/*1813*/          OPC_MoveParent,
/*1814*/          OPC_MoveChild, 2,
/*1816*/          OPC_CheckSame, 2,
/*1818*/          OPC_MoveParent,
/*1819*/          OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*1821*/          OPC_CheckPredicate, 5, // Predicate_store
/*1823*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #4 #5 #6 #7 #8
/*1826*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*1830*/          OPC_EmitCopyToReg, 3, X86::CL,
/*1833*/          OPC_MorphNodeTo, TARGET_VAL(X86::SAR8mCL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      1/*#VTs*/, MVT::i32, 5/*#Ops*/, 4, 5, 6, 7, 8, 
                  // Src: (st (sra:i8 (ld:i8 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (and:i8 CL:i8, 31:i8)), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 55
                  // Dst: (SAR8mCL:i32 addr:iPTR:$dst)
/*1845*/        /*Scope*/ 45, /*->1891*/
/*1846*/          OPC_CheckPredicate, 6, // Predicate_loadi16
/*1848*/          OPC_MoveParent,
/*1849*/          OPC_MoveChild, 1,
/*1851*/          OPC_CheckAndImm, 31, 
/*1853*/          OPC_RecordChild0, // #3 = physreg input CL
/*1854*/          OPC_CheckType, MVT::i8,
/*1856*/          OPC_MoveParent,
/*1857*/          OPC_CheckType, MVT::i16,
/*1859*/          OPC_MoveParent,
/*1860*/          OPC_MoveChild, 2,
/*1862*/          OPC_CheckSame, 2,
/*1864*/          OPC_MoveParent,
/*1865*/          OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*1867*/          OPC_CheckPredicate, 5, // Predicate_store
/*1869*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #4 #5 #6 #7 #8
/*1872*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*1876*/          OPC_EmitCopyToReg, 3, X86::CL,
/*1879*/          OPC_MorphNodeTo, TARGET_VAL(X86::SAR16mCL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      1/*#VTs*/, MVT::i32, 5/*#Ops*/, 4, 5, 6, 7, 8, 
                  // Src: (st (sra:i16 (ld:i16 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>, (and:i8 CL:i8, 31:i8)), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 55
                  // Dst: (SAR16mCL:i32 addr:iPTR:$dst)
/*1891*/        /*Scope*/ 45, /*->1937*/
/*1892*/          OPC_CheckPredicate, 7, // Predicate_loadi32
/*1894*/          OPC_MoveParent,
/*1895*/          OPC_MoveChild, 1,
/*1897*/          OPC_CheckAndImm, 31, 
/*1899*/          OPC_RecordChild0, // #3 = physreg input CL
/*1900*/          OPC_CheckType, MVT::i8,
/*1902*/          OPC_MoveParent,
/*1903*/          OPC_CheckType, MVT::i32,
/*1905*/          OPC_MoveParent,
/*1906*/          OPC_MoveChild, 2,
/*1908*/          OPC_CheckSame, 2,
/*1910*/          OPC_MoveParent,
/*1911*/          OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*1913*/          OPC_CheckPredicate, 5, // Predicate_store
/*1915*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #4 #5 #6 #7 #8
/*1918*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*1922*/          OPC_EmitCopyToReg, 3, X86::CL,
/*1925*/          OPC_MorphNodeTo, TARGET_VAL(X86::SAR32mCL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      1/*#VTs*/, MVT::i32, 5/*#Ops*/, 4, 5, 6, 7, 8, 
                  // Src: (st (sra:i32 (ld:i32 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>, (and:i8 CL:i8, 31:i8)), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 55
                  // Dst: (SAR32mCL:i32 addr:iPTR:$dst)
/*1937*/        /*Scope*/ 83, /*->2021*/
/*1938*/          OPC_CheckPredicate, 3, // Predicate_load
/*1940*/          OPC_MoveParent,
/*1941*/          OPC_MoveChild, 1,
/*1943*/          OPC_CheckType, MVT::i8,
/*1945*/          OPC_Scope, 38, /*->1985*/ // 2 children in Scope
/*1947*/            OPC_CheckAndImm, 63, 
/*1949*/            OPC_RecordChild0, // #3 = physreg input CL
/*1950*/            OPC_MoveParent,
/*1951*/            OPC_CheckType, MVT::i64,
/*1953*/            OPC_MoveParent,
/*1954*/            OPC_MoveChild, 2,
/*1956*/            OPC_CheckSame, 2,
/*1958*/            OPC_MoveParent,
/*1959*/            OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*1961*/            OPC_CheckPredicate, 5, // Predicate_store
/*1963*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #4 #5 #6 #7 #8
/*1966*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*1970*/            OPC_EmitCopyToReg, 3, X86::CL,
/*1973*/            OPC_MorphNodeTo, TARGET_VAL(X86::SAR64mCL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                        1/*#VTs*/, MVT::i32, 5/*#Ops*/, 4, 5, 6, 7, 8, 
                    // Src: (st (sra:i64 (ld:i64 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (and:i8 CL:i8, 63:i8)), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 55
                    // Dst: (SAR64mCL:i32 addr:iPTR:$dst)
/*1985*/          /*Scope*/ 34, /*->2020*/
/*1986*/            OPC_CheckInteger, 1, 
/*1988*/            OPC_MoveParent,
/*1989*/            OPC_CheckType, MVT::i8,
/*1991*/            OPC_MoveParent,
/*1992*/            OPC_MoveChild, 2,
/*1994*/            OPC_CheckSame, 2,
/*1996*/            OPC_MoveParent,
/*1997*/            OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*1999*/            OPC_CheckPredicate, 5, // Predicate_store
/*2001*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*2004*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*2008*/            OPC_MorphNodeTo, TARGET_VAL(X86::SAR8m1), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::i32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                    // Src: (st (sra:i8 (ld:i8 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, 1:i8), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 52
                    // Dst: (SAR8m1:i32 addr:iPTR:$dst)
/*2020*/          0, /*End of Scope*/
/*2021*/        /*Scope*/ 41, /*->2063*/
/*2022*/          OPC_CheckPredicate, 6, // Predicate_loadi16
/*2024*/          OPC_MoveParent,
/*2025*/          OPC_MoveChild, 1,
/*2027*/          OPC_CheckInteger, 1, 
/*2029*/          OPC_CheckType, MVT::i8,
/*2031*/          OPC_MoveParent,
/*2032*/          OPC_CheckType, MVT::i16,
/*2034*/          OPC_MoveParent,
/*2035*/          OPC_MoveChild, 2,
/*2037*/          OPC_CheckSame, 2,
/*2039*/          OPC_MoveParent,
/*2040*/          OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*2042*/          OPC_CheckPredicate, 5, // Predicate_store
/*2044*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*2047*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*2051*/          OPC_MorphNodeTo, TARGET_VAL(X86::SAR16m1), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::i32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                  // Src: (st (sra:i16 (ld:i16 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>, 1:i8), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 52
                  // Dst: (SAR16m1:i32 addr:iPTR:$dst)
/*2063*/        /*Scope*/ 41, /*->2105*/
/*2064*/          OPC_CheckPredicate, 7, // Predicate_loadi32
/*2066*/          OPC_MoveParent,
/*2067*/          OPC_MoveChild, 1,
/*2069*/          OPC_CheckInteger, 1, 
/*2071*/          OPC_CheckType, MVT::i8,
/*2073*/          OPC_MoveParent,
/*2074*/          OPC_CheckType, MVT::i32,
/*2076*/          OPC_MoveParent,
/*2077*/          OPC_MoveChild, 2,
/*2079*/          OPC_CheckSame, 2,
/*2081*/          OPC_MoveParent,
/*2082*/          OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*2084*/          OPC_CheckPredicate, 5, // Predicate_store
/*2086*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*2089*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*2093*/          OPC_MorphNodeTo, TARGET_VAL(X86::SAR32m1), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::i32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                  // Src: (st (sra:i32 (ld:i32 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>, 1:i8), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 52
                  // Dst: (SAR32m1:i32 addr:iPTR:$dst)
/*2105*/        /*Scope*/ 88, /*->2194*/
/*2106*/          OPC_CheckPredicate, 3, // Predicate_load
/*2108*/          OPC_MoveParent,
/*2109*/          OPC_Scope, 38, /*->2149*/ // 2 children in Scope
/*2111*/            OPC_MoveChild, 1,
/*2113*/            OPC_CheckInteger, 1, 
/*2115*/            OPC_CheckType, MVT::i8,
/*2117*/            OPC_MoveParent,
/*2118*/            OPC_CheckType, MVT::i64,
/*2120*/            OPC_MoveParent,
/*2121*/            OPC_MoveChild, 2,
/*2123*/            OPC_CheckSame, 2,
/*2125*/            OPC_MoveParent,
/*2126*/            OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*2128*/            OPC_CheckPredicate, 5, // Predicate_store
/*2130*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*2133*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*2137*/            OPC_MorphNodeTo, TARGET_VAL(X86::SAR64m1), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::i32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                    // Src: (st (sra:i64 (ld:i64 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, 1:i8), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 52
                    // Dst: (SAR64m1:i32 addr:iPTR:$dst)
/*2149*/          /*Scope*/ 43, /*->2193*/
/*2150*/            OPC_RecordChild1, // #3 = $src
/*2151*/            OPC_MoveChild, 1,
/*2153*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*2156*/            OPC_CheckType, MVT::i8,
/*2158*/            OPC_MoveParent,
/*2159*/            OPC_CheckType, MVT::i8,
/*2161*/            OPC_MoveParent,
/*2162*/            OPC_MoveChild, 2,
/*2164*/            OPC_CheckSame, 2,
/*2166*/            OPC_MoveParent,
/*2167*/            OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*2169*/            OPC_CheckPredicate, 5, // Predicate_store
/*2171*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #4 #5 #6 #7 #8
/*2174*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*2178*/            OPC_EmitConvertToTarget, 3,
/*2180*/            OPC_MorphNodeTo, TARGET_VAL(X86::SAR8mi), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 9, 
                    // Src: (st (sra:i8 (ld:i8 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:i8):$src), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 50
                    // Dst: (SAR8mi:i32 addr:iPTR:$dst, (imm:i8):$src)
/*2193*/          0, /*End of Scope*/
/*2194*/        /*Scope*/ 46, /*->2241*/
/*2195*/          OPC_CheckPredicate, 6, // Predicate_loadi16
/*2197*/          OPC_MoveParent,
/*2198*/          OPC_RecordChild1, // #3 = $src
/*2199*/          OPC_MoveChild, 1,
/*2201*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*2204*/          OPC_CheckType, MVT::i8,
/*2206*/          OPC_MoveParent,
/*2207*/          OPC_CheckType, MVT::i16,
/*2209*/          OPC_MoveParent,
/*2210*/          OPC_MoveChild, 2,
/*2212*/          OPC_CheckSame, 2,
/*2214*/          OPC_MoveParent,
/*2215*/          OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*2217*/          OPC_CheckPredicate, 5, // Predicate_store
/*2219*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #4 #5 #6 #7 #8
/*2222*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*2226*/          OPC_EmitConvertToTarget, 3,
/*2228*/          OPC_MorphNodeTo, TARGET_VAL(X86::SAR16mi), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 9, 
                  // Src: (st (sra:i16 (ld:i16 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>, (imm:i8):$src), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 50
                  // Dst: (SAR16mi:i32 addr:iPTR:$dst, (imm:i8):$src)
/*2241*/        /*Scope*/ 46, /*->2288*/
/*2242*/          OPC_CheckPredicate, 7, // Predicate_loadi32
/*2244*/          OPC_MoveParent,
/*2245*/          OPC_RecordChild1, // #3 = $src
/*2246*/          OPC_MoveChild, 1,
/*2248*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*2251*/          OPC_CheckType, MVT::i8,
/*2253*/          OPC_MoveParent,
/*2254*/          OPC_CheckType, MVT::i32,
/*2256*/          OPC_MoveParent,
/*2257*/          OPC_MoveChild, 2,
/*2259*/          OPC_CheckSame, 2,
/*2261*/          OPC_MoveParent,
/*2262*/          OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*2264*/          OPC_CheckPredicate, 5, // Predicate_store
/*2266*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #4 #5 #6 #7 #8
/*2269*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*2273*/          OPC_EmitConvertToTarget, 3,
/*2275*/          OPC_MorphNodeTo, TARGET_VAL(X86::SAR32mi), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 9, 
                  // Src: (st (sra:i32 (ld:i32 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>, (imm:i8):$src), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 50
                  // Dst: (SAR32mi:i32 addr:iPTR:$dst, (imm:i8):$src)
/*2288*/        /*Scope*/ 86, /*->2375*/
/*2289*/          OPC_CheckPredicate, 3, // Predicate_load
/*2291*/          OPC_MoveParent,
/*2292*/          OPC_RecordChild1, // #3 = $src
/*2293*/          OPC_Scope, 42, /*->2337*/ // 2 children in Scope
/*2295*/            OPC_MoveChild, 1,
/*2297*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*2300*/            OPC_CheckType, MVT::i8,
/*2302*/            OPC_MoveParent,
/*2303*/            OPC_CheckType, MVT::i64,
/*2305*/            OPC_MoveParent,
/*2306*/            OPC_MoveChild, 2,
/*2308*/            OPC_CheckSame, 2,
/*2310*/            OPC_MoveParent,
/*2311*/            OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*2313*/            OPC_CheckPredicate, 5, // Predicate_store
/*2315*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #4 #5 #6 #7 #8
/*2318*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*2322*/            OPC_EmitConvertToTarget, 3,
/*2324*/            OPC_MorphNodeTo, TARGET_VAL(X86::SAR64mi), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 9, 
                    // Src: (st (sra:i64 (ld:i64 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:i8):$src), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 50
                    // Dst: (SAR64mi:i32 addr:iPTR:$dst, (imm:i8):$src)
/*2337*/          /*Scope*/ 36, /*->2374*/
/*2338*/            OPC_CheckChild1Type, MVT::i8,
/*2340*/            OPC_CheckType, MVT::i8,
/*2342*/            OPC_MoveParent,
/*2343*/            OPC_MoveChild, 2,
/*2345*/            OPC_CheckSame, 2,
/*2347*/            OPC_MoveParent,
/*2348*/            OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*2350*/            OPC_CheckPredicate, 5, // Predicate_store
/*2352*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #4 #5 #6 #7 #8
/*2355*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*2359*/            OPC_EmitCopyToReg, 3, X86::CL,
/*2362*/            OPC_MorphNodeTo, TARGET_VAL(X86::SAR8mCL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                        1/*#VTs*/, MVT::i32, 5/*#Ops*/, 4, 5, 6, 7, 8, 
                    // Src: (st (sra:i8 (ld:i8 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, CL:i8), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 47
                    // Dst: (SAR8mCL:i32 addr:iPTR:$dst)
/*2374*/          0, /*End of Scope*/
/*2375*/        /*Scope*/ 40, /*->2416*/
/*2376*/          OPC_CheckPredicate, 6, // Predicate_loadi16
/*2378*/          OPC_MoveParent,
/*2379*/          OPC_RecordChild1, // #3 = physreg input CL
/*2380*/          OPC_CheckChild1Type, MVT::i8,
/*2382*/          OPC_CheckType, MVT::i16,
/*2384*/          OPC_MoveParent,
/*2385*/          OPC_MoveChild, 2,
/*2387*/          OPC_CheckSame, 2,
/*2389*/          OPC_MoveParent,
/*2390*/          OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*2392*/          OPC_CheckPredicate, 5, // Predicate_store
/*2394*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #4 #5 #6 #7 #8
/*2397*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*2401*/          OPC_EmitCopyToReg, 3, X86::CL,
/*2404*/          OPC_MorphNodeTo, TARGET_VAL(X86::SAR16mCL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      1/*#VTs*/, MVT::i32, 5/*#Ops*/, 4, 5, 6, 7, 8, 
                  // Src: (st (sra:i16 (ld:i16 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>, CL:i8), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 47
                  // Dst: (SAR16mCL:i32 addr:iPTR:$dst)
/*2416*/        /*Scope*/ 40, /*->2457*/
/*2417*/          OPC_CheckPredicate, 7, // Predicate_loadi32
/*2419*/          OPC_MoveParent,
/*2420*/          OPC_RecordChild1, // #3 = physreg input CL
/*2421*/          OPC_CheckChild1Type, MVT::i8,
/*2423*/          OPC_CheckType, MVT::i32,
/*2425*/          OPC_MoveParent,
/*2426*/          OPC_MoveChild, 2,
/*2428*/          OPC_CheckSame, 2,
/*2430*/          OPC_MoveParent,
/*2431*/          OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*2433*/          OPC_CheckPredicate, 5, // Predicate_store
/*2435*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #4 #5 #6 #7 #8
/*2438*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*2442*/          OPC_EmitCopyToReg, 3, X86::CL,
/*2445*/          OPC_MorphNodeTo, TARGET_VAL(X86::SAR32mCL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      1/*#VTs*/, MVT::i32, 5/*#Ops*/, 4, 5, 6, 7, 8, 
                  // Src: (st (sra:i32 (ld:i32 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>, CL:i8), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 47
                  // Dst: (SAR32mCL:i32 addr:iPTR:$dst)
/*2457*/        /*Scope*/ 40, /*->2498*/
/*2458*/          OPC_CheckPredicate, 3, // Predicate_load
/*2460*/          OPC_MoveParent,
/*2461*/          OPC_RecordChild1, // #3 = physreg input CL
/*2462*/          OPC_CheckChild1Type, MVT::i8,
/*2464*/          OPC_CheckType, MVT::i64,
/*2466*/          OPC_MoveParent,
/*2467*/          OPC_MoveChild, 2,
/*2469*/          OPC_CheckSame, 2,
/*2471*/          OPC_MoveParent,
/*2472*/          OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*2474*/          OPC_CheckPredicate, 5, // Predicate_store
/*2476*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #4 #5 #6 #7 #8
/*2479*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*2483*/          OPC_EmitCopyToReg, 3, X86::CL,
/*2486*/          OPC_MorphNodeTo, TARGET_VAL(X86::SAR64mCL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      1/*#VTs*/, MVT::i32, 5/*#Ops*/, 4, 5, 6, 7, 8, 
                  // Src: (st (sra:i64 (ld:i64 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, CL:i8), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 47
                  // Dst: (SAR64mCL:i32 addr:iPTR:$dst)
/*2498*/        0, /*End of Scope*/
              /*SwitchOpcode*/ 66|128,4/*578*/,  TARGET_VAL(ISD::SUB),// ->3081
/*2503*/        OPC_MoveChild, 0,
/*2505*/        OPC_Scope, 28|128,1/*156*/, /*->2664*/ // 2 children in Scope
/*2508*/          OPC_CheckInteger, 0, 
/*2510*/          OPC_MoveParent,
/*2511*/          OPC_MoveChild, 1,
/*2513*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*2516*/          OPC_RecordMemRef,
/*2517*/          OPC_RecordNode, // #1 = 'ld' chained node
/*2518*/          OPC_CheckFoldableChainNode,
/*2519*/          OPC_RecordChild1, // #2 = $dst
/*2520*/          OPC_CheckPredicate, 2, // Predicate_unindexedload
/*2522*/          OPC_Scope, 34, /*->2558*/ // 4 children in Scope
/*2524*/            OPC_CheckPredicate, 3, // Predicate_load
/*2526*/            OPC_MoveParent,
/*2527*/            OPC_CheckType, MVT::i8,
/*2529*/            OPC_MoveParent,
/*2530*/            OPC_MoveChild, 2,
/*2532*/            OPC_CheckSame, 2,
/*2534*/            OPC_MoveParent,
/*2535*/            OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*2537*/            OPC_CheckPredicate, 5, // Predicate_store
/*2539*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*2542*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*2546*/            OPC_MorphNodeTo, TARGET_VAL(X86::NEG8m), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::i32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                    // Src: (st (sub:i8 0:i8, (ld:i8 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 52
                    // Dst: (NEG8m:i32 addr:iPTR:$dst)
/*2558*/          /*Scope*/ 34, /*->2593*/
/*2559*/            OPC_CheckPredicate, 6, // Predicate_loadi16
/*2561*/            OPC_MoveParent,
/*2562*/            OPC_CheckType, MVT::i16,
/*2564*/            OPC_MoveParent,
/*2565*/            OPC_MoveChild, 2,
/*2567*/            OPC_CheckSame, 2,
/*2569*/            OPC_MoveParent,
/*2570*/            OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*2572*/            OPC_CheckPredicate, 5, // Predicate_store
/*2574*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*2577*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*2581*/            OPC_MorphNodeTo, TARGET_VAL(X86::NEG16m), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::i32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                    // Src: (st (sub:i16 0:i16, (ld:i16 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 52
                    // Dst: (NEG16m:i32 addr:iPTR:$dst)
/*2593*/          /*Scope*/ 34, /*->2628*/
/*2594*/            OPC_CheckPredicate, 7, // Predicate_loadi32
/*2596*/            OPC_MoveParent,
/*2597*/            OPC_CheckType, MVT::i32,
/*2599*/            OPC_MoveParent,
/*2600*/            OPC_MoveChild, 2,
/*2602*/            OPC_CheckSame, 2,
/*2604*/            OPC_MoveParent,
/*2605*/            OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*2607*/            OPC_CheckPredicate, 5, // Predicate_store
/*2609*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*2612*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*2616*/            OPC_MorphNodeTo, TARGET_VAL(X86::NEG32m), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::i32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                    // Src: (st (sub:i32 0:i32, (ld:i32 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 52
                    // Dst: (NEG32m:i32 addr:iPTR:$dst)
/*2628*/          /*Scope*/ 34, /*->2663*/
/*2629*/            OPC_CheckPredicate, 3, // Predicate_load
/*2631*/            OPC_MoveParent,
/*2632*/            OPC_CheckType, MVT::i64,
/*2634*/            OPC_MoveParent,
/*2635*/            OPC_MoveChild, 2,
/*2637*/            OPC_CheckSame, 2,
/*2639*/            OPC_MoveParent,
/*2640*/            OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*2642*/            OPC_CheckPredicate, 5, // Predicate_store
/*2644*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*2647*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*2651*/            OPC_MorphNodeTo, TARGET_VAL(X86::NEG64m), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::i32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                    // Src: (st (sub:i64 0:i64, (ld:i64 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 52
                    // Dst: (NEG64m:i32 addr:iPTR:$dst)
/*2663*/          0, /*End of Scope*/
/*2664*/        /*Scope*/ 30|128,3/*414*/, /*->3080*/
/*2666*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*2669*/          OPC_RecordMemRef,
/*2670*/          OPC_RecordNode, // #1 = 'ld' chained node
/*2671*/          OPC_CheckFoldableChainNode,
/*2672*/          OPC_RecordChild1, // #2 = $dst
/*2673*/          OPC_CheckPredicate, 2, // Predicate_unindexedload
/*2675*/          OPC_CheckPredicate, 3, // Predicate_load
/*2677*/          OPC_MoveParent,
/*2678*/          OPC_RecordChild1, // #3 = $src
/*2679*/          OPC_Scope, 9|128,2/*265*/, /*->2947*/ // 5 children in Scope
/*2682*/            OPC_MoveChild, 1,
/*2684*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*2687*/            OPC_Scope, 37, /*->2726*/ // 5 children in Scope
/*2689*/              OPC_CheckPredicate, 8, // Predicate_i16immSExt8
/*2691*/              OPC_MoveParent,
/*2692*/              OPC_CheckType, MVT::i16,
/*2694*/              OPC_MoveParent,
/*2695*/              OPC_MoveChild, 2,
/*2697*/              OPC_CheckSame, 2,
/*2699*/              OPC_MoveParent,
/*2700*/              OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*2702*/              OPC_CheckPredicate, 5, // Predicate_store
/*2704*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #4 #5 #6 #7 #8
/*2707*/              OPC_EmitMergeInputChains, 2, 0, 1, 
/*2711*/              OPC_EmitConvertToTarget, 3,
/*2713*/              OPC_MorphNodeTo, TARGET_VAL(X86::SUB16mi8), 0|OPFL_Chain|OPFL_MemRefs,
                          1/*#VTs*/, MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 9, 
                      // Src: (st (sub:i16 (ld:i16 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:i16)<<P:Predicate_i16immSExt8>>:$src), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 51
                      // Dst: (SUB16mi8:i32 addr:iPTR:$dst, (imm:i16):$src)
/*2726*/            /*Scope*/ 37, /*->2764*/
/*2727*/              OPC_CheckPredicate, 9, // Predicate_i32immSExt8
/*2729*/              OPC_MoveParent,
/*2730*/              OPC_CheckType, MVT::i32,
/*2732*/              OPC_MoveParent,
/*2733*/              OPC_MoveChild, 2,
/*2735*/              OPC_CheckSame, 2,
/*2737*/              OPC_MoveParent,
/*2738*/              OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*2740*/              OPC_CheckPredicate, 5, // Predicate_store
/*2742*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #4 #5 #6 #7 #8
/*2745*/              OPC_EmitMergeInputChains, 2, 0, 1, 
/*2749*/              OPC_EmitConvertToTarget, 3,
/*2751*/              OPC_MorphNodeTo, TARGET_VAL(X86::SUB32mi8), 0|OPFL_Chain|OPFL_MemRefs,
                          1/*#VTs*/, MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 9, 
                      // Src: (st (sub:i32 (ld:i32 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:i32)<<P:Predicate_i32immSExt8>>:$src), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 51
                      // Dst: (SUB32mi8:i32 addr:iPTR:$dst, (imm:i32):$src)
/*2764*/            /*Scope*/ 37, /*->2802*/
/*2765*/              OPC_CheckPredicate, 10, // Predicate_i64immSExt8
/*2767*/              OPC_MoveParent,
/*2768*/              OPC_CheckType, MVT::i64,
/*2770*/              OPC_MoveParent,
/*2771*/              OPC_MoveChild, 2,
/*2773*/              OPC_CheckSame, 2,
/*2775*/              OPC_MoveParent,
/*2776*/              OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*2778*/              OPC_CheckPredicate, 5, // Predicate_store
/*2780*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #4 #5 #6 #7 #8
/*2783*/              OPC_EmitMergeInputChains, 2, 0, 1, 
/*2787*/              OPC_EmitConvertToTarget, 3,
/*2789*/              OPC_MorphNodeTo, TARGET_VAL(X86::SUB64mi8), 0|OPFL_Chain|OPFL_MemRefs,
                          1/*#VTs*/, MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 9, 
                      // Src: (st (sub:i64 (ld:i64 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:i64)<<P:Predicate_i64immSExt8>>:$src), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 51
                      // Dst: (SUB64mi8:i32 addr:iPTR:$dst, (imm:i64):$src)
/*2802*/            /*Scope*/ 37, /*->2840*/
/*2803*/              OPC_CheckPredicate, 11, // Predicate_i64immSExt32
/*2805*/              OPC_MoveParent,
/*2806*/              OPC_CheckType, MVT::i64,
/*2808*/              OPC_MoveParent,
/*2809*/              OPC_MoveChild, 2,
/*2811*/              OPC_CheckSame, 2,
/*2813*/              OPC_MoveParent,
/*2814*/              OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*2816*/              OPC_CheckPredicate, 5, // Predicate_store
/*2818*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #4 #5 #6 #7 #8
/*2821*/              OPC_EmitMergeInputChains, 2, 0, 1, 
/*2825*/              OPC_EmitConvertToTarget, 3,
/*2827*/              OPC_MorphNodeTo, TARGET_VAL(X86::SUB64mi32), 0|OPFL_Chain|OPFL_MemRefs,
                          1/*#VTs*/, MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 9, 
                      // Src: (st (sub:i64 (ld:i64 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:i64)<<P:Predicate_i64immSExt32>>:$src), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 51
                      // Dst: (SUB64mi32:i32 addr:iPTR:$dst, (imm:i64):$src)
/*2840*/            /*Scope*/ 105, /*->2946*/
/*2841*/              OPC_MoveParent,
/*2842*/              OPC_SwitchType /*3 cases */, 32,  MVT::i8,// ->2877
/*2845*/                OPC_MoveParent,
/*2846*/                OPC_MoveChild, 2,
/*2848*/                OPC_CheckSame, 2,
/*2850*/                OPC_MoveParent,
/*2851*/                OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*2853*/                OPC_CheckPredicate, 5, // Predicate_store
/*2855*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #4 #5 #6 #7 #8
/*2858*/                OPC_EmitMergeInputChains, 2, 0, 1, 
/*2862*/                OPC_EmitConvertToTarget, 3,
/*2864*/                OPC_MorphNodeTo, TARGET_VAL(X86::SUB8mi), 0|OPFL_Chain|OPFL_MemRefs,
                            1/*#VTs*/, MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 9, 
                        // Src: (st (sub:i8 (ld:i8 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:i8):$src), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 50
                        // Dst: (SUB8mi:i32 addr:iPTR:$dst, (imm:i8):$src)
                      /*SwitchType*/ 32,  MVT::i16,// ->2911
/*2879*/                OPC_MoveParent,
/*2880*/                OPC_MoveChild, 2,
/*2882*/                OPC_CheckSame, 2,
/*2884*/                OPC_MoveParent,
/*2885*/                OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*2887*/                OPC_CheckPredicate, 5, // Predicate_store
/*2889*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #4 #5 #6 #7 #8
/*2892*/                OPC_EmitMergeInputChains, 2, 0, 1, 
/*2896*/                OPC_EmitConvertToTarget, 3,
/*2898*/                OPC_MorphNodeTo, TARGET_VAL(X86::SUB16mi), 0|OPFL_Chain|OPFL_MemRefs,
                            1/*#VTs*/, MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 9, 
                        // Src: (st (sub:i16 (ld:i16 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:i16):$src), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 50
                        // Dst: (SUB16mi:i32 addr:iPTR:$dst, (imm:i16):$src)
                      /*SwitchType*/ 32,  MVT::i32,// ->2945
/*2913*/                OPC_MoveParent,
/*2914*/                OPC_MoveChild, 2,
/*2916*/                OPC_CheckSame, 2,
/*2918*/                OPC_MoveParent,
/*2919*/                OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*2921*/                OPC_CheckPredicate, 5, // Predicate_store
/*2923*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #4 #5 #6 #7 #8
/*2926*/                OPC_EmitMergeInputChains, 2, 0, 1, 
/*2930*/                OPC_EmitConvertToTarget, 3,
/*2932*/                OPC_MorphNodeTo, TARGET_VAL(X86::SUB32mi), 0|OPFL_Chain|OPFL_MemRefs,
                            1/*#VTs*/, MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 9, 
                        // Src: (st (sub:i32 (ld:i32 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:i32):$src), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 50
                        // Dst: (SUB32mi:i32 addr:iPTR:$dst, (imm:i32):$src)
                      0, // EndSwitchType
/*2946*/            0, /*End of Scope*/
/*2947*/          /*Scope*/ 32, /*->2980*/
/*2948*/            OPC_CheckType, MVT::i8,
/*2950*/            OPC_MoveParent,
/*2951*/            OPC_MoveChild, 2,
/*2953*/            OPC_CheckSame, 2,
/*2955*/            OPC_MoveParent,
/*2956*/            OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*2958*/            OPC_CheckPredicate, 5, // Predicate_store
/*2960*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #4 #5 #6 #7 #8
/*2963*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*2967*/            OPC_MorphNodeTo, TARGET_VAL(X86::SUB8mr), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 3, 
                    // Src: (st (sub:i8 (ld:i8 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, GR8:i8:$src), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 47
                    // Dst: (SUB8mr:i32 addr:iPTR:$dst, GR8:i8:$src)
/*2980*/          /*Scope*/ 32, /*->3013*/
/*2981*/            OPC_CheckType, MVT::i16,
/*2983*/            OPC_MoveParent,
/*2984*/            OPC_MoveChild, 2,
/*2986*/            OPC_CheckSame, 2,
/*2988*/            OPC_MoveParent,
/*2989*/            OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*2991*/            OPC_CheckPredicate, 5, // Predicate_store
/*2993*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #4 #5 #6 #7 #8
/*2996*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*3000*/            OPC_MorphNodeTo, TARGET_VAL(X86::SUB16mr), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 3, 
                    // Src: (st (sub:i16 (ld:i16 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, GR16:i16:$src), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 47
                    // Dst: (SUB16mr:i32 addr:iPTR:$dst, GR16:i16:$src)
/*3013*/          /*Scope*/ 32, /*->3046*/
/*3014*/            OPC_CheckType, MVT::i32,
/*3016*/            OPC_MoveParent,
/*3017*/            OPC_MoveChild, 2,
/*3019*/            OPC_CheckSame, 2,
/*3021*/            OPC_MoveParent,
/*3022*/            OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*3024*/            OPC_CheckPredicate, 5, // Predicate_store
/*3026*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #4 #5 #6 #7 #8
/*3029*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*3033*/            OPC_MorphNodeTo, TARGET_VAL(X86::SUB32mr), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 3, 
                    // Src: (st (sub:i32 (ld:i32 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, GR32:i32:$src), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 47
                    // Dst: (SUB32mr:i32 addr:iPTR:$dst, GR32:i32:$src)
/*3046*/          /*Scope*/ 32, /*->3079*/
/*3047*/            OPC_CheckType, MVT::i64,
/*3049*/            OPC_MoveParent,
/*3050*/            OPC_MoveChild, 2,
/*3052*/            OPC_CheckSame, 2,
/*3054*/            OPC_MoveParent,
/*3055*/            OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*3057*/            OPC_CheckPredicate, 5, // Predicate_store
/*3059*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #4 #5 #6 #7 #8
/*3062*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*3066*/            OPC_MorphNodeTo, TARGET_VAL(X86::SUB64mr), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 3, 
                    // Src: (st (sub:i64 (ld:i64 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, GR64:i64:$src), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 47
                    // Dst: (SUB64mr:i32 addr:iPTR:$dst, GR64:i64:$src)
/*3079*/          0, /*End of Scope*/
/*3080*/        0, /*End of Scope*/
              /*SwitchOpcode*/ 124|128,5/*764*/,  TARGET_VAL(ISD::XOR),// ->3849
/*3085*/        OPC_Scope, 101|128,4/*613*/, /*->3701*/ // 2 children in Scope
/*3088*/          OPC_MoveChild, 0,
/*3090*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*3093*/          OPC_RecordMemRef,
/*3094*/          OPC_RecordNode, // #1 = 'ld' chained node
/*3095*/          OPC_CheckFoldableChainNode,
/*3096*/          OPC_RecordChild1, // #2 = $dst
/*3097*/          OPC_CheckPredicate, 2, // Predicate_unindexedload
/*3099*/          OPC_Scope, 47, /*->3148*/ // 4 children in Scope
/*3101*/            OPC_CheckPredicate, 3, // Predicate_load
/*3103*/            OPC_MoveParent,
/*3104*/            OPC_MoveChild, 1,
/*3106*/            OPC_CheckInteger, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/*3117*/            OPC_MoveParent,
/*3118*/            OPC_CheckType, MVT::i8,
/*3120*/            OPC_MoveParent,
/*3121*/            OPC_MoveChild, 2,
/*3123*/            OPC_CheckSame, 2,
/*3125*/            OPC_MoveParent,
/*3126*/            OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*3128*/            OPC_CheckPredicate, 5, // Predicate_store
/*3130*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*3133*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*3137*/            OPC_MorphNodeTo, TARGET_VAL(X86::NOT8m), 0|OPFL_Chain|OPFL_MemRefs,
                        0/*#VTs*/, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                    // Src: (st (xor:i8 (ld:i8 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, -1:i8), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 52
                    // Dst: (NOT8m addr:iPTR:$dst)
/*3148*/          /*Scope*/ 47, /*->3196*/
/*3149*/            OPC_CheckPredicate, 6, // Predicate_loadi16
/*3151*/            OPC_MoveParent,
/*3152*/            OPC_MoveChild, 1,
/*3154*/            OPC_CheckInteger, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/*3165*/            OPC_MoveParent,
/*3166*/            OPC_CheckType, MVT::i16,
/*3168*/            OPC_MoveParent,
/*3169*/            OPC_MoveChild, 2,
/*3171*/            OPC_CheckSame, 2,
/*3173*/            OPC_MoveParent,
/*3174*/            OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*3176*/            OPC_CheckPredicate, 5, // Predicate_store
/*3178*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*3181*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*3185*/            OPC_MorphNodeTo, TARGET_VAL(X86::NOT16m), 0|OPFL_Chain|OPFL_MemRefs,
                        0/*#VTs*/, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                    // Src: (st (xor:i16 (ld:i16 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>, -1:i16), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 52
                    // Dst: (NOT16m addr:iPTR:$dst)
/*3196*/          /*Scope*/ 47, /*->3244*/
/*3197*/            OPC_CheckPredicate, 7, // Predicate_loadi32
/*3199*/            OPC_MoveParent,
/*3200*/            OPC_MoveChild, 1,
/*3202*/            OPC_CheckInteger, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/*3213*/            OPC_MoveParent,
/*3214*/            OPC_CheckType, MVT::i32,
/*3216*/            OPC_MoveParent,
/*3217*/            OPC_MoveChild, 2,
/*3219*/            OPC_CheckSame, 2,
/*3221*/            OPC_MoveParent,
/*3222*/            OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*3224*/            OPC_CheckPredicate, 5, // Predicate_store
/*3226*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*3229*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*3233*/            OPC_MorphNodeTo, TARGET_VAL(X86::NOT32m), 0|OPFL_Chain|OPFL_MemRefs,
                        0/*#VTs*/, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                    // Src: (st (xor:i32 (ld:i32 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>, -1:i32), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 52
                    // Dst: (NOT32m addr:iPTR:$dst)
/*3244*/          /*Scope*/ 70|128,3/*454*/, /*->3700*/
/*3246*/            OPC_CheckPredicate, 3, // Predicate_load
/*3248*/            OPC_MoveParent,
/*3249*/            OPC_Scope, 44, /*->3295*/ // 2 children in Scope
/*3251*/              OPC_MoveChild, 1,
/*3253*/              OPC_CheckInteger, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/*3264*/              OPC_MoveParent,
/*3265*/              OPC_CheckType, MVT::i64,
/*3267*/              OPC_MoveParent,
/*3268*/              OPC_MoveChild, 2,
/*3270*/              OPC_CheckSame, 2,
/*3272*/              OPC_MoveParent,
/*3273*/              OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*3275*/              OPC_CheckPredicate, 5, // Predicate_store
/*3277*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*3280*/              OPC_EmitMergeInputChains, 2, 0, 1, 
/*3284*/              OPC_MorphNodeTo, TARGET_VAL(X86::NOT64m), 0|OPFL_Chain|OPFL_MemRefs,
                          0/*#VTs*/, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                      // Src: (st (xor:i64 (ld:i64 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, -1:i64), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 52
                      // Dst: (NOT64m addr:iPTR:$dst)
/*3295*/            /*Scope*/ 18|128,3/*402*/, /*->3699*/
/*3297*/              OPC_RecordChild1, // #3 = $src
/*3298*/              OPC_Scope, 9|128,2/*265*/, /*->3566*/ // 5 children in Scope
/*3301*/                OPC_MoveChild, 1,
/*3303*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*3306*/                OPC_Scope, 37, /*->3345*/ // 5 children in Scope
/*3308*/                  OPC_CheckPredicate, 8, // Predicate_i16immSExt8
/*3310*/                  OPC_MoveParent,
/*3311*/                  OPC_CheckType, MVT::i16,
/*3313*/                  OPC_MoveParent,
/*3314*/                  OPC_MoveChild, 2,
/*3316*/                  OPC_CheckSame, 2,
/*3318*/                  OPC_MoveParent,
/*3319*/                  OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*3321*/                  OPC_CheckPredicate, 5, // Predicate_store
/*3323*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #4 #5 #6 #7 #8
/*3326*/                  OPC_EmitMergeInputChains, 2, 0, 1, 
/*3330*/                  OPC_EmitConvertToTarget, 3,
/*3332*/                  OPC_MorphNodeTo, TARGET_VAL(X86::XOR16mi8), 0|OPFL_Chain|OPFL_MemRefs,
                              1/*#VTs*/, MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 9, 
                          // Src: (st (xor:i16 (ld:i16 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:i16)<<P:Predicate_i16immSExt8>>:$src), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 51
                          // Dst: (XOR16mi8:i32 addr:iPTR:$dst, (imm:i16):$src)
/*3345*/                /*Scope*/ 37, /*->3383*/
/*3346*/                  OPC_CheckPredicate, 9, // Predicate_i32immSExt8
/*3348*/                  OPC_MoveParent,
/*3349*/                  OPC_CheckType, MVT::i32,
/*3351*/                  OPC_MoveParent,
/*3352*/                  OPC_MoveChild, 2,
/*3354*/                  OPC_CheckSame, 2,
/*3356*/                  OPC_MoveParent,
/*3357*/                  OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*3359*/                  OPC_CheckPredicate, 5, // Predicate_store
/*3361*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #4 #5 #6 #7 #8
/*3364*/                  OPC_EmitMergeInputChains, 2, 0, 1, 
/*3368*/                  OPC_EmitConvertToTarget, 3,
/*3370*/                  OPC_MorphNodeTo, TARGET_VAL(X86::XOR32mi8), 0|OPFL_Chain|OPFL_MemRefs,
                              1/*#VTs*/, MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 9, 
                          // Src: (st (xor:i32 (ld:i32 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:i32)<<P:Predicate_i32immSExt8>>:$src), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 51
                          // Dst: (XOR32mi8:i32 addr:iPTR:$dst, (imm:i32):$src)
/*3383*/                /*Scope*/ 37, /*->3421*/
/*3384*/                  OPC_CheckPredicate, 10, // Predicate_i64immSExt8
/*3386*/                  OPC_MoveParent,
/*3387*/                  OPC_CheckType, MVT::i64,
/*3389*/                  OPC_MoveParent,
/*3390*/                  OPC_MoveChild, 2,
/*3392*/                  OPC_CheckSame, 2,
/*3394*/                  OPC_MoveParent,
/*3395*/                  OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*3397*/                  OPC_CheckPredicate, 5, // Predicate_store
/*3399*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #4 #5 #6 #7 #8
/*3402*/                  OPC_EmitMergeInputChains, 2, 0, 1, 
/*3406*/                  OPC_EmitConvertToTarget, 3,
/*3408*/                  OPC_MorphNodeTo, TARGET_VAL(X86::XOR64mi8), 0|OPFL_Chain|OPFL_MemRefs,
                              1/*#VTs*/, MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 9, 
                          // Src: (st (xor:i64 (ld:i64 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:i64)<<P:Predicate_i64immSExt8>>:$src), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 51
                          // Dst: (XOR64mi8:i32 addr:iPTR:$dst, (imm:i64):$src)
/*3421*/                /*Scope*/ 37, /*->3459*/
/*3422*/                  OPC_CheckPredicate, 11, // Predicate_i64immSExt32
/*3424*/                  OPC_MoveParent,
/*3425*/                  OPC_CheckType, MVT::i64,
/*3427*/                  OPC_MoveParent,
/*3428*/                  OPC_MoveChild, 2,
/*3430*/                  OPC_CheckSame, 2,
/*3432*/                  OPC_MoveParent,
/*3433*/                  OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*3435*/                  OPC_CheckPredicate, 5, // Predicate_store
/*3437*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #4 #5 #6 #7 #8
/*3440*/                  OPC_EmitMergeInputChains, 2, 0, 1, 
/*3444*/                  OPC_EmitConvertToTarget, 3,
/*3446*/                  OPC_MorphNodeTo, TARGET_VAL(X86::XOR64mi32), 0|OPFL_Chain|OPFL_MemRefs,
                              1/*#VTs*/, MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 9, 
                          // Src: (st (xor:i64 (ld:i64 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:i64)<<P:Predicate_i64immSExt32>>:$src), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 51
                          // Dst: (XOR64mi32:i32 addr:iPTR:$dst, (imm:i64):$src)
/*3459*/                /*Scope*/ 105, /*->3565*/
/*3460*/                  OPC_MoveParent,
/*3461*/                  OPC_SwitchType /*3 cases */, 32,  MVT::i8,// ->3496
/*3464*/                    OPC_MoveParent,
/*3465*/                    OPC_MoveChild, 2,
/*3467*/                    OPC_CheckSame, 2,
/*3469*/                    OPC_MoveParent,
/*3470*/                    OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*3472*/                    OPC_CheckPredicate, 5, // Predicate_store
/*3474*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #4 #5 #6 #7 #8
/*3477*/                    OPC_EmitMergeInputChains, 2, 0, 1, 
/*3481*/                    OPC_EmitConvertToTarget, 3,
/*3483*/                    OPC_MorphNodeTo, TARGET_VAL(X86::XOR8mi), 0|OPFL_Chain|OPFL_MemRefs,
                                1/*#VTs*/, MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 9, 
                            // Src: (st (xor:i8 (ld:i8 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:i8):$src), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 50
                            // Dst: (XOR8mi:i32 addr:iPTR:$dst, (imm:i8):$src)
                          /*SwitchType*/ 32,  MVT::i16,// ->3530
/*3498*/                    OPC_MoveParent,
/*3499*/                    OPC_MoveChild, 2,
/*3501*/                    OPC_CheckSame, 2,
/*3503*/                    OPC_MoveParent,
/*3504*/                    OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*3506*/                    OPC_CheckPredicate, 5, // Predicate_store
/*3508*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #4 #5 #6 #7 #8
/*3511*/                    OPC_EmitMergeInputChains, 2, 0, 1, 
/*3515*/                    OPC_EmitConvertToTarget, 3,
/*3517*/                    OPC_MorphNodeTo, TARGET_VAL(X86::XOR16mi), 0|OPFL_Chain|OPFL_MemRefs,
                                1/*#VTs*/, MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 9, 
                            // Src: (st (xor:i16 (ld:i16 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:i16):$src), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 50
                            // Dst: (XOR16mi:i32 addr:iPTR:$dst, (imm:i16):$src)
                          /*SwitchType*/ 32,  MVT::i32,// ->3564
/*3532*/                    OPC_MoveParent,
/*3533*/                    OPC_MoveChild, 2,
/*3535*/                    OPC_CheckSame, 2,
/*3537*/                    OPC_MoveParent,
/*3538*/                    OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*3540*/                    OPC_CheckPredicate, 5, // Predicate_store
/*3542*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #4 #5 #6 #7 #8
/*3545*/                    OPC_EmitMergeInputChains, 2, 0, 1, 
/*3549*/                    OPC_EmitConvertToTarget, 3,
/*3551*/                    OPC_MorphNodeTo, TARGET_VAL(X86::XOR32mi), 0|OPFL_Chain|OPFL_MemRefs,
                                1/*#VTs*/, MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 9, 
                            // Src: (st (xor:i32 (ld:i32 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:i32):$src), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 50
                            // Dst: (XOR32mi:i32 addr:iPTR:$dst, (imm:i32):$src)
                          0, // EndSwitchType
/*3565*/                0, /*End of Scope*/
/*3566*/              /*Scope*/ 32, /*->3599*/
/*3567*/                OPC_CheckType, MVT::i8,
/*3569*/                OPC_MoveParent,
/*3570*/                OPC_MoveChild, 2,
/*3572*/                OPC_CheckSame, 2,
/*3574*/                OPC_MoveParent,
/*3575*/                OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*3577*/                OPC_CheckPredicate, 5, // Predicate_store
/*3579*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #4 #5 #6 #7 #8
/*3582*/                OPC_EmitMergeInputChains, 2, 0, 1, 
/*3586*/                OPC_MorphNodeTo, TARGET_VAL(X86::XOR8mr), 0|OPFL_Chain|OPFL_MemRefs,
                            1/*#VTs*/, MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 3, 
                        // Src: (st (xor:i8 (ld:i8 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, GR8:i8:$src), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 47
                        // Dst: (XOR8mr:i32 addr:iPTR:$dst, GR8:i8:$src)
/*3599*/              /*Scope*/ 32, /*->3632*/
/*3600*/                OPC_CheckType, MVT::i16,
/*3602*/                OPC_MoveParent,
/*3603*/                OPC_MoveChild, 2,
/*3605*/                OPC_CheckSame, 2,
/*3607*/                OPC_MoveParent,
/*3608*/                OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*3610*/                OPC_CheckPredicate, 5, // Predicate_store
/*3612*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #4 #5 #6 #7 #8
/*3615*/                OPC_EmitMergeInputChains, 2, 0, 1, 
/*3619*/                OPC_MorphNodeTo, TARGET_VAL(X86::XOR16mr), 0|OPFL_Chain|OPFL_MemRefs,
                            1/*#VTs*/, MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 3, 
                        // Src: (st (xor:i16 (ld:i16 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, GR16:i16:$src), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 47
                        // Dst: (XOR16mr:i32 addr:iPTR:$dst, GR16:i16:$src)
/*3632*/              /*Scope*/ 32, /*->3665*/
/*3633*/                OPC_CheckType, MVT::i32,
/*3635*/                OPC_MoveParent,
/*3636*/                OPC_MoveChild, 2,
/*3638*/                OPC_CheckSame, 2,
/*3640*/                OPC_MoveParent,
/*3641*/                OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*3643*/                OPC_CheckPredicate, 5, // Predicate_store
/*3645*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #4 #5 #6 #7 #8
/*3648*/                OPC_EmitMergeInputChains, 2, 0, 1, 
/*3652*/                OPC_MorphNodeTo, TARGET_VAL(X86::XOR32mr), 0|OPFL_Chain|OPFL_MemRefs,
                            1/*#VTs*/, MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 3, 
                        // Src: (st (xor:i32 (ld:i32 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, GR32:i32:$src), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 47
                        // Dst: (XOR32mr:i32 addr:iPTR:$dst, GR32:i32:$src)
/*3665*/              /*Scope*/ 32, /*->3698*/
/*3666*/                OPC_CheckType, MVT::i64,
/*3668*/                OPC_MoveParent,
/*3669*/                OPC_MoveChild, 2,
/*3671*/                OPC_CheckSame, 2,
/*3673*/                OPC_MoveParent,
/*3674*/                OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*3676*/                OPC_CheckPredicate, 5, // Predicate_store
/*3678*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #4 #5 #6 #7 #8
/*3681*/                OPC_EmitMergeInputChains, 2, 0, 1, 
/*3685*/                OPC_MorphNodeTo, TARGET_VAL(X86::XOR64mr), 0|OPFL_Chain|OPFL_MemRefs,
                            1/*#VTs*/, MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 3, 
                        // Src: (st (xor:i64 (ld:i64 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, GR64:i64:$src), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 47
                        // Dst: (XOR64mr:i32 addr:iPTR:$dst, GR64:i64:$src)
/*3698*/              0, /*End of Scope*/
/*3699*/            0, /*End of Scope*/
/*3700*/          0, /*End of Scope*/
/*3701*/        /*Scope*/ 17|128,1/*145*/, /*->3848*/
/*3703*/          OPC_RecordChild0, // #1 = $src
/*3704*/          OPC_MoveChild, 1,
/*3706*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*3709*/          OPC_RecordMemRef,
/*3710*/          OPC_RecordNode, // #2 = 'ld' chained node
/*3711*/          OPC_CheckFoldableChainNode,
/*3712*/          OPC_RecordChild1, // #3 = $dst
/*3713*/          OPC_CheckPredicate, 2, // Predicate_unindexedload
/*3715*/          OPC_CheckPredicate, 3, // Predicate_load
/*3717*/          OPC_MoveParent,
/*3718*/          OPC_SwitchType /*4 cases */, 30,  MVT::i8,// ->3751
/*3721*/            OPC_MoveParent,
/*3722*/            OPC_MoveChild, 2,
/*3724*/            OPC_CheckSame, 3,
/*3726*/            OPC_MoveParent,
/*3727*/            OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*3729*/            OPC_CheckPredicate, 5, // Predicate_store
/*3731*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // SelectAddr:$dst #4 #5 #6 #7 #8
/*3734*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/*3738*/            OPC_MorphNodeTo, TARGET_VAL(X86::XOR8mr), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 1, 
                    // Src: (st (xor:i8 GR8:i8:$src, (ld:i8 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 47
                    // Dst: (XOR8mr:i32 addr:iPTR:$dst, GR8:i8:$src)
                  /*SwitchType*/ 30,  MVT::i16,// ->3783
/*3753*/            OPC_MoveParent,
/*3754*/            OPC_MoveChild, 2,
/*3756*/            OPC_CheckSame, 3,
/*3758*/            OPC_MoveParent,
/*3759*/            OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*3761*/            OPC_CheckPredicate, 5, // Predicate_store
/*3763*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // SelectAddr:$dst #4 #5 #6 #7 #8
/*3766*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/*3770*/            OPC_MorphNodeTo, TARGET_VAL(X86::XOR16mr), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 1, 
                    // Src: (st (xor:i16 GR16:i16:$src, (ld:i16 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 47
                    // Dst: (XOR16mr:i32 addr:iPTR:$dst, GR16:i16:$src)
                  /*SwitchType*/ 30,  MVT::i32,// ->3815
/*3785*/            OPC_MoveParent,
/*3786*/            OPC_MoveChild, 2,
/*3788*/            OPC_CheckSame, 3,
/*3790*/            OPC_MoveParent,
/*3791*/            OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*3793*/            OPC_CheckPredicate, 5, // Predicate_store
/*3795*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // SelectAddr:$dst #4 #5 #6 #7 #8
/*3798*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/*3802*/            OPC_MorphNodeTo, TARGET_VAL(X86::XOR32mr), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 1, 
                    // Src: (st (xor:i32 GR32:i32:$src, (ld:i32 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 47
                    // Dst: (XOR32mr:i32 addr:iPTR:$dst, GR32:i32:$src)
                  /*SwitchType*/ 30,  MVT::i64,// ->3847
/*3817*/            OPC_MoveParent,
/*3818*/            OPC_MoveChild, 2,
/*3820*/            OPC_CheckSame, 3,
/*3822*/            OPC_MoveParent,
/*3823*/            OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*3825*/            OPC_CheckPredicate, 5, // Predicate_store
/*3827*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // SelectAddr:$dst #4 #5 #6 #7 #8
/*3830*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/*3834*/            OPC_MorphNodeTo, TARGET_VAL(X86::XOR64mr), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 1, 
                    // Src: (st (xor:i64 GR64:i64:$src, (ld:i64 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 47
                    // Dst: (XOR64mr:i32 addr:iPTR:$dst, GR64:i64:$src)
                  0, // EndSwitchType
/*3848*/        0, /*End of Scope*/
              /*SwitchOpcode*/ 60|128,10/*1340*/,  TARGET_VAL(ISD::ADD),// ->5193
/*3853*/        OPC_Scope, 37|128,9/*1189*/, /*->5045*/ // 2 children in Scope
/*3856*/          OPC_MoveChild, 0,
/*3858*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*3861*/          OPC_RecordMemRef,
/*3862*/          OPC_RecordNode, // #1 = 'ld' chained node
/*3863*/          OPC_CheckFoldableChainNode,
/*3864*/          OPC_RecordChild1, // #2 = $dst
/*3865*/          OPC_CheckPredicate, 2, // Predicate_unindexedload
/*3867*/          OPC_Scope, 39, /*->3908*/ // 15 children in Scope
/*3869*/            OPC_CheckPredicate, 3, // Predicate_load
/*3871*/            OPC_MoveParent,
/*3872*/            OPC_MoveChild, 1,
/*3874*/            OPC_CheckInteger, 1, 
/*3876*/            OPC_MoveParent,
/*3877*/            OPC_CheckType, MVT::i8,
/*3879*/            OPC_MoveParent,
/*3880*/            OPC_MoveChild, 2,
/*3882*/            OPC_CheckSame, 2,
/*3884*/            OPC_MoveParent,
/*3885*/            OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*3887*/            OPC_CheckPredicate, 5, // Predicate_store
/*3889*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*3892*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*3896*/            OPC_MorphNodeTo, TARGET_VAL(X86::INC8m), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::i32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                    // Src: (st (add:i8 (ld:i8 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, 1:i8), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 52
                    // Dst: (INC8m:i32 addr:iPTR:$dst)
/*3908*/          /*Scope*/ 41, /*->3950*/
/*3909*/            OPC_CheckPredicate, 6, // Predicate_loadi16
/*3911*/            OPC_MoveParent,
/*3912*/            OPC_MoveChild, 1,
/*3914*/            OPC_CheckInteger, 1, 
/*3916*/            OPC_MoveParent,
/*3917*/            OPC_CheckType, MVT::i16,
/*3919*/            OPC_MoveParent,
/*3920*/            OPC_MoveChild, 2,
/*3922*/            OPC_CheckSame, 2,
/*3924*/            OPC_MoveParent,
/*3925*/            OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*3927*/            OPC_CheckPredicate, 5, // Predicate_store
/*3929*/            OPC_CheckPatternPredicate, 3, // (!Subtarget->is64Bit())
/*3931*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*3934*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*3938*/            OPC_MorphNodeTo, TARGET_VAL(X86::INC16m), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::i32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                    // Src: (st (add:i16 (ld:i16 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>, 1:i16), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 52
                    // Dst: (INC16m:i32 addr:iPTR:$dst)
/*3950*/          /*Scope*/ 41, /*->3992*/
/*3951*/            OPC_CheckPredicate, 7, // Predicate_loadi32
/*3953*/            OPC_MoveParent,
/*3954*/            OPC_MoveChild, 1,
/*3956*/            OPC_CheckInteger, 1, 
/*3958*/            OPC_MoveParent,
/*3959*/            OPC_CheckType, MVT::i32,
/*3961*/            OPC_MoveParent,
/*3962*/            OPC_MoveChild, 2,
/*3964*/            OPC_CheckSame, 2,
/*3966*/            OPC_MoveParent,
/*3967*/            OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*3969*/            OPC_CheckPredicate, 5, // Predicate_store
/*3971*/            OPC_CheckPatternPredicate, 3, // (!Subtarget->is64Bit())
/*3973*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*3976*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*3980*/            OPC_MorphNodeTo, TARGET_VAL(X86::INC32m), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::i32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                    // Src: (st (add:i32 (ld:i32 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>, 1:i32), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 52
                    // Dst: (INC32m:i32 addr:iPTR:$dst)
/*3992*/          /*Scope*/ 39, /*->4032*/
/*3993*/            OPC_CheckPredicate, 3, // Predicate_load
/*3995*/            OPC_MoveParent,
/*3996*/            OPC_MoveChild, 1,
/*3998*/            OPC_CheckInteger, 1, 
/*4000*/            OPC_MoveParent,
/*4001*/            OPC_CheckType, MVT::i64,
/*4003*/            OPC_MoveParent,
/*4004*/            OPC_MoveChild, 2,
/*4006*/            OPC_CheckSame, 2,
/*4008*/            OPC_MoveParent,
/*4009*/            OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*4011*/            OPC_CheckPredicate, 5, // Predicate_store
/*4013*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*4016*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*4020*/            OPC_MorphNodeTo, TARGET_VAL(X86::INC64m), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::i32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                    // Src: (st (add:i64 (ld:i64 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, 1:i64), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 52
                    // Dst: (INC64m:i32 addr:iPTR:$dst)
/*4032*/          /*Scope*/ 41, /*->4074*/
/*4033*/            OPC_CheckPredicate, 6, // Predicate_loadi16
/*4035*/            OPC_MoveParent,
/*4036*/            OPC_MoveChild, 1,
/*4038*/            OPC_CheckInteger, 1, 
/*4040*/            OPC_MoveParent,
/*4041*/            OPC_CheckType, MVT::i16,
/*4043*/            OPC_MoveParent,
/*4044*/            OPC_MoveChild, 2,
/*4046*/            OPC_CheckSame, 2,
/*4048*/            OPC_MoveParent,
/*4049*/            OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*4051*/            OPC_CheckPredicate, 5, // Predicate_store
/*4053*/            OPC_CheckPatternPredicate, 4, // (Subtarget->is64Bit())
/*4055*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*4058*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*4062*/            OPC_MorphNodeTo, TARGET_VAL(X86::INC64_16m), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::i32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                    // Src: (st (add:i16 (ld:i16 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>, 1:i16), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 52
                    // Dst: (INC64_16m:i32 addr:iPTR:$dst)
/*4074*/          /*Scope*/ 41, /*->4116*/
/*4075*/            OPC_CheckPredicate, 7, // Predicate_loadi32
/*4077*/            OPC_MoveParent,
/*4078*/            OPC_MoveChild, 1,
/*4080*/            OPC_CheckInteger, 1, 
/*4082*/            OPC_MoveParent,
/*4083*/            OPC_CheckType, MVT::i32,
/*4085*/            OPC_MoveParent,
/*4086*/            OPC_MoveChild, 2,
/*4088*/            OPC_CheckSame, 2,
/*4090*/            OPC_MoveParent,
/*4091*/            OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*4093*/            OPC_CheckPredicate, 5, // Predicate_store
/*4095*/            OPC_CheckPatternPredicate, 4, // (Subtarget->is64Bit())
/*4097*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*4100*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*4104*/            OPC_MorphNodeTo, TARGET_VAL(X86::INC64_32m), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::i32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                    // Src: (st (add:i32 (ld:i32 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>, 1:i32), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 52
                    // Dst: (INC64_32m:i32 addr:iPTR:$dst)
/*4116*/          /*Scope*/ 50, /*->4167*/
/*4117*/            OPC_CheckPredicate, 6, // Predicate_loadi16
/*4119*/            OPC_MoveParent,
/*4120*/            OPC_MoveChild, 1,
/*4122*/            OPC_CheckInteger, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/*4133*/            OPC_MoveParent,
/*4134*/            OPC_CheckType, MVT::i16,
/*4136*/            OPC_MoveParent,
/*4137*/            OPC_MoveChild, 2,
/*4139*/            OPC_CheckSame, 2,
/*4141*/            OPC_MoveParent,
/*4142*/            OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*4144*/            OPC_CheckPredicate, 5, // Predicate_store
/*4146*/            OPC_CheckPatternPredicate, 4, // (Subtarget->is64Bit())
/*4148*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*4151*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*4155*/            OPC_MorphNodeTo, TARGET_VAL(X86::DEC64_16m), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::i32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                    // Src: (st (add:i16 (ld:i16 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>, -1:i16), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 52
                    // Dst: (DEC64_16m:i32 addr:iPTR:$dst)
/*4167*/          /*Scope*/ 50, /*->4218*/
/*4168*/            OPC_CheckPredicate, 7, // Predicate_loadi32
/*4170*/            OPC_MoveParent,
/*4171*/            OPC_MoveChild, 1,
/*4173*/            OPC_CheckInteger, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/*4184*/            OPC_MoveParent,
/*4185*/            OPC_CheckType, MVT::i32,
/*4187*/            OPC_MoveParent,
/*4188*/            OPC_MoveChild, 2,
/*4190*/            OPC_CheckSame, 2,
/*4192*/            OPC_MoveParent,
/*4193*/            OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*4195*/            OPC_CheckPredicate, 5, // Predicate_store
/*4197*/            OPC_CheckPatternPredicate, 4, // (Subtarget->is64Bit())
/*4199*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*4202*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*4206*/            OPC_MorphNodeTo, TARGET_VAL(X86::DEC64_32m), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::i32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                    // Src: (st (add:i32 (ld:i32 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>, -1:i32), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 52
                    // Dst: (DEC64_32m:i32 addr:iPTR:$dst)
/*4218*/          /*Scope*/ 48, /*->4267*/
/*4219*/            OPC_CheckPredicate, 3, // Predicate_load
/*4221*/            OPC_MoveParent,
/*4222*/            OPC_MoveChild, 1,
/*4224*/            OPC_CheckInteger, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/*4235*/            OPC_MoveParent,
/*4236*/            OPC_CheckType, MVT::i8,
/*4238*/            OPC_MoveParent,
/*4239*/            OPC_MoveChild, 2,
/*4241*/            OPC_CheckSame, 2,
/*4243*/            OPC_MoveParent,
/*4244*/            OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*4246*/            OPC_CheckPredicate, 5, // Predicate_store
/*4248*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*4251*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*4255*/            OPC_MorphNodeTo, TARGET_VAL(X86::DEC8m), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::i32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                    // Src: (st (add:i8 (ld:i8 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, -1:i8), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 52
                    // Dst: (DEC8m:i32 addr:iPTR:$dst)
/*4267*/          /*Scope*/ 50, /*->4318*/
/*4268*/            OPC_CheckPredicate, 6, // Predicate_loadi16
/*4270*/            OPC_MoveParent,
/*4271*/            OPC_MoveChild, 1,
/*4273*/            OPC_CheckInteger, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/*4284*/            OPC_MoveParent,
/*4285*/            OPC_CheckType, MVT::i16,
/*4287*/            OPC_MoveParent,
/*4288*/            OPC_MoveChild, 2,
/*4290*/            OPC_CheckSame, 2,
/*4292*/            OPC_MoveParent,
/*4293*/            OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*4295*/            OPC_CheckPredicate, 5, // Predicate_store
/*4297*/            OPC_CheckPatternPredicate, 3, // (!Subtarget->is64Bit())
/*4299*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*4302*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*4306*/            OPC_MorphNodeTo, TARGET_VAL(X86::DEC16m), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::i32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                    // Src: (st (add:i16 (ld:i16 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>, -1:i16), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 52
                    // Dst: (DEC16m:i32 addr:iPTR:$dst)
/*4318*/          /*Scope*/ 50, /*->4369*/
/*4319*/            OPC_CheckPredicate, 7, // Predicate_loadi32
/*4321*/            OPC_MoveParent,
/*4322*/            OPC_MoveChild, 1,
/*4324*/            OPC_CheckInteger, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/*4335*/            OPC_MoveParent,
/*4336*/            OPC_CheckType, MVT::i32,
/*4338*/            OPC_MoveParent,
/*4339*/            OPC_MoveChild, 2,
/*4341*/            OPC_CheckSame, 2,
/*4343*/            OPC_MoveParent,
/*4344*/            OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*4346*/            OPC_CheckPredicate, 5, // Predicate_store
/*4348*/            OPC_CheckPatternPredicate, 3, // (!Subtarget->is64Bit())
/*4350*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*4353*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*4357*/            OPC_MorphNodeTo, TARGET_VAL(X86::DEC32m), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::i32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                    // Src: (st (add:i32 (ld:i32 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>, -1:i32), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 52
                    // Dst: (DEC32m:i32 addr:iPTR:$dst)
/*4369*/          /*Scope*/ 48, /*->4418*/
/*4370*/            OPC_CheckPredicate, 3, // Predicate_load
/*4372*/            OPC_MoveParent,
/*4373*/            OPC_MoveChild, 1,
/*4375*/            OPC_CheckInteger, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/*4386*/            OPC_MoveParent,
/*4387*/            OPC_CheckType, MVT::i64,
/*4389*/            OPC_MoveParent,
/*4390*/            OPC_MoveChild, 2,
/*4392*/            OPC_CheckSame, 2,
/*4394*/            OPC_MoveParent,
/*4395*/            OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*4397*/            OPC_CheckPredicate, 5, // Predicate_store
/*4399*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*4402*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*4406*/            OPC_MorphNodeTo, TARGET_VAL(X86::DEC64m), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::i32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                    // Src: (st (add:i64 (ld:i64 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, -1:i64), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 52
                    // Dst: (DEC64m:i32 addr:iPTR:$dst)
/*4418*/          /*Scope*/ 53, /*->4472*/
/*4419*/            OPC_CheckPredicate, 6, // Predicate_loadi16
/*4421*/            OPC_MoveParent,
/*4422*/            OPC_MoveChild, 1,
/*4424*/            OPC_CheckInteger, 0|128,1/*128*/, 
/*4427*/            OPC_MoveParent,
/*4428*/            OPC_CheckType, MVT::i16,
/*4430*/            OPC_MoveParent,
/*4431*/            OPC_MoveChild, 2,
/*4433*/            OPC_CheckSame, 2,
/*4435*/            OPC_MoveParent,
/*4436*/            OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*4438*/            OPC_CheckPredicate, 5, // Predicate_store
/*4440*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*4443*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*4447*/            OPC_EmitInteger, MVT::i16, 0|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551488*/, 
/*4459*/            OPC_MorphNodeTo, TARGET_VAL(X86::SUB16mi8), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (st (add:i16 (ld:i16 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>, 128:i16), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 52
                    // Dst: (SUB16mi8:i32 addr:iPTR:$dst, -128:i16)
/*4472*/          /*Scope*/ 53, /*->4526*/
/*4473*/            OPC_CheckPredicate, 7, // Predicate_loadi32
/*4475*/            OPC_MoveParent,
/*4476*/            OPC_MoveChild, 1,
/*4478*/            OPC_CheckInteger, 0|128,1/*128*/, 
/*4481*/            OPC_MoveParent,
/*4482*/            OPC_CheckType, MVT::i32,
/*4484*/            OPC_MoveParent,
/*4485*/            OPC_MoveChild, 2,
/*4487*/            OPC_CheckSame, 2,
/*4489*/            OPC_MoveParent,
/*4490*/            OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*4492*/            OPC_CheckPredicate, 5, // Predicate_store
/*4494*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*4497*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*4501*/            OPC_EmitInteger, MVT::i32, 0|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551488*/, 
/*4513*/            OPC_MorphNodeTo, TARGET_VAL(X86::SUB32mi8), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (st (add:i32 (ld:i32 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>, 128:i32), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 52
                    // Dst: (SUB32mi8:i32 addr:iPTR:$dst, -128:i32)
/*4526*/          /*Scope*/ 4|128,4/*516*/, /*->5044*/
/*4528*/            OPC_CheckPredicate, 3, // Predicate_load
/*4530*/            OPC_MoveParent,
/*4531*/            OPC_Scope, 106, /*->4639*/ // 2 children in Scope
/*4533*/              OPC_MoveChild, 1,
/*4535*/              OPC_Scope, 48, /*->4585*/ // 2 children in Scope
/*4537*/                OPC_CheckInteger, 0|128,1/*128*/, 
/*4540*/                OPC_MoveParent,
/*4541*/                OPC_CheckType, MVT::i64,
/*4543*/                OPC_MoveParent,
/*4544*/                OPC_MoveChild, 2,
/*4546*/                OPC_CheckSame, 2,
/*4548*/                OPC_MoveParent,
/*4549*/                OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*4551*/                OPC_CheckPredicate, 5, // Predicate_store
/*4553*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*4556*/                OPC_EmitMergeInputChains, 2, 0, 1, 
/*4560*/                OPC_EmitInteger, MVT::i64, 0|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551488*/, 
/*4572*/                OPC_MorphNodeTo, TARGET_VAL(X86::SUB64mi8), 0|OPFL_Chain|OPFL_MemRefs,
                            1/*#VTs*/, MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                        // Src: (st (add:i64 (ld:i64 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, 128:i64), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 52
                        // Dst: (SUB64mi8:i32 addr:iPTR:$dst, -128:i64)
/*4585*/              /*Scope*/ 52, /*->4638*/
/*4586*/                OPC_CheckInteger, 0|128,0|128,0|128,0|128,0|128,1/*34359738368*/, 
/*4593*/                OPC_MoveParent,
/*4594*/                OPC_CheckType, MVT::i64,
/*4596*/                OPC_MoveParent,
/*4597*/                OPC_MoveChild, 2,
/*4599*/                OPC_CheckSame, 2,
/*4601*/                OPC_MoveParent,
/*4602*/                OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*4604*/                OPC_CheckPredicate, 5, // Predicate_store
/*4606*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*4609*/                OPC_EmitMergeInputChains, 2, 0, 1, 
/*4613*/                OPC_EmitInteger, MVT::i64, 0|128,0|128,0|128,0|128,120|128,127|128,127|128,127|128,127|128,1/*18446744071562067968*/, 
/*4625*/                OPC_MorphNodeTo, TARGET_VAL(X86::SUB64mi32), 0|OPFL_Chain|OPFL_MemRefs,
                            1/*#VTs*/, MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                        // Src: (st (add:i64 (ld:i64 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, 34359738368:i64), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 52
                        // Dst: (SUB64mi32:i32 addr:iPTR:$dst, -2147483648:i64)
/*4638*/              0, /*End of Scope*/
/*4639*/            /*Scope*/ 18|128,3/*402*/, /*->5043*/
/*4641*/              OPC_RecordChild1, // #3 = $src
/*4642*/              OPC_Scope, 9|128,2/*265*/, /*->4910*/ // 5 children in Scope
/*4645*/                OPC_MoveChild, 1,
/*4647*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*4650*/                OPC_Scope, 37, /*->4689*/ // 5 children in Scope
/*4652*/                  OPC_CheckPredicate, 8, // Predicate_i16immSExt8
/*4654*/                  OPC_MoveParent,
/*4655*/                  OPC_CheckType, MVT::i16,
/*4657*/                  OPC_MoveParent,
/*4658*/                  OPC_MoveChild, 2,
/*4660*/                  OPC_CheckSame, 2,
/*4662*/                  OPC_MoveParent,
/*4663*/                  OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*4665*/                  OPC_CheckPredicate, 5, // Predicate_store
/*4667*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #4 #5 #6 #7 #8
/*4670*/                  OPC_EmitMergeInputChains, 2, 0, 1, 
/*4674*/                  OPC_EmitConvertToTarget, 3,
/*4676*/                  OPC_MorphNodeTo, TARGET_VAL(X86::ADD16mi8), 0|OPFL_Chain|OPFL_MemRefs,
                              1/*#VTs*/, MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 9, 
                          // Src: (st (add:i16 (ld:i16 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:i16)<<P:Predicate_i16immSExt8>>:$src), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 51
                          // Dst: (ADD16mi8:i32 addr:iPTR:$dst, (imm:i16):$src)
/*4689*/                /*Scope*/ 37, /*->4727*/
/*4690*/                  OPC_CheckPredicate, 9, // Predicate_i32immSExt8
/*4692*/                  OPC_MoveParent,
/*4693*/                  OPC_CheckType, MVT::i32,
/*4695*/                  OPC_MoveParent,
/*4696*/                  OPC_MoveChild, 2,
/*4698*/                  OPC_CheckSame, 2,
/*4700*/                  OPC_MoveParent,
/*4701*/                  OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*4703*/                  OPC_CheckPredicate, 5, // Predicate_store
/*4705*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #4 #5 #6 #7 #8
/*4708*/                  OPC_EmitMergeInputChains, 2, 0, 1, 
/*4712*/                  OPC_EmitConvertToTarget, 3,
/*4714*/                  OPC_MorphNodeTo, TARGET_VAL(X86::ADD32mi8), 0|OPFL_Chain|OPFL_MemRefs,
                              1/*#VTs*/, MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 9, 
                          // Src: (st (add:i32 (ld:i32 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:i32)<<P:Predicate_i32immSExt8>>:$src), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 51
                          // Dst: (ADD32mi8:i32 addr:iPTR:$dst, (imm:i32):$src)
/*4727*/                /*Scope*/ 37, /*->4765*/
/*4728*/                  OPC_CheckPredicate, 10, // Predicate_i64immSExt8
/*4730*/                  OPC_MoveParent,
/*4731*/                  OPC_CheckType, MVT::i64,
/*4733*/                  OPC_MoveParent,
/*4734*/                  OPC_MoveChild, 2,
/*4736*/                  OPC_CheckSame, 2,
/*4738*/                  OPC_MoveParent,
/*4739*/                  OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*4741*/                  OPC_CheckPredicate, 5, // Predicate_store
/*4743*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #4 #5 #6 #7 #8
/*4746*/                  OPC_EmitMergeInputChains, 2, 0, 1, 
/*4750*/                  OPC_EmitConvertToTarget, 3,
/*4752*/                  OPC_MorphNodeTo, TARGET_VAL(X86::ADD64mi8), 0|OPFL_Chain|OPFL_MemRefs,
                              1/*#VTs*/, MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 9, 
                          // Src: (st (add:i64 (ld:i64 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:i64)<<P:Predicate_i64immSExt8>>:$src), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 51
                          // Dst: (ADD64mi8:i32 addr:iPTR:$dst, (imm:i64):$src)
/*4765*/                /*Scope*/ 37, /*->4803*/
/*4766*/                  OPC_CheckPredicate, 11, // Predicate_i64immSExt32
/*4768*/                  OPC_MoveParent,
/*4769*/                  OPC_CheckType, MVT::i64,
/*4771*/                  OPC_MoveParent,
/*4772*/                  OPC_MoveChild, 2,
/*4774*/                  OPC_CheckSame, 2,
/*4776*/                  OPC_MoveParent,
/*4777*/                  OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*4779*/                  OPC_CheckPredicate, 5, // Predicate_store
/*4781*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #4 #5 #6 #7 #8
/*4784*/                  OPC_EmitMergeInputChains, 2, 0, 1, 
/*4788*/                  OPC_EmitConvertToTarget, 3,
/*4790*/                  OPC_MorphNodeTo, TARGET_VAL(X86::ADD64mi32), 0|OPFL_Chain|OPFL_MemRefs,
                              1/*#VTs*/, MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 9, 
                          // Src: (st (add:i64 (ld:i64 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:i64)<<P:Predicate_i64immSExt32>>:$src), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 51
                          // Dst: (ADD64mi32:i32 addr:iPTR:$dst, (imm:i64):$src)
/*4803*/                /*Scope*/ 105, /*->4909*/
/*4804*/                  OPC_MoveParent,
/*4805*/                  OPC_SwitchType /*3 cases */, 32,  MVT::i8,// ->4840
/*4808*/                    OPC_MoveParent,
/*4809*/                    OPC_MoveChild, 2,
/*4811*/                    OPC_CheckSame, 2,
/*4813*/                    OPC_MoveParent,
/*4814*/                    OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*4816*/                    OPC_CheckPredicate, 5, // Predicate_store
/*4818*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #4 #5 #6 #7 #8
/*4821*/                    OPC_EmitMergeInputChains, 2, 0, 1, 
/*4825*/                    OPC_EmitConvertToTarget, 3,
/*4827*/                    OPC_MorphNodeTo, TARGET_VAL(X86::ADD8mi), 0|OPFL_Chain|OPFL_MemRefs,
                                1/*#VTs*/, MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 9, 
                            // Src: (st (add:i8 (ld:i8 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:i8):$src), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 50
                            // Dst: (ADD8mi:i32 addr:iPTR:$dst, (imm:i8):$src)
                          /*SwitchType*/ 32,  MVT::i16,// ->4874
/*4842*/                    OPC_MoveParent,
/*4843*/                    OPC_MoveChild, 2,
/*4845*/                    OPC_CheckSame, 2,
/*4847*/                    OPC_MoveParent,
/*4848*/                    OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*4850*/                    OPC_CheckPredicate, 5, // Predicate_store
/*4852*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #4 #5 #6 #7 #8
/*4855*/                    OPC_EmitMergeInputChains, 2, 0, 1, 
/*4859*/                    OPC_EmitConvertToTarget, 3,
/*4861*/                    OPC_MorphNodeTo, TARGET_VAL(X86::ADD16mi), 0|OPFL_Chain|OPFL_MemRefs,
                                1/*#VTs*/, MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 9, 
                            // Src: (st (add:i16 (ld:i16 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:i16):$src), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 50
                            // Dst: (ADD16mi:i32 addr:iPTR:$dst, (imm:i16):$src)
                          /*SwitchType*/ 32,  MVT::i32,// ->4908
/*4876*/                    OPC_MoveParent,
/*4877*/                    OPC_MoveChild, 2,
/*4879*/                    OPC_CheckSame, 2,
/*4881*/                    OPC_MoveParent,
/*4882*/                    OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*4884*/                    OPC_CheckPredicate, 5, // Predicate_store
/*4886*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #4 #5 #6 #7 #8
/*4889*/                    OPC_EmitMergeInputChains, 2, 0, 1, 
/*4893*/                    OPC_EmitConvertToTarget, 3,
/*4895*/                    OPC_MorphNodeTo, TARGET_VAL(X86::ADD32mi), 0|OPFL_Chain|OPFL_MemRefs,
                                1/*#VTs*/, MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 9, 
                            // Src: (st (add:i32 (ld:i32 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:i32):$src), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 50
                            // Dst: (ADD32mi:i32 addr:iPTR:$dst, (imm:i32):$src)
                          0, // EndSwitchType
/*4909*/                0, /*End of Scope*/
/*4910*/              /*Scope*/ 32, /*->4943*/
/*4911*/                OPC_CheckType, MVT::i8,
/*4913*/                OPC_MoveParent,
/*4914*/                OPC_MoveChild, 2,
/*4916*/                OPC_CheckSame, 2,
/*4918*/                OPC_MoveParent,
/*4919*/                OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*4921*/                OPC_CheckPredicate, 5, // Predicate_store
/*4923*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #4 #5 #6 #7 #8
/*4926*/                OPC_EmitMergeInputChains, 2, 0, 1, 
/*4930*/                OPC_MorphNodeTo, TARGET_VAL(X86::ADD8mr), 0|OPFL_Chain|OPFL_MemRefs,
                            1/*#VTs*/, MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 3, 
                        // Src: (st (add:i8 (ld:i8 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, GR8:i8:$src), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 47
                        // Dst: (ADD8mr:i32 addr:iPTR:$dst, GR8:i8:$src)
/*4943*/              /*Scope*/ 32, /*->4976*/
/*4944*/                OPC_CheckType, MVT::i16,
/*4946*/                OPC_MoveParent,
/*4947*/                OPC_MoveChild, 2,
/*4949*/                OPC_CheckSame, 2,
/*4951*/                OPC_MoveParent,
/*4952*/                OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*4954*/                OPC_CheckPredicate, 5, // Predicate_store
/*4956*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #4 #5 #6 #7 #8
/*4959*/                OPC_EmitMergeInputChains, 2, 0, 1, 
/*4963*/                OPC_MorphNodeTo, TARGET_VAL(X86::ADD16mr), 0|OPFL_Chain|OPFL_MemRefs,
                            1/*#VTs*/, MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 3, 
                        // Src: (st (add:i16 (ld:i16 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, GR16:i16:$src), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 47
                        // Dst: (ADD16mr:i32 addr:iPTR:$dst, GR16:i16:$src)
/*4976*/              /*Scope*/ 32, /*->5009*/
/*4977*/                OPC_CheckType, MVT::i32,
/*4979*/                OPC_MoveParent,
/*4980*/                OPC_MoveChild, 2,
/*4982*/                OPC_CheckSame, 2,
/*4984*/                OPC_MoveParent,
/*4985*/                OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*4987*/                OPC_CheckPredicate, 5, // Predicate_store
/*4989*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #4 #5 #6 #7 #8
/*4992*/                OPC_EmitMergeInputChains, 2, 0, 1, 
/*4996*/                OPC_MorphNodeTo, TARGET_VAL(X86::ADD32mr), 0|OPFL_Chain|OPFL_MemRefs,
                            1/*#VTs*/, MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 3, 
                        // Src: (st (add:i32 (ld:i32 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, GR32:i32:$src), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 47
                        // Dst: (ADD32mr:i32 addr:iPTR:$dst, GR32:i32:$src)
/*5009*/              /*Scope*/ 32, /*->5042*/
/*5010*/                OPC_CheckType, MVT::i64,
/*5012*/                OPC_MoveParent,
/*5013*/                OPC_MoveChild, 2,
/*5015*/                OPC_CheckSame, 2,
/*5017*/                OPC_MoveParent,
/*5018*/                OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*5020*/                OPC_CheckPredicate, 5, // Predicate_store
/*5022*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #4 #5 #6 #7 #8
/*5025*/                OPC_EmitMergeInputChains, 2, 0, 1, 
/*5029*/                OPC_MorphNodeTo, TARGET_VAL(X86::ADD64mr), 0|OPFL_Chain|OPFL_MemRefs,
                            1/*#VTs*/, MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 3, 
                        // Src: (st (add:i64 (ld:i64 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, GR64:i64:$src), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 47
                        // Dst: (ADD64mr:i32 addr:iPTR:$dst, GR64:i64:$src)
/*5042*/              0, /*End of Scope*/
/*5043*/            0, /*End of Scope*/
/*5044*/          0, /*End of Scope*/
/*5045*/        /*Scope*/ 17|128,1/*145*/, /*->5192*/
/*5047*/          OPC_RecordChild0, // #1 = $src
/*5048*/          OPC_MoveChild, 1,
/*5050*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*5053*/          OPC_RecordMemRef,
/*5054*/          OPC_RecordNode, // #2 = 'ld' chained node
/*5055*/          OPC_CheckFoldableChainNode,
/*5056*/          OPC_RecordChild1, // #3 = $dst
/*5057*/          OPC_CheckPredicate, 2, // Predicate_unindexedload
/*5059*/          OPC_CheckPredicate, 3, // Predicate_load
/*5061*/          OPC_MoveParent,
/*5062*/          OPC_SwitchType /*4 cases */, 30,  MVT::i8,// ->5095
/*5065*/            OPC_MoveParent,
/*5066*/            OPC_MoveChild, 2,
/*5068*/            OPC_CheckSame, 3,
/*5070*/            OPC_MoveParent,
/*5071*/            OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*5073*/            OPC_CheckPredicate, 5, // Predicate_store
/*5075*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // SelectAddr:$dst #4 #5 #6 #7 #8
/*5078*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/*5082*/            OPC_MorphNodeTo, TARGET_VAL(X86::ADD8mr), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 1, 
                    // Src: (st (add:i8 GR8:i8:$src, (ld:i8 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 47
                    // Dst: (ADD8mr:i32 addr:iPTR:$dst, GR8:i8:$src)
                  /*SwitchType*/ 30,  MVT::i16,// ->5127
/*5097*/            OPC_MoveParent,
/*5098*/            OPC_MoveChild, 2,
/*5100*/            OPC_CheckSame, 3,
/*5102*/            OPC_MoveParent,
/*5103*/            OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*5105*/            OPC_CheckPredicate, 5, // Predicate_store
/*5107*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // SelectAddr:$dst #4 #5 #6 #7 #8
/*5110*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/*5114*/            OPC_MorphNodeTo, TARGET_VAL(X86::ADD16mr), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 1, 
                    // Src: (st (add:i16 GR16:i16:$src, (ld:i16 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 47
                    // Dst: (ADD16mr:i32 addr:iPTR:$dst, GR16:i16:$src)
                  /*SwitchType*/ 30,  MVT::i32,// ->5159
/*5129*/            OPC_MoveParent,
/*5130*/            OPC_MoveChild, 2,
/*5132*/            OPC_CheckSame, 3,
/*5134*/            OPC_MoveParent,
/*5135*/            OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*5137*/            OPC_CheckPredicate, 5, // Predicate_store
/*5139*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // SelectAddr:$dst #4 #5 #6 #7 #8
/*5142*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/*5146*/            OPC_MorphNodeTo, TARGET_VAL(X86::ADD32mr), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 1, 
                    // Src: (st (add:i32 GR32:i32:$src, (ld:i32 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 47
                    // Dst: (ADD32mr:i32 addr:iPTR:$dst, GR32:i32:$src)
                  /*SwitchType*/ 30,  MVT::i64,// ->5191
/*5161*/            OPC_MoveParent,
/*5162*/            OPC_MoveChild, 2,
/*5164*/            OPC_CheckSame, 3,
/*5166*/            OPC_MoveParent,
/*5167*/            OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*5169*/            OPC_CheckPredicate, 5, // Predicate_store
/*5171*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // SelectAddr:$dst #4 #5 #6 #7 #8
/*5174*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/*5178*/            OPC_MorphNodeTo, TARGET_VAL(X86::ADD64mr), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 1, 
                    // Src: (st (add:i64 GR64:i64:$src, (ld:i64 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 47
                    // Dst: (ADD64mr:i32 addr:iPTR:$dst, GR64:i64:$src)
                  0, // EndSwitchType
/*5192*/        0, /*End of Scope*/
              /*SwitchOpcode*/ 20|128,4/*532*/,  TARGET_VAL(ISD::ROTL),// ->5729
/*5197*/        OPC_MoveChild, 0,
/*5199*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*5202*/        OPC_RecordMemRef,
/*5203*/        OPC_RecordNode, // #1 = 'ld' chained node
/*5204*/        OPC_CheckFoldableChainNode,
/*5205*/        OPC_RecordChild1, // #2 = $dst
/*5206*/        OPC_CheckPredicate, 2, // Predicate_unindexedload
/*5208*/        OPC_Scope, 41, /*->5251*/ // 10 children in Scope
/*5210*/          OPC_CheckPredicate, 3, // Predicate_load
/*5212*/          OPC_MoveParent,
/*5213*/          OPC_MoveChild, 1,
/*5215*/          OPC_CheckInteger, 1, 
/*5217*/          OPC_CheckType, MVT::i8,
/*5219*/          OPC_MoveParent,
/*5220*/          OPC_CheckType, MVT::i8,
/*5222*/          OPC_MoveParent,
/*5223*/          OPC_MoveChild, 2,
/*5225*/          OPC_CheckSame, 2,
/*5227*/          OPC_MoveParent,
/*5228*/          OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*5230*/          OPC_CheckPredicate, 5, // Predicate_store
/*5232*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*5235*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*5239*/          OPC_MorphNodeTo, TARGET_VAL(X86::ROL8m1), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::i32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                  // Src: (st (rotl:i8 (ld:i8 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, 1:i8), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 52
                  // Dst: (ROL8m1:i32 addr:iPTR:$dst)
/*5251*/        /*Scope*/ 41, /*->5293*/
/*5252*/          OPC_CheckPredicate, 6, // Predicate_loadi16
/*5254*/          OPC_MoveParent,
/*5255*/          OPC_MoveChild, 1,
/*5257*/          OPC_CheckInteger, 1, 
/*5259*/          OPC_CheckType, MVT::i8,
/*5261*/          OPC_MoveParent,
/*5262*/          OPC_CheckType, MVT::i16,
/*5264*/          OPC_MoveParent,
/*5265*/          OPC_MoveChild, 2,
/*5267*/          OPC_CheckSame, 2,
/*5269*/          OPC_MoveParent,
/*5270*/          OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*5272*/          OPC_CheckPredicate, 5, // Predicate_store
/*5274*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*5277*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*5281*/          OPC_MorphNodeTo, TARGET_VAL(X86::ROL16m1), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::i32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                  // Src: (st (rotl:i16 (ld:i16 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>, 1:i8), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 52
                  // Dst: (ROL16m1:i32 addr:iPTR:$dst)
/*5293*/        /*Scope*/ 41, /*->5335*/
/*5294*/          OPC_CheckPredicate, 7, // Predicate_loadi32
/*5296*/          OPC_MoveParent,
/*5297*/          OPC_MoveChild, 1,
/*5299*/          OPC_CheckInteger, 1, 
/*5301*/          OPC_CheckType, MVT::i8,
/*5303*/          OPC_MoveParent,
/*5304*/          OPC_CheckType, MVT::i32,
/*5306*/          OPC_MoveParent,
/*5307*/          OPC_MoveChild, 2,
/*5309*/          OPC_CheckSame, 2,
/*5311*/          OPC_MoveParent,
/*5312*/          OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*5314*/          OPC_CheckPredicate, 5, // Predicate_store
/*5316*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*5319*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*5323*/          OPC_MorphNodeTo, TARGET_VAL(X86::ROL32m1), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::i32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                  // Src: (st (rotl:i32 (ld:i32 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>, 1:i8), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 52
                  // Dst: (ROL32m1:i32 addr:iPTR:$dst)
/*5335*/        /*Scope*/ 88, /*->5424*/
/*5336*/          OPC_CheckPredicate, 3, // Predicate_load
/*5338*/          OPC_MoveParent,
/*5339*/          OPC_Scope, 38, /*->5379*/ // 2 children in Scope
/*5341*/            OPC_MoveChild, 1,
/*5343*/            OPC_CheckInteger, 1, 
/*5345*/            OPC_CheckType, MVT::i8,
/*5347*/            OPC_MoveParent,
/*5348*/            OPC_CheckType, MVT::i64,
/*5350*/            OPC_MoveParent,
/*5351*/            OPC_MoveChild, 2,
/*5353*/            OPC_CheckSame, 2,
/*5355*/            OPC_MoveParent,
/*5356*/            OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*5358*/            OPC_CheckPredicate, 5, // Predicate_store
/*5360*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*5363*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*5367*/            OPC_MorphNodeTo, TARGET_VAL(X86::ROL64m1), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::i32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                    // Src: (st (rotl:i64 (ld:i64 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, 1:i8), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 52
                    // Dst: (ROL64m1:i32 addr:iPTR:$dst)
/*5379*/          /*Scope*/ 43, /*->5423*/
/*5380*/            OPC_RecordChild1, // #3 = $src1
/*5381*/            OPC_MoveChild, 1,
/*5383*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*5386*/            OPC_CheckType, MVT::i8,
/*5388*/            OPC_MoveParent,
/*5389*/            OPC_CheckType, MVT::i8,
/*5391*/            OPC_MoveParent,
/*5392*/            OPC_MoveChild, 2,
/*5394*/            OPC_CheckSame, 2,
/*5396*/            OPC_MoveParent,
/*5397*/            OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*5399*/            OPC_CheckPredicate, 5, // Predicate_store
/*5401*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #4 #5 #6 #7 #8
/*5404*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*5408*/            OPC_EmitConvertToTarget, 3,
/*5410*/            OPC_MorphNodeTo, TARGET_VAL(X86::ROL8mi), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 9, 
                    // Src: (st (rotl:i8 (ld:i8 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:i8):$src1), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 50
                    // Dst: (ROL8mi:i32 addr:iPTR:$dst, (imm:i8):$src1)
/*5423*/          0, /*End of Scope*/
/*5424*/        /*Scope*/ 46, /*->5471*/
/*5425*/          OPC_CheckPredicate, 6, // Predicate_loadi16
/*5427*/          OPC_MoveParent,
/*5428*/          OPC_RecordChild1, // #3 = $src1
/*5429*/          OPC_MoveChild, 1,
/*5431*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*5434*/          OPC_CheckType, MVT::i8,
/*5436*/          OPC_MoveParent,
/*5437*/          OPC_CheckType, MVT::i16,
/*5439*/          OPC_MoveParent,
/*5440*/          OPC_MoveChild, 2,
/*5442*/          OPC_CheckSame, 2,
/*5444*/          OPC_MoveParent,
/*5445*/          OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*5447*/          OPC_CheckPredicate, 5, // Predicate_store
/*5449*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #4 #5 #6 #7 #8
/*5452*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*5456*/          OPC_EmitConvertToTarget, 3,
/*5458*/          OPC_MorphNodeTo, TARGET_VAL(X86::ROL16mi), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 9, 
                  // Src: (st (rotl:i16 (ld:i16 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>, (imm:i8):$src1), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 50
                  // Dst: (ROL16mi:i32 addr:iPTR:$dst, (imm:i8):$src1)
/*5471*/        /*Scope*/ 46, /*->5518*/
/*5472*/          OPC_CheckPredicate, 7, // Predicate_loadi32
/*5474*/          OPC_MoveParent,
/*5475*/          OPC_RecordChild1, // #3 = $src1
/*5476*/          OPC_MoveChild, 1,
/*5478*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*5481*/          OPC_CheckType, MVT::i8,
/*5483*/          OPC_MoveParent,
/*5484*/          OPC_CheckType, MVT::i32,
/*5486*/          OPC_MoveParent,
/*5487*/          OPC_MoveChild, 2,
/*5489*/          OPC_CheckSame, 2,
/*5491*/          OPC_MoveParent,
/*5492*/          OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*5494*/          OPC_CheckPredicate, 5, // Predicate_store
/*5496*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #4 #5 #6 #7 #8
/*5499*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*5503*/          OPC_EmitConvertToTarget, 3,
/*5505*/          OPC_MorphNodeTo, TARGET_VAL(X86::ROL32mi), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 9, 
                  // Src: (st (rotl:i32 (ld:i32 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>, (imm:i8):$src1), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 50
                  // Dst: (ROL32mi:i32 addr:iPTR:$dst, (imm:i8):$src1)
/*5518*/        /*Scope*/ 86, /*->5605*/
/*5519*/          OPC_CheckPredicate, 3, // Predicate_load
/*5521*/          OPC_MoveParent,
/*5522*/          OPC_RecordChild1, // #3 = $src1
/*5523*/          OPC_Scope, 42, /*->5567*/ // 2 children in Scope
/*5525*/            OPC_MoveChild, 1,
/*5527*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*5530*/            OPC_CheckType, MVT::i8,
/*5532*/            OPC_MoveParent,
/*5533*/            OPC_CheckType, MVT::i64,
/*5535*/            OPC_MoveParent,
/*5536*/            OPC_MoveChild, 2,
/*5538*/            OPC_CheckSame, 2,
/*5540*/            OPC_MoveParent,
/*5541*/            OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*5543*/            OPC_CheckPredicate, 5, // Predicate_store
/*5545*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #4 #5 #6 #7 #8
/*5548*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*5552*/            OPC_EmitConvertToTarget, 3,
/*5554*/            OPC_MorphNodeTo, TARGET_VAL(X86::ROL64mi), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 9, 
                    // Src: (st (rotl:i64 (ld:i64 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:i8):$src1), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 50
                    // Dst: (ROL64mi:i32 addr:iPTR:$dst, (imm:i8):$src1)
/*5567*/          /*Scope*/ 36, /*->5604*/
/*5568*/            OPC_CheckChild1Type, MVT::i8,
/*5570*/            OPC_CheckType, MVT::i8,
/*5572*/            OPC_MoveParent,
/*5573*/            OPC_MoveChild, 2,
/*5575*/            OPC_CheckSame, 2,
/*5577*/            OPC_MoveParent,
/*5578*/            OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*5580*/            OPC_CheckPredicate, 5, // Predicate_store
/*5582*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #4 #5 #6 #7 #8
/*5585*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*5589*/            OPC_EmitCopyToReg, 3, X86::CL,
/*5592*/            OPC_MorphNodeTo, TARGET_VAL(X86::ROL8mCL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                        1/*#VTs*/, MVT::i32, 5/*#Ops*/, 4, 5, 6, 7, 8, 
                    // Src: (st (rotl:i8 (ld:i8 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, CL:i8), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 47
                    // Dst: (ROL8mCL:i32 addr:iPTR:$dst)
/*5604*/          0, /*End of Scope*/
/*5605*/        /*Scope*/ 40, /*->5646*/
/*5606*/          OPC_CheckPredicate, 6, // Predicate_loadi16
/*5608*/          OPC_MoveParent,
/*5609*/          OPC_RecordChild1, // #3 = physreg input CL
/*5610*/          OPC_CheckChild1Type, MVT::i8,
/*5612*/          OPC_CheckType, MVT::i16,
/*5614*/          OPC_MoveParent,
/*5615*/          OPC_MoveChild, 2,
/*5617*/          OPC_CheckSame, 2,
/*5619*/          OPC_MoveParent,
/*5620*/          OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*5622*/          OPC_CheckPredicate, 5, // Predicate_store
/*5624*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #4 #5 #6 #7 #8
/*5627*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*5631*/          OPC_EmitCopyToReg, 3, X86::CL,
/*5634*/          OPC_MorphNodeTo, TARGET_VAL(X86::ROL16mCL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      1/*#VTs*/, MVT::i32, 5/*#Ops*/, 4, 5, 6, 7, 8, 
                  // Src: (st (rotl:i16 (ld:i16 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>, CL:i8), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 47
                  // Dst: (ROL16mCL:i32 addr:iPTR:$dst)
/*5646*/        /*Scope*/ 40, /*->5687*/
/*5647*/          OPC_CheckPredicate, 7, // Predicate_loadi32
/*5649*/          OPC_MoveParent,
/*5650*/          OPC_RecordChild1, // #3 = physreg input CL
/*5651*/          OPC_CheckChild1Type, MVT::i8,
/*5653*/          OPC_CheckType, MVT::i32,
/*5655*/          OPC_MoveParent,
/*5656*/          OPC_MoveChild, 2,
/*5658*/          OPC_CheckSame, 2,
/*5660*/          OPC_MoveParent,
/*5661*/          OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*5663*/          OPC_CheckPredicate, 5, // Predicate_store
/*5665*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #4 #5 #6 #7 #8
/*5668*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*5672*/          OPC_EmitCopyToReg, 3, X86::CL,
/*5675*/          OPC_MorphNodeTo, TARGET_VAL(X86::ROL32mCL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      1/*#VTs*/, MVT::i32, 5/*#Ops*/, 4, 5, 6, 7, 8, 
                  // Src: (st (rotl:i32 (ld:i32 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>, CL:i8), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 47
                  // Dst: (ROL32mCL:i32 addr:iPTR:$dst)
/*5687*/        /*Scope*/ 40, /*->5728*/
/*5688*/          OPC_CheckPredicate, 3, // Predicate_load
/*5690*/          OPC_MoveParent,
/*5691*/          OPC_RecordChild1, // #3 = physreg input CL
/*5692*/          OPC_CheckChild1Type, MVT::i8,
/*5694*/          OPC_CheckType, MVT::i64,
/*5696*/          OPC_MoveParent,
/*5697*/          OPC_MoveChild, 2,
/*5699*/          OPC_CheckSame, 2,
/*5701*/          OPC_MoveParent,
/*5702*/          OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*5704*/          OPC_CheckPredicate, 5, // Predicate_store
/*5706*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #4 #5 #6 #7 #8
/*5709*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*5713*/          OPC_EmitCopyToReg, 3, X86::CL,
/*5716*/          OPC_MorphNodeTo, TARGET_VAL(X86::ROL64mCL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      1/*#VTs*/, MVT::i32, 5/*#Ops*/, 4, 5, 6, 7, 8, 
                  // Src: (st (rotl:i64 (ld:i64 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, CL:i8), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 47
                  // Dst: (ROL64mCL:i32 addr:iPTR:$dst)
/*5728*/        0, /*End of Scope*/
              /*SwitchOpcode*/ 20|128,4/*532*/,  TARGET_VAL(ISD::ROTR),// ->6265
/*5733*/        OPC_MoveChild, 0,
/*5735*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*5738*/        OPC_RecordMemRef,
/*5739*/        OPC_RecordNode, // #1 = 'ld' chained node
/*5740*/        OPC_CheckFoldableChainNode,
/*5741*/        OPC_RecordChild1, // #2 = $dst
/*5742*/        OPC_CheckPredicate, 2, // Predicate_unindexedload
/*5744*/        OPC_Scope, 41, /*->5787*/ // 10 children in Scope
/*5746*/          OPC_CheckPredicate, 3, // Predicate_load
/*5748*/          OPC_MoveParent,
/*5749*/          OPC_MoveChild, 1,
/*5751*/          OPC_CheckInteger, 1, 
/*5753*/          OPC_CheckType, MVT::i8,
/*5755*/          OPC_MoveParent,
/*5756*/          OPC_CheckType, MVT::i8,
/*5758*/          OPC_MoveParent,
/*5759*/          OPC_MoveChild, 2,
/*5761*/          OPC_CheckSame, 2,
/*5763*/          OPC_MoveParent,
/*5764*/          OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*5766*/          OPC_CheckPredicate, 5, // Predicate_store
/*5768*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*5771*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*5775*/          OPC_MorphNodeTo, TARGET_VAL(X86::ROR8m1), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::i32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                  // Src: (st (rotr:i8 (ld:i8 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, 1:i8), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 52
                  // Dst: (ROR8m1:i32 addr:iPTR:$dst)
/*5787*/        /*Scope*/ 41, /*->5829*/
/*5788*/          OPC_CheckPredicate, 6, // Predicate_loadi16
/*5790*/          OPC_MoveParent,
/*5791*/          OPC_MoveChild, 1,
/*5793*/          OPC_CheckInteger, 1, 
/*5795*/          OPC_CheckType, MVT::i8,
/*5797*/          OPC_MoveParent,
/*5798*/          OPC_CheckType, MVT::i16,
/*5800*/          OPC_MoveParent,
/*5801*/          OPC_MoveChild, 2,
/*5803*/          OPC_CheckSame, 2,
/*5805*/          OPC_MoveParent,
/*5806*/          OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*5808*/          OPC_CheckPredicate, 5, // Predicate_store
/*5810*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*5813*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*5817*/          OPC_MorphNodeTo, TARGET_VAL(X86::ROR16m1), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::i32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                  // Src: (st (rotr:i16 (ld:i16 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>, 1:i8), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 52
                  // Dst: (ROR16m1:i32 addr:iPTR:$dst)
/*5829*/        /*Scope*/ 41, /*->5871*/
/*5830*/          OPC_CheckPredicate, 7, // Predicate_loadi32
/*5832*/          OPC_MoveParent,
/*5833*/          OPC_MoveChild, 1,
/*5835*/          OPC_CheckInteger, 1, 
/*5837*/          OPC_CheckType, MVT::i8,
/*5839*/          OPC_MoveParent,
/*5840*/          OPC_CheckType, MVT::i32,
/*5842*/          OPC_MoveParent,
/*5843*/          OPC_MoveChild, 2,
/*5845*/          OPC_CheckSame, 2,
/*5847*/          OPC_MoveParent,
/*5848*/          OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*5850*/          OPC_CheckPredicate, 5, // Predicate_store
/*5852*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*5855*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*5859*/          OPC_MorphNodeTo, TARGET_VAL(X86::ROR32m1), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::i32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                  // Src: (st (rotr:i32 (ld:i32 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>, 1:i8), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 52
                  // Dst: (ROR32m1:i32 addr:iPTR:$dst)
/*5871*/        /*Scope*/ 88, /*->5960*/
/*5872*/          OPC_CheckPredicate, 3, // Predicate_load
/*5874*/          OPC_MoveParent,
/*5875*/          OPC_Scope, 38, /*->5915*/ // 2 children in Scope
/*5877*/            OPC_MoveChild, 1,
/*5879*/            OPC_CheckInteger, 1, 
/*5881*/            OPC_CheckType, MVT::i8,
/*5883*/            OPC_MoveParent,
/*5884*/            OPC_CheckType, MVT::i64,
/*5886*/            OPC_MoveParent,
/*5887*/            OPC_MoveChild, 2,
/*5889*/            OPC_CheckSame, 2,
/*5891*/            OPC_MoveParent,
/*5892*/            OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*5894*/            OPC_CheckPredicate, 5, // Predicate_store
/*5896*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*5899*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*5903*/            OPC_MorphNodeTo, TARGET_VAL(X86::ROR64m1), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::i32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                    // Src: (st (rotr:i64 (ld:i64 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, 1:i8), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 52
                    // Dst: (ROR64m1:i32 addr:iPTR:$dst)
/*5915*/          /*Scope*/ 43, /*->5959*/
/*5916*/            OPC_RecordChild1, // #3 = $src
/*5917*/            OPC_MoveChild, 1,
/*5919*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*5922*/            OPC_CheckType, MVT::i8,
/*5924*/            OPC_MoveParent,
/*5925*/            OPC_CheckType, MVT::i8,
/*5927*/            OPC_MoveParent,
/*5928*/            OPC_MoveChild, 2,
/*5930*/            OPC_CheckSame, 2,
/*5932*/            OPC_MoveParent,
/*5933*/            OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*5935*/            OPC_CheckPredicate, 5, // Predicate_store
/*5937*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #4 #5 #6 #7 #8
/*5940*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*5944*/            OPC_EmitConvertToTarget, 3,
/*5946*/            OPC_MorphNodeTo, TARGET_VAL(X86::ROR8mi), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 9, 
                    // Src: (st (rotr:i8 (ld:i8 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:i8):$src), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 50
                    // Dst: (ROR8mi:i32 addr:iPTR:$dst, (imm:i8):$src)
/*5959*/          0, /*End of Scope*/
/*5960*/        /*Scope*/ 46, /*->6007*/
/*5961*/          OPC_CheckPredicate, 6, // Predicate_loadi16
/*5963*/          OPC_MoveParent,
/*5964*/          OPC_RecordChild1, // #3 = $src
/*5965*/          OPC_MoveChild, 1,
/*5967*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*5970*/          OPC_CheckType, MVT::i8,
/*5972*/          OPC_MoveParent,
/*5973*/          OPC_CheckType, MVT::i16,
/*5975*/          OPC_MoveParent,
/*5976*/          OPC_MoveChild, 2,
/*5978*/          OPC_CheckSame, 2,
/*5980*/          OPC_MoveParent,
/*5981*/          OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*5983*/          OPC_CheckPredicate, 5, // Predicate_store
/*5985*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #4 #5 #6 #7 #8
/*5988*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*5992*/          OPC_EmitConvertToTarget, 3,
/*5994*/          OPC_MorphNodeTo, TARGET_VAL(X86::ROR16mi), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 9, 
                  // Src: (st (rotr:i16 (ld:i16 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>, (imm:i8):$src), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 50
                  // Dst: (ROR16mi:i32 addr:iPTR:$dst, (imm:i8):$src)
/*6007*/        /*Scope*/ 46, /*->6054*/
/*6008*/          OPC_CheckPredicate, 7, // Predicate_loadi32
/*6010*/          OPC_MoveParent,
/*6011*/          OPC_RecordChild1, // #3 = $src
/*6012*/          OPC_MoveChild, 1,
/*6014*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*6017*/          OPC_CheckType, MVT::i8,
/*6019*/          OPC_MoveParent,
/*6020*/          OPC_CheckType, MVT::i32,
/*6022*/          OPC_MoveParent,
/*6023*/          OPC_MoveChild, 2,
/*6025*/          OPC_CheckSame, 2,
/*6027*/          OPC_MoveParent,
/*6028*/          OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*6030*/          OPC_CheckPredicate, 5, // Predicate_store
/*6032*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #4 #5 #6 #7 #8
/*6035*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*6039*/          OPC_EmitConvertToTarget, 3,
/*6041*/          OPC_MorphNodeTo, TARGET_VAL(X86::ROR32mi), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 9, 
                  // Src: (st (rotr:i32 (ld:i32 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>, (imm:i8):$src), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 50
                  // Dst: (ROR32mi:i32 addr:iPTR:$dst, (imm:i8):$src)
/*6054*/        /*Scope*/ 86, /*->6141*/
/*6055*/          OPC_CheckPredicate, 3, // Predicate_load
/*6057*/          OPC_MoveParent,
/*6058*/          OPC_RecordChild1, // #3 = $src
/*6059*/          OPC_Scope, 42, /*->6103*/ // 2 children in Scope
/*6061*/            OPC_MoveChild, 1,
/*6063*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*6066*/            OPC_CheckType, MVT::i8,
/*6068*/            OPC_MoveParent,
/*6069*/            OPC_CheckType, MVT::i64,
/*6071*/            OPC_MoveParent,
/*6072*/            OPC_MoveChild, 2,
/*6074*/            OPC_CheckSame, 2,
/*6076*/            OPC_MoveParent,
/*6077*/            OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*6079*/            OPC_CheckPredicate, 5, // Predicate_store
/*6081*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #4 #5 #6 #7 #8
/*6084*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*6088*/            OPC_EmitConvertToTarget, 3,
/*6090*/            OPC_MorphNodeTo, TARGET_VAL(X86::ROR64mi), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 9, 
                    // Src: (st (rotr:i64 (ld:i64 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:i8):$src), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 50
                    // Dst: (ROR64mi:i32 addr:iPTR:$dst, (imm:i8):$src)
/*6103*/          /*Scope*/ 36, /*->6140*/
/*6104*/            OPC_CheckChild1Type, MVT::i8,
/*6106*/            OPC_CheckType, MVT::i8,
/*6108*/            OPC_MoveParent,
/*6109*/            OPC_MoveChild, 2,
/*6111*/            OPC_CheckSame, 2,
/*6113*/            OPC_MoveParent,
/*6114*/            OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*6116*/            OPC_CheckPredicate, 5, // Predicate_store
/*6118*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #4 #5 #6 #7 #8
/*6121*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*6125*/            OPC_EmitCopyToReg, 3, X86::CL,
/*6128*/            OPC_MorphNodeTo, TARGET_VAL(X86::ROR8mCL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                        1/*#VTs*/, MVT::i32, 5/*#Ops*/, 4, 5, 6, 7, 8, 
                    // Src: (st (rotr:i8 (ld:i8 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, CL:i8), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 47
                    // Dst: (ROR8mCL:i32 addr:iPTR:$dst)
/*6140*/          0, /*End of Scope*/
/*6141*/        /*Scope*/ 40, /*->6182*/
/*6142*/          OPC_CheckPredicate, 6, // Predicate_loadi16
/*6144*/          OPC_MoveParent,
/*6145*/          OPC_RecordChild1, // #3 = physreg input CL
/*6146*/          OPC_CheckChild1Type, MVT::i8,
/*6148*/          OPC_CheckType, MVT::i16,
/*6150*/          OPC_MoveParent,
/*6151*/          OPC_MoveChild, 2,
/*6153*/          OPC_CheckSame, 2,
/*6155*/          OPC_MoveParent,
/*6156*/          OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*6158*/          OPC_CheckPredicate, 5, // Predicate_store
/*6160*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #4 #5 #6 #7 #8
/*6163*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*6167*/          OPC_EmitCopyToReg, 3, X86::CL,
/*6170*/          OPC_MorphNodeTo, TARGET_VAL(X86::ROR16mCL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      1/*#VTs*/, MVT::i32, 5/*#Ops*/, 4, 5, 6, 7, 8, 
                  // Src: (st (rotr:i16 (ld:i16 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>, CL:i8), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 47
                  // Dst: (ROR16mCL:i32 addr:iPTR:$dst)
/*6182*/        /*Scope*/ 40, /*->6223*/
/*6183*/          OPC_CheckPredicate, 7, // Predicate_loadi32
/*6185*/          OPC_MoveParent,
/*6186*/          OPC_RecordChild1, // #3 = physreg input CL
/*6187*/          OPC_CheckChild1Type, MVT::i8,
/*6189*/          OPC_CheckType, MVT::i32,
/*6191*/          OPC_MoveParent,
/*6192*/          OPC_MoveChild, 2,
/*6194*/          OPC_CheckSame, 2,
/*6196*/          OPC_MoveParent,
/*6197*/          OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*6199*/          OPC_CheckPredicate, 5, // Predicate_store
/*6201*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #4 #5 #6 #7 #8
/*6204*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*6208*/          OPC_EmitCopyToReg, 3, X86::CL,
/*6211*/          OPC_MorphNodeTo, TARGET_VAL(X86::ROR32mCL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      1/*#VTs*/, MVT::i32, 5/*#Ops*/, 4, 5, 6, 7, 8, 
                  // Src: (st (rotr:i32 (ld:i32 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>, CL:i8), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 47
                  // Dst: (ROR32mCL:i32 addr:iPTR:$dst)
/*6223*/        /*Scope*/ 40, /*->6264*/
/*6224*/          OPC_CheckPredicate, 3, // Predicate_load
/*6226*/          OPC_MoveParent,
/*6227*/          OPC_RecordChild1, // #3 = physreg input CL
/*6228*/          OPC_CheckChild1Type, MVT::i8,
/*6230*/          OPC_CheckType, MVT::i64,
/*6232*/          OPC_MoveParent,
/*6233*/          OPC_MoveChild, 2,
/*6235*/          OPC_CheckSame, 2,
/*6237*/          OPC_MoveParent,
/*6238*/          OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*6240*/          OPC_CheckPredicate, 5, // Predicate_store
/*6242*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #4 #5 #6 #7 #8
/*6245*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*6249*/          OPC_EmitCopyToReg, 3, X86::CL,
/*6252*/          OPC_MorphNodeTo, TARGET_VAL(X86::ROR64mCL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      1/*#VTs*/, MVT::i32, 5/*#Ops*/, 4, 5, 6, 7, 8, 
                  // Src: (st (rotr:i64 (ld:i64 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, CL:i8), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 47
                  // Dst: (ROR64mCL:i32 addr:iPTR:$dst)
/*6264*/        0, /*End of Scope*/
              /*SwitchOpcode*/ 55|128,4/*567*/,  TARGET_VAL(ISD::AND),// ->6836
/*6269*/        OPC_Scope, 32|128,3/*416*/, /*->6688*/ // 2 children in Scope
/*6272*/          OPC_MoveChild, 0,
/*6274*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*6277*/          OPC_RecordMemRef,
/*6278*/          OPC_RecordNode, // #1 = 'ld' chained node
/*6279*/          OPC_CheckFoldableChainNode,
/*6280*/          OPC_RecordChild1, // #2 = $dst
/*6281*/          OPC_CheckPredicate, 2, // Predicate_unindexedload
/*6283*/          OPC_CheckPredicate, 3, // Predicate_load
/*6285*/          OPC_MoveParent,
/*6286*/          OPC_RecordChild1, // #3 = $src
/*6287*/          OPC_Scope, 9|128,2/*265*/, /*->6555*/ // 5 children in Scope
/*6290*/            OPC_MoveChild, 1,
/*6292*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*6295*/            OPC_Scope, 37, /*->6334*/ // 5 children in Scope
/*6297*/              OPC_CheckPredicate, 8, // Predicate_i16immSExt8
/*6299*/              OPC_MoveParent,
/*6300*/              OPC_CheckType, MVT::i16,
/*6302*/              OPC_MoveParent,
/*6303*/              OPC_MoveChild, 2,
/*6305*/              OPC_CheckSame, 2,
/*6307*/              OPC_MoveParent,
/*6308*/              OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*6310*/              OPC_CheckPredicate, 5, // Predicate_store
/*6312*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #4 #5 #6 #7 #8
/*6315*/              OPC_EmitMergeInputChains, 2, 0, 1, 
/*6319*/              OPC_EmitConvertToTarget, 3,
/*6321*/              OPC_MorphNodeTo, TARGET_VAL(X86::AND16mi8), 0|OPFL_Chain|OPFL_MemRefs,
                          1/*#VTs*/, MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 9, 
                      // Src: (st (and:i16 (ld:i16 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:i16)<<P:Predicate_i16immSExt8>>:$src), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 51
                      // Dst: (AND16mi8:i32 addr:iPTR:$dst, (imm:i16):$src)
/*6334*/            /*Scope*/ 37, /*->6372*/
/*6335*/              OPC_CheckPredicate, 9, // Predicate_i32immSExt8
/*6337*/              OPC_MoveParent,
/*6338*/              OPC_CheckType, MVT::i32,
/*6340*/              OPC_MoveParent,
/*6341*/              OPC_MoveChild, 2,
/*6343*/              OPC_CheckSame, 2,
/*6345*/              OPC_MoveParent,
/*6346*/              OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*6348*/              OPC_CheckPredicate, 5, // Predicate_store
/*6350*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #4 #5 #6 #7 #8
/*6353*/              OPC_EmitMergeInputChains, 2, 0, 1, 
/*6357*/              OPC_EmitConvertToTarget, 3,
/*6359*/              OPC_MorphNodeTo, TARGET_VAL(X86::AND32mi8), 0|OPFL_Chain|OPFL_MemRefs,
                          1/*#VTs*/, MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 9, 
                      // Src: (st (and:i32 (ld:i32 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:i32)<<P:Predicate_i32immSExt8>>:$src), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 51
                      // Dst: (AND32mi8:i32 addr:iPTR:$dst, (imm:i32):$src)
/*6372*/            /*Scope*/ 37, /*->6410*/
/*6373*/              OPC_CheckPredicate, 10, // Predicate_i64immSExt8
/*6375*/              OPC_MoveParent,
/*6376*/              OPC_CheckType, MVT::i64,
/*6378*/              OPC_MoveParent,
/*6379*/              OPC_MoveChild, 2,
/*6381*/              OPC_CheckSame, 2,
/*6383*/              OPC_MoveParent,
/*6384*/              OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*6386*/              OPC_CheckPredicate, 5, // Predicate_store
/*6388*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #4 #5 #6 #7 #8
/*6391*/              OPC_EmitMergeInputChains, 2, 0, 1, 
/*6395*/              OPC_EmitConvertToTarget, 3,
/*6397*/              OPC_MorphNodeTo, TARGET_VAL(X86::AND64mi8), 0|OPFL_Chain|OPFL_MemRefs,
                          1/*#VTs*/, MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 9, 
                      // Src: (st (and:i64 (ld:i64 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:i64)<<P:Predicate_i64immSExt8>>:$src), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 51
                      // Dst: (AND64mi8:i32 addr:iPTR:$dst, (imm:i64):$src)
/*6410*/            /*Scope*/ 37, /*->6448*/
/*6411*/              OPC_CheckPredicate, 11, // Predicate_i64immSExt32
/*6413*/              OPC_MoveParent,
/*6414*/              OPC_CheckType, MVT::i64,
/*6416*/              OPC_MoveParent,
/*6417*/              OPC_MoveChild, 2,
/*6419*/              OPC_CheckSame, 2,
/*6421*/              OPC_MoveParent,
/*6422*/              OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*6424*/              OPC_CheckPredicate, 5, // Predicate_store
/*6426*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #4 #5 #6 #7 #8
/*6429*/              OPC_EmitMergeInputChains, 2, 0, 1, 
/*6433*/              OPC_EmitConvertToTarget, 3,
/*6435*/              OPC_MorphNodeTo, TARGET_VAL(X86::AND64mi32), 0|OPFL_Chain|OPFL_MemRefs,
                          1/*#VTs*/, MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 9, 
                      // Src: (st (and:i64 (ld:i64 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:i64)<<P:Predicate_i64immSExt32>>:$src), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 51
                      // Dst: (AND64mi32:i32 addr:iPTR:$dst, (imm:i64):$src)
/*6448*/            /*Scope*/ 105, /*->6554*/
/*6449*/              OPC_MoveParent,
/*6450*/              OPC_SwitchType /*3 cases */, 32,  MVT::i8,// ->6485
/*6453*/                OPC_MoveParent,
/*6454*/                OPC_MoveChild, 2,
/*6456*/                OPC_CheckSame, 2,
/*6458*/                OPC_MoveParent,
/*6459*/                OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*6461*/                OPC_CheckPredicate, 5, // Predicate_store
/*6463*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #4 #5 #6 #7 #8
/*6466*/                OPC_EmitMergeInputChains, 2, 0, 1, 
/*6470*/                OPC_EmitConvertToTarget, 3,
/*6472*/                OPC_MorphNodeTo, TARGET_VAL(X86::AND8mi), 0|OPFL_Chain|OPFL_MemRefs,
                            1/*#VTs*/, MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 9, 
                        // Src: (st (and:i8 (ld:i8 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:i8):$src), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 50
                        // Dst: (AND8mi:i32 addr:iPTR:$dst, (imm:i8):$src)
                      /*SwitchType*/ 32,  MVT::i16,// ->6519
/*6487*/                OPC_MoveParent,
/*6488*/                OPC_MoveChild, 2,
/*6490*/                OPC_CheckSame, 2,
/*6492*/                OPC_MoveParent,
/*6493*/                OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*6495*/                OPC_CheckPredicate, 5, // Predicate_store
/*6497*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #4 #5 #6 #7 #8
/*6500*/                OPC_EmitMergeInputChains, 2, 0, 1, 
/*6504*/                OPC_EmitConvertToTarget, 3,
/*6506*/                OPC_MorphNodeTo, TARGET_VAL(X86::AND16mi), 0|OPFL_Chain|OPFL_MemRefs,
                            1/*#VTs*/, MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 9, 
                        // Src: (st (and:i16 (ld:i16 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:i16):$src), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 50
                        // Dst: (AND16mi:i32 addr:iPTR:$dst, (imm:i16):$src)
                      /*SwitchType*/ 32,  MVT::i32,// ->6553
/*6521*/                OPC_MoveParent,
/*6522*/                OPC_MoveChild, 2,
/*6524*/                OPC_CheckSame, 2,
/*6526*/                OPC_MoveParent,
/*6527*/                OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*6529*/                OPC_CheckPredicate, 5, // Predicate_store
/*6531*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #4 #5 #6 #7 #8
/*6534*/                OPC_EmitMergeInputChains, 2, 0, 1, 
/*6538*/                OPC_EmitConvertToTarget, 3,
/*6540*/                OPC_MorphNodeTo, TARGET_VAL(X86::AND32mi), 0|OPFL_Chain|OPFL_MemRefs,
                            1/*#VTs*/, MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 9, 
                        // Src: (st (and:i32 (ld:i32 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:i32):$src), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 50
                        // Dst: (AND32mi:i32 addr:iPTR:$dst, (imm:i32):$src)
                      0, // EndSwitchType
/*6554*/            0, /*End of Scope*/
/*6555*/          /*Scope*/ 32, /*->6588*/
/*6556*/            OPC_CheckType, MVT::i8,
/*6558*/            OPC_MoveParent,
/*6559*/            OPC_MoveChild, 2,
/*6561*/            OPC_CheckSame, 2,
/*6563*/            OPC_MoveParent,
/*6564*/            OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*6566*/            OPC_CheckPredicate, 5, // Predicate_store
/*6568*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #4 #5 #6 #7 #8
/*6571*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*6575*/            OPC_MorphNodeTo, TARGET_VAL(X86::AND8mr), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 3, 
                    // Src: (st (and:i8 (ld:i8 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, GR8:i8:$src), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 47
                    // Dst: (AND8mr:i32 addr:iPTR:$dst, GR8:i8:$src)
/*6588*/          /*Scope*/ 32, /*->6621*/
/*6589*/            OPC_CheckType, MVT::i16,
/*6591*/            OPC_MoveParent,
/*6592*/            OPC_MoveChild, 2,
/*6594*/            OPC_CheckSame, 2,
/*6596*/            OPC_MoveParent,
/*6597*/            OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*6599*/            OPC_CheckPredicate, 5, // Predicate_store
/*6601*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #4 #5 #6 #7 #8
/*6604*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*6608*/            OPC_MorphNodeTo, TARGET_VAL(X86::AND16mr), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 3, 
                    // Src: (st (and:i16 (ld:i16 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, GR16:i16:$src), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 47
                    // Dst: (AND16mr:i32 addr:iPTR:$dst, GR16:i16:$src)
/*6621*/          /*Scope*/ 32, /*->6654*/
/*6622*/            OPC_CheckType, MVT::i32,
/*6624*/            OPC_MoveParent,
/*6625*/            OPC_MoveChild, 2,
/*6627*/            OPC_CheckSame, 2,
/*6629*/            OPC_MoveParent,
/*6630*/            OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*6632*/            OPC_CheckPredicate, 5, // Predicate_store
/*6634*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #4 #5 #6 #7 #8
/*6637*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*6641*/            OPC_MorphNodeTo, TARGET_VAL(X86::AND32mr), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 3, 
                    // Src: (st (and:i32 (ld:i32 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, GR32:i32:$src), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 47
                    // Dst: (AND32mr:i32 addr:iPTR:$dst, GR32:i32:$src)
/*6654*/          /*Scope*/ 32, /*->6687*/
/*6655*/            OPC_CheckType, MVT::i64,
/*6657*/            OPC_MoveParent,
/*6658*/            OPC_MoveChild, 2,
/*6660*/            OPC_CheckSame, 2,
/*6662*/            OPC_MoveParent,
/*6663*/            OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*6665*/            OPC_CheckPredicate, 5, // Predicate_store
/*6667*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #4 #5 #6 #7 #8
/*6670*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*6674*/            OPC_MorphNodeTo, TARGET_VAL(X86::AND64mr), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 3, 
                    // Src: (st (and:i64 (ld:i64 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, GR64:i64:$src), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 47
                    // Dst: (AND64mr:i32 addr:iPTR:$dst, GR64:i64:$src)
/*6687*/          0, /*End of Scope*/
/*6688*/        /*Scope*/ 17|128,1/*145*/, /*->6835*/
/*6690*/          OPC_RecordChild0, // #1 = $src
/*6691*/          OPC_MoveChild, 1,
/*6693*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*6696*/          OPC_RecordMemRef,
/*6697*/          OPC_RecordNode, // #2 = 'ld' chained node
/*6698*/          OPC_CheckFoldableChainNode,
/*6699*/          OPC_RecordChild1, // #3 = $dst
/*6700*/          OPC_CheckPredicate, 2, // Predicate_unindexedload
/*6702*/          OPC_CheckPredicate, 3, // Predicate_load
/*6704*/          OPC_MoveParent,
/*6705*/          OPC_SwitchType /*4 cases */, 30,  MVT::i8,// ->6738
/*6708*/            OPC_MoveParent,
/*6709*/            OPC_MoveChild, 2,
/*6711*/            OPC_CheckSame, 3,
/*6713*/            OPC_MoveParent,
/*6714*/            OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*6716*/            OPC_CheckPredicate, 5, // Predicate_store
/*6718*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // SelectAddr:$dst #4 #5 #6 #7 #8
/*6721*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/*6725*/            OPC_MorphNodeTo, TARGET_VAL(X86::AND8mr), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 1, 
                    // Src: (st (and:i8 GR8:i8:$src, (ld:i8 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 47
                    // Dst: (AND8mr:i32 addr:iPTR:$dst, GR8:i8:$src)
                  /*SwitchType*/ 30,  MVT::i16,// ->6770
/*6740*/            OPC_MoveParent,
/*6741*/            OPC_MoveChild, 2,
/*6743*/            OPC_CheckSame, 3,
/*6745*/            OPC_MoveParent,
/*6746*/            OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*6748*/            OPC_CheckPredicate, 5, // Predicate_store
/*6750*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // SelectAddr:$dst #4 #5 #6 #7 #8
/*6753*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/*6757*/            OPC_MorphNodeTo, TARGET_VAL(X86::AND16mr), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 1, 
                    // Src: (st (and:i16 GR16:i16:$src, (ld:i16 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 47
                    // Dst: (AND16mr:i32 addr:iPTR:$dst, GR16:i16:$src)
                  /*SwitchType*/ 30,  MVT::i32,// ->6802
/*6772*/            OPC_MoveParent,
/*6773*/            OPC_MoveChild, 2,
/*6775*/            OPC_CheckSame, 3,
/*6777*/            OPC_MoveParent,
/*6778*/            OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*6780*/            OPC_CheckPredicate, 5, // Predicate_store
/*6782*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // SelectAddr:$dst #4 #5 #6 #7 #8
/*6785*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/*6789*/            OPC_MorphNodeTo, TARGET_VAL(X86::AND32mr), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 1, 
                    // Src: (st (and:i32 GR32:i32:$src, (ld:i32 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 47
                    // Dst: (AND32mr:i32 addr:iPTR:$dst, GR32:i32:$src)
                  /*SwitchType*/ 30,  MVT::i64,// ->6834
/*6804*/            OPC_MoveParent,
/*6805*/            OPC_MoveChild, 2,
/*6807*/            OPC_CheckSame, 3,
/*6809*/            OPC_MoveParent,
/*6810*/            OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*6812*/            OPC_CheckPredicate, 5, // Predicate_store
/*6814*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // SelectAddr:$dst #4 #5 #6 #7 #8
/*6817*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/*6821*/            OPC_MorphNodeTo, TARGET_VAL(X86::AND64mr), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 1, 
                    // Src: (st (and:i64 GR64:i64:$src, (ld:i64 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 47
                    // Dst: (AND64mr:i32 addr:iPTR:$dst, GR64:i64:$src)
                  0, // EndSwitchType
/*6835*/        0, /*End of Scope*/
              /*SwitchOpcode*/ 55|128,4/*567*/,  TARGET_VAL(ISD::OR),// ->7407
/*6840*/        OPC_Scope, 32|128,3/*416*/, /*->7259*/ // 2 children in Scope
/*6843*/          OPC_MoveChild, 0,
/*6845*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*6848*/          OPC_RecordMemRef,
/*6849*/          OPC_RecordNode, // #1 = 'ld' chained node
/*6850*/          OPC_CheckFoldableChainNode,
/*6851*/          OPC_RecordChild1, // #2 = $dst
/*6852*/          OPC_CheckPredicate, 2, // Predicate_unindexedload
/*6854*/          OPC_CheckPredicate, 3, // Predicate_load
/*6856*/          OPC_MoveParent,
/*6857*/          OPC_RecordChild1, // #3 = $src
/*6858*/          OPC_Scope, 9|128,2/*265*/, /*->7126*/ // 5 children in Scope
/*6861*/            OPC_MoveChild, 1,
/*6863*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*6866*/            OPC_Scope, 37, /*->6905*/ // 5 children in Scope
/*6868*/              OPC_CheckPredicate, 8, // Predicate_i16immSExt8
/*6870*/              OPC_MoveParent,
/*6871*/              OPC_CheckType, MVT::i16,
/*6873*/              OPC_MoveParent,
/*6874*/              OPC_MoveChild, 2,
/*6876*/              OPC_CheckSame, 2,
/*6878*/              OPC_MoveParent,
/*6879*/              OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*6881*/              OPC_CheckPredicate, 5, // Predicate_store
/*6883*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #4 #5 #6 #7 #8
/*6886*/              OPC_EmitMergeInputChains, 2, 0, 1, 
/*6890*/              OPC_EmitConvertToTarget, 3,
/*6892*/              OPC_MorphNodeTo, TARGET_VAL(X86::OR16mi8), 0|OPFL_Chain|OPFL_MemRefs,
                          1/*#VTs*/, MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 9, 
                      // Src: (st (or:i16 (ld:i16 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:i16)<<P:Predicate_i16immSExt8>>:$src), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 51
                      // Dst: (OR16mi8:i32 addr:iPTR:$dst, (imm:i16):$src)
/*6905*/            /*Scope*/ 37, /*->6943*/
/*6906*/              OPC_CheckPredicate, 9, // Predicate_i32immSExt8
/*6908*/              OPC_MoveParent,
/*6909*/              OPC_CheckType, MVT::i32,
/*6911*/              OPC_MoveParent,
/*6912*/              OPC_MoveChild, 2,
/*6914*/              OPC_CheckSame, 2,
/*6916*/              OPC_MoveParent,
/*6917*/              OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*6919*/              OPC_CheckPredicate, 5, // Predicate_store
/*6921*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #4 #5 #6 #7 #8
/*6924*/              OPC_EmitMergeInputChains, 2, 0, 1, 
/*6928*/              OPC_EmitConvertToTarget, 3,
/*6930*/              OPC_MorphNodeTo, TARGET_VAL(X86::OR32mi8), 0|OPFL_Chain|OPFL_MemRefs,
                          1/*#VTs*/, MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 9, 
                      // Src: (st (or:i32 (ld:i32 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:i32)<<P:Predicate_i32immSExt8>>:$src), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 51
                      // Dst: (OR32mi8:i32 addr:iPTR:$dst, (imm:i32):$src)
/*6943*/            /*Scope*/ 37, /*->6981*/
/*6944*/              OPC_CheckPredicate, 10, // Predicate_i64immSExt8
/*6946*/              OPC_MoveParent,
/*6947*/              OPC_CheckType, MVT::i64,
/*6949*/              OPC_MoveParent,
/*6950*/              OPC_MoveChild, 2,
/*6952*/              OPC_CheckSame, 2,
/*6954*/              OPC_MoveParent,
/*6955*/              OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*6957*/              OPC_CheckPredicate, 5, // Predicate_store
/*6959*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #4 #5 #6 #7 #8
/*6962*/              OPC_EmitMergeInputChains, 2, 0, 1, 
/*6966*/              OPC_EmitConvertToTarget, 3,
/*6968*/              OPC_MorphNodeTo, TARGET_VAL(X86::OR64mi8), 0|OPFL_Chain|OPFL_MemRefs,
                          1/*#VTs*/, MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 9, 
                      // Src: (st (or:i64 (ld:i64 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:i64)<<P:Predicate_i64immSExt8>>:$src), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 51
                      // Dst: (OR64mi8:i32 addr:iPTR:$dst, (imm:i64):$src)
/*6981*/            /*Scope*/ 37, /*->7019*/
/*6982*/              OPC_CheckPredicate, 11, // Predicate_i64immSExt32
/*6984*/              OPC_MoveParent,
/*6985*/              OPC_CheckType, MVT::i64,
/*6987*/              OPC_MoveParent,
/*6988*/              OPC_MoveChild, 2,
/*6990*/              OPC_CheckSame, 2,
/*6992*/              OPC_MoveParent,
/*6993*/              OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*6995*/              OPC_CheckPredicate, 5, // Predicate_store
/*6997*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #4 #5 #6 #7 #8
/*7000*/              OPC_EmitMergeInputChains, 2, 0, 1, 
/*7004*/              OPC_EmitConvertToTarget, 3,
/*7006*/              OPC_MorphNodeTo, TARGET_VAL(X86::OR64mi32), 0|OPFL_Chain|OPFL_MemRefs,
                          1/*#VTs*/, MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 9, 
                      // Src: (st (or:i64 (ld:i64 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:i64)<<P:Predicate_i64immSExt32>>:$src), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 51
                      // Dst: (OR64mi32:i32 addr:iPTR:$dst, (imm:i64):$src)
/*7019*/            /*Scope*/ 105, /*->7125*/
/*7020*/              OPC_MoveParent,
/*7021*/              OPC_SwitchType /*3 cases */, 32,  MVT::i8,// ->7056
/*7024*/                OPC_MoveParent,
/*7025*/                OPC_MoveChild, 2,
/*7027*/                OPC_CheckSame, 2,
/*7029*/                OPC_MoveParent,
/*7030*/                OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*7032*/                OPC_CheckPredicate, 5, // Predicate_store
/*7034*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #4 #5 #6 #7 #8
/*7037*/                OPC_EmitMergeInputChains, 2, 0, 1, 
/*7041*/                OPC_EmitConvertToTarget, 3,
/*7043*/                OPC_MorphNodeTo, TARGET_VAL(X86::OR8mi), 0|OPFL_Chain|OPFL_MemRefs,
                            1/*#VTs*/, MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 9, 
                        // Src: (st (or:i8 (ld:i8 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:i8):$src), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 50
                        // Dst: (OR8mi:i32 addr:iPTR:$dst, (imm:i8):$src)
                      /*SwitchType*/ 32,  MVT::i16,// ->7090
/*7058*/                OPC_MoveParent,
/*7059*/                OPC_MoveChild, 2,
/*7061*/                OPC_CheckSame, 2,
/*7063*/                OPC_MoveParent,
/*7064*/                OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*7066*/                OPC_CheckPredicate, 5, // Predicate_store
/*7068*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #4 #5 #6 #7 #8
/*7071*/                OPC_EmitMergeInputChains, 2, 0, 1, 
/*7075*/                OPC_EmitConvertToTarget, 3,
/*7077*/                OPC_MorphNodeTo, TARGET_VAL(X86::OR16mi), 0|OPFL_Chain|OPFL_MemRefs,
                            1/*#VTs*/, MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 9, 
                        // Src: (st (or:i16 (ld:i16 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:i16):$src), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 50
                        // Dst: (OR16mi:i32 addr:iPTR:$dst, (imm:i16):$src)
                      /*SwitchType*/ 32,  MVT::i32,// ->7124
/*7092*/                OPC_MoveParent,
/*7093*/                OPC_MoveChild, 2,
/*7095*/                OPC_CheckSame, 2,
/*7097*/                OPC_MoveParent,
/*7098*/                OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*7100*/                OPC_CheckPredicate, 5, // Predicate_store
/*7102*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #4 #5 #6 #7 #8
/*7105*/                OPC_EmitMergeInputChains, 2, 0, 1, 
/*7109*/                OPC_EmitConvertToTarget, 3,
/*7111*/                OPC_MorphNodeTo, TARGET_VAL(X86::OR32mi), 0|OPFL_Chain|OPFL_MemRefs,
                            1/*#VTs*/, MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 9, 
                        // Src: (st (or:i32 (ld:i32 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:i32):$src), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 50
                        // Dst: (OR32mi:i32 addr:iPTR:$dst, (imm:i32):$src)
                      0, // EndSwitchType
/*7125*/            0, /*End of Scope*/
/*7126*/          /*Scope*/ 32, /*->7159*/
/*7127*/            OPC_CheckType, MVT::i8,
/*7129*/            OPC_MoveParent,
/*7130*/            OPC_MoveChild, 2,
/*7132*/            OPC_CheckSame, 2,
/*7134*/            OPC_MoveParent,
/*7135*/            OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*7137*/            OPC_CheckPredicate, 5, // Predicate_store
/*7139*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #4 #5 #6 #7 #8
/*7142*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*7146*/            OPC_MorphNodeTo, TARGET_VAL(X86::OR8mr), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 3, 
                    // Src: (st (or:i8 (ld:i8 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, GR8:i8:$src), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 47
                    // Dst: (OR8mr:i32 addr:iPTR:$dst, GR8:i8:$src)
/*7159*/          /*Scope*/ 32, /*->7192*/
/*7160*/            OPC_CheckType, MVT::i16,
/*7162*/            OPC_MoveParent,
/*7163*/            OPC_MoveChild, 2,
/*7165*/            OPC_CheckSame, 2,
/*7167*/            OPC_MoveParent,
/*7168*/            OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*7170*/            OPC_CheckPredicate, 5, // Predicate_store
/*7172*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #4 #5 #6 #7 #8
/*7175*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*7179*/            OPC_MorphNodeTo, TARGET_VAL(X86::OR16mr), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 3, 
                    // Src: (st (or:i16 (ld:i16 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, GR16:i16:$src), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 47
                    // Dst: (OR16mr:i32 addr:iPTR:$dst, GR16:i16:$src)
/*7192*/          /*Scope*/ 32, /*->7225*/
/*7193*/            OPC_CheckType, MVT::i32,
/*7195*/            OPC_MoveParent,
/*7196*/            OPC_MoveChild, 2,
/*7198*/            OPC_CheckSame, 2,
/*7200*/            OPC_MoveParent,
/*7201*/            OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*7203*/            OPC_CheckPredicate, 5, // Predicate_store
/*7205*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #4 #5 #6 #7 #8
/*7208*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*7212*/            OPC_MorphNodeTo, TARGET_VAL(X86::OR32mr), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 3, 
                    // Src: (st (or:i32 (ld:i32 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, GR32:i32:$src), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 47
                    // Dst: (OR32mr:i32 addr:iPTR:$dst, GR32:i32:$src)
/*7225*/          /*Scope*/ 32, /*->7258*/
/*7226*/            OPC_CheckType, MVT::i64,
/*7228*/            OPC_MoveParent,
/*7229*/            OPC_MoveChild, 2,
/*7231*/            OPC_CheckSame, 2,
/*7233*/            OPC_MoveParent,
/*7234*/            OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*7236*/            OPC_CheckPredicate, 5, // Predicate_store
/*7238*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #4 #5 #6 #7 #8
/*7241*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*7245*/            OPC_MorphNodeTo, TARGET_VAL(X86::OR64mr), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 3, 
                    // Src: (st (or:i64 (ld:i64 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, GR64:i64:$src), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 47
                    // Dst: (OR64mr:i32 addr:iPTR:$dst, GR64:i64:$src)
/*7258*/          0, /*End of Scope*/
/*7259*/        /*Scope*/ 17|128,1/*145*/, /*->7406*/
/*7261*/          OPC_RecordChild0, // #1 = $src
/*7262*/          OPC_MoveChild, 1,
/*7264*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*7267*/          OPC_RecordMemRef,
/*7268*/          OPC_RecordNode, // #2 = 'ld' chained node
/*7269*/          OPC_CheckFoldableChainNode,
/*7270*/          OPC_RecordChild1, // #3 = $dst
/*7271*/          OPC_CheckPredicate, 2, // Predicate_unindexedload
/*7273*/          OPC_CheckPredicate, 3, // Predicate_load
/*7275*/          OPC_MoveParent,
/*7276*/          OPC_SwitchType /*4 cases */, 30,  MVT::i8,// ->7309
/*7279*/            OPC_MoveParent,
/*7280*/            OPC_MoveChild, 2,
/*7282*/            OPC_CheckSame, 3,
/*7284*/            OPC_MoveParent,
/*7285*/            OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*7287*/            OPC_CheckPredicate, 5, // Predicate_store
/*7289*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // SelectAddr:$dst #4 #5 #6 #7 #8
/*7292*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/*7296*/            OPC_MorphNodeTo, TARGET_VAL(X86::OR8mr), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 1, 
                    // Src: (st (or:i8 GR8:i8:$src, (ld:i8 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 47
                    // Dst: (OR8mr:i32 addr:iPTR:$dst, GR8:i8:$src)
                  /*SwitchType*/ 30,  MVT::i16,// ->7341
/*7311*/            OPC_MoveParent,
/*7312*/            OPC_MoveChild, 2,
/*7314*/            OPC_CheckSame, 3,
/*7316*/            OPC_MoveParent,
/*7317*/            OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*7319*/            OPC_CheckPredicate, 5, // Predicate_store
/*7321*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // SelectAddr:$dst #4 #5 #6 #7 #8
/*7324*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/*7328*/            OPC_MorphNodeTo, TARGET_VAL(X86::OR16mr), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 1, 
                    // Src: (st (or:i16 GR16:i16:$src, (ld:i16 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 47
                    // Dst: (OR16mr:i32 addr:iPTR:$dst, GR16:i16:$src)
                  /*SwitchType*/ 30,  MVT::i32,// ->7373
/*7343*/            OPC_MoveParent,
/*7344*/            OPC_MoveChild, 2,
/*7346*/            OPC_CheckSame, 3,
/*7348*/            OPC_MoveParent,
/*7349*/            OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*7351*/            OPC_CheckPredicate, 5, // Predicate_store
/*7353*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // SelectAddr:$dst #4 #5 #6 #7 #8
/*7356*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/*7360*/            OPC_MorphNodeTo, TARGET_VAL(X86::OR32mr), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 1, 
                    // Src: (st (or:i32 GR32:i32:$src, (ld:i32 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 47
                    // Dst: (OR32mr:i32 addr:iPTR:$dst, GR32:i32:$src)
                  /*SwitchType*/ 30,  MVT::i64,// ->7405
/*7375*/            OPC_MoveParent,
/*7376*/            OPC_MoveChild, 2,
/*7378*/            OPC_CheckSame, 3,
/*7380*/            OPC_MoveParent,
/*7381*/            OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*7383*/            OPC_CheckPredicate, 5, // Predicate_store
/*7385*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // SelectAddr:$dst #4 #5 #6 #7 #8
/*7388*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/*7392*/            OPC_MorphNodeTo, TARGET_VAL(X86::OR64mr), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 1, 
                    // Src: (st (or:i64 GR64:i64:$src, (ld:i64 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 47
                    // Dst: (OR64mr:i32 addr:iPTR:$dst, GR64:i64:$src)
                  0, // EndSwitchType
/*7406*/        0, /*End of Scope*/
              /*SwitchOpcode*/ 71|128,3/*455*/,  TARGET_VAL(X86ISD::ADC),// ->7866
/*7411*/        OPC_MoveChild, 0,
/*7413*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*7416*/        OPC_RecordMemRef,
/*7417*/        OPC_RecordNode, // #1 = 'ld' chained node
/*7418*/        OPC_CheckFoldableChainNode,
/*7419*/        OPC_RecordChild1, // #2 = $dst
/*7420*/        OPC_CheckPredicate, 2, // Predicate_unindexedload
/*7422*/        OPC_CheckPredicate, 3, // Predicate_load
/*7424*/        OPC_MoveParent,
/*7425*/        OPC_RecordChild1, // #3 = $src
/*7426*/        OPC_Scope, 35|128,2/*291*/, /*->7720*/ // 2 children in Scope
/*7429*/          OPC_MoveChild, 1,
/*7431*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*7434*/          OPC_Scope, 41, /*->7477*/ // 5 children in Scope
/*7436*/            OPC_CheckPredicate, 8, // Predicate_i16immSExt8
/*7438*/            OPC_MoveParent,
/*7439*/            OPC_RecordChild2, // #4 = physreg input EFLAGS
/*7440*/            OPC_CheckType, MVT::i16,
/*7442*/            OPC_MoveParent,
/*7443*/            OPC_MoveChild, 2,
/*7445*/            OPC_CheckSame, 2,
/*7447*/            OPC_MoveParent,
/*7448*/            OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*7450*/            OPC_CheckPredicate, 5, // Predicate_store
/*7452*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #5 #6 #7 #8 #9
/*7455*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*7459*/            OPC_EmitConvertToTarget, 3,
/*7461*/            OPC_EmitCopyToReg, 4, X86::EFLAGS,
/*7464*/            OPC_MorphNodeTo, TARGET_VAL(X86::ADC16mi8), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                        1/*#VTs*/, MVT::i32, 6/*#Ops*/, 5, 6, 7, 8, 9, 10, 
                    // Src: (st (X86adc_flag:i16:i32 (ld:i16 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:i16)<<P:Predicate_i16immSExt8>>:$src, EFLAGS:i32), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 51
                    // Dst: (ADC16mi8:i32 addr:iPTR:$dst, (imm:i16):$src)
/*7477*/          /*Scope*/ 41, /*->7519*/
/*7478*/            OPC_CheckPredicate, 9, // Predicate_i32immSExt8
/*7480*/            OPC_MoveParent,
/*7481*/            OPC_RecordChild2, // #4 = physreg input EFLAGS
/*7482*/            OPC_CheckType, MVT::i32,
/*7484*/            OPC_MoveParent,
/*7485*/            OPC_MoveChild, 2,
/*7487*/            OPC_CheckSame, 2,
/*7489*/            OPC_MoveParent,
/*7490*/            OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*7492*/            OPC_CheckPredicate, 5, // Predicate_store
/*7494*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #5 #6 #7 #8 #9
/*7497*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*7501*/            OPC_EmitConvertToTarget, 3,
/*7503*/            OPC_EmitCopyToReg, 4, X86::EFLAGS,
/*7506*/            OPC_MorphNodeTo, TARGET_VAL(X86::ADC32mi8), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                        1/*#VTs*/, MVT::i32, 6/*#Ops*/, 5, 6, 7, 8, 9, 10, 
                    // Src: (st (X86adc_flag:i32:i32 (ld:i32 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:i32)<<P:Predicate_i32immSExt8>>:$src, EFLAGS:i32), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 51
                    // Dst: (ADC32mi8:i32 addr:iPTR:$dst, (imm:i32):$src)
/*7519*/          /*Scope*/ 41, /*->7561*/
/*7520*/            OPC_CheckPredicate, 10, // Predicate_i64immSExt8
/*7522*/            OPC_MoveParent,
/*7523*/            OPC_RecordChild2, // #4 = physreg input EFLAGS
/*7524*/            OPC_CheckType, MVT::i64,
/*7526*/            OPC_MoveParent,
/*7527*/            OPC_MoveChild, 2,
/*7529*/            OPC_CheckSame, 2,
/*7531*/            OPC_MoveParent,
/*7532*/            OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*7534*/            OPC_CheckPredicate, 5, // Predicate_store
/*7536*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #5 #6 #7 #8 #9
/*7539*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*7543*/            OPC_EmitConvertToTarget, 3,
/*7545*/            OPC_EmitCopyToReg, 4, X86::EFLAGS,
/*7548*/            OPC_MorphNodeTo, TARGET_VAL(X86::ADC64mi8), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                        1/*#VTs*/, MVT::i32, 6/*#Ops*/, 5, 6, 7, 8, 9, 10, 
                    // Src: (st (X86adc_flag:i64:i32 (ld:i64 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:i64)<<P:Predicate_i64immSExt8>>:$src, EFLAGS:i32), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 51
                    // Dst: (ADC64mi8:i32 addr:iPTR:$dst, (imm:i64):$src)
/*7561*/          /*Scope*/ 41, /*->7603*/
/*7562*/            OPC_CheckPredicate, 11, // Predicate_i64immSExt32
/*7564*/            OPC_MoveParent,
/*7565*/            OPC_RecordChild2, // #4 = physreg input EFLAGS
/*7566*/            OPC_CheckType, MVT::i64,
/*7568*/            OPC_MoveParent,
/*7569*/            OPC_MoveChild, 2,
/*7571*/            OPC_CheckSame, 2,
/*7573*/            OPC_MoveParent,
/*7574*/            OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*7576*/            OPC_CheckPredicate, 5, // Predicate_store
/*7578*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #5 #6 #7 #8 #9
/*7581*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*7585*/            OPC_EmitConvertToTarget, 3,
/*7587*/            OPC_EmitCopyToReg, 4, X86::EFLAGS,
/*7590*/            OPC_MorphNodeTo, TARGET_VAL(X86::ADC64mi32), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                        1/*#VTs*/, MVT::i32, 6/*#Ops*/, 5, 6, 7, 8, 9, 10, 
                    // Src: (st (X86adc_flag:i64:i32 (ld:i64 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:i64)<<P:Predicate_i64immSExt32>>:$src, EFLAGS:i32), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 51
                    // Dst: (ADC64mi32:i32 addr:iPTR:$dst, (imm:i64):$src)
/*7603*/          /*Scope*/ 115, /*->7719*/
/*7604*/            OPC_MoveParent,
/*7605*/            OPC_RecordChild2, // #4 = physreg input EFLAGS
/*7606*/            OPC_SwitchType /*3 cases */, 35,  MVT::i8,// ->7644
/*7609*/              OPC_MoveParent,
/*7610*/              OPC_MoveChild, 2,
/*7612*/              OPC_CheckSame, 2,
/*7614*/              OPC_MoveParent,
/*7615*/              OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*7617*/              OPC_CheckPredicate, 5, // Predicate_store
/*7619*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #5 #6 #7 #8 #9
/*7622*/              OPC_EmitMergeInputChains, 2, 0, 1, 
/*7626*/              OPC_EmitConvertToTarget, 3,
/*7628*/              OPC_EmitCopyToReg, 4, X86::EFLAGS,
/*7631*/              OPC_MorphNodeTo, TARGET_VAL(X86::ADC8mi), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                          1/*#VTs*/, MVT::i32, 6/*#Ops*/, 5, 6, 7, 8, 9, 10, 
                      // Src: (st (X86adc_flag:i8:i32 (ld:i8 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:i8):$src, EFLAGS:i32), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 50
                      // Dst: (ADC8mi:i32 addr:iPTR:$dst, (imm:i8):$src)
                    /*SwitchType*/ 35,  MVT::i16,// ->7681
/*7646*/              OPC_MoveParent,
/*7647*/              OPC_MoveChild, 2,
/*7649*/              OPC_CheckSame, 2,
/*7651*/              OPC_MoveParent,
/*7652*/              OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*7654*/              OPC_CheckPredicate, 5, // Predicate_store
/*7656*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #5 #6 #7 #8 #9
/*7659*/              OPC_EmitMergeInputChains, 2, 0, 1, 
/*7663*/              OPC_EmitConvertToTarget, 3,
/*7665*/              OPC_EmitCopyToReg, 4, X86::EFLAGS,
/*7668*/              OPC_MorphNodeTo, TARGET_VAL(X86::ADC16mi), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                          1/*#VTs*/, MVT::i32, 6/*#Ops*/, 5, 6, 7, 8, 9, 10, 
                      // Src: (st (X86adc_flag:i16:i32 (ld:i16 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:i16):$src, EFLAGS:i32), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 50
                      // Dst: (ADC16mi:i32 addr:iPTR:$dst, (imm:i16):$src)
                    /*SwitchType*/ 35,  MVT::i32,// ->7718
/*7683*/              OPC_MoveParent,
/*7684*/              OPC_MoveChild, 2,
/*7686*/              OPC_CheckSame, 2,
/*7688*/              OPC_MoveParent,
/*7689*/              OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*7691*/              OPC_CheckPredicate, 5, // Predicate_store
/*7693*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #5 #6 #7 #8 #9
/*7696*/              OPC_EmitMergeInputChains, 2, 0, 1, 
/*7700*/              OPC_EmitConvertToTarget, 3,
/*7702*/              OPC_EmitCopyToReg, 4, X86::EFLAGS,
/*7705*/              OPC_MorphNodeTo, TARGET_VAL(X86::ADC32mi), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                          1/*#VTs*/, MVT::i32, 6/*#Ops*/, 5, 6, 7, 8, 9, 10, 
                      // Src: (st (X86adc_flag:i32:i32 (ld:i32 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:i32):$src, EFLAGS:i32), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 50
                      // Dst: (ADC32mi:i32 addr:iPTR:$dst, (imm:i32):$src)
                    0, // EndSwitchType
/*7719*/          0, /*End of Scope*/
/*7720*/        /*Scope*/ 15|128,1/*143*/, /*->7865*/
/*7722*/          OPC_RecordChild2, // #4 = physreg input EFLAGS
/*7723*/          OPC_SwitchType /*4 cases */, 33,  MVT::i8,// ->7759
/*7726*/            OPC_MoveParent,
/*7727*/            OPC_MoveChild, 2,
/*7729*/            OPC_CheckSame, 2,
/*7731*/            OPC_MoveParent,
/*7732*/            OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*7734*/            OPC_CheckPredicate, 5, // Predicate_store
/*7736*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #5 #6 #7 #8 #9
/*7739*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*7743*/            OPC_EmitCopyToReg, 4, X86::EFLAGS,
/*7746*/            OPC_MorphNodeTo, TARGET_VAL(X86::ADC8mr), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                        1/*#VTs*/, MVT::i32, 6/*#Ops*/, 5, 6, 7, 8, 9, 3, 
                    // Src: (st (X86adc_flag:i8:i32 (ld:i8 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, GR8:i8:$src, EFLAGS:i32), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 47
                    // Dst: (ADC8mr:i32 addr:iPTR:$dst, GR8:i8:$src)
                  /*SwitchType*/ 33,  MVT::i16,// ->7794
/*7761*/            OPC_MoveParent,
/*7762*/            OPC_MoveChild, 2,
/*7764*/            OPC_CheckSame, 2,
/*7766*/            OPC_MoveParent,
/*7767*/            OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*7769*/            OPC_CheckPredicate, 5, // Predicate_store
/*7771*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #5 #6 #7 #8 #9
/*7774*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*7778*/            OPC_EmitCopyToReg, 4, X86::EFLAGS,
/*7781*/            OPC_MorphNodeTo, TARGET_VAL(X86::ADC16mr), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                        1/*#VTs*/, MVT::i32, 6/*#Ops*/, 5, 6, 7, 8, 9, 3, 
                    // Src: (st (X86adc_flag:i16:i32 (ld:i16 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, GR16:i16:$src, EFLAGS:i32), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 47
                    // Dst: (ADC16mr:i32 addr:iPTR:$dst, GR16:i16:$src)
                  /*SwitchType*/ 33,  MVT::i32,// ->7829
/*7796*/            OPC_MoveParent,
/*7797*/            OPC_MoveChild, 2,
/*7799*/            OPC_CheckSame, 2,
/*7801*/            OPC_MoveParent,
/*7802*/            OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*7804*/            OPC_CheckPredicate, 5, // Predicate_store
/*7806*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #5 #6 #7 #8 #9
/*7809*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*7813*/            OPC_EmitCopyToReg, 4, X86::EFLAGS,
/*7816*/            OPC_MorphNodeTo, TARGET_VAL(X86::ADC32mr), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                        1/*#VTs*/, MVT::i32, 6/*#Ops*/, 5, 6, 7, 8, 9, 3, 
                    // Src: (st (X86adc_flag:i32:i32 (ld:i32 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, GR32:i32:$src, EFLAGS:i32), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 47
                    // Dst: (ADC32mr:i32 addr:iPTR:$dst, GR32:i32:$src)
                  /*SwitchType*/ 33,  MVT::i64,// ->7864
/*7831*/            OPC_MoveParent,
/*7832*/            OPC_MoveChild, 2,
/*7834*/            OPC_CheckSame, 2,
/*7836*/            OPC_MoveParent,
/*7837*/            OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*7839*/            OPC_CheckPredicate, 5, // Predicate_store
/*7841*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #5 #6 #7 #8 #9
/*7844*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*7848*/            OPC_EmitCopyToReg, 4, X86::EFLAGS,
/*7851*/            OPC_MorphNodeTo, TARGET_VAL(X86::ADC64mr), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                        1/*#VTs*/, MVT::i32, 6/*#Ops*/, 5, 6, 7, 8, 9, 3, 
                    // Src: (st (X86adc_flag:i64:i32 (ld:i64 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, GR64:i64:$src, EFLAGS:i32), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 47
                    // Dst: (ADC64mr:i32 addr:iPTR:$dst, GR64:i64:$src)
                  0, // EndSwitchType
/*7865*/        0, /*End of Scope*/
              /*SwitchOpcode*/ 71|128,3/*455*/,  TARGET_VAL(X86ISD::SBB),// ->8325
/*7870*/        OPC_MoveChild, 0,
/*7872*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*7875*/        OPC_RecordMemRef,
/*7876*/        OPC_RecordNode, // #1 = 'ld' chained node
/*7877*/        OPC_CheckFoldableChainNode,
/*7878*/        OPC_RecordChild1, // #2 = $dst
/*7879*/        OPC_CheckPredicate, 2, // Predicate_unindexedload
/*7881*/        OPC_CheckPredicate, 3, // Predicate_load
/*7883*/        OPC_MoveParent,
/*7884*/        OPC_RecordChild1, // #3 = $src
/*7885*/        OPC_Scope, 35|128,2/*291*/, /*->8179*/ // 2 children in Scope
/*7888*/          OPC_MoveChild, 1,
/*7890*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*7893*/          OPC_Scope, 41, /*->7936*/ // 5 children in Scope
/*7895*/            OPC_CheckPredicate, 8, // Predicate_i16immSExt8
/*7897*/            OPC_MoveParent,
/*7898*/            OPC_RecordChild2, // #4 = physreg input EFLAGS
/*7899*/            OPC_CheckType, MVT::i16,
/*7901*/            OPC_MoveParent,
/*7902*/            OPC_MoveChild, 2,
/*7904*/            OPC_CheckSame, 2,
/*7906*/            OPC_MoveParent,
/*7907*/            OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*7909*/            OPC_CheckPredicate, 5, // Predicate_store
/*7911*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #5 #6 #7 #8 #9
/*7914*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*7918*/            OPC_EmitConvertToTarget, 3,
/*7920*/            OPC_EmitCopyToReg, 4, X86::EFLAGS,
/*7923*/            OPC_MorphNodeTo, TARGET_VAL(X86::SBB16mi8), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                        1/*#VTs*/, MVT::i32, 6/*#Ops*/, 5, 6, 7, 8, 9, 10, 
                    // Src: (st (X86sbb_flag:i16:i32 (ld:i16 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:i16)<<P:Predicate_i16immSExt8>>:$src, EFLAGS:i32), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 51
                    // Dst: (SBB16mi8:i32 addr:iPTR:$dst, (imm:i16):$src)
/*7936*/          /*Scope*/ 41, /*->7978*/
/*7937*/            OPC_CheckPredicate, 9, // Predicate_i32immSExt8
/*7939*/            OPC_MoveParent,
/*7940*/            OPC_RecordChild2, // #4 = physreg input EFLAGS
/*7941*/            OPC_CheckType, MVT::i32,
/*7943*/            OPC_MoveParent,
/*7944*/            OPC_MoveChild, 2,
/*7946*/            OPC_CheckSame, 2,
/*7948*/            OPC_MoveParent,
/*7949*/            OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*7951*/            OPC_CheckPredicate, 5, // Predicate_store
/*7953*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #5 #6 #7 #8 #9
/*7956*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*7960*/            OPC_EmitConvertToTarget, 3,
/*7962*/            OPC_EmitCopyToReg, 4, X86::EFLAGS,
/*7965*/            OPC_MorphNodeTo, TARGET_VAL(X86::SBB32mi8), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                        1/*#VTs*/, MVT::i32, 6/*#Ops*/, 5, 6, 7, 8, 9, 10, 
                    // Src: (st (X86sbb_flag:i32:i32 (ld:i32 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:i32)<<P:Predicate_i32immSExt8>>:$src, EFLAGS:i32), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 51
                    // Dst: (SBB32mi8:i32 addr:iPTR:$dst, (imm:i32):$src)
/*7978*/          /*Scope*/ 41, /*->8020*/
/*7979*/            OPC_CheckPredicate, 10, // Predicate_i64immSExt8
/*7981*/            OPC_MoveParent,
/*7982*/            OPC_RecordChild2, // #4 = physreg input EFLAGS
/*7983*/            OPC_CheckType, MVT::i64,
/*7985*/            OPC_MoveParent,
/*7986*/            OPC_MoveChild, 2,
/*7988*/            OPC_CheckSame, 2,
/*7990*/            OPC_MoveParent,
/*7991*/            OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*7993*/            OPC_CheckPredicate, 5, // Predicate_store
/*7995*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #5 #6 #7 #8 #9
/*7998*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*8002*/            OPC_EmitConvertToTarget, 3,
/*8004*/            OPC_EmitCopyToReg, 4, X86::EFLAGS,
/*8007*/            OPC_MorphNodeTo, TARGET_VAL(X86::SBB64mi8), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                        1/*#VTs*/, MVT::i32, 6/*#Ops*/, 5, 6, 7, 8, 9, 10, 
                    // Src: (st (X86sbb_flag:i64:i32 (ld:i64 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:i64)<<P:Predicate_i64immSExt8>>:$src, EFLAGS:i32), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 51
                    // Dst: (SBB64mi8:i32 addr:iPTR:$dst, (imm:i64):$src)
/*8020*/          /*Scope*/ 41, /*->8062*/
/*8021*/            OPC_CheckPredicate, 11, // Predicate_i64immSExt32
/*8023*/            OPC_MoveParent,
/*8024*/            OPC_RecordChild2, // #4 = physreg input EFLAGS
/*8025*/            OPC_CheckType, MVT::i64,
/*8027*/            OPC_MoveParent,
/*8028*/            OPC_MoveChild, 2,
/*8030*/            OPC_CheckSame, 2,
/*8032*/            OPC_MoveParent,
/*8033*/            OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*8035*/            OPC_CheckPredicate, 5, // Predicate_store
/*8037*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #5 #6 #7 #8 #9
/*8040*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*8044*/            OPC_EmitConvertToTarget, 3,
/*8046*/            OPC_EmitCopyToReg, 4, X86::EFLAGS,
/*8049*/            OPC_MorphNodeTo, TARGET_VAL(X86::SBB64mi32), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                        1/*#VTs*/, MVT::i32, 6/*#Ops*/, 5, 6, 7, 8, 9, 10, 
                    // Src: (st (X86sbb_flag:i64:i32 (ld:i64 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:i64)<<P:Predicate_i64immSExt32>>:$src, EFLAGS:i32), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 51
                    // Dst: (SBB64mi32:i32 addr:iPTR:$dst, (imm:i64):$src)
/*8062*/          /*Scope*/ 115, /*->8178*/
/*8063*/            OPC_MoveParent,
/*8064*/            OPC_RecordChild2, // #4 = physreg input EFLAGS
/*8065*/            OPC_SwitchType /*3 cases */, 35,  MVT::i8,// ->8103
/*8068*/              OPC_MoveParent,
/*8069*/              OPC_MoveChild, 2,
/*8071*/              OPC_CheckSame, 2,
/*8073*/              OPC_MoveParent,
/*8074*/              OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*8076*/              OPC_CheckPredicate, 5, // Predicate_store
/*8078*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #5 #6 #7 #8 #9
/*8081*/              OPC_EmitMergeInputChains, 2, 0, 1, 
/*8085*/              OPC_EmitConvertToTarget, 3,
/*8087*/              OPC_EmitCopyToReg, 4, X86::EFLAGS,
/*8090*/              OPC_MorphNodeTo, TARGET_VAL(X86::SBB8mi), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                          1/*#VTs*/, MVT::i32, 6/*#Ops*/, 5, 6, 7, 8, 9, 10, 
                      // Src: (st (X86sbb_flag:i8:i32 (ld:i8 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:i8):$src, EFLAGS:i32), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 50
                      // Dst: (SBB8mi:i32 addr:iPTR:$dst, (imm:i8):$src)
                    /*SwitchType*/ 35,  MVT::i16,// ->8140
/*8105*/              OPC_MoveParent,
/*8106*/              OPC_MoveChild, 2,
/*8108*/              OPC_CheckSame, 2,
/*8110*/              OPC_MoveParent,
/*8111*/              OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*8113*/              OPC_CheckPredicate, 5, // Predicate_store
/*8115*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #5 #6 #7 #8 #9
/*8118*/              OPC_EmitMergeInputChains, 2, 0, 1, 
/*8122*/              OPC_EmitConvertToTarget, 3,
/*8124*/              OPC_EmitCopyToReg, 4, X86::EFLAGS,
/*8127*/              OPC_MorphNodeTo, TARGET_VAL(X86::SBB16mi), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                          1/*#VTs*/, MVT::i32, 6/*#Ops*/, 5, 6, 7, 8, 9, 10, 
                      // Src: (st (X86sbb_flag:i16:i32 (ld:i16 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:i16):$src, EFLAGS:i32), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 50
                      // Dst: (SBB16mi:i32 addr:iPTR:$dst, (imm:i16):$src)
                    /*SwitchType*/ 35,  MVT::i32,// ->8177
/*8142*/              OPC_MoveParent,
/*8143*/              OPC_MoveChild, 2,
/*8145*/              OPC_CheckSame, 2,
/*8147*/              OPC_MoveParent,
/*8148*/              OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*8150*/              OPC_CheckPredicate, 5, // Predicate_store
/*8152*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #5 #6 #7 #8 #9
/*8155*/              OPC_EmitMergeInputChains, 2, 0, 1, 
/*8159*/              OPC_EmitConvertToTarget, 3,
/*8161*/              OPC_EmitCopyToReg, 4, X86::EFLAGS,
/*8164*/              OPC_MorphNodeTo, TARGET_VAL(X86::SBB32mi), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                          1/*#VTs*/, MVT::i32, 6/*#Ops*/, 5, 6, 7, 8, 9, 10, 
                      // Src: (st (X86sbb_flag:i32:i32 (ld:i32 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:i32):$src, EFLAGS:i32), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 50
                      // Dst: (SBB32mi:i32 addr:iPTR:$dst, (imm:i32):$src)
                    0, // EndSwitchType
/*8178*/          0, /*End of Scope*/
/*8179*/        /*Scope*/ 15|128,1/*143*/, /*->8324*/
/*8181*/          OPC_RecordChild2, // #4 = physreg input EFLAGS
/*8182*/          OPC_SwitchType /*4 cases */, 33,  MVT::i8,// ->8218
/*8185*/            OPC_MoveParent,
/*8186*/            OPC_MoveChild, 2,
/*8188*/            OPC_CheckSame, 2,
/*8190*/            OPC_MoveParent,
/*8191*/            OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*8193*/            OPC_CheckPredicate, 5, // Predicate_store
/*8195*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #5 #6 #7 #8 #9
/*8198*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*8202*/            OPC_EmitCopyToReg, 4, X86::EFLAGS,
/*8205*/            OPC_MorphNodeTo, TARGET_VAL(X86::SBB8mr), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                        1/*#VTs*/, MVT::i32, 6/*#Ops*/, 5, 6, 7, 8, 9, 3, 
                    // Src: (st (X86sbb_flag:i8:i32 (ld:i8 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, GR8:i8:$src, EFLAGS:i32), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 47
                    // Dst: (SBB8mr:i32 addr:iPTR:$dst, GR8:i8:$src)
                  /*SwitchType*/ 33,  MVT::i16,// ->8253
/*8220*/            OPC_MoveParent,
/*8221*/            OPC_MoveChild, 2,
/*8223*/            OPC_CheckSame, 2,
/*8225*/            OPC_MoveParent,
/*8226*/            OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*8228*/            OPC_CheckPredicate, 5, // Predicate_store
/*8230*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #5 #6 #7 #8 #9
/*8233*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*8237*/            OPC_EmitCopyToReg, 4, X86::EFLAGS,
/*8240*/            OPC_MorphNodeTo, TARGET_VAL(X86::SBB16mr), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                        1/*#VTs*/, MVT::i32, 6/*#Ops*/, 5, 6, 7, 8, 9, 3, 
                    // Src: (st (X86sbb_flag:i16:i32 (ld:i16 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, GR16:i16:$src, EFLAGS:i32), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 47
                    // Dst: (SBB16mr:i32 addr:iPTR:$dst, GR16:i16:$src)
                  /*SwitchType*/ 33,  MVT::i32,// ->8288
/*8255*/            OPC_MoveParent,
/*8256*/            OPC_MoveChild, 2,
/*8258*/            OPC_CheckSame, 2,
/*8260*/            OPC_MoveParent,
/*8261*/            OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*8263*/            OPC_CheckPredicate, 5, // Predicate_store
/*8265*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #5 #6 #7 #8 #9
/*8268*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*8272*/            OPC_EmitCopyToReg, 4, X86::EFLAGS,
/*8275*/            OPC_MorphNodeTo, TARGET_VAL(X86::SBB32mr), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                        1/*#VTs*/, MVT::i32, 6/*#Ops*/, 5, 6, 7, 8, 9, 3, 
                    // Src: (st (X86sbb_flag:i32:i32 (ld:i32 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, GR32:i32:$src, EFLAGS:i32), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 47
                    // Dst: (SBB32mr:i32 addr:iPTR:$dst, GR32:i32:$src)
                  /*SwitchType*/ 33,  MVT::i64,// ->8323
/*8290*/            OPC_MoveParent,
/*8291*/            OPC_MoveChild, 2,
/*8293*/            OPC_CheckSame, 2,
/*8295*/            OPC_MoveParent,
/*8296*/            OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*8298*/            OPC_CheckPredicate, 5, // Predicate_store
/*8300*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #5 #6 #7 #8 #9
/*8303*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*8307*/            OPC_EmitCopyToReg, 4, X86::EFLAGS,
/*8310*/            OPC_MorphNodeTo, TARGET_VAL(X86::SBB64mr), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                        1/*#VTs*/, MVT::i32, 6/*#Ops*/, 5, 6, 7, 8, 9, 3, 
                    // Src: (st (X86sbb_flag:i64:i32 (ld:i64 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, GR64:i64:$src, EFLAGS:i32), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 47
                    // Dst: (SBB64mr:i32 addr:iPTR:$dst, GR64:i64:$src)
                  0, // EndSwitchType
/*8324*/        0, /*End of Scope*/
              /*SwitchOpcode*/ 21|128,2/*277*/,  TARGET_VAL(ISD::VECTOR_SHUFFLE),// ->8606
/*8329*/        OPC_MoveChild, 0,
/*8331*/        OPC_SwitchOpcode /*2 cases */, 78,  TARGET_VAL(ISD::BITCAST),// ->8413
/*8335*/          OPC_MoveChild, 0,
/*8337*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*8340*/          OPC_RecordMemRef,
/*8341*/          OPC_RecordNode, // #1 = 'ld' chained node
/*8342*/          OPC_CheckFoldableChainNode,
/*8343*/          OPC_RecordChild1, // #2 = $src1
/*8344*/          OPC_CheckPredicate, 2, // Predicate_unindexedload
/*8346*/          OPC_CheckPredicate, 3, // Predicate_load
/*8348*/          OPC_CheckType, MVT::v2i64,
/*8350*/          OPC_MoveParent,
/*8351*/          OPC_MoveParent,
/*8352*/          OPC_RecordChild1, // #3 = $src2
/*8353*/          OPC_CheckPredicate, 12, // Predicate_movlp
/*8355*/          OPC_CheckType, MVT::v4i32,
/*8357*/          OPC_MoveParent,
/*8358*/          OPC_MoveChild, 2,
/*8360*/          OPC_CheckSame, 2,
/*8362*/          OPC_MoveParent,
/*8363*/          OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*8365*/          OPC_CheckPredicate, 5, // Predicate_store
/*8367*/          OPC_Scope, 21, /*->8390*/ // 2 children in Scope
/*8369*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*8371*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src1 #4 #5 #6 #7 #8
/*8374*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*8378*/            OPC_MorphNodeTo, TARGET_VAL(X86::VMOVLPSmr), 0|OPFL_Chain|OPFL_MemRefs,
                        0/*#VTs*/, 6/*#Ops*/, 4, 5, 6, 7, 8, 3, 
                    // Src: (st (vector_shuffle:v4i32 (bitconvert:v4i32 (ld:v2i64 addr:iPTR:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128:v4i32:$src2)<<P:Predicate_movlp>>, addr:iPTR:$src1)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 51
                    // Dst: (VMOVLPSmr addr:iPTR:$src1, VR128:v4i32:$src2)
/*8390*/          /*Scope*/ 21, /*->8412*/
/*8391*/            OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*8393*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src1 #4 #5 #6 #7 #8
/*8396*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*8400*/            OPC_MorphNodeTo, TARGET_VAL(X86::MOVLPSmr), 0|OPFL_Chain|OPFL_MemRefs,
                        0/*#VTs*/, 6/*#Ops*/, 4, 5, 6, 7, 8, 3, 
                    // Src: (st (vector_shuffle:v4i32 (bitconvert:v4i32 (ld:v2i64 addr:iPTR:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128:v4i32:$src2)<<P:Predicate_movlp>>, addr:iPTR:$src1)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 51
                    // Dst: (MOVLPSmr addr:iPTR:$src1, VR128:v4i32:$src2)
/*8412*/          0, /*End of Scope*/
                /*SwitchOpcode*/ 60|128,1/*188*/,  TARGET_VAL(ISD::LOAD),// ->8605
/*8417*/          OPC_RecordMemRef,
/*8418*/          OPC_RecordNode, // #1 = 'ld' chained node
/*8419*/          OPC_CheckFoldableChainNode,
/*8420*/          OPC_RecordChild1, // #2 = $src1
/*8421*/          OPC_CheckPredicate, 2, // Predicate_unindexedload
/*8423*/          OPC_CheckPredicate, 3, // Predicate_load
/*8425*/          OPC_MoveParent,
/*8426*/          OPC_RecordChild1, // #3 = $src2
/*8427*/          OPC_CheckPredicate, 12, // Predicate_movlp
/*8429*/          OPC_SwitchType /*3 cases */, 56,  MVT::v4f32,// ->8488
/*8432*/            OPC_MoveParent,
/*8433*/            OPC_MoveChild, 2,
/*8435*/            OPC_CheckSame, 2,
/*8437*/            OPC_MoveParent,
/*8438*/            OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*8440*/            OPC_CheckPredicate, 5, // Predicate_store
/*8442*/            OPC_Scope, 21, /*->8465*/ // 2 children in Scope
/*8444*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*8446*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src1 #4 #5 #6 #7 #8
/*8449*/              OPC_EmitMergeInputChains, 2, 0, 1, 
/*8453*/              OPC_MorphNodeTo, TARGET_VAL(X86::VMOVLPSmr), 0|OPFL_Chain|OPFL_MemRefs,
                          0/*#VTs*/, 6/*#Ops*/, 4, 5, 6, 7, 8, 3, 
                      // Src: (st (vector_shuffle:v4f32 (ld:v4f32 addr:iPTR:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:v4f32:$src2)<<P:Predicate_movlp>>, addr:iPTR:$src1)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 48
                      // Dst: (VMOVLPSmr addr:iPTR:$src1, VR128:v4f32:$src2)
/*8465*/            /*Scope*/ 21, /*->8487*/
/*8466*/              OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*8468*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src1 #4 #5 #6 #7 #8
/*8471*/              OPC_EmitMergeInputChains, 2, 0, 1, 
/*8475*/              OPC_MorphNodeTo, TARGET_VAL(X86::MOVLPSmr), 0|OPFL_Chain|OPFL_MemRefs,
                          0/*#VTs*/, 6/*#Ops*/, 4, 5, 6, 7, 8, 3, 
                      // Src: (st (vector_shuffle:v4f32 (ld:v4f32 addr:iPTR:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:v4f32:$src2)<<P:Predicate_movlp>>, addr:iPTR:$src1)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 48
                      // Dst: (MOVLPSmr addr:iPTR:$src1, VR128:v4f32:$src2)
/*8487*/            0, /*End of Scope*/
                  /*SwitchType*/ 56,  MVT::v2f64,// ->8546
/*8490*/            OPC_MoveParent,
/*8491*/            OPC_MoveChild, 2,
/*8493*/            OPC_CheckSame, 2,
/*8495*/            OPC_MoveParent,
/*8496*/            OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*8498*/            OPC_CheckPredicate, 5, // Predicate_store
/*8500*/            OPC_Scope, 21, /*->8523*/ // 2 children in Scope
/*8502*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*8504*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src1 #4 #5 #6 #7 #8
/*8507*/              OPC_EmitMergeInputChains, 2, 0, 1, 
/*8511*/              OPC_MorphNodeTo, TARGET_VAL(X86::VMOVLPDmr), 0|OPFL_Chain|OPFL_MemRefs,
                          0/*#VTs*/, 6/*#Ops*/, 4, 5, 6, 7, 8, 3, 
                      // Src: (st (vector_shuffle:v2f64 (ld:v2f64 addr:iPTR:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:v2f64:$src2)<<P:Predicate_movlp>>, addr:iPTR:$src1)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 48
                      // Dst: (VMOVLPDmr addr:iPTR:$src1, VR128:v2f64:$src2)
/*8523*/            /*Scope*/ 21, /*->8545*/
/*8524*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*8526*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src1 #4 #5 #6 #7 #8
/*8529*/              OPC_EmitMergeInputChains, 2, 0, 1, 
/*8533*/              OPC_MorphNodeTo, TARGET_VAL(X86::MOVLPDmr), 0|OPFL_Chain|OPFL_MemRefs,
                          0/*#VTs*/, 6/*#Ops*/, 4, 5, 6, 7, 8, 3, 
                      // Src: (st (vector_shuffle:v2f64 (ld:v2f64 addr:iPTR:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:v2f64:$src2)<<P:Predicate_movlp>>, addr:iPTR:$src1)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 48
                      // Dst: (MOVLPDmr addr:iPTR:$src1, VR128:v2f64:$src2)
/*8545*/            0, /*End of Scope*/
                  /*SwitchType*/ 56,  MVT::v2i64,// ->8604
/*8548*/            OPC_MoveParent,
/*8549*/            OPC_MoveChild, 2,
/*8551*/            OPC_CheckSame, 2,
/*8553*/            OPC_MoveParent,
/*8554*/            OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*8556*/            OPC_CheckPredicate, 5, // Predicate_store
/*8558*/            OPC_Scope, 21, /*->8581*/ // 2 children in Scope
/*8560*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*8562*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src1 #4 #5 #6 #7 #8
/*8565*/              OPC_EmitMergeInputChains, 2, 0, 1, 
/*8569*/              OPC_MorphNodeTo, TARGET_VAL(X86::VMOVLPDmr), 0|OPFL_Chain|OPFL_MemRefs,
                          0/*#VTs*/, 6/*#Ops*/, 4, 5, 6, 7, 8, 3, 
                      // Src: (st (vector_shuffle:v2i64 (ld:v2i64 addr:iPTR:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:v2i64:$src2)<<P:Predicate_movlp>>, addr:iPTR:$src1)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 48
                      // Dst: (VMOVLPDmr addr:iPTR:$src1, VR128:v2i64:$src2)
/*8581*/            /*Scope*/ 21, /*->8603*/
/*8582*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*8584*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src1 #4 #5 #6 #7 #8
/*8587*/              OPC_EmitMergeInputChains, 2, 0, 1, 
/*8591*/              OPC_MorphNodeTo, TARGET_VAL(X86::MOVLPDmr), 0|OPFL_Chain|OPFL_MemRefs,
                          0/*#VTs*/, 6/*#Ops*/, 4, 5, 6, 7, 8, 3, 
                      // Src: (st (vector_shuffle:v2i64 (ld:v2i64 addr:iPTR:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:v2i64:$src2)<<P:Predicate_movlp>>, addr:iPTR:$src1)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 48
                      // Dst: (MOVLPDmr addr:iPTR:$src1, VR128:v2i64:$src2)
/*8603*/            0, /*End of Scope*/
                  0, // EndSwitchType
                0, // EndSwitchOpcode
              /*SwitchOpcode*/ 33|128,2/*289*/,  TARGET_VAL(X86ISD::SHLD),// ->8899
/*8610*/        OPC_MoveChild, 0,
/*8612*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*8615*/        OPC_RecordMemRef,
/*8616*/        OPC_RecordNode, // #1 = 'ld' chained node
/*8617*/        OPC_CheckFoldableChainNode,
/*8618*/        OPC_RecordChild1, // #2 = $dst
/*8619*/        OPC_CheckPredicate, 2, // Predicate_unindexedload
/*8621*/        OPC_Scope, 48, /*->8671*/ // 6 children in Scope
/*8623*/          OPC_CheckPredicate, 6, // Predicate_loadi16
/*8625*/          OPC_MoveParent,
/*8626*/          OPC_RecordChild1, // #3 = $src2
/*8627*/          OPC_RecordChild2, // #4 = $src3
/*8628*/          OPC_MoveChild, 2,
/*8630*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*8633*/          OPC_CheckType, MVT::i8,
/*8635*/          OPC_MoveParent,
/*8636*/          OPC_CheckType, MVT::i16,
/*8638*/          OPC_MoveParent,
/*8639*/          OPC_MoveChild, 2,
/*8641*/          OPC_CheckSame, 2,
/*8643*/          OPC_MoveParent,
/*8644*/          OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*8646*/          OPC_CheckPredicate, 5, // Predicate_store
/*8648*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #5 #6 #7 #8 #9
/*8651*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*8655*/          OPC_EmitConvertToTarget, 4,
/*8657*/          OPC_MorphNodeTo, TARGET_VAL(X86::SHLD16mri8), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::i32, 7/*#Ops*/, 5, 6, 7, 8, 9, 3, 10, 
                  // Src: (st (X86shld:i16 (ld:i16 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>, GR16:i16:$src2, (imm:i8):$src3), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 50
                  // Dst: (SHLD16mri8:i32 addr:iPTR:$dst, GR16:i16:$src2, (imm:i8):$src3)
/*8671*/        /*Scope*/ 48, /*->8720*/
/*8672*/          OPC_CheckPredicate, 7, // Predicate_loadi32
/*8674*/          OPC_MoveParent,
/*8675*/          OPC_RecordChild1, // #3 = $src2
/*8676*/          OPC_RecordChild2, // #4 = $src3
/*8677*/          OPC_MoveChild, 2,
/*8679*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*8682*/          OPC_CheckType, MVT::i8,
/*8684*/          OPC_MoveParent,
/*8685*/          OPC_CheckType, MVT::i32,
/*8687*/          OPC_MoveParent,
/*8688*/          OPC_MoveChild, 2,
/*8690*/          OPC_CheckSame, 2,
/*8692*/          OPC_MoveParent,
/*8693*/          OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*8695*/          OPC_CheckPredicate, 5, // Predicate_store
/*8697*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #5 #6 #7 #8 #9
/*8700*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*8704*/          OPC_EmitConvertToTarget, 4,
/*8706*/          OPC_MorphNodeTo, TARGET_VAL(X86::SHLD32mri8), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::i32, 7/*#Ops*/, 5, 6, 7, 8, 9, 3, 10, 
                  // Src: (st (X86shld:i32 (ld:i32 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>, GR32:i32:$src2, (imm:i8):$src3), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 50
                  // Dst: (SHLD32mri8:i32 addr:iPTR:$dst, GR32:i32:$src2, (imm:i8):$src3)
/*8720*/        /*Scope*/ 48, /*->8769*/
/*8721*/          OPC_CheckPredicate, 3, // Predicate_load
/*8723*/          OPC_MoveParent,
/*8724*/          OPC_RecordChild1, // #3 = $src2
/*8725*/          OPC_RecordChild2, // #4 = $src3
/*8726*/          OPC_MoveChild, 2,
/*8728*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*8731*/          OPC_CheckType, MVT::i8,
/*8733*/          OPC_MoveParent,
/*8734*/          OPC_CheckType, MVT::i64,
/*8736*/          OPC_MoveParent,
/*8737*/          OPC_MoveChild, 2,
/*8739*/          OPC_CheckSame, 2,
/*8741*/          OPC_MoveParent,
/*8742*/          OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*8744*/          OPC_CheckPredicate, 5, // Predicate_store
/*8746*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #5 #6 #7 #8 #9
/*8749*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*8753*/          OPC_EmitConvertToTarget, 4,
/*8755*/          OPC_MorphNodeTo, TARGET_VAL(X86::SHLD64mri8), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::i32, 7/*#Ops*/, 5, 6, 7, 8, 9, 3, 10, 
                  // Src: (st (X86shld:i64 (ld:i64 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, GR64:i64:$src2, (imm:i8):$src3), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 50
                  // Dst: (SHLD64mri8:i32 addr:iPTR:$dst, GR64:i64:$src2, (imm:i8):$src3)
/*8769*/        /*Scope*/ 42, /*->8812*/
/*8770*/          OPC_CheckPredicate, 6, // Predicate_loadi16
/*8772*/          OPC_MoveParent,
/*8773*/          OPC_RecordChild1, // #3 = $src2
/*8774*/          OPC_RecordChild2, // #4 = physreg input CL
/*8775*/          OPC_CheckChild2Type, MVT::i8,
/*8777*/          OPC_CheckType, MVT::i16,
/*8779*/          OPC_MoveParent,
/*8780*/          OPC_MoveChild, 2,
/*8782*/          OPC_CheckSame, 2,
/*8784*/          OPC_MoveParent,
/*8785*/          OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*8787*/          OPC_CheckPredicate, 5, // Predicate_store
/*8789*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #5 #6 #7 #8 #9
/*8792*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*8796*/          OPC_EmitCopyToReg, 4, X86::CL,
/*8799*/          OPC_MorphNodeTo, TARGET_VAL(X86::SHLD16mrCL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      1/*#VTs*/, MVT::i32, 6/*#Ops*/, 5, 6, 7, 8, 9, 3, 
                  // Src: (st (X86shld:i16 (ld:i16 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>, GR16:i16:$src2, CL:i8), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 47
                  // Dst: (SHLD16mrCL:i32 addr:iPTR:$dst, GR16:i16:$src2)
/*8812*/        /*Scope*/ 42, /*->8855*/
/*8813*/          OPC_CheckPredicate, 7, // Predicate_loadi32
/*8815*/          OPC_MoveParent,
/*8816*/          OPC_RecordChild1, // #3 = $src2
/*8817*/          OPC_RecordChild2, // #4 = physreg input CL
/*8818*/          OPC_CheckChild2Type, MVT::i8,
/*8820*/          OPC_CheckType, MVT::i32,
/*8822*/          OPC_MoveParent,
/*8823*/          OPC_MoveChild, 2,
/*8825*/          OPC_CheckSame, 2,
/*8827*/          OPC_MoveParent,
/*8828*/          OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*8830*/          OPC_CheckPredicate, 5, // Predicate_store
/*8832*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #5 #6 #7 #8 #9
/*8835*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*8839*/          OPC_EmitCopyToReg, 4, X86::CL,
/*8842*/          OPC_MorphNodeTo, TARGET_VAL(X86::SHLD32mrCL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      1/*#VTs*/, MVT::i32, 6/*#Ops*/, 5, 6, 7, 8, 9, 3, 
                  // Src: (st (X86shld:i32 (ld:i32 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>, GR32:i32:$src2, CL:i8), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 47
                  // Dst: (SHLD32mrCL:i32 addr:iPTR:$dst, GR32:i32:$src2)
/*8855*/        /*Scope*/ 42, /*->8898*/
/*8856*/          OPC_CheckPredicate, 3, // Predicate_load
/*8858*/          OPC_MoveParent,
/*8859*/          OPC_RecordChild1, // #3 = $src2
/*8860*/          OPC_RecordChild2, // #4 = physreg input CL
/*8861*/          OPC_CheckChild2Type, MVT::i8,
/*8863*/          OPC_CheckType, MVT::i64,
/*8865*/          OPC_MoveParent,
/*8866*/          OPC_MoveChild, 2,
/*8868*/          OPC_CheckSame, 2,
/*8870*/          OPC_MoveParent,
/*8871*/          OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*8873*/          OPC_CheckPredicate, 5, // Predicate_store
/*8875*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #5 #6 #7 #8 #9
/*8878*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*8882*/          OPC_EmitCopyToReg, 4, X86::CL,
/*8885*/          OPC_MorphNodeTo, TARGET_VAL(X86::SHLD64mrCL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      1/*#VTs*/, MVT::i32, 6/*#Ops*/, 5, 6, 7, 8, 9, 3, 
                  // Src: (st (X86shld:i64 (ld:i64 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, GR64:i64:$src2, CL:i8), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 47
                  // Dst: (SHLD64mrCL:i32 addr:iPTR:$dst, GR64:i64:$src2)
/*8898*/        0, /*End of Scope*/
              /*SwitchOpcode*/ 33|128,2/*289*/,  TARGET_VAL(X86ISD::SHRD),// ->9192
/*8903*/        OPC_MoveChild, 0,
/*8905*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*8908*/        OPC_RecordMemRef,
/*8909*/        OPC_RecordNode, // #1 = 'ld' chained node
/*8910*/        OPC_CheckFoldableChainNode,
/*8911*/        OPC_RecordChild1, // #2 = $dst
/*8912*/        OPC_CheckPredicate, 2, // Predicate_unindexedload
/*8914*/        OPC_Scope, 48, /*->8964*/ // 6 children in Scope
/*8916*/          OPC_CheckPredicate, 6, // Predicate_loadi16
/*8918*/          OPC_MoveParent,
/*8919*/          OPC_RecordChild1, // #3 = $src2
/*8920*/          OPC_RecordChild2, // #4 = $src3
/*8921*/          OPC_MoveChild, 2,
/*8923*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*8926*/          OPC_CheckType, MVT::i8,
/*8928*/          OPC_MoveParent,
/*8929*/          OPC_CheckType, MVT::i16,
/*8931*/          OPC_MoveParent,
/*8932*/          OPC_MoveChild, 2,
/*8934*/          OPC_CheckSame, 2,
/*8936*/          OPC_MoveParent,
/*8937*/          OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*8939*/          OPC_CheckPredicate, 5, // Predicate_store
/*8941*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #5 #6 #7 #8 #9
/*8944*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*8948*/          OPC_EmitConvertToTarget, 4,
/*8950*/          OPC_MorphNodeTo, TARGET_VAL(X86::SHRD16mri8), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::i32, 7/*#Ops*/, 5, 6, 7, 8, 9, 3, 10, 
                  // Src: (st (X86shrd:i16 (ld:i16 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>, GR16:i16:$src2, (imm:i8):$src3), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 50
                  // Dst: (SHRD16mri8:i32 addr:iPTR:$dst, GR16:i16:$src2, (imm:i8):$src3)
/*8964*/        /*Scope*/ 48, /*->9013*/
/*8965*/          OPC_CheckPredicate, 7, // Predicate_loadi32
/*8967*/          OPC_MoveParent,
/*8968*/          OPC_RecordChild1, // #3 = $src2
/*8969*/          OPC_RecordChild2, // #4 = $src3
/*8970*/          OPC_MoveChild, 2,
/*8972*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*8975*/          OPC_CheckType, MVT::i8,
/*8977*/          OPC_MoveParent,
/*8978*/          OPC_CheckType, MVT::i32,
/*8980*/          OPC_MoveParent,
/*8981*/          OPC_MoveChild, 2,
/*8983*/          OPC_CheckSame, 2,
/*8985*/          OPC_MoveParent,
/*8986*/          OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*8988*/          OPC_CheckPredicate, 5, // Predicate_store
/*8990*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #5 #6 #7 #8 #9
/*8993*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*8997*/          OPC_EmitConvertToTarget, 4,
/*8999*/          OPC_MorphNodeTo, TARGET_VAL(X86::SHRD32mri8), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::i32, 7/*#Ops*/, 5, 6, 7, 8, 9, 3, 10, 
                  // Src: (st (X86shrd:i32 (ld:i32 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>, GR32:i32:$src2, (imm:i8):$src3), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 50
                  // Dst: (SHRD32mri8:i32 addr:iPTR:$dst, GR32:i32:$src2, (imm:i8):$src3)
/*9013*/        /*Scope*/ 48, /*->9062*/
/*9014*/          OPC_CheckPredicate, 3, // Predicate_load
/*9016*/          OPC_MoveParent,
/*9017*/          OPC_RecordChild1, // #3 = $src2
/*9018*/          OPC_RecordChild2, // #4 = $src3
/*9019*/          OPC_MoveChild, 2,
/*9021*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*9024*/          OPC_CheckType, MVT::i8,
/*9026*/          OPC_MoveParent,
/*9027*/          OPC_CheckType, MVT::i64,
/*9029*/          OPC_MoveParent,
/*9030*/          OPC_MoveChild, 2,
/*9032*/          OPC_CheckSame, 2,
/*9034*/          OPC_MoveParent,
/*9035*/          OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*9037*/          OPC_CheckPredicate, 5, // Predicate_store
/*9039*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #5 #6 #7 #8 #9
/*9042*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*9046*/          OPC_EmitConvertToTarget, 4,
/*9048*/          OPC_MorphNodeTo, TARGET_VAL(X86::SHRD64mri8), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::i32, 7/*#Ops*/, 5, 6, 7, 8, 9, 3, 10, 
                  // Src: (st (X86shrd:i64 (ld:i64 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, GR64:i64:$src2, (imm:i8):$src3), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 50
                  // Dst: (SHRD64mri8:i32 addr:iPTR:$dst, GR64:i64:$src2, (imm:i8):$src3)
/*9062*/        /*Scope*/ 42, /*->9105*/
/*9063*/          OPC_CheckPredicate, 6, // Predicate_loadi16
/*9065*/          OPC_MoveParent,
/*9066*/          OPC_RecordChild1, // #3 = $src2
/*9067*/          OPC_RecordChild2, // #4 = physreg input CL
/*9068*/          OPC_CheckChild2Type, MVT::i8,
/*9070*/          OPC_CheckType, MVT::i16,
/*9072*/          OPC_MoveParent,
/*9073*/          OPC_MoveChild, 2,
/*9075*/          OPC_CheckSame, 2,
/*9077*/          OPC_MoveParent,
/*9078*/          OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*9080*/          OPC_CheckPredicate, 5, // Predicate_store
/*9082*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #5 #6 #7 #8 #9
/*9085*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*9089*/          OPC_EmitCopyToReg, 4, X86::CL,
/*9092*/          OPC_MorphNodeTo, TARGET_VAL(X86::SHRD16mrCL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      1/*#VTs*/, MVT::i32, 6/*#Ops*/, 5, 6, 7, 8, 9, 3, 
                  // Src: (st (X86shrd:i16 (ld:i16 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>, GR16:i16:$src2, CL:i8), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 47
                  // Dst: (SHRD16mrCL:i32 addr:iPTR:$dst, GR16:i16:$src2)
/*9105*/        /*Scope*/ 42, /*->9148*/
/*9106*/          OPC_CheckPredicate, 7, // Predicate_loadi32
/*9108*/          OPC_MoveParent,
/*9109*/          OPC_RecordChild1, // #3 = $src2
/*9110*/          OPC_RecordChild2, // #4 = physreg input CL
/*9111*/          OPC_CheckChild2Type, MVT::i8,
/*9113*/          OPC_CheckType, MVT::i32,
/*9115*/          OPC_MoveParent,
/*9116*/          OPC_MoveChild, 2,
/*9118*/          OPC_CheckSame, 2,
/*9120*/          OPC_MoveParent,
/*9121*/          OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*9123*/          OPC_CheckPredicate, 5, // Predicate_store
/*9125*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #5 #6 #7 #8 #9
/*9128*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*9132*/          OPC_EmitCopyToReg, 4, X86::CL,
/*9135*/          OPC_MorphNodeTo, TARGET_VAL(X86::SHRD32mrCL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      1/*#VTs*/, MVT::i32, 6/*#Ops*/, 5, 6, 7, 8, 9, 3, 
                  // Src: (st (X86shrd:i32 (ld:i32 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>, GR32:i32:$src2, CL:i8), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 47
                  // Dst: (SHRD32mrCL:i32 addr:iPTR:$dst, GR32:i32:$src2)
/*9148*/        /*Scope*/ 42, /*->9191*/
/*9149*/          OPC_CheckPredicate, 3, // Predicate_load
/*9151*/          OPC_MoveParent,
/*9152*/          OPC_RecordChild1, // #3 = $src2
/*9153*/          OPC_RecordChild2, // #4 = physreg input CL
/*9154*/          OPC_CheckChild2Type, MVT::i8,
/*9156*/          OPC_CheckType, MVT::i64,
/*9158*/          OPC_MoveParent,
/*9159*/          OPC_MoveChild, 2,
/*9161*/          OPC_CheckSame, 2,
/*9163*/          OPC_MoveParent,
/*9164*/          OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*9166*/          OPC_CheckPredicate, 5, // Predicate_store
/*9168*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #5 #6 #7 #8 #9
/*9171*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*9175*/          OPC_EmitCopyToReg, 4, X86::CL,
/*9178*/          OPC_MorphNodeTo, TARGET_VAL(X86::SHRD64mrCL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      1/*#VTs*/, MVT::i32, 6/*#Ops*/, 5, 6, 7, 8, 9, 3, 
                  // Src: (st (X86shrd:i64 (ld:i64 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, GR64:i64:$src2, CL:i8), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 47
                  // Dst: (SHRD64mrCL:i32 addr:iPTR:$dst, GR64:i64:$src2)
/*9191*/        0, /*End of Scope*/
              /*SwitchOpcode*/ 26|128,1/*154*/,  TARGET_VAL(X86ISD::MOVLPS),// ->9350
/*9196*/        OPC_MoveChild, 0,
/*9198*/        OPC_SwitchOpcode /*2 cases */, 76,  TARGET_VAL(ISD::BITCAST),// ->9278
/*9202*/          OPC_MoveChild, 0,
/*9204*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*9207*/          OPC_RecordMemRef,
/*9208*/          OPC_RecordNode, // #1 = 'ld' chained node
/*9209*/          OPC_CheckFoldableChainNode,
/*9210*/          OPC_RecordChild1, // #2 = $src1
/*9211*/          OPC_CheckPredicate, 2, // Predicate_unindexedload
/*9213*/          OPC_CheckPredicate, 3, // Predicate_load
/*9215*/          OPC_CheckType, MVT::v2i64,
/*9217*/          OPC_MoveParent,
/*9218*/          OPC_MoveParent,
/*9219*/          OPC_RecordChild1, // #3 = $src2
/*9220*/          OPC_CheckType, MVT::v4i32,
/*9222*/          OPC_MoveParent,
/*9223*/          OPC_MoveChild, 2,
/*9225*/          OPC_CheckSame, 2,
/*9227*/          OPC_MoveParent,
/*9228*/          OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*9230*/          OPC_CheckPredicate, 5, // Predicate_store
/*9232*/          OPC_Scope, 21, /*->9255*/ // 2 children in Scope
/*9234*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*9236*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src1 #4 #5 #6 #7 #8
/*9239*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*9243*/            OPC_MorphNodeTo, TARGET_VAL(X86::VMOVLPSmr), 0|OPFL_Chain|OPFL_MemRefs,
                        0/*#VTs*/, 6/*#Ops*/, 4, 5, 6, 7, 8, 3, 
                    // Src: (st (X86Movlps:v4i32 (bitconvert:v4i32 (ld:v2i64 addr:iPTR:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128:v4i32:$src2), addr:iPTR:$src1)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 50
                    // Dst: (VMOVLPSmr addr:iPTR:$src1, VR128:v4i32:$src2)
/*9255*/          /*Scope*/ 21, /*->9277*/
/*9256*/            OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*9258*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src1 #4 #5 #6 #7 #8
/*9261*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*9265*/            OPC_MorphNodeTo, TARGET_VAL(X86::MOVLPSmr), 0|OPFL_Chain|OPFL_MemRefs,
                        0/*#VTs*/, 6/*#Ops*/, 4, 5, 6, 7, 8, 3, 
                    // Src: (st (X86Movlps:v4i32 (bitconvert:v4i32 (ld:v2i64 addr:iPTR:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128:v4i32:$src2), addr:iPTR:$src1)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 50
                    // Dst: (MOVLPSmr addr:iPTR:$src1, VR128:v4i32:$src2)
/*9277*/          0, /*End of Scope*/
                /*SwitchOpcode*/ 68,  TARGET_VAL(ISD::LOAD),// ->9349
/*9281*/          OPC_RecordMemRef,
/*9282*/          OPC_RecordNode, // #1 = 'ld' chained node
/*9283*/          OPC_CheckFoldableChainNode,
/*9284*/          OPC_RecordChild1, // #2 = $src1
/*9285*/          OPC_CheckPredicate, 2, // Predicate_unindexedload
/*9287*/          OPC_CheckPredicate, 3, // Predicate_load
/*9289*/          OPC_MoveParent,
/*9290*/          OPC_RecordChild1, // #3 = $src2
/*9291*/          OPC_CheckType, MVT::v4f32,
/*9293*/          OPC_MoveParent,
/*9294*/          OPC_MoveChild, 2,
/*9296*/          OPC_CheckSame, 2,
/*9298*/          OPC_MoveParent,
/*9299*/          OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*9301*/          OPC_CheckPredicate, 5, // Predicate_store
/*9303*/          OPC_Scope, 21, /*->9326*/ // 2 children in Scope
/*9305*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*9307*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src1 #4 #5 #6 #7 #8
/*9310*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*9314*/            OPC_MorphNodeTo, TARGET_VAL(X86::VMOVLPSmr), 0|OPFL_Chain|OPFL_MemRefs,
                        0/*#VTs*/, 6/*#Ops*/, 4, 5, 6, 7, 8, 3, 
                    // Src: (st (X86Movlps:v4f32 (ld:v4f32 addr:iPTR:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:v4f32:$src2), addr:iPTR:$src1)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 47
                    // Dst: (VMOVLPSmr addr:iPTR:$src1, VR128:v4f32:$src2)
/*9326*/          /*Scope*/ 21, /*->9348*/
/*9327*/            OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*9329*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src1 #4 #5 #6 #7 #8
/*9332*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*9336*/            OPC_MorphNodeTo, TARGET_VAL(X86::MOVLPSmr), 0|OPFL_Chain|OPFL_MemRefs,
                        0/*#VTs*/, 6/*#Ops*/, 4, 5, 6, 7, 8, 3, 
                    // Src: (st (X86Movlps:v4f32 (ld:v4f32 addr:iPTR:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:v4f32:$src2), addr:iPTR:$src1)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 47
                    // Dst: (MOVLPSmr addr:iPTR:$src1, VR128:v4f32:$src2)
/*9348*/          0, /*End of Scope*/
                0, // EndSwitchOpcode
              /*SwitchOpcode*/ 5|128,1/*133*/,  TARGET_VAL(X86ISD::MOVLPD),// ->9487
/*9354*/        OPC_MoveChild, 0,
/*9356*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*9359*/        OPC_RecordMemRef,
/*9360*/        OPC_RecordNode, // #1 = 'ld' chained node
/*9361*/        OPC_CheckFoldableChainNode,
/*9362*/        OPC_RecordChild1, // #2 = $src1
/*9363*/        OPC_CheckPredicate, 2, // Predicate_unindexedload
/*9365*/        OPC_CheckPredicate, 3, // Predicate_load
/*9367*/        OPC_MoveParent,
/*9368*/        OPC_RecordChild1, // #3 = $src2
/*9369*/        OPC_SwitchType /*2 cases */, 56,  MVT::v2f64,// ->9428
/*9372*/          OPC_MoveParent,
/*9373*/          OPC_MoveChild, 2,
/*9375*/          OPC_CheckSame, 2,
/*9377*/          OPC_MoveParent,
/*9378*/          OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*9380*/          OPC_CheckPredicate, 5, // Predicate_store
/*9382*/          OPC_Scope, 21, /*->9405*/ // 2 children in Scope
/*9384*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*9386*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src1 #4 #5 #6 #7 #8
/*9389*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*9393*/            OPC_MorphNodeTo, TARGET_VAL(X86::VMOVLPDmr), 0|OPFL_Chain|OPFL_MemRefs,
                        0/*#VTs*/, 6/*#Ops*/, 4, 5, 6, 7, 8, 3, 
                    // Src: (st (X86Movlpd:v2f64 (ld:v2f64 addr:iPTR:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:v2f64:$src2), addr:iPTR:$src1)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 47
                    // Dst: (VMOVLPDmr addr:iPTR:$src1, VR128:v2f64:$src2)
/*9405*/          /*Scope*/ 21, /*->9427*/
/*9406*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*9408*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src1 #4 #5 #6 #7 #8
/*9411*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*9415*/            OPC_MorphNodeTo, TARGET_VAL(X86::MOVLPDmr), 0|OPFL_Chain|OPFL_MemRefs,
                        0/*#VTs*/, 6/*#Ops*/, 4, 5, 6, 7, 8, 3, 
                    // Src: (st (X86Movlpd:v2f64 (ld:v2f64 addr:iPTR:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:v2f64:$src2), addr:iPTR:$src1)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 47
                    // Dst: (MOVLPDmr addr:iPTR:$src1, VR128:v2f64:$src2)
/*9427*/          0, /*End of Scope*/
                /*SwitchType*/ 56,  MVT::v2i64,// ->9486
/*9430*/          OPC_MoveParent,
/*9431*/          OPC_MoveChild, 2,
/*9433*/          OPC_CheckSame, 2,
/*9435*/          OPC_MoveParent,
/*9436*/          OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*9438*/          OPC_CheckPredicate, 5, // Predicate_store
/*9440*/          OPC_Scope, 21, /*->9463*/ // 2 children in Scope
/*9442*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*9444*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src1 #4 #5 #6 #7 #8
/*9447*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*9451*/            OPC_MorphNodeTo, TARGET_VAL(X86::VMOVLPDmr), 0|OPFL_Chain|OPFL_MemRefs,
                        0/*#VTs*/, 6/*#Ops*/, 4, 5, 6, 7, 8, 3, 
                    // Src: (st (X86Movlpd:v2i64 (ld:v2i64 addr:iPTR:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:v2i64:$src2), addr:iPTR:$src1)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 47
                    // Dst: (VMOVLPDmr addr:iPTR:$src1, VR128:v2i64:$src2)
/*9463*/          /*Scope*/ 21, /*->9485*/
/*9464*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*9466*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src1 #4 #5 #6 #7 #8
/*9469*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*9473*/            OPC_MorphNodeTo, TARGET_VAL(X86::MOVLPDmr), 0|OPFL_Chain|OPFL_MemRefs,
                        0/*#VTs*/, 6/*#Ops*/, 4, 5, 6, 7, 8, 3, 
                    // Src: (st (X86Movlpd:v2i64 (ld:v2i64 addr:iPTR:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:v2i64:$src2), addr:iPTR:$src1)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 47
                    // Dst: (MOVLPDmr addr:iPTR:$src1, VR128:v2i64:$src2)
/*9485*/          0, /*End of Scope*/
                0, // EndSwitchType
              /*SwitchOpcode*/ 88|128,6/*856*/,  TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),// ->10347
/*9491*/        OPC_Scope, 26|128,3/*410*/, /*->9904*/ // 2 children in Scope
/*9494*/          OPC_MoveChild, 0,
/*9496*/          OPC_SwitchOpcode /*4 cases */, 14|128,1/*142*/,  TARGET_VAL(ISD::VECTOR_SHUFFLE),// ->9643
/*9501*/            OPC_Scope, 73, /*->9576*/ // 2 children in Scope
/*9503*/              OPC_MoveChild, 0,
/*9505*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*9508*/              OPC_RecordChild0, // #1 = $src
/*9509*/              OPC_CheckChild0Type, MVT::v4f32,
/*9511*/              OPC_MoveParent,
/*9512*/              OPC_MoveChild, 1,
/*9514*/              OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
/*9517*/              OPC_MoveParent,
/*9518*/              OPC_CheckPredicate, 13, // Predicate_unpckh
/*9520*/              OPC_CheckType, MVT::v2f64,
/*9522*/              OPC_MoveParent,
/*9523*/              OPC_MoveChild, 1,
/*9525*/              OPC_CheckInteger, 0, 
/*9527*/              OPC_MoveParent,
/*9528*/              OPC_CheckType, MVT::f64,
/*9530*/              OPC_MoveParent,
/*9531*/              OPC_RecordChild2, // #2 = $dst
/*9532*/              OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*9534*/              OPC_CheckPredicate, 5, // Predicate_store
/*9536*/              OPC_Scope, 18, /*->9556*/ // 2 children in Scope
/*9538*/                OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*9540*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*9543*/                OPC_EmitMergeInputChains1_0,
/*9544*/                OPC_MorphNodeTo, TARGET_VAL(X86::VMOVHPSmr), 0|OPFL_Chain|OPFL_MemRefs,
                            0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                        // Src: (st (vector_extract:f64 (vector_shuffle:v2f64 (bitconvert:v2f64 VR128:v4f32:$src), (undef:v2f64))<<P:Predicate_unpckh>>, 0:iPTR), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 40
                        // Dst: (VMOVHPSmr addr:iPTR:$dst, VR128:v4f32:$src)
/*9556*/              /*Scope*/ 18, /*->9575*/
/*9557*/                OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*9559*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*9562*/                OPC_EmitMergeInputChains1_0,
/*9563*/                OPC_MorphNodeTo, TARGET_VAL(X86::MOVHPSmr), 0|OPFL_Chain|OPFL_MemRefs,
                            0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                        // Src: (st (vector_extract:f64 (vector_shuffle:v2f64 (bitconvert:v2f64 VR128:v4f32:$src), (undef:v2f64))<<P:Predicate_unpckh>>, 0:iPTR), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 40
                        // Dst: (MOVHPSmr addr:iPTR:$dst, VR128:v4f32:$src)
/*9575*/              0, /*End of Scope*/
/*9576*/            /*Scope*/ 65, /*->9642*/
/*9577*/              OPC_RecordChild0, // #1 = $src
/*9578*/              OPC_MoveChild, 1,
/*9580*/              OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
/*9583*/              OPC_MoveParent,
/*9584*/              OPC_CheckPredicate, 13, // Predicate_unpckh
/*9586*/              OPC_CheckType, MVT::v2f64,
/*9588*/              OPC_MoveParent,
/*9589*/              OPC_MoveChild, 1,
/*9591*/              OPC_CheckInteger, 0, 
/*9593*/              OPC_MoveParent,
/*9594*/              OPC_CheckType, MVT::f64,
/*9596*/              OPC_MoveParent,
/*9597*/              OPC_RecordChild2, // #2 = $dst
/*9598*/              OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*9600*/              OPC_CheckPredicate, 5, // Predicate_store
/*9602*/              OPC_Scope, 18, /*->9622*/ // 2 children in Scope
/*9604*/                OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*9606*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*9609*/                OPC_EmitMergeInputChains1_0,
/*9610*/                OPC_MorphNodeTo, TARGET_VAL(X86::VMOVHPDmr), 0|OPFL_Chain|OPFL_MemRefs,
                            0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                        // Src: (st (vector_extract:f64 (vector_shuffle:v2f64 VR128:v2f64:$src, (undef:v2f64))<<P:Predicate_unpckh>>, 0:iPTR), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 37
                        // Dst: (VMOVHPDmr addr:iPTR:$dst, VR128:v2f64:$src)
/*9622*/              /*Scope*/ 18, /*->9641*/
/*9623*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*9625*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*9628*/                OPC_EmitMergeInputChains1_0,
/*9629*/                OPC_MorphNodeTo, TARGET_VAL(X86::MOVHPDmr), 0|OPFL_Chain|OPFL_MemRefs,
                            0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                        // Src: (st (vector_extract:f64 (vector_shuffle:v2f64 VR128:v2f64:$src, (undef:v2f64))<<P:Predicate_unpckh>>, 0:iPTR), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 37
                        // Dst: (MOVHPDmr addr:iPTR:$dst, VR128:v2f64:$src)
/*9641*/              0, /*End of Scope*/
/*9642*/            0, /*End of Scope*/
                  /*SwitchOpcode*/ 63,  TARGET_VAL(X86ISD::UNPCKHPS),// ->9709
/*9646*/            OPC_RecordChild0, // #1 = $src
/*9647*/            OPC_MoveChild, 1,
/*9649*/            OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
/*9652*/            OPC_MoveParent,
/*9653*/            OPC_CheckType, MVT::v2f64,
/*9655*/            OPC_MoveParent,
/*9656*/            OPC_MoveChild, 1,
/*9658*/            OPC_CheckInteger, 0, 
/*9660*/            OPC_MoveParent,
/*9661*/            OPC_CheckType, MVT::f64,
/*9663*/            OPC_MoveParent,
/*9664*/            OPC_RecordChild2, // #2 = $dst
/*9665*/            OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*9667*/            OPC_CheckPredicate, 5, // Predicate_store
/*9669*/            OPC_Scope, 18, /*->9689*/ // 2 children in Scope
/*9671*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*9673*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*9676*/              OPC_EmitMergeInputChains1_0,
/*9677*/              OPC_MorphNodeTo, TARGET_VAL(X86::VMOVHPSmr), 0|OPFL_Chain|OPFL_MemRefs,
                          0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                      // Src: (st (vector_extract:f64 (X86Unpckhps:v2f64 VR128:v2f64:$src, (undef:v2f64)), 0:iPTR), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 36
                      // Dst: (VMOVHPSmr addr:iPTR:$dst, VR128:v2f64:$src)
/*9689*/            /*Scope*/ 18, /*->9708*/
/*9690*/              OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*9692*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*9695*/              OPC_EmitMergeInputChains1_0,
/*9696*/              OPC_MorphNodeTo, TARGET_VAL(X86::MOVHPSmr), 0|OPFL_Chain|OPFL_MemRefs,
                          0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                      // Src: (st (vector_extract:f64 (X86Unpckhps:v2f64 VR128:v2f64:$src, (undef:v2f64)), 0:iPTR), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 36
                      // Dst: (MOVHPSmr addr:iPTR:$dst, VR128:v2f64:$src)
/*9708*/            0, /*End of Scope*/
                  /*SwitchOpcode*/ 63,  TARGET_VAL(X86ISD::UNPCKHPD),// ->9775
/*9712*/            OPC_RecordChild0, // #1 = $src
/*9713*/            OPC_MoveChild, 1,
/*9715*/            OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
/*9718*/            OPC_MoveParent,
/*9719*/            OPC_CheckType, MVT::v2f64,
/*9721*/            OPC_MoveParent,
/*9722*/            OPC_MoveChild, 1,
/*9724*/            OPC_CheckInteger, 0, 
/*9726*/            OPC_MoveParent,
/*9727*/            OPC_CheckType, MVT::f64,
/*9729*/            OPC_MoveParent,
/*9730*/            OPC_RecordChild2, // #2 = $dst
/*9731*/            OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*9733*/            OPC_CheckPredicate, 5, // Predicate_store
/*9735*/            OPC_Scope, 18, /*->9755*/ // 2 children in Scope
/*9737*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*9739*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*9742*/              OPC_EmitMergeInputChains1_0,
/*9743*/              OPC_MorphNodeTo, TARGET_VAL(X86::VMOVHPDmr), 0|OPFL_Chain|OPFL_MemRefs,
                          0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                      // Src: (st (vector_extract:f64 (X86Unpckhpd:v2f64 VR128:v2f64:$src, (undef:v2f64)), 0:iPTR), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 36
                      // Dst: (VMOVHPDmr addr:iPTR:$dst, VR128:v2f64:$src)
/*9755*/            /*Scope*/ 18, /*->9774*/
/*9756*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*9758*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*9761*/              OPC_EmitMergeInputChains1_0,
/*9762*/              OPC_MorphNodeTo, TARGET_VAL(X86::MOVHPDmr), 0|OPFL_Chain|OPFL_MemRefs,
                          0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                      // Src: (st (vector_extract:f64 (X86Unpckhpd:v2f64 VR128:v2f64:$src, (undef:v2f64)), 0:iPTR), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 36
                      // Dst: (MOVHPDmr addr:iPTR:$dst, VR128:v2f64:$src)
/*9774*/            0, /*End of Scope*/
                  /*SwitchOpcode*/ 125,  TARGET_VAL(ISD::BITCAST),// ->9903
/*9778*/            OPC_RecordChild0, // #1 = $src
/*9779*/            OPC_CheckChild0Type, MVT::v4f32,
/*9781*/            OPC_SwitchType /*2 cases */, 54,  MVT::v2f64,// ->9838
/*9784*/              OPC_MoveParent,
/*9785*/              OPC_MoveChild, 1,
/*9787*/              OPC_CheckInteger, 0, 
/*9789*/              OPC_MoveParent,
/*9790*/              OPC_CheckType, MVT::f64,
/*9792*/              OPC_MoveParent,
/*9793*/              OPC_RecordChild2, // #2 = $dst
/*9794*/              OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*9796*/              OPC_CheckPredicate, 5, // Predicate_store
/*9798*/              OPC_Scope, 18, /*->9818*/ // 2 children in Scope
/*9800*/                OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*9802*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*9805*/                OPC_EmitMergeInputChains1_0,
/*9806*/                OPC_MorphNodeTo, TARGET_VAL(X86::VMOVLPSmr), 0|OPFL_Chain|OPFL_MemRefs,
                            0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                        // Src: (st (vector_extract:f64 (bitconvert:v2f64 VR128:v4f32:$src), 0:iPTR), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 33
                        // Dst: (VMOVLPSmr addr:iPTR:$dst, VR128:v4f32:$src)
/*9818*/              /*Scope*/ 18, /*->9837*/
/*9819*/                OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*9821*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*9824*/                OPC_EmitMergeInputChains1_0,
/*9825*/                OPC_MorphNodeTo, TARGET_VAL(X86::MOVLPSmr), 0|OPFL_Chain|OPFL_MemRefs,
                            0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                        // Src: (st (vector_extract:f64 (bitconvert:v2f64 VR128:v4f32:$src), 0:iPTR), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 33
                        // Dst: (MOVLPSmr addr:iPTR:$dst, VR128:v4f32:$src)
/*9837*/              0, /*End of Scope*/
                    /*SwitchType*/ 62,  MVT::v4i32,// ->9902
/*9840*/              OPC_MoveParent,
/*9841*/              OPC_RecordChild1, // #2 = $src2
/*9842*/              OPC_MoveChild, 1,
/*9844*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*9847*/              OPC_MoveParent,
/*9848*/              OPC_CheckType, MVT::i32,
/*9850*/              OPC_MoveParent,
/*9851*/              OPC_RecordChild2, // #3 = $dst
/*9852*/              OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*9854*/              OPC_CheckPredicate, 5, // Predicate_store
/*9856*/              OPC_Scope, 21, /*->9879*/ // 2 children in Scope
/*9858*/                OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*9860*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // SelectAddr:$dst #4 #5 #6 #7 #8
/*9863*/                OPC_EmitMergeInputChains1_0,
/*9864*/                OPC_EmitConvertToTarget, 2,
/*9866*/                OPC_MorphNodeTo, TARGET_VAL(X86::VEXTRACTPSmr), 0|OPFL_Chain|OPFL_MemRefs,
                            0/*#VTs*/, 7/*#Ops*/, 4, 5, 6, 7, 8, 1, 9, 
                        // Src: (st (extractelt:i32 (bitconvert:v4i32 VR128:v4f32:$src1), (imm:iPTR):$src2), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 31
                        // Dst: (VEXTRACTPSmr addr:iPTR:$dst, VR128:v4f32:$src1, (imm:i32):$src2)
/*9879*/              /*Scope*/ 21, /*->9901*/
/*9880*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*9882*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // SelectAddr:$dst #4 #5 #6 #7 #8
/*9885*/                OPC_EmitMergeInputChains1_0,
/*9886*/                OPC_EmitConvertToTarget, 2,
/*9888*/                OPC_MorphNodeTo, TARGET_VAL(X86::EXTRACTPSmr), 0|OPFL_Chain|OPFL_MemRefs,
                            0/*#VTs*/, 7/*#Ops*/, 4, 5, 6, 7, 8, 1, 9, 
                        // Src: (st (extractelt:i32 (bitconvert:v4i32 VR128:v4f32:$src1), (imm:iPTR):$src2), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 31
                        // Dst: (EXTRACTPSmr addr:iPTR:$dst, VR128:v4f32:$src1, (imm:i32):$src2)
/*9901*/              0, /*End of Scope*/
                    0, // EndSwitchType
                  0, // EndSwitchOpcode
/*9904*/        /*Scope*/ 56|128,3/*440*/, /*->10346*/
/*9906*/          OPC_RecordChild0, // #1 = $src
/*9907*/          OPC_Scope, 114, /*->10023*/ // 4 children in Scope
/*9909*/            OPC_CheckChild0Type, MVT::v2f64,
/*9911*/            OPC_MoveChild, 1,
/*9913*/            OPC_CheckInteger, 0, 
/*9915*/            OPC_MoveParent,
/*9916*/            OPC_CheckType, MVT::f64,
/*9918*/            OPC_MoveParent,
/*9919*/            OPC_RecordChild2, // #2 = $dst
/*9920*/            OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*9922*/            OPC_CheckPredicate, 5, // Predicate_store
/*9924*/            OPC_Scope, 18, /*->9944*/ // 3 children in Scope
/*9926*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*9928*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*9931*/              OPC_EmitMergeInputChains1_0,
/*9932*/              OPC_MorphNodeTo, TARGET_VAL(X86::VMOVLPDmr), 0|OPFL_Chain|OPFL_MemRefs,
                          0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                      // Src: (st (vector_extract:f64 VR128:v2f64:$src, 0:iPTR), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 30
                      // Dst: (VMOVLPDmr addr:iPTR:$dst, VR128:v2f64:$src)
/*9944*/            /*Scope*/ 46, /*->9991*/
/*9945*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*9947*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*9950*/              OPC_EmitMergeInputChains1_0,
/*9951*/              OPC_Scope, 12, /*->9965*/ // 2 children in Scope
/*9953*/                OPC_MorphNodeTo, TARGET_VAL(X86::MOVLPDmr), 0|OPFL_Chain|OPFL_MemRefs,
                            0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                        // Src: (st (vector_extract:f64 VR128:v2f64:$src, 0:iPTR), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 30
                        // Dst: (MOVLPDmr addr:iPTR:$dst, VR128:v2f64:$src)
/*9965*/              /*Scope*/ 24, /*->9990*/
/*9966*/                OPC_EmitInteger, MVT::i32, X86::sub_sd,
/*9969*/                OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            1/*#VTs*/, MVT::f64, 2/*#Ops*/, 1, 8,  // Results = #9 
/*9978*/                OPC_MorphNodeTo, TARGET_VAL(X86::MOVSDmr), 0|OPFL_Chain|OPFL_MemRefs,
                            0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 9, 
                        // Src: (st (vector_extract:f64 VR128:v2f64:$src, 0:iPTR), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 30
                        // Dst: (MOVSDmr addr:iPTR:$dst, (EXTRACT_SUBREG:f64 VR128:v2f64:$src, sub_sd:i32))
/*9990*/              0, /*End of Scope*/
/*9991*/            /*Scope*/ 30, /*->10022*/
/*9992*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*9994*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*9997*/              OPC_EmitMergeInputChains1_0,
/*9998*/              OPC_EmitInteger, MVT::i32, X86::sub_sd,
/*10001*/             OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          1/*#VTs*/, MVT::f64, 2/*#Ops*/, 1, 8,  // Results = #9 
/*10010*/             OPC_MorphNodeTo, TARGET_VAL(X86::VMOVSDmr), 0|OPFL_Chain|OPFL_MemRefs,
                          0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 9, 
                      // Src: (st (vector_extract:f64 VR128:v2f64:$src, 0:iPTR), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 30
                      // Dst: (VMOVSDmr addr:iPTR:$dst, (EXTRACT_SUBREG:f64 VR128:v2f64:$src, sub_sd:i32))
/*10022*/           0, /*End of Scope*/
/*10023*/         /*Scope*/ 120, /*->10144*/
/*10024*/           OPC_CheckChild0Type, MVT::v4i32,
/*10026*/           OPC_Scope, 53, /*->10081*/ // 2 children in Scope
/*10028*/             OPC_MoveChild, 1,
/*10030*/             OPC_CheckInteger, 0, 
/*10032*/             OPC_MoveParent,
/*10033*/             OPC_CheckType, MVT::i32,
/*10035*/             OPC_MoveParent,
/*10036*/             OPC_RecordChild2, // #2 = $dst
/*10037*/             OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*10039*/             OPC_CheckPredicate, 5, // Predicate_store
/*10041*/             OPC_Scope, 18, /*->10061*/ // 2 children in Scope
/*10043*/               OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*10045*/               OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*10048*/               OPC_EmitMergeInputChains1_0,
/*10049*/               OPC_MorphNodeTo, TARGET_VAL(X86::VMOVPDI2DImr), 0|OPFL_Chain|OPFL_MemRefs,
                            0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                        // Src: (st (vector_extract:i32 VR128:v4i32:$src, 0:iPTR), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 30
                        // Dst: (VMOVPDI2DImr addr:iPTR:$dst, VR128:v4i32:$src)
/*10061*/             /*Scope*/ 18, /*->10080*/
/*10062*/               OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*10064*/               OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*10067*/               OPC_EmitMergeInputChains1_0,
/*10068*/               OPC_MorphNodeTo, TARGET_VAL(X86::MOVPDI2DImr), 0|OPFL_Chain|OPFL_MemRefs,
                            0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                        // Src: (st (vector_extract:i32 VR128:v4i32:$src, 0:iPTR), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 30
                        // Dst: (MOVPDI2DImr addr:iPTR:$dst, VR128:v4i32:$src)
/*10080*/             0, /*End of Scope*/
/*10081*/           /*Scope*/ 61, /*->10143*/
/*10082*/             OPC_RecordChild1, // #2 = $src2
/*10083*/             OPC_MoveChild, 1,
/*10085*/             OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*10088*/             OPC_MoveParent,
/*10089*/             OPC_CheckType, MVT::i32,
/*10091*/             OPC_MoveParent,
/*10092*/             OPC_RecordChild2, // #3 = $dst
/*10093*/             OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*10095*/             OPC_CheckPredicate, 5, // Predicate_store
/*10097*/             OPC_Scope, 21, /*->10120*/ // 2 children in Scope
/*10099*/               OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*10101*/               OPC_CheckComplexPat, /*CP*/0, /*#*/3, // SelectAddr:$dst #4 #5 #6 #7 #8
/*10104*/               OPC_EmitMergeInputChains1_0,
/*10105*/               OPC_EmitConvertToTarget, 2,
/*10107*/               OPC_MorphNodeTo, TARGET_VAL(X86::VPEXTRDmr), 0|OPFL_Chain|OPFL_MemRefs,
                            0/*#VTs*/, 7/*#Ops*/, 4, 5, 6, 7, 8, 1, 9, 
                        // Src: (st (extractelt:i32 VR128:v4i32:$src1, (imm:iPTR):$src2), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 28
                        // Dst: (VPEXTRDmr addr:iPTR:$dst, VR128:v4i32:$src1, (imm:i32):$src2)
/*10120*/             /*Scope*/ 21, /*->10142*/
/*10121*/               OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*10123*/               OPC_CheckComplexPat, /*CP*/0, /*#*/3, // SelectAddr:$dst #4 #5 #6 #7 #8
/*10126*/               OPC_EmitMergeInputChains1_0,
/*10127*/               OPC_EmitConvertToTarget, 2,
/*10129*/               OPC_MorphNodeTo, TARGET_VAL(X86::PEXTRDmr), 0|OPFL_Chain|OPFL_MemRefs,
                            0/*#VTs*/, 7/*#Ops*/, 4, 5, 6, 7, 8, 1, 9, 
                        // Src: (st (extractelt:i32 VR128:v4i32:$src1, (imm:iPTR):$src2), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 28
                        // Dst: (PEXTRDmr addr:iPTR:$dst, VR128:v4i32:$src1, (imm:i32):$src2)
/*10142*/             0, /*End of Scope*/
/*10143*/           0, /*End of Scope*/
/*10144*/         /*Scope*/ 120, /*->10265*/
/*10145*/           OPC_CheckChild0Type, MVT::v2i64,
/*10147*/           OPC_Scope, 53, /*->10202*/ // 2 children in Scope
/*10149*/             OPC_MoveChild, 1,
/*10151*/             OPC_CheckInteger, 0, 
/*10153*/             OPC_MoveParent,
/*10154*/             OPC_CheckType, MVT::i64,
/*10156*/             OPC_MoveParent,
/*10157*/             OPC_RecordChild2, // #2 = $dst
/*10158*/             OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*10160*/             OPC_CheckPredicate, 5, // Predicate_store
/*10162*/             OPC_Scope, 18, /*->10182*/ // 2 children in Scope
/*10164*/               OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*10166*/               OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*10169*/               OPC_EmitMergeInputChains1_0,
/*10170*/               OPC_MorphNodeTo, TARGET_VAL(X86::VMOVPQI2QImr), 0|OPFL_Chain|OPFL_MemRefs,
                            0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                        // Src: (st (vector_extract:i64 VR128:v2i64:$src, 0:iPTR), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 30
                        // Dst: (VMOVPQI2QImr addr:iPTR:$dst, VR128:v2i64:$src)
/*10182*/             /*Scope*/ 18, /*->10201*/
/*10183*/               OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*10185*/               OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*10188*/               OPC_EmitMergeInputChains1_0,
/*10189*/               OPC_MorphNodeTo, TARGET_VAL(X86::MOVPQI2QImr), 0|OPFL_Chain|OPFL_MemRefs,
                            0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                        // Src: (st (vector_extract:i64 VR128:v2i64:$src, 0:iPTR), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 30
                        // Dst: (MOVPQI2QImr addr:iPTR:$dst, VR128:v2i64:$src)
/*10201*/             0, /*End of Scope*/
/*10202*/           /*Scope*/ 61, /*->10264*/
/*10203*/             OPC_RecordChild1, // #2 = $src2
/*10204*/             OPC_MoveChild, 1,
/*10206*/             OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*10209*/             OPC_MoveParent,
/*10210*/             OPC_CheckType, MVT::i64,
/*10212*/             OPC_MoveParent,
/*10213*/             OPC_RecordChild2, // #3 = $dst
/*10214*/             OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*10216*/             OPC_CheckPredicate, 5, // Predicate_store
/*10218*/             OPC_Scope, 21, /*->10241*/ // 2 children in Scope
/*10220*/               OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*10222*/               OPC_CheckComplexPat, /*CP*/0, /*#*/3, // SelectAddr:$dst #4 #5 #6 #7 #8
/*10225*/               OPC_EmitMergeInputChains1_0,
/*10226*/               OPC_EmitConvertToTarget, 2,
/*10228*/               OPC_MorphNodeTo, TARGET_VAL(X86::VPEXTRQmr), 0|OPFL_Chain|OPFL_MemRefs,
                            0/*#VTs*/, 7/*#Ops*/, 4, 5, 6, 7, 8, 1, 9, 
                        // Src: (st (extractelt:i64 VR128:v2i64:$src1, (imm:iPTR):$src2), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 28
                        // Dst: (VPEXTRQmr addr:iPTR:$dst, VR128:v2i64:$src1, (imm:i32):$src2)
/*10241*/             /*Scope*/ 21, /*->10263*/
/*10242*/               OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*10244*/               OPC_CheckComplexPat, /*CP*/0, /*#*/3, // SelectAddr:$dst #4 #5 #6 #7 #8
/*10247*/               OPC_EmitMergeInputChains1_0,
/*10248*/               OPC_EmitConvertToTarget, 2,
/*10250*/               OPC_MorphNodeTo, TARGET_VAL(X86::PEXTRQmr), 0|OPFL_Chain|OPFL_MemRefs,
                            0/*#VTs*/, 7/*#Ops*/, 4, 5, 6, 7, 8, 1, 9, 
                        // Src: (st (extractelt:i64 VR128:v2i64:$src1, (imm:iPTR):$src2), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 28
                        // Dst: (PEXTRQmr addr:iPTR:$dst, VR128:v2i64:$src1, (imm:i32):$src2)
/*10263*/             0, /*End of Scope*/
/*10264*/           0, /*End of Scope*/
/*10265*/         /*Scope*/ 79, /*->10345*/
/*10266*/           OPC_CheckChild0Type, MVT::v4f32,
/*10268*/           OPC_MoveChild, 1,
/*10270*/           OPC_CheckInteger, 0, 
/*10272*/           OPC_MoveParent,
/*10273*/           OPC_CheckType, MVT::f32,
/*10275*/           OPC_MoveParent,
/*10276*/           OPC_RecordChild2, // #2 = $dst
/*10277*/           OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*10279*/           OPC_CheckPredicate, 5, // Predicate_store
/*10281*/           OPC_Scope, 30, /*->10313*/ // 2 children in Scope
/*10283*/             OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*10285*/             OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*10288*/             OPC_EmitMergeInputChains1_0,
/*10289*/             OPC_EmitInteger, MVT::i32, X86::sub_ss,
/*10292*/             OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          1/*#VTs*/, MVT::f32, 2/*#Ops*/, 1, 8,  // Results = #9 
/*10301*/             OPC_MorphNodeTo, TARGET_VAL(X86::MOVSSmr), 0|OPFL_Chain|OPFL_MemRefs,
                          0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 9, 
                      // Src: (st (vector_extract:f32 VR128:v4f32:$src, 0:iPTR), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 30
                      // Dst: (MOVSSmr addr:iPTR:$dst, (EXTRACT_SUBREG:f32 VR128:v4f32:$src, sub_ss:i32))
/*10313*/           /*Scope*/ 30, /*->10344*/
/*10314*/             OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*10316*/             OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*10319*/             OPC_EmitMergeInputChains1_0,
/*10320*/             OPC_EmitInteger, MVT::i32, X86::sub_ss,
/*10323*/             OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          1/*#VTs*/, MVT::f32, 2/*#Ops*/, 1, 8,  // Results = #9 
/*10332*/             OPC_MorphNodeTo, TARGET_VAL(X86::VMOVSSmr), 0|OPFL_Chain|OPFL_MemRefs,
                          0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 9, 
                      // Src: (st (vector_extract:f32 VR128:v4f32:$src, 0:iPTR), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 30
                      // Dst: (VMOVSSmr addr:iPTR:$dst, (EXTRACT_SUBREG:f32 VR128:v4f32:$src, sub_ss:i32))
/*10344*/           0, /*End of Scope*/
/*10345*/         0, /*End of Scope*/
/*10346*/       0, /*End of Scope*/
              /*SwitchOpcode*/ 52|128,1/*180*/,  TARGET_VAL(ISD::TRUNCATE),// ->10531
/*10351*/       OPC_MoveChild, 0,
/*10353*/       OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
/*10356*/       OPC_RecordChild0, // #1 = $src
/*10357*/       OPC_MoveChild, 1,
/*10359*/       OPC_CheckInteger, 8, 
/*10361*/       OPC_CheckType, MVT::i8,
/*10363*/       OPC_MoveParent,
/*10364*/       OPC_CheckPredicate, 14, // Predicate_srl_su
/*10366*/       OPC_SwitchType /*3 cases */, 51,  MVT::i64,// ->10420
/*10369*/         OPC_MoveParent,
/*10370*/         OPC_CheckPredicate, 15, // Predicate_trunc_su
/*10372*/         OPC_CheckType, MVT::i8,
/*10374*/         OPC_MoveParent,
/*10375*/         OPC_RecordChild2, // #2 = $dst
/*10376*/         OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*10378*/         OPC_CheckPredicate, 5, // Predicate_store
/*10380*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*10383*/         OPC_EmitMergeInputChains1_0,
/*10384*/         OPC_EmitInteger, MVT::i32, X86::GR64_ABCDRegClassID,
/*10387*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      1/*#VTs*/, MVT::i64, 2/*#Ops*/, 1, 8,  // Results = #9 
/*10396*/         OPC_EmitInteger, MVT::i32, X86::sub_8bit_hi,
/*10399*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      1/*#VTs*/, MVT::i8, 2/*#Ops*/, 9, 10,  // Results = #11 
/*10408*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOV8mr_NOREX), 0|OPFL_Chain|OPFL_MemRefs,
                      0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 11, 
                  // Src: (st (trunc:i8 (srl:i64 GR64:i64:$src, 8:i8)<<P:Predicate_srl_su>>)<<P:Predicate_trunc_su>>, addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 35
                  // Dst: (MOV8mr_NOREX addr:i64:$dst, (EXTRACT_SUBREG:i8 (COPY_TO_REGCLASS:i64 GR64:i64:$src, GR64_ABCD:i64), sub_8bit_hi:i32))
                /*SwitchType*/ 53,  MVT::i32,// ->10475
/*10422*/         OPC_MoveParent,
/*10423*/         OPC_CheckPredicate, 15, // Predicate_trunc_su
/*10425*/         OPC_CheckType, MVT::i8,
/*10427*/         OPC_MoveParent,
/*10428*/         OPC_RecordChild2, // #2 = $dst
/*10429*/         OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*10431*/         OPC_CheckPredicate, 5, // Predicate_store
/*10433*/         OPC_CheckPatternPredicate, 4, // (Subtarget->is64Bit())
/*10435*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*10438*/         OPC_EmitMergeInputChains1_0,
/*10439*/         OPC_EmitInteger, MVT::i32, X86::GR32_ABCDRegClassID,
/*10442*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      1/*#VTs*/, MVT::i32, 2/*#Ops*/, 1, 8,  // Results = #9 
/*10451*/         OPC_EmitInteger, MVT::i32, X86::sub_8bit_hi,
/*10454*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      1/*#VTs*/, MVT::i8, 2/*#Ops*/, 9, 10,  // Results = #11 
/*10463*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOV8mr_NOREX), 0|OPFL_Chain|OPFL_MemRefs,
                      0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 11, 
                  // Src: (st (trunc:i8 (srl:i32 GR32:i32:$src, 8:i8)<<P:Predicate_srl_su>>)<<P:Predicate_trunc_su>>, addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 35
                  // Dst: (MOV8mr_NOREX addr:i64:$dst, (EXTRACT_SUBREG:i8 (COPY_TO_REGCLASS:i32 GR32:i32:$src, GR32_ABCD:i32), sub_8bit_hi:i32))
                /*SwitchType*/ 53,  MVT::i16,// ->10530
/*10477*/         OPC_MoveParent,
/*10478*/         OPC_CheckPredicate, 15, // Predicate_trunc_su
/*10480*/         OPC_CheckType, MVT::i8,
/*10482*/         OPC_MoveParent,
/*10483*/         OPC_RecordChild2, // #2 = $dst
/*10484*/         OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*10486*/         OPC_CheckPredicate, 5, // Predicate_store
/*10488*/         OPC_CheckPatternPredicate, 4, // (Subtarget->is64Bit())
/*10490*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*10493*/         OPC_EmitMergeInputChains1_0,
/*10494*/         OPC_EmitInteger, MVT::i32, X86::GR16_ABCDRegClassID,
/*10497*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      1/*#VTs*/, MVT::i16, 2/*#Ops*/, 1, 8,  // Results = #9 
/*10506*/         OPC_EmitInteger, MVT::i32, X86::sub_8bit_hi,
/*10509*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      1/*#VTs*/, MVT::i8, 2/*#Ops*/, 9, 10,  // Results = #11 
/*10518*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOV8mr_NOREX), 0|OPFL_Chain|OPFL_MemRefs,
                      0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 11, 
                  // Src: (st (trunc:i8 (srl:i16 GR16:i16:$src, 8:i8)<<P:Predicate_srl_su>>)<<P:Predicate_trunc_su>>, addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 35
                  // Dst: (MOV8mr_NOREX addr:i64:$dst, (EXTRACT_SUBREG:i8 (COPY_TO_REGCLASS:i16 GR16:i16:$src, GR16_ABCD:i16), sub_8bit_hi:i32))
                0, // EndSwitchType
              /*SwitchOpcode*/ 80,  TARGET_VAL(ISD::BITCAST),// ->10614
/*10534*/       OPC_MoveChild, 0,
/*10536*/       OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*10539*/       OPC_MoveChild, 0,
/*10541*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*10544*/       OPC_RecordChild0, // #1 = $src1
/*10545*/       OPC_CheckChild0Type, MVT::v4f32,
/*10547*/       OPC_CheckType, MVT::v4i32,
/*10549*/       OPC_MoveParent,
/*10550*/       OPC_RecordChild1, // #2 = $src2
/*10551*/       OPC_MoveChild, 1,
/*10553*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*10556*/       OPC_MoveParent,
/*10557*/       OPC_CheckType, MVT::i32,
/*10559*/       OPC_MoveParent,
/*10560*/       OPC_CheckType, MVT::f32,
/*10562*/       OPC_MoveParent,
/*10563*/       OPC_RecordChild2, // #3 = $dst
/*10564*/       OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*10566*/       OPC_CheckPredicate, 5, // Predicate_store
/*10568*/       OPC_Scope, 21, /*->10591*/ // 2 children in Scope
/*10570*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*10572*/         OPC_CheckComplexPat, /*CP*/0, /*#*/3, // SelectAddr:$dst #4 #5 #6 #7 #8
/*10575*/         OPC_EmitMergeInputChains1_0,
/*10576*/         OPC_EmitConvertToTarget, 2,
/*10578*/         OPC_MorphNodeTo, TARGET_VAL(X86::EXTRACTPSmr), 0|OPFL_Chain|OPFL_MemRefs,
                      0/*#VTs*/, 7/*#Ops*/, 4, 5, 6, 7, 8, 1, 9, 
                  // Src: (st (bitconvert:f32 (extractelt:i32 (bitconvert:v4i32 VR128:v4f32:$src1), (imm:iPTR):$src2)), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 34
                  // Dst: (EXTRACTPSmr addr:iPTR:$dst, VR128:v4f32:$src1, (imm:i32):$src2)
/*10591*/       /*Scope*/ 21, /*->10613*/
/*10592*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*10594*/         OPC_CheckComplexPat, /*CP*/0, /*#*/3, // SelectAddr:$dst #4 #5 #6 #7 #8
/*10597*/         OPC_EmitMergeInputChains1_0,
/*10598*/         OPC_EmitConvertToTarget, 2,
/*10600*/         OPC_MorphNodeTo, TARGET_VAL(X86::VEXTRACTPSmr), 0|OPFL_Chain|OPFL_MemRefs,
                      0/*#VTs*/, 7/*#Ops*/, 4, 5, 6, 7, 8, 1, 9, 
                  // Src: (st (bitconvert:f32 (extractelt:i32 (bitconvert:v4i32 VR128:v4f32:$src1), (imm:iPTR):$src2)), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 34
                  // Dst: (VEXTRACTPSmr addr:iPTR:$dst, VR128:v4f32:$src1, (imm:i32):$src2)
/*10613*/       0, /*End of Scope*/
              /*SwitchOpcode*/ 84|128,3/*468*/,  TARGET_VAL(X86ISD::SETCC),// ->11086
/*10618*/       OPC_MoveChild, 0,
/*10620*/       OPC_Scope, 28, /*->10650*/ // 16 children in Scope
/*10622*/         OPC_CheckInteger, 13, 
/*10624*/         OPC_MoveParent,
/*10625*/         OPC_RecordChild1, // #1 = physreg input EFLAGS
/*10626*/         OPC_MoveParent,
/*10627*/         OPC_RecordChild2, // #2 = $dst
/*10628*/         OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*10630*/         OPC_CheckPredicate, 5, // Predicate_store
/*10632*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*10635*/         OPC_EmitMergeInputChains1_0,
/*10636*/         OPC_EmitCopyToReg, 1, X86::EFLAGS,
/*10639*/         OPC_MorphNodeTo, TARGET_VAL(X86::SETOm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      0/*#VTs*/, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                  // Src: (st (X86setcc:i8 13:i8, EFLAGS:i32), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 30
                  // Dst: (SETOm addr:iPTR:$dst)
/*10650*/       /*Scope*/ 28, /*->10679*/
/*10651*/         OPC_CheckInteger, 10, 
/*10653*/         OPC_MoveParent,
/*10654*/         OPC_RecordChild1, // #1 = physreg input EFLAGS
/*10655*/         OPC_MoveParent,
/*10656*/         OPC_RecordChild2, // #2 = $dst
/*10657*/         OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*10659*/         OPC_CheckPredicate, 5, // Predicate_store
/*10661*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*10664*/         OPC_EmitMergeInputChains1_0,
/*10665*/         OPC_EmitCopyToReg, 1, X86::EFLAGS,
/*10668*/         OPC_MorphNodeTo, TARGET_VAL(X86::SETNOm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      0/*#VTs*/, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                  // Src: (st (X86setcc:i8 10:i8, EFLAGS:i32), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 30
                  // Dst: (SETNOm addr:iPTR:$dst)
/*10679*/       /*Scope*/ 28, /*->10708*/
/*10680*/         OPC_CheckInteger, 2, 
/*10682*/         OPC_MoveParent,
/*10683*/         OPC_RecordChild1, // #1 = physreg input EFLAGS
/*10684*/         OPC_MoveParent,
/*10685*/         OPC_RecordChild2, // #2 = $dst
/*10686*/         OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*10688*/         OPC_CheckPredicate, 5, // Predicate_store
/*10690*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*10693*/         OPC_EmitMergeInputChains1_0,
/*10694*/         OPC_EmitCopyToReg, 1, X86::EFLAGS,
/*10697*/         OPC_MorphNodeTo, TARGET_VAL(X86::SETBm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      0/*#VTs*/, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                  // Src: (st (X86setcc:i8 2:i8, EFLAGS:i32), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 30
                  // Dst: (SETBm addr:iPTR:$dst)
/*10708*/       /*Scope*/ 28, /*->10737*/
/*10709*/         OPC_CheckInteger, 1, 
/*10711*/         OPC_MoveParent,
/*10712*/         OPC_RecordChild1, // #1 = physreg input EFLAGS
/*10713*/         OPC_MoveParent,
/*10714*/         OPC_RecordChild2, // #2 = $dst
/*10715*/         OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*10717*/         OPC_CheckPredicate, 5, // Predicate_store
/*10719*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*10722*/         OPC_EmitMergeInputChains1_0,
/*10723*/         OPC_EmitCopyToReg, 1, X86::EFLAGS,
/*10726*/         OPC_MorphNodeTo, TARGET_VAL(X86::SETAEm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      0/*#VTs*/, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                  // Src: (st (X86setcc:i8 1:i8, EFLAGS:i32), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 30
                  // Dst: (SETAEm addr:iPTR:$dst)
/*10737*/       /*Scope*/ 28, /*->10766*/
/*10738*/         OPC_CheckInteger, 4, 
/*10740*/         OPC_MoveParent,
/*10741*/         OPC_RecordChild1, // #1 = physreg input EFLAGS
/*10742*/         OPC_MoveParent,
/*10743*/         OPC_RecordChild2, // #2 = $dst
/*10744*/         OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*10746*/         OPC_CheckPredicate, 5, // Predicate_store
/*10748*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*10751*/         OPC_EmitMergeInputChains1_0,
/*10752*/         OPC_EmitCopyToReg, 1, X86::EFLAGS,
/*10755*/         OPC_MorphNodeTo, TARGET_VAL(X86::SETEm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      0/*#VTs*/, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                  // Src: (st (X86setcc:i8 4:i8, EFLAGS:i32), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 30
                  // Dst: (SETEm addr:iPTR:$dst)
/*10766*/       /*Scope*/ 28, /*->10795*/
/*10767*/         OPC_CheckInteger, 9, 
/*10769*/         OPC_MoveParent,
/*10770*/         OPC_RecordChild1, // #1 = physreg input EFLAGS
/*10771*/         OPC_MoveParent,
/*10772*/         OPC_RecordChild2, // #2 = $dst
/*10773*/         OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*10775*/         OPC_CheckPredicate, 5, // Predicate_store
/*10777*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*10780*/         OPC_EmitMergeInputChains1_0,
/*10781*/         OPC_EmitCopyToReg, 1, X86::EFLAGS,
/*10784*/         OPC_MorphNodeTo, TARGET_VAL(X86::SETNEm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      0/*#VTs*/, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                  // Src: (st (X86setcc:i8 9:i8, EFLAGS:i32), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 30
                  // Dst: (SETNEm addr:iPTR:$dst)
/*10795*/       /*Scope*/ 28, /*->10824*/
/*10796*/         OPC_CheckInteger, 3, 
/*10798*/         OPC_MoveParent,
/*10799*/         OPC_RecordChild1, // #1 = physreg input EFLAGS
/*10800*/         OPC_MoveParent,
/*10801*/         OPC_RecordChild2, // #2 = $dst
/*10802*/         OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*10804*/         OPC_CheckPredicate, 5, // Predicate_store
/*10806*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*10809*/         OPC_EmitMergeInputChains1_0,
/*10810*/         OPC_EmitCopyToReg, 1, X86::EFLAGS,
/*10813*/         OPC_MorphNodeTo, TARGET_VAL(X86::SETBEm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      0/*#VTs*/, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                  // Src: (st (X86setcc:i8 3:i8, EFLAGS:i32), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 30
                  // Dst: (SETBEm addr:iPTR:$dst)
/*10824*/       /*Scope*/ 28, /*->10853*/
/*10825*/         OPC_CheckInteger, 0, 
/*10827*/         OPC_MoveParent,
/*10828*/         OPC_RecordChild1, // #1 = physreg input EFLAGS
/*10829*/         OPC_MoveParent,
/*10830*/         OPC_RecordChild2, // #2 = $dst
/*10831*/         OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*10833*/         OPC_CheckPredicate, 5, // Predicate_store
/*10835*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*10838*/         OPC_EmitMergeInputChains1_0,
/*10839*/         OPC_EmitCopyToReg, 1, X86::EFLAGS,
/*10842*/         OPC_MorphNodeTo, TARGET_VAL(X86::SETAm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      0/*#VTs*/, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                  // Src: (st (X86setcc:i8 0:i8, EFLAGS:i32), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 30
                  // Dst: (SETAm addr:iPTR:$dst)
/*10853*/       /*Scope*/ 28, /*->10882*/
/*10854*/         OPC_CheckInteger, 15, 
/*10856*/         OPC_MoveParent,
/*10857*/         OPC_RecordChild1, // #1 = physreg input EFLAGS
/*10858*/         OPC_MoveParent,
/*10859*/         OPC_RecordChild2, // #2 = $dst
/*10860*/         OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*10862*/         OPC_CheckPredicate, 5, // Predicate_store
/*10864*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*10867*/         OPC_EmitMergeInputChains1_0,
/*10868*/         OPC_EmitCopyToReg, 1, X86::EFLAGS,
/*10871*/         OPC_MorphNodeTo, TARGET_VAL(X86::SETSm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      0/*#VTs*/, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                  // Src: (st (X86setcc:i8 15:i8, EFLAGS:i32), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 30
                  // Dst: (SETSm addr:iPTR:$dst)
/*10882*/       /*Scope*/ 28, /*->10911*/
/*10883*/         OPC_CheckInteger, 12, 
/*10885*/         OPC_MoveParent,
/*10886*/         OPC_RecordChild1, // #1 = physreg input EFLAGS
/*10887*/         OPC_MoveParent,
/*10888*/         OPC_RecordChild2, // #2 = $dst
/*10889*/         OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*10891*/         OPC_CheckPredicate, 5, // Predicate_store
/*10893*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*10896*/         OPC_EmitMergeInputChains1_0,
/*10897*/         OPC_EmitCopyToReg, 1, X86::EFLAGS,
/*10900*/         OPC_MorphNodeTo, TARGET_VAL(X86::SETNSm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      0/*#VTs*/, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                  // Src: (st (X86setcc:i8 12:i8, EFLAGS:i32), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 30
                  // Dst: (SETNSm addr:iPTR:$dst)
/*10911*/       /*Scope*/ 28, /*->10940*/
/*10912*/         OPC_CheckInteger, 14, 
/*10914*/         OPC_MoveParent,
/*10915*/         OPC_RecordChild1, // #1 = physreg input EFLAGS
/*10916*/         OPC_MoveParent,
/*10917*/         OPC_RecordChild2, // #2 = $dst
/*10918*/         OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*10920*/         OPC_CheckPredicate, 5, // Predicate_store
/*10922*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*10925*/         OPC_EmitMergeInputChains1_0,
/*10926*/         OPC_EmitCopyToReg, 1, X86::EFLAGS,
/*10929*/         OPC_MorphNodeTo, TARGET_VAL(X86::SETPm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      0/*#VTs*/, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                  // Src: (st (X86setcc:i8 14:i8, EFLAGS:i32), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 30
                  // Dst: (SETPm addr:iPTR:$dst)
/*10940*/       /*Scope*/ 28, /*->10969*/
/*10941*/         OPC_CheckInteger, 11, 
/*10943*/         OPC_MoveParent,
/*10944*/         OPC_RecordChild1, // #1 = physreg input EFLAGS
/*10945*/         OPC_MoveParent,
/*10946*/         OPC_RecordChild2, // #2 = $dst
/*10947*/         OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*10949*/         OPC_CheckPredicate, 5, // Predicate_store
/*10951*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*10954*/         OPC_EmitMergeInputChains1_0,
/*10955*/         OPC_EmitCopyToReg, 1, X86::EFLAGS,
/*10958*/         OPC_MorphNodeTo, TARGET_VAL(X86::SETNPm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      0/*#VTs*/, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                  // Src: (st (X86setcc:i8 11:i8, EFLAGS:i32), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 30
                  // Dst: (SETNPm addr:iPTR:$dst)
/*10969*/       /*Scope*/ 28, /*->10998*/
/*10970*/         OPC_CheckInteger, 7, 
/*10972*/         OPC_MoveParent,
/*10973*/         OPC_RecordChild1, // #1 = physreg input EFLAGS
/*10974*/         OPC_MoveParent,
/*10975*/         OPC_RecordChild2, // #2 = $dst
/*10976*/         OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*10978*/         OPC_CheckPredicate, 5, // Predicate_store
/*10980*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*10983*/         OPC_EmitMergeInputChains1_0,
/*10984*/         OPC_EmitCopyToReg, 1, X86::EFLAGS,
/*10987*/         OPC_MorphNodeTo, TARGET_VAL(X86::SETLm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      0/*#VTs*/, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                  // Src: (st (X86setcc:i8 7:i8, EFLAGS:i32), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 30
                  // Dst: (SETLm addr:iPTR:$dst)
/*10998*/       /*Scope*/ 28, /*->11027*/
/*10999*/         OPC_CheckInteger, 6, 
/*11001*/         OPC_MoveParent,
/*11002*/         OPC_RecordChild1, // #1 = physreg input EFLAGS
/*11003*/         OPC_MoveParent,
/*11004*/         OPC_RecordChild2, // #2 = $dst
/*11005*/         OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*11007*/         OPC_CheckPredicate, 5, // Predicate_store
/*11009*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*11012*/         OPC_EmitMergeInputChains1_0,
/*11013*/         OPC_EmitCopyToReg, 1, X86::EFLAGS,
/*11016*/         OPC_MorphNodeTo, TARGET_VAL(X86::SETGEm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      0/*#VTs*/, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                  // Src: (st (X86setcc:i8 6:i8, EFLAGS:i32), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 30
                  // Dst: (SETGEm addr:iPTR:$dst)
/*11027*/       /*Scope*/ 28, /*->11056*/
/*11028*/         OPC_CheckInteger, 8, 
/*11030*/         OPC_MoveParent,
/*11031*/         OPC_RecordChild1, // #1 = physreg input EFLAGS
/*11032*/         OPC_MoveParent,
/*11033*/         OPC_RecordChild2, // #2 = $dst
/*11034*/         OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*11036*/         OPC_CheckPredicate, 5, // Predicate_store
/*11038*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*11041*/         OPC_EmitMergeInputChains1_0,
/*11042*/         OPC_EmitCopyToReg, 1, X86::EFLAGS,
/*11045*/         OPC_MorphNodeTo, TARGET_VAL(X86::SETLEm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      0/*#VTs*/, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                  // Src: (st (X86setcc:i8 8:i8, EFLAGS:i32), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 30
                  // Dst: (SETLEm addr:iPTR:$dst)
/*11056*/       /*Scope*/ 28, /*->11085*/
/*11057*/         OPC_CheckInteger, 5, 
/*11059*/         OPC_MoveParent,
/*11060*/         OPC_RecordChild1, // #1 = physreg input EFLAGS
/*11061*/         OPC_MoveParent,
/*11062*/         OPC_RecordChild2, // #2 = $dst
/*11063*/         OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*11065*/         OPC_CheckPredicate, 5, // Predicate_store
/*11067*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*11070*/         OPC_EmitMergeInputChains1_0,
/*11071*/         OPC_EmitCopyToReg, 1, X86::EFLAGS,
/*11074*/         OPC_MorphNodeTo, TARGET_VAL(X86::SETGm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      0/*#VTs*/, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                  // Src: (st (X86setcc:i8 5:i8, EFLAGS:i32), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 30
                  // Dst: (SETGm addr:iPTR:$dst)
/*11085*/       0, /*End of Scope*/
              /*SwitchOpcode*/ 105|128,1/*233*/,  TARGET_VAL(X86ISD::Wrapper),// ->11323
/*11090*/       OPC_RecordChild0, // #1 = $src
/*11091*/       OPC_MoveChild, 0,
/*11093*/       OPC_SwitchOpcode /*5 cases */, 53,  TARGET_VAL(ISD::TargetGlobalAddress),// ->11150
/*11097*/         OPC_MoveParent,
/*11098*/         OPC_SwitchType /*2 cases */, 22,  MVT::i32,// ->11123
/*11101*/           OPC_MoveParent,
/*11102*/           OPC_RecordChild2, // #2 = $dst
/*11103*/           OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*11105*/           OPC_CheckPredicate, 5, // Predicate_store
/*11107*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*11110*/           OPC_EmitMergeInputChains1_0,
/*11111*/           OPC_MorphNodeTo, TARGET_VAL(X86::MOV32mi), 0|OPFL_Chain|OPFL_MemRefs,
                        0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                    // Src: (st (X86Wrapper:i32 (tglobaladdr:i32):$src), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 28
                    // Dst: (MOV32mi addr:iPTR:$dst, (tglobaladdr:i32):$src)
                  /*SwitchType*/ 24,  MVT::i64,// ->11149
/*11125*/           OPC_MoveParent,
/*11126*/           OPC_RecordChild2, // #2 = $dst
/*11127*/           OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*11129*/           OPC_CheckPredicate, 5, // Predicate_store
/*11131*/           OPC_CheckPatternPredicate, 6, // (TM.getCodeModel() == CodeModel::Small ||TM.getCodeModel() == CodeModel::Kernel) && (TM.getRelocationModel() == Reloc::Static)
/*11133*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*11136*/           OPC_EmitMergeInputChains1_0,
/*11137*/           OPC_MorphNodeTo, TARGET_VAL(X86::MOV64mi32), 0|OPFL_Chain|OPFL_MemRefs,
                        0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                    // Src: (st (X86Wrapper:i64 (tglobaladdr:i64):$src), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 28
                    // Dst: (MOV64mi32 addr:iPTR:$dst, (tglobaladdr:i64):$src)
                  0, // EndSwitchType
                /*SwitchOpcode*/ 53,  TARGET_VAL(ISD::TargetExternalSymbol),// ->11206
/*11153*/         OPC_MoveParent,
/*11154*/         OPC_SwitchType /*2 cases */, 22,  MVT::i32,// ->11179
/*11157*/           OPC_MoveParent,
/*11158*/           OPC_RecordChild2, // #2 = $dst
/*11159*/           OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*11161*/           OPC_CheckPredicate, 5, // Predicate_store
/*11163*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*11166*/           OPC_EmitMergeInputChains1_0,
/*11167*/           OPC_MorphNodeTo, TARGET_VAL(X86::MOV32mi), 0|OPFL_Chain|OPFL_MemRefs,
                        0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                    // Src: (st (X86Wrapper:i32 (texternalsym:i32):$src), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 28
                    // Dst: (MOV32mi addr:iPTR:$dst, (texternalsym:i32):$src)
                  /*SwitchType*/ 24,  MVT::i64,// ->11205
/*11181*/           OPC_MoveParent,
/*11182*/           OPC_RecordChild2, // #2 = $dst
/*11183*/           OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*11185*/           OPC_CheckPredicate, 5, // Predicate_store
/*11187*/           OPC_CheckPatternPredicate, 6, // (TM.getCodeModel() == CodeModel::Small ||TM.getCodeModel() == CodeModel::Kernel) && (TM.getRelocationModel() == Reloc::Static)
/*11189*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*11192*/           OPC_EmitMergeInputChains1_0,
/*11193*/           OPC_MorphNodeTo, TARGET_VAL(X86::MOV64mi32), 0|OPFL_Chain|OPFL_MemRefs,
                        0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                    // Src: (st (X86Wrapper:i64 (texternalsym:i64):$src), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 28
                    // Dst: (MOV64mi32 addr:iPTR:$dst, (texternalsym:i64):$src)
                  0, // EndSwitchType
                /*SwitchOpcode*/ 53,  TARGET_VAL(ISD::TargetBlockAddress),// ->11262
/*11209*/         OPC_MoveParent,
/*11210*/         OPC_SwitchType /*2 cases */, 22,  MVT::i32,// ->11235
/*11213*/           OPC_MoveParent,
/*11214*/           OPC_RecordChild2, // #2 = $dst
/*11215*/           OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*11217*/           OPC_CheckPredicate, 5, // Predicate_store
/*11219*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*11222*/           OPC_EmitMergeInputChains1_0,
/*11223*/           OPC_MorphNodeTo, TARGET_VAL(X86::MOV32mi), 0|OPFL_Chain|OPFL_MemRefs,
                        0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                    // Src: (st (X86Wrapper:i32 (tblockaddress:i32):$src), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 28
                    // Dst: (MOV32mi addr:iPTR:$dst, (tblockaddress:i32):$src)
                  /*SwitchType*/ 24,  MVT::i64,// ->11261
/*11237*/           OPC_MoveParent,
/*11238*/           OPC_RecordChild2, // #2 = $dst
/*11239*/           OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*11241*/           OPC_CheckPredicate, 5, // Predicate_store
/*11243*/           OPC_CheckPatternPredicate, 6, // (TM.getCodeModel() == CodeModel::Small ||TM.getCodeModel() == CodeModel::Kernel) && (TM.getRelocationModel() == Reloc::Static)
/*11245*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*11248*/           OPC_EmitMergeInputChains1_0,
/*11249*/           OPC_MorphNodeTo, TARGET_VAL(X86::MOV64mi32), 0|OPFL_Chain|OPFL_MemRefs,
                        0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                    // Src: (st (X86Wrapper:i64 (tblockaddress:i64):$src), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 28
                    // Dst: (MOV64mi32 addr:iPTR:$dst, (tblockaddress:i64):$src)
                  0, // EndSwitchType
                /*SwitchOpcode*/ 27,  TARGET_VAL(ISD::TargetConstantPool),// ->11292
/*11265*/         OPC_MoveParent,
/*11266*/         OPC_CheckType, MVT::i64,
/*11268*/         OPC_MoveParent,
/*11269*/         OPC_RecordChild2, // #2 = $dst
/*11270*/         OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*11272*/         OPC_CheckPredicate, 5, // Predicate_store
/*11274*/         OPC_CheckPatternPredicate, 6, // (TM.getCodeModel() == CodeModel::Small ||TM.getCodeModel() == CodeModel::Kernel) && (TM.getRelocationModel() == Reloc::Static)
/*11276*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*11279*/         OPC_EmitMergeInputChains1_0,
/*11280*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOV64mi32), 0|OPFL_Chain|OPFL_MemRefs,
                      0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                  // Src: (st (X86Wrapper:i64 (tconstpool:i64):$src), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 28
                  // Dst: (MOV64mi32 addr:iPTR:$dst, (tconstpool:i64):$src)
                /*SwitchOpcode*/ 27,  TARGET_VAL(ISD::TargetJumpTable),// ->11322
/*11295*/         OPC_MoveParent,
/*11296*/         OPC_CheckType, MVT::i64,
/*11298*/         OPC_MoveParent,
/*11299*/         OPC_RecordChild2, // #2 = $dst
/*11300*/         OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*11302*/         OPC_CheckPredicate, 5, // Predicate_store
/*11304*/         OPC_CheckPatternPredicate, 6, // (TM.getCodeModel() == CodeModel::Small ||TM.getCodeModel() == CodeModel::Kernel) && (TM.getRelocationModel() == Reloc::Static)
/*11306*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*11309*/         OPC_EmitMergeInputChains1_0,
/*11310*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOV64mi32), 0|OPFL_Chain|OPFL_MemRefs,
                      0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                  // Src: (st (X86Wrapper:i64 (tjumptable:i64):$src), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 28
                  // Dst: (MOV64mi32 addr:iPTR:$dst, (tjumptable:i64):$src)
                0, // EndSwitchOpcode
              0, // EndSwitchOpcode
/*11324*/   /*Scope*/ 114, /*->11439*/
/*11325*/     OPC_RecordChild1, // #1 = $src
/*11326*/     OPC_MoveChild, 1,
/*11328*/     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*11331*/     OPC_SwitchType /*4 cases */, 26,  MVT::i64,// ->11360
/*11334*/       OPC_CheckPredicate, 11, // Predicate_i64immSExt32
/*11336*/       OPC_MoveParent,
/*11337*/       OPC_RecordChild2, // #2 = $dst
/*11338*/       OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*11340*/       OPC_CheckPredicate, 5, // Predicate_store
/*11342*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*11345*/       OPC_EmitMergeInputChains1_0,
/*11346*/       OPC_EmitConvertToTarget, 1,
/*11348*/       OPC_MorphNodeTo, TARGET_VAL(X86::MOV64mi32), 0|OPFL_Chain|OPFL_MemRefs,
                    0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                // Src: (st (imm:i64)<<P:Predicate_i64immSExt32>>:$src, addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 26
                // Dst: (MOV64mi32 addr:iPTR:$dst, (imm:i64):$src)
              /*SwitchType*/ 24,  MVT::i8,// ->11386
/*11362*/       OPC_MoveParent,
/*11363*/       OPC_RecordChild2, // #2 = $dst
/*11364*/       OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*11366*/       OPC_CheckPredicate, 5, // Predicate_store
/*11368*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*11371*/       OPC_EmitMergeInputChains1_0,
/*11372*/       OPC_EmitConvertToTarget, 1,
/*11374*/       OPC_MorphNodeTo, TARGET_VAL(X86::MOV8mi), 0|OPFL_Chain|OPFL_MemRefs,
                    0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                // Src: (st (imm:i8):$src, addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 25
                // Dst: (MOV8mi addr:iPTR:$dst, (imm:i8):$src)
              /*SwitchType*/ 24,  MVT::i16,// ->11412
/*11388*/       OPC_MoveParent,
/*11389*/       OPC_RecordChild2, // #2 = $dst
/*11390*/       OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*11392*/       OPC_CheckPredicate, 5, // Predicate_store
/*11394*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*11397*/       OPC_EmitMergeInputChains1_0,
/*11398*/       OPC_EmitConvertToTarget, 1,
/*11400*/       OPC_MorphNodeTo, TARGET_VAL(X86::MOV16mi), 0|OPFL_Chain|OPFL_MemRefs,
                    0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                // Src: (st (imm:i16):$src, addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 25
                // Dst: (MOV16mi addr:iPTR:$dst, (imm:i16):$src)
              /*SwitchType*/ 24,  MVT::i32,// ->11438
/*11414*/       OPC_MoveParent,
/*11415*/       OPC_RecordChild2, // #2 = $dst
/*11416*/       OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*11418*/       OPC_CheckPredicate, 5, // Predicate_store
/*11420*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*11423*/       OPC_EmitMergeInputChains1_0,
/*11424*/       OPC_EmitConvertToTarget, 1,
/*11426*/       OPC_MorphNodeTo, TARGET_VAL(X86::MOV32mi), 0|OPFL_Chain|OPFL_MemRefs,
                    0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                // Src: (st (imm:i32):$src, addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 25
                // Dst: (MOV32mi addr:iPTR:$dst, (imm:i32):$src)
              0, // EndSwitchType
/*11439*/   /*Scope*/ 66|128,1/*194*/, /*->11635*/
/*11441*/     OPC_MoveChild, 1,
/*11443*/     OPC_SwitchOpcode /*2 cases */, 81,  TARGET_VAL(ISD::BSWAP),// ->11528
/*11447*/       OPC_RecordChild0, // #1 = $src
/*11448*/       OPC_SwitchType /*3 cases */, 24,  MVT::i16,// ->11475
/*11451*/         OPC_MoveParent,
/*11452*/         OPC_RecordChild2, // #2 = $dst
/*11453*/         OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*11455*/         OPC_CheckPredicate, 5, // Predicate_store
/*11457*/         OPC_CheckPatternPredicate, 7, // (Subtarget->hasMOVBE())
/*11459*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*11462*/         OPC_EmitMergeInputChains1_0,
/*11463*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOVBE16mr), 0|OPFL_Chain|OPFL_MemRefs,
                      0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                  // Src: (st (bswap:i16 GR16:i16:$src), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 25
                  // Dst: (MOVBE16mr addr:iPTR:$dst, GR16:i16:$src)
                /*SwitchType*/ 24,  MVT::i32,// ->11501
/*11477*/         OPC_MoveParent,
/*11478*/         OPC_RecordChild2, // #2 = $dst
/*11479*/         OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*11481*/         OPC_CheckPredicate, 5, // Predicate_store
/*11483*/         OPC_CheckPatternPredicate, 7, // (Subtarget->hasMOVBE())
/*11485*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*11488*/         OPC_EmitMergeInputChains1_0,
/*11489*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOVBE32mr), 0|OPFL_Chain|OPFL_MemRefs,
                      0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                  // Src: (st (bswap:i32 GR32:i32:$src), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 25
                  // Dst: (MOVBE32mr addr:iPTR:$dst, GR32:i32:$src)
                /*SwitchType*/ 24,  MVT::i64,// ->11527
/*11503*/         OPC_MoveParent,
/*11504*/         OPC_RecordChild2, // #2 = $dst
/*11505*/         OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*11507*/         OPC_CheckPredicate, 5, // Predicate_store
/*11509*/         OPC_CheckPatternPredicate, 7, // (Subtarget->hasMOVBE())
/*11511*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*11514*/         OPC_EmitMergeInputChains1_0,
/*11515*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOVBE64mr), 0|OPFL_Chain|OPFL_MemRefs,
                      0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                  // Src: (st (bswap:i64 GR64:i64:$src), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 25
                  // Dst: (MOVBE64mr addr:iPTR:$dst, GR64:i64:$src)
                0, // EndSwitchType
              /*SwitchOpcode*/ 103,  TARGET_VAL(ISD::BITCAST),// ->11634
/*11531*/       OPC_RecordChild0, // #1 = $src
/*11532*/       OPC_SwitchType /*2 cases */, 48,  MVT::i64,// ->11583
/*11535*/         OPC_CheckChild0Type, MVT::f64,
/*11537*/         OPC_MoveParent,
/*11538*/         OPC_RecordChild2, // #2 = $dst
/*11539*/         OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*11541*/         OPC_CheckPredicate, 5, // Predicate_store
/*11543*/         OPC_Scope, 18, /*->11563*/ // 2 children in Scope
/*11545*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*11547*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*11550*/           OPC_EmitMergeInputChains1_0,
/*11551*/           OPC_MorphNodeTo, TARGET_VAL(X86::VMOVSDto64mr), 0|OPFL_Chain|OPFL_MemRefs,
                        0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                    // Src: (st (bitconvert:i64 FR64:f64:$src), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 25
                    // Dst: (VMOVSDto64mr addr:iPTR:$dst, FR64:f64:$src)
/*11563*/         /*Scope*/ 18, /*->11582*/
/*11564*/           OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*11566*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*11569*/           OPC_EmitMergeInputChains1_0,
/*11570*/           OPC_MorphNodeTo, TARGET_VAL(X86::MOVSDto64mr), 0|OPFL_Chain|OPFL_MemRefs,
                        0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                    // Src: (st (bitconvert:i64 FR64:f64:$src), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 25
                    // Dst: (MOVSDto64mr addr:iPTR:$dst, FR64:f64:$src)
/*11582*/         0, /*End of Scope*/
                /*SwitchType*/ 48,  MVT::i32,// ->11633
/*11585*/         OPC_CheckChild0Type, MVT::f32,
/*11587*/         OPC_MoveParent,
/*11588*/         OPC_RecordChild2, // #2 = $dst
/*11589*/         OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*11591*/         OPC_CheckPredicate, 5, // Predicate_store
/*11593*/         OPC_Scope, 18, /*->11613*/ // 2 children in Scope
/*11595*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*11597*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*11600*/           OPC_EmitMergeInputChains1_0,
/*11601*/           OPC_MorphNodeTo, TARGET_VAL(X86::VMOVSS2DImr), 0|OPFL_Chain|OPFL_MemRefs,
                        0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                    // Src: (st (bitconvert:i32 FR32:f32:$src), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 25
                    // Dst: (VMOVSS2DImr addr:iPTR:$dst, FR32:f32:$src)
/*11613*/         /*Scope*/ 18, /*->11632*/
/*11614*/           OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*11616*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*11619*/           OPC_EmitMergeInputChains1_0,
/*11620*/           OPC_MorphNodeTo, TARGET_VAL(X86::MOVSS2DImr), 0|OPFL_Chain|OPFL_MemRefs,
                        0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                    // Src: (st (bitconvert:i32 FR32:f32:$src), addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 25
                    // Dst: (MOVSS2DImr addr:iPTR:$dst, FR32:f32:$src)
/*11632*/         0, /*End of Scope*/
                0, // EndSwitchType
              0, // EndSwitchOpcode
/*11635*/   /*Scope*/ 43|128,9/*1195*/, /*->12832*/
/*11637*/     OPC_RecordChild1, // #1 = $src
/*11638*/     OPC_Scope, 66, /*->11706*/ // 20 children in Scope
/*11640*/       OPC_CheckChild1Type, MVT::f32,
/*11642*/       OPC_RecordChild2, // #2 = $op
/*11643*/       OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*11645*/       OPC_CheckPredicate, 5, // Predicate_store
/*11647*/       OPC_Scope, 18, /*->11667*/ // 3 children in Scope
/*11649*/         OPC_CheckPatternPredicate, 8, // (!Subtarget->hasXMM())
/*11651*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$op #3 #4 #5 #6 #7
/*11654*/         OPC_EmitMergeInputChains1_0,
/*11655*/         OPC_MorphNodeTo, TARGET_VAL(X86::ST_Fp32m), 0|OPFL_Chain|OPFL_MemRefs,
                      0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                  // Src: (st RFP32:f32:$src, addr:iPTR:$op)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 22
                  // Dst: (ST_Fp32m addr:iPTR:$op, RFP32:f32:$src)
/*11667*/       /*Scope*/ 18, /*->11686*/
/*11668*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*11670*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*11673*/         OPC_EmitMergeInputChains1_0,
/*11674*/         OPC_MorphNodeTo, TARGET_VAL(X86::VMOVSSmr), 0|OPFL_Chain|OPFL_MemRefs,
                      0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                  // Src: (st FR32:f32:$src, addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 22
                  // Dst: (VMOVSSmr addr:iPTR:$dst, FR32:f32:$src)
/*11686*/       /*Scope*/ 18, /*->11705*/
/*11687*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*11689*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*11692*/         OPC_EmitMergeInputChains1_0,
/*11693*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOVSSmr), 0|OPFL_Chain|OPFL_MemRefs,
                      0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                  // Src: (st FR32:f32:$src, addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 22
                  // Dst: (MOVSSmr addr:iPTR:$dst, FR32:f32:$src)
/*11705*/       0, /*End of Scope*/
/*11706*/     /*Scope*/ 92, /*->11799*/
/*11707*/       OPC_CheckChild1Type, MVT::f64,
/*11709*/       OPC_RecordChild2, // #2 = $op
/*11710*/       OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*11712*/       OPC_Scope, 22, /*->11736*/ // 2 children in Scope
/*11714*/         OPC_CheckPredicate, 16, // Predicate_truncstore
/*11716*/         OPC_CheckPredicate, 17, // Predicate_truncstoref32
/*11718*/         OPC_CheckPatternPredicate, 9, // (!Subtarget->hasXMMInt())
/*11720*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$op #3 #4 #5 #6 #7
/*11723*/         OPC_EmitMergeInputChains1_0,
/*11724*/         OPC_MorphNodeTo, TARGET_VAL(X86::ST_Fp64m32), 0|OPFL_Chain|OPFL_MemRefs,
                      0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                  // Src: (st RFP64:f64:$src, addr:iPTR:$op)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstoref32>> - Complexity = 22
                  // Dst: (ST_Fp64m32 addr:iPTR:$op, RFP64:f64:$src)
/*11736*/       /*Scope*/ 61, /*->11798*/
/*11737*/         OPC_CheckPredicate, 5, // Predicate_store
/*11739*/         OPC_Scope, 18, /*->11759*/ // 3 children in Scope
/*11741*/           OPC_CheckPatternPredicate, 9, // (!Subtarget->hasXMMInt())
/*11743*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$op #3 #4 #5 #6 #7
/*11746*/           OPC_EmitMergeInputChains1_0,
/*11747*/           OPC_MorphNodeTo, TARGET_VAL(X86::ST_Fp64m), 0|OPFL_Chain|OPFL_MemRefs,
                        0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                    // Src: (st RFP64:f64:$src, addr:iPTR:$op)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 22
                    // Dst: (ST_Fp64m addr:iPTR:$op, RFP64:f64:$src)
/*11759*/         /*Scope*/ 18, /*->11778*/
/*11760*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*11762*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*11765*/           OPC_EmitMergeInputChains1_0,
/*11766*/           OPC_MorphNodeTo, TARGET_VAL(X86::VMOVSDmr), 0|OPFL_Chain|OPFL_MemRefs,
                        0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                    // Src: (st FR64:f64:$src, addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 22
                    // Dst: (VMOVSDmr addr:iPTR:$dst, FR64:f64:$src)
/*11778*/         /*Scope*/ 18, /*->11797*/
/*11779*/           OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*11781*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*11784*/           OPC_EmitMergeInputChains1_0,
/*11785*/           OPC_MorphNodeTo, TARGET_VAL(X86::MOVSDmr), 0|OPFL_Chain|OPFL_MemRefs,
                        0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                    // Src: (st FR64:f64:$src, addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 22
                    // Dst: (MOVSDmr addr:iPTR:$dst, FR64:f64:$src)
/*11797*/         0, /*End of Scope*/
/*11798*/       0, /*End of Scope*/
/*11799*/     /*Scope*/ 69, /*->11869*/
/*11800*/       OPC_CheckChild1Type, MVT::f80,
/*11802*/       OPC_RecordChild2, // #2 = $op
/*11803*/       OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*11805*/       OPC_Scope, 42, /*->11849*/ // 2 children in Scope
/*11807*/         OPC_CheckPredicate, 16, // Predicate_truncstore
/*11809*/         OPC_Scope, 18, /*->11829*/ // 2 children in Scope
/*11811*/           OPC_CheckPredicate, 17, // Predicate_truncstoref32
/*11813*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$op #3 #4 #5 #6 #7
/*11816*/           OPC_EmitMergeInputChains1_0,
/*11817*/           OPC_MorphNodeTo, TARGET_VAL(X86::ST_Fp80m32), 0|OPFL_Chain|OPFL_MemRefs,
                        0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                    // Src: (st RFP80:f80:$src, addr:iPTR:$op)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstoref32>> - Complexity = 22
                    // Dst: (ST_Fp80m32 addr:iPTR:$op, RFP80:f80:$src)
/*11829*/         /*Scope*/ 18, /*->11848*/
/*11830*/           OPC_CheckPredicate, 18, // Predicate_truncstoref64
/*11832*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$op #3 #4 #5 #6 #7
/*11835*/           OPC_EmitMergeInputChains1_0,
/*11836*/           OPC_MorphNodeTo, TARGET_VAL(X86::ST_Fp80m64), 0|OPFL_Chain|OPFL_MemRefs,
                        0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                    // Src: (st RFP80:f80:$src, addr:iPTR:$op)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstoref64>> - Complexity = 22
                    // Dst: (ST_Fp80m64 addr:iPTR:$op, RFP80:f80:$src)
/*11848*/         0, /*End of Scope*/
/*11849*/       /*Scope*/ 18, /*->11868*/
/*11850*/         OPC_CheckPredicate, 5, // Predicate_store
/*11852*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$op #3 #4 #5 #6 #7
/*11855*/         OPC_EmitMergeInputChains1_0,
/*11856*/         OPC_MorphNodeTo, TARGET_VAL(X86::ST_FpP80m), 0|OPFL_Chain|OPFL_MemRefs,
                      0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                  // Src: (st RFP80:f80:$src, addr:iPTR:$op)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 22
                  // Dst: (ST_FpP80m addr:iPTR:$op, RFP80:f80:$src)
/*11868*/       0, /*End of Scope*/
/*11869*/     /*Scope*/ 23, /*->11893*/
/*11870*/       OPC_CheckChild1Type, MVT::i8,
/*11872*/       OPC_RecordChild2, // #2 = $dst
/*11873*/       OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*11875*/       OPC_CheckPredicate, 5, // Predicate_store
/*11877*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*11880*/       OPC_EmitMergeInputChains1_0,
/*11881*/       OPC_MorphNodeTo, TARGET_VAL(X86::MOV8mr), 0|OPFL_Chain|OPFL_MemRefs,
                    0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                // Src: (st GR8:i8:$src, addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 22
                // Dst: (MOV8mr addr:iPTR:$dst, GR8:i8:$src)
/*11893*/     /*Scope*/ 23, /*->11917*/
/*11894*/       OPC_CheckChild1Type, MVT::i16,
/*11896*/       OPC_RecordChild2, // #2 = $dst
/*11897*/       OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*11899*/       OPC_CheckPredicate, 5, // Predicate_store
/*11901*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*11904*/       OPC_EmitMergeInputChains1_0,
/*11905*/       OPC_MorphNodeTo, TARGET_VAL(X86::MOV16mr), 0|OPFL_Chain|OPFL_MemRefs,
                    0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                // Src: (st GR16:i16:$src, addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 22
                // Dst: (MOV16mr addr:iPTR:$dst, GR16:i16:$src)
/*11917*/     /*Scope*/ 23, /*->11941*/
/*11918*/       OPC_CheckChild1Type, MVT::i32,
/*11920*/       OPC_RecordChild2, // #2 = $dst
/*11921*/       OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*11923*/       OPC_CheckPredicate, 5, // Predicate_store
/*11925*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*11928*/       OPC_EmitMergeInputChains1_0,
/*11929*/       OPC_MorphNodeTo, TARGET_VAL(X86::MOV32mr), 0|OPFL_Chain|OPFL_MemRefs,
                    0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                // Src: (st GR32:i32:$src, addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 22
                // Dst: (MOV32mr addr:iPTR:$dst, GR32:i32:$src)
/*11941*/     /*Scope*/ 23, /*->11965*/
/*11942*/       OPC_CheckChild1Type, MVT::i64,
/*11944*/       OPC_RecordChild2, // #2 = $dst
/*11945*/       OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*11947*/       OPC_CheckPredicate, 5, // Predicate_store
/*11949*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*11952*/       OPC_EmitMergeInputChains1_0,
/*11953*/       OPC_MorphNodeTo, TARGET_VAL(X86::MOV64mr), 0|OPFL_Chain|OPFL_MemRefs,
                    0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                // Src: (st GR64:i64:$src, addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 22
                // Dst: (MOV64mr addr:iPTR:$dst, GR64:i64:$src)
/*11965*/     /*Scope*/ 89, /*->12055*/
/*11966*/       OPC_CheckChild1Type, MVT::v4f32,
/*11968*/       OPC_RecordChild2, // #2 = $dst
/*11969*/       OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*11971*/       OPC_CheckPredicate, 5, // Predicate_store
/*11973*/       OPC_Scope, 20, /*->11995*/ // 4 children in Scope
/*11975*/         OPC_CheckPredicate, 19, // Predicate_alignedstore
/*11977*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*11979*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*11982*/         OPC_EmitMergeInputChains1_0,
/*11983*/         OPC_MorphNodeTo, TARGET_VAL(X86::VMOVAPSmr), 0|OPFL_Chain|OPFL_MemRefs,
                      0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                  // Src: (st VR128:v4f32:$src, addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_alignedstore>> - Complexity = 22
                  // Dst: (VMOVAPSmr addr:iPTR:$dst, VR128:v4f32:$src)
/*11995*/       /*Scope*/ 18, /*->12014*/
/*11996*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*11998*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*12001*/         OPC_EmitMergeInputChains1_0,
/*12002*/         OPC_MorphNodeTo, TARGET_VAL(X86::VMOVUPSmr), 0|OPFL_Chain|OPFL_MemRefs,
                      0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                  // Src: (st VR128:v4f32:$src, addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 22
                  // Dst: (VMOVUPSmr addr:iPTR:$dst, VR128:v4f32:$src)
/*12014*/       /*Scope*/ 20, /*->12035*/
/*12015*/         OPC_CheckPredicate, 19, // Predicate_alignedstore
/*12017*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*12019*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*12022*/         OPC_EmitMergeInputChains1_0,
/*12023*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOVAPSmr), 0|OPFL_Chain|OPFL_MemRefs,
                      0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                  // Src: (st VR128:v4f32:$src, addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_alignedstore>> - Complexity = 22
                  // Dst: (MOVAPSmr addr:iPTR:$dst, VR128:v4f32:$src)
/*12035*/       /*Scope*/ 18, /*->12054*/
/*12036*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*12038*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*12041*/         OPC_EmitMergeInputChains1_0,
/*12042*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOVUPSmr), 0|OPFL_Chain|OPFL_MemRefs,
                      0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                  // Src: (st VR128:v4f32:$src, addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 22
                  // Dst: (MOVUPSmr addr:iPTR:$dst, VR128:v4f32:$src)
/*12054*/       0, /*End of Scope*/
/*12055*/     /*Scope*/ 89, /*->12145*/
/*12056*/       OPC_CheckChild1Type, MVT::v2f64,
/*12058*/       OPC_RecordChild2, // #2 = $dst
/*12059*/       OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*12061*/       OPC_CheckPredicate, 5, // Predicate_store
/*12063*/       OPC_Scope, 20, /*->12085*/ // 4 children in Scope
/*12065*/         OPC_CheckPredicate, 19, // Predicate_alignedstore
/*12067*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*12069*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*12072*/         OPC_EmitMergeInputChains1_0,
/*12073*/         OPC_MorphNodeTo, TARGET_VAL(X86::VMOVAPDmr), 0|OPFL_Chain|OPFL_MemRefs,
                      0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                  // Src: (st VR128:v2f64:$src, addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_alignedstore>> - Complexity = 22
                  // Dst: (VMOVAPDmr addr:iPTR:$dst, VR128:v2f64:$src)
/*12085*/       /*Scope*/ 18, /*->12104*/
/*12086*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*12088*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*12091*/         OPC_EmitMergeInputChains1_0,
/*12092*/         OPC_MorphNodeTo, TARGET_VAL(X86::VMOVUPDmr), 0|OPFL_Chain|OPFL_MemRefs,
                      0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                  // Src: (st VR128:v2f64:$src, addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 22
                  // Dst: (VMOVUPDmr addr:iPTR:$dst, VR128:v2f64:$src)
/*12104*/       /*Scope*/ 20, /*->12125*/
/*12105*/         OPC_CheckPredicate, 19, // Predicate_alignedstore
/*12107*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*12109*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*12112*/         OPC_EmitMergeInputChains1_0,
/*12113*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOVAPDmr), 0|OPFL_Chain|OPFL_MemRefs,
                      0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                  // Src: (st VR128:v2f64:$src, addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_alignedstore>> - Complexity = 22
                  // Dst: (MOVAPDmr addr:iPTR:$dst, VR128:v2f64:$src)
/*12125*/       /*Scope*/ 18, /*->12144*/
/*12126*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*12128*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*12131*/         OPC_EmitMergeInputChains1_0,
/*12132*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOVUPDmr), 0|OPFL_Chain|OPFL_MemRefs,
                      0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                  // Src: (st VR128:v2f64:$src, addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 22
                  // Dst: (MOVUPDmr addr:iPTR:$dst, VR128:v2f64:$src)
/*12144*/       0, /*End of Scope*/
/*12145*/     /*Scope*/ 49, /*->12195*/
/*12146*/       OPC_CheckChild1Type, MVT::v8f32,
/*12148*/       OPC_RecordChild2, // #2 = $dst
/*12149*/       OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*12151*/       OPC_CheckPredicate, 5, // Predicate_store
/*12153*/       OPC_Scope, 20, /*->12175*/ // 2 children in Scope
/*12155*/         OPC_CheckPredicate, 20, // Predicate_alignedstore256
/*12157*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*12159*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*12162*/         OPC_EmitMergeInputChains1_0,
/*12163*/         OPC_MorphNodeTo, TARGET_VAL(X86::VMOVAPSYmr), 0|OPFL_Chain|OPFL_MemRefs,
                      0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                  // Src: (st VR256:v8f32:$src, addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_alignedstore256>> - Complexity = 22
                  // Dst: (VMOVAPSYmr addr:iPTR:$dst, VR256:v8f32:$src)
/*12175*/       /*Scope*/ 18, /*->12194*/
/*12176*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*12178*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*12181*/         OPC_EmitMergeInputChains1_0,
/*12182*/         OPC_MorphNodeTo, TARGET_VAL(X86::VMOVUPSYmr), 0|OPFL_Chain|OPFL_MemRefs,
                      0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                  // Src: (st VR256:v8f32:$src, addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 22
                  // Dst: (VMOVUPSYmr addr:iPTR:$dst, VR256:v8f32:$src)
/*12194*/       0, /*End of Scope*/
/*12195*/     /*Scope*/ 49, /*->12245*/
/*12196*/       OPC_CheckChild1Type, MVT::v4f64,
/*12198*/       OPC_RecordChild2, // #2 = $dst
/*12199*/       OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*12201*/       OPC_CheckPredicate, 5, // Predicate_store
/*12203*/       OPC_Scope, 20, /*->12225*/ // 2 children in Scope
/*12205*/         OPC_CheckPredicate, 20, // Predicate_alignedstore256
/*12207*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*12209*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*12212*/         OPC_EmitMergeInputChains1_0,
/*12213*/         OPC_MorphNodeTo, TARGET_VAL(X86::VMOVAPDYmr), 0|OPFL_Chain|OPFL_MemRefs,
                      0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                  // Src: (st VR256:v4f64:$src, addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_alignedstore256>> - Complexity = 22
                  // Dst: (VMOVAPDYmr addr:iPTR:$dst, VR256:v4f64:$src)
/*12225*/       /*Scope*/ 18, /*->12244*/
/*12226*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*12228*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*12231*/         OPC_EmitMergeInputChains1_0,
/*12232*/         OPC_MorphNodeTo, TARGET_VAL(X86::VMOVUPDYmr), 0|OPFL_Chain|OPFL_MemRefs,
                      0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                  // Src: (st VR256:v4f64:$src, addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 22
                  // Dst: (VMOVUPDYmr addr:iPTR:$dst, VR256:v4f64:$src)
/*12244*/       0, /*End of Scope*/
/*12245*/     /*Scope*/ 89, /*->12335*/
/*12246*/       OPC_CheckChild1Type, MVT::v2i64,
/*12248*/       OPC_RecordChild2, // #2 = $dst
/*12249*/       OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*12251*/       OPC_CheckPredicate, 5, // Predicate_store
/*12253*/       OPC_Scope, 20, /*->12275*/ // 4 children in Scope
/*12255*/         OPC_CheckPredicate, 19, // Predicate_alignedstore
/*12257*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*12259*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*12262*/         OPC_EmitMergeInputChains1_0,
/*12263*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOVAPSmr), 0|OPFL_Chain|OPFL_MemRefs,
                      0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                  // Src: (st VR128:v2i64:$src, addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_alignedstore>> - Complexity = 22
                  // Dst: (MOVAPSmr addr:iPTR:$dst, VR128:v2i64:$src)
/*12275*/       /*Scope*/ 18, /*->12294*/
/*12276*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*12278*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*12281*/         OPC_EmitMergeInputChains1_0,
/*12282*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOVUPSmr), 0|OPFL_Chain|OPFL_MemRefs,
                      0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                  // Src: (st VR128:v2i64:$src, addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 22
                  // Dst: (MOVUPSmr addr:iPTR:$dst, VR128:v2i64:$src)
/*12294*/       /*Scope*/ 20, /*->12315*/
/*12295*/         OPC_CheckPredicate, 19, // Predicate_alignedstore
/*12297*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*12299*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*12302*/         OPC_EmitMergeInputChains1_0,
/*12303*/         OPC_MorphNodeTo, TARGET_VAL(X86::VMOVAPSmr), 0|OPFL_Chain|OPFL_MemRefs,
                      0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                  // Src: (st VR128:v2i64:$src, addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_alignedstore>> - Complexity = 22
                  // Dst: (VMOVAPSmr addr:iPTR:$dst, VR128:v2i64:$src)
/*12315*/       /*Scope*/ 18, /*->12334*/
/*12316*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*12318*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*12321*/         OPC_EmitMergeInputChains1_0,
/*12322*/         OPC_MorphNodeTo, TARGET_VAL(X86::VMOVUPSmr), 0|OPFL_Chain|OPFL_MemRefs,
                      0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                  // Src: (st VR128:v2i64:$src, addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 22
                  // Dst: (VMOVUPSmr addr:iPTR:$dst, VR128:v2i64:$src)
/*12334*/       0, /*End of Scope*/
/*12335*/     /*Scope*/ 89, /*->12425*/
/*12336*/       OPC_CheckChild1Type, MVT::v4i32,
/*12338*/       OPC_RecordChild2, // #2 = $dst
/*12339*/       OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*12341*/       OPC_CheckPredicate, 5, // Predicate_store
/*12343*/       OPC_Scope, 20, /*->12365*/ // 4 children in Scope
/*12345*/         OPC_CheckPredicate, 19, // Predicate_alignedstore
/*12347*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*12349*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*12352*/         OPC_EmitMergeInputChains1_0,
/*12353*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOVAPSmr), 0|OPFL_Chain|OPFL_MemRefs,
                      0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                  // Src: (st VR128:v4i32:$src, addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_alignedstore>> - Complexity = 22
                  // Dst: (MOVAPSmr addr:iPTR:$dst, VR128:v4i32:$src)
/*12365*/       /*Scope*/ 18, /*->12384*/
/*12366*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*12368*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*12371*/         OPC_EmitMergeInputChains1_0,
/*12372*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOVUPSmr), 0|OPFL_Chain|OPFL_MemRefs,
                      0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                  // Src: (st VR128:v4i32:$src, addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 22
                  // Dst: (MOVUPSmr addr:iPTR:$dst, VR128:v4i32:$src)
/*12384*/       /*Scope*/ 20, /*->12405*/
/*12385*/         OPC_CheckPredicate, 19, // Predicate_alignedstore
/*12387*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*12389*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*12392*/         OPC_EmitMergeInputChains1_0,
/*12393*/         OPC_MorphNodeTo, TARGET_VAL(X86::VMOVAPSmr), 0|OPFL_Chain|OPFL_MemRefs,
                      0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                  // Src: (st VR128:v4i32:$src, addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_alignedstore>> - Complexity = 22
                  // Dst: (VMOVAPSmr addr:iPTR:$dst, VR128:v4i32:$src)
/*12405*/       /*Scope*/ 18, /*->12424*/
/*12406*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*12408*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*12411*/         OPC_EmitMergeInputChains1_0,
/*12412*/         OPC_MorphNodeTo, TARGET_VAL(X86::VMOVUPSmr), 0|OPFL_Chain|OPFL_MemRefs,
                      0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                  // Src: (st VR128:v4i32:$src, addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 22
                  // Dst: (VMOVUPSmr addr:iPTR:$dst, VR128:v4i32:$src)
/*12424*/       0, /*End of Scope*/
/*12425*/     /*Scope*/ 89, /*->12515*/
/*12426*/       OPC_CheckChild1Type, MVT::v8i16,
/*12428*/       OPC_RecordChild2, // #2 = $dst
/*12429*/       OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*12431*/       OPC_CheckPredicate, 5, // Predicate_store
/*12433*/       OPC_Scope, 20, /*->12455*/ // 4 children in Scope
/*12435*/         OPC_CheckPredicate, 19, // Predicate_alignedstore
/*12437*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*12439*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*12442*/         OPC_EmitMergeInputChains1_0,
/*12443*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOVAPSmr), 0|OPFL_Chain|OPFL_MemRefs,
                      0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                  // Src: (st VR128:v8i16:$src, addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_alignedstore>> - Complexity = 22
                  // Dst: (MOVAPSmr addr:iPTR:$dst, VR128:v8i16:$src)
/*12455*/       /*Scope*/ 18, /*->12474*/
/*12456*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*12458*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*12461*/         OPC_EmitMergeInputChains1_0,
/*12462*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOVUPSmr), 0|OPFL_Chain|OPFL_MemRefs,
                      0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                  // Src: (st VR128:v8i16:$src, addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 22
                  // Dst: (MOVUPSmr addr:iPTR:$dst, VR128:v8i16:$src)
/*12474*/       /*Scope*/ 20, /*->12495*/
/*12475*/         OPC_CheckPredicate, 19, // Predicate_alignedstore
/*12477*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*12479*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*12482*/         OPC_EmitMergeInputChains1_0,
/*12483*/         OPC_MorphNodeTo, TARGET_VAL(X86::VMOVAPSmr), 0|OPFL_Chain|OPFL_MemRefs,
                      0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                  // Src: (st VR128:v8i16:$src, addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_alignedstore>> - Complexity = 22
                  // Dst: (VMOVAPSmr addr:iPTR:$dst, VR128:v8i16:$src)
/*12495*/       /*Scope*/ 18, /*->12514*/
/*12496*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*12498*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*12501*/         OPC_EmitMergeInputChains1_0,
/*12502*/         OPC_MorphNodeTo, TARGET_VAL(X86::VMOVUPSmr), 0|OPFL_Chain|OPFL_MemRefs,
                      0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                  // Src: (st VR128:v8i16:$src, addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 22
                  // Dst: (VMOVUPSmr addr:iPTR:$dst, VR128:v8i16:$src)
/*12514*/       0, /*End of Scope*/
/*12515*/     /*Scope*/ 89, /*->12605*/
/*12516*/       OPC_CheckChild1Type, MVT::v16i8,
/*12518*/       OPC_RecordChild2, // #2 = $dst
/*12519*/       OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*12521*/       OPC_CheckPredicate, 5, // Predicate_store
/*12523*/       OPC_Scope, 20, /*->12545*/ // 4 children in Scope
/*12525*/         OPC_CheckPredicate, 19, // Predicate_alignedstore
/*12527*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*12529*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*12532*/         OPC_EmitMergeInputChains1_0,
/*12533*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOVAPSmr), 0|OPFL_Chain|OPFL_MemRefs,
                      0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                  // Src: (st VR128:v16i8:$src, addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_alignedstore>> - Complexity = 22
                  // Dst: (MOVAPSmr addr:iPTR:$dst, VR128:v16i8:$src)
/*12545*/       /*Scope*/ 18, /*->12564*/
/*12546*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*12548*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*12551*/         OPC_EmitMergeInputChains1_0,
/*12552*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOVUPSmr), 0|OPFL_Chain|OPFL_MemRefs,
                      0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                  // Src: (st VR128:v16i8:$src, addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 22
                  // Dst: (MOVUPSmr addr:iPTR:$dst, VR128:v16i8:$src)
/*12564*/       /*Scope*/ 20, /*->12585*/
/*12565*/         OPC_CheckPredicate, 19, // Predicate_alignedstore
/*12567*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*12569*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*12572*/         OPC_EmitMergeInputChains1_0,
/*12573*/         OPC_MorphNodeTo, TARGET_VAL(X86::VMOVAPSmr), 0|OPFL_Chain|OPFL_MemRefs,
                      0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                  // Src: (st VR128:v16i8:$src, addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_alignedstore>> - Complexity = 22
                  // Dst: (VMOVAPSmr addr:iPTR:$dst, VR128:v16i8:$src)
/*12585*/       /*Scope*/ 18, /*->12604*/
/*12586*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*12588*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*12591*/         OPC_EmitMergeInputChains1_0,
/*12592*/         OPC_MorphNodeTo, TARGET_VAL(X86::VMOVUPSmr), 0|OPFL_Chain|OPFL_MemRefs,
                      0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                  // Src: (st VR128:v16i8:$src, addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 22
                  // Dst: (VMOVUPSmr addr:iPTR:$dst, VR128:v16i8:$src)
/*12604*/       0, /*End of Scope*/
/*12605*/     /*Scope*/ 49, /*->12655*/
/*12606*/       OPC_CheckChild1Type, MVT::v4i64,
/*12608*/       OPC_RecordChild2, // #2 = $dst
/*12609*/       OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*12611*/       OPC_CheckPredicate, 5, // Predicate_store
/*12613*/       OPC_Scope, 20, /*->12635*/ // 2 children in Scope
/*12615*/         OPC_CheckPredicate, 20, // Predicate_alignedstore256
/*12617*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*12619*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*12622*/         OPC_EmitMergeInputChains1_0,
/*12623*/         OPC_MorphNodeTo, TARGET_VAL(X86::VMOVAPSYmr), 0|OPFL_Chain|OPFL_MemRefs,
                      0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                  // Src: (st VR256:v4i64:$src, addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_alignedstore256>> - Complexity = 22
                  // Dst: (VMOVAPSYmr addr:iPTR:$dst, VR256:v4i64:$src)
/*12635*/       /*Scope*/ 18, /*->12654*/
/*12636*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*12638*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*12641*/         OPC_EmitMergeInputChains1_0,
/*12642*/         OPC_MorphNodeTo, TARGET_VAL(X86::VMOVUPSYmr), 0|OPFL_Chain|OPFL_MemRefs,
                      0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                  // Src: (st VR256:v4i64:$src, addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 22
                  // Dst: (VMOVUPSYmr addr:iPTR:$dst, VR256:v4i64:$src)
/*12654*/       0, /*End of Scope*/
/*12655*/     /*Scope*/ 49, /*->12705*/
/*12656*/       OPC_CheckChild1Type, MVT::v8i32,
/*12658*/       OPC_RecordChild2, // #2 = $dst
/*12659*/       OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*12661*/       OPC_CheckPredicate, 5, // Predicate_store
/*12663*/       OPC_Scope, 20, /*->12685*/ // 2 children in Scope
/*12665*/         OPC_CheckPredicate, 20, // Predicate_alignedstore256
/*12667*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*12669*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*12672*/         OPC_EmitMergeInputChains1_0,
/*12673*/         OPC_MorphNodeTo, TARGET_VAL(X86::VMOVAPSYmr), 0|OPFL_Chain|OPFL_MemRefs,
                      0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                  // Src: (st VR256:v8i32:$src, addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_alignedstore256>> - Complexity = 22
                  // Dst: (VMOVAPSYmr addr:iPTR:$dst, VR256:v8i32:$src)
/*12685*/       /*Scope*/ 18, /*->12704*/
/*12686*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*12688*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*12691*/         OPC_EmitMergeInputChains1_0,
/*12692*/         OPC_MorphNodeTo, TARGET_VAL(X86::VMOVUPSYmr), 0|OPFL_Chain|OPFL_MemRefs,
                      0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                  // Src: (st VR256:v8i32:$src, addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 22
                  // Dst: (VMOVUPSYmr addr:iPTR:$dst, VR256:v8i32:$src)
/*12704*/       0, /*End of Scope*/
/*12705*/     /*Scope*/ 49, /*->12755*/
/*12706*/       OPC_CheckChild1Type, MVT::v16i16,
/*12708*/       OPC_RecordChild2, // #2 = $dst
/*12709*/       OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*12711*/       OPC_CheckPredicate, 5, // Predicate_store
/*12713*/       OPC_Scope, 20, /*->12735*/ // 2 children in Scope
/*12715*/         OPC_CheckPredicate, 20, // Predicate_alignedstore256
/*12717*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*12719*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*12722*/         OPC_EmitMergeInputChains1_0,
/*12723*/         OPC_MorphNodeTo, TARGET_VAL(X86::VMOVAPSYmr), 0|OPFL_Chain|OPFL_MemRefs,
                      0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                  // Src: (st VR256:v16i16:$src, addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_alignedstore256>> - Complexity = 22
                  // Dst: (VMOVAPSYmr addr:iPTR:$dst, VR256:v16i16:$src)
/*12735*/       /*Scope*/ 18, /*->12754*/
/*12736*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*12738*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*12741*/         OPC_EmitMergeInputChains1_0,
/*12742*/         OPC_MorphNodeTo, TARGET_VAL(X86::VMOVUPSYmr), 0|OPFL_Chain|OPFL_MemRefs,
                      0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                  // Src: (st VR256:v16i16:$src, addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 22
                  // Dst: (VMOVUPSYmr addr:iPTR:$dst, VR256:v16i16:$src)
/*12754*/       0, /*End of Scope*/
/*12755*/     /*Scope*/ 49, /*->12805*/
/*12756*/       OPC_CheckChild1Type, MVT::v32i8,
/*12758*/       OPC_RecordChild2, // #2 = $dst
/*12759*/       OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*12761*/       OPC_CheckPredicate, 5, // Predicate_store
/*12763*/       OPC_Scope, 20, /*->12785*/ // 2 children in Scope
/*12765*/         OPC_CheckPredicate, 20, // Predicate_alignedstore256
/*12767*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*12769*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*12772*/         OPC_EmitMergeInputChains1_0,
/*12773*/         OPC_MorphNodeTo, TARGET_VAL(X86::VMOVAPSYmr), 0|OPFL_Chain|OPFL_MemRefs,
                      0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                  // Src: (st VR256:v32i8:$src, addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_alignedstore256>> - Complexity = 22
                  // Dst: (VMOVAPSYmr addr:iPTR:$dst, VR256:v32i8:$src)
/*12785*/       /*Scope*/ 18, /*->12804*/
/*12786*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*12788*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*12791*/         OPC_EmitMergeInputChains1_0,
/*12792*/         OPC_MorphNodeTo, TARGET_VAL(X86::VMOVUPSYmr), 0|OPFL_Chain|OPFL_MemRefs,
                      0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                  // Src: (st VR256:v32i8:$src, addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 22
                  // Dst: (VMOVUPSYmr addr:iPTR:$dst, VR256:v32i8:$src)
/*12804*/       0, /*End of Scope*/
/*12805*/     /*Scope*/ 25, /*->12831*/
/*12806*/       OPC_CheckChild1Type, MVT::x86mmx,
/*12808*/       OPC_RecordChild2, // #2 = $dst
/*12809*/       OPC_CheckPredicate, 4, // Predicate_unindexedstore
/*12811*/       OPC_CheckPredicate, 5, // Predicate_store
/*12813*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*12815*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*12818*/       OPC_EmitMergeInputChains1_0,
/*12819*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_MOVQ64mr), 0|OPFL_Chain|OPFL_MemRefs,
                    0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                // Src: (st VR64:x86mmx:$src, addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 22
                // Dst: (MMX_MOVQ64mr addr:iPTR:$dst, VR64:x86mmx:$src)
/*12831*/     0, /*End of Scope*/
/*12832*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 100|128,12/*1636*/,  TARGET_VAL(X86ISD::VZEXT_MOVL),// ->14473
/*12837*/   OPC_Scope, 61|128,4/*573*/, /*->13413*/ // 7 children in Scope
/*12840*/     OPC_MoveChild, 0,
/*12842*/     OPC_SwitchOpcode /*3 cases */, 103|128,1/*231*/,  TARGET_VAL(ISD::SCALAR_TO_VECTOR),// ->13078
/*12847*/       OPC_Scope, 37, /*->12886*/ // 4 children in Scope
/*12849*/         OPC_MoveChild, 0,
/*12851*/         OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*12854*/         OPC_RecordMemRef,
/*12855*/         OPC_RecordNode, // #0 = 'ld' chained node
/*12856*/         OPC_CheckFoldableChainNode,
/*12857*/         OPC_RecordChild1, // #1 = $src
/*12858*/         OPC_CheckPredicate, 2, // Predicate_unindexedload
/*12860*/         OPC_CheckPredicate, 7, // Predicate_loadi32
/*12862*/         OPC_CheckType, MVT::i32,
/*12864*/         OPC_MoveParent,
/*12865*/         OPC_MoveParent,
/*12866*/         OPC_CheckType, MVT::x86mmx,
/*12868*/         OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*12870*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*12873*/         OPC_EmitMergeInputChains1_0,
/*12874*/         OPC_MorphNodeTo, TARGET_VAL(X86::MMX_MOVZDI2PDIrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::x86mmx, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (X86vzmovl:x86mmx (scalar_to_vector:x86mmx (ld:i32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)) - Complexity = 48
                  // Dst: (MMX_MOVZDI2PDIrm:x86mmx addr:iPTR:$src)
/*12886*/       /*Scope*/ 16, /*->12903*/
/*12887*/         OPC_RecordChild0, // #0 = $src
/*12888*/         OPC_CheckChild0Type, MVT::i32,
/*12890*/         OPC_MoveParent,
/*12891*/         OPC_CheckType, MVT::x86mmx,
/*12893*/         OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*12895*/         OPC_MorphNodeTo, TARGET_VAL(X86::MMX_MOVZDI2PDIrr), 0,
                      1/*#VTs*/, MVT::x86mmx, 1/*#Ops*/, 0, 
                  // Src: (X86vzmovl:x86mmx (scalar_to_vector:x86mmx GR32:i32:$src)) - Complexity = 21
                  // Dst: (MMX_MOVZDI2PDIrr:x86mmx GR32:i32:$src)
/*12903*/       /*Scope*/ 109, /*->13013*/
/*12904*/         OPC_MoveChild, 0,
/*12906*/         OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*12909*/         OPC_RecordMemRef,
/*12910*/         OPC_RecordNode, // #0 = 'ld' chained node
/*12911*/         OPC_CheckFoldableChainNode,
/*12912*/         OPC_RecordChild1, // #1 = $src
/*12913*/         OPC_CheckPredicate, 2, // Predicate_unindexedload
/*12915*/         OPC_SwitchType /*2 cases */, 46,  MVT::i32,// ->12964
/*12918*/           OPC_CheckPredicate, 7, // Predicate_loadi32
/*12920*/           OPC_MoveParent,
/*12921*/           OPC_MoveParent,
/*12922*/           OPC_CheckType, MVT::v4i32,
/*12924*/           OPC_Scope, 18, /*->12944*/ // 2 children in Scope
/*12926*/             OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*12928*/             OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*12931*/             OPC_EmitMergeInputChains1_0,
/*12932*/             OPC_MorphNodeTo, TARGET_VAL(X86::VMOVZDI2PDIrm), 0|OPFL_Chain|OPFL_MemRefs,
                          1/*#VTs*/, MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86vzmovl:v4i32 (scalar_to_vector:v4i32 (ld:i32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)) - Complexity = 48
                      // Dst: (VMOVZDI2PDIrm:v4i32 addr:iPTR:$src)
/*12944*/           /*Scope*/ 18, /*->12963*/
/*12945*/             OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*12947*/             OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*12950*/             OPC_EmitMergeInputChains1_0,
/*12951*/             OPC_MorphNodeTo, TARGET_VAL(X86::MOVZDI2PDIrm), 0|OPFL_Chain|OPFL_MemRefs,
                          1/*#VTs*/, MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86vzmovl:v4i32 (scalar_to_vector:v4i32 (ld:i32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)) - Complexity = 48
                      // Dst: (MOVZDI2PDIrm:v4i32 addr:iPTR:$src)
/*12963*/           0, /*End of Scope*/
                  /*SwitchType*/ 46,  MVT::i64,// ->13012
/*12966*/           OPC_CheckPredicate, 3, // Predicate_load
/*12968*/           OPC_MoveParent,
/*12969*/           OPC_MoveParent,
/*12970*/           OPC_CheckType, MVT::v2i64,
/*12972*/           OPC_Scope, 18, /*->12992*/ // 2 children in Scope
/*12974*/             OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*12976*/             OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*12979*/             OPC_EmitMergeInputChains1_0,
/*12980*/             OPC_MorphNodeTo, TARGET_VAL(X86::VMOVZQI2PQIrm), 0|OPFL_Chain|OPFL_MemRefs,
                          1/*#VTs*/, MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86vzmovl:v2i64 (scalar_to_vector:v2i64 (ld:i64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 48
                      // Dst: (VMOVZQI2PQIrm:v2i64 addr:iPTR:$src)
/*12992*/           /*Scope*/ 18, /*->13011*/
/*12993*/             OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*12995*/             OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*12998*/             OPC_EmitMergeInputChains1_0,
/*12999*/             OPC_MorphNodeTo, TARGET_VAL(X86::MOVZQI2PQIrm), 0|OPFL_Chain|OPFL_MemRefs,
                          1/*#VTs*/, MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86vzmovl:v2i64 (scalar_to_vector:v2i64 (ld:i64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 48
                      // Dst: (MOVZQI2PQIrm:v2i64 addr:iPTR:$src)
/*13011*/           0, /*End of Scope*/
                  0, // EndSwitchType
/*13013*/       /*Scope*/ 63, /*->13077*/
/*13014*/         OPC_RecordChild0, // #0 = $src
/*13015*/         OPC_Scope, 29, /*->13046*/ // 2 children in Scope
/*13017*/           OPC_CheckChild0Type, MVT::i32,
/*13019*/           OPC_MoveParent,
/*13020*/           OPC_CheckType, MVT::v4i32,
/*13022*/           OPC_Scope, 10, /*->13034*/ // 2 children in Scope
/*13024*/             OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*13026*/             OPC_MorphNodeTo, TARGET_VAL(X86::VMOVZDI2PDIrr), 0,
                          1/*#VTs*/, MVT::v4i32, 1/*#Ops*/, 0, 
                      // Src: (X86vzmovl:v4i32 (scalar_to_vector:v4i32 GR32:i32:$src)) - Complexity = 21
                      // Dst: (VMOVZDI2PDIrr:v4i32 GR32:i32:$src)
/*13034*/           /*Scope*/ 10, /*->13045*/
/*13035*/             OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*13037*/             OPC_MorphNodeTo, TARGET_VAL(X86::MOVZDI2PDIrr), 0,
                          1/*#VTs*/, MVT::v4i32, 1/*#Ops*/, 0, 
                      // Src: (X86vzmovl:v4i32 (scalar_to_vector:v4i32 GR32:i32:$src)) - Complexity = 21
                      // Dst: (MOVZDI2PDIrr:v4i32 GR32:i32:$src)
/*13045*/           0, /*End of Scope*/
/*13046*/         /*Scope*/ 29, /*->13076*/
/*13047*/           OPC_CheckChild0Type, MVT::i64,
/*13049*/           OPC_MoveParent,
/*13050*/           OPC_CheckType, MVT::v2i64,
/*13052*/           OPC_Scope, 10, /*->13064*/ // 2 children in Scope
/*13054*/             OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*13056*/             OPC_MorphNodeTo, TARGET_VAL(X86::VMOVZQI2PQIrr), 0,
                          1/*#VTs*/, MVT::v2i64, 1/*#Ops*/, 0, 
                      // Src: (X86vzmovl:v2i64 (scalar_to_vector:v2i64 GR64:i64:$src)) - Complexity = 21
                      // Dst: (VMOVZQI2PQIrr:v2i64 GR64:i64:$src)
/*13064*/           /*Scope*/ 10, /*->13075*/
/*13065*/             OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*13067*/             OPC_MorphNodeTo, TARGET_VAL(X86::MOVZQI2PQIrr), 0,
                          1/*#VTs*/, MVT::v2i64, 1/*#Ops*/, 0, 
                      // Src: (X86vzmovl:v2i64 (scalar_to_vector:v2i64 GR64:i64:$src)) - Complexity = 21
                      // Dst: (MOVZQI2PQIrr:v2i64 GR64:i64:$src)
/*13075*/           0, /*End of Scope*/
/*13076*/         0, /*End of Scope*/
/*13077*/       0, /*End of Scope*/
              /*SwitchOpcode*/ 69|128,1/*197*/,  TARGET_VAL(ISD::BITCAST),// ->13279
/*13082*/       OPC_MoveChild, 0,
/*13084*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*13087*/       OPC_RecordMemRef,
/*13088*/       OPC_RecordNode, // #0 = 'ld' chained node
/*13089*/       OPC_CheckFoldableChainNode,
/*13090*/       OPC_RecordChild1, // #1 = $src
/*13091*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*13093*/       OPC_CheckPredicate, 3, // Predicate_load
/*13095*/       OPC_SwitchType /*3 cases */, 88,  MVT::v4f32,// ->13186
/*13098*/         OPC_MoveParent,
/*13099*/         OPC_MoveParent,
/*13100*/         OPC_SwitchType /*2 cases */, 40,  MVT::v4i32,// ->13143
/*13103*/           OPC_Scope, 18, /*->13123*/ // 2 children in Scope
/*13105*/             OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*13107*/             OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*13110*/             OPC_EmitMergeInputChains1_0,
/*13111*/             OPC_MorphNodeTo, TARGET_VAL(X86::MOVZDI2PDIrm), 0|OPFL_Chain|OPFL_MemRefs,
                          1/*#VTs*/, MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86vzmovl:v4i32 (bitconvert:v4i32 (ld:v4f32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 48
                      // Dst: (MOVZDI2PDIrm:v4i32 addr:iPTR:$src)
/*13123*/           /*Scope*/ 18, /*->13142*/
/*13124*/             OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*13126*/             OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*13129*/             OPC_EmitMergeInputChains1_0,
/*13130*/             OPC_MorphNodeTo, TARGET_VAL(X86::VMOVZDI2PDIrm), 0|OPFL_Chain|OPFL_MemRefs,
                          1/*#VTs*/, MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86vzmovl:v4i32 (bitconvert:v4i32 (ld:v4f32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 48
                      // Dst: (VMOVZDI2PDIrm:v4i32 addr:iPTR:$src)
/*13142*/           0, /*End of Scope*/
                  /*SwitchType*/ 40,  MVT::v2i64,// ->13185
/*13145*/           OPC_Scope, 18, /*->13165*/ // 2 children in Scope
/*13147*/             OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*13149*/             OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*13152*/             OPC_EmitMergeInputChains1_0,
/*13153*/             OPC_MorphNodeTo, TARGET_VAL(X86::MOVZQI2PQIrm), 0|OPFL_Chain|OPFL_MemRefs,
                          1/*#VTs*/, MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86vzmovl:v2i64 (bitconvert:v2i64 (ld:v4f32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 48
                      // Dst: (MOVZQI2PQIrm:v2i64 addr:iPTR:$src)
/*13165*/           /*Scope*/ 18, /*->13184*/
/*13166*/             OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*13168*/             OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*13171*/             OPC_EmitMergeInputChains1_0,
/*13172*/             OPC_MorphNodeTo, TARGET_VAL(X86::VMOVZQI2PQIrm), 0|OPFL_Chain|OPFL_MemRefs,
                          1/*#VTs*/, MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86vzmovl:v2i64 (bitconvert:v2i64 (ld:v4f32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 48
                      // Dst: (VMOVZQI2PQIrm:v2i64 addr:iPTR:$src)
/*13184*/           0, /*End of Scope*/
                  0, // EndSwitchType
                /*SwitchType*/ 44,  MVT::v2i64,// ->13232
/*13188*/         OPC_MoveParent,
/*13189*/         OPC_MoveParent,
/*13190*/         OPC_CheckType, MVT::v4i32,
/*13192*/         OPC_Scope, 18, /*->13212*/ // 2 children in Scope
/*13194*/           OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*13196*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*13199*/           OPC_EmitMergeInputChains1_0,
/*13200*/           OPC_MorphNodeTo, TARGET_VAL(X86::MOVZDI2PDIrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86vzmovl:v4i32 (bitconvert:v4i32 (ld:v2i64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 48
                    // Dst: (MOVZDI2PDIrm:v4i32 addr:iPTR:$src)
/*13212*/         /*Scope*/ 18, /*->13231*/
/*13213*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*13215*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*13218*/           OPC_EmitMergeInputChains1_0,
/*13219*/           OPC_MorphNodeTo, TARGET_VAL(X86::VMOVZDI2PDIrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86vzmovl:v4i32 (bitconvert:v4i32 (ld:v2i64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 48
                    // Dst: (VMOVZDI2PDIrm:v4i32 addr:iPTR:$src)
/*13231*/         0, /*End of Scope*/
                /*SwitchType*/ 44,  MVT::v4i32,// ->13278
/*13234*/         OPC_MoveParent,
/*13235*/         OPC_MoveParent,
/*13236*/         OPC_CheckType, MVT::v2i64,
/*13238*/         OPC_Scope, 18, /*->13258*/ // 2 children in Scope
/*13240*/           OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*13242*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*13245*/           OPC_EmitMergeInputChains1_0,
/*13246*/           OPC_MorphNodeTo, TARGET_VAL(X86::MOVZPQILo2PQIrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86vzmovl:v2i64 (bitconvert:v2i64 (ld:v4i32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 48
                    // Dst: (MOVZPQILo2PQIrm:v2i64 addr:iPTR:$src)
/*13258*/         /*Scope*/ 18, /*->13277*/
/*13259*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*13261*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*13264*/           OPC_EmitMergeInputChains1_0,
/*13265*/           OPC_MorphNodeTo, TARGET_VAL(X86::VMOVZPQILo2PQIrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86vzmovl:v2i64 (bitconvert:v2i64 (ld:v4i32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 48
                    // Dst: (VMOVZPQILo2PQIrm:v2i64 addr:iPTR:$src)
/*13277*/         0, /*End of Scope*/
                0, // EndSwitchType
              /*SwitchOpcode*/ 1|128,1/*129*/,  TARGET_VAL(ISD::LOAD),// ->13412
/*13283*/       OPC_RecordMemRef,
/*13284*/       OPC_RecordNode, // #0 = 'ld' chained node
/*13285*/       OPC_RecordChild1, // #1 = $src
/*13286*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*13288*/       OPC_CheckPredicate, 3, // Predicate_load
/*13290*/       OPC_MoveParent,
/*13291*/       OPC_SwitchType /*2 cases */, 40,  MVT::v4i32,// ->13334
/*13294*/         OPC_Scope, 18, /*->13314*/ // 2 children in Scope
/*13296*/           OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*13298*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*13301*/           OPC_EmitMergeInputChains1_0,
/*13302*/           OPC_MorphNodeTo, TARGET_VAL(X86::MOVZDI2PDIrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86vzmovl:v4i32 (ld:v4i32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 45
                    // Dst: (MOVZDI2PDIrm:v4i32 addr:iPTR:$src)
/*13314*/         /*Scope*/ 18, /*->13333*/
/*13315*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*13317*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*13320*/           OPC_EmitMergeInputChains1_0,
/*13321*/           OPC_MorphNodeTo, TARGET_VAL(X86::VMOVZDI2PDIrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86vzmovl:v4i32 (ld:v4i32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 45
                    // Dst: (VMOVZDI2PDIrm:v4i32 addr:iPTR:$src)
/*13333*/         0, /*End of Scope*/
                /*SwitchType*/ 75,  MVT::v2i64,// ->13411
/*13336*/         OPC_Scope, 18, /*->13356*/ // 3 children in Scope
/*13338*/           OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*13340*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*13343*/           OPC_EmitMergeInputChains1_0,
/*13344*/           OPC_MorphNodeTo, TARGET_VAL(X86::MOVZQI2PQIrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86vzmovl:v2i64 (ld:v2i64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 45
                    // Dst: (MOVZQI2PQIrm:v2i64 addr:iPTR:$src)
/*13356*/         /*Scope*/ 34, /*->13391*/
/*13357*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*13359*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*13362*/           OPC_EmitMergeInputChains1_0,
/*13363*/           OPC_Scope, 12, /*->13377*/ // 2 children in Scope
/*13365*/             OPC_MorphNodeTo, TARGET_VAL(X86::VMOVZQI2PQIrm), 0|OPFL_Chain|OPFL_MemRefs,
                          1/*#VTs*/, MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86vzmovl:v2i64 (ld:v2i64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 45
                      // Dst: (VMOVZQI2PQIrm:v2i64 addr:iPTR:$src)
/*13377*/           /*Scope*/ 12, /*->13390*/
/*13378*/             OPC_MorphNodeTo, TARGET_VAL(X86::VMOVZPQILo2PQIrm), 0|OPFL_Chain|OPFL_MemRefs,
                          1/*#VTs*/, MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86vzmovl:v2i64 (ld:v2i64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 45
                      // Dst: (VMOVZPQILo2PQIrm:v2i64 addr:iPTR:$src)
/*13390*/           0, /*End of Scope*/
/*13391*/         /*Scope*/ 18, /*->13410*/
/*13392*/           OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*13394*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*13397*/           OPC_EmitMergeInputChains1_0,
/*13398*/           OPC_MorphNodeTo, TARGET_VAL(X86::MOVZPQILo2PQIrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86vzmovl:v2i64 (ld:v2i64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 45
                    // Dst: (MOVZPQILo2PQIrm:v2i64 addr:iPTR:$src)
/*13410*/         0, /*End of Scope*/
                0, // EndSwitchType
              0, // EndSwitchOpcode
/*13413*/   /*Scope*/ 95, /*->13509*/
/*13414*/     OPC_RecordChild0, // #0 = $src
/*13415*/     OPC_SwitchType /*2 cases */, 24,  MVT::v2i64,// ->13442
/*13418*/       OPC_Scope, 10, /*->13430*/ // 2 children in Scope
/*13420*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*13422*/         OPC_MorphNodeTo, TARGET_VAL(X86::VMOVZPQILo2PQIrr), 0,
                      1/*#VTs*/, MVT::v2i64, 1/*#Ops*/, 0, 
                  // Src: (X86vzmovl:v2i64 VR128:v2i64:$src) - Complexity = 18
                  // Dst: (VMOVZPQILo2PQIrr:v2i64 VR128:v2i64:$src)
/*13430*/       /*Scope*/ 10, /*->13441*/
/*13431*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*13433*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOVZPQILo2PQIrr), 0,
                      1/*#VTs*/, MVT::v2i64, 1/*#Ops*/, 0, 
                  // Src: (X86vzmovl:v2i64 VR128:v2i64:$src) - Complexity = 18
                  // Dst: (MOVZPQILo2PQIrr:v2i64 VR128:v2i64:$src)
/*13441*/       0, /*End of Scope*/
              /*SwitchType*/ 64,  MVT::v4i32,// ->13508
/*13444*/       OPC_Scope, 30, /*->13476*/ // 2 children in Scope
/*13446*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*13448*/         OPC_EmitNode, TARGET_VAL(X86::V_SET0), 0,
                      1/*#VTs*/, MVT::v4i32, 0/*#Ops*/,  // Results = #1 
/*13455*/         OPC_EmitInteger, MVT::i32, X86::sub_ss,
/*13458*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      1/*#VTs*/, MVT::f32, 2/*#Ops*/, 0, 2,  // Results = #3 
/*13467*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOVSSrr), 0,
                      1/*#VTs*/, MVT::v4i32, 2/*#Ops*/, 1, 3, 
                  // Src: (X86vzmovl:v4i32 VR128:v4i32:$src) - Complexity = 18
                  // Dst: (MOVSSrr:v4i32 (V_SET0:v4i32), (EXTRACT_SUBREG:f32 VR128:v4i32:$src, sub_ss:i32))
/*13476*/       /*Scope*/ 30, /*->13507*/
/*13477*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*13479*/         OPC_EmitNode, TARGET_VAL(X86::V_SET0), 0,
                      1/*#VTs*/, MVT::v4i32, 0/*#Ops*/,  // Results = #1 
/*13486*/         OPC_EmitInteger, MVT::i32, X86::sub_ss,
/*13489*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      1/*#VTs*/, MVT::f32, 2/*#Ops*/, 0, 2,  // Results = #3 
/*13498*/         OPC_MorphNodeTo, TARGET_VAL(X86::VMOVSSrr), 0,
                      1/*#VTs*/, MVT::v4i32, 2/*#Ops*/, 1, 3, 
                  // Src: (X86vzmovl:v4i32 VR128:v4i32:$src) - Complexity = 18
                  // Dst: (VMOVSSrr:v4i32 (V_SET0:v4i32), (EXTRACT_SUBREG:f32 VR128:v4i32:$src, sub_ss:i32))
/*13507*/       0, /*End of Scope*/
              0, // EndSwitchType
/*13509*/   /*Scope*/ 8|128,5/*648*/, /*->14159*/
/*13511*/     OPC_MoveChild, 0,
/*13513*/     OPC_SwitchOpcode /*4 cases */, 81|128,1/*209*/,  TARGET_VAL(ISD::INSERT_SUBVECTOR),// ->13727
/*13518*/       OPC_MoveChild, 0,
/*13520*/       OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
/*13523*/       OPC_MoveParent,
/*13524*/       OPC_MoveChild, 1,
/*13526*/       OPC_CheckOpcode, TARGET_VAL(ISD::SCALAR_TO_VECTOR),
/*13529*/       OPC_Scope, 83, /*->13614*/ // 2 children in Scope
/*13531*/         OPC_RecordChild0, // #0 = $src
/*13532*/         OPC_Scope, 39, /*->13573*/ // 2 children in Scope
/*13534*/           OPC_CheckChild0Type, MVT::i32,
/*13536*/           OPC_MoveParent,
/*13537*/           OPC_MoveChild, 2,
/*13539*/           OPC_CheckInteger, 0, 
/*13541*/           OPC_CheckType, MVT::i32,
/*13543*/           OPC_MoveParent,
/*13544*/           OPC_MoveParent,
/*13545*/           OPC_CheckType, MVT::v8i32,
/*13547*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*13549*/           OPC_EmitInteger, MVT::i32, 0, 
/*13552*/           OPC_EmitNode, TARGET_VAL(X86::VMOVZDI2PDIrr), 0,
                        1/*#VTs*/, MVT::v16i8, 1/*#Ops*/, 0,  // Results = #2 
/*13560*/           OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*13563*/           OPC_MorphNodeTo, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                        1/*#VTs*/, MVT::v8i32, 3/*#Ops*/, 1, 2, 3, 
                    // Src: (X86vzmovl:v8i32 (insert_subvector:v8i32 (undef:v8i32), (scalar_to_vector:v4i32 GR32:i32:$src), 0:i32)) - Complexity = 17
                    // Dst: (SUBREG_TO_REG:v8i32 0:i32, (VMOVZDI2PDIrr:v16i8 GR32:i32:$src), sub_xmm:i32)
/*13573*/         /*Scope*/ 39, /*->13613*/
/*13574*/           OPC_CheckChild0Type, MVT::i64,
/*13576*/           OPC_MoveParent,
/*13577*/           OPC_MoveChild, 2,
/*13579*/           OPC_CheckInteger, 0, 
/*13581*/           OPC_CheckType, MVT::i32,
/*13583*/           OPC_MoveParent,
/*13584*/           OPC_MoveParent,
/*13585*/           OPC_CheckType, MVT::v4i64,
/*13587*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*13589*/           OPC_EmitInteger, MVT::i64, 0, 
/*13592*/           OPC_EmitNode, TARGET_VAL(X86::VMOVZQI2PQIrr), 0,
                        1/*#VTs*/, MVT::v16i8, 1/*#Ops*/, 0,  // Results = #2 
/*13600*/           OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*13603*/           OPC_MorphNodeTo, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                        1/*#VTs*/, MVT::v4i64, 3/*#Ops*/, 1, 2, 3, 
                    // Src: (X86vzmovl:v4i64 (insert_subvector:v4i64 (undef:v4i64), (scalar_to_vector:v2i64 GR64:i64:$src), 0:i32)) - Complexity = 17
                    // Dst: (SUBREG_TO_REG:v4i64 0:i64, (VMOVZQI2PQIrr:v16i8 GR64:i64:$src), sub_xmm:i32)
/*13613*/         0, /*End of Scope*/
/*13614*/       /*Scope*/ 111, /*->13726*/
/*13615*/         OPC_MoveChild, 0,
/*13617*/         OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*13620*/         OPC_RecordMemRef,
/*13621*/         OPC_RecordNode, // #0 = 'ld' chained node
/*13622*/         OPC_CheckFoldableChainNode,
/*13623*/         OPC_RecordChild1, // #1 = $src
/*13624*/         OPC_CheckPredicate, 2, // Predicate_unindexedload
/*13626*/         OPC_CheckPredicate, 3, // Predicate_load
/*13628*/         OPC_SwitchType /*2 cases */, 46,  MVT::f32,// ->13677
/*13631*/           OPC_MoveParent,
/*13632*/           OPC_MoveParent,
/*13633*/           OPC_MoveChild, 2,
/*13635*/           OPC_CheckInteger, 0, 
/*13637*/           OPC_CheckType, MVT::i32,
/*13639*/           OPC_MoveParent,
/*13640*/           OPC_MoveParent,
/*13641*/           OPC_CheckType, MVT::v8f32,
/*13643*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*13645*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*13648*/           OPC_EmitMergeInputChains1_0,
/*13649*/           OPC_EmitInteger, MVT::i32, 0, 
/*13652*/           OPC_EmitNode, TARGET_VAL(X86::VMOVSSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::f32, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #8 
/*13664*/           OPC_EmitInteger, MVT::i32, X86::sub_ss,
/*13667*/           OPC_MorphNodeTo, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain,
                        1/*#VTs*/, MVT::v8f32, 3/*#Ops*/, 7, 8, 9, 
                    // Src: (X86vzmovl:v8f32 (insert_subvector:v8f32 (undef:v8f32), (scalar_to_vector:v4f32 (ld:f32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), 0:i32)) - Complexity = 59
                    // Dst: (SUBREG_TO_REG:v8f32 0:i32, (VMOVSSrm:f32 addr:iPTR:$src), sub_ss:i32)
                  /*SwitchType*/ 46,  MVT::f64,// ->13725
/*13679*/           OPC_MoveParent,
/*13680*/           OPC_MoveParent,
/*13681*/           OPC_MoveChild, 2,
/*13683*/           OPC_CheckInteger, 0, 
/*13685*/           OPC_CheckType, MVT::i32,
/*13687*/           OPC_MoveParent,
/*13688*/           OPC_MoveParent,
/*13689*/           OPC_CheckType, MVT::v4f64,
/*13691*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*13693*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*13696*/           OPC_EmitMergeInputChains1_0,
/*13697*/           OPC_EmitInteger, MVT::i32, 0, 
/*13700*/           OPC_EmitNode, TARGET_VAL(X86::VMOVSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::f64, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #8 
/*13712*/           OPC_EmitInteger, MVT::i32, X86::sub_sd,
/*13715*/           OPC_MorphNodeTo, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain,
                        1/*#VTs*/, MVT::v4f64, 3/*#Ops*/, 7, 8, 9, 
                    // Src: (X86vzmovl:v4f64 (insert_subvector:v4f64 (undef:v4f64), (scalar_to_vector:v2f64 (ld:f64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), 0:i32)) - Complexity = 59
                    // Dst: (SUBREG_TO_REG:v4f64 0:i32, (VMOVSDrm:f64 addr:iPTR:$src), sub_sd:i32)
                  0, // EndSwitchType
/*13726*/       0, /*End of Scope*/
              /*SwitchOpcode*/ 43|128,1/*171*/,  TARGET_VAL(ISD::SCALAR_TO_VECTOR),// ->13902
/*13731*/       OPC_MoveChild, 0,
/*13733*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*13736*/       OPC_RecordMemRef,
/*13737*/       OPC_RecordNode, // #0 = 'ld' chained node
/*13738*/       OPC_CheckFoldableChainNode,
/*13739*/       OPC_RecordChild1, // #1 = $src
/*13740*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*13742*/       OPC_CheckPredicate, 3, // Predicate_load
/*13744*/       OPC_SwitchType /*2 cases */, 76,  MVT::f32,// ->13823
/*13747*/         OPC_MoveParent,
/*13748*/         OPC_MoveParent,
/*13749*/         OPC_CheckType, MVT::v4f32,
/*13751*/         OPC_Scope, 34, /*->13787*/ // 2 children in Scope
/*13753*/           OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*13755*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*13758*/           OPC_EmitMergeInputChains1_0,
/*13759*/           OPC_EmitInteger, MVT::i32, 0, 
/*13762*/           OPC_EmitNode, TARGET_VAL(X86::MOVSSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::f32, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #8 
/*13774*/           OPC_EmitInteger, MVT::i32, X86::sub_ss,
/*13777*/           OPC_MorphNodeTo, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain,
                        1/*#VTs*/, MVT::v4f32, 3/*#Ops*/, 7, 8, 9, 
                    // Src: (X86vzmovl:v4f32 (scalar_to_vector:v4f32 (ld:f32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 48
                    // Dst: (SUBREG_TO_REG:v4f32 0:i32, (MOVSSrm:f32 addr:iPTR:$src), sub_ss:i32)
/*13787*/         /*Scope*/ 34, /*->13822*/
/*13788*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*13790*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*13793*/           OPC_EmitMergeInputChains1_0,
/*13794*/           OPC_EmitInteger, MVT::i32, 0, 
/*13797*/           OPC_EmitNode, TARGET_VAL(X86::VMOVSSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::f32, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #8 
/*13809*/           OPC_EmitInteger, MVT::i32, X86::sub_ss,
/*13812*/           OPC_MorphNodeTo, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain,
                        1/*#VTs*/, MVT::v4f32, 3/*#Ops*/, 7, 8, 9, 
                    // Src: (X86vzmovl:v4f32 (scalar_to_vector:v4f32 (ld:f32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 48
                    // Dst: (SUBREG_TO_REG:v4f32 0:i32, (VMOVSSrm:f32 addr:iPTR:$src), sub_ss:i32)
/*13822*/         0, /*End of Scope*/
                /*SwitchType*/ 76,  MVT::f64,// ->13901
/*13825*/         OPC_MoveParent,
/*13826*/         OPC_MoveParent,
/*13827*/         OPC_CheckType, MVT::v2f64,
/*13829*/         OPC_Scope, 34, /*->13865*/ // 2 children in Scope
/*13831*/           OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*13833*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*13836*/           OPC_EmitMergeInputChains1_0,
/*13837*/           OPC_EmitInteger, MVT::i64, 0, 
/*13840*/           OPC_EmitNode, TARGET_VAL(X86::MOVSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::f64, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #8 
/*13852*/           OPC_EmitInteger, MVT::i32, X86::sub_sd,
/*13855*/           OPC_MorphNodeTo, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain,
                        1/*#VTs*/, MVT::v2f64, 3/*#Ops*/, 7, 8, 9, 
                    // Src: (X86vzmovl:v2f64 (scalar_to_vector:v2f64 (ld:f64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 48
                    // Dst: (SUBREG_TO_REG:v2f64 0:i64, (MOVSDrm:f64 addr:iPTR:$src), sub_sd:i32)
/*13865*/         /*Scope*/ 34, /*->13900*/
/*13866*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*13868*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*13871*/           OPC_EmitMergeInputChains1_0,
/*13872*/           OPC_EmitInteger, MVT::i64, 0, 
/*13875*/           OPC_EmitNode, TARGET_VAL(X86::VMOVSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::f64, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #8 
/*13887*/           OPC_EmitInteger, MVT::i32, X86::sub_sd,
/*13890*/           OPC_MorphNodeTo, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain,
                        1/*#VTs*/, MVT::v2f64, 3/*#Ops*/, 7, 8, 9, 
                    // Src: (X86vzmovl:v2f64 (scalar_to_vector:v2f64 (ld:f64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 48
                    // Dst: (SUBREG_TO_REG:v2f64 0:i64, (VMOVSDrm:f64 addr:iPTR:$src), sub_sd:i32)
/*13900*/         0, /*End of Scope*/
                0, // EndSwitchType
              /*SwitchOpcode*/ 91,  TARGET_VAL(ISD::BITCAST),// ->13996
/*13905*/       OPC_MoveChild, 0,
/*13907*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*13910*/       OPC_RecordMemRef,
/*13911*/       OPC_RecordNode, // #0 = 'ld' chained node
/*13912*/       OPC_CheckFoldableChainNode,
/*13913*/       OPC_RecordChild1, // #1 = $src
/*13914*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*13916*/       OPC_CheckPredicate, 3, // Predicate_load
/*13918*/       OPC_CheckType, MVT::v4f32,
/*13920*/       OPC_MoveParent,
/*13921*/       OPC_MoveParent,
/*13922*/       OPC_CheckType, MVT::v2f64,
/*13924*/       OPC_Scope, 34, /*->13960*/ // 2 children in Scope
/*13926*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*13928*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*13931*/         OPC_EmitMergeInputChains1_0,
/*13932*/         OPC_EmitInteger, MVT::i64, 0, 
/*13935*/         OPC_EmitNode, TARGET_VAL(X86::MOVSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::f64, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #8 
/*13947*/         OPC_EmitInteger, MVT::i32, X86::sub_sd,
/*13950*/         OPC_MorphNodeTo, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain,
                      1/*#VTs*/, MVT::v2f64, 3/*#Ops*/, 7, 8, 9, 
                  // Src: (X86vzmovl:v2f64 (bitconvert:v2f64 (ld:v4f32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 48
                  // Dst: (SUBREG_TO_REG:v2f64 0:i64, (MOVSDrm:f64 addr:iPTR:$src), sub_sd:i32)
/*13960*/       /*Scope*/ 34, /*->13995*/
/*13961*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*13963*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*13966*/         OPC_EmitMergeInputChains1_0,
/*13967*/         OPC_EmitInteger, MVT::i64, 0, 
/*13970*/         OPC_EmitNode, TARGET_VAL(X86::VMOVSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::f64, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #8 
/*13982*/         OPC_EmitInteger, MVT::i32, X86::sub_sd,
/*13985*/         OPC_MorphNodeTo, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain,
                      1/*#VTs*/, MVT::v2f64, 3/*#Ops*/, 7, 8, 9, 
                  // Src: (X86vzmovl:v2f64 (bitconvert:v2f64 (ld:v4f32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 48
                  // Dst: (SUBREG_TO_REG:v2f64 0:i64, (VMOVSDrm:f64 addr:iPTR:$src), sub_sd:i32)
/*13995*/       0, /*End of Scope*/
              /*SwitchOpcode*/ 30|128,1/*158*/,  TARGET_VAL(ISD::LOAD),// ->14158
/*14000*/       OPC_RecordMemRef,
/*14001*/       OPC_RecordNode, // #0 = 'ld' chained node
/*14002*/       OPC_RecordChild1, // #1 = $src
/*14003*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*14005*/       OPC_CheckPredicate, 3, // Predicate_load
/*14007*/       OPC_MoveParent,
/*14008*/       OPC_SwitchType /*2 cases */, 72,  MVT::v4f32,// ->14083
/*14011*/         OPC_Scope, 34, /*->14047*/ // 2 children in Scope
/*14013*/           OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*14015*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*14018*/           OPC_EmitMergeInputChains1_0,
/*14019*/           OPC_EmitInteger, MVT::i32, 0, 
/*14022*/           OPC_EmitNode, TARGET_VAL(X86::MOVSSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::f32, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #8 
/*14034*/           OPC_EmitInteger, MVT::i32, X86::sub_ss,
/*14037*/           OPC_MorphNodeTo, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain,
                        1/*#VTs*/, MVT::v4f32, 3/*#Ops*/, 7, 8, 9, 
                    // Src: (X86vzmovl:v4f32 (ld:v4f32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 45
                    // Dst: (SUBREG_TO_REG:v4f32 0:i32, (MOVSSrm:f32 addr:iPTR:$src), sub_ss:i32)
/*14047*/         /*Scope*/ 34, /*->14082*/
/*14048*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*14050*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*14053*/           OPC_EmitMergeInputChains1_0,
/*14054*/           OPC_EmitInteger, MVT::i32, 0, 
/*14057*/           OPC_EmitNode, TARGET_VAL(X86::VMOVSSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::f32, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #8 
/*14069*/           OPC_EmitInteger, MVT::i32, X86::sub_ss,
/*14072*/           OPC_MorphNodeTo, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain,
                        1/*#VTs*/, MVT::v4f32, 3/*#Ops*/, 7, 8, 9, 
                    // Src: (X86vzmovl:v4f32 (ld:v4f32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 45
                    // Dst: (SUBREG_TO_REG:v4f32 0:i32, (VMOVSSrm:f32 addr:iPTR:$src), sub_ss:i32)
/*14082*/         0, /*End of Scope*/
                /*SwitchType*/ 72,  MVT::v2f64,// ->14157
/*14085*/         OPC_Scope, 34, /*->14121*/ // 2 children in Scope
/*14087*/           OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*14089*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*14092*/           OPC_EmitMergeInputChains1_0,
/*14093*/           OPC_EmitInteger, MVT::i64, 0, 
/*14096*/           OPC_EmitNode, TARGET_VAL(X86::MOVSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::f64, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #8 
/*14108*/           OPC_EmitInteger, MVT::i32, X86::sub_sd,
/*14111*/           OPC_MorphNodeTo, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain,
                        1/*#VTs*/, MVT::v2f64, 3/*#Ops*/, 7, 8, 9, 
                    // Src: (X86vzmovl:v2f64 (ld:v2f64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 45
                    // Dst: (SUBREG_TO_REG:v2f64 0:i64, (MOVSDrm:f64 addr:iPTR:$src), sub_sd:i32)
/*14121*/         /*Scope*/ 34, /*->14156*/
/*14122*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*14124*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*14127*/           OPC_EmitMergeInputChains1_0,
/*14128*/           OPC_EmitInteger, MVT::i64, 0, 
/*14131*/           OPC_EmitNode, TARGET_VAL(X86::VMOVSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::f64, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #8 
/*14143*/           OPC_EmitInteger, MVT::i32, X86::sub_sd,
/*14146*/           OPC_MorphNodeTo, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain,
                        1/*#VTs*/, MVT::v2f64, 3/*#Ops*/, 7, 8, 9, 
                    // Src: (X86vzmovl:v2f64 (ld:v2f64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 45
                    // Dst: (SUBREG_TO_REG:v2f64 0:i64, (VMOVSDrm:f64 addr:iPTR:$src), sub_sd:i32)
/*14156*/         0, /*End of Scope*/
                0, // EndSwitchType
              0, // EndSwitchOpcode
/*14159*/   /*Scope*/ 27, /*->14187*/
/*14160*/     OPC_RecordChild0, // #0 = $src
/*14161*/     OPC_CheckType, MVT::v2f64,
/*14163*/     OPC_Scope, 10, /*->14175*/ // 2 children in Scope
/*14165*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*14167*/       OPC_MorphNodeTo, TARGET_VAL(X86::MOVZPQILo2PQIrr), 0,
                    1/*#VTs*/, MVT::v2f64, 1/*#Ops*/, 0, 
                // Src: (X86vzmovl:v2f64 VR128:v2f64:$src) - Complexity = 23
                // Dst: (MOVZPQILo2PQIrr:v2f64 VR128:v2f64:$src)
/*14175*/     /*Scope*/ 10, /*->14186*/
/*14176*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*14178*/       OPC_MorphNodeTo, TARGET_VAL(X86::VMOVZPQILo2PQIrr), 0,
                    1/*#VTs*/, MVT::v2f64, 1/*#Ops*/, 0, 
                // Src: (X86vzmovl:v2f64 VR128:v2f64:$src) - Complexity = 23
                // Dst: (VMOVZPQILo2PQIrr:v2f64 VR128:v2f64:$src)
/*14186*/     0, /*End of Scope*/
/*14187*/   /*Scope*/ 100, /*->14288*/
/*14188*/     OPC_MoveChild, 0,
/*14190*/     OPC_CheckOpcode, TARGET_VAL(ISD::SCALAR_TO_VECTOR),
/*14193*/     OPC_RecordChild0, // #0 = $src
/*14194*/     OPC_Scope, 45, /*->14241*/ // 2 children in Scope
/*14196*/       OPC_CheckChild0Type, MVT::f32,
/*14198*/       OPC_MoveParent,
/*14199*/       OPC_CheckType, MVT::v4f32,
/*14201*/       OPC_Scope, 18, /*->14221*/ // 2 children in Scope
/*14203*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*14205*/         OPC_EmitNode, TARGET_VAL(X86::V_SET0), 0,
                      1/*#VTs*/, MVT::v4f32, 0/*#Ops*/,  // Results = #1 
/*14212*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOVSSrr), 0,
                      1/*#VTs*/, MVT::v4f32, 2/*#Ops*/, 1, 0, 
                  // Src: (X86vzmovl:v4f32 (scalar_to_vector:v4f32 FR32:f32:$src)) - Complexity = 21
                  // Dst: (MOVSSrr:v4f32 (V_SET0:v4f32), FR32:f32:$src)
/*14221*/       /*Scope*/ 18, /*->14240*/
/*14222*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*14224*/         OPC_EmitNode, TARGET_VAL(X86::V_SET0), 0,
                      1/*#VTs*/, MVT::v4f32, 0/*#Ops*/,  // Results = #1 
/*14231*/         OPC_MorphNodeTo, TARGET_VAL(X86::VMOVSSrr), 0,
                      1/*#VTs*/, MVT::v4f32, 2/*#Ops*/, 1, 0, 
                  // Src: (X86vzmovl:v4f32 (scalar_to_vector:v4f32 FR32:f32:$src)) - Complexity = 21
                  // Dst: (VMOVSSrr:v4f32 (V_SET0:v4f32), FR32:f32:$src)
/*14240*/       0, /*End of Scope*/
/*14241*/     /*Scope*/ 45, /*->14287*/
/*14242*/       OPC_CheckChild0Type, MVT::f64,
/*14244*/       OPC_MoveParent,
/*14245*/       OPC_CheckType, MVT::v2f64,
/*14247*/       OPC_Scope, 18, /*->14267*/ // 2 children in Scope
/*14249*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*14251*/         OPC_EmitNode, TARGET_VAL(X86::V_SET0), 0,
                      1/*#VTs*/, MVT::v2f64, 0/*#Ops*/,  // Results = #1 
/*14258*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOVSDrr), 0,
                      1/*#VTs*/, MVT::v2f64, 2/*#Ops*/, 1, 0, 
                  // Src: (X86vzmovl:v2f64 (scalar_to_vector:v2f64 FR64:f64:$src)) - Complexity = 21
                  // Dst: (MOVSDrr:v2f64 (V_SET0:v2f64), FR64:f64:$src)
/*14267*/       /*Scope*/ 18, /*->14286*/
/*14268*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*14270*/         OPC_EmitNode, TARGET_VAL(X86::V_SET0), 0,
                      1/*#VTs*/, MVT::v2f64, 0/*#Ops*/,  // Results = #1 
/*14277*/         OPC_MorphNodeTo, TARGET_VAL(X86::VMOVSDrr), 0,
                      1/*#VTs*/, MVT::v2f64, 2/*#Ops*/, 1, 0, 
                  // Src: (X86vzmovl:v2f64 (scalar_to_vector:v2f64 FR64:f64:$src)) - Complexity = 21
                  // Dst: (VMOVSDrr:v2f64 (V_SET0:v2f64), FR64:f64:$src)
/*14286*/       0, /*End of Scope*/
/*14287*/     0, /*End of Scope*/
/*14288*/   /*Scope*/ 67, /*->14356*/
/*14289*/     OPC_RecordChild0, // #0 = $src
/*14290*/     OPC_CheckType, MVT::v4f32,
/*14292*/     OPC_Scope, 30, /*->14324*/ // 2 children in Scope
/*14294*/       OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*14296*/       OPC_EmitNode, TARGET_VAL(X86::V_SET0), 0,
                    1/*#VTs*/, MVT::v4f32, 0/*#Ops*/,  // Results = #1 
/*14303*/       OPC_EmitInteger, MVT::i32, X86::sub_ss,
/*14306*/       OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                    1/*#VTs*/, MVT::f32, 2/*#Ops*/, 0, 2,  // Results = #3 
/*14315*/       OPC_MorphNodeTo, TARGET_VAL(X86::MOVSSrr), 0,
                    1/*#VTs*/, MVT::v4f32, 2/*#Ops*/, 1, 3, 
                // Src: (X86vzmovl:v4f32 VR128:v4f32:$src) - Complexity = 18
                // Dst: (MOVSSrr:v4f32 (V_SET0:v4f32), (EXTRACT_SUBREG:f32 VR128:v4f32:$src, sub_ss:i32))
/*14324*/     /*Scope*/ 30, /*->14355*/
/*14325*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*14327*/       OPC_EmitNode, TARGET_VAL(X86::V_SET0), 0,
                    1/*#VTs*/, MVT::v4f32, 0/*#Ops*/,  // Results = #1 
/*14334*/       OPC_EmitInteger, MVT::i32, X86::sub_ss,
/*14337*/       OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                    1/*#VTs*/, MVT::f32, 2/*#Ops*/, 0, 2,  // Results = #3 
/*14346*/       OPC_MorphNodeTo, TARGET_VAL(X86::VMOVSSrr), 0,
                    1/*#VTs*/, MVT::v4f32, 2/*#Ops*/, 1, 3, 
                // Src: (X86vzmovl:v4f32 VR128:v4f32:$src) - Complexity = 18
                // Dst: (VMOVSSrr:v4f32 (V_SET0:v4f32), (EXTRACT_SUBREG:f32 VR128:v4f32:$src, sub_ss:i32))
/*14355*/     0, /*End of Scope*/
/*14356*/   /*Scope*/ 115, /*->14472*/
/*14357*/     OPC_MoveChild, 0,
/*14359*/     OPC_CheckOpcode, TARGET_VAL(ISD::INSERT_SUBVECTOR),
/*14362*/     OPC_MoveChild, 0,
/*14364*/     OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
/*14367*/     OPC_MoveParent,
/*14368*/     OPC_MoveChild, 1,
/*14370*/     OPC_CheckOpcode, TARGET_VAL(ISD::SCALAR_TO_VECTOR),
/*14373*/     OPC_RecordChild0, // #0 = $src
/*14374*/     OPC_Scope, 47, /*->14423*/ // 2 children in Scope
/*14376*/       OPC_CheckChild0Type, MVT::f32,
/*14378*/       OPC_MoveParent,
/*14379*/       OPC_MoveChild, 2,
/*14381*/       OPC_CheckInteger, 0, 
/*14383*/       OPC_CheckType, MVT::i32,
/*14385*/       OPC_MoveParent,
/*14386*/       OPC_MoveParent,
/*14387*/       OPC_CheckType, MVT::v8f32,
/*14389*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*14391*/       OPC_EmitInteger, MVT::i32, 0, 
/*14394*/       OPC_EmitNode, TARGET_VAL(X86::V_SET0), 0,
                    1/*#VTs*/, MVT::v4f32, 0/*#Ops*/,  // Results = #2 
/*14401*/       OPC_EmitNode, TARGET_VAL(X86::VMOVSSrr), 0,
                    1/*#VTs*/, MVT::v4f32, 2/*#Ops*/, 2, 0,  // Results = #3 
/*14410*/       OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*14413*/       OPC_MorphNodeTo, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                    1/*#VTs*/, MVT::v8f32, 3/*#Ops*/, 1, 3, 4, 
                // Src: (X86vzmovl:v8f32 (insert_subvector:v8f32 (undef:v8f32), (scalar_to_vector:v4f32 FR32:f32:$src), 0:i32)) - Complexity = 17
                // Dst: (SUBREG_TO_REG:v8f32 0:i32, (VMOVSSrr:v4f32 (V_SET0:v4f32), FR32:f32:$src), sub_xmm:i32)
/*14423*/     /*Scope*/ 47, /*->14471*/
/*14424*/       OPC_CheckChild0Type, MVT::f64,
/*14426*/       OPC_MoveParent,
/*14427*/       OPC_MoveChild, 2,
/*14429*/       OPC_CheckInteger, 0, 
/*14431*/       OPC_CheckType, MVT::i32,
/*14433*/       OPC_MoveParent,
/*14434*/       OPC_MoveParent,
/*14435*/       OPC_CheckType, MVT::v4f64,
/*14437*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*14439*/       OPC_EmitInteger, MVT::i64, 0, 
/*14442*/       OPC_EmitNode, TARGET_VAL(X86::V_SET0), 0,
                    1/*#VTs*/, MVT::v2f64, 0/*#Ops*/,  // Results = #2 
/*14449*/       OPC_EmitNode, TARGET_VAL(X86::VMOVSDrr), 0,
                    1/*#VTs*/, MVT::v2f64, 2/*#Ops*/, 2, 0,  // Results = #3 
/*14458*/       OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*14461*/       OPC_MorphNodeTo, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                    1/*#VTs*/, MVT::v4f64, 3/*#Ops*/, 1, 3, 4, 
                // Src: (X86vzmovl:v4f64 (insert_subvector:v4f64 (undef:v4f64), (scalar_to_vector:v2f64 FR64:f64:$src), 0:i32)) - Complexity = 17
                // Dst: (SUBREG_TO_REG:v4f64 0:i64, (VMOVSDrr:v2f64 (V_SET0:v2f64), FR64:f64:$src), sub_xmm:i32)
/*14471*/     0, /*End of Scope*/
/*14472*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 24|128,12/*1560*/,  TARGET_VAL(X86ISD::CMP),// ->16037
/*14477*/   OPC_Scope, 7|128,5/*647*/, /*->15127*/ // 6 children in Scope
/*14480*/     OPC_MoveChild, 0,
/*14482*/     OPC_SwitchOpcode /*2 cases */, 45|128,3/*429*/,  TARGET_VAL(ISD::AND),// ->14916
/*14487*/       OPC_Scope, 14|128,1/*142*/, /*->14632*/ // 3 children in Scope
/*14490*/         OPC_MoveChild, 0,
/*14492*/         OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*14495*/         OPC_RecordMemRef,
/*14496*/         OPC_RecordNode, // #0 = 'ld' chained node
/*14497*/         OPC_CheckFoldableChainNode,
/*14498*/         OPC_RecordChild1, // #1 = $dst
/*14499*/         OPC_CheckPredicate, 2, // Predicate_unindexedload
/*14501*/         OPC_CheckPredicate, 3, // Predicate_load
/*14503*/         OPC_MoveParent,
/*14504*/         OPC_RecordChild1, // #2 = $src
/*14505*/         OPC_MoveChild, 1,
/*14507*/         OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*14510*/         OPC_Scope, 32, /*->14544*/ // 2 children in Scope
/*14512*/           OPC_CheckPredicate, 11, // Predicate_i64immSExt32
/*14514*/           OPC_MoveParent,
/*14515*/           OPC_CheckPredicate, 21, // Predicate_and_su
/*14517*/           OPC_CheckType, MVT::i64,
/*14519*/           OPC_MoveParent,
/*14520*/           OPC_MoveChild, 1,
/*14522*/           OPC_CheckInteger, 0, 
/*14524*/           OPC_MoveParent,
/*14525*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$dst #3 #4 #5 #6 #7
/*14528*/           OPC_EmitMergeInputChains1_0,
/*14529*/           OPC_EmitConvertToTarget, 2,
/*14531*/           OPC_MorphNodeTo, TARGET_VAL(X86::TEST64mi32), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86cmp:i32 (and:i64 (ld:i64 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:i64)<<P:Predicate_i64immSExt32>>:$src)<<P:Predicate_and_su>>, 0:i64) - Complexity = 38
                    // Dst: (TEST64mi32:i32 addr:iPTR:$dst, (imm:i64):$src)
/*14544*/         /*Scope*/ 86, /*->14631*/
/*14545*/           OPC_MoveParent,
/*14546*/           OPC_CheckPredicate, 21, // Predicate_and_su
/*14548*/           OPC_SwitchType /*3 cases */, 25,  MVT::i8,// ->14576
/*14551*/             OPC_MoveParent,
/*14552*/             OPC_MoveChild, 1,
/*14554*/             OPC_CheckInteger, 0, 
/*14556*/             OPC_MoveParent,
/*14557*/             OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$dst #3 #4 #5 #6 #7
/*14560*/             OPC_EmitMergeInputChains1_0,
/*14561*/             OPC_EmitConvertToTarget, 2,
/*14563*/             OPC_MorphNodeTo, TARGET_VAL(X86::TEST8mi), 0|OPFL_Chain|OPFL_MemRefs,
                          1/*#VTs*/, MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (X86cmp:i32 (and:i8 (ld:i8 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:i8):$src)<<P:Predicate_and_su>>, 0:i8) - Complexity = 37
                      // Dst: (TEST8mi:i32 addr:iPTR:$dst, (imm:i8):$src)
                    /*SwitchType*/ 25,  MVT::i16,// ->14603
/*14578*/             OPC_MoveParent,
/*14579*/             OPC_MoveChild, 1,
/*14581*/             OPC_CheckInteger, 0, 
/*14583*/             OPC_MoveParent,
/*14584*/             OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$dst #3 #4 #5 #6 #7
/*14587*/             OPC_EmitMergeInputChains1_0,
/*14588*/             OPC_EmitConvertToTarget, 2,
/*14590*/             OPC_MorphNodeTo, TARGET_VAL(X86::TEST16mi), 0|OPFL_Chain|OPFL_MemRefs,
                          1/*#VTs*/, MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (X86cmp:i32 (and:i16 (ld:i16 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:i16):$src)<<P:Predicate_and_su>>, 0:i16) - Complexity = 37
                      // Dst: (TEST16mi:i32 addr:iPTR:$dst, (imm:i16):$src)
                    /*SwitchType*/ 25,  MVT::i32,// ->14630
/*14605*/             OPC_MoveParent,
/*14606*/             OPC_MoveChild, 1,
/*14608*/             OPC_CheckInteger, 0, 
/*14610*/             OPC_MoveParent,
/*14611*/             OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$dst #3 #4 #5 #6 #7
/*14614*/             OPC_EmitMergeInputChains1_0,
/*14615*/             OPC_EmitConvertToTarget, 2,
/*14617*/             OPC_MorphNodeTo, TARGET_VAL(X86::TEST32mi), 0|OPFL_Chain|OPFL_MemRefs,
                          1/*#VTs*/, MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (X86cmp:i32 (and:i32 (ld:i32 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:i32):$src)<<P:Predicate_and_su>>, 0:i32) - Complexity = 37
                      // Dst: (TEST32mi:i32 addr:iPTR:$dst, (imm:i32):$src)
                    0, // EndSwitchType
/*14631*/         0, /*End of Scope*/
/*14632*/       /*Scope*/ 10|128,1/*138*/, /*->14772*/
/*14634*/         OPC_RecordChild0, // #0 = $src1
/*14635*/         OPC_MoveChild, 1,
/*14637*/         OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*14640*/         OPC_RecordMemRef,
/*14641*/         OPC_RecordNode, // #1 = 'ld' chained node
/*14642*/         OPC_CheckFoldableChainNode,
/*14643*/         OPC_RecordChild1, // #2 = $src2
/*14644*/         OPC_CheckPredicate, 2, // Predicate_unindexedload
/*14646*/         OPC_Scope, 30, /*->14678*/ // 4 children in Scope
/*14648*/           OPC_CheckPredicate, 3, // Predicate_load
/*14650*/           OPC_MoveParent,
/*14651*/           OPC_CheckPredicate, 21, // Predicate_and_su
/*14653*/           OPC_CheckType, MVT::i8,
/*14655*/           OPC_MoveParent,
/*14656*/           OPC_MoveChild, 1,
/*14658*/           OPC_CheckInteger, 0, 
/*14660*/           OPC_MoveParent,
/*14661*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*14664*/           OPC_EmitMergeInputChains1_1,
/*14665*/           OPC_MorphNodeTo, TARGET_VAL(X86::TEST8rm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86cmp:i32 (and:i8 GR8:i8:$src1, (ld:i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)<<P:Predicate_and_su>>, 0:i8) - Complexity = 34
                    // Dst: (TEST8rm:i32 GR8:i8:$src1, addr:iPTR:$src2)
/*14678*/         /*Scope*/ 30, /*->14709*/
/*14679*/           OPC_CheckPredicate, 6, // Predicate_loadi16
/*14681*/           OPC_MoveParent,
/*14682*/           OPC_CheckPredicate, 21, // Predicate_and_su
/*14684*/           OPC_CheckType, MVT::i16,
/*14686*/           OPC_MoveParent,
/*14687*/           OPC_MoveChild, 1,
/*14689*/           OPC_CheckInteger, 0, 
/*14691*/           OPC_MoveParent,
/*14692*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*14695*/           OPC_EmitMergeInputChains1_1,
/*14696*/           OPC_MorphNodeTo, TARGET_VAL(X86::TEST16rm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86cmp:i32 (and:i16 GR16:i16:$src1, (ld:i16 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>)<<P:Predicate_and_su>>, 0:i16) - Complexity = 34
                    // Dst: (TEST16rm:i32 GR16:i16:$src1, addr:iPTR:$src2)
/*14709*/         /*Scope*/ 30, /*->14740*/
/*14710*/           OPC_CheckPredicate, 7, // Predicate_loadi32
/*14712*/           OPC_MoveParent,
/*14713*/           OPC_CheckPredicate, 21, // Predicate_and_su
/*14715*/           OPC_CheckType, MVT::i32,
/*14717*/           OPC_MoveParent,
/*14718*/           OPC_MoveChild, 1,
/*14720*/           OPC_CheckInteger, 0, 
/*14722*/           OPC_MoveParent,
/*14723*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*14726*/           OPC_EmitMergeInputChains1_1,
/*14727*/           OPC_MorphNodeTo, TARGET_VAL(X86::TEST32rm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86cmp:i32 (and:i32 GR32:i32:$src1, (ld:i32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)<<P:Predicate_and_su>>, 0:i32) - Complexity = 34
                    // Dst: (TEST32rm:i32 GR32:i32:$src1, addr:iPTR:$src2)
/*14740*/         /*Scope*/ 30, /*->14771*/
/*14741*/           OPC_CheckPredicate, 3, // Predicate_load
/*14743*/           OPC_MoveParent,
/*14744*/           OPC_CheckPredicate, 21, // Predicate_and_su
/*14746*/           OPC_CheckType, MVT::i64,
/*14748*/           OPC_MoveParent,
/*14749*/           OPC_MoveChild, 1,
/*14751*/           OPC_CheckInteger, 0, 
/*14753*/           OPC_MoveParent,
/*14754*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*14757*/           OPC_EmitMergeInputChains1_1,
/*14758*/           OPC_MorphNodeTo, TARGET_VAL(X86::TEST64rm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86cmp:i32 (and:i64 GR64:i64:$src1, (ld:i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)<<P:Predicate_and_su>>, 0:i64) - Complexity = 34
                    // Dst: (TEST64rm:i32 GR64:i64:$src1, addr:iPTR:$src2)
/*14771*/         0, /*End of Scope*/
/*14772*/       /*Scope*/ 13|128,1/*141*/, /*->14915*/
/*14774*/         OPC_MoveChild, 0,
/*14776*/         OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*14779*/         OPC_RecordMemRef,
/*14780*/         OPC_RecordNode, // #0 = 'ld' chained node
/*14781*/         OPC_CheckFoldableChainNode,
/*14782*/         OPC_RecordChild1, // #1 = $src2
/*14783*/         OPC_CheckPredicate, 2, // Predicate_unindexedload
/*14785*/         OPC_Scope, 31, /*->14818*/ // 4 children in Scope
/*14787*/           OPC_CheckPredicate, 3, // Predicate_load
/*14789*/           OPC_MoveParent,
/*14790*/           OPC_RecordChild1, // #2 = $src1
/*14791*/           OPC_CheckPredicate, 21, // Predicate_and_su
/*14793*/           OPC_CheckType, MVT::i8,
/*14795*/           OPC_MoveParent,
/*14796*/           OPC_MoveChild, 1,
/*14798*/           OPC_CheckInteger, 0, 
/*14800*/           OPC_MoveParent,
/*14801*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*14804*/           OPC_EmitMergeInputChains1_0,
/*14805*/           OPC_MorphNodeTo, TARGET_VAL(X86::TEST8rm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86cmp:i32 (and:i8 (ld:i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, GR8:i8:$src1)<<P:Predicate_and_su>>, 0:i8) - Complexity = 34
                    // Dst: (TEST8rm:i32 GR8:i8:$src1, addr:iPTR:$src2)
/*14818*/         /*Scope*/ 31, /*->14850*/
/*14819*/           OPC_CheckPredicate, 6, // Predicate_loadi16
/*14821*/           OPC_MoveParent,
/*14822*/           OPC_RecordChild1, // #2 = $src1
/*14823*/           OPC_CheckPredicate, 21, // Predicate_and_su
/*14825*/           OPC_CheckType, MVT::i16,
/*14827*/           OPC_MoveParent,
/*14828*/           OPC_MoveChild, 1,
/*14830*/           OPC_CheckInteger, 0, 
/*14832*/           OPC_MoveParent,
/*14833*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*14836*/           OPC_EmitMergeInputChains1_0,
/*14837*/           OPC_MorphNodeTo, TARGET_VAL(X86::TEST16rm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86cmp:i32 (and:i16 (ld:i16 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>, GR16:i16:$src1)<<P:Predicate_and_su>>, 0:i16) - Complexity = 34
                    // Dst: (TEST16rm:i32 GR16:i16:$src1, addr:iPTR:$src2)
/*14850*/         /*Scope*/ 31, /*->14882*/
/*14851*/           OPC_CheckPredicate, 7, // Predicate_loadi32
/*14853*/           OPC_MoveParent,
/*14854*/           OPC_RecordChild1, // #2 = $src1
/*14855*/           OPC_CheckPredicate, 21, // Predicate_and_su
/*14857*/           OPC_CheckType, MVT::i32,
/*14859*/           OPC_MoveParent,
/*14860*/           OPC_MoveChild, 1,
/*14862*/           OPC_CheckInteger, 0, 
/*14864*/           OPC_MoveParent,
/*14865*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*14868*/           OPC_EmitMergeInputChains1_0,
/*14869*/           OPC_MorphNodeTo, TARGET_VAL(X86::TEST32rm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86cmp:i32 (and:i32 (ld:i32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>, GR32:i32:$src1)<<P:Predicate_and_su>>, 0:i32) - Complexity = 34
                    // Dst: (TEST32rm:i32 GR32:i32:$src1, addr:iPTR:$src2)
/*14882*/         /*Scope*/ 31, /*->14914*/
/*14883*/           OPC_CheckPredicate, 3, // Predicate_load
/*14885*/           OPC_MoveParent,
/*14886*/           OPC_RecordChild1, // #2 = $src1
/*14887*/           OPC_CheckPredicate, 21, // Predicate_and_su
/*14889*/           OPC_CheckType, MVT::i64,
/*14891*/           OPC_MoveParent,
/*14892*/           OPC_MoveChild, 1,
/*14894*/           OPC_CheckInteger, 0, 
/*14896*/           OPC_MoveParent,
/*14897*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*14900*/           OPC_EmitMergeInputChains1_0,
/*14901*/           OPC_MorphNodeTo, TARGET_VAL(X86::TEST64rm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86cmp:i32 (and:i64 (ld:i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, GR64:i64:$src1)<<P:Predicate_and_su>>, 0:i64) - Complexity = 34
                    // Dst: (TEST64rm:i32 GR64:i64:$src1, addr:iPTR:$src2)
/*14914*/         0, /*End of Scope*/
/*14915*/       0, /*End of Scope*/
              /*SwitchOpcode*/ 78|128,1/*206*/,  TARGET_VAL(ISD::LOAD),// ->15126
/*14920*/       OPC_RecordMemRef,
/*14921*/       OPC_RecordNode, // #0 = 'ld' chained node
/*14922*/       OPC_CheckFoldableChainNode,
/*14923*/       OPC_RecordChild1, // #1 = $dst
/*14924*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*14926*/       OPC_CheckPredicate, 3, // Predicate_load
/*14928*/       OPC_SwitchType /*4 cases */, 53,  MVT::i16,// ->14984
/*14931*/         OPC_MoveParent,
/*14932*/         OPC_RecordChild1, // #2 = $src
/*14933*/         OPC_MoveChild, 1,
/*14935*/         OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*14938*/         OPC_Scope, 22, /*->14962*/ // 2 children in Scope
/*14940*/           OPC_CheckPredicate, 8, // Predicate_i16immSExt8
/*14942*/           OPC_MoveParent,
/*14943*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$dst #3 #4 #5 #6 #7
/*14946*/           OPC_EmitMergeInputChains1_0,
/*14947*/           OPC_EmitConvertToTarget, 2,
/*14949*/           OPC_MorphNodeTo, TARGET_VAL(X86::CMP16mi8), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86cmp:i32 (ld:i16 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:i16)<<P:Predicate_i16immSExt8>>:$src) - Complexity = 29
                    // Dst: (CMP16mi8:i32 addr:iPTR:$dst, (imm:i16):$src)
/*14962*/         /*Scope*/ 20, /*->14983*/
/*14963*/           OPC_MoveParent,
/*14964*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$dst #3 #4 #5 #6 #7
/*14967*/           OPC_EmitMergeInputChains1_0,
/*14968*/           OPC_EmitConvertToTarget, 2,
/*14970*/           OPC_MorphNodeTo, TARGET_VAL(X86::CMP16mi), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86cmp:i32 (ld:i16 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:i16):$src) - Complexity = 28
                    // Dst: (CMP16mi:i32 addr:iPTR:$dst, (imm:i16):$src)
/*14983*/         0, /*End of Scope*/
                /*SwitchType*/ 53,  MVT::i32,// ->15039
/*14986*/         OPC_MoveParent,
/*14987*/         OPC_RecordChild1, // #2 = $src
/*14988*/         OPC_MoveChild, 1,
/*14990*/         OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*14993*/         OPC_Scope, 22, /*->15017*/ // 2 children in Scope
/*14995*/           OPC_CheckPredicate, 9, // Predicate_i32immSExt8
/*14997*/           OPC_MoveParent,
/*14998*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$dst #3 #4 #5 #6 #7
/*15001*/           OPC_EmitMergeInputChains1_0,
/*15002*/           OPC_EmitConvertToTarget, 2,
/*15004*/           OPC_MorphNodeTo, TARGET_VAL(X86::CMP32mi8), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86cmp:i32 (ld:i32 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:i32)<<P:Predicate_i32immSExt8>>:$src) - Complexity = 29
                    // Dst: (CMP32mi8:i32 addr:iPTR:$dst, (imm:i32):$src)
/*15017*/         /*Scope*/ 20, /*->15038*/
/*15018*/           OPC_MoveParent,
/*15019*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$dst #3 #4 #5 #6 #7
/*15022*/           OPC_EmitMergeInputChains1_0,
/*15023*/           OPC_EmitConvertToTarget, 2,
/*15025*/           OPC_MorphNodeTo, TARGET_VAL(X86::CMP32mi), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86cmp:i32 (ld:i32 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:i32):$src) - Complexity = 28
                    // Dst: (CMP32mi:i32 addr:iPTR:$dst, (imm:i32):$src)
/*15038*/         0, /*End of Scope*/
                /*SwitchType*/ 55,  MVT::i64,// ->15096
/*15041*/         OPC_MoveParent,
/*15042*/         OPC_RecordChild1, // #2 = $src
/*15043*/         OPC_MoveChild, 1,
/*15045*/         OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*15048*/         OPC_Scope, 22, /*->15072*/ // 2 children in Scope
/*15050*/           OPC_CheckPredicate, 10, // Predicate_i64immSExt8
/*15052*/           OPC_MoveParent,
/*15053*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$dst #3 #4 #5 #6 #7
/*15056*/           OPC_EmitMergeInputChains1_0,
/*15057*/           OPC_EmitConvertToTarget, 2,
/*15059*/           OPC_MorphNodeTo, TARGET_VAL(X86::CMP64mi8), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86cmp:i32 (ld:i64 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:i64)<<P:Predicate_i64immSExt8>>:$src) - Complexity = 29
                    // Dst: (CMP64mi8:i32 addr:iPTR:$dst, (imm:i64):$src)
/*15072*/         /*Scope*/ 22, /*->15095*/
/*15073*/           OPC_CheckPredicate, 11, // Predicate_i64immSExt32
/*15075*/           OPC_MoveParent,
/*15076*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$dst #3 #4 #5 #6 #7
/*15079*/           OPC_EmitMergeInputChains1_0,
/*15080*/           OPC_EmitConvertToTarget, 2,
/*15082*/           OPC_MorphNodeTo, TARGET_VAL(X86::CMP64mi32), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86cmp:i32 (ld:i64 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:i64)<<P:Predicate_i64immSExt32>>:$src) - Complexity = 29
                    // Dst: (CMP64mi32:i32 addr:iPTR:$dst, (imm:i64):$src)
/*15095*/         0, /*End of Scope*/
                /*SwitchType*/ 27,  MVT::i8,// ->15125
/*15098*/         OPC_MoveParent,
/*15099*/         OPC_RecordChild1, // #2 = $src
/*15100*/         OPC_MoveChild, 1,
/*15102*/         OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*15105*/         OPC_MoveParent,
/*15106*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$dst #3 #4 #5 #6 #7
/*15109*/         OPC_EmitMergeInputChains1_0,
/*15110*/         OPC_EmitConvertToTarget, 2,
/*15112*/         OPC_MorphNodeTo, TARGET_VAL(X86::CMP8mi), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                  // Src: (X86cmp:i32 (ld:i8 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:i8):$src) - Complexity = 28
                  // Dst: (CMP8mi:i32 addr:iPTR:$dst, (imm:i8):$src)
                0, // EndSwitchType
              0, // EndSwitchOpcode
/*15127*/   /*Scope*/ 11|128,1/*139*/, /*->15268*/
/*15129*/     OPC_RecordChild0, // #0 = $src1
/*15130*/     OPC_Scope, 33, /*->15165*/ // 4 children in Scope
/*15132*/       OPC_CheckChild0Type, MVT::i8,
/*15134*/       OPC_MoveChild, 1,
/*15136*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*15139*/       OPC_RecordMemRef,
/*15140*/       OPC_RecordNode, // #1 = 'ld' chained node
/*15141*/       OPC_CheckFoldableChainNode,
/*15142*/       OPC_RecordChild1, // #2 = $src2
/*15143*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*15145*/       OPC_CheckPredicate, 3, // Predicate_load
/*15147*/       OPC_MoveParent,
/*15148*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*15151*/       OPC_EmitMergeInputChains1_1,
/*15152*/       OPC_MorphNodeTo, TARGET_VAL(X86::CMP8rm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (X86cmp:i32 GR8:i8:$src1, (ld:i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                // Dst: (CMP8rm:i32 GR8:i8:$src1, addr:iPTR:$src2)
/*15165*/     /*Scope*/ 33, /*->15199*/
/*15166*/       OPC_CheckChild0Type, MVT::i16,
/*15168*/       OPC_MoveChild, 1,
/*15170*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*15173*/       OPC_RecordMemRef,
/*15174*/       OPC_RecordNode, // #1 = 'ld' chained node
/*15175*/       OPC_CheckFoldableChainNode,
/*15176*/       OPC_RecordChild1, // #2 = $src2
/*15177*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*15179*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*15181*/       OPC_MoveParent,
/*15182*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*15185*/       OPC_EmitMergeInputChains1_1,
/*15186*/       OPC_MorphNodeTo, TARGET_VAL(X86::CMP16rm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (X86cmp:i32 GR16:i16:$src1, (ld:i16 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>) - Complexity = 25
                // Dst: (CMP16rm:i32 GR16:i16:$src1, addr:iPTR:$src2)
/*15199*/     /*Scope*/ 33, /*->15233*/
/*15200*/       OPC_CheckChild0Type, MVT::i32,
/*15202*/       OPC_MoveChild, 1,
/*15204*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*15207*/       OPC_RecordMemRef,
/*15208*/       OPC_RecordNode, // #1 = 'ld' chained node
/*15209*/       OPC_CheckFoldableChainNode,
/*15210*/       OPC_RecordChild1, // #2 = $src2
/*15211*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*15213*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*15215*/       OPC_MoveParent,
/*15216*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*15219*/       OPC_EmitMergeInputChains1_1,
/*15220*/       OPC_MorphNodeTo, TARGET_VAL(X86::CMP32rm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (X86cmp:i32 GR32:i32:$src1, (ld:i32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>) - Complexity = 25
                // Dst: (CMP32rm:i32 GR32:i32:$src1, addr:iPTR:$src2)
/*15233*/     /*Scope*/ 33, /*->15267*/
/*15234*/       OPC_CheckChild0Type, MVT::i64,
/*15236*/       OPC_MoveChild, 1,
/*15238*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*15241*/       OPC_RecordMemRef,
/*15242*/       OPC_RecordNode, // #1 = 'ld' chained node
/*15243*/       OPC_CheckFoldableChainNode,
/*15244*/       OPC_RecordChild1, // #2 = $src2
/*15245*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*15247*/       OPC_CheckPredicate, 3, // Predicate_load
/*15249*/       OPC_MoveParent,
/*15250*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*15253*/       OPC_EmitMergeInputChains1_1,
/*15254*/       OPC_MorphNodeTo, TARGET_VAL(X86::CMP64rm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (X86cmp:i32 GR64:i64:$src1, (ld:i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                // Dst: (CMP64rm:i32 GR64:i64:$src1, addr:iPTR:$src2)
/*15267*/     0, /*End of Scope*/
/*15268*/   /*Scope*/ 99, /*->15368*/
/*15269*/     OPC_MoveChild, 0,
/*15271*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*15274*/     OPC_RecordMemRef,
/*15275*/     OPC_RecordNode, // #0 = 'ld' chained node
/*15276*/     OPC_CheckFoldableChainNode,
/*15277*/     OPC_RecordChild1, // #1 = $dst
/*15278*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*15280*/     OPC_CheckPredicate, 3, // Predicate_load
/*15282*/     OPC_SwitchType /*4 cases */, 19,  MVT::i8,// ->15304
/*15285*/       OPC_MoveParent,
/*15286*/       OPC_RecordChild1, // #2 = $src
/*15287*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$dst #3 #4 #5 #6 #7
/*15290*/       OPC_EmitMergeInputChains1_0,
/*15291*/       OPC_MorphNodeTo, TARGET_VAL(X86::CMP8mr), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                // Src: (X86cmp:i32 (ld:i8 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, GR8:i8:$src) - Complexity = 25
                // Dst: (CMP8mr:i32 addr:iPTR:$dst, GR8:i8:$src)
              /*SwitchType*/ 19,  MVT::i16,// ->15325
/*15306*/       OPC_MoveParent,
/*15307*/       OPC_RecordChild1, // #2 = $src
/*15308*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$dst #3 #4 #5 #6 #7
/*15311*/       OPC_EmitMergeInputChains1_0,
/*15312*/       OPC_MorphNodeTo, TARGET_VAL(X86::CMP16mr), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                // Src: (X86cmp:i32 (ld:i16 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, GR16:i16:$src) - Complexity = 25
                // Dst: (CMP16mr:i32 addr:iPTR:$dst, GR16:i16:$src)
              /*SwitchType*/ 19,  MVT::i32,// ->15346
/*15327*/       OPC_MoveParent,
/*15328*/       OPC_RecordChild1, // #2 = $src
/*15329*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$dst #3 #4 #5 #6 #7
/*15332*/       OPC_EmitMergeInputChains1_0,
/*15333*/       OPC_MorphNodeTo, TARGET_VAL(X86::CMP32mr), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                // Src: (X86cmp:i32 (ld:i32 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, GR32:i32:$src) - Complexity = 25
                // Dst: (CMP32mr:i32 addr:iPTR:$dst, GR32:i32:$src)
              /*SwitchType*/ 19,  MVT::i64,// ->15367
/*15348*/       OPC_MoveParent,
/*15349*/       OPC_RecordChild1, // #2 = $src
/*15350*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$dst #3 #4 #5 #6 #7
/*15353*/       OPC_EmitMergeInputChains1_0,
/*15354*/       OPC_MorphNodeTo, TARGET_VAL(X86::CMP64mr), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                // Src: (X86cmp:i32 (ld:i64 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, GR64:i64:$src) - Complexity = 25
                // Dst: (CMP64mr:i32 addr:iPTR:$dst, GR64:i64:$src)
              0, // EndSwitchType
/*15368*/   /*Scope*/ 121, /*->15490*/
/*15369*/     OPC_RecordChild0, // #0 = $src1
/*15370*/     OPC_Scope, 58, /*->15430*/ // 2 children in Scope
/*15372*/       OPC_CheckChild0Type, MVT::f32,
/*15374*/       OPC_MoveChild, 1,
/*15376*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*15379*/       OPC_RecordMemRef,
/*15380*/       OPC_RecordNode, // #1 = 'ld' chained node
/*15381*/       OPC_CheckFoldableChainNode,
/*15382*/       OPC_RecordChild1, // #2 = $src2
/*15383*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*15385*/       OPC_CheckPredicate, 3, // Predicate_load
/*15387*/       OPC_MoveParent,
/*15388*/       OPC_Scope, 19, /*->15409*/ // 2 children in Scope
/*15390*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*15392*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*15395*/         OPC_EmitMergeInputChains1_1,
/*15396*/         OPC_MorphNodeTo, TARGET_VAL(X86::VUCOMISSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (X86cmp:i32 FR32:f32:$src1, (ld:f32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (VUCOMISSrm:i32 FR32:f32:$src1, addr:iPTR:$src2)
/*15409*/       /*Scope*/ 19, /*->15429*/
/*15410*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*15412*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*15415*/         OPC_EmitMergeInputChains1_1,
/*15416*/         OPC_MorphNodeTo, TARGET_VAL(X86::UCOMISSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (X86cmp:i32 FR32:f32:$src1, (ld:f32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (UCOMISSrm:i32 FR32:f32:$src1, addr:iPTR:$src2)
/*15429*/       0, /*End of Scope*/
/*15430*/     /*Scope*/ 58, /*->15489*/
/*15431*/       OPC_CheckChild0Type, MVT::f64,
/*15433*/       OPC_MoveChild, 1,
/*15435*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*15438*/       OPC_RecordMemRef,
/*15439*/       OPC_RecordNode, // #1 = 'ld' chained node
/*15440*/       OPC_CheckFoldableChainNode,
/*15441*/       OPC_RecordChild1, // #2 = $src2
/*15442*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*15444*/       OPC_CheckPredicate, 3, // Predicate_load
/*15446*/       OPC_MoveParent,
/*15447*/       OPC_Scope, 19, /*->15468*/ // 2 children in Scope
/*15449*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*15451*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*15454*/         OPC_EmitMergeInputChains1_1,
/*15455*/         OPC_MorphNodeTo, TARGET_VAL(X86::VUCOMISDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (X86cmp:i32 FR64:f64:$src1, (ld:f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (VUCOMISDrm:i32 FR64:f64:$src1, addr:iPTR:$src2)
/*15468*/       /*Scope*/ 19, /*->15488*/
/*15469*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*15471*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*15474*/         OPC_EmitMergeInputChains1_1,
/*15475*/         OPC_MorphNodeTo, TARGET_VAL(X86::UCOMISDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (X86cmp:i32 FR64:f64:$src1, (ld:f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (UCOMISDrm:i32 FR64:f64:$src1, addr:iPTR:$src2)
/*15488*/       0, /*End of Scope*/
/*15489*/     0, /*End of Scope*/
/*15490*/   /*Scope*/ 50|128,1/*178*/, /*->15670*/
/*15492*/     OPC_MoveChild, 0,
/*15494*/     OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/*15497*/     OPC_RecordChild0, // #0 = $src1
/*15498*/     OPC_RecordChild1, // #1 = $src2
/*15499*/     OPC_Scope, 95, /*->15596*/ // 2 children in Scope
/*15501*/       OPC_MoveChild, 1,
/*15503*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*15506*/       OPC_Scope, 24, /*->15532*/ // 2 children in Scope
/*15508*/         OPC_CheckPredicate, 11, // Predicate_i64immSExt32
/*15510*/         OPC_MoveParent,
/*15511*/         OPC_CheckPredicate, 21, // Predicate_and_su
/*15513*/         OPC_CheckType, MVT::i64,
/*15515*/         OPC_MoveParent,
/*15516*/         OPC_MoveChild, 1,
/*15518*/         OPC_CheckInteger, 0, 
/*15520*/         OPC_MoveParent,
/*15521*/         OPC_EmitConvertToTarget, 1,
/*15523*/         OPC_MorphNodeTo, TARGET_VAL(X86::TEST64ri32), 0,
                      1/*#VTs*/, MVT::i32, 2/*#Ops*/, 0, 2, 
                  // Src: (X86cmp:i32 (and:i64 GR64:i64:$src1, (imm:i64)<<P:Predicate_i64immSExt32>>:$src2)<<P:Predicate_and_su>>, 0:i64) - Complexity = 16
                  // Dst: (TEST64ri32:i32 GR64:i64:$src1, (imm:i64):$src2)
/*15532*/       /*Scope*/ 62, /*->15595*/
/*15533*/         OPC_MoveParent,
/*15534*/         OPC_CheckPredicate, 21, // Predicate_and_su
/*15536*/         OPC_SwitchType /*3 cases */, 17,  MVT::i8,// ->15556
/*15539*/           OPC_MoveParent,
/*15540*/           OPC_MoveChild, 1,
/*15542*/           OPC_CheckInteger, 0, 
/*15544*/           OPC_MoveParent,
/*15545*/           OPC_EmitConvertToTarget, 1,
/*15547*/           OPC_MorphNodeTo, TARGET_VAL(X86::TEST8ri), 0,
                        1/*#VTs*/, MVT::i32, 2/*#Ops*/, 0, 2, 
                    // Src: (X86cmp:i32 (and:i8 GR8:i8:$src1, (imm:i8):$src2)<<P:Predicate_and_su>>, 0:i8) - Complexity = 15
                    // Dst: (TEST8ri:i32 GR8:i8:$src1, (imm:i8):$src2)
                  /*SwitchType*/ 17,  MVT::i16,// ->15575
/*15558*/           OPC_MoveParent,
/*15559*/           OPC_MoveChild, 1,
/*15561*/           OPC_CheckInteger, 0, 
/*15563*/           OPC_MoveParent,
/*15564*/           OPC_EmitConvertToTarget, 1,
/*15566*/           OPC_MorphNodeTo, TARGET_VAL(X86::TEST16ri), 0,
                        1/*#VTs*/, MVT::i32, 2/*#Ops*/, 0, 2, 
                    // Src: (X86cmp:i32 (and:i16 GR16:i16:$src1, (imm:i16):$src2)<<P:Predicate_and_su>>, 0:i16) - Complexity = 15
                    // Dst: (TEST16ri:i32 GR16:i16:$src1, (imm:i16):$src2)
                  /*SwitchType*/ 17,  MVT::i32,// ->15594
/*15577*/           OPC_MoveParent,
/*15578*/           OPC_MoveChild, 1,
/*15580*/           OPC_CheckInteger, 0, 
/*15582*/           OPC_MoveParent,
/*15583*/           OPC_EmitConvertToTarget, 1,
/*15585*/           OPC_MorphNodeTo, TARGET_VAL(X86::TEST32ri), 0,
                        1/*#VTs*/, MVT::i32, 2/*#Ops*/, 0, 2, 
                    // Src: (X86cmp:i32 (and:i32 GR32:i32:$src1, (imm:i32):$src2)<<P:Predicate_and_su>>, 0:i32) - Complexity = 15
                    // Dst: (TEST32ri:i32 GR32:i32:$src1, (imm:i32):$src2)
                  0, // EndSwitchType
/*15595*/       0, /*End of Scope*/
/*15596*/     /*Scope*/ 72, /*->15669*/
/*15597*/       OPC_CheckPredicate, 21, // Predicate_and_su
/*15599*/       OPC_SwitchType /*4 cases */, 15,  MVT::i8,// ->15617
/*15602*/         OPC_MoveParent,
/*15603*/         OPC_MoveChild, 1,
/*15605*/         OPC_CheckInteger, 0, 
/*15607*/         OPC_MoveParent,
/*15608*/         OPC_MorphNodeTo, TARGET_VAL(X86::TEST8rr), 0,
                      1/*#VTs*/, MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86cmp:i32 (and:i8 GR8:i8:$src1, GR8:i8:$src2)<<P:Predicate_and_su>>, 0:i8) - Complexity = 12
                  // Dst: (TEST8rr:i32 GR8:i8:$src1, GR8:i8:$src2)
                /*SwitchType*/ 15,  MVT::i16,// ->15634
/*15619*/         OPC_MoveParent,
/*15620*/         OPC_MoveChild, 1,
/*15622*/         OPC_CheckInteger, 0, 
/*15624*/         OPC_MoveParent,
/*15625*/         OPC_MorphNodeTo, TARGET_VAL(X86::TEST16rr), 0,
                      1/*#VTs*/, MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86cmp:i32 (and:i16 GR16:i16:$src1, GR16:i16:$src2)<<P:Predicate_and_su>>, 0:i16) - Complexity = 12
                  // Dst: (TEST16rr:i32 GR16:i16:$src1, GR16:i16:$src2)
                /*SwitchType*/ 15,  MVT::i32,// ->15651
/*15636*/         OPC_MoveParent,
/*15637*/         OPC_MoveChild, 1,
/*15639*/         OPC_CheckInteger, 0, 
/*15641*/         OPC_MoveParent,
/*15642*/         OPC_MorphNodeTo, TARGET_VAL(X86::TEST32rr), 0,
                      1/*#VTs*/, MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86cmp:i32 (and:i32 GR32:i32:$src1, GR32:i32:$src2)<<P:Predicate_and_su>>, 0:i32) - Complexity = 12
                  // Dst: (TEST32rr:i32 GR32:i32:$src1, GR32:i32:$src2)
                /*SwitchType*/ 15,  MVT::i64,// ->15668
/*15653*/         OPC_MoveParent,
/*15654*/         OPC_MoveChild, 1,
/*15656*/         OPC_CheckInteger, 0, 
/*15658*/         OPC_MoveParent,
/*15659*/         OPC_MorphNodeTo, TARGET_VAL(X86::TEST64rr), 0,
                      1/*#VTs*/, MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86cmp:i32 (and:i64 GR64:i64:$src1, GR64:i64:$src2)<<P:Predicate_and_su>>, 0:i64) - Complexity = 12
                  // Dst: (TEST64rr:i32 GR64:i64:$src1, GR64:i64:$src2)
                0, // EndSwitchType
/*15669*/     0, /*End of Scope*/
/*15670*/   /*Scope*/ 108|128,2/*364*/, /*->16036*/
/*15672*/     OPC_RecordChild0, // #0 = $src1
/*15673*/     OPC_Scope, 51, /*->15726*/ // 7 children in Scope
/*15675*/       OPC_CheckChild0Type, MVT::i8,
/*15677*/       OPC_Scope, 14, /*->15693*/ // 2 children in Scope
/*15679*/         OPC_MoveChild, 1,
/*15681*/         OPC_CheckInteger, 0, 
/*15683*/         OPC_MoveParent,
/*15684*/         OPC_MorphNodeTo, TARGET_VAL(X86::TEST8rr), 0,
                      1/*#VTs*/, MVT::i32, 2/*#Ops*/, 0, 0, 
                  // Src: (X86cmp:i32 GR8:i8:$src1, 0:i8) - Complexity = 8
                  // Dst: (TEST8rr:i32 GR8:i8:$src1, GR8:i8:$src1)
/*15693*/       /*Scope*/ 31, /*->15725*/
/*15694*/         OPC_RecordChild1, // #1 = $src2
/*15695*/         OPC_Scope, 17, /*->15714*/ // 2 children in Scope
/*15697*/           OPC_MoveChild, 1,
/*15699*/           OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*15702*/           OPC_MoveParent,
/*15703*/           OPC_EmitConvertToTarget, 1,
/*15705*/           OPC_MorphNodeTo, TARGET_VAL(X86::CMP8ri), 0,
                        1/*#VTs*/, MVT::i32, 2/*#Ops*/, 0, 2, 
                    // Src: (X86cmp:i32 GR8:i8:$src1, (imm:i8):$src2) - Complexity = 6
                    // Dst: (CMP8ri:i32 GR8:i8:$src1, (imm:i8):$src2)
/*15714*/         /*Scope*/ 9, /*->15724*/
/*15715*/           OPC_MorphNodeTo, TARGET_VAL(X86::CMP8rr), 0,
                        1/*#VTs*/, MVT::i32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86cmp:i32 GR8:i8:$src1, GR8:i8:$src2) - Complexity = 3
                    // Dst: (CMP8rr:i32 GR8:i8:$src1, GR8:i8:$src2)
/*15724*/         0, /*End of Scope*/
/*15725*/       0, /*End of Scope*/
/*15726*/     /*Scope*/ 69, /*->15796*/
/*15727*/       OPC_CheckChild0Type, MVT::i16,
/*15729*/       OPC_Scope, 14, /*->15745*/ // 2 children in Scope
/*15731*/         OPC_MoveChild, 1,
/*15733*/         OPC_CheckInteger, 0, 
/*15735*/         OPC_MoveParent,
/*15736*/         OPC_MorphNodeTo, TARGET_VAL(X86::TEST16rr), 0,
                      1/*#VTs*/, MVT::i32, 2/*#Ops*/, 0, 0, 
                  // Src: (X86cmp:i32 GR16:i16:$src1, 0:i16) - Complexity = 8
                  // Dst: (TEST16rr:i32 GR16:i16:$src1, GR16:i16:$src1)
/*15745*/       /*Scope*/ 49, /*->15795*/
/*15746*/         OPC_RecordChild1, // #1 = $src2
/*15747*/         OPC_Scope, 35, /*->15784*/ // 2 children in Scope
/*15749*/           OPC_MoveChild, 1,
/*15751*/           OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*15754*/           OPC_Scope, 14, /*->15770*/ // 2 children in Scope
/*15756*/             OPC_CheckPredicate, 8, // Predicate_i16immSExt8
/*15758*/             OPC_MoveParent,
/*15759*/             OPC_EmitConvertToTarget, 1,
/*15761*/             OPC_MorphNodeTo, TARGET_VAL(X86::CMP16ri8), 0,
                          1/*#VTs*/, MVT::i32, 2/*#Ops*/, 0, 2, 
                      // Src: (X86cmp:i32 GR16:i16:$src1, (imm:i16)<<P:Predicate_i16immSExt8>>:$src2) - Complexity = 7
                      // Dst: (CMP16ri8:i32 GR16:i16:$src1, (imm:i16):$src2)
/*15770*/           /*Scope*/ 12, /*->15783*/
/*15771*/             OPC_MoveParent,
/*15772*/             OPC_EmitConvertToTarget, 1,
/*15774*/             OPC_MorphNodeTo, TARGET_VAL(X86::CMP16ri), 0,
                          1/*#VTs*/, MVT::i32, 2/*#Ops*/, 0, 2, 
                      // Src: (X86cmp:i32 GR16:i16:$src1, (imm:i16):$src2) - Complexity = 6
                      // Dst: (CMP16ri:i32 GR16:i16:$src1, (imm:i16):$src2)
/*15783*/           0, /*End of Scope*/
/*15784*/         /*Scope*/ 9, /*->15794*/
/*15785*/           OPC_MorphNodeTo, TARGET_VAL(X86::CMP16rr), 0,
                        1/*#VTs*/, MVT::i32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86cmp:i32 GR16:i16:$src1, GR16:i16:$src2) - Complexity = 3
                    // Dst: (CMP16rr:i32 GR16:i16:$src1, GR16:i16:$src2)
/*15794*/         0, /*End of Scope*/
/*15795*/       0, /*End of Scope*/
/*15796*/     /*Scope*/ 69, /*->15866*/
/*15797*/       OPC_CheckChild0Type, MVT::i32,
/*15799*/       OPC_Scope, 14, /*->15815*/ // 2 children in Scope
/*15801*/         OPC_MoveChild, 1,
/*15803*/         OPC_CheckInteger, 0, 
/*15805*/         OPC_MoveParent,
/*15806*/         OPC_MorphNodeTo, TARGET_VAL(X86::TEST32rr), 0,
                      1/*#VTs*/, MVT::i32, 2/*#Ops*/, 0, 0, 
                  // Src: (X86cmp:i32 GR32:i32:$src1, 0:i32) - Complexity = 8
                  // Dst: (TEST32rr:i32 GR32:i32:$src1, GR32:i32:$src1)
/*15815*/       /*Scope*/ 49, /*->15865*/
/*15816*/         OPC_RecordChild1, // #1 = $src2
/*15817*/         OPC_Scope, 35, /*->15854*/ // 2 children in Scope
/*15819*/           OPC_MoveChild, 1,
/*15821*/           OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*15824*/           OPC_Scope, 14, /*->15840*/ // 2 children in Scope
/*15826*/             OPC_CheckPredicate, 9, // Predicate_i32immSExt8
/*15828*/             OPC_MoveParent,
/*15829*/             OPC_EmitConvertToTarget, 1,
/*15831*/             OPC_MorphNodeTo, TARGET_VAL(X86::CMP32ri8), 0,
                          1/*#VTs*/, MVT::i32, 2/*#Ops*/, 0, 2, 
                      // Src: (X86cmp:i32 GR32:i32:$src1, (imm:i32)<<P:Predicate_i32immSExt8>>:$src2) - Complexity = 7
                      // Dst: (CMP32ri8:i32 GR32:i32:$src1, (imm:i32):$src2)
/*15840*/           /*Scope*/ 12, /*->15853*/
/*15841*/             OPC_MoveParent,
/*15842*/             OPC_EmitConvertToTarget, 1,
/*15844*/             OPC_MorphNodeTo, TARGET_VAL(X86::CMP32ri), 0,
                          1/*#VTs*/, MVT::i32, 2/*#Ops*/, 0, 2, 
                      // Src: (X86cmp:i32 GR32:i32:$src1, (imm:i32):$src2) - Complexity = 6
                      // Dst: (CMP32ri:i32 GR32:i32:$src1, (imm:i32):$src2)
/*15853*/           0, /*End of Scope*/
/*15854*/         /*Scope*/ 9, /*->15864*/
/*15855*/           OPC_MorphNodeTo, TARGET_VAL(X86::CMP32rr), 0,
                        1/*#VTs*/, MVT::i32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86cmp:i32 GR32:i32:$src1, GR32:i32:$src2) - Complexity = 3
                    // Dst: (CMP32rr:i32 GR32:i32:$src1, GR32:i32:$src2)
/*15864*/         0, /*End of Scope*/
/*15865*/       0, /*End of Scope*/
/*15866*/     /*Scope*/ 71, /*->15938*/
/*15867*/       OPC_CheckChild0Type, MVT::i64,
/*15869*/       OPC_Scope, 14, /*->15885*/ // 2 children in Scope
/*15871*/         OPC_MoveChild, 1,
/*15873*/         OPC_CheckInteger, 0, 
/*15875*/         OPC_MoveParent,
/*15876*/         OPC_MorphNodeTo, TARGET_VAL(X86::TEST64rr), 0,
                      1/*#VTs*/, MVT::i32, 2/*#Ops*/, 0, 0, 
                  // Src: (X86cmp:i32 GR64:i64:$src1, 0:i64) - Complexity = 8
                  // Dst: (TEST64rr:i32 GR64:i64:$src1, GR64:i64:$src1)
/*15885*/       /*Scope*/ 51, /*->15937*/
/*15886*/         OPC_RecordChild1, // #1 = $src2
/*15887*/         OPC_Scope, 37, /*->15926*/ // 2 children in Scope
/*15889*/           OPC_MoveChild, 1,
/*15891*/           OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*15894*/           OPC_Scope, 14, /*->15910*/ // 2 children in Scope
/*15896*/             OPC_CheckPredicate, 10, // Predicate_i64immSExt8
/*15898*/             OPC_MoveParent,
/*15899*/             OPC_EmitConvertToTarget, 1,
/*15901*/             OPC_MorphNodeTo, TARGET_VAL(X86::CMP64ri8), 0,
                          1/*#VTs*/, MVT::i32, 2/*#Ops*/, 0, 2, 
                      // Src: (X86cmp:i32 GR64:i64:$src1, (imm:i64)<<P:Predicate_i64immSExt8>>:$src2) - Complexity = 7
                      // Dst: (CMP64ri8:i32 GR64:i64:$src1, (imm:i64):$src2)
/*15910*/           /*Scope*/ 14, /*->15925*/
/*15911*/             OPC_CheckPredicate, 11, // Predicate_i64immSExt32
/*15913*/             OPC_MoveParent,
/*15914*/             OPC_EmitConvertToTarget, 1,
/*15916*/             OPC_MorphNodeTo, TARGET_VAL(X86::CMP64ri32), 0,
                          1/*#VTs*/, MVT::i32, 2/*#Ops*/, 0, 2, 
                      // Src: (X86cmp:i32 GR64:i64:$src1, (imm:i64)<<P:Predicate_i64immSExt32>>:$src2) - Complexity = 7
                      // Dst: (CMP64ri32:i32 GR64:i64:$src1, (imm:i64):$src2)
/*15925*/           0, /*End of Scope*/
/*15926*/         /*Scope*/ 9, /*->15936*/
/*15927*/           OPC_MorphNodeTo, TARGET_VAL(X86::CMP64rr), 0,
                        1/*#VTs*/, MVT::i32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86cmp:i32 GR64:i64:$src1, GR64:i64:$src2) - Complexity = 3
                    // Dst: (CMP64rr:i32 GR64:i64:$src1, GR64:i64:$src2)
/*15936*/         0, /*End of Scope*/
/*15937*/       0, /*End of Scope*/
/*15938*/     /*Scope*/ 41, /*->15980*/
/*15939*/       OPC_CheckChild0Type, MVT::f32,
/*15941*/       OPC_RecordChild1, // #1 = $rhs
/*15942*/       OPC_Scope, 11, /*->15955*/ // 3 children in Scope
/*15944*/         OPC_CheckPatternPredicate, 8, // (!Subtarget->hasXMM())
/*15946*/         OPC_MorphNodeTo, TARGET_VAL(X86::UCOM_FpIr32), 0,
                      1/*#VTs*/, MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86cmp:i32 RFP32:f32:$lhs, RFP32:f32:$rhs) - Complexity = 3
                  // Dst: (UCOM_FpIr32:i32 RFP32:f32:$lhs, RFP32:f32:$rhs)
/*15955*/       /*Scope*/ 11, /*->15967*/
/*15956*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*15958*/         OPC_MorphNodeTo, TARGET_VAL(X86::VUCOMISSrr), 0,
                      1/*#VTs*/, MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86cmp:i32 FR32:f32:$src1, FR32:f32:$src2) - Complexity = 3
                  // Dst: (VUCOMISSrr:i32 FR32:f32:$src1, FR32:f32:$src2)
/*15967*/       /*Scope*/ 11, /*->15979*/
/*15968*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*15970*/         OPC_MorphNodeTo, TARGET_VAL(X86::UCOMISSrr), 0,
                      1/*#VTs*/, MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86cmp:i32 FR32:f32:$src1, FR32:f32:$src2) - Complexity = 3
                  // Dst: (UCOMISSrr:i32 FR32:f32:$src1, FR32:f32:$src2)
/*15979*/       0, /*End of Scope*/
/*15980*/     /*Scope*/ 41, /*->16022*/
/*15981*/       OPC_CheckChild0Type, MVT::f64,
/*15983*/       OPC_RecordChild1, // #1 = $rhs
/*15984*/       OPC_Scope, 11, /*->15997*/ // 3 children in Scope
/*15986*/         OPC_CheckPatternPredicate, 9, // (!Subtarget->hasXMMInt())
/*15988*/         OPC_MorphNodeTo, TARGET_VAL(X86::UCOM_FpIr64), 0,
                      1/*#VTs*/, MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86cmp:i32 RFP64:f64:$lhs, RFP64:f64:$rhs) - Complexity = 3
                  // Dst: (UCOM_FpIr64:i32 RFP64:f64:$lhs, RFP64:f64:$rhs)
/*15997*/       /*Scope*/ 11, /*->16009*/
/*15998*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*16000*/         OPC_MorphNodeTo, TARGET_VAL(X86::VUCOMISDrr), 0,
                      1/*#VTs*/, MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86cmp:i32 FR64:f64:$src1, FR64:f64:$src2) - Complexity = 3
                  // Dst: (VUCOMISDrr:i32 FR64:f64:$src1, FR64:f64:$src2)
/*16009*/       /*Scope*/ 11, /*->16021*/
/*16010*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*16012*/         OPC_MorphNodeTo, TARGET_VAL(X86::UCOMISDrr), 0,
                      1/*#VTs*/, MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86cmp:i32 FR64:f64:$src1, FR64:f64:$src2) - Complexity = 3
                  // Dst: (UCOMISDrr:i32 FR64:f64:$src1, FR64:f64:$src2)
/*16021*/       0, /*End of Scope*/
/*16022*/     /*Scope*/ 12, /*->16035*/
/*16023*/       OPC_CheckChild0Type, MVT::f80,
/*16025*/       OPC_RecordChild1, // #1 = $rhs
/*16026*/       OPC_MorphNodeTo, TARGET_VAL(X86::UCOM_FpIr80), 0,
                    1/*#VTs*/, MVT::i32, 2/*#Ops*/, 0, 1, 
                // Src: (X86cmp:i32 RFP80:f80:$lhs, RFP80:f80:$rhs) - Complexity = 3
                // Dst: (UCOM_FpIr80:i32 RFP80:f80:$lhs, RFP80:f80:$rhs)
/*16035*/     0, /*End of Scope*/
/*16036*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 0|128,108|128,1/*30208*/,  TARGET_VAL(ISD::INTRINSIC_WO_CHAIN),// ->46250
/*16042*/   OPC_MoveChild, 0,
/*16044*/   OPC_Scope, 82, /*->16128*/ // 341 children in Scope
/*16046*/     OPC_CheckInteger, 103|128,1/*231*/, 
/*16049*/     OPC_MoveParent,
/*16050*/     OPC_RecordChild1, // #0 = $src1
/*16051*/     OPC_Scope, 51, /*->16104*/ // 2 children in Scope
/*16053*/       OPC_MoveChild, 2,
/*16055*/       OPC_CheckOpcode, TARGET_VAL(ISD::ANY_EXTEND),
/*16058*/       OPC_MoveChild, 0,
/*16060*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*16063*/       OPC_RecordMemRef,
/*16064*/       OPC_RecordNode, // #1 = 'ld' chained node
/*16065*/       OPC_CheckFoldableChainNode,
/*16066*/       OPC_RecordChild1, // #2 = $src2
/*16067*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*16069*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*16071*/       OPC_CheckType, MVT::i16,
/*16073*/       OPC_MoveParent,
/*16074*/       OPC_MoveParent,
/*16075*/       OPC_RecordChild3, // #3 = $src3
/*16076*/       OPC_MoveChild, 3,
/*16078*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*16081*/       OPC_MoveParent,
/*16082*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*16084*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*16087*/       OPC_EmitMergeInputChains1_1,
/*16088*/       OPC_EmitConvertToTarget, 3,
/*16090*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PINSRWirmi), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::x86mmx, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                // Src: (intrinsic_wo_chain:x86mmx 231:iPTR, VR64:x86mmx:$src1, (anyext:i32 (ld:i16 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>), (imm:i32):$src3) - Complexity = 36
                // Dst: (MMX_PINSRWirmi:x86mmx VR64:x86mmx:$src1, addr:iPTR:$src2, (imm:i32):$src3)
/*16104*/     /*Scope*/ 22, /*->16127*/
/*16105*/       OPC_RecordChild2, // #1 = $src2
/*16106*/       OPC_RecordChild3, // #2 = $src3
/*16107*/       OPC_MoveChild, 3,
/*16109*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*16112*/       OPC_MoveParent,
/*16113*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*16115*/       OPC_EmitConvertToTarget, 2,
/*16117*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PINSRWirri), 0,
                    1/*#VTs*/, MVT::x86mmx, 3/*#Ops*/, 0, 1, 3, 
                // Src: (intrinsic_wo_chain:x86mmx 231:iPTR, VR64:x86mmx:$src1, GR32:i32:$src2, (imm:i32):$src3) - Complexity = 11
                // Dst: (MMX_PINSRWirri:x86mmx VR64:x86mmx:$src1, GR32:i32:$src2, (imm:i32):$src3)
/*16127*/     0, /*End of Scope*/
/*16128*/   /*Scope*/ 122, /*->16251*/
/*16129*/     OPC_CheckInteger, 56|128,3/*440*/, 
/*16132*/     OPC_MoveParent,
/*16133*/     OPC_RecordChild1, // #0 = $src1
/*16134*/     OPC_Scope, 71, /*->16207*/ // 2 children in Scope
/*16136*/       OPC_MoveChild, 2,
/*16138*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*16141*/       OPC_RecordMemRef,
/*16142*/       OPC_RecordNode, // #1 = 'ld' chained node
/*16143*/       OPC_CheckFoldableChainNode,
/*16144*/       OPC_RecordChild1, // #2 = $src2
/*16145*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*16147*/       OPC_CheckPredicate, 3, // Predicate_load
/*16149*/       OPC_MoveParent,
/*16150*/       OPC_RecordChild3, // #3 = $src3
/*16151*/       OPC_MoveChild, 3,
/*16153*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*16156*/       OPC_MoveParent,
/*16157*/       OPC_Scope, 23, /*->16182*/ // 2 children in Scope
/*16159*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*16161*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*16164*/         OPC_EmitMergeInputChains1_1,
/*16165*/         OPC_EmitConvertToTarget, 3,
/*16167*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPCMPISTRIrm), 0|OPFL_Chain|OPFL_MemRefs,
                      2/*#VTs*/, MVT::i32, MVT::i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                  // Src: (intrinsic_wo_chain:i32 440:iPTR, VR128:v16i8:$src1, (ld:v16i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:i8):$src3) - Complexity = 33
                  // Dst: (VPCMPISTRIrm:i32 VR128:v16i8:$src1, addr:iPTR:$src2, (imm:i8):$src3)
/*16182*/       /*Scope*/ 23, /*->16206*/
/*16183*/         OPC_CheckPatternPredicate, 11, // (Subtarget->hasSSE42())
/*16185*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*16188*/         OPC_EmitMergeInputChains1_1,
/*16189*/         OPC_EmitConvertToTarget, 3,
/*16191*/         OPC_MorphNodeTo, TARGET_VAL(X86::PCMPISTRIrm), 0|OPFL_Chain|OPFL_MemRefs,
                      2/*#VTs*/, MVT::i32, MVT::i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                  // Src: (intrinsic_wo_chain:i32 440:iPTR, VR128:v16i8:$src1, (ld:v16i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:i8):$src3) - Complexity = 33
                  // Dst: (PCMPISTRIrm:i32 VR128:v16i8:$src1, addr:iPTR:$src2, (imm:i8):$src3)
/*16206*/       0, /*End of Scope*/
/*16207*/     /*Scope*/ 42, /*->16250*/
/*16208*/       OPC_RecordChild2, // #1 = $src2
/*16209*/       OPC_RecordChild3, // #2 = $src3
/*16210*/       OPC_MoveChild, 3,
/*16212*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*16215*/       OPC_MoveParent,
/*16216*/       OPC_Scope, 15, /*->16233*/ // 2 children in Scope
/*16218*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*16220*/         OPC_EmitConvertToTarget, 2,
/*16222*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPCMPISTRIrr), 0,
                      2/*#VTs*/, MVT::i32, MVT::i32, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (intrinsic_wo_chain:i32 440:iPTR, VR128:v16i8:$src1, VR128:v16i8:$src2, (imm:i8):$src3) - Complexity = 11
                  // Dst: (VPCMPISTRIrr:i32 VR128:v16i8:$src1, VR128:v16i8:$src2, (imm:i8):$src3)
/*16233*/       /*Scope*/ 15, /*->16249*/
/*16234*/         OPC_CheckPatternPredicate, 11, // (Subtarget->hasSSE42())
/*16236*/         OPC_EmitConvertToTarget, 2,
/*16238*/         OPC_MorphNodeTo, TARGET_VAL(X86::PCMPISTRIrr), 0,
                      2/*#VTs*/, MVT::i32, MVT::i32, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (intrinsic_wo_chain:i32 440:iPTR, VR128:v16i8:$src1, VR128:v16i8:$src2, (imm:i8):$src3) - Complexity = 11
                  // Dst: (PCMPISTRIrr:i32 VR128:v16i8:$src1, VR128:v16i8:$src2, (imm:i8):$src3)
/*16249*/       0, /*End of Scope*/
/*16250*/     0, /*End of Scope*/
/*16251*/   /*Scope*/ 122, /*->16374*/
/*16252*/     OPC_CheckInteger, 57|128,3/*441*/, 
/*16255*/     OPC_MoveParent,
/*16256*/     OPC_RecordChild1, // #0 = $src1
/*16257*/     OPC_Scope, 71, /*->16330*/ // 2 children in Scope
/*16259*/       OPC_MoveChild, 2,
/*16261*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*16264*/       OPC_RecordMemRef,
/*16265*/       OPC_RecordNode, // #1 = 'ld' chained node
/*16266*/       OPC_CheckFoldableChainNode,
/*16267*/       OPC_RecordChild1, // #2 = $src2
/*16268*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*16270*/       OPC_CheckPredicate, 3, // Predicate_load
/*16272*/       OPC_MoveParent,
/*16273*/       OPC_RecordChild3, // #3 = $src3
/*16274*/       OPC_MoveChild, 3,
/*16276*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*16279*/       OPC_MoveParent,
/*16280*/       OPC_Scope, 23, /*->16305*/ // 2 children in Scope
/*16282*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*16284*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*16287*/         OPC_EmitMergeInputChains1_1,
/*16288*/         OPC_EmitConvertToTarget, 3,
/*16290*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPCMPISTRIArm), 0|OPFL_Chain|OPFL_MemRefs,
                      2/*#VTs*/, MVT::i32, MVT::i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                  // Src: (intrinsic_wo_chain:i32 441:iPTR, VR128:v16i8:$src1, (ld:v16i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:i8):$src3) - Complexity = 33
                  // Dst: (VPCMPISTRIArm:i32 VR128:v16i8:$src1, addr:iPTR:$src2, (imm:i8):$src3)
/*16305*/       /*Scope*/ 23, /*->16329*/
/*16306*/         OPC_CheckPatternPredicate, 11, // (Subtarget->hasSSE42())
/*16308*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*16311*/         OPC_EmitMergeInputChains1_1,
/*16312*/         OPC_EmitConvertToTarget, 3,
/*16314*/         OPC_MorphNodeTo, TARGET_VAL(X86::PCMPISTRIArm), 0|OPFL_Chain|OPFL_MemRefs,
                      2/*#VTs*/, MVT::i32, MVT::i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                  // Src: (intrinsic_wo_chain:i32 441:iPTR, VR128:v16i8:$src1, (ld:v16i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:i8):$src3) - Complexity = 33
                  // Dst: (PCMPISTRIArm:i32 VR128:v16i8:$src1, addr:iPTR:$src2, (imm:i8):$src3)
/*16329*/       0, /*End of Scope*/
/*16330*/     /*Scope*/ 42, /*->16373*/
/*16331*/       OPC_RecordChild2, // #1 = $src2
/*16332*/       OPC_RecordChild3, // #2 = $src3
/*16333*/       OPC_MoveChild, 3,
/*16335*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*16338*/       OPC_MoveParent,
/*16339*/       OPC_Scope, 15, /*->16356*/ // 2 children in Scope
/*16341*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*16343*/         OPC_EmitConvertToTarget, 2,
/*16345*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPCMPISTRIArr), 0,
                      2/*#VTs*/, MVT::i32, MVT::i32, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (intrinsic_wo_chain:i32 441:iPTR, VR128:v16i8:$src1, VR128:v16i8:$src2, (imm:i8):$src3) - Complexity = 11
                  // Dst: (VPCMPISTRIArr:i32 VR128:v16i8:$src1, VR128:v16i8:$src2, (imm:i8):$src3)
/*16356*/       /*Scope*/ 15, /*->16372*/
/*16357*/         OPC_CheckPatternPredicate, 11, // (Subtarget->hasSSE42())
/*16359*/         OPC_EmitConvertToTarget, 2,
/*16361*/         OPC_MorphNodeTo, TARGET_VAL(X86::PCMPISTRIArr), 0,
                      2/*#VTs*/, MVT::i32, MVT::i32, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (intrinsic_wo_chain:i32 441:iPTR, VR128:v16i8:$src1, VR128:v16i8:$src2, (imm:i8):$src3) - Complexity = 11
                  // Dst: (PCMPISTRIArr:i32 VR128:v16i8:$src1, VR128:v16i8:$src2, (imm:i8):$src3)
/*16372*/       0, /*End of Scope*/
/*16373*/     0, /*End of Scope*/
/*16374*/   /*Scope*/ 122, /*->16497*/
/*16375*/     OPC_CheckInteger, 58|128,3/*442*/, 
/*16378*/     OPC_MoveParent,
/*16379*/     OPC_RecordChild1, // #0 = $src1
/*16380*/     OPC_Scope, 71, /*->16453*/ // 2 children in Scope
/*16382*/       OPC_MoveChild, 2,
/*16384*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*16387*/       OPC_RecordMemRef,
/*16388*/       OPC_RecordNode, // #1 = 'ld' chained node
/*16389*/       OPC_CheckFoldableChainNode,
/*16390*/       OPC_RecordChild1, // #2 = $src2
/*16391*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*16393*/       OPC_CheckPredicate, 3, // Predicate_load
/*16395*/       OPC_MoveParent,
/*16396*/       OPC_RecordChild3, // #3 = $src3
/*16397*/       OPC_MoveChild, 3,
/*16399*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*16402*/       OPC_MoveParent,
/*16403*/       OPC_Scope, 23, /*->16428*/ // 2 children in Scope
/*16405*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*16407*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*16410*/         OPC_EmitMergeInputChains1_1,
/*16411*/         OPC_EmitConvertToTarget, 3,
/*16413*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPCMPISTRICrm), 0|OPFL_Chain|OPFL_MemRefs,
                      2/*#VTs*/, MVT::i32, MVT::i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                  // Src: (intrinsic_wo_chain:i32 442:iPTR, VR128:v16i8:$src1, (ld:v16i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:i8):$src3) - Complexity = 33
                  // Dst: (VPCMPISTRICrm:i32 VR128:v16i8:$src1, addr:iPTR:$src2, (imm:i8):$src3)
/*16428*/       /*Scope*/ 23, /*->16452*/
/*16429*/         OPC_CheckPatternPredicate, 11, // (Subtarget->hasSSE42())
/*16431*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*16434*/         OPC_EmitMergeInputChains1_1,
/*16435*/         OPC_EmitConvertToTarget, 3,
/*16437*/         OPC_MorphNodeTo, TARGET_VAL(X86::PCMPISTRICrm), 0|OPFL_Chain|OPFL_MemRefs,
                      2/*#VTs*/, MVT::i32, MVT::i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                  // Src: (intrinsic_wo_chain:i32 442:iPTR, VR128:v16i8:$src1, (ld:v16i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:i8):$src3) - Complexity = 33
                  // Dst: (PCMPISTRICrm:i32 VR128:v16i8:$src1, addr:iPTR:$src2, (imm:i8):$src3)
/*16452*/       0, /*End of Scope*/
/*16453*/     /*Scope*/ 42, /*->16496*/
/*16454*/       OPC_RecordChild2, // #1 = $src2
/*16455*/       OPC_RecordChild3, // #2 = $src3
/*16456*/       OPC_MoveChild, 3,
/*16458*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*16461*/       OPC_MoveParent,
/*16462*/       OPC_Scope, 15, /*->16479*/ // 2 children in Scope
/*16464*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*16466*/         OPC_EmitConvertToTarget, 2,
/*16468*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPCMPISTRICrr), 0,
                      2/*#VTs*/, MVT::i32, MVT::i32, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (intrinsic_wo_chain:i32 442:iPTR, VR128:v16i8:$src1, VR128:v16i8:$src2, (imm:i8):$src3) - Complexity = 11
                  // Dst: (VPCMPISTRICrr:i32 VR128:v16i8:$src1, VR128:v16i8:$src2, (imm:i8):$src3)
/*16479*/       /*Scope*/ 15, /*->16495*/
/*16480*/         OPC_CheckPatternPredicate, 11, // (Subtarget->hasSSE42())
/*16482*/         OPC_EmitConvertToTarget, 2,
/*16484*/         OPC_MorphNodeTo, TARGET_VAL(X86::PCMPISTRICrr), 0,
                      2/*#VTs*/, MVT::i32, MVT::i32, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (intrinsic_wo_chain:i32 442:iPTR, VR128:v16i8:$src1, VR128:v16i8:$src2, (imm:i8):$src3) - Complexity = 11
                  // Dst: (PCMPISTRICrr:i32 VR128:v16i8:$src1, VR128:v16i8:$src2, (imm:i8):$src3)
/*16495*/       0, /*End of Scope*/
/*16496*/     0, /*End of Scope*/
/*16497*/   /*Scope*/ 122, /*->16620*/
/*16498*/     OPC_CheckInteger, 59|128,3/*443*/, 
/*16501*/     OPC_MoveParent,
/*16502*/     OPC_RecordChild1, // #0 = $src1
/*16503*/     OPC_Scope, 71, /*->16576*/ // 2 children in Scope
/*16505*/       OPC_MoveChild, 2,
/*16507*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*16510*/       OPC_RecordMemRef,
/*16511*/       OPC_RecordNode, // #1 = 'ld' chained node
/*16512*/       OPC_CheckFoldableChainNode,
/*16513*/       OPC_RecordChild1, // #2 = $src2
/*16514*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*16516*/       OPC_CheckPredicate, 3, // Predicate_load
/*16518*/       OPC_MoveParent,
/*16519*/       OPC_RecordChild3, // #3 = $src3
/*16520*/       OPC_MoveChild, 3,
/*16522*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*16525*/       OPC_MoveParent,
/*16526*/       OPC_Scope, 23, /*->16551*/ // 2 children in Scope
/*16528*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*16530*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*16533*/         OPC_EmitMergeInputChains1_1,
/*16534*/         OPC_EmitConvertToTarget, 3,
/*16536*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPCMPISTRIOrm), 0|OPFL_Chain|OPFL_MemRefs,
                      2/*#VTs*/, MVT::i32, MVT::i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                  // Src: (intrinsic_wo_chain:i32 443:iPTR, VR128:v16i8:$src1, (ld:v16i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:i8):$src3) - Complexity = 33
                  // Dst: (VPCMPISTRIOrm:i32 VR128:v16i8:$src1, addr:iPTR:$src2, (imm:i8):$src3)
/*16551*/       /*Scope*/ 23, /*->16575*/
/*16552*/         OPC_CheckPatternPredicate, 11, // (Subtarget->hasSSE42())
/*16554*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*16557*/         OPC_EmitMergeInputChains1_1,
/*16558*/         OPC_EmitConvertToTarget, 3,
/*16560*/         OPC_MorphNodeTo, TARGET_VAL(X86::PCMPISTRIOrm), 0|OPFL_Chain|OPFL_MemRefs,
                      2/*#VTs*/, MVT::i32, MVT::i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                  // Src: (intrinsic_wo_chain:i32 443:iPTR, VR128:v16i8:$src1, (ld:v16i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:i8):$src3) - Complexity = 33
                  // Dst: (PCMPISTRIOrm:i32 VR128:v16i8:$src1, addr:iPTR:$src2, (imm:i8):$src3)
/*16575*/       0, /*End of Scope*/
/*16576*/     /*Scope*/ 42, /*->16619*/
/*16577*/       OPC_RecordChild2, // #1 = $src2
/*16578*/       OPC_RecordChild3, // #2 = $src3
/*16579*/       OPC_MoveChild, 3,
/*16581*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*16584*/       OPC_MoveParent,
/*16585*/       OPC_Scope, 15, /*->16602*/ // 2 children in Scope
/*16587*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*16589*/         OPC_EmitConvertToTarget, 2,
/*16591*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPCMPISTRIOrr), 0,
                      2/*#VTs*/, MVT::i32, MVT::i32, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (intrinsic_wo_chain:i32 443:iPTR, VR128:v16i8:$src1, VR128:v16i8:$src2, (imm:i8):$src3) - Complexity = 11
                  // Dst: (VPCMPISTRIOrr:i32 VR128:v16i8:$src1, VR128:v16i8:$src2, (imm:i8):$src3)
/*16602*/       /*Scope*/ 15, /*->16618*/
/*16603*/         OPC_CheckPatternPredicate, 11, // (Subtarget->hasSSE42())
/*16605*/         OPC_EmitConvertToTarget, 2,
/*16607*/         OPC_MorphNodeTo, TARGET_VAL(X86::PCMPISTRIOrr), 0,
                      2/*#VTs*/, MVT::i32, MVT::i32, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (intrinsic_wo_chain:i32 443:iPTR, VR128:v16i8:$src1, VR128:v16i8:$src2, (imm:i8):$src3) - Complexity = 11
                  // Dst: (PCMPISTRIOrr:i32 VR128:v16i8:$src1, VR128:v16i8:$src2, (imm:i8):$src3)
/*16618*/       0, /*End of Scope*/
/*16619*/     0, /*End of Scope*/
/*16620*/   /*Scope*/ 122, /*->16743*/
/*16621*/     OPC_CheckInteger, 60|128,3/*444*/, 
/*16624*/     OPC_MoveParent,
/*16625*/     OPC_RecordChild1, // #0 = $src1
/*16626*/     OPC_Scope, 71, /*->16699*/ // 2 children in Scope
/*16628*/       OPC_MoveChild, 2,
/*16630*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*16633*/       OPC_RecordMemRef,
/*16634*/       OPC_RecordNode, // #1 = 'ld' chained node
/*16635*/       OPC_CheckFoldableChainNode,
/*16636*/       OPC_RecordChild1, // #2 = $src2
/*16637*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*16639*/       OPC_CheckPredicate, 3, // Predicate_load
/*16641*/       OPC_MoveParent,
/*16642*/       OPC_RecordChild3, // #3 = $src3
/*16643*/       OPC_MoveChild, 3,
/*16645*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*16648*/       OPC_MoveParent,
/*16649*/       OPC_Scope, 23, /*->16674*/ // 2 children in Scope
/*16651*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*16653*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*16656*/         OPC_EmitMergeInputChains1_1,
/*16657*/         OPC_EmitConvertToTarget, 3,
/*16659*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPCMPISTRISrm), 0|OPFL_Chain|OPFL_MemRefs,
                      2/*#VTs*/, MVT::i32, MVT::i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                  // Src: (intrinsic_wo_chain:i32 444:iPTR, VR128:v16i8:$src1, (ld:v16i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:i8):$src3) - Complexity = 33
                  // Dst: (VPCMPISTRISrm:i32 VR128:v16i8:$src1, addr:iPTR:$src2, (imm:i8):$src3)
/*16674*/       /*Scope*/ 23, /*->16698*/
/*16675*/         OPC_CheckPatternPredicate, 11, // (Subtarget->hasSSE42())
/*16677*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*16680*/         OPC_EmitMergeInputChains1_1,
/*16681*/         OPC_EmitConvertToTarget, 3,
/*16683*/         OPC_MorphNodeTo, TARGET_VAL(X86::PCMPISTRISrm), 0|OPFL_Chain|OPFL_MemRefs,
                      2/*#VTs*/, MVT::i32, MVT::i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                  // Src: (intrinsic_wo_chain:i32 444:iPTR, VR128:v16i8:$src1, (ld:v16i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:i8):$src3) - Complexity = 33
                  // Dst: (PCMPISTRISrm:i32 VR128:v16i8:$src1, addr:iPTR:$src2, (imm:i8):$src3)
/*16698*/       0, /*End of Scope*/
/*16699*/     /*Scope*/ 42, /*->16742*/
/*16700*/       OPC_RecordChild2, // #1 = $src2
/*16701*/       OPC_RecordChild3, // #2 = $src3
/*16702*/       OPC_MoveChild, 3,
/*16704*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*16707*/       OPC_MoveParent,
/*16708*/       OPC_Scope, 15, /*->16725*/ // 2 children in Scope
/*16710*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*16712*/         OPC_EmitConvertToTarget, 2,
/*16714*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPCMPISTRISrr), 0,
                      2/*#VTs*/, MVT::i32, MVT::i32, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (intrinsic_wo_chain:i32 444:iPTR, VR128:v16i8:$src1, VR128:v16i8:$src2, (imm:i8):$src3) - Complexity = 11
                  // Dst: (VPCMPISTRISrr:i32 VR128:v16i8:$src1, VR128:v16i8:$src2, (imm:i8):$src3)
/*16725*/       /*Scope*/ 15, /*->16741*/
/*16726*/         OPC_CheckPatternPredicate, 11, // (Subtarget->hasSSE42())
/*16728*/         OPC_EmitConvertToTarget, 2,
/*16730*/         OPC_MorphNodeTo, TARGET_VAL(X86::PCMPISTRISrr), 0,
                      2/*#VTs*/, MVT::i32, MVT::i32, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (intrinsic_wo_chain:i32 444:iPTR, VR128:v16i8:$src1, VR128:v16i8:$src2, (imm:i8):$src3) - Complexity = 11
                  // Dst: (PCMPISTRISrr:i32 VR128:v16i8:$src1, VR128:v16i8:$src2, (imm:i8):$src3)
/*16741*/       0, /*End of Scope*/
/*16742*/     0, /*End of Scope*/
/*16743*/   /*Scope*/ 122, /*->16866*/
/*16744*/     OPC_CheckInteger, 61|128,3/*445*/, 
/*16747*/     OPC_MoveParent,
/*16748*/     OPC_RecordChild1, // #0 = $src1
/*16749*/     OPC_Scope, 71, /*->16822*/ // 2 children in Scope
/*16751*/       OPC_MoveChild, 2,
/*16753*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*16756*/       OPC_RecordMemRef,
/*16757*/       OPC_RecordNode, // #1 = 'ld' chained node
/*16758*/       OPC_CheckFoldableChainNode,
/*16759*/       OPC_RecordChild1, // #2 = $src2
/*16760*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*16762*/       OPC_CheckPredicate, 3, // Predicate_load
/*16764*/       OPC_MoveParent,
/*16765*/       OPC_RecordChild3, // #3 = $src3
/*16766*/       OPC_MoveChild, 3,
/*16768*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*16771*/       OPC_MoveParent,
/*16772*/       OPC_Scope, 23, /*->16797*/ // 2 children in Scope
/*16774*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*16776*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*16779*/         OPC_EmitMergeInputChains1_1,
/*16780*/         OPC_EmitConvertToTarget, 3,
/*16782*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPCMPISTRIZrm), 0|OPFL_Chain|OPFL_MemRefs,
                      2/*#VTs*/, MVT::i32, MVT::i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                  // Src: (intrinsic_wo_chain:i32 445:iPTR, VR128:v16i8:$src1, (ld:v16i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:i8):$src3) - Complexity = 33
                  // Dst: (VPCMPISTRIZrm:i32 VR128:v16i8:$src1, addr:iPTR:$src2, (imm:i8):$src3)
/*16797*/       /*Scope*/ 23, /*->16821*/
/*16798*/         OPC_CheckPatternPredicate, 11, // (Subtarget->hasSSE42())
/*16800*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*16803*/         OPC_EmitMergeInputChains1_1,
/*16804*/         OPC_EmitConvertToTarget, 3,
/*16806*/         OPC_MorphNodeTo, TARGET_VAL(X86::PCMPISTRIZrm), 0|OPFL_Chain|OPFL_MemRefs,
                      2/*#VTs*/, MVT::i32, MVT::i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                  // Src: (intrinsic_wo_chain:i32 445:iPTR, VR128:v16i8:$src1, (ld:v16i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:i8):$src3) - Complexity = 33
                  // Dst: (PCMPISTRIZrm:i32 VR128:v16i8:$src1, addr:iPTR:$src2, (imm:i8):$src3)
/*16821*/       0, /*End of Scope*/
/*16822*/     /*Scope*/ 42, /*->16865*/
/*16823*/       OPC_RecordChild2, // #1 = $src2
/*16824*/       OPC_RecordChild3, // #2 = $src3
/*16825*/       OPC_MoveChild, 3,
/*16827*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*16830*/       OPC_MoveParent,
/*16831*/       OPC_Scope, 15, /*->16848*/ // 2 children in Scope
/*16833*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*16835*/         OPC_EmitConvertToTarget, 2,
/*16837*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPCMPISTRIZrr), 0,
                      2/*#VTs*/, MVT::i32, MVT::i32, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (intrinsic_wo_chain:i32 445:iPTR, VR128:v16i8:$src1, VR128:v16i8:$src2, (imm:i8):$src3) - Complexity = 11
                  // Dst: (VPCMPISTRIZrr:i32 VR128:v16i8:$src1, VR128:v16i8:$src2, (imm:i8):$src3)
/*16848*/       /*Scope*/ 15, /*->16864*/
/*16849*/         OPC_CheckPatternPredicate, 11, // (Subtarget->hasSSE42())
/*16851*/         OPC_EmitConvertToTarget, 2,
/*16853*/         OPC_MorphNodeTo, TARGET_VAL(X86::PCMPISTRIZrr), 0,
                      2/*#VTs*/, MVT::i32, MVT::i32, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (intrinsic_wo_chain:i32 445:iPTR, VR128:v16i8:$src1, VR128:v16i8:$src2, (imm:i8):$src3) - Complexity = 11
                  // Dst: (PCMPISTRIZrr:i32 VR128:v16i8:$src1, VR128:v16i8:$src2, (imm:i8):$src3)
/*16864*/       0, /*End of Scope*/
/*16865*/     0, /*End of Scope*/
/*16866*/   /*Scope*/ 25|128,1/*153*/, /*->17021*/
/*16868*/     OPC_CheckInteger, 48|128,3/*432*/, 
/*16871*/     OPC_MoveParent,
/*16872*/     OPC_RecordChild1, // #0 = $src1
/*16873*/     OPC_RecordChild2, // #1 = physreg input EAX
/*16874*/     OPC_Scope, 88, /*->16964*/ // 2 children in Scope
/*16876*/       OPC_MoveChild, 3,
/*16878*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*16881*/       OPC_RecordMemRef,
/*16882*/       OPC_RecordNode, // #2 = 'ld' chained node
/*16883*/       OPC_CheckFoldableChainNode,
/*16884*/       OPC_RecordChild1, // #3 = $src3
/*16885*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*16887*/       OPC_CheckPredicate, 3, // Predicate_load
/*16889*/       OPC_MoveParent,
/*16890*/       OPC_RecordChild4, // #4 = physreg input EDX
/*16891*/       OPC_RecordChild5, // #5 = $src5
/*16892*/       OPC_MoveChild, 5,
/*16894*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*16897*/       OPC_MoveParent,
/*16898*/       OPC_Scope, 31, /*->16931*/ // 2 children in Scope
/*16900*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*16902*/         OPC_CheckComplexPat, /*CP*/0, /*#*/3, // SelectAddr:$src3 #6 #7 #8 #9 #10
/*16905*/         OPC_EmitMergeInputChains, 1, 2, 
/*16908*/         OPC_EmitConvertToTarget, 5,
/*16910*/         OPC_EmitCopyToReg, 1, X86::EAX,
/*16913*/         OPC_EmitCopyToReg, 4, X86::EDX,
/*16916*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPCMPESTRIrm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      2/*#VTs*/, MVT::i32, MVT::i32, 7/*#Ops*/, 0, 6, 7, 8, 9, 10, 11, 
                  // Src: (intrinsic_wo_chain:i32 432:iPTR, VR128:v16i8:$src1, EAX:i32, (ld:v16i8 addr:iPTR:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, EDX:i32, (imm:i8):$src5) - Complexity = 33
                  // Dst: (VPCMPESTRIrm:i32 VR128:v16i8:$src1, addr:iPTR:$src3, (imm:i8):$src5)
/*16931*/       /*Scope*/ 31, /*->16963*/
/*16932*/         OPC_CheckPatternPredicate, 11, // (Subtarget->hasSSE42())
/*16934*/         OPC_CheckComplexPat, /*CP*/0, /*#*/3, // SelectAddr:$src3 #6 #7 #8 #9 #10
/*16937*/         OPC_EmitMergeInputChains, 1, 2, 
/*16940*/         OPC_EmitConvertToTarget, 5,
/*16942*/         OPC_EmitCopyToReg, 1, X86::EAX,
/*16945*/         OPC_EmitCopyToReg, 4, X86::EDX,
/*16948*/         OPC_MorphNodeTo, TARGET_VAL(X86::PCMPESTRIrm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      2/*#VTs*/, MVT::i32, MVT::i32, 7/*#Ops*/, 0, 6, 7, 8, 9, 10, 11, 
                  // Src: (intrinsic_wo_chain:i32 432:iPTR, VR128:v16i8:$src1, EAX:i32, (ld:v16i8 addr:iPTR:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, EDX:i32, (imm:i8):$src5) - Complexity = 33
                  // Dst: (PCMPESTRIrm:i32 VR128:v16i8:$src1, addr:iPTR:$src3, (imm:i8):$src5)
/*16963*/       0, /*End of Scope*/
/*16964*/     /*Scope*/ 55, /*->17020*/
/*16965*/       OPC_RecordChild3, // #2 = $src3
/*16966*/       OPC_RecordChild4, // #3 = physreg input EDX
/*16967*/       OPC_RecordChild5, // #4 = $src5
/*16968*/       OPC_MoveChild, 5,
/*16970*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*16973*/       OPC_MoveParent,
/*16974*/       OPC_Scope, 21, /*->16997*/ // 2 children in Scope
/*16976*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*16978*/         OPC_EmitConvertToTarget, 4,
/*16980*/         OPC_EmitCopyToReg, 1, X86::EAX,
/*16983*/         OPC_EmitCopyToReg, 3, X86::EDX,
/*16986*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPCMPESTRIrr), 0|OPFL_GlueInput,
                      2/*#VTs*/, MVT::i32, MVT::i32, 3/*#Ops*/, 0, 2, 5, 
                  // Src: (intrinsic_wo_chain:i32 432:iPTR, VR128:v16i8:$src1, EAX:i32, VR128:v16i8:$src3, EDX:i32, (imm:i8):$src5) - Complexity = 11
                  // Dst: (VPCMPESTRIrr:i32 VR128:v16i8:$src1, VR128:v16i8:$src3, (imm:i8):$src5)
/*16997*/       /*Scope*/ 21, /*->17019*/
/*16998*/         OPC_CheckPatternPredicate, 11, // (Subtarget->hasSSE42())
/*17000*/         OPC_EmitConvertToTarget, 4,
/*17002*/         OPC_EmitCopyToReg, 1, X86::EAX,
/*17005*/         OPC_EmitCopyToReg, 3, X86::EDX,
/*17008*/         OPC_MorphNodeTo, TARGET_VAL(X86::PCMPESTRIrr), 0|OPFL_GlueInput,
                      2/*#VTs*/, MVT::i32, MVT::i32, 3/*#Ops*/, 0, 2, 5, 
                  // Src: (intrinsic_wo_chain:i32 432:iPTR, VR128:v16i8:$src1, EAX:i32, VR128:v16i8:$src3, EDX:i32, (imm:i8):$src5) - Complexity = 11
                  // Dst: (PCMPESTRIrr:i32 VR128:v16i8:$src1, VR128:v16i8:$src3, (imm:i8):$src5)
/*17019*/       0, /*End of Scope*/
/*17020*/     0, /*End of Scope*/
/*17021*/   /*Scope*/ 25|128,1/*153*/, /*->17176*/
/*17023*/     OPC_CheckInteger, 49|128,3/*433*/, 
/*17026*/     OPC_MoveParent,
/*17027*/     OPC_RecordChild1, // #0 = $src1
/*17028*/     OPC_RecordChild2, // #1 = physreg input EAX
/*17029*/     OPC_Scope, 88, /*->17119*/ // 2 children in Scope
/*17031*/       OPC_MoveChild, 3,
/*17033*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*17036*/       OPC_RecordMemRef,
/*17037*/       OPC_RecordNode, // #2 = 'ld' chained node
/*17038*/       OPC_CheckFoldableChainNode,
/*17039*/       OPC_RecordChild1, // #3 = $src3
/*17040*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*17042*/       OPC_CheckPredicate, 3, // Predicate_load
/*17044*/       OPC_MoveParent,
/*17045*/       OPC_RecordChild4, // #4 = physreg input EDX
/*17046*/       OPC_RecordChild5, // #5 = $src5
/*17047*/       OPC_MoveChild, 5,
/*17049*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*17052*/       OPC_MoveParent,
/*17053*/       OPC_Scope, 31, /*->17086*/ // 2 children in Scope
/*17055*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*17057*/         OPC_CheckComplexPat, /*CP*/0, /*#*/3, // SelectAddr:$src3 #6 #7 #8 #9 #10
/*17060*/         OPC_EmitMergeInputChains, 1, 2, 
/*17063*/         OPC_EmitConvertToTarget, 5,
/*17065*/         OPC_EmitCopyToReg, 1, X86::EAX,
/*17068*/         OPC_EmitCopyToReg, 4, X86::EDX,
/*17071*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPCMPESTRIArm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      2/*#VTs*/, MVT::i32, MVT::i32, 7/*#Ops*/, 0, 6, 7, 8, 9, 10, 11, 
                  // Src: (intrinsic_wo_chain:i32 433:iPTR, VR128:v16i8:$src1, EAX:i32, (ld:v16i8 addr:iPTR:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, EDX:i32, (imm:i8):$src5) - Complexity = 33
                  // Dst: (VPCMPESTRIArm:i32 VR128:v16i8:$src1, addr:iPTR:$src3, (imm:i8):$src5)
/*17086*/       /*Scope*/ 31, /*->17118*/
/*17087*/         OPC_CheckPatternPredicate, 11, // (Subtarget->hasSSE42())
/*17089*/         OPC_CheckComplexPat, /*CP*/0, /*#*/3, // SelectAddr:$src3 #6 #7 #8 #9 #10
/*17092*/         OPC_EmitMergeInputChains, 1, 2, 
/*17095*/         OPC_EmitConvertToTarget, 5,
/*17097*/         OPC_EmitCopyToReg, 1, X86::EAX,
/*17100*/         OPC_EmitCopyToReg, 4, X86::EDX,
/*17103*/         OPC_MorphNodeTo, TARGET_VAL(X86::PCMPESTRIArm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      2/*#VTs*/, MVT::i32, MVT::i32, 7/*#Ops*/, 0, 6, 7, 8, 9, 10, 11, 
                  // Src: (intrinsic_wo_chain:i32 433:iPTR, VR128:v16i8:$src1, EAX:i32, (ld:v16i8 addr:iPTR:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, EDX:i32, (imm:i8):$src5) - Complexity = 33
                  // Dst: (PCMPESTRIArm:i32 VR128:v16i8:$src1, addr:iPTR:$src3, (imm:i8):$src5)
/*17118*/       0, /*End of Scope*/
/*17119*/     /*Scope*/ 55, /*->17175*/
/*17120*/       OPC_RecordChild3, // #2 = $src3
/*17121*/       OPC_RecordChild4, // #3 = physreg input EDX
/*17122*/       OPC_RecordChild5, // #4 = $src5
/*17123*/       OPC_MoveChild, 5,
/*17125*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*17128*/       OPC_MoveParent,
/*17129*/       OPC_Scope, 21, /*->17152*/ // 2 children in Scope
/*17131*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*17133*/         OPC_EmitConvertToTarget, 4,
/*17135*/         OPC_EmitCopyToReg, 1, X86::EAX,
/*17138*/         OPC_EmitCopyToReg, 3, X86::EDX,
/*17141*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPCMPESTRIArr), 0|OPFL_GlueInput,
                      2/*#VTs*/, MVT::i32, MVT::i32, 3/*#Ops*/, 0, 2, 5, 
                  // Src: (intrinsic_wo_chain:i32 433:iPTR, VR128:v16i8:$src1, EAX:i32, VR128:v16i8:$src3, EDX:i32, (imm:i8):$src5) - Complexity = 11
                  // Dst: (VPCMPESTRIArr:i32 VR128:v16i8:$src1, VR128:v16i8:$src3, (imm:i8):$src5)
/*17152*/       /*Scope*/ 21, /*->17174*/
/*17153*/         OPC_CheckPatternPredicate, 11, // (Subtarget->hasSSE42())
/*17155*/         OPC_EmitConvertToTarget, 4,
/*17157*/         OPC_EmitCopyToReg, 1, X86::EAX,
/*17160*/         OPC_EmitCopyToReg, 3, X86::EDX,
/*17163*/         OPC_MorphNodeTo, TARGET_VAL(X86::PCMPESTRIArr), 0|OPFL_GlueInput,
                      2/*#VTs*/, MVT::i32, MVT::i32, 3/*#Ops*/, 0, 2, 5, 
                  // Src: (intrinsic_wo_chain:i32 433:iPTR, VR128:v16i8:$src1, EAX:i32, VR128:v16i8:$src3, EDX:i32, (imm:i8):$src5) - Complexity = 11
                  // Dst: (PCMPESTRIArr:i32 VR128:v16i8:$src1, VR128:v16i8:$src3, (imm:i8):$src5)
/*17174*/       0, /*End of Scope*/
/*17175*/     0, /*End of Scope*/
/*17176*/   /*Scope*/ 25|128,1/*153*/, /*->17331*/
/*17178*/     OPC_CheckInteger, 50|128,3/*434*/, 
/*17181*/     OPC_MoveParent,
/*17182*/     OPC_RecordChild1, // #0 = $src1
/*17183*/     OPC_RecordChild2, // #1 = physreg input EAX
/*17184*/     OPC_Scope, 88, /*->17274*/ // 2 children in Scope
/*17186*/       OPC_MoveChild, 3,
/*17188*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*17191*/       OPC_RecordMemRef,
/*17192*/       OPC_RecordNode, // #2 = 'ld' chained node
/*17193*/       OPC_CheckFoldableChainNode,
/*17194*/       OPC_RecordChild1, // #3 = $src3
/*17195*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*17197*/       OPC_CheckPredicate, 3, // Predicate_load
/*17199*/       OPC_MoveParent,
/*17200*/       OPC_RecordChild4, // #4 = physreg input EDX
/*17201*/       OPC_RecordChild5, // #5 = $src5
/*17202*/       OPC_MoveChild, 5,
/*17204*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*17207*/       OPC_MoveParent,
/*17208*/       OPC_Scope, 31, /*->17241*/ // 2 children in Scope
/*17210*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*17212*/         OPC_CheckComplexPat, /*CP*/0, /*#*/3, // SelectAddr:$src3 #6 #7 #8 #9 #10
/*17215*/         OPC_EmitMergeInputChains, 1, 2, 
/*17218*/         OPC_EmitConvertToTarget, 5,
/*17220*/         OPC_EmitCopyToReg, 1, X86::EAX,
/*17223*/         OPC_EmitCopyToReg, 4, X86::EDX,
/*17226*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPCMPESTRICrm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      2/*#VTs*/, MVT::i32, MVT::i32, 7/*#Ops*/, 0, 6, 7, 8, 9, 10, 11, 
                  // Src: (intrinsic_wo_chain:i32 434:iPTR, VR128:v16i8:$src1, EAX:i32, (ld:v16i8 addr:iPTR:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, EDX:i32, (imm:i8):$src5) - Complexity = 33
                  // Dst: (VPCMPESTRICrm:i32 VR128:v16i8:$src1, addr:iPTR:$src3, (imm:i8):$src5)
/*17241*/       /*Scope*/ 31, /*->17273*/
/*17242*/         OPC_CheckPatternPredicate, 11, // (Subtarget->hasSSE42())
/*17244*/         OPC_CheckComplexPat, /*CP*/0, /*#*/3, // SelectAddr:$src3 #6 #7 #8 #9 #10
/*17247*/         OPC_EmitMergeInputChains, 1, 2, 
/*17250*/         OPC_EmitConvertToTarget, 5,
/*17252*/         OPC_EmitCopyToReg, 1, X86::EAX,
/*17255*/         OPC_EmitCopyToReg, 4, X86::EDX,
/*17258*/         OPC_MorphNodeTo, TARGET_VAL(X86::PCMPESTRICrm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      2/*#VTs*/, MVT::i32, MVT::i32, 7/*#Ops*/, 0, 6, 7, 8, 9, 10, 11, 
                  // Src: (intrinsic_wo_chain:i32 434:iPTR, VR128:v16i8:$src1, EAX:i32, (ld:v16i8 addr:iPTR:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, EDX:i32, (imm:i8):$src5) - Complexity = 33
                  // Dst: (PCMPESTRICrm:i32 VR128:v16i8:$src1, addr:iPTR:$src3, (imm:i8):$src5)
/*17273*/       0, /*End of Scope*/
/*17274*/     /*Scope*/ 55, /*->17330*/
/*17275*/       OPC_RecordChild3, // #2 = $src3
/*17276*/       OPC_RecordChild4, // #3 = physreg input EDX
/*17277*/       OPC_RecordChild5, // #4 = $src5
/*17278*/       OPC_MoveChild, 5,
/*17280*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*17283*/       OPC_MoveParent,
/*17284*/       OPC_Scope, 21, /*->17307*/ // 2 children in Scope
/*17286*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*17288*/         OPC_EmitConvertToTarget, 4,
/*17290*/         OPC_EmitCopyToReg, 1, X86::EAX,
/*17293*/         OPC_EmitCopyToReg, 3, X86::EDX,
/*17296*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPCMPESTRICrr), 0|OPFL_GlueInput,
                      2/*#VTs*/, MVT::i32, MVT::i32, 3/*#Ops*/, 0, 2, 5, 
                  // Src: (intrinsic_wo_chain:i32 434:iPTR, VR128:v16i8:$src1, EAX:i32, VR128:v16i8:$src3, EDX:i32, (imm:i8):$src5) - Complexity = 11
                  // Dst: (VPCMPESTRICrr:i32 VR128:v16i8:$src1, VR128:v16i8:$src3, (imm:i8):$src5)
/*17307*/       /*Scope*/ 21, /*->17329*/
/*17308*/         OPC_CheckPatternPredicate, 11, // (Subtarget->hasSSE42())
/*17310*/         OPC_EmitConvertToTarget, 4,
/*17312*/         OPC_EmitCopyToReg, 1, X86::EAX,
/*17315*/         OPC_EmitCopyToReg, 3, X86::EDX,
/*17318*/         OPC_MorphNodeTo, TARGET_VAL(X86::PCMPESTRICrr), 0|OPFL_GlueInput,
                      2/*#VTs*/, MVT::i32, MVT::i32, 3/*#Ops*/, 0, 2, 5, 
                  // Src: (intrinsic_wo_chain:i32 434:iPTR, VR128:v16i8:$src1, EAX:i32, VR128:v16i8:$src3, EDX:i32, (imm:i8):$src5) - Complexity = 11
                  // Dst: (PCMPESTRICrr:i32 VR128:v16i8:$src1, VR128:v16i8:$src3, (imm:i8):$src5)
/*17329*/       0, /*End of Scope*/
/*17330*/     0, /*End of Scope*/
/*17331*/   /*Scope*/ 25|128,1/*153*/, /*->17486*/
/*17333*/     OPC_CheckInteger, 51|128,3/*435*/, 
/*17336*/     OPC_MoveParent,
/*17337*/     OPC_RecordChild1, // #0 = $src1
/*17338*/     OPC_RecordChild2, // #1 = physreg input EAX
/*17339*/     OPC_Scope, 88, /*->17429*/ // 2 children in Scope
/*17341*/       OPC_MoveChild, 3,
/*17343*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*17346*/       OPC_RecordMemRef,
/*17347*/       OPC_RecordNode, // #2 = 'ld' chained node
/*17348*/       OPC_CheckFoldableChainNode,
/*17349*/       OPC_RecordChild1, // #3 = $src3
/*17350*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*17352*/       OPC_CheckPredicate, 3, // Predicate_load
/*17354*/       OPC_MoveParent,
/*17355*/       OPC_RecordChild4, // #4 = physreg input EDX
/*17356*/       OPC_RecordChild5, // #5 = $src5
/*17357*/       OPC_MoveChild, 5,
/*17359*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*17362*/       OPC_MoveParent,
/*17363*/       OPC_Scope, 31, /*->17396*/ // 2 children in Scope
/*17365*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*17367*/         OPC_CheckComplexPat, /*CP*/0, /*#*/3, // SelectAddr:$src3 #6 #7 #8 #9 #10
/*17370*/         OPC_EmitMergeInputChains, 1, 2, 
/*17373*/         OPC_EmitConvertToTarget, 5,
/*17375*/         OPC_EmitCopyToReg, 1, X86::EAX,
/*17378*/         OPC_EmitCopyToReg, 4, X86::EDX,
/*17381*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPCMPESTRIOrm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      2/*#VTs*/, MVT::i32, MVT::i32, 7/*#Ops*/, 0, 6, 7, 8, 9, 10, 11, 
                  // Src: (intrinsic_wo_chain:i32 435:iPTR, VR128:v16i8:$src1, EAX:i32, (ld:v16i8 addr:iPTR:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, EDX:i32, (imm:i8):$src5) - Complexity = 33
                  // Dst: (VPCMPESTRIOrm:i32 VR128:v16i8:$src1, addr:iPTR:$src3, (imm:i8):$src5)
/*17396*/       /*Scope*/ 31, /*->17428*/
/*17397*/         OPC_CheckPatternPredicate, 11, // (Subtarget->hasSSE42())
/*17399*/         OPC_CheckComplexPat, /*CP*/0, /*#*/3, // SelectAddr:$src3 #6 #7 #8 #9 #10
/*17402*/         OPC_EmitMergeInputChains, 1, 2, 
/*17405*/         OPC_EmitConvertToTarget, 5,
/*17407*/         OPC_EmitCopyToReg, 1, X86::EAX,
/*17410*/         OPC_EmitCopyToReg, 4, X86::EDX,
/*17413*/         OPC_MorphNodeTo, TARGET_VAL(X86::PCMPESTRIOrm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      2/*#VTs*/, MVT::i32, MVT::i32, 7/*#Ops*/, 0, 6, 7, 8, 9, 10, 11, 
                  // Src: (intrinsic_wo_chain:i32 435:iPTR, VR128:v16i8:$src1, EAX:i32, (ld:v16i8 addr:iPTR:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, EDX:i32, (imm:i8):$src5) - Complexity = 33
                  // Dst: (PCMPESTRIOrm:i32 VR128:v16i8:$src1, addr:iPTR:$src3, (imm:i8):$src5)
/*17428*/       0, /*End of Scope*/
/*17429*/     /*Scope*/ 55, /*->17485*/
/*17430*/       OPC_RecordChild3, // #2 = $src3
/*17431*/       OPC_RecordChild4, // #3 = physreg input EDX
/*17432*/       OPC_RecordChild5, // #4 = $src5
/*17433*/       OPC_MoveChild, 5,
/*17435*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*17438*/       OPC_MoveParent,
/*17439*/       OPC_Scope, 21, /*->17462*/ // 2 children in Scope
/*17441*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*17443*/         OPC_EmitConvertToTarget, 4,
/*17445*/         OPC_EmitCopyToReg, 1, X86::EAX,
/*17448*/         OPC_EmitCopyToReg, 3, X86::EDX,
/*17451*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPCMPESTRIOrr), 0|OPFL_GlueInput,
                      2/*#VTs*/, MVT::i32, MVT::i32, 3/*#Ops*/, 0, 2, 5, 
                  // Src: (intrinsic_wo_chain:i32 435:iPTR, VR128:v16i8:$src1, EAX:i32, VR128:v16i8:$src3, EDX:i32, (imm:i8):$src5) - Complexity = 11
                  // Dst: (VPCMPESTRIOrr:i32 VR128:v16i8:$src1, VR128:v16i8:$src3, (imm:i8):$src5)
/*17462*/       /*Scope*/ 21, /*->17484*/
/*17463*/         OPC_CheckPatternPredicate, 11, // (Subtarget->hasSSE42())
/*17465*/         OPC_EmitConvertToTarget, 4,
/*17467*/         OPC_EmitCopyToReg, 1, X86::EAX,
/*17470*/         OPC_EmitCopyToReg, 3, X86::EDX,
/*17473*/         OPC_MorphNodeTo, TARGET_VAL(X86::PCMPESTRIOrr), 0|OPFL_GlueInput,
                      2/*#VTs*/, MVT::i32, MVT::i32, 3/*#Ops*/, 0, 2, 5, 
                  // Src: (intrinsic_wo_chain:i32 435:iPTR, VR128:v16i8:$src1, EAX:i32, VR128:v16i8:$src3, EDX:i32, (imm:i8):$src5) - Complexity = 11
                  // Dst: (PCMPESTRIOrr:i32 VR128:v16i8:$src1, VR128:v16i8:$src3, (imm:i8):$src5)
/*17484*/       0, /*End of Scope*/
/*17485*/     0, /*End of Scope*/
/*17486*/   /*Scope*/ 25|128,1/*153*/, /*->17641*/
/*17488*/     OPC_CheckInteger, 52|128,3/*436*/, 
/*17491*/     OPC_MoveParent,
/*17492*/     OPC_RecordChild1, // #0 = $src1
/*17493*/     OPC_RecordChild2, // #1 = physreg input EAX
/*17494*/     OPC_Scope, 88, /*->17584*/ // 2 children in Scope
/*17496*/       OPC_MoveChild, 3,
/*17498*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*17501*/       OPC_RecordMemRef,
/*17502*/       OPC_RecordNode, // #2 = 'ld' chained node
/*17503*/       OPC_CheckFoldableChainNode,
/*17504*/       OPC_RecordChild1, // #3 = $src3
/*17505*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*17507*/       OPC_CheckPredicate, 3, // Predicate_load
/*17509*/       OPC_MoveParent,
/*17510*/       OPC_RecordChild4, // #4 = physreg input EDX
/*17511*/       OPC_RecordChild5, // #5 = $src5
/*17512*/       OPC_MoveChild, 5,
/*17514*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*17517*/       OPC_MoveParent,
/*17518*/       OPC_Scope, 31, /*->17551*/ // 2 children in Scope
/*17520*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*17522*/         OPC_CheckComplexPat, /*CP*/0, /*#*/3, // SelectAddr:$src3 #6 #7 #8 #9 #10
/*17525*/         OPC_EmitMergeInputChains, 1, 2, 
/*17528*/         OPC_EmitConvertToTarget, 5,
/*17530*/         OPC_EmitCopyToReg, 1, X86::EAX,
/*17533*/         OPC_EmitCopyToReg, 4, X86::EDX,
/*17536*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPCMPESTRISrm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      2/*#VTs*/, MVT::i32, MVT::i32, 7/*#Ops*/, 0, 6, 7, 8, 9, 10, 11, 
                  // Src: (intrinsic_wo_chain:i32 436:iPTR, VR128:v16i8:$src1, EAX:i32, (ld:v16i8 addr:iPTR:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, EDX:i32, (imm:i8):$src5) - Complexity = 33
                  // Dst: (VPCMPESTRISrm:i32 VR128:v16i8:$src1, addr:iPTR:$src3, (imm:i8):$src5)
/*17551*/       /*Scope*/ 31, /*->17583*/
/*17552*/         OPC_CheckPatternPredicate, 11, // (Subtarget->hasSSE42())
/*17554*/         OPC_CheckComplexPat, /*CP*/0, /*#*/3, // SelectAddr:$src3 #6 #7 #8 #9 #10
/*17557*/         OPC_EmitMergeInputChains, 1, 2, 
/*17560*/         OPC_EmitConvertToTarget, 5,
/*17562*/         OPC_EmitCopyToReg, 1, X86::EAX,
/*17565*/         OPC_EmitCopyToReg, 4, X86::EDX,
/*17568*/         OPC_MorphNodeTo, TARGET_VAL(X86::PCMPESTRISrm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      2/*#VTs*/, MVT::i32, MVT::i32, 7/*#Ops*/, 0, 6, 7, 8, 9, 10, 11, 
                  // Src: (intrinsic_wo_chain:i32 436:iPTR, VR128:v16i8:$src1, EAX:i32, (ld:v16i8 addr:iPTR:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, EDX:i32, (imm:i8):$src5) - Complexity = 33
                  // Dst: (PCMPESTRISrm:i32 VR128:v16i8:$src1, addr:iPTR:$src3, (imm:i8):$src5)
/*17583*/       0, /*End of Scope*/
/*17584*/     /*Scope*/ 55, /*->17640*/
/*17585*/       OPC_RecordChild3, // #2 = $src3
/*17586*/       OPC_RecordChild4, // #3 = physreg input EDX
/*17587*/       OPC_RecordChild5, // #4 = $src5
/*17588*/       OPC_MoveChild, 5,
/*17590*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*17593*/       OPC_MoveParent,
/*17594*/       OPC_Scope, 21, /*->17617*/ // 2 children in Scope
/*17596*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*17598*/         OPC_EmitConvertToTarget, 4,
/*17600*/         OPC_EmitCopyToReg, 1, X86::EAX,
/*17603*/         OPC_EmitCopyToReg, 3, X86::EDX,
/*17606*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPCMPESTRISrr), 0|OPFL_GlueInput,
                      2/*#VTs*/, MVT::i32, MVT::i32, 3/*#Ops*/, 0, 2, 5, 
                  // Src: (intrinsic_wo_chain:i32 436:iPTR, VR128:v16i8:$src1, EAX:i32, VR128:v16i8:$src3, EDX:i32, (imm:i8):$src5) - Complexity = 11
                  // Dst: (VPCMPESTRISrr:i32 VR128:v16i8:$src1, VR128:v16i8:$src3, (imm:i8):$src5)
/*17617*/       /*Scope*/ 21, /*->17639*/
/*17618*/         OPC_CheckPatternPredicate, 11, // (Subtarget->hasSSE42())
/*17620*/         OPC_EmitConvertToTarget, 4,
/*17622*/         OPC_EmitCopyToReg, 1, X86::EAX,
/*17625*/         OPC_EmitCopyToReg, 3, X86::EDX,
/*17628*/         OPC_MorphNodeTo, TARGET_VAL(X86::PCMPESTRISrr), 0|OPFL_GlueInput,
                      2/*#VTs*/, MVT::i32, MVT::i32, 3/*#Ops*/, 0, 2, 5, 
                  // Src: (intrinsic_wo_chain:i32 436:iPTR, VR128:v16i8:$src1, EAX:i32, VR128:v16i8:$src3, EDX:i32, (imm:i8):$src5) - Complexity = 11
                  // Dst: (PCMPESTRISrr:i32 VR128:v16i8:$src1, VR128:v16i8:$src3, (imm:i8):$src5)
/*17639*/       0, /*End of Scope*/
/*17640*/     0, /*End of Scope*/
/*17641*/   /*Scope*/ 25|128,1/*153*/, /*->17796*/
/*17643*/     OPC_CheckInteger, 53|128,3/*437*/, 
/*17646*/     OPC_MoveParent,
/*17647*/     OPC_RecordChild1, // #0 = $src1
/*17648*/     OPC_RecordChild2, // #1 = physreg input EAX
/*17649*/     OPC_Scope, 88, /*->17739*/ // 2 children in Scope
/*17651*/       OPC_MoveChild, 3,
/*17653*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*17656*/       OPC_RecordMemRef,
/*17657*/       OPC_RecordNode, // #2 = 'ld' chained node
/*17658*/       OPC_CheckFoldableChainNode,
/*17659*/       OPC_RecordChild1, // #3 = $src3
/*17660*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*17662*/       OPC_CheckPredicate, 3, // Predicate_load
/*17664*/       OPC_MoveParent,
/*17665*/       OPC_RecordChild4, // #4 = physreg input EDX
/*17666*/       OPC_RecordChild5, // #5 = $src5
/*17667*/       OPC_MoveChild, 5,
/*17669*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*17672*/       OPC_MoveParent,
/*17673*/       OPC_Scope, 31, /*->17706*/ // 2 children in Scope
/*17675*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*17677*/         OPC_CheckComplexPat, /*CP*/0, /*#*/3, // SelectAddr:$src3 #6 #7 #8 #9 #10
/*17680*/         OPC_EmitMergeInputChains, 1, 2, 
/*17683*/         OPC_EmitConvertToTarget, 5,
/*17685*/         OPC_EmitCopyToReg, 1, X86::EAX,
/*17688*/         OPC_EmitCopyToReg, 4, X86::EDX,
/*17691*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPCMPESTRIZrm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      2/*#VTs*/, MVT::i32, MVT::i32, 7/*#Ops*/, 0, 6, 7, 8, 9, 10, 11, 
                  // Src: (intrinsic_wo_chain:i32 437:iPTR, VR128:v16i8:$src1, EAX:i32, (ld:v16i8 addr:iPTR:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, EDX:i32, (imm:i8):$src5) - Complexity = 33
                  // Dst: (VPCMPESTRIZrm:i32 VR128:v16i8:$src1, addr:iPTR:$src3, (imm:i8):$src5)
/*17706*/       /*Scope*/ 31, /*->17738*/
/*17707*/         OPC_CheckPatternPredicate, 11, // (Subtarget->hasSSE42())
/*17709*/         OPC_CheckComplexPat, /*CP*/0, /*#*/3, // SelectAddr:$src3 #6 #7 #8 #9 #10
/*17712*/         OPC_EmitMergeInputChains, 1, 2, 
/*17715*/         OPC_EmitConvertToTarget, 5,
/*17717*/         OPC_EmitCopyToReg, 1, X86::EAX,
/*17720*/         OPC_EmitCopyToReg, 4, X86::EDX,
/*17723*/         OPC_MorphNodeTo, TARGET_VAL(X86::PCMPESTRIZrm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      2/*#VTs*/, MVT::i32, MVT::i32, 7/*#Ops*/, 0, 6, 7, 8, 9, 10, 11, 
                  // Src: (intrinsic_wo_chain:i32 437:iPTR, VR128:v16i8:$src1, EAX:i32, (ld:v16i8 addr:iPTR:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, EDX:i32, (imm:i8):$src5) - Complexity = 33
                  // Dst: (PCMPESTRIZrm:i32 VR128:v16i8:$src1, addr:iPTR:$src3, (imm:i8):$src5)
/*17738*/       0, /*End of Scope*/
/*17739*/     /*Scope*/ 55, /*->17795*/
/*17740*/       OPC_RecordChild3, // #2 = $src3
/*17741*/       OPC_RecordChild4, // #3 = physreg input EDX
/*17742*/       OPC_RecordChild5, // #4 = $src5
/*17743*/       OPC_MoveChild, 5,
/*17745*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*17748*/       OPC_MoveParent,
/*17749*/       OPC_Scope, 21, /*->17772*/ // 2 children in Scope
/*17751*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*17753*/         OPC_EmitConvertToTarget, 4,
/*17755*/         OPC_EmitCopyToReg, 1, X86::EAX,
/*17758*/         OPC_EmitCopyToReg, 3, X86::EDX,
/*17761*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPCMPESTRIZrr), 0|OPFL_GlueInput,
                      2/*#VTs*/, MVT::i32, MVT::i32, 3/*#Ops*/, 0, 2, 5, 
                  // Src: (intrinsic_wo_chain:i32 437:iPTR, VR128:v16i8:$src1, EAX:i32, VR128:v16i8:$src3, EDX:i32, (imm:i8):$src5) - Complexity = 11
                  // Dst: (VPCMPESTRIZrr:i32 VR128:v16i8:$src1, VR128:v16i8:$src3, (imm:i8):$src5)
/*17772*/       /*Scope*/ 21, /*->17794*/
/*17773*/         OPC_CheckPatternPredicate, 11, // (Subtarget->hasSSE42())
/*17775*/         OPC_EmitConvertToTarget, 4,
/*17777*/         OPC_EmitCopyToReg, 1, X86::EAX,
/*17780*/         OPC_EmitCopyToReg, 3, X86::EDX,
/*17783*/         OPC_MorphNodeTo, TARGET_VAL(X86::PCMPESTRIZrr), 0|OPFL_GlueInput,
                      2/*#VTs*/, MVT::i32, MVT::i32, 3/*#Ops*/, 0, 2, 5, 
                  // Src: (intrinsic_wo_chain:i32 437:iPTR, VR128:v16i8:$src1, EAX:i32, VR128:v16i8:$src3, EDX:i32, (imm:i8):$src5) - Complexity = 11
                  // Dst: (PCMPESTRIZrr:i32 VR128:v16i8:$src1, VR128:v16i8:$src3, (imm:i8):$src5)
/*17794*/       0, /*End of Scope*/
/*17795*/     0, /*End of Scope*/
/*17796*/   /*Scope*/ 74, /*->17871*/
/*17797*/     OPC_CheckInteger, 91|128,1/*219*/, 
/*17800*/     OPC_MoveParent,
/*17801*/     OPC_RecordChild1, // #0 = $src1
/*17802*/     OPC_Scope, 43, /*->17847*/ // 2 children in Scope
/*17804*/       OPC_MoveChild, 2,
/*17806*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*17809*/       OPC_RecordMemRef,
/*17810*/       OPC_RecordNode, // #1 = 'ld' chained node
/*17811*/       OPC_CheckFoldableChainNode,
/*17812*/       OPC_RecordChild1, // #2 = $src2
/*17813*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*17815*/       OPC_CheckPredicate, 3, // Predicate_load
/*17817*/       OPC_MoveParent,
/*17818*/       OPC_RecordChild3, // #3 = $src3
/*17819*/       OPC_MoveChild, 3,
/*17821*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*17824*/       OPC_MoveParent,
/*17825*/       OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*17827*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*17830*/       OPC_EmitMergeInputChains1_1,
/*17831*/       OPC_EmitConvertToTarget, 3,
/*17833*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PALIGNR64irm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::x86mmx, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                // Src: (intrinsic_wo_chain:x86mmx 219:iPTR, VR64:x86mmx:$src1, (ld:x86mmx addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:i8):$src3) - Complexity = 33
                // Dst: (MMX_PALIGNR64irm:x86mmx VR64:x86mmx:$src1, addr:iPTR:$src2, (imm:i8):$src3)
/*17847*/     /*Scope*/ 22, /*->17870*/
/*17848*/       OPC_RecordChild2, // #1 = $src2
/*17849*/       OPC_RecordChild3, // #2 = $src3
/*17850*/       OPC_MoveChild, 3,
/*17852*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*17855*/       OPC_MoveParent,
/*17856*/       OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*17858*/       OPC_EmitConvertToTarget, 2,
/*17860*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PALIGNR64irr), 0,
                    1/*#VTs*/, MVT::x86mmx, 3/*#Ops*/, 0, 1, 3, 
                // Src: (intrinsic_wo_chain:x86mmx 219:iPTR, VR64:x86mmx:$src1, VR64:x86mmx:$src2, (imm:i8):$src3) - Complexity = 11
                // Dst: (MMX_PALIGNR64irr:x86mmx VR64:x86mmx:$src1, VR64:x86mmx:$src2, (imm:i8):$src3)
/*17870*/     0, /*End of Scope*/
/*17871*/   /*Scope*/ 71, /*->17943*/
/*17872*/     OPC_CheckInteger, 92|128,3/*476*/, 
/*17875*/     OPC_MoveParent,
/*17876*/     OPC_Scope, 42, /*->17920*/ // 2 children in Scope
/*17878*/       OPC_MoveChild, 1,
/*17880*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*17883*/       OPC_RecordMemRef,
/*17884*/       OPC_RecordNode, // #0 = 'ld' chained node
/*17885*/       OPC_CheckFoldableChainNode,
/*17886*/       OPC_RecordChild1, // #1 = $src1
/*17887*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*17889*/       OPC_CheckPredicate, 3, // Predicate_load
/*17891*/       OPC_MoveParent,
/*17892*/       OPC_RecordChild2, // #2 = $src2
/*17893*/       OPC_MoveChild, 2,
/*17895*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*17898*/       OPC_MoveParent,
/*17899*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*17901*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #3 #4 #5 #6 #7
/*17904*/       OPC_EmitMergeInputChains1_0,
/*17905*/       OPC_EmitConvertToTarget, 2,
/*17907*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PSHUFWmi), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::x86mmx, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                // Src: (intrinsic_wo_chain:x86mmx 476:iPTR, (ld:x86mmx addr:iPTR:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:i8):$src2) - Complexity = 33
                // Dst: (MMX_PSHUFWmi:x86mmx addr:iPTR:$src1, (imm:i8):$src2)
/*17920*/     /*Scope*/ 21, /*->17942*/
/*17921*/       OPC_RecordChild1, // #0 = $src1
/*17922*/       OPC_RecordChild2, // #1 = $src2
/*17923*/       OPC_MoveChild, 2,
/*17925*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*17928*/       OPC_MoveParent,
/*17929*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*17931*/       OPC_EmitConvertToTarget, 1,
/*17933*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PSHUFWri), 0,
                    1/*#VTs*/, MVT::x86mmx, 2/*#Ops*/, 0, 2, 
                // Src: (intrinsic_wo_chain:x86mmx 476:iPTR, VR64:x86mmx:$src1, (imm:i8):$src2) - Complexity = 11
                // Dst: (MMX_PSHUFWri:x86mmx VR64:x86mmx:$src1, (imm:i8):$src2)
/*17942*/     0, /*End of Scope*/
/*17943*/   /*Scope*/ 87, /*->18031*/
/*17944*/     OPC_CheckInteger, 35|128,2/*291*/, 
/*17947*/     OPC_MoveParent,
/*17948*/     OPC_Scope, 54, /*->18004*/ // 2 children in Scope
/*17950*/       OPC_MoveChild, 1,
/*17952*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*17955*/       OPC_RecordMemRef,
/*17956*/       OPC_RecordNode, // #0 = 'ld' chained node
/*17957*/       OPC_CheckFoldableChainNode,
/*17958*/       OPC_RecordChild1, // #1 = $src
/*17959*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*17961*/       OPC_CheckPredicate, 3, // Predicate_load
/*17963*/       OPC_MoveParent,
/*17964*/       OPC_Scope, 18, /*->17984*/ // 2 children in Scope
/*17966*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*17968*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*17971*/         OPC_EmitMergeInputChains1_0,
/*17972*/         OPC_MorphNodeTo, TARGET_VAL(X86::Int_VCVTSD2SIrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (intrinsic_wo_chain:i32 291:iPTR, (ld:v2f64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                  // Dst: (Int_VCVTSD2SIrm:i32 addr:iPTR:$src)
/*17984*/       /*Scope*/ 18, /*->18003*/
/*17985*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*17987*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*17990*/         OPC_EmitMergeInputChains1_0,
/*17991*/         OPC_MorphNodeTo, TARGET_VAL(X86::CVTSD2SIrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (intrinsic_wo_chain:i32 291:iPTR, (ld:v2f64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                  // Dst: (CVTSD2SIrm:i32 addr:iPTR:$src)
/*18003*/       0, /*End of Scope*/
/*18004*/     /*Scope*/ 25, /*->18030*/
/*18005*/       OPC_RecordChild1, // #0 = $src
/*18006*/       OPC_Scope, 10, /*->18018*/ // 2 children in Scope
/*18008*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*18010*/         OPC_MorphNodeTo, TARGET_VAL(X86::Int_VCVTSD2SIrr), 0,
                      1/*#VTs*/, MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:i32 291:iPTR, VR128:v2f64:$src) - Complexity = 8
                  // Dst: (Int_VCVTSD2SIrr:i32 VR128:v2f64:$src)
/*18018*/       /*Scope*/ 10, /*->18029*/
/*18019*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*18021*/         OPC_MorphNodeTo, TARGET_VAL(X86::CVTSD2SIrr), 0,
                      1/*#VTs*/, MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:i32 291:iPTR, VR128:v2f64:$src) - Complexity = 8
                  // Dst: (CVTSD2SIrr:i32 VR128:v2f64:$src)
/*18029*/       0, /*End of Scope*/
/*18030*/     0, /*End of Scope*/
/*18031*/   /*Scope*/ 87, /*->18119*/
/*18032*/     OPC_CheckInteger, 36|128,2/*292*/, 
/*18035*/     OPC_MoveParent,
/*18036*/     OPC_Scope, 54, /*->18092*/ // 2 children in Scope
/*18038*/       OPC_MoveChild, 1,
/*18040*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*18043*/       OPC_RecordMemRef,
/*18044*/       OPC_RecordNode, // #0 = 'ld' chained node
/*18045*/       OPC_CheckFoldableChainNode,
/*18046*/       OPC_RecordChild1, // #1 = $src
/*18047*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*18049*/       OPC_CheckPredicate, 3, // Predicate_load
/*18051*/       OPC_MoveParent,
/*18052*/       OPC_Scope, 18, /*->18072*/ // 2 children in Scope
/*18054*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*18056*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*18059*/         OPC_EmitMergeInputChains1_0,
/*18060*/         OPC_MorphNodeTo, TARGET_VAL(X86::Int_VCVTSD2SI64rm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (intrinsic_wo_chain:i64 292:iPTR, (ld:v2f64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                  // Dst: (Int_VCVTSD2SI64rm:i64 addr:iPTR:$src)
/*18072*/       /*Scope*/ 18, /*->18091*/
/*18073*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*18075*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*18078*/         OPC_EmitMergeInputChains1_0,
/*18079*/         OPC_MorphNodeTo, TARGET_VAL(X86::CVTSD2SI64rm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (intrinsic_wo_chain:i64 292:iPTR, (ld:v2f64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                  // Dst: (CVTSD2SI64rm:i64 addr:iPTR:$src)
/*18091*/       0, /*End of Scope*/
/*18092*/     /*Scope*/ 25, /*->18118*/
/*18093*/       OPC_RecordChild1, // #0 = $src
/*18094*/       OPC_Scope, 10, /*->18106*/ // 2 children in Scope
/*18096*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*18098*/         OPC_MorphNodeTo, TARGET_VAL(X86::Int_VCVTSD2SI64rr), 0,
                      1/*#VTs*/, MVT::i64, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:i64 292:iPTR, VR128:v2f64:$src) - Complexity = 8
                  // Dst: (Int_VCVTSD2SI64rr:i64 VR128:v2f64:$src)
/*18106*/       /*Scope*/ 10, /*->18117*/
/*18107*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*18109*/         OPC_MorphNodeTo, TARGET_VAL(X86::CVTSD2SI64rr), 0,
                      1/*#VTs*/, MVT::i64, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:i64 292:iPTR, VR128:v2f64:$src) - Complexity = 8
                  // Dst: (CVTSD2SI64rr:i64 VR128:v2f64:$src)
/*18117*/       0, /*End of Scope*/
/*18118*/     0, /*End of Scope*/
/*18119*/   /*Scope*/ 87, /*->18207*/
/*18120*/     OPC_CheckInteger, 82|128,3/*466*/, 
/*18123*/     OPC_MoveParent,
/*18124*/     OPC_Scope, 54, /*->18180*/ // 2 children in Scope
/*18126*/       OPC_MoveChild, 1,
/*18128*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*18131*/       OPC_RecordMemRef,
/*18132*/       OPC_RecordNode, // #0 = 'ld' chained node
/*18133*/       OPC_CheckFoldableChainNode,
/*18134*/       OPC_RecordChild1, // #1 = $src
/*18135*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*18137*/       OPC_CheckPredicate, 3, // Predicate_load
/*18139*/       OPC_MoveParent,
/*18140*/       OPC_Scope, 18, /*->18160*/ // 2 children in Scope
/*18142*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*18144*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*18147*/         OPC_EmitMergeInputChains1_0,
/*18148*/         OPC_MorphNodeTo, TARGET_VAL(X86::Int_VCVTTSS2SIrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (intrinsic_wo_chain:i32 466:iPTR, (ld:v4f32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                  // Dst: (Int_VCVTTSS2SIrm:i32 addr:iPTR:$src)
/*18160*/       /*Scope*/ 18, /*->18179*/
/*18161*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*18163*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*18166*/         OPC_EmitMergeInputChains1_0,
/*18167*/         OPC_MorphNodeTo, TARGET_VAL(X86::Int_CVTTSS2SIrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (intrinsic_wo_chain:i32 466:iPTR, (ld:v4f32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                  // Dst: (Int_CVTTSS2SIrm:i32 addr:iPTR:$src)
/*18179*/       0, /*End of Scope*/
/*18180*/     /*Scope*/ 25, /*->18206*/
/*18181*/       OPC_RecordChild1, // #0 = $src
/*18182*/       OPC_Scope, 10, /*->18194*/ // 2 children in Scope
/*18184*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*18186*/         OPC_MorphNodeTo, TARGET_VAL(X86::Int_VCVTTSS2SIrr), 0,
                      1/*#VTs*/, MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:i32 466:iPTR, VR128:v4f32:$src) - Complexity = 8
                  // Dst: (Int_VCVTTSS2SIrr:i32 VR128:v4f32:$src)
/*18194*/       /*Scope*/ 10, /*->18205*/
/*18195*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*18197*/         OPC_MorphNodeTo, TARGET_VAL(X86::Int_CVTTSS2SIrr), 0,
                      1/*#VTs*/, MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:i32 466:iPTR, VR128:v4f32:$src) - Complexity = 8
                  // Dst: (Int_CVTTSS2SIrr:i32 VR128:v4f32:$src)
/*18205*/       0, /*End of Scope*/
/*18206*/     0, /*End of Scope*/
/*18207*/   /*Scope*/ 87, /*->18295*/
/*18208*/     OPC_CheckInteger, 83|128,3/*467*/, 
/*18211*/     OPC_MoveParent,
/*18212*/     OPC_Scope, 54, /*->18268*/ // 2 children in Scope
/*18214*/       OPC_MoveChild, 1,
/*18216*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*18219*/       OPC_RecordMemRef,
/*18220*/       OPC_RecordNode, // #0 = 'ld' chained node
/*18221*/       OPC_CheckFoldableChainNode,
/*18222*/       OPC_RecordChild1, // #1 = $src
/*18223*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*18225*/       OPC_CheckPredicate, 3, // Predicate_load
/*18227*/       OPC_MoveParent,
/*18228*/       OPC_Scope, 18, /*->18248*/ // 2 children in Scope
/*18230*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*18232*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*18235*/         OPC_EmitMergeInputChains1_0,
/*18236*/         OPC_MorphNodeTo, TARGET_VAL(X86::Int_VCVTTSS2SI64rm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (intrinsic_wo_chain:i64 467:iPTR, (ld:v4f32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                  // Dst: (Int_VCVTTSS2SI64rm:i64 addr:iPTR:$src)
/*18248*/       /*Scope*/ 18, /*->18267*/
/*18249*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*18251*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*18254*/         OPC_EmitMergeInputChains1_0,
/*18255*/         OPC_MorphNodeTo, TARGET_VAL(X86::Int_CVTTSS2SI64rm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (intrinsic_wo_chain:i64 467:iPTR, (ld:v4f32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                  // Dst: (Int_CVTTSS2SI64rm:i64 addr:iPTR:$src)
/*18267*/       0, /*End of Scope*/
/*18268*/     /*Scope*/ 25, /*->18294*/
/*18269*/       OPC_RecordChild1, // #0 = $src
/*18270*/       OPC_Scope, 10, /*->18282*/ // 2 children in Scope
/*18272*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*18274*/         OPC_MorphNodeTo, TARGET_VAL(X86::Int_VCVTTSS2SI64rr), 0,
                      1/*#VTs*/, MVT::i64, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:i64 467:iPTR, VR128:v4f32:$src) - Complexity = 8
                  // Dst: (Int_VCVTTSS2SI64rr:i64 VR128:v4f32:$src)
/*18282*/       /*Scope*/ 10, /*->18293*/
/*18283*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*18285*/         OPC_MorphNodeTo, TARGET_VAL(X86::Int_CVTTSS2SI64rr), 0,
                      1/*#VTs*/, MVT::i64, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:i64 467:iPTR, VR128:v4f32:$src) - Complexity = 8
                  // Dst: (Int_CVTTSS2SI64rr:i64 VR128:v4f32:$src)
/*18293*/       0, /*End of Scope*/
/*18294*/     0, /*End of Scope*/
/*18295*/   /*Scope*/ 87, /*->18383*/
/*18296*/     OPC_CheckInteger, 43|128,2/*299*/, 
/*18299*/     OPC_MoveParent,
/*18300*/     OPC_Scope, 54, /*->18356*/ // 2 children in Scope
/*18302*/       OPC_MoveChild, 1,
/*18304*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*18307*/       OPC_RecordMemRef,
/*18308*/       OPC_RecordNode, // #0 = 'ld' chained node
/*18309*/       OPC_CheckFoldableChainNode,
/*18310*/       OPC_RecordChild1, // #1 = $src
/*18311*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*18313*/       OPC_CheckPredicate, 3, // Predicate_load
/*18315*/       OPC_MoveParent,
/*18316*/       OPC_Scope, 18, /*->18336*/ // 2 children in Scope
/*18318*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*18320*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*18323*/         OPC_EmitMergeInputChains1_0,
/*18324*/         OPC_MorphNodeTo, TARGET_VAL(X86::Int_VCVTTSD2SIrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (intrinsic_wo_chain:i32 299:iPTR, (ld:v2f64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                  // Dst: (Int_VCVTTSD2SIrm:i32 addr:iPTR:$src)
/*18336*/       /*Scope*/ 18, /*->18355*/
/*18337*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*18339*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*18342*/         OPC_EmitMergeInputChains1_0,
/*18343*/         OPC_MorphNodeTo, TARGET_VAL(X86::Int_CVTTSD2SIrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (intrinsic_wo_chain:i32 299:iPTR, (ld:v2f64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                  // Dst: (Int_CVTTSD2SIrm:i32 addr:iPTR:$src)
/*18355*/       0, /*End of Scope*/
/*18356*/     /*Scope*/ 25, /*->18382*/
/*18357*/       OPC_RecordChild1, // #0 = $src
/*18358*/       OPC_Scope, 10, /*->18370*/ // 2 children in Scope
/*18360*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*18362*/         OPC_MorphNodeTo, TARGET_VAL(X86::Int_VCVTTSD2SIrr), 0,
                      1/*#VTs*/, MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:i32 299:iPTR, VR128:v2f64:$src) - Complexity = 8
                  // Dst: (Int_VCVTTSD2SIrr:i32 VR128:v2f64:$src)
/*18370*/       /*Scope*/ 10, /*->18381*/
/*18371*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*18373*/         OPC_MorphNodeTo, TARGET_VAL(X86::Int_CVTTSD2SIrr), 0,
                      1/*#VTs*/, MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:i32 299:iPTR, VR128:v2f64:$src) - Complexity = 8
                  // Dst: (Int_CVTTSD2SIrr:i32 VR128:v2f64:$src)
/*18381*/       0, /*End of Scope*/
/*18382*/     0, /*End of Scope*/
/*18383*/   /*Scope*/ 87, /*->18471*/
/*18384*/     OPC_CheckInteger, 44|128,2/*300*/, 
/*18387*/     OPC_MoveParent,
/*18388*/     OPC_Scope, 54, /*->18444*/ // 2 children in Scope
/*18390*/       OPC_MoveChild, 1,
/*18392*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*18395*/       OPC_RecordMemRef,
/*18396*/       OPC_RecordNode, // #0 = 'ld' chained node
/*18397*/       OPC_CheckFoldableChainNode,
/*18398*/       OPC_RecordChild1, // #1 = $src
/*18399*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*18401*/       OPC_CheckPredicate, 3, // Predicate_load
/*18403*/       OPC_MoveParent,
/*18404*/       OPC_Scope, 18, /*->18424*/ // 2 children in Scope
/*18406*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*18408*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*18411*/         OPC_EmitMergeInputChains1_0,
/*18412*/         OPC_MorphNodeTo, TARGET_VAL(X86::Int_VCVTTSD2SI64rm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (intrinsic_wo_chain:i64 300:iPTR, (ld:v2f64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                  // Dst: (Int_VCVTTSD2SI64rm:i64 addr:iPTR:$src)
/*18424*/       /*Scope*/ 18, /*->18443*/
/*18425*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*18427*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*18430*/         OPC_EmitMergeInputChains1_0,
/*18431*/         OPC_MorphNodeTo, TARGET_VAL(X86::Int_CVTTSD2SI64rm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (intrinsic_wo_chain:i64 300:iPTR, (ld:v2f64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                  // Dst: (Int_CVTTSD2SI64rm:i64 addr:iPTR:$src)
/*18443*/       0, /*End of Scope*/
/*18444*/     /*Scope*/ 25, /*->18470*/
/*18445*/       OPC_RecordChild1, // #0 = $src
/*18446*/       OPC_Scope, 10, /*->18458*/ // 2 children in Scope
/*18448*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*18450*/         OPC_MorphNodeTo, TARGET_VAL(X86::Int_VCVTTSD2SI64rr), 0,
                      1/*#VTs*/, MVT::i64, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:i64 300:iPTR, VR128:v2f64:$src) - Complexity = 8
                  // Dst: (Int_VCVTTSD2SI64rr:i64 VR128:v2f64:$src)
/*18458*/       /*Scope*/ 10, /*->18469*/
/*18459*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*18461*/         OPC_MorphNodeTo, TARGET_VAL(X86::Int_CVTTSD2SI64rr), 0,
                      1/*#VTs*/, MVT::i64, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:i64 300:iPTR, VR128:v2f64:$src) - Complexity = 8
                  // Dst: (Int_CVTTSD2SI64rr:i64 VR128:v2f64:$src)
/*18469*/       0, /*End of Scope*/
/*18470*/     0, /*End of Scope*/
/*18471*/   /*Scope*/ 111, /*->18583*/
/*18472*/     OPC_CheckInteger, 78|128,3/*462*/, 
/*18475*/     OPC_MoveParent,
/*18476*/     OPC_Scope, 54, /*->18532*/ // 2 children in Scope
/*18478*/       OPC_MoveChild, 1,
/*18480*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*18483*/       OPC_RecordMemRef,
/*18484*/       OPC_RecordNode, // #0 = 'ld' chained node
/*18485*/       OPC_CheckFoldableChainNode,
/*18486*/       OPC_RecordChild1, // #1 = $src
/*18487*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*18489*/       OPC_CheckPredicate, 3, // Predicate_load
/*18491*/       OPC_MoveParent,
/*18492*/       OPC_Scope, 18, /*->18512*/ // 2 children in Scope
/*18494*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*18496*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*18499*/         OPC_EmitMergeInputChains1_0,
/*18500*/         OPC_MorphNodeTo, TARGET_VAL(X86::CVTSS2SIrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (intrinsic_wo_chain:i32 462:iPTR, (ld:v4f32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                  // Dst: (CVTSS2SIrm:i32 addr:iPTR:$src)
/*18512*/       /*Scope*/ 18, /*->18531*/
/*18513*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*18515*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*18518*/         OPC_EmitMergeInputChains1_0,
/*18519*/         OPC_MorphNodeTo, TARGET_VAL(X86::VCVTSS2SIrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (intrinsic_wo_chain:i32 462:iPTR, (ld:v4f32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                  // Dst: (VCVTSS2SIrm:i32 addr:iPTR:$src)
/*18531*/       0, /*End of Scope*/
/*18532*/     /*Scope*/ 49, /*->18582*/
/*18533*/       OPC_RecordChild1, // #0 = $src
/*18534*/       OPC_Scope, 22, /*->18558*/ // 2 children in Scope
/*18536*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*18538*/         OPC_EmitInteger, MVT::i32, X86::sub_ss,
/*18541*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      1/*#VTs*/, MVT::f32, 2/*#Ops*/, 0, 1,  // Results = #2 
/*18550*/         OPC_MorphNodeTo, TARGET_VAL(X86::CVTSS2SIrr), 0,
                      1/*#VTs*/, MVT::i32, 1/*#Ops*/, 2, 
                  // Src: (intrinsic_wo_chain:i32 462:iPTR, VR128:v4f32:$src) - Complexity = 8
                  // Dst: (CVTSS2SIrr:i32 (EXTRACT_SUBREG:f32 VR128:v4f32:$src, sub_ss:i32))
/*18558*/       /*Scope*/ 22, /*->18581*/
/*18559*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*18561*/         OPC_EmitInteger, MVT::i32, X86::sub_ss,
/*18564*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      1/*#VTs*/, MVT::f32, 2/*#Ops*/, 0, 1,  // Results = #2 
/*18573*/         OPC_MorphNodeTo, TARGET_VAL(X86::VCVTSS2SIrr), 0,
                      1/*#VTs*/, MVT::i32, 1/*#Ops*/, 2, 
                  // Src: (intrinsic_wo_chain:i32 462:iPTR, VR128:v4f32:$src) - Complexity = 8
                  // Dst: (VCVTSS2SIrr:i32 (EXTRACT_SUBREG:f32 VR128:v4f32:$src, sub_ss:i32))
/*18581*/       0, /*End of Scope*/
/*18582*/     0, /*End of Scope*/
/*18583*/   /*Scope*/ 111, /*->18695*/
/*18584*/     OPC_CheckInteger, 79|128,3/*463*/, 
/*18587*/     OPC_MoveParent,
/*18588*/     OPC_Scope, 54, /*->18644*/ // 2 children in Scope
/*18590*/       OPC_MoveChild, 1,
/*18592*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*18595*/       OPC_RecordMemRef,
/*18596*/       OPC_RecordNode, // #0 = 'ld' chained node
/*18597*/       OPC_CheckFoldableChainNode,
/*18598*/       OPC_RecordChild1, // #1 = $src
/*18599*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*18601*/       OPC_CheckPredicate, 3, // Predicate_load
/*18603*/       OPC_MoveParent,
/*18604*/       OPC_Scope, 18, /*->18624*/ // 2 children in Scope
/*18606*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*18608*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*18611*/         OPC_EmitMergeInputChains1_0,
/*18612*/         OPC_MorphNodeTo, TARGET_VAL(X86::CVTSS2SI64rm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (intrinsic_wo_chain:i64 463:iPTR, (ld:v4f32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                  // Dst: (CVTSS2SI64rm:i64 addr:iPTR:$src)
/*18624*/       /*Scope*/ 18, /*->18643*/
/*18625*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*18627*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*18630*/         OPC_EmitMergeInputChains1_0,
/*18631*/         OPC_MorphNodeTo, TARGET_VAL(X86::VCVTSS2SI64rm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (intrinsic_wo_chain:i64 463:iPTR, (ld:v4f32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                  // Dst: (VCVTSS2SI64rm:i64 addr:iPTR:$src)
/*18643*/       0, /*End of Scope*/
/*18644*/     /*Scope*/ 49, /*->18694*/
/*18645*/       OPC_RecordChild1, // #0 = $src
/*18646*/       OPC_Scope, 22, /*->18670*/ // 2 children in Scope
/*18648*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*18650*/         OPC_EmitInteger, MVT::i32, X86::sub_ss,
/*18653*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      1/*#VTs*/, MVT::f32, 2/*#Ops*/, 0, 1,  // Results = #2 
/*18662*/         OPC_MorphNodeTo, TARGET_VAL(X86::CVTSS2SI64rr), 0,
                      1/*#VTs*/, MVT::i64, 1/*#Ops*/, 2, 
                  // Src: (intrinsic_wo_chain:i64 463:iPTR, VR128:v4f32:$src) - Complexity = 8
                  // Dst: (CVTSS2SI64rr:i64 (EXTRACT_SUBREG:f32 VR128:v4f32:$src, sub_ss:i32))
/*18670*/       /*Scope*/ 22, /*->18693*/
/*18671*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*18673*/         OPC_EmitInteger, MVT::i32, X86::sub_ss,
/*18676*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      1/*#VTs*/, MVT::f32, 2/*#Ops*/, 0, 1,  // Results = #2 
/*18685*/         OPC_MorphNodeTo, TARGET_VAL(X86::VCVTSS2SI64rr), 0,
                      1/*#VTs*/, MVT::i64, 1/*#Ops*/, 2, 
                  // Src: (intrinsic_wo_chain:i64 463:iPTR, VR128:v4f32:$src) - Complexity = 8
                  // Dst: (VCVTSS2SI64rr:i64 (EXTRACT_SUBREG:f32 VR128:v4f32:$src, sub_ss:i32))
/*18693*/       0, /*End of Scope*/
/*18694*/     0, /*End of Scope*/
/*18695*/   /*Scope*/ 54, /*->18750*/
/*18696*/     OPC_CheckInteger, 45|128,3/*429*/, 
/*18699*/     OPC_MoveParent,
/*18700*/     OPC_RecordChild1, // #0 = $src1
/*18701*/     OPC_Scope, 33, /*->18736*/ // 2 children in Scope
/*18703*/       OPC_MoveChild, 2,
/*18705*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*18708*/       OPC_RecordMemRef,
/*18709*/       OPC_RecordNode, // #1 = 'ld' chained node
/*18710*/       OPC_CheckFoldableChainNode,
/*18711*/       OPC_RecordChild1, // #2 = $src2
/*18712*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*18714*/       OPC_CheckPredicate, 3, // Predicate_load
/*18716*/       OPC_MoveParent,
/*18717*/       OPC_CheckPatternPredicate, 11, // (Subtarget->hasSSE42())
/*18719*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*18722*/       OPC_EmitMergeInputChains1_1,
/*18723*/       OPC_MorphNodeTo, TARGET_VAL(X86::CRC32r32m8), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_wo_chain:i32 429:iPTR, GR32:i32:$src1, (ld:i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                // Dst: (CRC32r32m8:i32 GR32:i32:$src1, addr:iPTR:$src2)
/*18736*/     /*Scope*/ 12, /*->18749*/
/*18737*/       OPC_RecordChild2, // #1 = $src2
/*18738*/       OPC_CheckPatternPredicate, 11, // (Subtarget->hasSSE42())
/*18740*/       OPC_MorphNodeTo, TARGET_VAL(X86::CRC32r32r8), 0,
                    1/*#VTs*/, MVT::i32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:i32 429:iPTR, GR32:i32:$src1, GR8:i8:$src2) - Complexity = 8
                // Dst: (CRC32r32r8:i32 GR32:i32:$src1, GR8:i8:$src2)
/*18749*/     0, /*End of Scope*/
/*18750*/   /*Scope*/ 54, /*->18805*/
/*18751*/     OPC_CheckInteger, 43|128,3/*427*/, 
/*18754*/     OPC_MoveParent,
/*18755*/     OPC_RecordChild1, // #0 = $src1
/*18756*/     OPC_Scope, 33, /*->18791*/ // 2 children in Scope
/*18758*/       OPC_MoveChild, 2,
/*18760*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*18763*/       OPC_RecordMemRef,
/*18764*/       OPC_RecordNode, // #1 = 'ld' chained node
/*18765*/       OPC_CheckFoldableChainNode,
/*18766*/       OPC_RecordChild1, // #2 = $src2
/*18767*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*18769*/       OPC_CheckPredicate, 3, // Predicate_load
/*18771*/       OPC_MoveParent,
/*18772*/       OPC_CheckPatternPredicate, 11, // (Subtarget->hasSSE42())
/*18774*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*18777*/       OPC_EmitMergeInputChains1_1,
/*18778*/       OPC_MorphNodeTo, TARGET_VAL(X86::CRC32r32m16), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_wo_chain:i32 427:iPTR, GR32:i32:$src1, (ld:i16 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                // Dst: (CRC32r32m16:i32 GR32:i32:$src1, addr:iPTR:$src2)
/*18791*/     /*Scope*/ 12, /*->18804*/
/*18792*/       OPC_RecordChild2, // #1 = $src2
/*18793*/       OPC_CheckPatternPredicate, 11, // (Subtarget->hasSSE42())
/*18795*/       OPC_MorphNodeTo, TARGET_VAL(X86::CRC32r32r16), 0,
                    1/*#VTs*/, MVT::i32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:i32 427:iPTR, GR32:i32:$src1, GR16:i16:$src2) - Complexity = 8
                // Dst: (CRC32r32r16:i32 GR32:i32:$src1, GR16:i16:$src2)
/*18804*/     0, /*End of Scope*/
/*18805*/   /*Scope*/ 54, /*->18860*/
/*18806*/     OPC_CheckInteger, 44|128,3/*428*/, 
/*18809*/     OPC_MoveParent,
/*18810*/     OPC_RecordChild1, // #0 = $src1
/*18811*/     OPC_Scope, 33, /*->18846*/ // 2 children in Scope
/*18813*/       OPC_MoveChild, 2,
/*18815*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*18818*/       OPC_RecordMemRef,
/*18819*/       OPC_RecordNode, // #1 = 'ld' chained node
/*18820*/       OPC_CheckFoldableChainNode,
/*18821*/       OPC_RecordChild1, // #2 = $src2
/*18822*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*18824*/       OPC_CheckPredicate, 3, // Predicate_load
/*18826*/       OPC_MoveParent,
/*18827*/       OPC_CheckPatternPredicate, 11, // (Subtarget->hasSSE42())
/*18829*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*18832*/       OPC_EmitMergeInputChains1_1,
/*18833*/       OPC_MorphNodeTo, TARGET_VAL(X86::CRC32r32m32), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_wo_chain:i32 428:iPTR, GR32:i32:$src1, (ld:i32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                // Dst: (CRC32r32m32:i32 GR32:i32:$src1, addr:iPTR:$src2)
/*18846*/     /*Scope*/ 12, /*->18859*/
/*18847*/       OPC_RecordChild2, // #1 = $src2
/*18848*/       OPC_CheckPatternPredicate, 11, // (Subtarget->hasSSE42())
/*18850*/       OPC_MorphNodeTo, TARGET_VAL(X86::CRC32r32r32), 0,
                    1/*#VTs*/, MVT::i32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:i32 428:iPTR, GR32:i32:$src1, GR32:i32:$src2) - Complexity = 8
                // Dst: (CRC32r32r32:i32 GR32:i32:$src1, GR32:i32:$src2)
/*18859*/     0, /*End of Scope*/
/*18860*/   /*Scope*/ 54, /*->18915*/
/*18861*/     OPC_CheckInteger, 47|128,3/*431*/, 
/*18864*/     OPC_MoveParent,
/*18865*/     OPC_RecordChild1, // #0 = $src1
/*18866*/     OPC_Scope, 33, /*->18901*/ // 2 children in Scope
/*18868*/       OPC_MoveChild, 2,
/*18870*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*18873*/       OPC_RecordMemRef,
/*18874*/       OPC_RecordNode, // #1 = 'ld' chained node
/*18875*/       OPC_CheckFoldableChainNode,
/*18876*/       OPC_RecordChild1, // #2 = $src2
/*18877*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*18879*/       OPC_CheckPredicate, 3, // Predicate_load
/*18881*/       OPC_MoveParent,
/*18882*/       OPC_CheckPatternPredicate, 11, // (Subtarget->hasSSE42())
/*18884*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*18887*/       OPC_EmitMergeInputChains1_1,
/*18888*/       OPC_MorphNodeTo, TARGET_VAL(X86::CRC32r64m8), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_wo_chain:i64 431:iPTR, GR64:i64:$src1, (ld:i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                // Dst: (CRC32r64m8:i64 GR64:i64:$src1, addr:iPTR:$src2)
/*18901*/     /*Scope*/ 12, /*->18914*/
/*18902*/       OPC_RecordChild2, // #1 = $src2
/*18903*/       OPC_CheckPatternPredicate, 11, // (Subtarget->hasSSE42())
/*18905*/       OPC_MorphNodeTo, TARGET_VAL(X86::CRC32r64r8), 0,
                    1/*#VTs*/, MVT::i64, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:i64 431:iPTR, GR64:i64:$src1, GR8:i8:$src2) - Complexity = 8
                // Dst: (CRC32r64r8:i64 GR64:i64:$src1, GR8:i8:$src2)
/*18914*/     0, /*End of Scope*/
/*18915*/   /*Scope*/ 54, /*->18970*/
/*18916*/     OPC_CheckInteger, 46|128,3/*430*/, 
/*18919*/     OPC_MoveParent,
/*18920*/     OPC_RecordChild1, // #0 = $src1
/*18921*/     OPC_Scope, 33, /*->18956*/ // 2 children in Scope
/*18923*/       OPC_MoveChild, 2,
/*18925*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*18928*/       OPC_RecordMemRef,
/*18929*/       OPC_RecordNode, // #1 = 'ld' chained node
/*18930*/       OPC_CheckFoldableChainNode,
/*18931*/       OPC_RecordChild1, // #2 = $src2
/*18932*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*18934*/       OPC_CheckPredicate, 3, // Predicate_load
/*18936*/       OPC_MoveParent,
/*18937*/       OPC_CheckPatternPredicate, 11, // (Subtarget->hasSSE42())
/*18939*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*18942*/       OPC_EmitMergeInputChains1_1,
/*18943*/       OPC_MorphNodeTo, TARGET_VAL(X86::CRC32r64m64), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_wo_chain:i64 430:iPTR, GR64:i64:$src1, (ld:i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                // Dst: (CRC32r64m64:i64 GR64:i64:$src1, addr:iPTR:$src2)
/*18956*/     /*Scope*/ 12, /*->18969*/
/*18957*/       OPC_RecordChild2, // #1 = $src2
/*18958*/       OPC_CheckPatternPredicate, 11, // (Subtarget->hasSSE42())
/*18960*/       OPC_MorphNodeTo, TARGET_VAL(X86::CRC32r64r64), 0,
                    1/*#VTs*/, MVT::i64, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:i64 430:iPTR, GR64:i64:$src1, GR64:i64:$src2) - Complexity = 8
                // Dst: (CRC32r64r64:i64 GR64:i64:$src1, GR64:i64:$src2)
/*18969*/     0, /*End of Scope*/
/*18970*/   /*Scope*/ 53, /*->19024*/
/*18971*/     OPC_CheckInteger, 109|128,3/*493*/, 
/*18974*/     OPC_MoveParent,
/*18975*/     OPC_Scope, 34, /*->19011*/ // 2 children in Scope
/*18977*/       OPC_MoveChild, 1,
/*18979*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*18982*/       OPC_RecordMemRef,
/*18983*/       OPC_RecordNode, // #0 = 'ld' chained node
/*18984*/       OPC_CheckFoldableChainNode,
/*18985*/       OPC_RecordChild1, // #1 = $src
/*18986*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*18988*/       OPC_CheckPredicate, 3, // Predicate_load
/*18990*/       OPC_CheckPredicate, 22, // Predicate_memop64
/*18992*/       OPC_MoveParent,
/*18993*/       OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*18995*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*18998*/       OPC_EmitMergeInputChains1_0,
/*18999*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PABSBrm64), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::x86mmx, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (intrinsic_wo_chain:x86mmx 493:iPTR, (ld:x86mmx addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop64>>) - Complexity = 30
                // Dst: (MMX_PABSBrm64:x86mmx addr:iPTR:$src)
/*19011*/     /*Scope*/ 11, /*->19023*/
/*19012*/       OPC_RecordChild1, // #0 = $src
/*19013*/       OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*19015*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PABSBrr64), 0,
                    1/*#VTs*/, MVT::x86mmx, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:x86mmx 493:iPTR, VR64:x86mmx:$src) - Complexity = 8
                // Dst: (MMX_PABSBrr64:x86mmx VR64:x86mmx:$src)
/*19023*/     0, /*End of Scope*/
/*19024*/   /*Scope*/ 53, /*->19078*/
/*19025*/     OPC_CheckInteger, 113|128,3/*497*/, 
/*19028*/     OPC_MoveParent,
/*19029*/     OPC_Scope, 34, /*->19065*/ // 2 children in Scope
/*19031*/       OPC_MoveChild, 1,
/*19033*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*19036*/       OPC_RecordMemRef,
/*19037*/       OPC_RecordNode, // #0 = 'ld' chained node
/*19038*/       OPC_CheckFoldableChainNode,
/*19039*/       OPC_RecordChild1, // #1 = $src
/*19040*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*19042*/       OPC_CheckPredicate, 3, // Predicate_load
/*19044*/       OPC_CheckPredicate, 22, // Predicate_memop64
/*19046*/       OPC_MoveParent,
/*19047*/       OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*19049*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*19052*/       OPC_EmitMergeInputChains1_0,
/*19053*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PABSWrm64), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::x86mmx, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (intrinsic_wo_chain:x86mmx 497:iPTR, (ld:x86mmx addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop64>>) - Complexity = 30
                // Dst: (MMX_PABSWrm64:x86mmx addr:iPTR:$src)
/*19065*/     /*Scope*/ 11, /*->19077*/
/*19066*/       OPC_RecordChild1, // #0 = $src
/*19067*/       OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*19069*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PABSWrr64), 0,
                    1/*#VTs*/, MVT::x86mmx, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:x86mmx 497:iPTR, VR64:x86mmx:$src) - Complexity = 8
                // Dst: (MMX_PABSWrr64:x86mmx VR64:x86mmx:$src)
/*19077*/     0, /*End of Scope*/
/*19078*/   /*Scope*/ 53, /*->19132*/
/*19079*/     OPC_CheckInteger, 111|128,3/*495*/, 
/*19082*/     OPC_MoveParent,
/*19083*/     OPC_Scope, 34, /*->19119*/ // 2 children in Scope
/*19085*/       OPC_MoveChild, 1,
/*19087*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*19090*/       OPC_RecordMemRef,
/*19091*/       OPC_RecordNode, // #0 = 'ld' chained node
/*19092*/       OPC_CheckFoldableChainNode,
/*19093*/       OPC_RecordChild1, // #1 = $src
/*19094*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*19096*/       OPC_CheckPredicate, 3, // Predicate_load
/*19098*/       OPC_CheckPredicate, 22, // Predicate_memop64
/*19100*/       OPC_MoveParent,
/*19101*/       OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*19103*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*19106*/       OPC_EmitMergeInputChains1_0,
/*19107*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PABSDrm64), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::x86mmx, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (intrinsic_wo_chain:x86mmx 495:iPTR, (ld:x86mmx addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop64>>) - Complexity = 30
                // Dst: (MMX_PABSDrm64:x86mmx addr:iPTR:$src)
/*19119*/     /*Scope*/ 11, /*->19131*/
/*19120*/       OPC_RecordChild1, // #0 = $src
/*19121*/       OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*19123*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PABSDrr64), 0,
                    1/*#VTs*/, MVT::x86mmx, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:x86mmx 495:iPTR, VR64:x86mmx:$src) - Complexity = 8
                // Dst: (MMX_PABSDrr64:x86mmx VR64:x86mmx:$src)
/*19131*/     0, /*End of Scope*/
/*19132*/   /*Scope*/ 54, /*->19187*/
/*19133*/     OPC_CheckInteger, 83|128,1/*211*/, 
/*19136*/     OPC_MoveParent,
/*19137*/     OPC_RecordChild1, // #0 = $src1
/*19138*/     OPC_Scope, 33, /*->19173*/ // 2 children in Scope
/*19140*/       OPC_MoveChild, 2,
/*19142*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*19145*/       OPC_RecordMemRef,
/*19146*/       OPC_RecordNode, // #1 = 'ld' chained node
/*19147*/       OPC_CheckFoldableChainNode,
/*19148*/       OPC_RecordChild1, // #2 = $src2
/*19149*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*19151*/       OPC_CheckPredicate, 3, // Predicate_load
/*19153*/       OPC_MoveParent,
/*19154*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*19156*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*19159*/       OPC_EmitMergeInputChains1_1,
/*19160*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PADDBirm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_wo_chain:x86mmx 211:iPTR, VR64:x86mmx:$src1, (ld:x86mmx addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                // Dst: (MMX_PADDBirm:x86mmx VR64:x86mmx:$src1, addr:iPTR:$src2)
/*19173*/     /*Scope*/ 12, /*->19186*/
/*19174*/       OPC_RecordChild2, // #1 = $src2
/*19175*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*19177*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PADDBirr), 0,
                    1/*#VTs*/, MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:x86mmx 211:iPTR, VR64:x86mmx:$src1, VR64:x86mmx:$src2) - Complexity = 8
                // Dst: (MMX_PADDBirr:x86mmx VR64:x86mmx:$src1, VR64:x86mmx:$src2)
/*19186*/     0, /*End of Scope*/
/*19187*/   /*Scope*/ 54, /*->19242*/
/*19188*/     OPC_CheckInteger, 86|128,1/*214*/, 
/*19191*/     OPC_MoveParent,
/*19192*/     OPC_RecordChild1, // #0 = $src1
/*19193*/     OPC_Scope, 33, /*->19228*/ // 2 children in Scope
/*19195*/       OPC_MoveChild, 2,
/*19197*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*19200*/       OPC_RecordMemRef,
/*19201*/       OPC_RecordNode, // #1 = 'ld' chained node
/*19202*/       OPC_CheckFoldableChainNode,
/*19203*/       OPC_RecordChild1, // #2 = $src2
/*19204*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*19206*/       OPC_CheckPredicate, 3, // Predicate_load
/*19208*/       OPC_MoveParent,
/*19209*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*19211*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*19214*/       OPC_EmitMergeInputChains1_1,
/*19215*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PADDWirm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_wo_chain:x86mmx 214:iPTR, VR64:x86mmx:$src1, (ld:x86mmx addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                // Dst: (MMX_PADDWirm:x86mmx VR64:x86mmx:$src1, addr:iPTR:$src2)
/*19228*/     /*Scope*/ 12, /*->19241*/
/*19229*/       OPC_RecordChild2, // #1 = $src2
/*19230*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*19232*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PADDWirr), 0,
                    1/*#VTs*/, MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:x86mmx 214:iPTR, VR64:x86mmx:$src1, VR64:x86mmx:$src2) - Complexity = 8
                // Dst: (MMX_PADDWirr:x86mmx VR64:x86mmx:$src1, VR64:x86mmx:$src2)
/*19241*/     0, /*End of Scope*/
/*19242*/   /*Scope*/ 54, /*->19297*/
/*19243*/     OPC_CheckInteger, 84|128,1/*212*/, 
/*19246*/     OPC_MoveParent,
/*19247*/     OPC_RecordChild1, // #0 = $src1
/*19248*/     OPC_Scope, 33, /*->19283*/ // 2 children in Scope
/*19250*/       OPC_MoveChild, 2,
/*19252*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*19255*/       OPC_RecordMemRef,
/*19256*/       OPC_RecordNode, // #1 = 'ld' chained node
/*19257*/       OPC_CheckFoldableChainNode,
/*19258*/       OPC_RecordChild1, // #2 = $src2
/*19259*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*19261*/       OPC_CheckPredicate, 3, // Predicate_load
/*19263*/       OPC_MoveParent,
/*19264*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*19266*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*19269*/       OPC_EmitMergeInputChains1_1,
/*19270*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PADDDirm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_wo_chain:x86mmx 212:iPTR, VR64:x86mmx:$src1, (ld:x86mmx addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                // Dst: (MMX_PADDDirm:x86mmx VR64:x86mmx:$src1, addr:iPTR:$src2)
/*19283*/     /*Scope*/ 12, /*->19296*/
/*19284*/       OPC_RecordChild2, // #1 = $src2
/*19285*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*19287*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PADDDirr), 0,
                    1/*#VTs*/, MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:x86mmx 212:iPTR, VR64:x86mmx:$src1, VR64:x86mmx:$src2) - Complexity = 8
                // Dst: (MMX_PADDDirr:x86mmx VR64:x86mmx:$src1, VR64:x86mmx:$src2)
/*19296*/     0, /*End of Scope*/
/*19297*/   /*Scope*/ 54, /*->19352*/
/*19298*/     OPC_CheckInteger, 85|128,1/*213*/, 
/*19301*/     OPC_MoveParent,
/*19302*/     OPC_RecordChild1, // #0 = $src1
/*19303*/     OPC_Scope, 33, /*->19338*/ // 2 children in Scope
/*19305*/       OPC_MoveChild, 2,
/*19307*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*19310*/       OPC_RecordMemRef,
/*19311*/       OPC_RecordNode, // #1 = 'ld' chained node
/*19312*/       OPC_CheckFoldableChainNode,
/*19313*/       OPC_RecordChild1, // #2 = $src2
/*19314*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*19316*/       OPC_CheckPredicate, 3, // Predicate_load
/*19318*/       OPC_MoveParent,
/*19319*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*19321*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*19324*/       OPC_EmitMergeInputChains1_1,
/*19325*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PADDQirm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_wo_chain:x86mmx 213:iPTR, VR64:x86mmx:$src1, (ld:x86mmx addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                // Dst: (MMX_PADDQirm:x86mmx VR64:x86mmx:$src1, addr:iPTR:$src2)
/*19338*/     /*Scope*/ 12, /*->19351*/
/*19339*/       OPC_RecordChild2, // #1 = $src2
/*19340*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*19342*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PADDQirr), 0,
                    1/*#VTs*/, MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:x86mmx 213:iPTR, VR64:x86mmx:$src1, VR64:x86mmx:$src2) - Complexity = 8
                // Dst: (MMX_PADDQirr:x86mmx VR64:x86mmx:$src1, VR64:x86mmx:$src2)
/*19351*/     0, /*End of Scope*/
/*19352*/   /*Scope*/ 90, /*->19443*/
/*19353*/     OPC_CheckInteger, 87|128,1/*215*/, 
/*19356*/     OPC_MoveParent,
/*19357*/     OPC_Scope, 34, /*->19393*/ // 3 children in Scope
/*19359*/       OPC_RecordChild1, // #0 = $src1
/*19360*/       OPC_MoveChild, 2,
/*19362*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*19365*/       OPC_RecordMemRef,
/*19366*/       OPC_RecordNode, // #1 = 'ld' chained node
/*19367*/       OPC_CheckFoldableChainNode,
/*19368*/       OPC_RecordChild1, // #2 = $src2
/*19369*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*19371*/       OPC_CheckPredicate, 3, // Predicate_load
/*19373*/       OPC_MoveParent,
/*19374*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*19376*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*19379*/       OPC_EmitMergeInputChains1_1,
/*19380*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PADDSBirm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_wo_chain:x86mmx 215:iPTR, VR64:x86mmx:$src1, (ld:x86mmx addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                // Dst: (MMX_PADDSBirm:x86mmx VR64:x86mmx:$src1, addr:iPTR:$src2)
/*19393*/     /*Scope*/ 34, /*->19428*/
/*19394*/       OPC_MoveChild, 1,
/*19396*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*19399*/       OPC_RecordMemRef,
/*19400*/       OPC_RecordNode, // #0 = 'ld' chained node
/*19401*/       OPC_CheckFoldableChainNode,
/*19402*/       OPC_RecordChild1, // #1 = $src2
/*19403*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*19405*/       OPC_CheckPredicate, 3, // Predicate_load
/*19407*/       OPC_MoveParent,
/*19408*/       OPC_RecordChild2, // #2 = $src1
/*19409*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*19411*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*19414*/       OPC_EmitMergeInputChains1_0,
/*19415*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PADDSBirm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::x86mmx, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_wo_chain:x86mmx 215:iPTR, (ld:x86mmx addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR64:x86mmx:$src1) - Complexity = 30
                // Dst: (MMX_PADDSBirm:x86mmx VR64:x86mmx:$src1, addr:iPTR:$src2)
/*19428*/     /*Scope*/ 13, /*->19442*/
/*19429*/       OPC_RecordChild1, // #0 = $src1
/*19430*/       OPC_RecordChild2, // #1 = $src2
/*19431*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*19433*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PADDSBirr), 0,
                    1/*#VTs*/, MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:x86mmx 215:iPTR, VR64:x86mmx:$src1, VR64:x86mmx:$src2) - Complexity = 8
                // Dst: (MMX_PADDSBirr:x86mmx VR64:x86mmx:$src1, VR64:x86mmx:$src2)
/*19442*/     0, /*End of Scope*/
/*19443*/   /*Scope*/ 90, /*->19534*/
/*19444*/     OPC_CheckInteger, 88|128,1/*216*/, 
/*19447*/     OPC_MoveParent,
/*19448*/     OPC_Scope, 34, /*->19484*/ // 3 children in Scope
/*19450*/       OPC_RecordChild1, // #0 = $src1
/*19451*/       OPC_MoveChild, 2,
/*19453*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*19456*/       OPC_RecordMemRef,
/*19457*/       OPC_RecordNode, // #1 = 'ld' chained node
/*19458*/       OPC_CheckFoldableChainNode,
/*19459*/       OPC_RecordChild1, // #2 = $src2
/*19460*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*19462*/       OPC_CheckPredicate, 3, // Predicate_load
/*19464*/       OPC_MoveParent,
/*19465*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*19467*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*19470*/       OPC_EmitMergeInputChains1_1,
/*19471*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PADDSWirm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_wo_chain:x86mmx 216:iPTR, VR64:x86mmx:$src1, (ld:x86mmx addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                // Dst: (MMX_PADDSWirm:x86mmx VR64:x86mmx:$src1, addr:iPTR:$src2)
/*19484*/     /*Scope*/ 34, /*->19519*/
/*19485*/       OPC_MoveChild, 1,
/*19487*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*19490*/       OPC_RecordMemRef,
/*19491*/       OPC_RecordNode, // #0 = 'ld' chained node
/*19492*/       OPC_CheckFoldableChainNode,
/*19493*/       OPC_RecordChild1, // #1 = $src2
/*19494*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*19496*/       OPC_CheckPredicate, 3, // Predicate_load
/*19498*/       OPC_MoveParent,
/*19499*/       OPC_RecordChild2, // #2 = $src1
/*19500*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*19502*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*19505*/       OPC_EmitMergeInputChains1_0,
/*19506*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PADDSWirm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::x86mmx, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_wo_chain:x86mmx 216:iPTR, (ld:x86mmx addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR64:x86mmx:$src1) - Complexity = 30
                // Dst: (MMX_PADDSWirm:x86mmx VR64:x86mmx:$src1, addr:iPTR:$src2)
/*19519*/     /*Scope*/ 13, /*->19533*/
/*19520*/       OPC_RecordChild1, // #0 = $src1
/*19521*/       OPC_RecordChild2, // #1 = $src2
/*19522*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*19524*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PADDSWirr), 0,
                    1/*#VTs*/, MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:x86mmx 216:iPTR, VR64:x86mmx:$src1, VR64:x86mmx:$src2) - Complexity = 8
                // Dst: (MMX_PADDSWirr:x86mmx VR64:x86mmx:$src1, VR64:x86mmx:$src2)
/*19533*/     0, /*End of Scope*/
/*19534*/   /*Scope*/ 90, /*->19625*/
/*19535*/     OPC_CheckInteger, 89|128,1/*217*/, 
/*19538*/     OPC_MoveParent,
/*19539*/     OPC_Scope, 34, /*->19575*/ // 3 children in Scope
/*19541*/       OPC_RecordChild1, // #0 = $src1
/*19542*/       OPC_MoveChild, 2,
/*19544*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*19547*/       OPC_RecordMemRef,
/*19548*/       OPC_RecordNode, // #1 = 'ld' chained node
/*19549*/       OPC_CheckFoldableChainNode,
/*19550*/       OPC_RecordChild1, // #2 = $src2
/*19551*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*19553*/       OPC_CheckPredicate, 3, // Predicate_load
/*19555*/       OPC_MoveParent,
/*19556*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*19558*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*19561*/       OPC_EmitMergeInputChains1_1,
/*19562*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PADDUSBirm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_wo_chain:x86mmx 217:iPTR, VR64:x86mmx:$src1, (ld:x86mmx addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                // Dst: (MMX_PADDUSBirm:x86mmx VR64:x86mmx:$src1, addr:iPTR:$src2)
/*19575*/     /*Scope*/ 34, /*->19610*/
/*19576*/       OPC_MoveChild, 1,
/*19578*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*19581*/       OPC_RecordMemRef,
/*19582*/       OPC_RecordNode, // #0 = 'ld' chained node
/*19583*/       OPC_CheckFoldableChainNode,
/*19584*/       OPC_RecordChild1, // #1 = $src2
/*19585*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*19587*/       OPC_CheckPredicate, 3, // Predicate_load
/*19589*/       OPC_MoveParent,
/*19590*/       OPC_RecordChild2, // #2 = $src1
/*19591*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*19593*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*19596*/       OPC_EmitMergeInputChains1_0,
/*19597*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PADDUSBirm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::x86mmx, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_wo_chain:x86mmx 217:iPTR, (ld:x86mmx addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR64:x86mmx:$src1) - Complexity = 30
                // Dst: (MMX_PADDUSBirm:x86mmx VR64:x86mmx:$src1, addr:iPTR:$src2)
/*19610*/     /*Scope*/ 13, /*->19624*/
/*19611*/       OPC_RecordChild1, // #0 = $src1
/*19612*/       OPC_RecordChild2, // #1 = $src2
/*19613*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*19615*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PADDUSBirr), 0,
                    1/*#VTs*/, MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:x86mmx 217:iPTR, VR64:x86mmx:$src1, VR64:x86mmx:$src2) - Complexity = 8
                // Dst: (MMX_PADDUSBirr:x86mmx VR64:x86mmx:$src1, VR64:x86mmx:$src2)
/*19624*/     0, /*End of Scope*/
/*19625*/   /*Scope*/ 90, /*->19716*/
/*19626*/     OPC_CheckInteger, 90|128,1/*218*/, 
/*19629*/     OPC_MoveParent,
/*19630*/     OPC_Scope, 34, /*->19666*/ // 3 children in Scope
/*19632*/       OPC_RecordChild1, // #0 = $src1
/*19633*/       OPC_MoveChild, 2,
/*19635*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*19638*/       OPC_RecordMemRef,
/*19639*/       OPC_RecordNode, // #1 = 'ld' chained node
/*19640*/       OPC_CheckFoldableChainNode,
/*19641*/       OPC_RecordChild1, // #2 = $src2
/*19642*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*19644*/       OPC_CheckPredicate, 3, // Predicate_load
/*19646*/       OPC_MoveParent,
/*19647*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*19649*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*19652*/       OPC_EmitMergeInputChains1_1,
/*19653*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PADDUSWirm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_wo_chain:x86mmx 218:iPTR, VR64:x86mmx:$src1, (ld:x86mmx addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                // Dst: (MMX_PADDUSWirm:x86mmx VR64:x86mmx:$src1, addr:iPTR:$src2)
/*19666*/     /*Scope*/ 34, /*->19701*/
/*19667*/       OPC_MoveChild, 1,
/*19669*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*19672*/       OPC_RecordMemRef,
/*19673*/       OPC_RecordNode, // #0 = 'ld' chained node
/*19674*/       OPC_CheckFoldableChainNode,
/*19675*/       OPC_RecordChild1, // #1 = $src2
/*19676*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*19678*/       OPC_CheckPredicate, 3, // Predicate_load
/*19680*/       OPC_MoveParent,
/*19681*/       OPC_RecordChild2, // #2 = $src1
/*19682*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*19684*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*19687*/       OPC_EmitMergeInputChains1_0,
/*19688*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PADDUSWirm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::x86mmx, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_wo_chain:x86mmx 218:iPTR, (ld:x86mmx addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR64:x86mmx:$src1) - Complexity = 30
                // Dst: (MMX_PADDUSWirm:x86mmx VR64:x86mmx:$src1, addr:iPTR:$src2)
/*19701*/     /*Scope*/ 13, /*->19715*/
/*19702*/       OPC_RecordChild1, // #0 = $src1
/*19703*/       OPC_RecordChild2, // #1 = $src2
/*19704*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*19706*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PADDUSWirr), 0,
                    1/*#VTs*/, MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:x86mmx 218:iPTR, VR64:x86mmx:$src1, VR64:x86mmx:$src2) - Complexity = 8
                // Dst: (MMX_PADDUSWirr:x86mmx VR64:x86mmx:$src1, VR64:x86mmx:$src2)
/*19715*/     0, /*End of Scope*/
/*19716*/   /*Scope*/ 56, /*->19773*/
/*19717*/     OPC_CheckInteger, 119|128,3/*503*/, 
/*19720*/     OPC_MoveParent,
/*19721*/     OPC_RecordChild1, // #0 = $src1
/*19722*/     OPC_Scope, 35, /*->19759*/ // 2 children in Scope
/*19724*/       OPC_MoveChild, 2,
/*19726*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*19729*/       OPC_RecordMemRef,
/*19730*/       OPC_RecordNode, // #1 = 'ld' chained node
/*19731*/       OPC_CheckFoldableChainNode,
/*19732*/       OPC_RecordChild1, // #2 = $src2
/*19733*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*19735*/       OPC_CheckPredicate, 3, // Predicate_load
/*19737*/       OPC_CheckPredicate, 22, // Predicate_memop64
/*19739*/       OPC_MoveParent,
/*19740*/       OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*19742*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*19745*/       OPC_EmitMergeInputChains1_1,
/*19746*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PHADDWrm64), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_wo_chain:x86mmx 503:iPTR, VR64:x86mmx:$src1, (ld:x86mmx addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop64>>) - Complexity = 30
                // Dst: (MMX_PHADDWrm64:x86mmx VR64:x86mmx:$src1, addr:iPTR:$src2)
/*19759*/     /*Scope*/ 12, /*->19772*/
/*19760*/       OPC_RecordChild2, // #1 = $src2
/*19761*/       OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*19763*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PHADDWrr64), 0,
                    1/*#VTs*/, MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:x86mmx 503:iPTR, VR64:x86mmx:$src1, VR64:x86mmx:$src2) - Complexity = 8
                // Dst: (MMX_PHADDWrr64:x86mmx VR64:x86mmx:$src1, VR64:x86mmx:$src2)
/*19772*/     0, /*End of Scope*/
/*19773*/   /*Scope*/ 56, /*->19830*/
/*19774*/     OPC_CheckInteger, 115|128,3/*499*/, 
/*19777*/     OPC_MoveParent,
/*19778*/     OPC_RecordChild1, // #0 = $src1
/*19779*/     OPC_Scope, 35, /*->19816*/ // 2 children in Scope
/*19781*/       OPC_MoveChild, 2,
/*19783*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*19786*/       OPC_RecordMemRef,
/*19787*/       OPC_RecordNode, // #1 = 'ld' chained node
/*19788*/       OPC_CheckFoldableChainNode,
/*19789*/       OPC_RecordChild1, // #2 = $src2
/*19790*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*19792*/       OPC_CheckPredicate, 3, // Predicate_load
/*19794*/       OPC_CheckPredicate, 22, // Predicate_memop64
/*19796*/       OPC_MoveParent,
/*19797*/       OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*19799*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*19802*/       OPC_EmitMergeInputChains1_1,
/*19803*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PHADDrm64), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_wo_chain:x86mmx 499:iPTR, VR64:x86mmx:$src1, (ld:x86mmx addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop64>>) - Complexity = 30
                // Dst: (MMX_PHADDrm64:x86mmx VR64:x86mmx:$src1, addr:iPTR:$src2)
/*19816*/     /*Scope*/ 12, /*->19829*/
/*19817*/       OPC_RecordChild2, // #1 = $src2
/*19818*/       OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*19820*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PHADDrr64), 0,
                    1/*#VTs*/, MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:x86mmx 499:iPTR, VR64:x86mmx:$src1, VR64:x86mmx:$src2) - Complexity = 8
                // Dst: (MMX_PHADDrr64:x86mmx VR64:x86mmx:$src1, VR64:x86mmx:$src2)
/*19829*/     0, /*End of Scope*/
/*19830*/   /*Scope*/ 56, /*->19887*/
/*19831*/     OPC_CheckInteger, 117|128,3/*501*/, 
/*19834*/     OPC_MoveParent,
/*19835*/     OPC_RecordChild1, // #0 = $src1
/*19836*/     OPC_Scope, 35, /*->19873*/ // 2 children in Scope
/*19838*/       OPC_MoveChild, 2,
/*19840*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*19843*/       OPC_RecordMemRef,
/*19844*/       OPC_RecordNode, // #1 = 'ld' chained node
/*19845*/       OPC_CheckFoldableChainNode,
/*19846*/       OPC_RecordChild1, // #2 = $src2
/*19847*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*19849*/       OPC_CheckPredicate, 3, // Predicate_load
/*19851*/       OPC_CheckPredicate, 22, // Predicate_memop64
/*19853*/       OPC_MoveParent,
/*19854*/       OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*19856*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*19859*/       OPC_EmitMergeInputChains1_1,
/*19860*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PHADDSWrm64), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_wo_chain:x86mmx 501:iPTR, VR64:x86mmx:$src1, (ld:x86mmx addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop64>>) - Complexity = 30
                // Dst: (MMX_PHADDSWrm64:x86mmx VR64:x86mmx:$src1, addr:iPTR:$src2)
/*19873*/     /*Scope*/ 12, /*->19886*/
/*19874*/       OPC_RecordChild2, // #1 = $src2
/*19875*/       OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*19877*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PHADDSWrr64), 0,
                    1/*#VTs*/, MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:x86mmx 501:iPTR, VR64:x86mmx:$src1, VR64:x86mmx:$src2) - Complexity = 8
                // Dst: (MMX_PHADDSWrr64:x86mmx VR64:x86mmx:$src1, VR64:x86mmx:$src2)
/*19886*/     0, /*End of Scope*/
/*19887*/   /*Scope*/ 54, /*->19942*/
/*19888*/     OPC_CheckInteger, 4|128,2/*260*/, 
/*19891*/     OPC_MoveParent,
/*19892*/     OPC_RecordChild1, // #0 = $src1
/*19893*/     OPC_Scope, 33, /*->19928*/ // 2 children in Scope
/*19895*/       OPC_MoveChild, 2,
/*19897*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*19900*/       OPC_RecordMemRef,
/*19901*/       OPC_RecordNode, // #1 = 'ld' chained node
/*19902*/       OPC_CheckFoldableChainNode,
/*19903*/       OPC_RecordChild1, // #2 = $src2
/*19904*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*19906*/       OPC_CheckPredicate, 3, // Predicate_load
/*19908*/       OPC_MoveParent,
/*19909*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*19911*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*19914*/       OPC_EmitMergeInputChains1_1,
/*19915*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PSUBBirm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_wo_chain:x86mmx 260:iPTR, VR64:x86mmx:$src1, (ld:x86mmx addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                // Dst: (MMX_PSUBBirm:x86mmx VR64:x86mmx:$src1, addr:iPTR:$src2)
/*19928*/     /*Scope*/ 12, /*->19941*/
/*19929*/       OPC_RecordChild2, // #1 = $src2
/*19930*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*19932*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PSUBBirr), 0,
                    1/*#VTs*/, MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:x86mmx 260:iPTR, VR64:x86mmx:$src1, VR64:x86mmx:$src2) - Complexity = 8
                // Dst: (MMX_PSUBBirr:x86mmx VR64:x86mmx:$src1, VR64:x86mmx:$src2)
/*19941*/     0, /*End of Scope*/
/*19942*/   /*Scope*/ 54, /*->19997*/
/*19943*/     OPC_CheckInteger, 7|128,2/*263*/, 
/*19946*/     OPC_MoveParent,
/*19947*/     OPC_RecordChild1, // #0 = $src1
/*19948*/     OPC_Scope, 33, /*->19983*/ // 2 children in Scope
/*19950*/       OPC_MoveChild, 2,
/*19952*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*19955*/       OPC_RecordMemRef,
/*19956*/       OPC_RecordNode, // #1 = 'ld' chained node
/*19957*/       OPC_CheckFoldableChainNode,
/*19958*/       OPC_RecordChild1, // #2 = $src2
/*19959*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*19961*/       OPC_CheckPredicate, 3, // Predicate_load
/*19963*/       OPC_MoveParent,
/*19964*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*19966*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*19969*/       OPC_EmitMergeInputChains1_1,
/*19970*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PSUBWirm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_wo_chain:x86mmx 263:iPTR, VR64:x86mmx:$src1, (ld:x86mmx addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                // Dst: (MMX_PSUBWirm:x86mmx VR64:x86mmx:$src1, addr:iPTR:$src2)
/*19983*/     /*Scope*/ 12, /*->19996*/
/*19984*/       OPC_RecordChild2, // #1 = $src2
/*19985*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*19987*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PSUBWirr), 0,
                    1/*#VTs*/, MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:x86mmx 263:iPTR, VR64:x86mmx:$src1, VR64:x86mmx:$src2) - Complexity = 8
                // Dst: (MMX_PSUBWirr:x86mmx VR64:x86mmx:$src1, VR64:x86mmx:$src2)
/*19996*/     0, /*End of Scope*/
/*19997*/   /*Scope*/ 54, /*->20052*/
/*19998*/     OPC_CheckInteger, 5|128,2/*261*/, 
/*20001*/     OPC_MoveParent,
/*20002*/     OPC_RecordChild1, // #0 = $src1
/*20003*/     OPC_Scope, 33, /*->20038*/ // 2 children in Scope
/*20005*/       OPC_MoveChild, 2,
/*20007*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*20010*/       OPC_RecordMemRef,
/*20011*/       OPC_RecordNode, // #1 = 'ld' chained node
/*20012*/       OPC_CheckFoldableChainNode,
/*20013*/       OPC_RecordChild1, // #2 = $src2
/*20014*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*20016*/       OPC_CheckPredicate, 3, // Predicate_load
/*20018*/       OPC_MoveParent,
/*20019*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*20021*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*20024*/       OPC_EmitMergeInputChains1_1,
/*20025*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PSUBDirm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_wo_chain:x86mmx 261:iPTR, VR64:x86mmx:$src1, (ld:x86mmx addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                // Dst: (MMX_PSUBDirm:x86mmx VR64:x86mmx:$src1, addr:iPTR:$src2)
/*20038*/     /*Scope*/ 12, /*->20051*/
/*20039*/       OPC_RecordChild2, // #1 = $src2
/*20040*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*20042*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PSUBDirr), 0,
                    1/*#VTs*/, MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:x86mmx 261:iPTR, VR64:x86mmx:$src1, VR64:x86mmx:$src2) - Complexity = 8
                // Dst: (MMX_PSUBDirr:x86mmx VR64:x86mmx:$src1, VR64:x86mmx:$src2)
/*20051*/     0, /*End of Scope*/
/*20052*/   /*Scope*/ 54, /*->20107*/
/*20053*/     OPC_CheckInteger, 6|128,2/*262*/, 
/*20056*/     OPC_MoveParent,
/*20057*/     OPC_RecordChild1, // #0 = $src1
/*20058*/     OPC_Scope, 33, /*->20093*/ // 2 children in Scope
/*20060*/       OPC_MoveChild, 2,
/*20062*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*20065*/       OPC_RecordMemRef,
/*20066*/       OPC_RecordNode, // #1 = 'ld' chained node
/*20067*/       OPC_CheckFoldableChainNode,
/*20068*/       OPC_RecordChild1, // #2 = $src2
/*20069*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*20071*/       OPC_CheckPredicate, 3, // Predicate_load
/*20073*/       OPC_MoveParent,
/*20074*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*20076*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*20079*/       OPC_EmitMergeInputChains1_1,
/*20080*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PSUBQirm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_wo_chain:x86mmx 262:iPTR, VR64:x86mmx:$src1, (ld:x86mmx addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                // Dst: (MMX_PSUBQirm:x86mmx VR64:x86mmx:$src1, addr:iPTR:$src2)
/*20093*/     /*Scope*/ 12, /*->20106*/
/*20094*/       OPC_RecordChild2, // #1 = $src2
/*20095*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*20097*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PSUBQirr), 0,
                    1/*#VTs*/, MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:x86mmx 262:iPTR, VR64:x86mmx:$src1, VR64:x86mmx:$src2) - Complexity = 8
                // Dst: (MMX_PSUBQirr:x86mmx VR64:x86mmx:$src1, VR64:x86mmx:$src2)
/*20106*/     0, /*End of Scope*/
/*20107*/   /*Scope*/ 54, /*->20162*/
/*20108*/     OPC_CheckInteger, 8|128,2/*264*/, 
/*20111*/     OPC_MoveParent,
/*20112*/     OPC_RecordChild1, // #0 = $src1
/*20113*/     OPC_Scope, 33, /*->20148*/ // 2 children in Scope
/*20115*/       OPC_MoveChild, 2,
/*20117*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*20120*/       OPC_RecordMemRef,
/*20121*/       OPC_RecordNode, // #1 = 'ld' chained node
/*20122*/       OPC_CheckFoldableChainNode,
/*20123*/       OPC_RecordChild1, // #2 = $src2
/*20124*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*20126*/       OPC_CheckPredicate, 3, // Predicate_load
/*20128*/       OPC_MoveParent,
/*20129*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*20131*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*20134*/       OPC_EmitMergeInputChains1_1,
/*20135*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PSUBSBirm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_wo_chain:x86mmx 264:iPTR, VR64:x86mmx:$src1, (ld:x86mmx addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                // Dst: (MMX_PSUBSBirm:x86mmx VR64:x86mmx:$src1, addr:iPTR:$src2)
/*20148*/     /*Scope*/ 12, /*->20161*/
/*20149*/       OPC_RecordChild2, // #1 = $src2
/*20150*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*20152*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PSUBSBirr), 0,
                    1/*#VTs*/, MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:x86mmx 264:iPTR, VR64:x86mmx:$src1, VR64:x86mmx:$src2) - Complexity = 8
                // Dst: (MMX_PSUBSBirr:x86mmx VR64:x86mmx:$src1, VR64:x86mmx:$src2)
/*20161*/     0, /*End of Scope*/
/*20162*/   /*Scope*/ 54, /*->20217*/
/*20163*/     OPC_CheckInteger, 9|128,2/*265*/, 
/*20166*/     OPC_MoveParent,
/*20167*/     OPC_RecordChild1, // #0 = $src1
/*20168*/     OPC_Scope, 33, /*->20203*/ // 2 children in Scope
/*20170*/       OPC_MoveChild, 2,
/*20172*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*20175*/       OPC_RecordMemRef,
/*20176*/       OPC_RecordNode, // #1 = 'ld' chained node
/*20177*/       OPC_CheckFoldableChainNode,
/*20178*/       OPC_RecordChild1, // #2 = $src2
/*20179*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*20181*/       OPC_CheckPredicate, 3, // Predicate_load
/*20183*/       OPC_MoveParent,
/*20184*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*20186*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*20189*/       OPC_EmitMergeInputChains1_1,
/*20190*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PSUBSWirm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_wo_chain:x86mmx 265:iPTR, VR64:x86mmx:$src1, (ld:x86mmx addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                // Dst: (MMX_PSUBSWirm:x86mmx VR64:x86mmx:$src1, addr:iPTR:$src2)
/*20203*/     /*Scope*/ 12, /*->20216*/
/*20204*/       OPC_RecordChild2, // #1 = $src2
/*20205*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*20207*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PSUBSWirr), 0,
                    1/*#VTs*/, MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:x86mmx 265:iPTR, VR64:x86mmx:$src1, VR64:x86mmx:$src2) - Complexity = 8
                // Dst: (MMX_PSUBSWirr:x86mmx VR64:x86mmx:$src1, VR64:x86mmx:$src2)
/*20216*/     0, /*End of Scope*/
/*20217*/   /*Scope*/ 54, /*->20272*/
/*20218*/     OPC_CheckInteger, 10|128,2/*266*/, 
/*20221*/     OPC_MoveParent,
/*20222*/     OPC_RecordChild1, // #0 = $src1
/*20223*/     OPC_Scope, 33, /*->20258*/ // 2 children in Scope
/*20225*/       OPC_MoveChild, 2,
/*20227*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*20230*/       OPC_RecordMemRef,
/*20231*/       OPC_RecordNode, // #1 = 'ld' chained node
/*20232*/       OPC_CheckFoldableChainNode,
/*20233*/       OPC_RecordChild1, // #2 = $src2
/*20234*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*20236*/       OPC_CheckPredicate, 3, // Predicate_load
/*20238*/       OPC_MoveParent,
/*20239*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*20241*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*20244*/       OPC_EmitMergeInputChains1_1,
/*20245*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PSUBUSBirm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_wo_chain:x86mmx 266:iPTR, VR64:x86mmx:$src1, (ld:x86mmx addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                // Dst: (MMX_PSUBUSBirm:x86mmx VR64:x86mmx:$src1, addr:iPTR:$src2)
/*20258*/     /*Scope*/ 12, /*->20271*/
/*20259*/       OPC_RecordChild2, // #1 = $src2
/*20260*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*20262*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PSUBUSBirr), 0,
                    1/*#VTs*/, MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:x86mmx 266:iPTR, VR64:x86mmx:$src1, VR64:x86mmx:$src2) - Complexity = 8
                // Dst: (MMX_PSUBUSBirr:x86mmx VR64:x86mmx:$src1, VR64:x86mmx:$src2)
/*20271*/     0, /*End of Scope*/
/*20272*/   /*Scope*/ 54, /*->20327*/
/*20273*/     OPC_CheckInteger, 11|128,2/*267*/, 
/*20276*/     OPC_MoveParent,
/*20277*/     OPC_RecordChild1, // #0 = $src1
/*20278*/     OPC_Scope, 33, /*->20313*/ // 2 children in Scope
/*20280*/       OPC_MoveChild, 2,
/*20282*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*20285*/       OPC_RecordMemRef,
/*20286*/       OPC_RecordNode, // #1 = 'ld' chained node
/*20287*/       OPC_CheckFoldableChainNode,
/*20288*/       OPC_RecordChild1, // #2 = $src2
/*20289*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*20291*/       OPC_CheckPredicate, 3, // Predicate_load
/*20293*/       OPC_MoveParent,
/*20294*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*20296*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*20299*/       OPC_EmitMergeInputChains1_1,
/*20300*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PSUBUSWirm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_wo_chain:x86mmx 267:iPTR, VR64:x86mmx:$src1, (ld:x86mmx addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                // Dst: (MMX_PSUBUSWirm:x86mmx VR64:x86mmx:$src1, addr:iPTR:$src2)
/*20313*/     /*Scope*/ 12, /*->20326*/
/*20314*/       OPC_RecordChild2, // #1 = $src2
/*20315*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*20317*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PSUBUSWirr), 0,
                    1/*#VTs*/, MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:x86mmx 267:iPTR, VR64:x86mmx:$src1, VR64:x86mmx:$src2) - Complexity = 8
                // Dst: (MMX_PSUBUSWirr:x86mmx VR64:x86mmx:$src1, VR64:x86mmx:$src2)
/*20326*/     0, /*End of Scope*/
/*20327*/   /*Scope*/ 56, /*->20384*/
/*20328*/     OPC_CheckInteger, 125|128,3/*509*/, 
/*20331*/     OPC_MoveParent,
/*20332*/     OPC_RecordChild1, // #0 = $src1
/*20333*/     OPC_Scope, 35, /*->20370*/ // 2 children in Scope
/*20335*/       OPC_MoveChild, 2,
/*20337*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*20340*/       OPC_RecordMemRef,
/*20341*/       OPC_RecordNode, // #1 = 'ld' chained node
/*20342*/       OPC_CheckFoldableChainNode,
/*20343*/       OPC_RecordChild1, // #2 = $src2
/*20344*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*20346*/       OPC_CheckPredicate, 3, // Predicate_load
/*20348*/       OPC_CheckPredicate, 22, // Predicate_memop64
/*20350*/       OPC_MoveParent,
/*20351*/       OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*20353*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*20356*/       OPC_EmitMergeInputChains1_1,
/*20357*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PHSUBWrm64), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_wo_chain:x86mmx 509:iPTR, VR64:x86mmx:$src1, (ld:x86mmx addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop64>>) - Complexity = 30
                // Dst: (MMX_PHSUBWrm64:x86mmx VR64:x86mmx:$src1, addr:iPTR:$src2)
/*20370*/     /*Scope*/ 12, /*->20383*/
/*20371*/       OPC_RecordChild2, // #1 = $src2
/*20372*/       OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*20374*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PHSUBWrr64), 0,
                    1/*#VTs*/, MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:x86mmx 509:iPTR, VR64:x86mmx:$src1, VR64:x86mmx:$src2) - Complexity = 8
                // Dst: (MMX_PHSUBWrr64:x86mmx VR64:x86mmx:$src1, VR64:x86mmx:$src2)
/*20383*/     0, /*End of Scope*/
/*20384*/   /*Scope*/ 56, /*->20441*/
/*20385*/     OPC_CheckInteger, 121|128,3/*505*/, 
/*20388*/     OPC_MoveParent,
/*20389*/     OPC_RecordChild1, // #0 = $src1
/*20390*/     OPC_Scope, 35, /*->20427*/ // 2 children in Scope
/*20392*/       OPC_MoveChild, 2,
/*20394*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*20397*/       OPC_RecordMemRef,
/*20398*/       OPC_RecordNode, // #1 = 'ld' chained node
/*20399*/       OPC_CheckFoldableChainNode,
/*20400*/       OPC_RecordChild1, // #2 = $src2
/*20401*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*20403*/       OPC_CheckPredicate, 3, // Predicate_load
/*20405*/       OPC_CheckPredicate, 22, // Predicate_memop64
/*20407*/       OPC_MoveParent,
/*20408*/       OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*20410*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*20413*/       OPC_EmitMergeInputChains1_1,
/*20414*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PHSUBDrm64), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_wo_chain:x86mmx 505:iPTR, VR64:x86mmx:$src1, (ld:x86mmx addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop64>>) - Complexity = 30
                // Dst: (MMX_PHSUBDrm64:x86mmx VR64:x86mmx:$src1, addr:iPTR:$src2)
/*20427*/     /*Scope*/ 12, /*->20440*/
/*20428*/       OPC_RecordChild2, // #1 = $src2
/*20429*/       OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*20431*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PHSUBDrr64), 0,
                    1/*#VTs*/, MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:x86mmx 505:iPTR, VR64:x86mmx:$src1, VR64:x86mmx:$src2) - Complexity = 8
                // Dst: (MMX_PHSUBDrr64:x86mmx VR64:x86mmx:$src1, VR64:x86mmx:$src2)
/*20440*/     0, /*End of Scope*/
/*20441*/   /*Scope*/ 56, /*->20498*/
/*20442*/     OPC_CheckInteger, 123|128,3/*507*/, 
/*20445*/     OPC_MoveParent,
/*20446*/     OPC_RecordChild1, // #0 = $src1
/*20447*/     OPC_Scope, 35, /*->20484*/ // 2 children in Scope
/*20449*/       OPC_MoveChild, 2,
/*20451*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*20454*/       OPC_RecordMemRef,
/*20455*/       OPC_RecordNode, // #1 = 'ld' chained node
/*20456*/       OPC_CheckFoldableChainNode,
/*20457*/       OPC_RecordChild1, // #2 = $src2
/*20458*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*20460*/       OPC_CheckPredicate, 3, // Predicate_load
/*20462*/       OPC_CheckPredicate, 22, // Predicate_memop64
/*20464*/       OPC_MoveParent,
/*20465*/       OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*20467*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*20470*/       OPC_EmitMergeInputChains1_1,
/*20471*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PHSUBSWrm64), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_wo_chain:x86mmx 507:iPTR, VR64:x86mmx:$src1, (ld:x86mmx addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop64>>) - Complexity = 30
                // Dst: (MMX_PHSUBSWrm64:x86mmx VR64:x86mmx:$src1, addr:iPTR:$src2)
/*20484*/     /*Scope*/ 12, /*->20497*/
/*20485*/       OPC_RecordChild2, // #1 = $src2
/*20486*/       OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*20488*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PHSUBSWrr64), 0,
                    1/*#VTs*/, MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:x86mmx 507:iPTR, VR64:x86mmx:$src1, VR64:x86mmx:$src2) - Complexity = 8
                // Dst: (MMX_PHSUBSWrr64:x86mmx VR64:x86mmx:$src1, VR64:x86mmx:$src2)
/*20497*/     0, /*End of Scope*/
/*20498*/   /*Scope*/ 90, /*->20589*/
/*20499*/     OPC_CheckInteger, 112|128,1/*240*/, 
/*20502*/     OPC_MoveParent,
/*20503*/     OPC_Scope, 34, /*->20539*/ // 3 children in Scope
/*20505*/       OPC_RecordChild1, // #0 = $src1
/*20506*/       OPC_MoveChild, 2,
/*20508*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*20511*/       OPC_RecordMemRef,
/*20512*/       OPC_RecordNode, // #1 = 'ld' chained node
/*20513*/       OPC_CheckFoldableChainNode,
/*20514*/       OPC_RecordChild1, // #2 = $src2
/*20515*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*20517*/       OPC_CheckPredicate, 3, // Predicate_load
/*20519*/       OPC_MoveParent,
/*20520*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*20522*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*20525*/       OPC_EmitMergeInputChains1_1,
/*20526*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PMULLWirm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_wo_chain:x86mmx 240:iPTR, VR64:x86mmx:$src1, (ld:x86mmx addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                // Dst: (MMX_PMULLWirm:x86mmx VR64:x86mmx:$src1, addr:iPTR:$src2)
/*20539*/     /*Scope*/ 34, /*->20574*/
/*20540*/       OPC_MoveChild, 1,
/*20542*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*20545*/       OPC_RecordMemRef,
/*20546*/       OPC_RecordNode, // #0 = 'ld' chained node
/*20547*/       OPC_CheckFoldableChainNode,
/*20548*/       OPC_RecordChild1, // #1 = $src2
/*20549*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*20551*/       OPC_CheckPredicate, 3, // Predicate_load
/*20553*/       OPC_MoveParent,
/*20554*/       OPC_RecordChild2, // #2 = $src1
/*20555*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*20557*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*20560*/       OPC_EmitMergeInputChains1_0,
/*20561*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PMULLWirm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::x86mmx, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_wo_chain:x86mmx 240:iPTR, (ld:x86mmx addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR64:x86mmx:$src1) - Complexity = 30
                // Dst: (MMX_PMULLWirm:x86mmx VR64:x86mmx:$src1, addr:iPTR:$src2)
/*20574*/     /*Scope*/ 13, /*->20588*/
/*20575*/       OPC_RecordChild1, // #0 = $src1
/*20576*/       OPC_RecordChild2, // #1 = $src2
/*20577*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*20579*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PMULLWirr), 0,
                    1/*#VTs*/, MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:x86mmx 240:iPTR, VR64:x86mmx:$src1, VR64:x86mmx:$src2) - Complexity = 8
                // Dst: (MMX_PMULLWirr:x86mmx VR64:x86mmx:$src1, VR64:x86mmx:$src2)
/*20588*/     0, /*End of Scope*/
/*20589*/   /*Scope*/ 90, /*->20680*/
/*20590*/     OPC_CheckInteger, 110|128,1/*238*/, 
/*20593*/     OPC_MoveParent,
/*20594*/     OPC_Scope, 34, /*->20630*/ // 3 children in Scope
/*20596*/       OPC_RecordChild1, // #0 = $src1
/*20597*/       OPC_MoveChild, 2,
/*20599*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*20602*/       OPC_RecordMemRef,
/*20603*/       OPC_RecordNode, // #1 = 'ld' chained node
/*20604*/       OPC_CheckFoldableChainNode,
/*20605*/       OPC_RecordChild1, // #2 = $src2
/*20606*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*20608*/       OPC_CheckPredicate, 3, // Predicate_load
/*20610*/       OPC_MoveParent,
/*20611*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*20613*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*20616*/       OPC_EmitMergeInputChains1_1,
/*20617*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PMULHWirm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_wo_chain:x86mmx 238:iPTR, VR64:x86mmx:$src1, (ld:x86mmx addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                // Dst: (MMX_PMULHWirm:x86mmx VR64:x86mmx:$src1, addr:iPTR:$src2)
/*20630*/     /*Scope*/ 34, /*->20665*/
/*20631*/       OPC_MoveChild, 1,
/*20633*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*20636*/       OPC_RecordMemRef,
/*20637*/       OPC_RecordNode, // #0 = 'ld' chained node
/*20638*/       OPC_CheckFoldableChainNode,
/*20639*/       OPC_RecordChild1, // #1 = $src2
/*20640*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*20642*/       OPC_CheckPredicate, 3, // Predicate_load
/*20644*/       OPC_MoveParent,
/*20645*/       OPC_RecordChild2, // #2 = $src1
/*20646*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*20648*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*20651*/       OPC_EmitMergeInputChains1_0,
/*20652*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PMULHWirm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::x86mmx, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_wo_chain:x86mmx 238:iPTR, (ld:x86mmx addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR64:x86mmx:$src1) - Complexity = 30
                // Dst: (MMX_PMULHWirm:x86mmx VR64:x86mmx:$src1, addr:iPTR:$src2)
/*20665*/     /*Scope*/ 13, /*->20679*/
/*20666*/       OPC_RecordChild1, // #0 = $src1
/*20667*/       OPC_RecordChild2, // #1 = $src2
/*20668*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*20670*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PMULHWirr), 0,
                    1/*#VTs*/, MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:x86mmx 238:iPTR, VR64:x86mmx:$src1, VR64:x86mmx:$src2) - Complexity = 8
                // Dst: (MMX_PMULHWirr:x86mmx VR64:x86mmx:$src1, VR64:x86mmx:$src2)
/*20679*/     0, /*End of Scope*/
/*20680*/   /*Scope*/ 90, /*->20771*/
/*20681*/     OPC_CheckInteger, 111|128,1/*239*/, 
/*20684*/     OPC_MoveParent,
/*20685*/     OPC_Scope, 34, /*->20721*/ // 3 children in Scope
/*20687*/       OPC_RecordChild1, // #0 = $src1
/*20688*/       OPC_MoveChild, 2,
/*20690*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*20693*/       OPC_RecordMemRef,
/*20694*/       OPC_RecordNode, // #1 = 'ld' chained node
/*20695*/       OPC_CheckFoldableChainNode,
/*20696*/       OPC_RecordChild1, // #2 = $src2
/*20697*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*20699*/       OPC_CheckPredicate, 3, // Predicate_load
/*20701*/       OPC_MoveParent,
/*20702*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*20704*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*20707*/       OPC_EmitMergeInputChains1_1,
/*20708*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PMULHUWirm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_wo_chain:x86mmx 239:iPTR, VR64:x86mmx:$src1, (ld:x86mmx addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                // Dst: (MMX_PMULHUWirm:x86mmx VR64:x86mmx:$src1, addr:iPTR:$src2)
/*20721*/     /*Scope*/ 34, /*->20756*/
/*20722*/       OPC_MoveChild, 1,
/*20724*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*20727*/       OPC_RecordMemRef,
/*20728*/       OPC_RecordNode, // #0 = 'ld' chained node
/*20729*/       OPC_CheckFoldableChainNode,
/*20730*/       OPC_RecordChild1, // #1 = $src2
/*20731*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*20733*/       OPC_CheckPredicate, 3, // Predicate_load
/*20735*/       OPC_MoveParent,
/*20736*/       OPC_RecordChild2, // #2 = $src1
/*20737*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*20739*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*20742*/       OPC_EmitMergeInputChains1_0,
/*20743*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PMULHUWirm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::x86mmx, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_wo_chain:x86mmx 239:iPTR, (ld:x86mmx addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR64:x86mmx:$src1) - Complexity = 30
                // Dst: (MMX_PMULHUWirm:x86mmx VR64:x86mmx:$src1, addr:iPTR:$src2)
/*20756*/     /*Scope*/ 13, /*->20770*/
/*20757*/       OPC_RecordChild1, // #0 = $src1
/*20758*/       OPC_RecordChild2, // #1 = $src2
/*20759*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*20761*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PMULHUWirr), 0,
                    1/*#VTs*/, MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:x86mmx 239:iPTR, VR64:x86mmx:$src1, VR64:x86mmx:$src2) - Complexity = 8
                // Dst: (MMX_PMULHUWirr:x86mmx VR64:x86mmx:$src1, VR64:x86mmx:$src2)
/*20770*/     0, /*End of Scope*/
/*20771*/   /*Scope*/ 90, /*->20862*/
/*20772*/     OPC_CheckInteger, 113|128,1/*241*/, 
/*20775*/     OPC_MoveParent,
/*20776*/     OPC_Scope, 34, /*->20812*/ // 3 children in Scope
/*20778*/       OPC_RecordChild1, // #0 = $src1
/*20779*/       OPC_MoveChild, 2,
/*20781*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*20784*/       OPC_RecordMemRef,
/*20785*/       OPC_RecordNode, // #1 = 'ld' chained node
/*20786*/       OPC_CheckFoldableChainNode,
/*20787*/       OPC_RecordChild1, // #2 = $src2
/*20788*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*20790*/       OPC_CheckPredicate, 3, // Predicate_load
/*20792*/       OPC_MoveParent,
/*20793*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*20795*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*20798*/       OPC_EmitMergeInputChains1_1,
/*20799*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PMULUDQirm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_wo_chain:x86mmx 241:iPTR, VR64:x86mmx:$src1, (ld:x86mmx addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                // Dst: (MMX_PMULUDQirm:x86mmx VR64:x86mmx:$src1, addr:iPTR:$src2)
/*20812*/     /*Scope*/ 34, /*->20847*/
/*20813*/       OPC_MoveChild, 1,
/*20815*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*20818*/       OPC_RecordMemRef,
/*20819*/       OPC_RecordNode, // #0 = 'ld' chained node
/*20820*/       OPC_CheckFoldableChainNode,
/*20821*/       OPC_RecordChild1, // #1 = $src2
/*20822*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*20824*/       OPC_CheckPredicate, 3, // Predicate_load
/*20826*/       OPC_MoveParent,
/*20827*/       OPC_RecordChild2, // #2 = $src1
/*20828*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*20830*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*20833*/       OPC_EmitMergeInputChains1_0,
/*20834*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PMULUDQirm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::x86mmx, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_wo_chain:x86mmx 241:iPTR, (ld:x86mmx addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR64:x86mmx:$src1) - Complexity = 30
                // Dst: (MMX_PMULUDQirm:x86mmx VR64:x86mmx:$src1, addr:iPTR:$src2)
/*20847*/     /*Scope*/ 13, /*->20861*/
/*20848*/       OPC_RecordChild1, // #0 = $src1
/*20849*/       OPC_RecordChild2, // #1 = $src2
/*20850*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*20852*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PMULUDQirr), 0,
                    1/*#VTs*/, MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:x86mmx 241:iPTR, VR64:x86mmx:$src1, VR64:x86mmx:$src2) - Complexity = 8
                // Dst: (MMX_PMULUDQirr:x86mmx VR64:x86mmx:$src1, VR64:x86mmx:$src2)
/*20861*/     0, /*End of Scope*/
/*20862*/   /*Scope*/ 94, /*->20957*/
/*20863*/     OPC_CheckInteger, 1|128,4/*513*/, 
/*20866*/     OPC_MoveParent,
/*20867*/     OPC_Scope, 36, /*->20905*/ // 3 children in Scope
/*20869*/       OPC_RecordChild1, // #0 = $src1
/*20870*/       OPC_MoveChild, 2,
/*20872*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*20875*/       OPC_RecordMemRef,
/*20876*/       OPC_RecordNode, // #1 = 'ld' chained node
/*20877*/       OPC_CheckFoldableChainNode,
/*20878*/       OPC_RecordChild1, // #2 = $src2
/*20879*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*20881*/       OPC_CheckPredicate, 3, // Predicate_load
/*20883*/       OPC_CheckPredicate, 22, // Predicate_memop64
/*20885*/       OPC_MoveParent,
/*20886*/       OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*20888*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*20891*/       OPC_EmitMergeInputChains1_1,
/*20892*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PMULHRSWrm64), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_wo_chain:x86mmx 513:iPTR, VR64:x86mmx:$src1, (ld:x86mmx addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop64>>) - Complexity = 30
                // Dst: (MMX_PMULHRSWrm64:x86mmx VR64:x86mmx:$src1, addr:iPTR:$src2)
/*20905*/     /*Scope*/ 36, /*->20942*/
/*20906*/       OPC_MoveChild, 1,
/*20908*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*20911*/       OPC_RecordMemRef,
/*20912*/       OPC_RecordNode, // #0 = 'ld' chained node
/*20913*/       OPC_CheckFoldableChainNode,
/*20914*/       OPC_RecordChild1, // #1 = $src2
/*20915*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*20917*/       OPC_CheckPredicate, 3, // Predicate_load
/*20919*/       OPC_CheckPredicate, 22, // Predicate_memop64
/*20921*/       OPC_MoveParent,
/*20922*/       OPC_RecordChild2, // #2 = $src1
/*20923*/       OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*20925*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*20928*/       OPC_EmitMergeInputChains1_0,
/*20929*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PMULHRSWrm64), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::x86mmx, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_wo_chain:x86mmx 513:iPTR, (ld:x86mmx addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop64>>, VR64:x86mmx:$src1) - Complexity = 30
                // Dst: (MMX_PMULHRSWrm64:x86mmx VR64:x86mmx:$src1, addr:iPTR:$src2)
/*20942*/     /*Scope*/ 13, /*->20956*/
/*20943*/       OPC_RecordChild1, // #0 = $src1
/*20944*/       OPC_RecordChild2, // #1 = $src2
/*20945*/       OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*20947*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PMULHRSWrr64), 0,
                    1/*#VTs*/, MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:x86mmx 513:iPTR, VR64:x86mmx:$src1, VR64:x86mmx:$src2) - Complexity = 8
                // Dst: (MMX_PMULHRSWrr64:x86mmx VR64:x86mmx:$src1, VR64:x86mmx:$src2)
/*20956*/     0, /*End of Scope*/
/*20957*/   /*Scope*/ 90, /*->21048*/
/*20958*/     OPC_CheckInteger, 104|128,1/*232*/, 
/*20961*/     OPC_MoveParent,
/*20962*/     OPC_Scope, 34, /*->20998*/ // 3 children in Scope
/*20964*/       OPC_RecordChild1, // #0 = $src1
/*20965*/       OPC_MoveChild, 2,
/*20967*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*20970*/       OPC_RecordMemRef,
/*20971*/       OPC_RecordNode, // #1 = 'ld' chained node
/*20972*/       OPC_CheckFoldableChainNode,
/*20973*/       OPC_RecordChild1, // #2 = $src2
/*20974*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*20976*/       OPC_CheckPredicate, 3, // Predicate_load
/*20978*/       OPC_MoveParent,
/*20979*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*20981*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*20984*/       OPC_EmitMergeInputChains1_1,
/*20985*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PMADDWDirm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_wo_chain:x86mmx 232:iPTR, VR64:x86mmx:$src1, (ld:x86mmx addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                // Dst: (MMX_PMADDWDirm:x86mmx VR64:x86mmx:$src1, addr:iPTR:$src2)
/*20998*/     /*Scope*/ 34, /*->21033*/
/*20999*/       OPC_MoveChild, 1,
/*21001*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*21004*/       OPC_RecordMemRef,
/*21005*/       OPC_RecordNode, // #0 = 'ld' chained node
/*21006*/       OPC_CheckFoldableChainNode,
/*21007*/       OPC_RecordChild1, // #1 = $src2
/*21008*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*21010*/       OPC_CheckPredicate, 3, // Predicate_load
/*21012*/       OPC_MoveParent,
/*21013*/       OPC_RecordChild2, // #2 = $src1
/*21014*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*21016*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*21019*/       OPC_EmitMergeInputChains1_0,
/*21020*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PMADDWDirm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::x86mmx, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_wo_chain:x86mmx 232:iPTR, (ld:x86mmx addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR64:x86mmx:$src1) - Complexity = 30
                // Dst: (MMX_PMADDWDirm:x86mmx VR64:x86mmx:$src1, addr:iPTR:$src2)
/*21033*/     /*Scope*/ 13, /*->21047*/
/*21034*/       OPC_RecordChild1, // #0 = $src1
/*21035*/       OPC_RecordChild2, // #1 = $src2
/*21036*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*21038*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PMADDWDirr), 0,
                    1/*#VTs*/, MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:x86mmx 232:iPTR, VR64:x86mmx:$src1, VR64:x86mmx:$src2) - Complexity = 8
                // Dst: (MMX_PMADDWDirr:x86mmx VR64:x86mmx:$src1, VR64:x86mmx:$src2)
/*21047*/     0, /*End of Scope*/
/*21048*/   /*Scope*/ 56, /*->21105*/
/*21049*/     OPC_CheckInteger, 127|128,3/*511*/, 
/*21052*/     OPC_MoveParent,
/*21053*/     OPC_RecordChild1, // #0 = $src1
/*21054*/     OPC_Scope, 35, /*->21091*/ // 2 children in Scope
/*21056*/       OPC_MoveChild, 2,
/*21058*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*21061*/       OPC_RecordMemRef,
/*21062*/       OPC_RecordNode, // #1 = 'ld' chained node
/*21063*/       OPC_CheckFoldableChainNode,
/*21064*/       OPC_RecordChild1, // #2 = $src2
/*21065*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*21067*/       OPC_CheckPredicate, 3, // Predicate_load
/*21069*/       OPC_CheckPredicate, 22, // Predicate_memop64
/*21071*/       OPC_MoveParent,
/*21072*/       OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*21074*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*21077*/       OPC_EmitMergeInputChains1_1,
/*21078*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PMADDUBSWrm64), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_wo_chain:x86mmx 511:iPTR, VR64:x86mmx:$src1, (ld:x86mmx addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop64>>) - Complexity = 30
                // Dst: (MMX_PMADDUBSWrm64:x86mmx VR64:x86mmx:$src1, addr:iPTR:$src2)
/*21091*/     /*Scope*/ 12, /*->21104*/
/*21092*/       OPC_RecordChild2, // #1 = $src2
/*21093*/       OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*21095*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PMADDUBSWrr64), 0,
                    1/*#VTs*/, MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:x86mmx 511:iPTR, VR64:x86mmx:$src1, VR64:x86mmx:$src2) - Complexity = 8
                // Dst: (MMX_PMADDUBSWrr64:x86mmx VR64:x86mmx:$src1, VR64:x86mmx:$src2)
/*21104*/     0, /*End of Scope*/
/*21105*/   /*Scope*/ 90, /*->21196*/
/*21106*/     OPC_CheckInteger, 94|128,1/*222*/, 
/*21109*/     OPC_MoveParent,
/*21110*/     OPC_Scope, 34, /*->21146*/ // 3 children in Scope
/*21112*/       OPC_RecordChild1, // #0 = $src1
/*21113*/       OPC_MoveChild, 2,
/*21115*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*21118*/       OPC_RecordMemRef,
/*21119*/       OPC_RecordNode, // #1 = 'ld' chained node
/*21120*/       OPC_CheckFoldableChainNode,
/*21121*/       OPC_RecordChild1, // #2 = $src2
/*21122*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*21124*/       OPC_CheckPredicate, 3, // Predicate_load
/*21126*/       OPC_MoveParent,
/*21127*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*21129*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*21132*/       OPC_EmitMergeInputChains1_1,
/*21133*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PAVGBirm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_wo_chain:x86mmx 222:iPTR, VR64:x86mmx:$src1, (ld:x86mmx addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                // Dst: (MMX_PAVGBirm:x86mmx VR64:x86mmx:$src1, addr:iPTR:$src2)
/*21146*/     /*Scope*/ 34, /*->21181*/
/*21147*/       OPC_MoveChild, 1,
/*21149*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*21152*/       OPC_RecordMemRef,
/*21153*/       OPC_RecordNode, // #0 = 'ld' chained node
/*21154*/       OPC_CheckFoldableChainNode,
/*21155*/       OPC_RecordChild1, // #1 = $src2
/*21156*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*21158*/       OPC_CheckPredicate, 3, // Predicate_load
/*21160*/       OPC_MoveParent,
/*21161*/       OPC_RecordChild2, // #2 = $src1
/*21162*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*21164*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*21167*/       OPC_EmitMergeInputChains1_0,
/*21168*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PAVGBirm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::x86mmx, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_wo_chain:x86mmx 222:iPTR, (ld:x86mmx addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR64:x86mmx:$src1) - Complexity = 30
                // Dst: (MMX_PAVGBirm:x86mmx VR64:x86mmx:$src1, addr:iPTR:$src2)
/*21181*/     /*Scope*/ 13, /*->21195*/
/*21182*/       OPC_RecordChild1, // #0 = $src1
/*21183*/       OPC_RecordChild2, // #1 = $src2
/*21184*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*21186*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PAVGBirr), 0,
                    1/*#VTs*/, MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:x86mmx 222:iPTR, VR64:x86mmx:$src1, VR64:x86mmx:$src2) - Complexity = 8
                // Dst: (MMX_PAVGBirr:x86mmx VR64:x86mmx:$src1, VR64:x86mmx:$src2)
/*21195*/     0, /*End of Scope*/
/*21196*/   /*Scope*/ 90, /*->21287*/
/*21197*/     OPC_CheckInteger, 95|128,1/*223*/, 
/*21200*/     OPC_MoveParent,
/*21201*/     OPC_Scope, 34, /*->21237*/ // 3 children in Scope
/*21203*/       OPC_RecordChild1, // #0 = $src1
/*21204*/       OPC_MoveChild, 2,
/*21206*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*21209*/       OPC_RecordMemRef,
/*21210*/       OPC_RecordNode, // #1 = 'ld' chained node
/*21211*/       OPC_CheckFoldableChainNode,
/*21212*/       OPC_RecordChild1, // #2 = $src2
/*21213*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*21215*/       OPC_CheckPredicate, 3, // Predicate_load
/*21217*/       OPC_MoveParent,
/*21218*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*21220*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*21223*/       OPC_EmitMergeInputChains1_1,
/*21224*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PAVGWirm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_wo_chain:x86mmx 223:iPTR, VR64:x86mmx:$src1, (ld:x86mmx addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                // Dst: (MMX_PAVGWirm:x86mmx VR64:x86mmx:$src1, addr:iPTR:$src2)
/*21237*/     /*Scope*/ 34, /*->21272*/
/*21238*/       OPC_MoveChild, 1,
/*21240*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*21243*/       OPC_RecordMemRef,
/*21244*/       OPC_RecordNode, // #0 = 'ld' chained node
/*21245*/       OPC_CheckFoldableChainNode,
/*21246*/       OPC_RecordChild1, // #1 = $src2
/*21247*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*21249*/       OPC_CheckPredicate, 3, // Predicate_load
/*21251*/       OPC_MoveParent,
/*21252*/       OPC_RecordChild2, // #2 = $src1
/*21253*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*21255*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*21258*/       OPC_EmitMergeInputChains1_0,
/*21259*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PAVGWirm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::x86mmx, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_wo_chain:x86mmx 223:iPTR, (ld:x86mmx addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR64:x86mmx:$src1) - Complexity = 30
                // Dst: (MMX_PAVGWirm:x86mmx VR64:x86mmx:$src1, addr:iPTR:$src2)
/*21272*/     /*Scope*/ 13, /*->21286*/
/*21273*/       OPC_RecordChild1, // #0 = $src1
/*21274*/       OPC_RecordChild2, // #1 = $src2
/*21275*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*21277*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PAVGWirr), 0,
                    1/*#VTs*/, MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:x86mmx 223:iPTR, VR64:x86mmx:$src1, VR64:x86mmx:$src2) - Complexity = 8
                // Dst: (MMX_PAVGWirr:x86mmx VR64:x86mmx:$src1, VR64:x86mmx:$src2)
/*21286*/     0, /*End of Scope*/
/*21287*/   /*Scope*/ 90, /*->21378*/
/*21288*/     OPC_CheckInteger, 108|128,1/*236*/, 
/*21291*/     OPC_MoveParent,
/*21292*/     OPC_Scope, 34, /*->21328*/ // 3 children in Scope
/*21294*/       OPC_RecordChild1, // #0 = $src1
/*21295*/       OPC_MoveChild, 2,
/*21297*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*21300*/       OPC_RecordMemRef,
/*21301*/       OPC_RecordNode, // #1 = 'ld' chained node
/*21302*/       OPC_CheckFoldableChainNode,
/*21303*/       OPC_RecordChild1, // #2 = $src2
/*21304*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*21306*/       OPC_CheckPredicate, 3, // Predicate_load
/*21308*/       OPC_MoveParent,
/*21309*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*21311*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*21314*/       OPC_EmitMergeInputChains1_1,
/*21315*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PMINUBirm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_wo_chain:x86mmx 236:iPTR, VR64:x86mmx:$src1, (ld:x86mmx addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                // Dst: (MMX_PMINUBirm:x86mmx VR64:x86mmx:$src1, addr:iPTR:$src2)
/*21328*/     /*Scope*/ 34, /*->21363*/
/*21329*/       OPC_MoveChild, 1,
/*21331*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*21334*/       OPC_RecordMemRef,
/*21335*/       OPC_RecordNode, // #0 = 'ld' chained node
/*21336*/       OPC_CheckFoldableChainNode,
/*21337*/       OPC_RecordChild1, // #1 = $src2
/*21338*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*21340*/       OPC_CheckPredicate, 3, // Predicate_load
/*21342*/       OPC_MoveParent,
/*21343*/       OPC_RecordChild2, // #2 = $src1
/*21344*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*21346*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*21349*/       OPC_EmitMergeInputChains1_0,
/*21350*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PMINUBirm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::x86mmx, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_wo_chain:x86mmx 236:iPTR, (ld:x86mmx addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR64:x86mmx:$src1) - Complexity = 30
                // Dst: (MMX_PMINUBirm:x86mmx VR64:x86mmx:$src1, addr:iPTR:$src2)
/*21363*/     /*Scope*/ 13, /*->21377*/
/*21364*/       OPC_RecordChild1, // #0 = $src1
/*21365*/       OPC_RecordChild2, // #1 = $src2
/*21366*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*21368*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PMINUBirr), 0,
                    1/*#VTs*/, MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:x86mmx 236:iPTR, VR64:x86mmx:$src1, VR64:x86mmx:$src2) - Complexity = 8
                // Dst: (MMX_PMINUBirr:x86mmx VR64:x86mmx:$src1, VR64:x86mmx:$src2)
/*21377*/     0, /*End of Scope*/
/*21378*/   /*Scope*/ 90, /*->21469*/
/*21379*/     OPC_CheckInteger, 107|128,1/*235*/, 
/*21382*/     OPC_MoveParent,
/*21383*/     OPC_Scope, 34, /*->21419*/ // 3 children in Scope
/*21385*/       OPC_RecordChild1, // #0 = $src1
/*21386*/       OPC_MoveChild, 2,
/*21388*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*21391*/       OPC_RecordMemRef,
/*21392*/       OPC_RecordNode, // #1 = 'ld' chained node
/*21393*/       OPC_CheckFoldableChainNode,
/*21394*/       OPC_RecordChild1, // #2 = $src2
/*21395*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*21397*/       OPC_CheckPredicate, 3, // Predicate_load
/*21399*/       OPC_MoveParent,
/*21400*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*21402*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*21405*/       OPC_EmitMergeInputChains1_1,
/*21406*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PMINSWirm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_wo_chain:x86mmx 235:iPTR, VR64:x86mmx:$src1, (ld:x86mmx addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                // Dst: (MMX_PMINSWirm:x86mmx VR64:x86mmx:$src1, addr:iPTR:$src2)
/*21419*/     /*Scope*/ 34, /*->21454*/
/*21420*/       OPC_MoveChild, 1,
/*21422*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*21425*/       OPC_RecordMemRef,
/*21426*/       OPC_RecordNode, // #0 = 'ld' chained node
/*21427*/       OPC_CheckFoldableChainNode,
/*21428*/       OPC_RecordChild1, // #1 = $src2
/*21429*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*21431*/       OPC_CheckPredicate, 3, // Predicate_load
/*21433*/       OPC_MoveParent,
/*21434*/       OPC_RecordChild2, // #2 = $src1
/*21435*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*21437*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*21440*/       OPC_EmitMergeInputChains1_0,
/*21441*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PMINSWirm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::x86mmx, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_wo_chain:x86mmx 235:iPTR, (ld:x86mmx addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR64:x86mmx:$src1) - Complexity = 30
                // Dst: (MMX_PMINSWirm:x86mmx VR64:x86mmx:$src1, addr:iPTR:$src2)
/*21454*/     /*Scope*/ 13, /*->21468*/
/*21455*/       OPC_RecordChild1, // #0 = $src1
/*21456*/       OPC_RecordChild2, // #1 = $src2
/*21457*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*21459*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PMINSWirr), 0,
                    1/*#VTs*/, MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:x86mmx 235:iPTR, VR64:x86mmx:$src1, VR64:x86mmx:$src2) - Complexity = 8
                // Dst: (MMX_PMINSWirr:x86mmx VR64:x86mmx:$src1, VR64:x86mmx:$src2)
/*21468*/     0, /*End of Scope*/
/*21469*/   /*Scope*/ 90, /*->21560*/
/*21470*/     OPC_CheckInteger, 106|128,1/*234*/, 
/*21473*/     OPC_MoveParent,
/*21474*/     OPC_Scope, 34, /*->21510*/ // 3 children in Scope
/*21476*/       OPC_RecordChild1, // #0 = $src1
/*21477*/       OPC_MoveChild, 2,
/*21479*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*21482*/       OPC_RecordMemRef,
/*21483*/       OPC_RecordNode, // #1 = 'ld' chained node
/*21484*/       OPC_CheckFoldableChainNode,
/*21485*/       OPC_RecordChild1, // #2 = $src2
/*21486*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*21488*/       OPC_CheckPredicate, 3, // Predicate_load
/*21490*/       OPC_MoveParent,
/*21491*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*21493*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*21496*/       OPC_EmitMergeInputChains1_1,
/*21497*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PMAXUBirm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_wo_chain:x86mmx 234:iPTR, VR64:x86mmx:$src1, (ld:x86mmx addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                // Dst: (MMX_PMAXUBirm:x86mmx VR64:x86mmx:$src1, addr:iPTR:$src2)
/*21510*/     /*Scope*/ 34, /*->21545*/
/*21511*/       OPC_MoveChild, 1,
/*21513*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*21516*/       OPC_RecordMemRef,
/*21517*/       OPC_RecordNode, // #0 = 'ld' chained node
/*21518*/       OPC_CheckFoldableChainNode,
/*21519*/       OPC_RecordChild1, // #1 = $src2
/*21520*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*21522*/       OPC_CheckPredicate, 3, // Predicate_load
/*21524*/       OPC_MoveParent,
/*21525*/       OPC_RecordChild2, // #2 = $src1
/*21526*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*21528*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*21531*/       OPC_EmitMergeInputChains1_0,
/*21532*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PMAXUBirm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::x86mmx, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_wo_chain:x86mmx 234:iPTR, (ld:x86mmx addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR64:x86mmx:$src1) - Complexity = 30
                // Dst: (MMX_PMAXUBirm:x86mmx VR64:x86mmx:$src1, addr:iPTR:$src2)
/*21545*/     /*Scope*/ 13, /*->21559*/
/*21546*/       OPC_RecordChild1, // #0 = $src1
/*21547*/       OPC_RecordChild2, // #1 = $src2
/*21548*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*21550*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PMAXUBirr), 0,
                    1/*#VTs*/, MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:x86mmx 234:iPTR, VR64:x86mmx:$src1, VR64:x86mmx:$src2) - Complexity = 8
                // Dst: (MMX_PMAXUBirr:x86mmx VR64:x86mmx:$src1, VR64:x86mmx:$src2)
/*21559*/     0, /*End of Scope*/
/*21560*/   /*Scope*/ 90, /*->21651*/
/*21561*/     OPC_CheckInteger, 105|128,1/*233*/, 
/*21564*/     OPC_MoveParent,
/*21565*/     OPC_Scope, 34, /*->21601*/ // 3 children in Scope
/*21567*/       OPC_RecordChild1, // #0 = $src1
/*21568*/       OPC_MoveChild, 2,
/*21570*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*21573*/       OPC_RecordMemRef,
/*21574*/       OPC_RecordNode, // #1 = 'ld' chained node
/*21575*/       OPC_CheckFoldableChainNode,
/*21576*/       OPC_RecordChild1, // #2 = $src2
/*21577*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*21579*/       OPC_CheckPredicate, 3, // Predicate_load
/*21581*/       OPC_MoveParent,
/*21582*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*21584*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*21587*/       OPC_EmitMergeInputChains1_1,
/*21588*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PMAXSWirm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_wo_chain:x86mmx 233:iPTR, VR64:x86mmx:$src1, (ld:x86mmx addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                // Dst: (MMX_PMAXSWirm:x86mmx VR64:x86mmx:$src1, addr:iPTR:$src2)
/*21601*/     /*Scope*/ 34, /*->21636*/
/*21602*/       OPC_MoveChild, 1,
/*21604*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*21607*/       OPC_RecordMemRef,
/*21608*/       OPC_RecordNode, // #0 = 'ld' chained node
/*21609*/       OPC_CheckFoldableChainNode,
/*21610*/       OPC_RecordChild1, // #1 = $src2
/*21611*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*21613*/       OPC_CheckPredicate, 3, // Predicate_load
/*21615*/       OPC_MoveParent,
/*21616*/       OPC_RecordChild2, // #2 = $src1
/*21617*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*21619*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*21622*/       OPC_EmitMergeInputChains1_0,
/*21623*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PMAXSWirm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::x86mmx, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_wo_chain:x86mmx 233:iPTR, (ld:x86mmx addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR64:x86mmx:$src1) - Complexity = 30
                // Dst: (MMX_PMAXSWirm:x86mmx VR64:x86mmx:$src1, addr:iPTR:$src2)
/*21636*/     /*Scope*/ 13, /*->21650*/
/*21637*/       OPC_RecordChild1, // #0 = $src1
/*21638*/       OPC_RecordChild2, // #1 = $src2
/*21639*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*21641*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PMAXSWirr), 0,
                    1/*#VTs*/, MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:x86mmx 233:iPTR, VR64:x86mmx:$src1, VR64:x86mmx:$src2) - Complexity = 8
                // Dst: (MMX_PMAXSWirr:x86mmx VR64:x86mmx:$src1, VR64:x86mmx:$src2)
/*21650*/     0, /*End of Scope*/
/*21651*/   /*Scope*/ 90, /*->21742*/
/*21652*/     OPC_CheckInteger, 115|128,1/*243*/, 
/*21655*/     OPC_MoveParent,
/*21656*/     OPC_Scope, 34, /*->21692*/ // 3 children in Scope
/*21658*/       OPC_RecordChild1, // #0 = $src1
/*21659*/       OPC_MoveChild, 2,
/*21661*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*21664*/       OPC_RecordMemRef,
/*21665*/       OPC_RecordNode, // #1 = 'ld' chained node
/*21666*/       OPC_CheckFoldableChainNode,
/*21667*/       OPC_RecordChild1, // #2 = $src2
/*21668*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*21670*/       OPC_CheckPredicate, 3, // Predicate_load
/*21672*/       OPC_MoveParent,
/*21673*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*21675*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*21678*/       OPC_EmitMergeInputChains1_1,
/*21679*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PSADBWirm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_wo_chain:x86mmx 243:iPTR, VR64:x86mmx:$src1, (ld:x86mmx addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                // Dst: (MMX_PSADBWirm:x86mmx VR64:x86mmx:$src1, addr:iPTR:$src2)
/*21692*/     /*Scope*/ 34, /*->21727*/
/*21693*/       OPC_MoveChild, 1,
/*21695*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*21698*/       OPC_RecordMemRef,
/*21699*/       OPC_RecordNode, // #0 = 'ld' chained node
/*21700*/       OPC_CheckFoldableChainNode,
/*21701*/       OPC_RecordChild1, // #1 = $src2
/*21702*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*21704*/       OPC_CheckPredicate, 3, // Predicate_load
/*21706*/       OPC_MoveParent,
/*21707*/       OPC_RecordChild2, // #2 = $src1
/*21708*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*21710*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*21713*/       OPC_EmitMergeInputChains1_0,
/*21714*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PSADBWirm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::x86mmx, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_wo_chain:x86mmx 243:iPTR, (ld:x86mmx addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR64:x86mmx:$src1) - Complexity = 30
                // Dst: (MMX_PSADBWirm:x86mmx VR64:x86mmx:$src1, addr:iPTR:$src2)
/*21727*/     /*Scope*/ 13, /*->21741*/
/*21728*/       OPC_RecordChild1, // #0 = $src1
/*21729*/       OPC_RecordChild2, // #1 = $src2
/*21730*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*21732*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PSADBWirr), 0,
                    1/*#VTs*/, MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:x86mmx 243:iPTR, VR64:x86mmx:$src1, VR64:x86mmx:$src2) - Complexity = 8
                // Dst: (MMX_PSADBWirr:x86mmx VR64:x86mmx:$src1, VR64:x86mmx:$src2)
/*21741*/     0, /*End of Scope*/
/*21742*/   /*Scope*/ 56, /*->21799*/
/*21743*/     OPC_CheckInteger, 5|128,4/*517*/, 
/*21746*/     OPC_MoveParent,
/*21747*/     OPC_RecordChild1, // #0 = $src1
/*21748*/     OPC_Scope, 35, /*->21785*/ // 2 children in Scope
/*21750*/       OPC_MoveChild, 2,
/*21752*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*21755*/       OPC_RecordMemRef,
/*21756*/       OPC_RecordNode, // #1 = 'ld' chained node
/*21757*/       OPC_CheckFoldableChainNode,
/*21758*/       OPC_RecordChild1, // #2 = $src2
/*21759*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*21761*/       OPC_CheckPredicate, 3, // Predicate_load
/*21763*/       OPC_CheckPredicate, 22, // Predicate_memop64
/*21765*/       OPC_MoveParent,
/*21766*/       OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*21768*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*21771*/       OPC_EmitMergeInputChains1_1,
/*21772*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PSIGNBrm64), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_wo_chain:x86mmx 517:iPTR, VR64:x86mmx:$src1, (ld:x86mmx addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop64>>) - Complexity = 30
                // Dst: (MMX_PSIGNBrm64:x86mmx VR64:x86mmx:$src1, addr:iPTR:$src2)
/*21785*/     /*Scope*/ 12, /*->21798*/
/*21786*/       OPC_RecordChild2, // #1 = $src2
/*21787*/       OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*21789*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PSIGNBrr64), 0,
                    1/*#VTs*/, MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:x86mmx 517:iPTR, VR64:x86mmx:$src1, VR64:x86mmx:$src2) - Complexity = 8
                // Dst: (MMX_PSIGNBrr64:x86mmx VR64:x86mmx:$src1, VR64:x86mmx:$src2)
/*21798*/     0, /*End of Scope*/
/*21799*/   /*Scope*/ 56, /*->21856*/
/*21800*/     OPC_CheckInteger, 9|128,4/*521*/, 
/*21803*/     OPC_MoveParent,
/*21804*/     OPC_RecordChild1, // #0 = $src1
/*21805*/     OPC_Scope, 35, /*->21842*/ // 2 children in Scope
/*21807*/       OPC_MoveChild, 2,
/*21809*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*21812*/       OPC_RecordMemRef,
/*21813*/       OPC_RecordNode, // #1 = 'ld' chained node
/*21814*/       OPC_CheckFoldableChainNode,
/*21815*/       OPC_RecordChild1, // #2 = $src2
/*21816*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*21818*/       OPC_CheckPredicate, 3, // Predicate_load
/*21820*/       OPC_CheckPredicate, 22, // Predicate_memop64
/*21822*/       OPC_MoveParent,
/*21823*/       OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*21825*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*21828*/       OPC_EmitMergeInputChains1_1,
/*21829*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PSIGNWrm64), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_wo_chain:x86mmx 521:iPTR, VR64:x86mmx:$src1, (ld:x86mmx addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop64>>) - Complexity = 30
                // Dst: (MMX_PSIGNWrm64:x86mmx VR64:x86mmx:$src1, addr:iPTR:$src2)
/*21842*/     /*Scope*/ 12, /*->21855*/
/*21843*/       OPC_RecordChild2, // #1 = $src2
/*21844*/       OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*21846*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PSIGNWrr64), 0,
                    1/*#VTs*/, MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:x86mmx 521:iPTR, VR64:x86mmx:$src1, VR64:x86mmx:$src2) - Complexity = 8
                // Dst: (MMX_PSIGNWrr64:x86mmx VR64:x86mmx:$src1, VR64:x86mmx:$src2)
/*21855*/     0, /*End of Scope*/
/*21856*/   /*Scope*/ 56, /*->21913*/
/*21857*/     OPC_CheckInteger, 7|128,4/*519*/, 
/*21860*/     OPC_MoveParent,
/*21861*/     OPC_RecordChild1, // #0 = $src1
/*21862*/     OPC_Scope, 35, /*->21899*/ // 2 children in Scope
/*21864*/       OPC_MoveChild, 2,
/*21866*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*21869*/       OPC_RecordMemRef,
/*21870*/       OPC_RecordNode, // #1 = 'ld' chained node
/*21871*/       OPC_CheckFoldableChainNode,
/*21872*/       OPC_RecordChild1, // #2 = $src2
/*21873*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*21875*/       OPC_CheckPredicate, 3, // Predicate_load
/*21877*/       OPC_CheckPredicate, 22, // Predicate_memop64
/*21879*/       OPC_MoveParent,
/*21880*/       OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*21882*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*21885*/       OPC_EmitMergeInputChains1_1,
/*21886*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PSIGNDrm64), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_wo_chain:x86mmx 519:iPTR, VR64:x86mmx:$src1, (ld:x86mmx addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop64>>) - Complexity = 30
                // Dst: (MMX_PSIGNDrm64:x86mmx VR64:x86mmx:$src1, addr:iPTR:$src2)
/*21899*/     /*Scope*/ 12, /*->21912*/
/*21900*/       OPC_RecordChild2, // #1 = $src2
/*21901*/       OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*21903*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PSIGNDrr64), 0,
                    1/*#VTs*/, MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:x86mmx 519:iPTR, VR64:x86mmx:$src1, VR64:x86mmx:$src2) - Complexity = 8
                // Dst: (MMX_PSIGNDrr64:x86mmx VR64:x86mmx:$src1, VR64:x86mmx:$src2)
/*21912*/     0, /*End of Scope*/
/*21913*/   /*Scope*/ 54, /*->21968*/
/*21914*/     OPC_CheckInteger, 92|128,1/*220*/, 
/*21917*/     OPC_MoveParent,
/*21918*/     OPC_RecordChild1, // #0 = $src1
/*21919*/     OPC_Scope, 33, /*->21954*/ // 2 children in Scope
/*21921*/       OPC_MoveChild, 2,
/*21923*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*21926*/       OPC_RecordMemRef,
/*21927*/       OPC_RecordNode, // #1 = 'ld' chained node
/*21928*/       OPC_CheckFoldableChainNode,
/*21929*/       OPC_RecordChild1, // #2 = $src2
/*21930*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*21932*/       OPC_CheckPredicate, 3, // Predicate_load
/*21934*/       OPC_MoveParent,
/*21935*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*21937*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*21940*/       OPC_EmitMergeInputChains1_1,
/*21941*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PANDirm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_wo_chain:x86mmx 220:iPTR, VR64:x86mmx:$src1, (ld:x86mmx addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                // Dst: (MMX_PANDirm:x86mmx VR64:x86mmx:$src1, addr:iPTR:$src2)
/*21954*/     /*Scope*/ 12, /*->21967*/
/*21955*/       OPC_RecordChild2, // #1 = $src2
/*21956*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*21958*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PANDirr), 0,
                    1/*#VTs*/, MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:x86mmx 220:iPTR, VR64:x86mmx:$src1, VR64:x86mmx:$src2) - Complexity = 8
                // Dst: (MMX_PANDirr:x86mmx VR64:x86mmx:$src1, VR64:x86mmx:$src2)
/*21967*/     0, /*End of Scope*/
/*21968*/   /*Scope*/ 54, /*->22023*/
/*21969*/     OPC_CheckInteger, 114|128,1/*242*/, 
/*21972*/     OPC_MoveParent,
/*21973*/     OPC_RecordChild1, // #0 = $src1
/*21974*/     OPC_Scope, 33, /*->22009*/ // 2 children in Scope
/*21976*/       OPC_MoveChild, 2,
/*21978*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*21981*/       OPC_RecordMemRef,
/*21982*/       OPC_RecordNode, // #1 = 'ld' chained node
/*21983*/       OPC_CheckFoldableChainNode,
/*21984*/       OPC_RecordChild1, // #2 = $src2
/*21985*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*21987*/       OPC_CheckPredicate, 3, // Predicate_load
/*21989*/       OPC_MoveParent,
/*21990*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*21992*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*21995*/       OPC_EmitMergeInputChains1_1,
/*21996*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PORirm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_wo_chain:x86mmx 242:iPTR, VR64:x86mmx:$src1, (ld:x86mmx addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                // Dst: (MMX_PORirm:x86mmx VR64:x86mmx:$src1, addr:iPTR:$src2)
/*22009*/     /*Scope*/ 12, /*->22022*/
/*22010*/       OPC_RecordChild2, // #1 = $src2
/*22011*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*22013*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PORirr), 0,
                    1/*#VTs*/, MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:x86mmx 242:iPTR, VR64:x86mmx:$src1, VR64:x86mmx:$src2) - Complexity = 8
                // Dst: (MMX_PORirr:x86mmx VR64:x86mmx:$src1, VR64:x86mmx:$src2)
/*22022*/     0, /*End of Scope*/
/*22023*/   /*Scope*/ 54, /*->22078*/
/*22024*/     OPC_CheckInteger, 18|128,2/*274*/, 
/*22027*/     OPC_MoveParent,
/*22028*/     OPC_RecordChild1, // #0 = $src1
/*22029*/     OPC_Scope, 33, /*->22064*/ // 2 children in Scope
/*22031*/       OPC_MoveChild, 2,
/*22033*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*22036*/       OPC_RecordMemRef,
/*22037*/       OPC_RecordNode, // #1 = 'ld' chained node
/*22038*/       OPC_CheckFoldableChainNode,
/*22039*/       OPC_RecordChild1, // #2 = $src2
/*22040*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*22042*/       OPC_CheckPredicate, 3, // Predicate_load
/*22044*/       OPC_MoveParent,
/*22045*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*22047*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*22050*/       OPC_EmitMergeInputChains1_1,
/*22051*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PXORirm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_wo_chain:x86mmx 274:iPTR, VR64:x86mmx:$src1, (ld:x86mmx addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                // Dst: (MMX_PXORirm:x86mmx VR64:x86mmx:$src1, addr:iPTR:$src2)
/*22064*/     /*Scope*/ 12, /*->22077*/
/*22065*/       OPC_RecordChild2, // #1 = $src2
/*22066*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*22068*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PXORirr), 0,
                    1/*#VTs*/, MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:x86mmx 274:iPTR, VR64:x86mmx:$src1, VR64:x86mmx:$src2) - Complexity = 8
                // Dst: (MMX_PXORirr:x86mmx VR64:x86mmx:$src1, VR64:x86mmx:$src2)
/*22077*/     0, /*End of Scope*/
/*22078*/   /*Scope*/ 54, /*->22133*/
/*22079*/     OPC_CheckInteger, 93|128,1/*221*/, 
/*22082*/     OPC_MoveParent,
/*22083*/     OPC_RecordChild1, // #0 = $src1
/*22084*/     OPC_Scope, 33, /*->22119*/ // 2 children in Scope
/*22086*/       OPC_MoveChild, 2,
/*22088*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*22091*/       OPC_RecordMemRef,
/*22092*/       OPC_RecordNode, // #1 = 'ld' chained node
/*22093*/       OPC_CheckFoldableChainNode,
/*22094*/       OPC_RecordChild1, // #2 = $src2
/*22095*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*22097*/       OPC_CheckPredicate, 3, // Predicate_load
/*22099*/       OPC_MoveParent,
/*22100*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*22102*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*22105*/       OPC_EmitMergeInputChains1_1,
/*22106*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PANDNirm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_wo_chain:x86mmx 221:iPTR, VR64:x86mmx:$src1, (ld:x86mmx addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                // Dst: (MMX_PANDNirm:x86mmx VR64:x86mmx:$src1, addr:iPTR:$src2)
/*22119*/     /*Scope*/ 12, /*->22132*/
/*22120*/       OPC_RecordChild2, // #1 = $src2
/*22121*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*22123*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PANDNirr), 0,
                    1/*#VTs*/, MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:x86mmx 221:iPTR, VR64:x86mmx:$src1, VR64:x86mmx:$src2) - Complexity = 8
                // Dst: (MMX_PANDNirr:x86mmx VR64:x86mmx:$src1, VR64:x86mmx:$src2)
/*22132*/     0, /*End of Scope*/
/*22133*/   /*Scope*/ 54, /*->22188*/
/*22134*/     OPC_CheckInteger, 0|128,2/*256*/, 
/*22137*/     OPC_MoveParent,
/*22138*/     OPC_RecordChild1, // #0 = $src1
/*22139*/     OPC_Scope, 33, /*->22174*/ // 2 children in Scope
/*22141*/       OPC_MoveChild, 2,
/*22143*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*22146*/       OPC_RecordMemRef,
/*22147*/       OPC_RecordNode, // #1 = 'ld' chained node
/*22148*/       OPC_CheckFoldableChainNode,
/*22149*/       OPC_RecordChild1, // #2 = $src2
/*22150*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*22152*/       OPC_CheckPredicate, 3, // Predicate_load
/*22154*/       OPC_MoveParent,
/*22155*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*22157*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*22160*/       OPC_EmitMergeInputChains1_1,
/*22161*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PSRLWrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_wo_chain:x86mmx 256:iPTR, VR64:x86mmx:$src1, (ld:x86mmx addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                // Dst: (MMX_PSRLWrm:x86mmx VR64:x86mmx:$src1, addr:iPTR:$src2)
/*22174*/     /*Scope*/ 12, /*->22187*/
/*22175*/       OPC_RecordChild2, // #1 = $src2
/*22176*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*22178*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PSRLWrr), 0,
                    1/*#VTs*/, MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:x86mmx 256:iPTR, VR64:x86mmx:$src1, VR64:x86mmx:$src2) - Complexity = 8
                // Dst: (MMX_PSRLWrr:x86mmx VR64:x86mmx:$src1, VR64:x86mmx:$src2)
/*22187*/     0, /*End of Scope*/
/*22188*/   /*Scope*/ 54, /*->22243*/
/*22189*/     OPC_CheckInteger, 126|128,1/*254*/, 
/*22192*/     OPC_MoveParent,
/*22193*/     OPC_RecordChild1, // #0 = $src1
/*22194*/     OPC_Scope, 33, /*->22229*/ // 2 children in Scope
/*22196*/       OPC_MoveChild, 2,
/*22198*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*22201*/       OPC_RecordMemRef,
/*22202*/       OPC_RecordNode, // #1 = 'ld' chained node
/*22203*/       OPC_CheckFoldableChainNode,
/*22204*/       OPC_RecordChild1, // #2 = $src2
/*22205*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*22207*/       OPC_CheckPredicate, 3, // Predicate_load
/*22209*/       OPC_MoveParent,
/*22210*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*22212*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*22215*/       OPC_EmitMergeInputChains1_1,
/*22216*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PSRLDrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_wo_chain:x86mmx 254:iPTR, VR64:x86mmx:$src1, (ld:x86mmx addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                // Dst: (MMX_PSRLDrm:x86mmx VR64:x86mmx:$src1, addr:iPTR:$src2)
/*22229*/     /*Scope*/ 12, /*->22242*/
/*22230*/       OPC_RecordChild2, // #1 = $src2
/*22231*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*22233*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PSRLDrr), 0,
                    1/*#VTs*/, MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:x86mmx 254:iPTR, VR64:x86mmx:$src1, VR64:x86mmx:$src2) - Complexity = 8
                // Dst: (MMX_PSRLDrr:x86mmx VR64:x86mmx:$src1, VR64:x86mmx:$src2)
/*22242*/     0, /*End of Scope*/
/*22243*/   /*Scope*/ 54, /*->22298*/
/*22244*/     OPC_CheckInteger, 127|128,1/*255*/, 
/*22247*/     OPC_MoveParent,
/*22248*/     OPC_RecordChild1, // #0 = $src1
/*22249*/     OPC_Scope, 33, /*->22284*/ // 2 children in Scope
/*22251*/       OPC_MoveChild, 2,
/*22253*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*22256*/       OPC_RecordMemRef,
/*22257*/       OPC_RecordNode, // #1 = 'ld' chained node
/*22258*/       OPC_CheckFoldableChainNode,
/*22259*/       OPC_RecordChild1, // #2 = $src2
/*22260*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*22262*/       OPC_CheckPredicate, 3, // Predicate_load
/*22264*/       OPC_MoveParent,
/*22265*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*22267*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*22270*/       OPC_EmitMergeInputChains1_1,
/*22271*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PSRLQrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_wo_chain:x86mmx 255:iPTR, VR64:x86mmx:$src1, (ld:x86mmx addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                // Dst: (MMX_PSRLQrm:x86mmx VR64:x86mmx:$src1, addr:iPTR:$src2)
/*22284*/     /*Scope*/ 12, /*->22297*/
/*22285*/       OPC_RecordChild2, // #1 = $src2
/*22286*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*22288*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PSRLQrr), 0,
                    1/*#VTs*/, MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:x86mmx 255:iPTR, VR64:x86mmx:$src1, VR64:x86mmx:$src2) - Complexity = 8
                // Dst: (MMX_PSRLQrr:x86mmx VR64:x86mmx:$src1, VR64:x86mmx:$src2)
/*22297*/     0, /*End of Scope*/
/*22298*/   /*Scope*/ 54, /*->22353*/
/*22299*/     OPC_CheckInteger, 118|128,1/*246*/, 
/*22302*/     OPC_MoveParent,
/*22303*/     OPC_RecordChild1, // #0 = $src1
/*22304*/     OPC_Scope, 33, /*->22339*/ // 2 children in Scope
/*22306*/       OPC_MoveChild, 2,
/*22308*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*22311*/       OPC_RecordMemRef,
/*22312*/       OPC_RecordNode, // #1 = 'ld' chained node
/*22313*/       OPC_CheckFoldableChainNode,
/*22314*/       OPC_RecordChild1, // #2 = $src2
/*22315*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*22317*/       OPC_CheckPredicate, 3, // Predicate_load
/*22319*/       OPC_MoveParent,
/*22320*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*22322*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*22325*/       OPC_EmitMergeInputChains1_1,
/*22326*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PSLLWrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_wo_chain:x86mmx 246:iPTR, VR64:x86mmx:$src1, (ld:x86mmx addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                // Dst: (MMX_PSLLWrm:x86mmx VR64:x86mmx:$src1, addr:iPTR:$src2)
/*22339*/     /*Scope*/ 12, /*->22352*/
/*22340*/       OPC_RecordChild2, // #1 = $src2
/*22341*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*22343*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PSLLWrr), 0,
                    1/*#VTs*/, MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:x86mmx 246:iPTR, VR64:x86mmx:$src1, VR64:x86mmx:$src2) - Complexity = 8
                // Dst: (MMX_PSLLWrr:x86mmx VR64:x86mmx:$src1, VR64:x86mmx:$src2)
/*22352*/     0, /*End of Scope*/
/*22353*/   /*Scope*/ 54, /*->22408*/
/*22354*/     OPC_CheckInteger, 116|128,1/*244*/, 
/*22357*/     OPC_MoveParent,
/*22358*/     OPC_RecordChild1, // #0 = $src1
/*22359*/     OPC_Scope, 33, /*->22394*/ // 2 children in Scope
/*22361*/       OPC_MoveChild, 2,
/*22363*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*22366*/       OPC_RecordMemRef,
/*22367*/       OPC_RecordNode, // #1 = 'ld' chained node
/*22368*/       OPC_CheckFoldableChainNode,
/*22369*/       OPC_RecordChild1, // #2 = $src2
/*22370*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*22372*/       OPC_CheckPredicate, 3, // Predicate_load
/*22374*/       OPC_MoveParent,
/*22375*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*22377*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*22380*/       OPC_EmitMergeInputChains1_1,
/*22381*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PSLLDrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_wo_chain:x86mmx 244:iPTR, VR64:x86mmx:$src1, (ld:x86mmx addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                // Dst: (MMX_PSLLDrm:x86mmx VR64:x86mmx:$src1, addr:iPTR:$src2)
/*22394*/     /*Scope*/ 12, /*->22407*/
/*22395*/       OPC_RecordChild2, // #1 = $src2
/*22396*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*22398*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PSLLDrr), 0,
                    1/*#VTs*/, MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:x86mmx 244:iPTR, VR64:x86mmx:$src1, VR64:x86mmx:$src2) - Complexity = 8
                // Dst: (MMX_PSLLDrr:x86mmx VR64:x86mmx:$src1, VR64:x86mmx:$src2)
/*22407*/     0, /*End of Scope*/
/*22408*/   /*Scope*/ 54, /*->22463*/
/*22409*/     OPC_CheckInteger, 117|128,1/*245*/, 
/*22412*/     OPC_MoveParent,
/*22413*/     OPC_RecordChild1, // #0 = $src1
/*22414*/     OPC_Scope, 33, /*->22449*/ // 2 children in Scope
/*22416*/       OPC_MoveChild, 2,
/*22418*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*22421*/       OPC_RecordMemRef,
/*22422*/       OPC_RecordNode, // #1 = 'ld' chained node
/*22423*/       OPC_CheckFoldableChainNode,
/*22424*/       OPC_RecordChild1, // #2 = $src2
/*22425*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*22427*/       OPC_CheckPredicate, 3, // Predicate_load
/*22429*/       OPC_MoveParent,
/*22430*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*22432*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*22435*/       OPC_EmitMergeInputChains1_1,
/*22436*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PSLLQrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_wo_chain:x86mmx 245:iPTR, VR64:x86mmx:$src1, (ld:x86mmx addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                // Dst: (MMX_PSLLQrm:x86mmx VR64:x86mmx:$src1, addr:iPTR:$src2)
/*22449*/     /*Scope*/ 12, /*->22462*/
/*22450*/       OPC_RecordChild2, // #1 = $src2
/*22451*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*22453*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PSLLQrr), 0,
                    1/*#VTs*/, MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:x86mmx 245:iPTR, VR64:x86mmx:$src1, VR64:x86mmx:$src2) - Complexity = 8
                // Dst: (MMX_PSLLQrr:x86mmx VR64:x86mmx:$src1, VR64:x86mmx:$src2)
/*22462*/     0, /*End of Scope*/
/*22463*/   /*Scope*/ 54, /*->22518*/
/*22464*/     OPC_CheckInteger, 123|128,1/*251*/, 
/*22467*/     OPC_MoveParent,
/*22468*/     OPC_RecordChild1, // #0 = $src1
/*22469*/     OPC_Scope, 33, /*->22504*/ // 2 children in Scope
/*22471*/       OPC_MoveChild, 2,
/*22473*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*22476*/       OPC_RecordMemRef,
/*22477*/       OPC_RecordNode, // #1 = 'ld' chained node
/*22478*/       OPC_CheckFoldableChainNode,
/*22479*/       OPC_RecordChild1, // #2 = $src2
/*22480*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*22482*/       OPC_CheckPredicate, 3, // Predicate_load
/*22484*/       OPC_MoveParent,
/*22485*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*22487*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*22490*/       OPC_EmitMergeInputChains1_1,
/*22491*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PSRAWrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_wo_chain:x86mmx 251:iPTR, VR64:x86mmx:$src1, (ld:x86mmx addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                // Dst: (MMX_PSRAWrm:x86mmx VR64:x86mmx:$src1, addr:iPTR:$src2)
/*22504*/     /*Scope*/ 12, /*->22517*/
/*22505*/       OPC_RecordChild2, // #1 = $src2
/*22506*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*22508*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PSRAWrr), 0,
                    1/*#VTs*/, MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:x86mmx 251:iPTR, VR64:x86mmx:$src1, VR64:x86mmx:$src2) - Complexity = 8
                // Dst: (MMX_PSRAWrr:x86mmx VR64:x86mmx:$src1, VR64:x86mmx:$src2)
/*22517*/     0, /*End of Scope*/
/*22518*/   /*Scope*/ 54, /*->22573*/
/*22519*/     OPC_CheckInteger, 122|128,1/*250*/, 
/*22522*/     OPC_MoveParent,
/*22523*/     OPC_RecordChild1, // #0 = $src1
/*22524*/     OPC_Scope, 33, /*->22559*/ // 2 children in Scope
/*22526*/       OPC_MoveChild, 2,
/*22528*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*22531*/       OPC_RecordMemRef,
/*22532*/       OPC_RecordNode, // #1 = 'ld' chained node
/*22533*/       OPC_CheckFoldableChainNode,
/*22534*/       OPC_RecordChild1, // #2 = $src2
/*22535*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*22537*/       OPC_CheckPredicate, 3, // Predicate_load
/*22539*/       OPC_MoveParent,
/*22540*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*22542*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*22545*/       OPC_EmitMergeInputChains1_1,
/*22546*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PSRADrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_wo_chain:x86mmx 250:iPTR, VR64:x86mmx:$src1, (ld:x86mmx addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                // Dst: (MMX_PSRADrm:x86mmx VR64:x86mmx:$src1, addr:iPTR:$src2)
/*22559*/     /*Scope*/ 12, /*->22572*/
/*22560*/       OPC_RecordChild2, // #1 = $src2
/*22561*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*22563*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PSRADrr), 0,
                    1/*#VTs*/, MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:x86mmx 250:iPTR, VR64:x86mmx:$src1, VR64:x86mmx:$src2) - Complexity = 8
                // Dst: (MMX_PSRADrr:x86mmx VR64:x86mmx:$src1, VR64:x86mmx:$src2)
/*22572*/     0, /*End of Scope*/
/*22573*/   /*Scope*/ 54, /*->22628*/
/*22574*/     OPC_CheckInteger, 96|128,1/*224*/, 
/*22577*/     OPC_MoveParent,
/*22578*/     OPC_RecordChild1, // #0 = $src1
/*22579*/     OPC_Scope, 33, /*->22614*/ // 2 children in Scope
/*22581*/       OPC_MoveChild, 2,
/*22583*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*22586*/       OPC_RecordMemRef,
/*22587*/       OPC_RecordNode, // #1 = 'ld' chained node
/*22588*/       OPC_CheckFoldableChainNode,
/*22589*/       OPC_RecordChild1, // #2 = $src2
/*22590*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*22592*/       OPC_CheckPredicate, 3, // Predicate_load
/*22594*/       OPC_MoveParent,
/*22595*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*22597*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*22600*/       OPC_EmitMergeInputChains1_1,
/*22601*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PCMPEQBirm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_wo_chain:x86mmx 224:iPTR, VR64:x86mmx:$src1, (ld:x86mmx addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                // Dst: (MMX_PCMPEQBirm:x86mmx VR64:x86mmx:$src1, addr:iPTR:$src2)
/*22614*/     /*Scope*/ 12, /*->22627*/
/*22615*/       OPC_RecordChild2, // #1 = $src2
/*22616*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*22618*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PCMPEQBirr), 0,
                    1/*#VTs*/, MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:x86mmx 224:iPTR, VR64:x86mmx:$src1, VR64:x86mmx:$src2) - Complexity = 8
                // Dst: (MMX_PCMPEQBirr:x86mmx VR64:x86mmx:$src1, VR64:x86mmx:$src2)
/*22627*/     0, /*End of Scope*/
/*22628*/   /*Scope*/ 54, /*->22683*/
/*22629*/     OPC_CheckInteger, 98|128,1/*226*/, 
/*22632*/     OPC_MoveParent,
/*22633*/     OPC_RecordChild1, // #0 = $src1
/*22634*/     OPC_Scope, 33, /*->22669*/ // 2 children in Scope
/*22636*/       OPC_MoveChild, 2,
/*22638*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*22641*/       OPC_RecordMemRef,
/*22642*/       OPC_RecordNode, // #1 = 'ld' chained node
/*22643*/       OPC_CheckFoldableChainNode,
/*22644*/       OPC_RecordChild1, // #2 = $src2
/*22645*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*22647*/       OPC_CheckPredicate, 3, // Predicate_load
/*22649*/       OPC_MoveParent,
/*22650*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*22652*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*22655*/       OPC_EmitMergeInputChains1_1,
/*22656*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PCMPEQWirm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_wo_chain:x86mmx 226:iPTR, VR64:x86mmx:$src1, (ld:x86mmx addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                // Dst: (MMX_PCMPEQWirm:x86mmx VR64:x86mmx:$src1, addr:iPTR:$src2)
/*22669*/     /*Scope*/ 12, /*->22682*/
/*22670*/       OPC_RecordChild2, // #1 = $src2
/*22671*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*22673*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PCMPEQWirr), 0,
                    1/*#VTs*/, MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:x86mmx 226:iPTR, VR64:x86mmx:$src1, VR64:x86mmx:$src2) - Complexity = 8
                // Dst: (MMX_PCMPEQWirr:x86mmx VR64:x86mmx:$src1, VR64:x86mmx:$src2)
/*22682*/     0, /*End of Scope*/
/*22683*/   /*Scope*/ 54, /*->22738*/
/*22684*/     OPC_CheckInteger, 97|128,1/*225*/, 
/*22687*/     OPC_MoveParent,
/*22688*/     OPC_RecordChild1, // #0 = $src1
/*22689*/     OPC_Scope, 33, /*->22724*/ // 2 children in Scope
/*22691*/       OPC_MoveChild, 2,
/*22693*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*22696*/       OPC_RecordMemRef,
/*22697*/       OPC_RecordNode, // #1 = 'ld' chained node
/*22698*/       OPC_CheckFoldableChainNode,
/*22699*/       OPC_RecordChild1, // #2 = $src2
/*22700*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*22702*/       OPC_CheckPredicate, 3, // Predicate_load
/*22704*/       OPC_MoveParent,
/*22705*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*22707*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*22710*/       OPC_EmitMergeInputChains1_1,
/*22711*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PCMPEQDirm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_wo_chain:x86mmx 225:iPTR, VR64:x86mmx:$src1, (ld:x86mmx addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                // Dst: (MMX_PCMPEQDirm:x86mmx VR64:x86mmx:$src1, addr:iPTR:$src2)
/*22724*/     /*Scope*/ 12, /*->22737*/
/*22725*/       OPC_RecordChild2, // #1 = $src2
/*22726*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*22728*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PCMPEQDirr), 0,
                    1/*#VTs*/, MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:x86mmx 225:iPTR, VR64:x86mmx:$src1, VR64:x86mmx:$src2) - Complexity = 8
                // Dst: (MMX_PCMPEQDirr:x86mmx VR64:x86mmx:$src1, VR64:x86mmx:$src2)
/*22737*/     0, /*End of Scope*/
/*22738*/   /*Scope*/ 54, /*->22793*/
/*22739*/     OPC_CheckInteger, 99|128,1/*227*/, 
/*22742*/     OPC_MoveParent,
/*22743*/     OPC_RecordChild1, // #0 = $src1
/*22744*/     OPC_Scope, 33, /*->22779*/ // 2 children in Scope
/*22746*/       OPC_MoveChild, 2,
/*22748*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*22751*/       OPC_RecordMemRef,
/*22752*/       OPC_RecordNode, // #1 = 'ld' chained node
/*22753*/       OPC_CheckFoldableChainNode,
/*22754*/       OPC_RecordChild1, // #2 = $src2
/*22755*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*22757*/       OPC_CheckPredicate, 3, // Predicate_load
/*22759*/       OPC_MoveParent,
/*22760*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*22762*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*22765*/       OPC_EmitMergeInputChains1_1,
/*22766*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PCMPGTBirm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_wo_chain:x86mmx 227:iPTR, VR64:x86mmx:$src1, (ld:x86mmx addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                // Dst: (MMX_PCMPGTBirm:x86mmx VR64:x86mmx:$src1, addr:iPTR:$src2)
/*22779*/     /*Scope*/ 12, /*->22792*/
/*22780*/       OPC_RecordChild2, // #1 = $src2
/*22781*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*22783*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PCMPGTBirr), 0,
                    1/*#VTs*/, MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:x86mmx 227:iPTR, VR64:x86mmx:$src1, VR64:x86mmx:$src2) - Complexity = 8
                // Dst: (MMX_PCMPGTBirr:x86mmx VR64:x86mmx:$src1, VR64:x86mmx:$src2)
/*22792*/     0, /*End of Scope*/
/*22793*/   /*Scope*/ 54, /*->22848*/
/*22794*/     OPC_CheckInteger, 101|128,1/*229*/, 
/*22797*/     OPC_MoveParent,
/*22798*/     OPC_RecordChild1, // #0 = $src1
/*22799*/     OPC_Scope, 33, /*->22834*/ // 2 children in Scope
/*22801*/       OPC_MoveChild, 2,
/*22803*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*22806*/       OPC_RecordMemRef,
/*22807*/       OPC_RecordNode, // #1 = 'ld' chained node
/*22808*/       OPC_CheckFoldableChainNode,
/*22809*/       OPC_RecordChild1, // #2 = $src2
/*22810*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*22812*/       OPC_CheckPredicate, 3, // Predicate_load
/*22814*/       OPC_MoveParent,
/*22815*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*22817*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*22820*/       OPC_EmitMergeInputChains1_1,
/*22821*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PCMPGTWirm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_wo_chain:x86mmx 229:iPTR, VR64:x86mmx:$src1, (ld:x86mmx addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                // Dst: (MMX_PCMPGTWirm:x86mmx VR64:x86mmx:$src1, addr:iPTR:$src2)
/*22834*/     /*Scope*/ 12, /*->22847*/
/*22835*/       OPC_RecordChild2, // #1 = $src2
/*22836*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*22838*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PCMPGTWirr), 0,
                    1/*#VTs*/, MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:x86mmx 229:iPTR, VR64:x86mmx:$src1, VR64:x86mmx:$src2) - Complexity = 8
                // Dst: (MMX_PCMPGTWirr:x86mmx VR64:x86mmx:$src1, VR64:x86mmx:$src2)
/*22847*/     0, /*End of Scope*/
/*22848*/   /*Scope*/ 54, /*->22903*/
/*22849*/     OPC_CheckInteger, 100|128,1/*228*/, 
/*22852*/     OPC_MoveParent,
/*22853*/     OPC_RecordChild1, // #0 = $src1
/*22854*/     OPC_Scope, 33, /*->22889*/ // 2 children in Scope
/*22856*/       OPC_MoveChild, 2,
/*22858*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*22861*/       OPC_RecordMemRef,
/*22862*/       OPC_RecordNode, // #1 = 'ld' chained node
/*22863*/       OPC_CheckFoldableChainNode,
/*22864*/       OPC_RecordChild1, // #2 = $src2
/*22865*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*22867*/       OPC_CheckPredicate, 3, // Predicate_load
/*22869*/       OPC_MoveParent,
/*22870*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*22872*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*22875*/       OPC_EmitMergeInputChains1_1,
/*22876*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PCMPGTDirm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_wo_chain:x86mmx 228:iPTR, VR64:x86mmx:$src1, (ld:x86mmx addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                // Dst: (MMX_PCMPGTDirm:x86mmx VR64:x86mmx:$src1, addr:iPTR:$src2)
/*22889*/     /*Scope*/ 12, /*->22902*/
/*22890*/       OPC_RecordChild2, // #1 = $src2
/*22891*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*22893*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PCMPGTDirr), 0,
                    1/*#VTs*/, MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:x86mmx 228:iPTR, VR64:x86mmx:$src1, VR64:x86mmx:$src2) - Complexity = 8
                // Dst: (MMX_PCMPGTDirr:x86mmx VR64:x86mmx:$src1, VR64:x86mmx:$src2)
/*22902*/     0, /*End of Scope*/
/*22903*/   /*Scope*/ 54, /*->22958*/
/*22904*/     OPC_CheckInteger, 12|128,2/*268*/, 
/*22907*/     OPC_MoveParent,
/*22908*/     OPC_RecordChild1, // #0 = $src1
/*22909*/     OPC_Scope, 33, /*->22944*/ // 2 children in Scope
/*22911*/       OPC_MoveChild, 2,
/*22913*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*22916*/       OPC_RecordMemRef,
/*22917*/       OPC_RecordNode, // #1 = 'ld' chained node
/*22918*/       OPC_CheckFoldableChainNode,
/*22919*/       OPC_RecordChild1, // #2 = $src2
/*22920*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*22922*/       OPC_CheckPredicate, 3, // Predicate_load
/*22924*/       OPC_MoveParent,
/*22925*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*22927*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*22930*/       OPC_EmitMergeInputChains1_1,
/*22931*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PUNPCKHBWirm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_wo_chain:x86mmx 268:iPTR, VR64:x86mmx:$src1, (ld:x86mmx addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                // Dst: (MMX_PUNPCKHBWirm:x86mmx VR64:x86mmx:$src1, addr:iPTR:$src2)
/*22944*/     /*Scope*/ 12, /*->22957*/
/*22945*/       OPC_RecordChild2, // #1 = $src2
/*22946*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*22948*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PUNPCKHBWirr), 0,
                    1/*#VTs*/, MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:x86mmx 268:iPTR, VR64:x86mmx:$src1, VR64:x86mmx:$src2) - Complexity = 8
                // Dst: (MMX_PUNPCKHBWirr:x86mmx VR64:x86mmx:$src1, VR64:x86mmx:$src2)
/*22957*/     0, /*End of Scope*/
/*22958*/   /*Scope*/ 54, /*->23013*/
/*22959*/     OPC_CheckInteger, 14|128,2/*270*/, 
/*22962*/     OPC_MoveParent,
/*22963*/     OPC_RecordChild1, // #0 = $src1
/*22964*/     OPC_Scope, 33, /*->22999*/ // 2 children in Scope
/*22966*/       OPC_MoveChild, 2,
/*22968*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*22971*/       OPC_RecordMemRef,
/*22972*/       OPC_RecordNode, // #1 = 'ld' chained node
/*22973*/       OPC_CheckFoldableChainNode,
/*22974*/       OPC_RecordChild1, // #2 = $src2
/*22975*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*22977*/       OPC_CheckPredicate, 3, // Predicate_load
/*22979*/       OPC_MoveParent,
/*22980*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*22982*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*22985*/       OPC_EmitMergeInputChains1_1,
/*22986*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PUNPCKHWDirm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_wo_chain:x86mmx 270:iPTR, VR64:x86mmx:$src1, (ld:x86mmx addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                // Dst: (MMX_PUNPCKHWDirm:x86mmx VR64:x86mmx:$src1, addr:iPTR:$src2)
/*22999*/     /*Scope*/ 12, /*->23012*/
/*23000*/       OPC_RecordChild2, // #1 = $src2
/*23001*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*23003*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PUNPCKHWDirr), 0,
                    1/*#VTs*/, MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:x86mmx 270:iPTR, VR64:x86mmx:$src1, VR64:x86mmx:$src2) - Complexity = 8
                // Dst: (MMX_PUNPCKHWDirr:x86mmx VR64:x86mmx:$src1, VR64:x86mmx:$src2)
/*23012*/     0, /*End of Scope*/
/*23013*/   /*Scope*/ 54, /*->23068*/
/*23014*/     OPC_CheckInteger, 13|128,2/*269*/, 
/*23017*/     OPC_MoveParent,
/*23018*/     OPC_RecordChild1, // #0 = $src1
/*23019*/     OPC_Scope, 33, /*->23054*/ // 2 children in Scope
/*23021*/       OPC_MoveChild, 2,
/*23023*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*23026*/       OPC_RecordMemRef,
/*23027*/       OPC_RecordNode, // #1 = 'ld' chained node
/*23028*/       OPC_CheckFoldableChainNode,
/*23029*/       OPC_RecordChild1, // #2 = $src2
/*23030*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*23032*/       OPC_CheckPredicate, 3, // Predicate_load
/*23034*/       OPC_MoveParent,
/*23035*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*23037*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*23040*/       OPC_EmitMergeInputChains1_1,
/*23041*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PUNPCKHDQirm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_wo_chain:x86mmx 269:iPTR, VR64:x86mmx:$src1, (ld:x86mmx addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                // Dst: (MMX_PUNPCKHDQirm:x86mmx VR64:x86mmx:$src1, addr:iPTR:$src2)
/*23054*/     /*Scope*/ 12, /*->23067*/
/*23055*/       OPC_RecordChild2, // #1 = $src2
/*23056*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*23058*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PUNPCKHDQirr), 0,
                    1/*#VTs*/, MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:x86mmx 269:iPTR, VR64:x86mmx:$src1, VR64:x86mmx:$src2) - Complexity = 8
                // Dst: (MMX_PUNPCKHDQirr:x86mmx VR64:x86mmx:$src1, VR64:x86mmx:$src2)
/*23067*/     0, /*End of Scope*/
/*23068*/   /*Scope*/ 54, /*->23123*/
/*23069*/     OPC_CheckInteger, 15|128,2/*271*/, 
/*23072*/     OPC_MoveParent,
/*23073*/     OPC_RecordChild1, // #0 = $src1
/*23074*/     OPC_Scope, 33, /*->23109*/ // 2 children in Scope
/*23076*/       OPC_MoveChild, 2,
/*23078*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*23081*/       OPC_RecordMemRef,
/*23082*/       OPC_RecordNode, // #1 = 'ld' chained node
/*23083*/       OPC_CheckFoldableChainNode,
/*23084*/       OPC_RecordChild1, // #2 = $src2
/*23085*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*23087*/       OPC_CheckPredicate, 3, // Predicate_load
/*23089*/       OPC_MoveParent,
/*23090*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*23092*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*23095*/       OPC_EmitMergeInputChains1_1,
/*23096*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PUNPCKLBWirm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_wo_chain:x86mmx 271:iPTR, VR64:x86mmx:$src1, (ld:x86mmx addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                // Dst: (MMX_PUNPCKLBWirm:x86mmx VR64:x86mmx:$src1, addr:iPTR:$src2)
/*23109*/     /*Scope*/ 12, /*->23122*/
/*23110*/       OPC_RecordChild2, // #1 = $src2
/*23111*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*23113*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PUNPCKLBWirr), 0,
                    1/*#VTs*/, MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:x86mmx 271:iPTR, VR64:x86mmx:$src1, VR64:x86mmx:$src2) - Complexity = 8
                // Dst: (MMX_PUNPCKLBWirr:x86mmx VR64:x86mmx:$src1, VR64:x86mmx:$src2)
/*23122*/     0, /*End of Scope*/
/*23123*/   /*Scope*/ 54, /*->23178*/
/*23124*/     OPC_CheckInteger, 17|128,2/*273*/, 
/*23127*/     OPC_MoveParent,
/*23128*/     OPC_RecordChild1, // #0 = $src1
/*23129*/     OPC_Scope, 33, /*->23164*/ // 2 children in Scope
/*23131*/       OPC_MoveChild, 2,
/*23133*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*23136*/       OPC_RecordMemRef,
/*23137*/       OPC_RecordNode, // #1 = 'ld' chained node
/*23138*/       OPC_CheckFoldableChainNode,
/*23139*/       OPC_RecordChild1, // #2 = $src2
/*23140*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*23142*/       OPC_CheckPredicate, 3, // Predicate_load
/*23144*/       OPC_MoveParent,
/*23145*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*23147*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*23150*/       OPC_EmitMergeInputChains1_1,
/*23151*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PUNPCKLWDirm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_wo_chain:x86mmx 273:iPTR, VR64:x86mmx:$src1, (ld:x86mmx addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                // Dst: (MMX_PUNPCKLWDirm:x86mmx VR64:x86mmx:$src1, addr:iPTR:$src2)
/*23164*/     /*Scope*/ 12, /*->23177*/
/*23165*/       OPC_RecordChild2, // #1 = $src2
/*23166*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*23168*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PUNPCKLWDirr), 0,
                    1/*#VTs*/, MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:x86mmx 273:iPTR, VR64:x86mmx:$src1, VR64:x86mmx:$src2) - Complexity = 8
                // Dst: (MMX_PUNPCKLWDirr:x86mmx VR64:x86mmx:$src1, VR64:x86mmx:$src2)
/*23177*/     0, /*End of Scope*/
/*23178*/   /*Scope*/ 54, /*->23233*/
/*23179*/     OPC_CheckInteger, 16|128,2/*272*/, 
/*23182*/     OPC_MoveParent,
/*23183*/     OPC_RecordChild1, // #0 = $src1
/*23184*/     OPC_Scope, 33, /*->23219*/ // 2 children in Scope
/*23186*/       OPC_MoveChild, 2,
/*23188*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*23191*/       OPC_RecordMemRef,
/*23192*/       OPC_RecordNode, // #1 = 'ld' chained node
/*23193*/       OPC_CheckFoldableChainNode,
/*23194*/       OPC_RecordChild1, // #2 = $src2
/*23195*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*23197*/       OPC_CheckPredicate, 3, // Predicate_load
/*23199*/       OPC_MoveParent,
/*23200*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*23202*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*23205*/       OPC_EmitMergeInputChains1_1,
/*23206*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PUNPCKLDQirm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_wo_chain:x86mmx 272:iPTR, VR64:x86mmx:$src1, (ld:x86mmx addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                // Dst: (MMX_PUNPCKLDQirm:x86mmx VR64:x86mmx:$src1, addr:iPTR:$src2)
/*23219*/     /*Scope*/ 12, /*->23232*/
/*23220*/       OPC_RecordChild2, // #1 = $src2
/*23221*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*23223*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PUNPCKLDQirr), 0,
                    1/*#VTs*/, MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:x86mmx 272:iPTR, VR64:x86mmx:$src1, VR64:x86mmx:$src2) - Complexity = 8
                // Dst: (MMX_PUNPCKLDQirr:x86mmx VR64:x86mmx:$src1, VR64:x86mmx:$src2)
/*23232*/     0, /*End of Scope*/
/*23233*/   /*Scope*/ 54, /*->23288*/
/*23234*/     OPC_CheckInteger, 81|128,1/*209*/, 
/*23237*/     OPC_MoveParent,
/*23238*/     OPC_RecordChild1, // #0 = $src1
/*23239*/     OPC_Scope, 33, /*->23274*/ // 2 children in Scope
/*23241*/       OPC_MoveChild, 2,
/*23243*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*23246*/       OPC_RecordMemRef,
/*23247*/       OPC_RecordNode, // #1 = 'ld' chained node
/*23248*/       OPC_CheckFoldableChainNode,
/*23249*/       OPC_RecordChild1, // #2 = $src2
/*23250*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*23252*/       OPC_CheckPredicate, 3, // Predicate_load
/*23254*/       OPC_MoveParent,
/*23255*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*23257*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*23260*/       OPC_EmitMergeInputChains1_1,
/*23261*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PACKSSWBirm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_wo_chain:x86mmx 209:iPTR, VR64:x86mmx:$src1, (ld:x86mmx addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                // Dst: (MMX_PACKSSWBirm:x86mmx VR64:x86mmx:$src1, addr:iPTR:$src2)
/*23274*/     /*Scope*/ 12, /*->23287*/
/*23275*/       OPC_RecordChild2, // #1 = $src2
/*23276*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*23278*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PACKSSWBirr), 0,
                    1/*#VTs*/, MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:x86mmx 209:iPTR, VR64:x86mmx:$src1, VR64:x86mmx:$src2) - Complexity = 8
                // Dst: (MMX_PACKSSWBirr:x86mmx VR64:x86mmx:$src1, VR64:x86mmx:$src2)
/*23287*/     0, /*End of Scope*/
/*23288*/   /*Scope*/ 54, /*->23343*/
/*23289*/     OPC_CheckInteger, 80|128,1/*208*/, 
/*23292*/     OPC_MoveParent,
/*23293*/     OPC_RecordChild1, // #0 = $src1
/*23294*/     OPC_Scope, 33, /*->23329*/ // 2 children in Scope
/*23296*/       OPC_MoveChild, 2,
/*23298*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*23301*/       OPC_RecordMemRef,
/*23302*/       OPC_RecordNode, // #1 = 'ld' chained node
/*23303*/       OPC_CheckFoldableChainNode,
/*23304*/       OPC_RecordChild1, // #2 = $src2
/*23305*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*23307*/       OPC_CheckPredicate, 3, // Predicate_load
/*23309*/       OPC_MoveParent,
/*23310*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*23312*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*23315*/       OPC_EmitMergeInputChains1_1,
/*23316*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PACKSSDWirm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_wo_chain:x86mmx 208:iPTR, VR64:x86mmx:$src1, (ld:x86mmx addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                // Dst: (MMX_PACKSSDWirm:x86mmx VR64:x86mmx:$src1, addr:iPTR:$src2)
/*23329*/     /*Scope*/ 12, /*->23342*/
/*23330*/       OPC_RecordChild2, // #1 = $src2
/*23331*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*23333*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PACKSSDWirr), 0,
                    1/*#VTs*/, MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:x86mmx 208:iPTR, VR64:x86mmx:$src1, VR64:x86mmx:$src2) - Complexity = 8
                // Dst: (MMX_PACKSSDWirr:x86mmx VR64:x86mmx:$src1, VR64:x86mmx:$src2)
/*23342*/     0, /*End of Scope*/
/*23343*/   /*Scope*/ 54, /*->23398*/
/*23344*/     OPC_CheckInteger, 82|128,1/*210*/, 
/*23347*/     OPC_MoveParent,
/*23348*/     OPC_RecordChild1, // #0 = $src1
/*23349*/     OPC_Scope, 33, /*->23384*/ // 2 children in Scope
/*23351*/       OPC_MoveChild, 2,
/*23353*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*23356*/       OPC_RecordMemRef,
/*23357*/       OPC_RecordNode, // #1 = 'ld' chained node
/*23358*/       OPC_CheckFoldableChainNode,
/*23359*/       OPC_RecordChild1, // #2 = $src2
/*23360*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*23362*/       OPC_CheckPredicate, 3, // Predicate_load
/*23364*/       OPC_MoveParent,
/*23365*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*23367*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*23370*/       OPC_EmitMergeInputChains1_1,
/*23371*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PACKUSWBirm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_wo_chain:x86mmx 210:iPTR, VR64:x86mmx:$src1, (ld:x86mmx addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                // Dst: (MMX_PACKUSWBirm:x86mmx VR64:x86mmx:$src1, addr:iPTR:$src2)
/*23384*/     /*Scope*/ 12, /*->23397*/
/*23385*/       OPC_RecordChild2, // #1 = $src2
/*23386*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*23388*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PACKUSWBirr), 0,
                    1/*#VTs*/, MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:x86mmx 210:iPTR, VR64:x86mmx:$src1, VR64:x86mmx:$src2) - Complexity = 8
                // Dst: (MMX_PACKUSWBirr:x86mmx VR64:x86mmx:$src1, VR64:x86mmx:$src2)
/*23397*/     0, /*End of Scope*/
/*23398*/   /*Scope*/ 56, /*->23455*/
/*23399*/     OPC_CheckInteger, 3|128,4/*515*/, 
/*23402*/     OPC_MoveParent,
/*23403*/     OPC_RecordChild1, // #0 = $src1
/*23404*/     OPC_Scope, 35, /*->23441*/ // 2 children in Scope
/*23406*/       OPC_MoveChild, 2,
/*23408*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*23411*/       OPC_RecordMemRef,
/*23412*/       OPC_RecordNode, // #1 = 'ld' chained node
/*23413*/       OPC_CheckFoldableChainNode,
/*23414*/       OPC_RecordChild1, // #2 = $src2
/*23415*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*23417*/       OPC_CheckPredicate, 3, // Predicate_load
/*23419*/       OPC_CheckPredicate, 22, // Predicate_memop64
/*23421*/       OPC_MoveParent,
/*23422*/       OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*23424*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*23427*/       OPC_EmitMergeInputChains1_1,
/*23428*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PSHUFBrm64), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_wo_chain:x86mmx 515:iPTR, VR64:x86mmx:$src1, (ld:x86mmx addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop64>>) - Complexity = 30
                // Dst: (MMX_PSHUFBrm64:x86mmx VR64:x86mmx:$src1, addr:iPTR:$src2)
/*23441*/     /*Scope*/ 12, /*->23454*/
/*23442*/       OPC_RecordChild2, // #1 = $src2
/*23443*/       OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*23445*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PSHUFBrr64), 0,
                    1/*#VTs*/, MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:x86mmx 515:iPTR, VR64:x86mmx:$src1, VR64:x86mmx:$src2) - Complexity = 8
                // Dst: (MMX_PSHUFBrr64:x86mmx VR64:x86mmx:$src1, VR64:x86mmx:$src2)
/*23454*/     0, /*End of Scope*/
/*23455*/   /*Scope*/ 51, /*->23507*/
/*23456*/     OPC_CheckInteger, 75|128,3/*459*/, 
/*23459*/     OPC_MoveParent,
/*23460*/     OPC_Scope, 32, /*->23494*/ // 2 children in Scope
/*23462*/       OPC_MoveChild, 1,
/*23464*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*23467*/       OPC_RecordMemRef,
/*23468*/       OPC_RecordNode, // #0 = 'ld' chained node
/*23469*/       OPC_CheckFoldableChainNode,
/*23470*/       OPC_RecordChild1, // #1 = $src
/*23471*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*23473*/       OPC_CheckPredicate, 3, // Predicate_load
/*23475*/       OPC_MoveParent,
/*23476*/       OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*23478*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*23481*/       OPC_EmitMergeInputChains1_0,
/*23482*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_CVTPS2PIirm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::x86mmx, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (intrinsic_wo_chain:x86mmx 459:iPTR, (ld:v4f32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                // Dst: (MMX_CVTPS2PIirm:x86mmx addr:iPTR:$src)
/*23494*/     /*Scope*/ 11, /*->23506*/
/*23495*/       OPC_RecordChild1, // #0 = $src
/*23496*/       OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*23498*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_CVTPS2PIirr), 0,
                    1/*#VTs*/, MVT::x86mmx, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:x86mmx 459:iPTR, VR128:v4f32:$src) - Complexity = 8
                // Dst: (MMX_CVTPS2PIirr:x86mmx VR128:v4f32:$src)
/*23506*/     0, /*End of Scope*/
/*23507*/   /*Scope*/ 53, /*->23561*/
/*23508*/     OPC_CheckInteger, 72|128,3/*456*/, 
/*23511*/     OPC_MoveParent,
/*23512*/     OPC_Scope, 34, /*->23548*/ // 2 children in Scope
/*23514*/       OPC_MoveChild, 1,
/*23516*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*23519*/       OPC_RecordMemRef,
/*23520*/       OPC_RecordNode, // #0 = 'ld' chained node
/*23521*/       OPC_CheckFoldableChainNode,
/*23522*/       OPC_RecordChild1, // #1 = $src
/*23523*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*23525*/       OPC_CheckPredicate, 3, // Predicate_load
/*23527*/       OPC_CheckPredicate, 23, // Predicate_memop
/*23529*/       OPC_MoveParent,
/*23530*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*23532*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*23535*/       OPC_EmitMergeInputChains1_0,
/*23536*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_CVTPD2PIirm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::x86mmx, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (intrinsic_wo_chain:x86mmx 456:iPTR, (ld:v2f64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 30
                // Dst: (MMX_CVTPD2PIirm:x86mmx addr:iPTR:$src)
/*23548*/     /*Scope*/ 11, /*->23560*/
/*23549*/       OPC_RecordChild1, // #0 = $src
/*23550*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*23552*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_CVTPD2PIirr), 0,
                    1/*#VTs*/, MVT::x86mmx, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:x86mmx 456:iPTR, VR128:v2f64:$src) - Complexity = 8
                // Dst: (MMX_CVTPD2PIirr:x86mmx VR128:v2f64:$src)
/*23560*/     0, /*End of Scope*/
/*23561*/   /*Scope*/ 51, /*->23613*/
/*23562*/     OPC_CheckInteger, 81|128,3/*465*/, 
/*23565*/     OPC_MoveParent,
/*23566*/     OPC_Scope, 32, /*->23600*/ // 2 children in Scope
/*23568*/       OPC_MoveChild, 1,
/*23570*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*23573*/       OPC_RecordMemRef,
/*23574*/       OPC_RecordNode, // #0 = 'ld' chained node
/*23575*/       OPC_CheckFoldableChainNode,
/*23576*/       OPC_RecordChild1, // #1 = $src
/*23577*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*23579*/       OPC_CheckPredicate, 3, // Predicate_load
/*23581*/       OPC_MoveParent,
/*23582*/       OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*23584*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*23587*/       OPC_EmitMergeInputChains1_0,
/*23588*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_CVTTPS2PIirm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::x86mmx, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (intrinsic_wo_chain:x86mmx 465:iPTR, (ld:v4f32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                // Dst: (MMX_CVTTPS2PIirm:x86mmx addr:iPTR:$src)
/*23600*/     /*Scope*/ 11, /*->23612*/
/*23601*/       OPC_RecordChild1, // #0 = $src
/*23602*/       OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*23604*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_CVTTPS2PIirr), 0,
                    1/*#VTs*/, MVT::x86mmx, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:x86mmx 465:iPTR, VR128:v4f32:$src) - Complexity = 8
                // Dst: (MMX_CVTTPS2PIirr:x86mmx VR128:v4f32:$src)
/*23612*/     0, /*End of Scope*/
/*23613*/   /*Scope*/ 53, /*->23667*/
/*23614*/     OPC_CheckInteger, 80|128,3/*464*/, 
/*23617*/     OPC_MoveParent,
/*23618*/     OPC_Scope, 34, /*->23654*/ // 2 children in Scope
/*23620*/       OPC_MoveChild, 1,
/*23622*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*23625*/       OPC_RecordMemRef,
/*23626*/       OPC_RecordNode, // #0 = 'ld' chained node
/*23627*/       OPC_CheckFoldableChainNode,
/*23628*/       OPC_RecordChild1, // #1 = $src
/*23629*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*23631*/       OPC_CheckPredicate, 3, // Predicate_load
/*23633*/       OPC_CheckPredicate, 23, // Predicate_memop
/*23635*/       OPC_MoveParent,
/*23636*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*23638*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*23641*/       OPC_EmitMergeInputChains1_0,
/*23642*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_CVTTPD2PIirm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::x86mmx, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (intrinsic_wo_chain:x86mmx 464:iPTR, (ld:v2f64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 30
                // Dst: (MMX_CVTTPD2PIirm:x86mmx addr:iPTR:$src)
/*23654*/     /*Scope*/ 11, /*->23666*/
/*23655*/       OPC_RecordChild1, // #0 = $src
/*23656*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*23658*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_CVTTPD2PIirr), 0,
                    1/*#VTs*/, MVT::x86mmx, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:x86mmx 464:iPTR, VR128:v2f64:$src) - Complexity = 8
                // Dst: (MMX_CVTTPD2PIirr:x86mmx VR128:v2f64:$src)
/*23666*/     0, /*End of Scope*/
/*23667*/   /*Scope*/ 53, /*->23721*/
/*23668*/     OPC_CheckInteger, 83, 
/*23670*/     OPC_MoveParent,
/*23671*/     OPC_RecordChild1, // #0 = $src1
/*23672*/     OPC_Scope, 33, /*->23707*/ // 2 children in Scope
/*23674*/       OPC_MoveChild, 2,
/*23676*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*23679*/       OPC_RecordMemRef,
/*23680*/       OPC_RecordNode, // #1 = 'ld' chained node
/*23681*/       OPC_CheckFoldableChainNode,
/*23682*/       OPC_RecordChild1, // #2 = $src2
/*23683*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*23685*/       OPC_CheckPredicate, 3, // Predicate_load
/*23687*/       OPC_MoveParent,
/*23688*/       OPC_CheckPatternPredicate, 13, // (Subtarget->has3DNow())
/*23690*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*23693*/       OPC_EmitMergeInputChains1_1,
/*23694*/       OPC_MorphNodeTo, TARGET_VAL(X86::PAVGUSBrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_wo_chain:x86mmx 83:iPTR, VR64:x86mmx:$src1, (ld:x86mmx addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                // Dst: (PAVGUSBrm:x86mmx VR64:x86mmx:$src1, addr:iPTR:$src2)
/*23707*/     /*Scope*/ 12, /*->23720*/
/*23708*/       OPC_RecordChild2, // #1 = $src2
/*23709*/       OPC_CheckPatternPredicate, 13, // (Subtarget->has3DNow())
/*23711*/       OPC_MorphNodeTo, TARGET_VAL(X86::PAVGUSBrr), 0,
                    1/*#VTs*/, MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:x86mmx 83:iPTR, VR64:x86mmx:$src1, VR64:x86mmx:$src2) - Complexity = 8
                // Dst: (PAVGUSBrr:x86mmx VR64:x86mmx:$src1, VR64:x86mmx:$src2)
/*23720*/     0, /*End of Scope*/
/*23721*/   /*Scope*/ 50, /*->23772*/
/*23722*/     OPC_CheckInteger, 84, 
/*23724*/     OPC_MoveParent,
/*23725*/     OPC_Scope, 32, /*->23759*/ // 2 children in Scope
/*23727*/       OPC_MoveChild, 1,
/*23729*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*23732*/       OPC_RecordMemRef,
/*23733*/       OPC_RecordNode, // #0 = 'ld' chained node
/*23734*/       OPC_CheckFoldableChainNode,
/*23735*/       OPC_RecordChild1, // #1 = $src
/*23736*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*23738*/       OPC_CheckPredicate, 3, // Predicate_load
/*23740*/       OPC_MoveParent,
/*23741*/       OPC_CheckPatternPredicate, 13, // (Subtarget->has3DNow())
/*23743*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*23746*/       OPC_EmitMergeInputChains1_0,
/*23747*/       OPC_MorphNodeTo, TARGET_VAL(X86::PF2IDrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::x86mmx, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (intrinsic_wo_chain:x86mmx 84:iPTR, (ld:x86mmx addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                // Dst: (PF2IDrm:x86mmx addr:iPTR:$src)
/*23759*/     /*Scope*/ 11, /*->23771*/
/*23760*/       OPC_RecordChild1, // #0 = $src
/*23761*/       OPC_CheckPatternPredicate, 13, // (Subtarget->has3DNow())
/*23763*/       OPC_MorphNodeTo, TARGET_VAL(X86::PF2IDrr), 0,
                    1/*#VTs*/, MVT::x86mmx, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:x86mmx 84:iPTR, VR64:x86mmx:$src) - Complexity = 8
                // Dst: (PF2IDrr:x86mmx VR64:x86mmx:$src)
/*23771*/     0, /*End of Scope*/
/*23772*/   /*Scope*/ 53, /*->23826*/
/*23773*/     OPC_CheckInteger, 85, 
/*23775*/     OPC_MoveParent,
/*23776*/     OPC_RecordChild1, // #0 = $src1
/*23777*/     OPC_Scope, 33, /*->23812*/ // 2 children in Scope
/*23779*/       OPC_MoveChild, 2,
/*23781*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*23784*/       OPC_RecordMemRef,
/*23785*/       OPC_RecordNode, // #1 = 'ld' chained node
/*23786*/       OPC_CheckFoldableChainNode,
/*23787*/       OPC_RecordChild1, // #2 = $src2
/*23788*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*23790*/       OPC_CheckPredicate, 3, // Predicate_load
/*23792*/       OPC_MoveParent,
/*23793*/       OPC_CheckPatternPredicate, 13, // (Subtarget->has3DNow())
/*23795*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*23798*/       OPC_EmitMergeInputChains1_1,
/*23799*/       OPC_MorphNodeTo, TARGET_VAL(X86::PFACCrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_wo_chain:x86mmx 85:iPTR, VR64:x86mmx:$src1, (ld:x86mmx addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                // Dst: (PFACCrm:x86mmx VR64:x86mmx:$src1, addr:iPTR:$src2)
/*23812*/     /*Scope*/ 12, /*->23825*/
/*23813*/       OPC_RecordChild2, // #1 = $src2
/*23814*/       OPC_CheckPatternPredicate, 13, // (Subtarget->has3DNow())
/*23816*/       OPC_MorphNodeTo, TARGET_VAL(X86::PFACCrr), 0,
                    1/*#VTs*/, MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:x86mmx 85:iPTR, VR64:x86mmx:$src1, VR64:x86mmx:$src2) - Complexity = 8
                // Dst: (PFACCrr:x86mmx VR64:x86mmx:$src1, VR64:x86mmx:$src2)
/*23825*/     0, /*End of Scope*/
/*23826*/   /*Scope*/ 53, /*->23880*/
/*23827*/     OPC_CheckInteger, 86, 
/*23829*/     OPC_MoveParent,
/*23830*/     OPC_RecordChild1, // #0 = $src1
/*23831*/     OPC_Scope, 33, /*->23866*/ // 2 children in Scope
/*23833*/       OPC_MoveChild, 2,
/*23835*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*23838*/       OPC_RecordMemRef,
/*23839*/       OPC_RecordNode, // #1 = 'ld' chained node
/*23840*/       OPC_CheckFoldableChainNode,
/*23841*/       OPC_RecordChild1, // #2 = $src2
/*23842*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*23844*/       OPC_CheckPredicate, 3, // Predicate_load
/*23846*/       OPC_MoveParent,
/*23847*/       OPC_CheckPatternPredicate, 13, // (Subtarget->has3DNow())
/*23849*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*23852*/       OPC_EmitMergeInputChains1_1,
/*23853*/       OPC_MorphNodeTo, TARGET_VAL(X86::PFADDrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_wo_chain:x86mmx 86:iPTR, VR64:x86mmx:$src1, (ld:x86mmx addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                // Dst: (PFADDrm:x86mmx VR64:x86mmx:$src1, addr:iPTR:$src2)
/*23866*/     /*Scope*/ 12, /*->23879*/
/*23867*/       OPC_RecordChild2, // #1 = $src2
/*23868*/       OPC_CheckPatternPredicate, 13, // (Subtarget->has3DNow())
/*23870*/       OPC_MorphNodeTo, TARGET_VAL(X86::PFADDrr), 0,
                    1/*#VTs*/, MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:x86mmx 86:iPTR, VR64:x86mmx:$src1, VR64:x86mmx:$src2) - Complexity = 8
                // Dst: (PFADDrr:x86mmx VR64:x86mmx:$src1, VR64:x86mmx:$src2)
/*23879*/     0, /*End of Scope*/
/*23880*/   /*Scope*/ 53, /*->23934*/
/*23881*/     OPC_CheckInteger, 87, 
/*23883*/     OPC_MoveParent,
/*23884*/     OPC_RecordChild1, // #0 = $src1
/*23885*/     OPC_Scope, 33, /*->23920*/ // 2 children in Scope
/*23887*/       OPC_MoveChild, 2,
/*23889*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*23892*/       OPC_RecordMemRef,
/*23893*/       OPC_RecordNode, // #1 = 'ld' chained node
/*23894*/       OPC_CheckFoldableChainNode,
/*23895*/       OPC_RecordChild1, // #2 = $src2
/*23896*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*23898*/       OPC_CheckPredicate, 3, // Predicate_load
/*23900*/       OPC_MoveParent,
/*23901*/       OPC_CheckPatternPredicate, 13, // (Subtarget->has3DNow())
/*23903*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*23906*/       OPC_EmitMergeInputChains1_1,
/*23907*/       OPC_MorphNodeTo, TARGET_VAL(X86::PFCMPEQrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_wo_chain:x86mmx 87:iPTR, VR64:x86mmx:$src1, (ld:x86mmx addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                // Dst: (PFCMPEQrm:x86mmx VR64:x86mmx:$src1, addr:iPTR:$src2)
/*23920*/     /*Scope*/ 12, /*->23933*/
/*23921*/       OPC_RecordChild2, // #1 = $src2
/*23922*/       OPC_CheckPatternPredicate, 13, // (Subtarget->has3DNow())
/*23924*/       OPC_MorphNodeTo, TARGET_VAL(X86::PFCMPEQrr), 0,
                    1/*#VTs*/, MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:x86mmx 87:iPTR, VR64:x86mmx:$src1, VR64:x86mmx:$src2) - Complexity = 8
                // Dst: (PFCMPEQrr:x86mmx VR64:x86mmx:$src1, VR64:x86mmx:$src2)
/*23933*/     0, /*End of Scope*/
/*23934*/   /*Scope*/ 53, /*->23988*/
/*23935*/     OPC_CheckInteger, 88, 
/*23937*/     OPC_MoveParent,
/*23938*/     OPC_RecordChild1, // #0 = $src1
/*23939*/     OPC_Scope, 33, /*->23974*/ // 2 children in Scope
/*23941*/       OPC_MoveChild, 2,
/*23943*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*23946*/       OPC_RecordMemRef,
/*23947*/       OPC_RecordNode, // #1 = 'ld' chained node
/*23948*/       OPC_CheckFoldableChainNode,
/*23949*/       OPC_RecordChild1, // #2 = $src2
/*23950*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*23952*/       OPC_CheckPredicate, 3, // Predicate_load
/*23954*/       OPC_MoveParent,
/*23955*/       OPC_CheckPatternPredicate, 13, // (Subtarget->has3DNow())
/*23957*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*23960*/       OPC_EmitMergeInputChains1_1,
/*23961*/       OPC_MorphNodeTo, TARGET_VAL(X86::PFCMPGErm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_wo_chain:x86mmx 88:iPTR, VR64:x86mmx:$src1, (ld:x86mmx addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                // Dst: (PFCMPGErm:x86mmx VR64:x86mmx:$src1, addr:iPTR:$src2)
/*23974*/     /*Scope*/ 12, /*->23987*/
/*23975*/       OPC_RecordChild2, // #1 = $src2
/*23976*/       OPC_CheckPatternPredicate, 13, // (Subtarget->has3DNow())
/*23978*/       OPC_MorphNodeTo, TARGET_VAL(X86::PFCMPGErr), 0,
                    1/*#VTs*/, MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:x86mmx 88:iPTR, VR64:x86mmx:$src1, VR64:x86mmx:$src2) - Complexity = 8
                // Dst: (PFCMPGErr:x86mmx VR64:x86mmx:$src1, VR64:x86mmx:$src2)
/*23987*/     0, /*End of Scope*/
/*23988*/   /*Scope*/ 53, /*->24042*/
/*23989*/     OPC_CheckInteger, 89, 
/*23991*/     OPC_MoveParent,
/*23992*/     OPC_RecordChild1, // #0 = $src1
/*23993*/     OPC_Scope, 33, /*->24028*/ // 2 children in Scope
/*23995*/       OPC_MoveChild, 2,
/*23997*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*24000*/       OPC_RecordMemRef,
/*24001*/       OPC_RecordNode, // #1 = 'ld' chained node
/*24002*/       OPC_CheckFoldableChainNode,
/*24003*/       OPC_RecordChild1, // #2 = $src2
/*24004*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*24006*/       OPC_CheckPredicate, 3, // Predicate_load
/*24008*/       OPC_MoveParent,
/*24009*/       OPC_CheckPatternPredicate, 13, // (Subtarget->has3DNow())
/*24011*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*24014*/       OPC_EmitMergeInputChains1_1,
/*24015*/       OPC_MorphNodeTo, TARGET_VAL(X86::PFCMPGTrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_wo_chain:x86mmx 89:iPTR, VR64:x86mmx:$src1, (ld:x86mmx addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                // Dst: (PFCMPGTrm:x86mmx VR64:x86mmx:$src1, addr:iPTR:$src2)
/*24028*/     /*Scope*/ 12, /*->24041*/
/*24029*/       OPC_RecordChild2, // #1 = $src2
/*24030*/       OPC_CheckPatternPredicate, 13, // (Subtarget->has3DNow())
/*24032*/       OPC_MorphNodeTo, TARGET_VAL(X86::PFCMPGTrr), 0,
                    1/*#VTs*/, MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:x86mmx 89:iPTR, VR64:x86mmx:$src1, VR64:x86mmx:$src2) - Complexity = 8
                // Dst: (PFCMPGTrr:x86mmx VR64:x86mmx:$src1, VR64:x86mmx:$src2)
/*24041*/     0, /*End of Scope*/
/*24042*/   /*Scope*/ 53, /*->24096*/
/*24043*/     OPC_CheckInteger, 90, 
/*24045*/     OPC_MoveParent,
/*24046*/     OPC_RecordChild1, // #0 = $src1
/*24047*/     OPC_Scope, 33, /*->24082*/ // 2 children in Scope
/*24049*/       OPC_MoveChild, 2,
/*24051*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*24054*/       OPC_RecordMemRef,
/*24055*/       OPC_RecordNode, // #1 = 'ld' chained node
/*24056*/       OPC_CheckFoldableChainNode,
/*24057*/       OPC_RecordChild1, // #2 = $src2
/*24058*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*24060*/       OPC_CheckPredicate, 3, // Predicate_load
/*24062*/       OPC_MoveParent,
/*24063*/       OPC_CheckPatternPredicate, 13, // (Subtarget->has3DNow())
/*24065*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*24068*/       OPC_EmitMergeInputChains1_1,
/*24069*/       OPC_MorphNodeTo, TARGET_VAL(X86::PFMAXrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_wo_chain:x86mmx 90:iPTR, VR64:x86mmx:$src1, (ld:x86mmx addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                // Dst: (PFMAXrm:x86mmx VR64:x86mmx:$src1, addr:iPTR:$src2)
/*24082*/     /*Scope*/ 12, /*->24095*/
/*24083*/       OPC_RecordChild2, // #1 = $src2
/*24084*/       OPC_CheckPatternPredicate, 13, // (Subtarget->has3DNow())
/*24086*/       OPC_MorphNodeTo, TARGET_VAL(X86::PFMAXrr), 0,
                    1/*#VTs*/, MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:x86mmx 90:iPTR, VR64:x86mmx:$src1, VR64:x86mmx:$src2) - Complexity = 8
                // Dst: (PFMAXrr:x86mmx VR64:x86mmx:$src1, VR64:x86mmx:$src2)
/*24095*/     0, /*End of Scope*/
/*24096*/   /*Scope*/ 53, /*->24150*/
/*24097*/     OPC_CheckInteger, 91, 
/*24099*/     OPC_MoveParent,
/*24100*/     OPC_RecordChild1, // #0 = $src1
/*24101*/     OPC_Scope, 33, /*->24136*/ // 2 children in Scope
/*24103*/       OPC_MoveChild, 2,
/*24105*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*24108*/       OPC_RecordMemRef,
/*24109*/       OPC_RecordNode, // #1 = 'ld' chained node
/*24110*/       OPC_CheckFoldableChainNode,
/*24111*/       OPC_RecordChild1, // #2 = $src2
/*24112*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*24114*/       OPC_CheckPredicate, 3, // Predicate_load
/*24116*/       OPC_MoveParent,
/*24117*/       OPC_CheckPatternPredicate, 13, // (Subtarget->has3DNow())
/*24119*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*24122*/       OPC_EmitMergeInputChains1_1,
/*24123*/       OPC_MorphNodeTo, TARGET_VAL(X86::PFMINrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_wo_chain:x86mmx 91:iPTR, VR64:x86mmx:$src1, (ld:x86mmx addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                // Dst: (PFMINrm:x86mmx VR64:x86mmx:$src1, addr:iPTR:$src2)
/*24136*/     /*Scope*/ 12, /*->24149*/
/*24137*/       OPC_RecordChild2, // #1 = $src2
/*24138*/       OPC_CheckPatternPredicate, 13, // (Subtarget->has3DNow())
/*24140*/       OPC_MorphNodeTo, TARGET_VAL(X86::PFMINrr), 0,
                    1/*#VTs*/, MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:x86mmx 91:iPTR, VR64:x86mmx:$src1, VR64:x86mmx:$src2) - Complexity = 8
                // Dst: (PFMINrr:x86mmx VR64:x86mmx:$src1, VR64:x86mmx:$src2)
/*24149*/     0, /*End of Scope*/
/*24150*/   /*Scope*/ 53, /*->24204*/
/*24151*/     OPC_CheckInteger, 92, 
/*24153*/     OPC_MoveParent,
/*24154*/     OPC_RecordChild1, // #0 = $src1
/*24155*/     OPC_Scope, 33, /*->24190*/ // 2 children in Scope
/*24157*/       OPC_MoveChild, 2,
/*24159*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*24162*/       OPC_RecordMemRef,
/*24163*/       OPC_RecordNode, // #1 = 'ld' chained node
/*24164*/       OPC_CheckFoldableChainNode,
/*24165*/       OPC_RecordChild1, // #2 = $src2
/*24166*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*24168*/       OPC_CheckPredicate, 3, // Predicate_load
/*24170*/       OPC_MoveParent,
/*24171*/       OPC_CheckPatternPredicate, 13, // (Subtarget->has3DNow())
/*24173*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*24176*/       OPC_EmitMergeInputChains1_1,
/*24177*/       OPC_MorphNodeTo, TARGET_VAL(X86::PFMULrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_wo_chain:x86mmx 92:iPTR, VR64:x86mmx:$src1, (ld:x86mmx addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                // Dst: (PFMULrm:x86mmx VR64:x86mmx:$src1, addr:iPTR:$src2)
/*24190*/     /*Scope*/ 12, /*->24203*/
/*24191*/       OPC_RecordChild2, // #1 = $src2
/*24192*/       OPC_CheckPatternPredicate, 13, // (Subtarget->has3DNow())
/*24194*/       OPC_MorphNodeTo, TARGET_VAL(X86::PFMULrr), 0,
                    1/*#VTs*/, MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:x86mmx 92:iPTR, VR64:x86mmx:$src1, VR64:x86mmx:$src2) - Complexity = 8
                // Dst: (PFMULrr:x86mmx VR64:x86mmx:$src1, VR64:x86mmx:$src2)
/*24203*/     0, /*End of Scope*/
/*24204*/   /*Scope*/ 50, /*->24255*/
/*24205*/     OPC_CheckInteger, 93, 
/*24207*/     OPC_MoveParent,
/*24208*/     OPC_Scope, 32, /*->24242*/ // 2 children in Scope
/*24210*/       OPC_MoveChild, 1,
/*24212*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*24215*/       OPC_RecordMemRef,
/*24216*/       OPC_RecordNode, // #0 = 'ld' chained node
/*24217*/       OPC_CheckFoldableChainNode,
/*24218*/       OPC_RecordChild1, // #1 = $src
/*24219*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*24221*/       OPC_CheckPredicate, 3, // Predicate_load
/*24223*/       OPC_MoveParent,
/*24224*/       OPC_CheckPatternPredicate, 13, // (Subtarget->has3DNow())
/*24226*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*24229*/       OPC_EmitMergeInputChains1_0,
/*24230*/       OPC_MorphNodeTo, TARGET_VAL(X86::PFRCPrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::x86mmx, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (intrinsic_wo_chain:x86mmx 93:iPTR, (ld:x86mmx addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                // Dst: (PFRCPrm:x86mmx addr:iPTR:$src)
/*24242*/     /*Scope*/ 11, /*->24254*/
/*24243*/       OPC_RecordChild1, // #0 = $src
/*24244*/       OPC_CheckPatternPredicate, 13, // (Subtarget->has3DNow())
/*24246*/       OPC_MorphNodeTo, TARGET_VAL(X86::PFRCPrr), 0,
                    1/*#VTs*/, MVT::x86mmx, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:x86mmx 93:iPTR, VR64:x86mmx:$src) - Complexity = 8
                // Dst: (PFRCPrr:x86mmx VR64:x86mmx:$src)
/*24254*/     0, /*End of Scope*/
/*24255*/   /*Scope*/ 53, /*->24309*/
/*24256*/     OPC_CheckInteger, 94, 
/*24258*/     OPC_MoveParent,
/*24259*/     OPC_RecordChild1, // #0 = $src1
/*24260*/     OPC_Scope, 33, /*->24295*/ // 2 children in Scope
/*24262*/       OPC_MoveChild, 2,
/*24264*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*24267*/       OPC_RecordMemRef,
/*24268*/       OPC_RecordNode, // #1 = 'ld' chained node
/*24269*/       OPC_CheckFoldableChainNode,
/*24270*/       OPC_RecordChild1, // #2 = $src2
/*24271*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*24273*/       OPC_CheckPredicate, 3, // Predicate_load
/*24275*/       OPC_MoveParent,
/*24276*/       OPC_CheckPatternPredicate, 13, // (Subtarget->has3DNow())
/*24278*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*24281*/       OPC_EmitMergeInputChains1_1,
/*24282*/       OPC_MorphNodeTo, TARGET_VAL(X86::PFRCPIT1rm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_wo_chain:x86mmx 94:iPTR, VR64:x86mmx:$src1, (ld:x86mmx addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                // Dst: (PFRCPIT1rm:x86mmx VR64:x86mmx:$src1, addr:iPTR:$src2)
/*24295*/     /*Scope*/ 12, /*->24308*/
/*24296*/       OPC_RecordChild2, // #1 = $src2
/*24297*/       OPC_CheckPatternPredicate, 13, // (Subtarget->has3DNow())
/*24299*/       OPC_MorphNodeTo, TARGET_VAL(X86::PFRCPIT1rr), 0,
                    1/*#VTs*/, MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:x86mmx 94:iPTR, VR64:x86mmx:$src1, VR64:x86mmx:$src2) - Complexity = 8
                // Dst: (PFRCPIT1rr:x86mmx VR64:x86mmx:$src1, VR64:x86mmx:$src2)
/*24308*/     0, /*End of Scope*/
/*24309*/   /*Scope*/ 53, /*->24363*/
/*24310*/     OPC_CheckInteger, 95, 
/*24312*/     OPC_MoveParent,
/*24313*/     OPC_RecordChild1, // #0 = $src1
/*24314*/     OPC_Scope, 33, /*->24349*/ // 2 children in Scope
/*24316*/       OPC_MoveChild, 2,
/*24318*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*24321*/       OPC_RecordMemRef,
/*24322*/       OPC_RecordNode, // #1 = 'ld' chained node
/*24323*/       OPC_CheckFoldableChainNode,
/*24324*/       OPC_RecordChild1, // #2 = $src2
/*24325*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*24327*/       OPC_CheckPredicate, 3, // Predicate_load
/*24329*/       OPC_MoveParent,
/*24330*/       OPC_CheckPatternPredicate, 13, // (Subtarget->has3DNow())
/*24332*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*24335*/       OPC_EmitMergeInputChains1_1,
/*24336*/       OPC_MorphNodeTo, TARGET_VAL(X86::PFRCPIT2rm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_wo_chain:x86mmx 95:iPTR, VR64:x86mmx:$src1, (ld:x86mmx addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                // Dst: (PFRCPIT2rm:x86mmx VR64:x86mmx:$src1, addr:iPTR:$src2)
/*24349*/     /*Scope*/ 12, /*->24362*/
/*24350*/       OPC_RecordChild2, // #1 = $src2
/*24351*/       OPC_CheckPatternPredicate, 13, // (Subtarget->has3DNow())
/*24353*/       OPC_MorphNodeTo, TARGET_VAL(X86::PFRCPIT2rr), 0,
                    1/*#VTs*/, MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:x86mmx 95:iPTR, VR64:x86mmx:$src1, VR64:x86mmx:$src2) - Complexity = 8
                // Dst: (PFRCPIT2rr:x86mmx VR64:x86mmx:$src1, VR64:x86mmx:$src2)
/*24362*/     0, /*End of Scope*/
/*24363*/   /*Scope*/ 53, /*->24417*/
/*24364*/     OPC_CheckInteger, 96, 
/*24366*/     OPC_MoveParent,
/*24367*/     OPC_RecordChild1, // #0 = $src1
/*24368*/     OPC_Scope, 33, /*->24403*/ // 2 children in Scope
/*24370*/       OPC_MoveChild, 2,
/*24372*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*24375*/       OPC_RecordMemRef,
/*24376*/       OPC_RecordNode, // #1 = 'ld' chained node
/*24377*/       OPC_CheckFoldableChainNode,
/*24378*/       OPC_RecordChild1, // #2 = $src2
/*24379*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*24381*/       OPC_CheckPredicate, 3, // Predicate_load
/*24383*/       OPC_MoveParent,
/*24384*/       OPC_CheckPatternPredicate, 13, // (Subtarget->has3DNow())
/*24386*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*24389*/       OPC_EmitMergeInputChains1_1,
/*24390*/       OPC_MorphNodeTo, TARGET_VAL(X86::PFRSQIT1rm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_wo_chain:x86mmx 96:iPTR, VR64:x86mmx:$src1, (ld:x86mmx addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                // Dst: (PFRSQIT1rm:x86mmx VR64:x86mmx:$src1, addr:iPTR:$src2)
/*24403*/     /*Scope*/ 12, /*->24416*/
/*24404*/       OPC_RecordChild2, // #1 = $src2
/*24405*/       OPC_CheckPatternPredicate, 13, // (Subtarget->has3DNow())
/*24407*/       OPC_MorphNodeTo, TARGET_VAL(X86::PFRSQIT1rr), 0,
                    1/*#VTs*/, MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:x86mmx 96:iPTR, VR64:x86mmx:$src1, VR64:x86mmx:$src2) - Complexity = 8
                // Dst: (PFRSQIT1rr:x86mmx VR64:x86mmx:$src1, VR64:x86mmx:$src2)
/*24416*/     0, /*End of Scope*/
/*24417*/   /*Scope*/ 50, /*->24468*/
/*24418*/     OPC_CheckInteger, 97, 
/*24420*/     OPC_MoveParent,
/*24421*/     OPC_Scope, 32, /*->24455*/ // 2 children in Scope
/*24423*/       OPC_MoveChild, 1,
/*24425*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*24428*/       OPC_RecordMemRef,
/*24429*/       OPC_RecordNode, // #0 = 'ld' chained node
/*24430*/       OPC_CheckFoldableChainNode,
/*24431*/       OPC_RecordChild1, // #1 = $src
/*24432*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*24434*/       OPC_CheckPredicate, 3, // Predicate_load
/*24436*/       OPC_MoveParent,
/*24437*/       OPC_CheckPatternPredicate, 13, // (Subtarget->has3DNow())
/*24439*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*24442*/       OPC_EmitMergeInputChains1_0,
/*24443*/       OPC_MorphNodeTo, TARGET_VAL(X86::PFRSQRTrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::x86mmx, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (intrinsic_wo_chain:x86mmx 97:iPTR, (ld:x86mmx addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                // Dst: (PFRSQRTrm:x86mmx addr:iPTR:$src)
/*24455*/     /*Scope*/ 11, /*->24467*/
/*24456*/       OPC_RecordChild1, // #0 = $src
/*24457*/       OPC_CheckPatternPredicate, 13, // (Subtarget->has3DNow())
/*24459*/       OPC_MorphNodeTo, TARGET_VAL(X86::PFRSQRTrr), 0,
                    1/*#VTs*/, MVT::x86mmx, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:x86mmx 97:iPTR, VR64:x86mmx:$src) - Complexity = 8
                // Dst: (PFRSQRTrr:x86mmx VR64:x86mmx:$src)
/*24467*/     0, /*End of Scope*/
/*24468*/   /*Scope*/ 53, /*->24522*/
/*24469*/     OPC_CheckInteger, 98, 
/*24471*/     OPC_MoveParent,
/*24472*/     OPC_RecordChild1, // #0 = $src1
/*24473*/     OPC_Scope, 33, /*->24508*/ // 2 children in Scope
/*24475*/       OPC_MoveChild, 2,
/*24477*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*24480*/       OPC_RecordMemRef,
/*24481*/       OPC_RecordNode, // #1 = 'ld' chained node
/*24482*/       OPC_CheckFoldableChainNode,
/*24483*/       OPC_RecordChild1, // #2 = $src2
/*24484*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*24486*/       OPC_CheckPredicate, 3, // Predicate_load
/*24488*/       OPC_MoveParent,
/*24489*/       OPC_CheckPatternPredicate, 13, // (Subtarget->has3DNow())
/*24491*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*24494*/       OPC_EmitMergeInputChains1_1,
/*24495*/       OPC_MorphNodeTo, TARGET_VAL(X86::PFSUBrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_wo_chain:x86mmx 98:iPTR, VR64:x86mmx:$src1, (ld:x86mmx addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                // Dst: (PFSUBrm:x86mmx VR64:x86mmx:$src1, addr:iPTR:$src2)
/*24508*/     /*Scope*/ 12, /*->24521*/
/*24509*/       OPC_RecordChild2, // #1 = $src2
/*24510*/       OPC_CheckPatternPredicate, 13, // (Subtarget->has3DNow())
/*24512*/       OPC_MorphNodeTo, TARGET_VAL(X86::PFSUBrr), 0,
                    1/*#VTs*/, MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:x86mmx 98:iPTR, VR64:x86mmx:$src1, VR64:x86mmx:$src2) - Complexity = 8
                // Dst: (PFSUBrr:x86mmx VR64:x86mmx:$src1, VR64:x86mmx:$src2)
/*24521*/     0, /*End of Scope*/
/*24522*/   /*Scope*/ 53, /*->24576*/
/*24523*/     OPC_CheckInteger, 99, 
/*24525*/     OPC_MoveParent,
/*24526*/     OPC_RecordChild1, // #0 = $src1
/*24527*/     OPC_Scope, 33, /*->24562*/ // 2 children in Scope
/*24529*/       OPC_MoveChild, 2,
/*24531*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*24534*/       OPC_RecordMemRef,
/*24535*/       OPC_RecordNode, // #1 = 'ld' chained node
/*24536*/       OPC_CheckFoldableChainNode,
/*24537*/       OPC_RecordChild1, // #2 = $src2
/*24538*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*24540*/       OPC_CheckPredicate, 3, // Predicate_load
/*24542*/       OPC_MoveParent,
/*24543*/       OPC_CheckPatternPredicate, 13, // (Subtarget->has3DNow())
/*24545*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*24548*/       OPC_EmitMergeInputChains1_1,
/*24549*/       OPC_MorphNodeTo, TARGET_VAL(X86::PFSUBRrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_wo_chain:x86mmx 99:iPTR, VR64:x86mmx:$src1, (ld:x86mmx addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                // Dst: (PFSUBRrm:x86mmx VR64:x86mmx:$src1, addr:iPTR:$src2)
/*24562*/     /*Scope*/ 12, /*->24575*/
/*24563*/       OPC_RecordChild2, // #1 = $src2
/*24564*/       OPC_CheckPatternPredicate, 13, // (Subtarget->has3DNow())
/*24566*/       OPC_MorphNodeTo, TARGET_VAL(X86::PFSUBRrr), 0,
                    1/*#VTs*/, MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:x86mmx 99:iPTR, VR64:x86mmx:$src1, VR64:x86mmx:$src2) - Complexity = 8
                // Dst: (PFSUBRrr:x86mmx VR64:x86mmx:$src1, VR64:x86mmx:$src2)
/*24575*/     0, /*End of Scope*/
/*24576*/   /*Scope*/ 50, /*->24627*/
/*24577*/     OPC_CheckInteger, 100, 
/*24579*/     OPC_MoveParent,
/*24580*/     OPC_Scope, 32, /*->24614*/ // 2 children in Scope
/*24582*/       OPC_MoveChild, 1,
/*24584*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*24587*/       OPC_RecordMemRef,
/*24588*/       OPC_RecordNode, // #0 = 'ld' chained node
/*24589*/       OPC_CheckFoldableChainNode,
/*24590*/       OPC_RecordChild1, // #1 = $src
/*24591*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*24593*/       OPC_CheckPredicate, 3, // Predicate_load
/*24595*/       OPC_MoveParent,
/*24596*/       OPC_CheckPatternPredicate, 13, // (Subtarget->has3DNow())
/*24598*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*24601*/       OPC_EmitMergeInputChains1_0,
/*24602*/       OPC_MorphNodeTo, TARGET_VAL(X86::PI2FDrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::x86mmx, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (intrinsic_wo_chain:x86mmx 100:iPTR, (ld:x86mmx addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                // Dst: (PI2FDrm:x86mmx addr:iPTR:$src)
/*24614*/     /*Scope*/ 11, /*->24626*/
/*24615*/       OPC_RecordChild1, // #0 = $src
/*24616*/       OPC_CheckPatternPredicate, 13, // (Subtarget->has3DNow())
/*24618*/       OPC_MorphNodeTo, TARGET_VAL(X86::PI2FDrr), 0,
                    1/*#VTs*/, MVT::x86mmx, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:x86mmx 100:iPTR, VR64:x86mmx:$src) - Complexity = 8
                // Dst: (PI2FDrr:x86mmx VR64:x86mmx:$src)
/*24626*/     0, /*End of Scope*/
/*24627*/   /*Scope*/ 53, /*->24681*/
/*24628*/     OPC_CheckInteger, 101, 
/*24630*/     OPC_MoveParent,
/*24631*/     OPC_RecordChild1, // #0 = $src1
/*24632*/     OPC_Scope, 33, /*->24667*/ // 2 children in Scope
/*24634*/       OPC_MoveChild, 2,
/*24636*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*24639*/       OPC_RecordMemRef,
/*24640*/       OPC_RecordNode, // #1 = 'ld' chained node
/*24641*/       OPC_CheckFoldableChainNode,
/*24642*/       OPC_RecordChild1, // #2 = $src2
/*24643*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*24645*/       OPC_CheckPredicate, 3, // Predicate_load
/*24647*/       OPC_MoveParent,
/*24648*/       OPC_CheckPatternPredicate, 13, // (Subtarget->has3DNow())
/*24650*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*24653*/       OPC_EmitMergeInputChains1_1,
/*24654*/       OPC_MorphNodeTo, TARGET_VAL(X86::PMULHRWrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_wo_chain:x86mmx 101:iPTR, VR64:x86mmx:$src1, (ld:x86mmx addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                // Dst: (PMULHRWrm:x86mmx VR64:x86mmx:$src1, addr:iPTR:$src2)
/*24667*/     /*Scope*/ 12, /*->24680*/
/*24668*/       OPC_RecordChild2, // #1 = $src2
/*24669*/       OPC_CheckPatternPredicate, 13, // (Subtarget->has3DNow())
/*24671*/       OPC_MorphNodeTo, TARGET_VAL(X86::PMULHRWrr), 0,
                    1/*#VTs*/, MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:x86mmx 101:iPTR, VR64:x86mmx:$src1, VR64:x86mmx:$src2) - Complexity = 8
                // Dst: (PMULHRWrr:x86mmx VR64:x86mmx:$src1, VR64:x86mmx:$src2)
/*24680*/     0, /*End of Scope*/
/*24681*/   /*Scope*/ 50, /*->24732*/
/*24682*/     OPC_CheckInteger, 102, 
/*24684*/     OPC_MoveParent,
/*24685*/     OPC_Scope, 32, /*->24719*/ // 2 children in Scope
/*24687*/       OPC_MoveChild, 1,
/*24689*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*24692*/       OPC_RecordMemRef,
/*24693*/       OPC_RecordNode, // #0 = 'ld' chained node
/*24694*/       OPC_CheckFoldableChainNode,
/*24695*/       OPC_RecordChild1, // #1 = $src
/*24696*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*24698*/       OPC_CheckPredicate, 3, // Predicate_load
/*24700*/       OPC_MoveParent,
/*24701*/       OPC_CheckPatternPredicate, 13, // (Subtarget->has3DNow())
/*24703*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*24706*/       OPC_EmitMergeInputChains1_0,
/*24707*/       OPC_MorphNodeTo, TARGET_VAL(X86::PF2IWrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::x86mmx, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (intrinsic_wo_chain:x86mmx 102:iPTR, (ld:x86mmx addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                // Dst: (PF2IWrm:x86mmx addr:iPTR:$src)
/*24719*/     /*Scope*/ 11, /*->24731*/
/*24720*/       OPC_RecordChild1, // #0 = $src
/*24721*/       OPC_CheckPatternPredicate, 13, // (Subtarget->has3DNow())
/*24723*/       OPC_MorphNodeTo, TARGET_VAL(X86::PF2IWrr), 0,
                    1/*#VTs*/, MVT::x86mmx, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:x86mmx 102:iPTR, VR64:x86mmx:$src) - Complexity = 8
                // Dst: (PF2IWrr:x86mmx VR64:x86mmx:$src)
/*24731*/     0, /*End of Scope*/
/*24732*/   /*Scope*/ 50, /*->24783*/
/*24733*/     OPC_CheckInteger, 105, 
/*24735*/     OPC_MoveParent,
/*24736*/     OPC_Scope, 32, /*->24770*/ // 2 children in Scope
/*24738*/       OPC_MoveChild, 1,
/*24740*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*24743*/       OPC_RecordMemRef,
/*24744*/       OPC_RecordNode, // #0 = 'ld' chained node
/*24745*/       OPC_CheckFoldableChainNode,
/*24746*/       OPC_RecordChild1, // #1 = $src
/*24747*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*24749*/       OPC_CheckPredicate, 3, // Predicate_load
/*24751*/       OPC_MoveParent,
/*24752*/       OPC_CheckPatternPredicate, 13, // (Subtarget->has3DNow())
/*24754*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*24757*/       OPC_EmitMergeInputChains1_0,
/*24758*/       OPC_MorphNodeTo, TARGET_VAL(X86::PI2FWrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::x86mmx, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (intrinsic_wo_chain:x86mmx 105:iPTR, (ld:x86mmx addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                // Dst: (PI2FWrm:x86mmx addr:iPTR:$src)
/*24770*/     /*Scope*/ 11, /*->24782*/
/*24771*/       OPC_RecordChild1, // #0 = $src
/*24772*/       OPC_CheckPatternPredicate, 13, // (Subtarget->has3DNow())
/*24774*/       OPC_MorphNodeTo, TARGET_VAL(X86::PI2FWrr), 0,
                    1/*#VTs*/, MVT::x86mmx, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:x86mmx 105:iPTR, VR64:x86mmx:$src) - Complexity = 8
                // Dst: (PI2FWrr:x86mmx VR64:x86mmx:$src)
/*24782*/     0, /*End of Scope*/
/*24783*/   /*Scope*/ 53, /*->24837*/
/*24784*/     OPC_CheckInteger, 103, 
/*24786*/     OPC_MoveParent,
/*24787*/     OPC_RecordChild1, // #0 = $src1
/*24788*/     OPC_Scope, 33, /*->24823*/ // 2 children in Scope
/*24790*/       OPC_MoveChild, 2,
/*24792*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*24795*/       OPC_RecordMemRef,
/*24796*/       OPC_RecordNode, // #1 = 'ld' chained node
/*24797*/       OPC_CheckFoldableChainNode,
/*24798*/       OPC_RecordChild1, // #2 = $src2
/*24799*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*24801*/       OPC_CheckPredicate, 3, // Predicate_load
/*24803*/       OPC_MoveParent,
/*24804*/       OPC_CheckPatternPredicate, 13, // (Subtarget->has3DNow())
/*24806*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*24809*/       OPC_EmitMergeInputChains1_1,
/*24810*/       OPC_MorphNodeTo, TARGET_VAL(X86::PFNACCrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_wo_chain:x86mmx 103:iPTR, VR64:x86mmx:$src1, (ld:x86mmx addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                // Dst: (PFNACCrm:x86mmx VR64:x86mmx:$src1, addr:iPTR:$src2)
/*24823*/     /*Scope*/ 12, /*->24836*/
/*24824*/       OPC_RecordChild2, // #1 = $src2
/*24825*/       OPC_CheckPatternPredicate, 13, // (Subtarget->has3DNow())
/*24827*/       OPC_MorphNodeTo, TARGET_VAL(X86::PFNACCrr), 0,
                    1/*#VTs*/, MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:x86mmx 103:iPTR, VR64:x86mmx:$src1, VR64:x86mmx:$src2) - Complexity = 8
                // Dst: (PFNACCrr:x86mmx VR64:x86mmx:$src1, VR64:x86mmx:$src2)
/*24836*/     0, /*End of Scope*/
/*24837*/   /*Scope*/ 53, /*->24891*/
/*24838*/     OPC_CheckInteger, 104, 
/*24840*/     OPC_MoveParent,
/*24841*/     OPC_RecordChild1, // #0 = $src1
/*24842*/     OPC_Scope, 33, /*->24877*/ // 2 children in Scope
/*24844*/       OPC_MoveChild, 2,
/*24846*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*24849*/       OPC_RecordMemRef,
/*24850*/       OPC_RecordNode, // #1 = 'ld' chained node
/*24851*/       OPC_CheckFoldableChainNode,
/*24852*/       OPC_RecordChild1, // #2 = $src2
/*24853*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*24855*/       OPC_CheckPredicate, 3, // Predicate_load
/*24857*/       OPC_MoveParent,
/*24858*/       OPC_CheckPatternPredicate, 13, // (Subtarget->has3DNow())
/*24860*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*24863*/       OPC_EmitMergeInputChains1_1,
/*24864*/       OPC_MorphNodeTo, TARGET_VAL(X86::PFPNACCrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::x86mmx, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_wo_chain:x86mmx 104:iPTR, VR64:x86mmx:$src1, (ld:x86mmx addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                // Dst: (PFPNACCrm:x86mmx VR64:x86mmx:$src1, addr:iPTR:$src2)
/*24877*/     /*Scope*/ 12, /*->24890*/
/*24878*/       OPC_RecordChild2, // #1 = $src2
/*24879*/       OPC_CheckPatternPredicate, 13, // (Subtarget->has3DNow())
/*24881*/       OPC_MorphNodeTo, TARGET_VAL(X86::PFPNACCrr), 0,
                    1/*#VTs*/, MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:x86mmx 104:iPTR, VR64:x86mmx:$src1, VR64:x86mmx:$src2) - Complexity = 8
                // Dst: (PFPNACCrr:x86mmx VR64:x86mmx:$src1, VR64:x86mmx:$src2)
/*24890*/     0, /*End of Scope*/
/*24891*/   /*Scope*/ 50, /*->24942*/
/*24892*/     OPC_CheckInteger, 106, 
/*24894*/     OPC_MoveParent,
/*24895*/     OPC_Scope, 32, /*->24929*/ // 2 children in Scope
/*24897*/       OPC_MoveChild, 1,
/*24899*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*24902*/       OPC_RecordMemRef,
/*24903*/       OPC_RecordNode, // #0 = 'ld' chained node
/*24904*/       OPC_CheckFoldableChainNode,
/*24905*/       OPC_RecordChild1, // #1 = $src
/*24906*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*24908*/       OPC_CheckPredicate, 3, // Predicate_load
/*24910*/       OPC_MoveParent,
/*24911*/       OPC_CheckPatternPredicate, 13, // (Subtarget->has3DNow())
/*24913*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*24916*/       OPC_EmitMergeInputChains1_0,
/*24917*/       OPC_MorphNodeTo, TARGET_VAL(X86::PSWAPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::x86mmx, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (intrinsic_wo_chain:x86mmx 106:iPTR, (ld:x86mmx addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                // Dst: (PSWAPDrm:x86mmx addr:iPTR:$src)
/*24929*/     /*Scope*/ 11, /*->24941*/
/*24930*/       OPC_RecordChild1, // #0 = $src
/*24931*/       OPC_CheckPatternPredicate, 13, // (Subtarget->has3DNow())
/*24933*/       OPC_MorphNodeTo, TARGET_VAL(X86::PSWAPDrr), 0,
                    1/*#VTs*/, MVT::x86mmx, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:x86mmx 106:iPTR, VR64:x86mmx:$src) - Complexity = 8
                // Dst: (PSWAPDrr:x86mmx VR64:x86mmx:$src)
/*24941*/     0, /*End of Scope*/
/*24942*/   /*Scope*/ 25, /*->24968*/
/*24943*/     OPC_CheckInteger, 3|128,2/*259*/, 
/*24946*/     OPC_MoveParent,
/*24947*/     OPC_RecordChild1, // #0 = $src1
/*24948*/     OPC_RecordChild2, // #1 = $src2
/*24949*/     OPC_MoveChild, 2,
/*24951*/     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*24954*/     OPC_MoveParent,
/*24955*/     OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*24957*/     OPC_EmitConvertToTarget, 1,
/*24959*/     OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PSRLWri), 0,
                  1/*#VTs*/, MVT::x86mmx, 2/*#Ops*/, 0, 2, 
              // Src: (intrinsic_wo_chain:x86mmx 259:iPTR, VR64:x86mmx:$src1, (imm:i32):$src2) - Complexity = 11
              // Dst: (MMX_PSRLWri:x86mmx VR64:x86mmx:$src1, (imm:i32):$src2)
/*24968*/   /*Scope*/ 25, /*->24994*/
/*24969*/     OPC_CheckInteger, 1|128,2/*257*/, 
/*24972*/     OPC_MoveParent,
/*24973*/     OPC_RecordChild1, // #0 = $src1
/*24974*/     OPC_RecordChild2, // #1 = $src2
/*24975*/     OPC_MoveChild, 2,
/*24977*/     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*24980*/     OPC_MoveParent,
/*24981*/     OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*24983*/     OPC_EmitConvertToTarget, 1,
/*24985*/     OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PSRLDri), 0,
                  1/*#VTs*/, MVT::x86mmx, 2/*#Ops*/, 0, 2, 
              // Src: (intrinsic_wo_chain:x86mmx 257:iPTR, VR64:x86mmx:$src1, (imm:i32):$src2) - Complexity = 11
              // Dst: (MMX_PSRLDri:x86mmx VR64:x86mmx:$src1, (imm:i32):$src2)
/*24994*/   /*Scope*/ 25, /*->25020*/
/*24995*/     OPC_CheckInteger, 2|128,2/*258*/, 
/*24998*/     OPC_MoveParent,
/*24999*/     OPC_RecordChild1, // #0 = $src1
/*25000*/     OPC_RecordChild2, // #1 = $src2
/*25001*/     OPC_MoveChild, 2,
/*25003*/     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*25006*/     OPC_MoveParent,
/*25007*/     OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*25009*/     OPC_EmitConvertToTarget, 1,
/*25011*/     OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PSRLQri), 0,
                  1/*#VTs*/, MVT::x86mmx, 2/*#Ops*/, 0, 2, 
              // Src: (intrinsic_wo_chain:x86mmx 258:iPTR, VR64:x86mmx:$src1, (imm:i32):$src2) - Complexity = 11
              // Dst: (MMX_PSRLQri:x86mmx VR64:x86mmx:$src1, (imm:i32):$src2)
/*25020*/   /*Scope*/ 25, /*->25046*/
/*25021*/     OPC_CheckInteger, 121|128,1/*249*/, 
/*25024*/     OPC_MoveParent,
/*25025*/     OPC_RecordChild1, // #0 = $src1
/*25026*/     OPC_RecordChild2, // #1 = $src2
/*25027*/     OPC_MoveChild, 2,
/*25029*/     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*25032*/     OPC_MoveParent,
/*25033*/     OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*25035*/     OPC_EmitConvertToTarget, 1,
/*25037*/     OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PSLLWri), 0,
                  1/*#VTs*/, MVT::x86mmx, 2/*#Ops*/, 0, 2, 
              // Src: (intrinsic_wo_chain:x86mmx 249:iPTR, VR64:x86mmx:$src1, (imm:i32):$src2) - Complexity = 11
              // Dst: (MMX_PSLLWri:x86mmx VR64:x86mmx:$src1, (imm:i32):$src2)
/*25046*/   /*Scope*/ 25, /*->25072*/
/*25047*/     OPC_CheckInteger, 119|128,1/*247*/, 
/*25050*/     OPC_MoveParent,
/*25051*/     OPC_RecordChild1, // #0 = $src1
/*25052*/     OPC_RecordChild2, // #1 = $src2
/*25053*/     OPC_MoveChild, 2,
/*25055*/     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*25058*/     OPC_MoveParent,
/*25059*/     OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*25061*/     OPC_EmitConvertToTarget, 1,
/*25063*/     OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PSLLDri), 0,
                  1/*#VTs*/, MVT::x86mmx, 2/*#Ops*/, 0, 2, 
              // Src: (intrinsic_wo_chain:x86mmx 247:iPTR, VR64:x86mmx:$src1, (imm:i32):$src2) - Complexity = 11
              // Dst: (MMX_PSLLDri:x86mmx VR64:x86mmx:$src1, (imm:i32):$src2)
/*25072*/   /*Scope*/ 25, /*->25098*/
/*25073*/     OPC_CheckInteger, 120|128,1/*248*/, 
/*25076*/     OPC_MoveParent,
/*25077*/     OPC_RecordChild1, // #0 = $src1
/*25078*/     OPC_RecordChild2, // #1 = $src2
/*25079*/     OPC_MoveChild, 2,
/*25081*/     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*25084*/     OPC_MoveParent,
/*25085*/     OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*25087*/     OPC_EmitConvertToTarget, 1,
/*25089*/     OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PSLLQri), 0,
                  1/*#VTs*/, MVT::x86mmx, 2/*#Ops*/, 0, 2, 
              // Src: (intrinsic_wo_chain:x86mmx 248:iPTR, VR64:x86mmx:$src1, (imm:i32):$src2) - Complexity = 11
              // Dst: (MMX_PSLLQri:x86mmx VR64:x86mmx:$src1, (imm:i32):$src2)
/*25098*/   /*Scope*/ 25, /*->25124*/
/*25099*/     OPC_CheckInteger, 125|128,1/*253*/, 
/*25102*/     OPC_MoveParent,
/*25103*/     OPC_RecordChild1, // #0 = $src1
/*25104*/     OPC_RecordChild2, // #1 = $src2
/*25105*/     OPC_MoveChild, 2,
/*25107*/     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*25110*/     OPC_MoveParent,
/*25111*/     OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*25113*/     OPC_EmitConvertToTarget, 1,
/*25115*/     OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PSRAWri), 0,
                  1/*#VTs*/, MVT::x86mmx, 2/*#Ops*/, 0, 2, 
              // Src: (intrinsic_wo_chain:x86mmx 253:iPTR, VR64:x86mmx:$src1, (imm:i32):$src2) - Complexity = 11
              // Dst: (MMX_PSRAWri:x86mmx VR64:x86mmx:$src1, (imm:i32):$src2)
/*25124*/   /*Scope*/ 25, /*->25150*/
/*25125*/     OPC_CheckInteger, 124|128,1/*252*/, 
/*25128*/     OPC_MoveParent,
/*25129*/     OPC_RecordChild1, // #0 = $src1
/*25130*/     OPC_RecordChild2, // #1 = $src2
/*25131*/     OPC_MoveChild, 2,
/*25133*/     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*25136*/     OPC_MoveParent,
/*25137*/     OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*25139*/     OPC_EmitConvertToTarget, 1,
/*25141*/     OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PSRADri), 0,
                  1/*#VTs*/, MVT::x86mmx, 2/*#Ops*/, 0, 2, 
              // Src: (intrinsic_wo_chain:x86mmx 252:iPTR, VR64:x86mmx:$src1, (imm:i32):$src2) - Complexity = 11
              // Dst: (MMX_PSRADri:x86mmx VR64:x86mmx:$src1, (imm:i32):$src2)
/*25150*/   /*Scope*/ 25, /*->25176*/
/*25151*/     OPC_CheckInteger, 102|128,1/*230*/, 
/*25154*/     OPC_MoveParent,
/*25155*/     OPC_RecordChild1, // #0 = $src1
/*25156*/     OPC_RecordChild2, // #1 = $src2
/*25157*/     OPC_MoveChild, 2,
/*25159*/     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*25162*/     OPC_MoveParent,
/*25163*/     OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*25165*/     OPC_EmitConvertToTarget, 1,
/*25167*/     OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PEXTRWirri), 0,
                  1/*#VTs*/, MVT::i32, 2/*#Ops*/, 0, 2, 
              // Src: (intrinsic_wo_chain:i32 230:iPTR, VR64:x86mmx:$src1, (imm:i32):$src2) - Complexity = 11
              // Dst: (MMX_PEXTRWirri:i32 VR64:x86mmx:$src1, (imm:i32):$src2)
/*25176*/   /*Scope*/ 29, /*->25206*/
/*25177*/     OPC_CheckInteger, 90|128,3/*474*/, 
/*25180*/     OPC_MoveParent,
/*25181*/     OPC_RecordChild1, // #0 = $src
/*25182*/     OPC_Scope, 10, /*->25194*/ // 2 children in Scope
/*25184*/       OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*25186*/       OPC_MorphNodeTo, TARGET_VAL(X86::MOVMSKPSrr32), 0,
                    1/*#VTs*/, MVT::i32, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:i32 474:iPTR, VR128:v4f32:$src) - Complexity = 8
                // Dst: (MOVMSKPSrr32:i32 VR128:v4f32:$src)
/*25194*/     /*Scope*/ 10, /*->25205*/
/*25195*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*25197*/       OPC_MorphNodeTo, TARGET_VAL(X86::VMOVMSKPSrr32), 0,
                    1/*#VTs*/, MVT::i32, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:i32 474:iPTR, VR128:v4f32:$src) - Complexity = 8
                // Dst: (VMOVMSKPSrr32:i32 VR128:v4f32:$src)
/*25205*/     0, /*End of Scope*/
/*25206*/   /*Scope*/ 29, /*->25236*/
/*25207*/     OPC_CheckInteger, 53|128,2/*309*/, 
/*25210*/     OPC_MoveParent,
/*25211*/     OPC_RecordChild1, // #0 = $src
/*25212*/     OPC_Scope, 10, /*->25224*/ // 2 children in Scope
/*25214*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*25216*/       OPC_MorphNodeTo, TARGET_VAL(X86::MOVMSKPDrr32), 0,
                    1/*#VTs*/, MVT::i32, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:i32 309:iPTR, VR128:v2f64:$src) - Complexity = 8
                // Dst: (MOVMSKPDrr32:i32 VR128:v2f64:$src)
/*25224*/     /*Scope*/ 10, /*->25235*/
/*25225*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*25227*/       OPC_MorphNodeTo, TARGET_VAL(X86::VMOVMSKPDrr32), 0,
                    1/*#VTs*/, MVT::i32, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:i32 309:iPTR, VR128:v2f64:$src) - Complexity = 8
                // Dst: (VMOVMSKPDrr32:i32 VR128:v2f64:$src)
/*25235*/     0, /*End of Scope*/
/*25236*/   /*Scope*/ 15, /*->25252*/
/*25237*/     OPC_CheckInteger, 23|128,1/*151*/, 
/*25240*/     OPC_MoveParent,
/*25241*/     OPC_RecordChild1, // #0 = $src
/*25242*/     OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*25244*/     OPC_MorphNodeTo, TARGET_VAL(X86::VMOVMSKPSYrr32), 0,
                  1/*#VTs*/, MVT::i32, 1/*#Ops*/, 0, 
              // Src: (intrinsic_wo_chain:i32 151:iPTR, VR256:v8f32:$src) - Complexity = 8
              // Dst: (VMOVMSKPSYrr32:i32 VR256:v8f32:$src)
/*25252*/   /*Scope*/ 15, /*->25268*/
/*25253*/     OPC_CheckInteger, 22|128,1/*150*/, 
/*25256*/     OPC_MoveParent,
/*25257*/     OPC_RecordChild1, // #0 = $src
/*25258*/     OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*25260*/     OPC_MorphNodeTo, TARGET_VAL(X86::VMOVMSKPDYrr32), 0,
                  1/*#VTs*/, MVT::i32, 1/*#Ops*/, 0, 
              // Src: (intrinsic_wo_chain:i32 150:iPTR, VR256:v4f64:$src) - Complexity = 8
              // Dst: (VMOVMSKPDYrr32:i32 VR256:v4f64:$src)
/*25268*/   /*Scope*/ 29, /*->25298*/
/*25269*/     OPC_CheckInteger, 75|128,2/*331*/, 
/*25272*/     OPC_MoveParent,
/*25273*/     OPC_RecordChild1, // #0 = $src
/*25274*/     OPC_Scope, 10, /*->25286*/ // 2 children in Scope
/*25276*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*25278*/       OPC_MorphNodeTo, TARGET_VAL(X86::VPMOVMSKBrr), 0,
                    1/*#VTs*/, MVT::i32, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:i32 331:iPTR, VR128:v16i8:$src) - Complexity = 8
                // Dst: (VPMOVMSKBrr:i32 VR128:v16i8:$src)
/*25286*/     /*Scope*/ 10, /*->25297*/
/*25287*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*25289*/       OPC_MorphNodeTo, TARGET_VAL(X86::PMOVMSKBrr), 0,
                    1/*#VTs*/, MVT::i32, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:i32 331:iPTR, VR128:v16i8:$src) - Complexity = 8
                // Dst: (PMOVMSKBrr:i32 VR128:v16i8:$src)
/*25297*/     0, /*End of Scope*/
/*25298*/   /*Scope*/ 15, /*->25314*/
/*25299*/     OPC_CheckInteger, 109|128,1/*237*/, 
/*25302*/     OPC_MoveParent,
/*25303*/     OPC_RecordChild1, // #0 = $src
/*25304*/     OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*25306*/     OPC_MorphNodeTo, TARGET_VAL(X86::MMX_PMOVMSKBrr), 0,
                  1/*#VTs*/, MVT::i32, 1/*#Ops*/, 0, 
              // Src: (intrinsic_wo_chain:i32 237:iPTR, VR64:x86mmx:$src) - Complexity = 8
              // Dst: (MMX_PMOVMSKBrr:i32 VR64:x86mmx:$src)
/*25314*/   /*Scope*/ 31|128,1/*159*/, /*->25475*/
/*25316*/     OPC_CheckInteger, 109, 
/*25318*/     OPC_MoveParent,
/*25319*/     OPC_RecordChild1, // #0 = $src1
/*25320*/     OPC_Scope, 124, /*->25446*/ // 2 children in Scope
/*25322*/       OPC_MoveChild, 2,
/*25324*/       OPC_SwitchOpcode /*2 cases */, 53,  TARGET_VAL(ISD::LOAD),// ->25381
/*25328*/         OPC_RecordMemRef,
/*25329*/         OPC_RecordNode, // #1 = 'ld' chained node
/*25330*/         OPC_CheckFoldableChainNode,
/*25331*/         OPC_RecordChild1, // #2 = $src2
/*25332*/         OPC_CheckPredicate, 2, // Predicate_unindexedload
/*25334*/         OPC_CheckPredicate, 3, // Predicate_load
/*25336*/         OPC_CheckPredicate, 23, // Predicate_memop
/*25338*/         OPC_MoveParent,
/*25339*/         OPC_Scope, 19, /*->25360*/ // 2 children in Scope
/*25341*/           OPC_CheckPatternPredicate, 14, // (Subtarget->hasAVX()) && (Subtarget->hasAES())
/*25343*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*25346*/           OPC_EmitMergeInputChains1_1,
/*25347*/           OPC_MorphNodeTo, TARGET_VAL(X86::VAESENCrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (intrinsic_wo_chain:v2i64 109:iPTR, VR128:v2i64:$src1, (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 50
                    // Dst: (VAESENCrm:v2i64 VR128:v2i64:$src1, addr:iPTR:$src2)
/*25360*/         /*Scope*/ 19, /*->25380*/
/*25361*/           OPC_CheckPatternPredicate, 15, // (Subtarget->hasAES())
/*25363*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*25366*/           OPC_EmitMergeInputChains1_1,
/*25367*/           OPC_MorphNodeTo, TARGET_VAL(X86::AESENCrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (intrinsic_wo_chain:v2i64 109:iPTR, VR128:v2i64:$src1, (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 30
                    // Dst: (AESENCrm:v2i64 VR128:v2i64:$src1, addr:iPTR:$src2)
/*25380*/         0, /*End of Scope*/
                /*SwitchOpcode*/ 61,  TARGET_VAL(ISD::BITCAST),// ->25445
/*25384*/         OPC_MoveChild, 0,
/*25386*/         OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*25389*/         OPC_RecordMemRef,
/*25390*/         OPC_RecordNode, // #1 = 'ld' chained node
/*25391*/         OPC_CheckFoldableChainNode,
/*25392*/         OPC_RecordChild1, // #2 = $src2
/*25393*/         OPC_CheckPredicate, 2, // Predicate_unindexedload
/*25395*/         OPC_CheckPredicate, 3, // Predicate_load
/*25397*/         OPC_CheckPredicate, 23, // Predicate_memop
/*25399*/         OPC_CheckType, MVT::v16i8,
/*25401*/         OPC_MoveParent,
/*25402*/         OPC_MoveParent,
/*25403*/         OPC_Scope, 19, /*->25424*/ // 2 children in Scope
/*25405*/           OPC_CheckPatternPredicate, 14, // (Subtarget->hasAVX()) && (Subtarget->hasAES())
/*25407*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*25410*/           OPC_EmitMergeInputChains1_1,
/*25411*/           OPC_MorphNodeTo, TARGET_VAL(X86::VAESENCrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (intrinsic_wo_chain:v2i64 109:iPTR, VR128:v2i64:$src1, (bitconvert:v2i64 (ld:v16i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 33
                    // Dst: (VAESENCrm:v2i64 VR128:v2i64:$src1, addr:iPTR:$src2)
/*25424*/         /*Scope*/ 19, /*->25444*/
/*25425*/           OPC_CheckPatternPredicate, 15, // (Subtarget->hasAES())
/*25427*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*25430*/           OPC_EmitMergeInputChains1_1,
/*25431*/           OPC_MorphNodeTo, TARGET_VAL(X86::AESENCrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (intrinsic_wo_chain:v2i64 109:iPTR, VR128:v2i64:$src1, (bitconvert:v2i64 (ld:v16i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 33
                    // Dst: (AESENCrm:v2i64 VR128:v2i64:$src1, addr:iPTR:$src2)
/*25444*/         0, /*End of Scope*/
                0, // EndSwitchOpcode
/*25446*/     /*Scope*/ 27, /*->25474*/
/*25447*/       OPC_RecordChild2, // #1 = $src2
/*25448*/       OPC_Scope, 11, /*->25461*/ // 2 children in Scope
/*25450*/         OPC_CheckPatternPredicate, 14, // (Subtarget->hasAVX()) && (Subtarget->hasAES())
/*25452*/         OPC_MorphNodeTo, TARGET_VAL(X86::VAESENCrr), 0,
                      1/*#VTs*/, MVT::v2i64, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v2i64 109:iPTR, VR128:v2i64:$src1, VR128:v2i64:$src2) - Complexity = 28
                  // Dst: (VAESENCrr:v2i64 VR128:v2i64:$src1, VR128:v2i64:$src2)
/*25461*/       /*Scope*/ 11, /*->25473*/
/*25462*/         OPC_CheckPatternPredicate, 15, // (Subtarget->hasAES())
/*25464*/         OPC_MorphNodeTo, TARGET_VAL(X86::AESENCrr), 0,
                      1/*#VTs*/, MVT::v2i64, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v2i64 109:iPTR, VR128:v2i64:$src1, VR128:v2i64:$src2) - Complexity = 8
                  // Dst: (AESENCrr:v2i64 VR128:v2i64:$src1, VR128:v2i64:$src2)
/*25473*/       0, /*End of Scope*/
/*25474*/     0, /*End of Scope*/
/*25475*/   /*Scope*/ 31|128,1/*159*/, /*->25636*/
/*25477*/     OPC_CheckInteger, 110, 
/*25479*/     OPC_MoveParent,
/*25480*/     OPC_RecordChild1, // #0 = $src1
/*25481*/     OPC_Scope, 124, /*->25607*/ // 2 children in Scope
/*25483*/       OPC_MoveChild, 2,
/*25485*/       OPC_SwitchOpcode /*2 cases */, 53,  TARGET_VAL(ISD::LOAD),// ->25542
/*25489*/         OPC_RecordMemRef,
/*25490*/         OPC_RecordNode, // #1 = 'ld' chained node
/*25491*/         OPC_CheckFoldableChainNode,
/*25492*/         OPC_RecordChild1, // #2 = $src2
/*25493*/         OPC_CheckPredicate, 2, // Predicate_unindexedload
/*25495*/         OPC_CheckPredicate, 3, // Predicate_load
/*25497*/         OPC_CheckPredicate, 23, // Predicate_memop
/*25499*/         OPC_MoveParent,
/*25500*/         OPC_Scope, 19, /*->25521*/ // 2 children in Scope
/*25502*/           OPC_CheckPatternPredicate, 14, // (Subtarget->hasAVX()) && (Subtarget->hasAES())
/*25504*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*25507*/           OPC_EmitMergeInputChains1_1,
/*25508*/           OPC_MorphNodeTo, TARGET_VAL(X86::VAESENCLASTrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (intrinsic_wo_chain:v2i64 110:iPTR, VR128:v2i64:$src1, (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 50
                    // Dst: (VAESENCLASTrm:v2i64 VR128:v2i64:$src1, addr:iPTR:$src2)
/*25521*/         /*Scope*/ 19, /*->25541*/
/*25522*/           OPC_CheckPatternPredicate, 15, // (Subtarget->hasAES())
/*25524*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*25527*/           OPC_EmitMergeInputChains1_1,
/*25528*/           OPC_MorphNodeTo, TARGET_VAL(X86::AESENCLASTrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (intrinsic_wo_chain:v2i64 110:iPTR, VR128:v2i64:$src1, (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 30
                    // Dst: (AESENCLASTrm:v2i64 VR128:v2i64:$src1, addr:iPTR:$src2)
/*25541*/         0, /*End of Scope*/
                /*SwitchOpcode*/ 61,  TARGET_VAL(ISD::BITCAST),// ->25606
/*25545*/         OPC_MoveChild, 0,
/*25547*/         OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*25550*/         OPC_RecordMemRef,
/*25551*/         OPC_RecordNode, // #1 = 'ld' chained node
/*25552*/         OPC_CheckFoldableChainNode,
/*25553*/         OPC_RecordChild1, // #2 = $src2
/*25554*/         OPC_CheckPredicate, 2, // Predicate_unindexedload
/*25556*/         OPC_CheckPredicate, 3, // Predicate_load
/*25558*/         OPC_CheckPredicate, 23, // Predicate_memop
/*25560*/         OPC_CheckType, MVT::v16i8,
/*25562*/         OPC_MoveParent,
/*25563*/         OPC_MoveParent,
/*25564*/         OPC_Scope, 19, /*->25585*/ // 2 children in Scope
/*25566*/           OPC_CheckPatternPredicate, 14, // (Subtarget->hasAVX()) && (Subtarget->hasAES())
/*25568*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*25571*/           OPC_EmitMergeInputChains1_1,
/*25572*/           OPC_MorphNodeTo, TARGET_VAL(X86::VAESENCLASTrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (intrinsic_wo_chain:v2i64 110:iPTR, VR128:v2i64:$src1, (bitconvert:v2i64 (ld:v16i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 33
                    // Dst: (VAESENCLASTrm:v2i64 VR128:v2i64:$src1, addr:iPTR:$src2)
/*25585*/         /*Scope*/ 19, /*->25605*/
/*25586*/           OPC_CheckPatternPredicate, 15, // (Subtarget->hasAES())
/*25588*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*25591*/           OPC_EmitMergeInputChains1_1,
/*25592*/           OPC_MorphNodeTo, TARGET_VAL(X86::AESENCLASTrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (intrinsic_wo_chain:v2i64 110:iPTR, VR128:v2i64:$src1, (bitconvert:v2i64 (ld:v16i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 33
                    // Dst: (AESENCLASTrm:v2i64 VR128:v2i64:$src1, addr:iPTR:$src2)
/*25605*/         0, /*End of Scope*/
                0, // EndSwitchOpcode
/*25607*/     /*Scope*/ 27, /*->25635*/
/*25608*/       OPC_RecordChild2, // #1 = $src2
/*25609*/       OPC_Scope, 11, /*->25622*/ // 2 children in Scope
/*25611*/         OPC_CheckPatternPredicate, 14, // (Subtarget->hasAVX()) && (Subtarget->hasAES())
/*25613*/         OPC_MorphNodeTo, TARGET_VAL(X86::VAESENCLASTrr), 0,
                      1/*#VTs*/, MVT::v2i64, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v2i64 110:iPTR, VR128:v2i64:$src1, VR128:v2i64:$src2) - Complexity = 28
                  // Dst: (VAESENCLASTrr:v2i64 VR128:v2i64:$src1, VR128:v2i64:$src2)
/*25622*/       /*Scope*/ 11, /*->25634*/
/*25623*/         OPC_CheckPatternPredicate, 15, // (Subtarget->hasAES())
/*25625*/         OPC_MorphNodeTo, TARGET_VAL(X86::AESENCLASTrr), 0,
                      1/*#VTs*/, MVT::v2i64, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v2i64 110:iPTR, VR128:v2i64:$src1, VR128:v2i64:$src2) - Complexity = 8
                  // Dst: (AESENCLASTrr:v2i64 VR128:v2i64:$src1, VR128:v2i64:$src2)
/*25634*/       0, /*End of Scope*/
/*25635*/     0, /*End of Scope*/
/*25636*/   /*Scope*/ 31|128,1/*159*/, /*->25797*/
/*25638*/     OPC_CheckInteger, 107, 
/*25640*/     OPC_MoveParent,
/*25641*/     OPC_RecordChild1, // #0 = $src1
/*25642*/     OPC_Scope, 124, /*->25768*/ // 2 children in Scope
/*25644*/       OPC_MoveChild, 2,
/*25646*/       OPC_SwitchOpcode /*2 cases */, 53,  TARGET_VAL(ISD::LOAD),// ->25703
/*25650*/         OPC_RecordMemRef,
/*25651*/         OPC_RecordNode, // #1 = 'ld' chained node
/*25652*/         OPC_CheckFoldableChainNode,
/*25653*/         OPC_RecordChild1, // #2 = $src2
/*25654*/         OPC_CheckPredicate, 2, // Predicate_unindexedload
/*25656*/         OPC_CheckPredicate, 3, // Predicate_load
/*25658*/         OPC_CheckPredicate, 23, // Predicate_memop
/*25660*/         OPC_MoveParent,
/*25661*/         OPC_Scope, 19, /*->25682*/ // 2 children in Scope
/*25663*/           OPC_CheckPatternPredicate, 14, // (Subtarget->hasAVX()) && (Subtarget->hasAES())
/*25665*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*25668*/           OPC_EmitMergeInputChains1_1,
/*25669*/           OPC_MorphNodeTo, TARGET_VAL(X86::VAESDECrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (intrinsic_wo_chain:v2i64 107:iPTR, VR128:v2i64:$src1, (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 50
                    // Dst: (VAESDECrm:v2i64 VR128:v2i64:$src1, addr:iPTR:$src2)
/*25682*/         /*Scope*/ 19, /*->25702*/
/*25683*/           OPC_CheckPatternPredicate, 15, // (Subtarget->hasAES())
/*25685*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*25688*/           OPC_EmitMergeInputChains1_1,
/*25689*/           OPC_MorphNodeTo, TARGET_VAL(X86::AESDECrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (intrinsic_wo_chain:v2i64 107:iPTR, VR128:v2i64:$src1, (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 30
                    // Dst: (AESDECrm:v2i64 VR128:v2i64:$src1, addr:iPTR:$src2)
/*25702*/         0, /*End of Scope*/
                /*SwitchOpcode*/ 61,  TARGET_VAL(ISD::BITCAST),// ->25767
/*25706*/         OPC_MoveChild, 0,
/*25708*/         OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*25711*/         OPC_RecordMemRef,
/*25712*/         OPC_RecordNode, // #1 = 'ld' chained node
/*25713*/         OPC_CheckFoldableChainNode,
/*25714*/         OPC_RecordChild1, // #2 = $src2
/*25715*/         OPC_CheckPredicate, 2, // Predicate_unindexedload
/*25717*/         OPC_CheckPredicate, 3, // Predicate_load
/*25719*/         OPC_CheckPredicate, 23, // Predicate_memop
/*25721*/         OPC_CheckType, MVT::v16i8,
/*25723*/         OPC_MoveParent,
/*25724*/         OPC_MoveParent,
/*25725*/         OPC_Scope, 19, /*->25746*/ // 2 children in Scope
/*25727*/           OPC_CheckPatternPredicate, 14, // (Subtarget->hasAVX()) && (Subtarget->hasAES())
/*25729*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*25732*/           OPC_EmitMergeInputChains1_1,
/*25733*/           OPC_MorphNodeTo, TARGET_VAL(X86::VAESDECrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (intrinsic_wo_chain:v2i64 107:iPTR, VR128:v2i64:$src1, (bitconvert:v2i64 (ld:v16i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 33
                    // Dst: (VAESDECrm:v2i64 VR128:v2i64:$src1, addr:iPTR:$src2)
/*25746*/         /*Scope*/ 19, /*->25766*/
/*25747*/           OPC_CheckPatternPredicate, 15, // (Subtarget->hasAES())
/*25749*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*25752*/           OPC_EmitMergeInputChains1_1,
/*25753*/           OPC_MorphNodeTo, TARGET_VAL(X86::AESDECrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (intrinsic_wo_chain:v2i64 107:iPTR, VR128:v2i64:$src1, (bitconvert:v2i64 (ld:v16i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 33
                    // Dst: (AESDECrm:v2i64 VR128:v2i64:$src1, addr:iPTR:$src2)
/*25766*/         0, /*End of Scope*/
                0, // EndSwitchOpcode
/*25768*/     /*Scope*/ 27, /*->25796*/
/*25769*/       OPC_RecordChild2, // #1 = $src2
/*25770*/       OPC_Scope, 11, /*->25783*/ // 2 children in Scope
/*25772*/         OPC_CheckPatternPredicate, 14, // (Subtarget->hasAVX()) && (Subtarget->hasAES())
/*25774*/         OPC_MorphNodeTo, TARGET_VAL(X86::VAESDECrr), 0,
                      1/*#VTs*/, MVT::v2i64, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v2i64 107:iPTR, VR128:v2i64:$src1, VR128:v2i64:$src2) - Complexity = 28
                  // Dst: (VAESDECrr:v2i64 VR128:v2i64:$src1, VR128:v2i64:$src2)
/*25783*/       /*Scope*/ 11, /*->25795*/
/*25784*/         OPC_CheckPatternPredicate, 15, // (Subtarget->hasAES())
/*25786*/         OPC_MorphNodeTo, TARGET_VAL(X86::AESDECrr), 0,
                      1/*#VTs*/, MVT::v2i64, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v2i64 107:iPTR, VR128:v2i64:$src1, VR128:v2i64:$src2) - Complexity = 8
                  // Dst: (AESDECrr:v2i64 VR128:v2i64:$src1, VR128:v2i64:$src2)
/*25795*/       0, /*End of Scope*/
/*25796*/     0, /*End of Scope*/
/*25797*/   /*Scope*/ 31|128,1/*159*/, /*->25958*/
/*25799*/     OPC_CheckInteger, 108, 
/*25801*/     OPC_MoveParent,
/*25802*/     OPC_RecordChild1, // #0 = $src1
/*25803*/     OPC_Scope, 124, /*->25929*/ // 2 children in Scope
/*25805*/       OPC_MoveChild, 2,
/*25807*/       OPC_SwitchOpcode /*2 cases */, 53,  TARGET_VAL(ISD::LOAD),// ->25864
/*25811*/         OPC_RecordMemRef,
/*25812*/         OPC_RecordNode, // #1 = 'ld' chained node
/*25813*/         OPC_CheckFoldableChainNode,
/*25814*/         OPC_RecordChild1, // #2 = $src2
/*25815*/         OPC_CheckPredicate, 2, // Predicate_unindexedload
/*25817*/         OPC_CheckPredicate, 3, // Predicate_load
/*25819*/         OPC_CheckPredicate, 23, // Predicate_memop
/*25821*/         OPC_MoveParent,
/*25822*/         OPC_Scope, 19, /*->25843*/ // 2 children in Scope
/*25824*/           OPC_CheckPatternPredicate, 14, // (Subtarget->hasAVX()) && (Subtarget->hasAES())
/*25826*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*25829*/           OPC_EmitMergeInputChains1_1,
/*25830*/           OPC_MorphNodeTo, TARGET_VAL(X86::VAESDECLASTrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (intrinsic_wo_chain:v2i64 108:iPTR, VR128:v2i64:$src1, (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 50
                    // Dst: (VAESDECLASTrm:v2i64 VR128:v2i64:$src1, addr:iPTR:$src2)
/*25843*/         /*Scope*/ 19, /*->25863*/
/*25844*/           OPC_CheckPatternPredicate, 15, // (Subtarget->hasAES())
/*25846*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*25849*/           OPC_EmitMergeInputChains1_1,
/*25850*/           OPC_MorphNodeTo, TARGET_VAL(X86::AESDECLASTrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (intrinsic_wo_chain:v2i64 108:iPTR, VR128:v2i64:$src1, (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 30
                    // Dst: (AESDECLASTrm:v2i64 VR128:v2i64:$src1, addr:iPTR:$src2)
/*25863*/         0, /*End of Scope*/
                /*SwitchOpcode*/ 61,  TARGET_VAL(ISD::BITCAST),// ->25928
/*25867*/         OPC_MoveChild, 0,
/*25869*/         OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*25872*/         OPC_RecordMemRef,
/*25873*/         OPC_RecordNode, // #1 = 'ld' chained node
/*25874*/         OPC_CheckFoldableChainNode,
/*25875*/         OPC_RecordChild1, // #2 = $src2
/*25876*/         OPC_CheckPredicate, 2, // Predicate_unindexedload
/*25878*/         OPC_CheckPredicate, 3, // Predicate_load
/*25880*/         OPC_CheckPredicate, 23, // Predicate_memop
/*25882*/         OPC_CheckType, MVT::v16i8,
/*25884*/         OPC_MoveParent,
/*25885*/         OPC_MoveParent,
/*25886*/         OPC_Scope, 19, /*->25907*/ // 2 children in Scope
/*25888*/           OPC_CheckPatternPredicate, 14, // (Subtarget->hasAVX()) && (Subtarget->hasAES())
/*25890*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*25893*/           OPC_EmitMergeInputChains1_1,
/*25894*/           OPC_MorphNodeTo, TARGET_VAL(X86::VAESDECLASTrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (intrinsic_wo_chain:v2i64 108:iPTR, VR128:v2i64:$src1, (bitconvert:v2i64 (ld:v16i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 33
                    // Dst: (VAESDECLASTrm:v2i64 VR128:v2i64:$src1, addr:iPTR:$src2)
/*25907*/         /*Scope*/ 19, /*->25927*/
/*25908*/           OPC_CheckPatternPredicate, 15, // (Subtarget->hasAES())
/*25910*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*25913*/           OPC_EmitMergeInputChains1_1,
/*25914*/           OPC_MorphNodeTo, TARGET_VAL(X86::AESDECLASTrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (intrinsic_wo_chain:v2i64 108:iPTR, VR128:v2i64:$src1, (bitconvert:v2i64 (ld:v16i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 33
                    // Dst: (AESDECLASTrm:v2i64 VR128:v2i64:$src1, addr:iPTR:$src2)
/*25927*/         0, /*End of Scope*/
                0, // EndSwitchOpcode
/*25929*/     /*Scope*/ 27, /*->25957*/
/*25930*/       OPC_RecordChild2, // #1 = $src2
/*25931*/       OPC_Scope, 11, /*->25944*/ // 2 children in Scope
/*25933*/         OPC_CheckPatternPredicate, 14, // (Subtarget->hasAVX()) && (Subtarget->hasAES())
/*25935*/         OPC_MorphNodeTo, TARGET_VAL(X86::VAESDECLASTrr), 0,
                      1/*#VTs*/, MVT::v2i64, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v2i64 108:iPTR, VR128:v2i64:$src1, VR128:v2i64:$src2) - Complexity = 28
                  // Dst: (VAESDECLASTrr:v2i64 VR128:v2i64:$src1, VR128:v2i64:$src2)
/*25944*/       /*Scope*/ 11, /*->25956*/
/*25945*/         OPC_CheckPatternPredicate, 15, // (Subtarget->hasAES())
/*25947*/         OPC_MorphNodeTo, TARGET_VAL(X86::AESDECLASTrr), 0,
                      1/*#VTs*/, MVT::v2i64, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v2i64 108:iPTR, VR128:v2i64:$src1, VR128:v2i64:$src2) - Complexity = 8
                  // Dst: (AESDECLASTrr:v2i64 VR128:v2i64:$src1, VR128:v2i64:$src2)
/*25956*/       0, /*End of Scope*/
/*25957*/     0, /*End of Scope*/
/*25958*/   /*Scope*/ 98|128,1/*226*/, /*->26186*/
/*25960*/     OPC_CheckInteger, 25|128,3/*409*/, 
/*25963*/     OPC_MoveParent,
/*25964*/     OPC_Scope, 64|128,1/*192*/, /*->26159*/ // 2 children in Scope
/*25967*/       OPC_MoveChild, 1,
/*25969*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*25972*/       OPC_MoveChild, 0,
/*25974*/       OPC_SwitchOpcode /*3 cases */, 66,  TARGET_VAL(X86ISD::VZEXT_MOVL),// ->26044
/*25978*/         OPC_MoveChild, 0,
/*25980*/         OPC_CheckOpcode, TARGET_VAL(ISD::SCALAR_TO_VECTOR),
/*25983*/         OPC_MoveChild, 0,
/*25985*/         OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*25988*/         OPC_RecordMemRef,
/*25989*/         OPC_RecordNode, // #0 = 'ld' chained node
/*25990*/         OPC_CheckFoldableChainNode,
/*25991*/         OPC_RecordChild1, // #1 = $src
/*25992*/         OPC_CheckPredicate, 2, // Predicate_unindexedload
/*25994*/         OPC_CheckPredicate, 3, // Predicate_load
/*25996*/         OPC_CheckType, MVT::i64,
/*25998*/         OPC_MoveParent,
/*25999*/         OPC_MoveParent,
/*26000*/         OPC_CheckType, MVT::v2i64,
/*26002*/         OPC_MoveParent,
/*26003*/         OPC_MoveParent,
/*26004*/         OPC_Scope, 18, /*->26024*/ // 2 children in Scope
/*26006*/           OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*26008*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*26011*/           OPC_EmitMergeInputChains1_0,
/*26012*/           OPC_MorphNodeTo, TARGET_VAL(X86::PMOVSXBWrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v8i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (intrinsic_wo_chain:v8i16 409:iPTR, (bitconvert:v16i8 (X86vzmovl:v2i64 (scalar_to_vector:v2i64 (ld:i64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)))) - Complexity = 39
                    // Dst: (PMOVSXBWrm:v8i16 addr:iPTR:$src)
/*26024*/         /*Scope*/ 18, /*->26043*/
/*26025*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*26027*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*26030*/           OPC_EmitMergeInputChains1_0,
/*26031*/           OPC_MorphNodeTo, TARGET_VAL(X86::VPMOVSXBWrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v8i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (intrinsic_wo_chain:v8i16 409:iPTR, (bitconvert:v16i8 (X86vzmovl:v2i64 (scalar_to_vector:v2i64 (ld:i64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)))) - Complexity = 39
                    // Dst: (VPMOVSXBWrm:v8i16 addr:iPTR:$src)
/*26043*/         0, /*End of Scope*/
                /*SwitchOpcode*/ 60,  TARGET_VAL(ISD::SCALAR_TO_VECTOR),// ->26107
/*26047*/         OPC_MoveChild, 0,
/*26049*/         OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*26052*/         OPC_RecordMemRef,
/*26053*/         OPC_RecordNode, // #0 = 'ld' chained node
/*26054*/         OPC_CheckFoldableChainNode,
/*26055*/         OPC_RecordChild1, // #1 = $src
/*26056*/         OPC_CheckPredicate, 2, // Predicate_unindexedload
/*26058*/         OPC_CheckPredicate, 3, // Predicate_load
/*26060*/         OPC_CheckType, MVT::i64,
/*26062*/         OPC_MoveParent,
/*26063*/         OPC_CheckType, MVT::v2i64,
/*26065*/         OPC_MoveParent,
/*26066*/         OPC_MoveParent,
/*26067*/         OPC_Scope, 18, /*->26087*/ // 2 children in Scope
/*26069*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*26071*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*26074*/           OPC_EmitMergeInputChains1_0,
/*26075*/           OPC_MorphNodeTo, TARGET_VAL(X86::VPMOVSXBWrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v8i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (intrinsic_wo_chain:v8i16 409:iPTR, (bitconvert:v16i8 (scalar_to_vector:v2i64 (ld:i64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 36
                    // Dst: (VPMOVSXBWrm:v8i16 addr:iPTR:$src)
/*26087*/         /*Scope*/ 18, /*->26106*/
/*26088*/           OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*26090*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*26093*/           OPC_EmitMergeInputChains1_0,
/*26094*/           OPC_MorphNodeTo, TARGET_VAL(X86::PMOVSXBWrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v8i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (intrinsic_wo_chain:v8i16 409:iPTR, (bitconvert:v16i8 (scalar_to_vector:v2i64 (ld:i64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 36
                    // Dst: (PMOVSXBWrm:v8i16 addr:iPTR:$src)
/*26106*/         0, /*End of Scope*/
                /*SwitchOpcode*/ 48,  TARGET_VAL(X86ISD::VZEXT_LOAD),// ->26158
/*26110*/         OPC_RecordMemRef,
/*26111*/         OPC_RecordNode, // #0 = 'X86vzload' chained node
/*26112*/         OPC_CheckFoldableChainNode,
/*26113*/         OPC_RecordChild1, // #1 = $src
/*26114*/         OPC_CheckType, MVT::v2i64,
/*26116*/         OPC_MoveParent,
/*26117*/         OPC_MoveParent,
/*26118*/         OPC_Scope, 18, /*->26138*/ // 2 children in Scope
/*26120*/           OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*26122*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*26125*/           OPC_EmitMergeInputChains1_0,
/*26126*/           OPC_MorphNodeTo, TARGET_VAL(X86::PMOVSXBWrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v8i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (intrinsic_wo_chain:v8i16 409:iPTR, (bitconvert:v16i8 (X86vzload:v2i64 addr:iPTR:$src))) - Complexity = 32
                    // Dst: (PMOVSXBWrm:v8i16 addr:iPTR:$src)
/*26138*/         /*Scope*/ 18, /*->26157*/
/*26139*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*26141*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*26144*/           OPC_EmitMergeInputChains1_0,
/*26145*/           OPC_MorphNodeTo, TARGET_VAL(X86::VPMOVSXBWrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v8i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (intrinsic_wo_chain:v8i16 409:iPTR, (bitconvert:v16i8 (X86vzload:v2i64 addr:iPTR:$src))) - Complexity = 32
                    // Dst: (VPMOVSXBWrm:v8i16 addr:iPTR:$src)
/*26157*/         0, /*End of Scope*/
                0, // EndSwitchOpcode
/*26159*/     /*Scope*/ 25, /*->26185*/
/*26160*/       OPC_RecordChild1, // #0 = $src
/*26161*/       OPC_Scope, 10, /*->26173*/ // 2 children in Scope
/*26163*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*26165*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPMOVSXBWrr), 0,
                      1/*#VTs*/, MVT::v8i16, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:v8i16 409:iPTR, VR128:v16i8:$src) - Complexity = 8
                  // Dst: (VPMOVSXBWrr:v8i16 VR128:v16i8:$src)
/*26173*/       /*Scope*/ 10, /*->26184*/
/*26174*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*26176*/         OPC_MorphNodeTo, TARGET_VAL(X86::PMOVSXBWrr), 0,
                      1/*#VTs*/, MVT::v8i16, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:v8i16 409:iPTR, VR128:v16i8:$src) - Complexity = 8
                  // Dst: (PMOVSXBWrr:v8i16 VR128:v16i8:$src)
/*26184*/       0, /*End of Scope*/
/*26185*/     0, /*End of Scope*/
/*26186*/   /*Scope*/ 98|128,1/*226*/, /*->26414*/
/*26188*/     OPC_CheckInteger, 27|128,3/*411*/, 
/*26191*/     OPC_MoveParent,
/*26192*/     OPC_Scope, 64|128,1/*192*/, /*->26387*/ // 2 children in Scope
/*26195*/       OPC_MoveChild, 1,
/*26197*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*26200*/       OPC_MoveChild, 0,
/*26202*/       OPC_SwitchOpcode /*3 cases */, 66,  TARGET_VAL(X86ISD::VZEXT_MOVL),// ->26272
/*26206*/         OPC_MoveChild, 0,
/*26208*/         OPC_CheckOpcode, TARGET_VAL(ISD::SCALAR_TO_VECTOR),
/*26211*/         OPC_MoveChild, 0,
/*26213*/         OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*26216*/         OPC_RecordMemRef,
/*26217*/         OPC_RecordNode, // #0 = 'ld' chained node
/*26218*/         OPC_CheckFoldableChainNode,
/*26219*/         OPC_RecordChild1, // #1 = $src
/*26220*/         OPC_CheckPredicate, 2, // Predicate_unindexedload
/*26222*/         OPC_CheckPredicate, 3, // Predicate_load
/*26224*/         OPC_CheckType, MVT::i64,
/*26226*/         OPC_MoveParent,
/*26227*/         OPC_MoveParent,
/*26228*/         OPC_CheckType, MVT::v2i64,
/*26230*/         OPC_MoveParent,
/*26231*/         OPC_MoveParent,
/*26232*/         OPC_Scope, 18, /*->26252*/ // 2 children in Scope
/*26234*/           OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*26236*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*26239*/           OPC_EmitMergeInputChains1_0,
/*26240*/           OPC_MorphNodeTo, TARGET_VAL(X86::PMOVSXWDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (intrinsic_wo_chain:v4i32 411:iPTR, (bitconvert:v8i16 (X86vzmovl:v2i64 (scalar_to_vector:v2i64 (ld:i64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)))) - Complexity = 39
                    // Dst: (PMOVSXWDrm:v4i32 addr:iPTR:$src)
/*26252*/         /*Scope*/ 18, /*->26271*/
/*26253*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*26255*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*26258*/           OPC_EmitMergeInputChains1_0,
/*26259*/           OPC_MorphNodeTo, TARGET_VAL(X86::VPMOVSXWDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (intrinsic_wo_chain:v4i32 411:iPTR, (bitconvert:v8i16 (X86vzmovl:v2i64 (scalar_to_vector:v2i64 (ld:i64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)))) - Complexity = 39
                    // Dst: (VPMOVSXWDrm:v4i32 addr:iPTR:$src)
/*26271*/         0, /*End of Scope*/
                /*SwitchOpcode*/ 60,  TARGET_VAL(ISD::SCALAR_TO_VECTOR),// ->26335
/*26275*/         OPC_MoveChild, 0,
/*26277*/         OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*26280*/         OPC_RecordMemRef,
/*26281*/         OPC_RecordNode, // #0 = 'ld' chained node
/*26282*/         OPC_CheckFoldableChainNode,
/*26283*/         OPC_RecordChild1, // #1 = $src
/*26284*/         OPC_CheckPredicate, 2, // Predicate_unindexedload
/*26286*/         OPC_CheckPredicate, 3, // Predicate_load
/*26288*/         OPC_CheckType, MVT::i64,
/*26290*/         OPC_MoveParent,
/*26291*/         OPC_CheckType, MVT::v2i64,
/*26293*/         OPC_MoveParent,
/*26294*/         OPC_MoveParent,
/*26295*/         OPC_Scope, 18, /*->26315*/ // 2 children in Scope
/*26297*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*26299*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*26302*/           OPC_EmitMergeInputChains1_0,
/*26303*/           OPC_MorphNodeTo, TARGET_VAL(X86::VPMOVSXWDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (intrinsic_wo_chain:v4i32 411:iPTR, (bitconvert:v8i16 (scalar_to_vector:v2i64 (ld:i64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 36
                    // Dst: (VPMOVSXWDrm:v4i32 addr:iPTR:$src)
/*26315*/         /*Scope*/ 18, /*->26334*/
/*26316*/           OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*26318*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*26321*/           OPC_EmitMergeInputChains1_0,
/*26322*/           OPC_MorphNodeTo, TARGET_VAL(X86::PMOVSXWDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (intrinsic_wo_chain:v4i32 411:iPTR, (bitconvert:v8i16 (scalar_to_vector:v2i64 (ld:i64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 36
                    // Dst: (PMOVSXWDrm:v4i32 addr:iPTR:$src)
/*26334*/         0, /*End of Scope*/
                /*SwitchOpcode*/ 48,  TARGET_VAL(X86ISD::VZEXT_LOAD),// ->26386
/*26338*/         OPC_RecordMemRef,
/*26339*/         OPC_RecordNode, // #0 = 'X86vzload' chained node
/*26340*/         OPC_CheckFoldableChainNode,
/*26341*/         OPC_RecordChild1, // #1 = $src
/*26342*/         OPC_CheckType, MVT::v2i64,
/*26344*/         OPC_MoveParent,
/*26345*/         OPC_MoveParent,
/*26346*/         OPC_Scope, 18, /*->26366*/ // 2 children in Scope
/*26348*/           OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*26350*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*26353*/           OPC_EmitMergeInputChains1_0,
/*26354*/           OPC_MorphNodeTo, TARGET_VAL(X86::PMOVSXWDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (intrinsic_wo_chain:v4i32 411:iPTR, (bitconvert:v8i16 (X86vzload:v2i64 addr:iPTR:$src))) - Complexity = 32
                    // Dst: (PMOVSXWDrm:v4i32 addr:iPTR:$src)
/*26366*/         /*Scope*/ 18, /*->26385*/
/*26367*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*26369*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*26372*/           OPC_EmitMergeInputChains1_0,
/*26373*/           OPC_MorphNodeTo, TARGET_VAL(X86::VPMOVSXWDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (intrinsic_wo_chain:v4i32 411:iPTR, (bitconvert:v8i16 (X86vzload:v2i64 addr:iPTR:$src))) - Complexity = 32
                    // Dst: (VPMOVSXWDrm:v4i32 addr:iPTR:$src)
/*26385*/         0, /*End of Scope*/
                0, // EndSwitchOpcode
/*26387*/     /*Scope*/ 25, /*->26413*/
/*26388*/       OPC_RecordChild1, // #0 = $src
/*26389*/       OPC_Scope, 10, /*->26401*/ // 2 children in Scope
/*26391*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*26393*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPMOVSXWDrr), 0,
                      1/*#VTs*/, MVT::v4i32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:v4i32 411:iPTR, VR128:v8i16:$src) - Complexity = 8
                  // Dst: (VPMOVSXWDrr:v4i32 VR128:v8i16:$src)
/*26401*/       /*Scope*/ 10, /*->26412*/
/*26402*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*26404*/         OPC_MorphNodeTo, TARGET_VAL(X86::PMOVSXWDrr), 0,
                      1/*#VTs*/, MVT::v4i32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:v4i32 411:iPTR, VR128:v8i16:$src) - Complexity = 8
                  // Dst: (PMOVSXWDrr:v4i32 VR128:v8i16:$src)
/*26412*/       0, /*End of Scope*/
/*26413*/     0, /*End of Scope*/
/*26414*/   /*Scope*/ 98|128,1/*226*/, /*->26642*/
/*26416*/     OPC_CheckInteger, 26|128,3/*410*/, 
/*26419*/     OPC_MoveParent,
/*26420*/     OPC_Scope, 64|128,1/*192*/, /*->26615*/ // 2 children in Scope
/*26423*/       OPC_MoveChild, 1,
/*26425*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*26428*/       OPC_MoveChild, 0,
/*26430*/       OPC_SwitchOpcode /*3 cases */, 66,  TARGET_VAL(X86ISD::VZEXT_MOVL),// ->26500
/*26434*/         OPC_MoveChild, 0,
/*26436*/         OPC_CheckOpcode, TARGET_VAL(ISD::SCALAR_TO_VECTOR),
/*26439*/         OPC_MoveChild, 0,
/*26441*/         OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*26444*/         OPC_RecordMemRef,
/*26445*/         OPC_RecordNode, // #0 = 'ld' chained node
/*26446*/         OPC_CheckFoldableChainNode,
/*26447*/         OPC_RecordChild1, // #1 = $src
/*26448*/         OPC_CheckPredicate, 2, // Predicate_unindexedload
/*26450*/         OPC_CheckPredicate, 3, // Predicate_load
/*26452*/         OPC_CheckType, MVT::i64,
/*26454*/         OPC_MoveParent,
/*26455*/         OPC_MoveParent,
/*26456*/         OPC_CheckType, MVT::v2i64,
/*26458*/         OPC_MoveParent,
/*26459*/         OPC_MoveParent,
/*26460*/         OPC_Scope, 18, /*->26480*/ // 2 children in Scope
/*26462*/           OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*26464*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*26467*/           OPC_EmitMergeInputChains1_0,
/*26468*/           OPC_MorphNodeTo, TARGET_VAL(X86::PMOVSXDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (intrinsic_wo_chain:v2i64 410:iPTR, (bitconvert:v4i32 (X86vzmovl:v2i64 (scalar_to_vector:v2i64 (ld:i64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)))) - Complexity = 39
                    // Dst: (PMOVSXDQrm:v2i64 addr:iPTR:$src)
/*26480*/         /*Scope*/ 18, /*->26499*/
/*26481*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*26483*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*26486*/           OPC_EmitMergeInputChains1_0,
/*26487*/           OPC_MorphNodeTo, TARGET_VAL(X86::VPMOVSXDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (intrinsic_wo_chain:v2i64 410:iPTR, (bitconvert:v4i32 (X86vzmovl:v2i64 (scalar_to_vector:v2i64 (ld:i64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)))) - Complexity = 39
                    // Dst: (VPMOVSXDQrm:v2i64 addr:iPTR:$src)
/*26499*/         0, /*End of Scope*/
                /*SwitchOpcode*/ 60,  TARGET_VAL(ISD::SCALAR_TO_VECTOR),// ->26563
/*26503*/         OPC_MoveChild, 0,
/*26505*/         OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*26508*/         OPC_RecordMemRef,
/*26509*/         OPC_RecordNode, // #0 = 'ld' chained node
/*26510*/         OPC_CheckFoldableChainNode,
/*26511*/         OPC_RecordChild1, // #1 = $src
/*26512*/         OPC_CheckPredicate, 2, // Predicate_unindexedload
/*26514*/         OPC_CheckPredicate, 3, // Predicate_load
/*26516*/         OPC_CheckType, MVT::i64,
/*26518*/         OPC_MoveParent,
/*26519*/         OPC_CheckType, MVT::v2i64,
/*26521*/         OPC_MoveParent,
/*26522*/         OPC_MoveParent,
/*26523*/         OPC_Scope, 18, /*->26543*/ // 2 children in Scope
/*26525*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*26527*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*26530*/           OPC_EmitMergeInputChains1_0,
/*26531*/           OPC_MorphNodeTo, TARGET_VAL(X86::VPMOVSXDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (intrinsic_wo_chain:v2i64 410:iPTR, (bitconvert:v4i32 (scalar_to_vector:v2i64 (ld:i64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 36
                    // Dst: (VPMOVSXDQrm:v2i64 addr:iPTR:$src)
/*26543*/         /*Scope*/ 18, /*->26562*/
/*26544*/           OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*26546*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*26549*/           OPC_EmitMergeInputChains1_0,
/*26550*/           OPC_MorphNodeTo, TARGET_VAL(X86::PMOVSXDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (intrinsic_wo_chain:v2i64 410:iPTR, (bitconvert:v4i32 (scalar_to_vector:v2i64 (ld:i64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 36
                    // Dst: (PMOVSXDQrm:v2i64 addr:iPTR:$src)
/*26562*/         0, /*End of Scope*/
                /*SwitchOpcode*/ 48,  TARGET_VAL(X86ISD::VZEXT_LOAD),// ->26614
/*26566*/         OPC_RecordMemRef,
/*26567*/         OPC_RecordNode, // #0 = 'X86vzload' chained node
/*26568*/         OPC_CheckFoldableChainNode,
/*26569*/         OPC_RecordChild1, // #1 = $src
/*26570*/         OPC_CheckType, MVT::v2i64,
/*26572*/         OPC_MoveParent,
/*26573*/         OPC_MoveParent,
/*26574*/         OPC_Scope, 18, /*->26594*/ // 2 children in Scope
/*26576*/           OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*26578*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*26581*/           OPC_EmitMergeInputChains1_0,
/*26582*/           OPC_MorphNodeTo, TARGET_VAL(X86::PMOVSXDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (intrinsic_wo_chain:v2i64 410:iPTR, (bitconvert:v4i32 (X86vzload:v2i64 addr:iPTR:$src))) - Complexity = 32
                    // Dst: (PMOVSXDQrm:v2i64 addr:iPTR:$src)
/*26594*/         /*Scope*/ 18, /*->26613*/
/*26595*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*26597*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*26600*/           OPC_EmitMergeInputChains1_0,
/*26601*/           OPC_MorphNodeTo, TARGET_VAL(X86::VPMOVSXDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (intrinsic_wo_chain:v2i64 410:iPTR, (bitconvert:v4i32 (X86vzload:v2i64 addr:iPTR:$src))) - Complexity = 32
                    // Dst: (VPMOVSXDQrm:v2i64 addr:iPTR:$src)
/*26613*/         0, /*End of Scope*/
                0, // EndSwitchOpcode
/*26615*/     /*Scope*/ 25, /*->26641*/
/*26616*/       OPC_RecordChild1, // #0 = $src
/*26617*/       OPC_Scope, 10, /*->26629*/ // 2 children in Scope
/*26619*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*26621*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPMOVSXDQrr), 0,
                      1/*#VTs*/, MVT::v2i64, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:v2i64 410:iPTR, VR128:v4i32:$src) - Complexity = 8
                  // Dst: (VPMOVSXDQrr:v2i64 VR128:v4i32:$src)
/*26629*/       /*Scope*/ 10, /*->26640*/
/*26630*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*26632*/         OPC_MorphNodeTo, TARGET_VAL(X86::PMOVSXDQrr), 0,
                      1/*#VTs*/, MVT::v2i64, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:v2i64 410:iPTR, VR128:v4i32:$src) - Complexity = 8
                  // Dst: (PMOVSXDQrr:v2i64 VR128:v4i32:$src)
/*26640*/       0, /*End of Scope*/
/*26641*/     0, /*End of Scope*/
/*26642*/   /*Scope*/ 98|128,1/*226*/, /*->26870*/
/*26644*/     OPC_CheckInteger, 31|128,3/*415*/, 
/*26647*/     OPC_MoveParent,
/*26648*/     OPC_Scope, 64|128,1/*192*/, /*->26843*/ // 2 children in Scope
/*26651*/       OPC_MoveChild, 1,
/*26653*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*26656*/       OPC_MoveChild, 0,
/*26658*/       OPC_SwitchOpcode /*3 cases */, 66,  TARGET_VAL(X86ISD::VZEXT_MOVL),// ->26728
/*26662*/         OPC_MoveChild, 0,
/*26664*/         OPC_CheckOpcode, TARGET_VAL(ISD::SCALAR_TO_VECTOR),
/*26667*/         OPC_MoveChild, 0,
/*26669*/         OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*26672*/         OPC_RecordMemRef,
/*26673*/         OPC_RecordNode, // #0 = 'ld' chained node
/*26674*/         OPC_CheckFoldableChainNode,
/*26675*/         OPC_RecordChild1, // #1 = $src
/*26676*/         OPC_CheckPredicate, 2, // Predicate_unindexedload
/*26678*/         OPC_CheckPredicate, 3, // Predicate_load
/*26680*/         OPC_CheckType, MVT::i64,
/*26682*/         OPC_MoveParent,
/*26683*/         OPC_MoveParent,
/*26684*/         OPC_CheckType, MVT::v2i64,
/*26686*/         OPC_MoveParent,
/*26687*/         OPC_MoveParent,
/*26688*/         OPC_Scope, 18, /*->26708*/ // 2 children in Scope
/*26690*/           OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*26692*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*26695*/           OPC_EmitMergeInputChains1_0,
/*26696*/           OPC_MorphNodeTo, TARGET_VAL(X86::PMOVZXBWrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v8i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (intrinsic_wo_chain:v8i16 415:iPTR, (bitconvert:v16i8 (X86vzmovl:v2i64 (scalar_to_vector:v2i64 (ld:i64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)))) - Complexity = 39
                    // Dst: (PMOVZXBWrm:v8i16 addr:iPTR:$src)
/*26708*/         /*Scope*/ 18, /*->26727*/
/*26709*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*26711*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*26714*/           OPC_EmitMergeInputChains1_0,
/*26715*/           OPC_MorphNodeTo, TARGET_VAL(X86::VPMOVZXBWrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v8i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (intrinsic_wo_chain:v8i16 415:iPTR, (bitconvert:v16i8 (X86vzmovl:v2i64 (scalar_to_vector:v2i64 (ld:i64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)))) - Complexity = 39
                    // Dst: (VPMOVZXBWrm:v8i16 addr:iPTR:$src)
/*26727*/         0, /*End of Scope*/
                /*SwitchOpcode*/ 60,  TARGET_VAL(ISD::SCALAR_TO_VECTOR),// ->26791
/*26731*/         OPC_MoveChild, 0,
/*26733*/         OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*26736*/         OPC_RecordMemRef,
/*26737*/         OPC_RecordNode, // #0 = 'ld' chained node
/*26738*/         OPC_CheckFoldableChainNode,
/*26739*/         OPC_RecordChild1, // #1 = $src
/*26740*/         OPC_CheckPredicate, 2, // Predicate_unindexedload
/*26742*/         OPC_CheckPredicate, 3, // Predicate_load
/*26744*/         OPC_CheckType, MVT::i64,
/*26746*/         OPC_MoveParent,
/*26747*/         OPC_CheckType, MVT::v2i64,
/*26749*/         OPC_MoveParent,
/*26750*/         OPC_MoveParent,
/*26751*/         OPC_Scope, 18, /*->26771*/ // 2 children in Scope
/*26753*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*26755*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*26758*/           OPC_EmitMergeInputChains1_0,
/*26759*/           OPC_MorphNodeTo, TARGET_VAL(X86::VPMOVZXBWrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v8i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (intrinsic_wo_chain:v8i16 415:iPTR, (bitconvert:v16i8 (scalar_to_vector:v2i64 (ld:i64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 36
                    // Dst: (VPMOVZXBWrm:v8i16 addr:iPTR:$src)
/*26771*/         /*Scope*/ 18, /*->26790*/
/*26772*/           OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*26774*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*26777*/           OPC_EmitMergeInputChains1_0,
/*26778*/           OPC_MorphNodeTo, TARGET_VAL(X86::PMOVZXBWrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v8i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (intrinsic_wo_chain:v8i16 415:iPTR, (bitconvert:v16i8 (scalar_to_vector:v2i64 (ld:i64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 36
                    // Dst: (PMOVZXBWrm:v8i16 addr:iPTR:$src)
/*26790*/         0, /*End of Scope*/
                /*SwitchOpcode*/ 48,  TARGET_VAL(X86ISD::VZEXT_LOAD),// ->26842
/*26794*/         OPC_RecordMemRef,
/*26795*/         OPC_RecordNode, // #0 = 'X86vzload' chained node
/*26796*/         OPC_CheckFoldableChainNode,
/*26797*/         OPC_RecordChild1, // #1 = $src
/*26798*/         OPC_CheckType, MVT::v2i64,
/*26800*/         OPC_MoveParent,
/*26801*/         OPC_MoveParent,
/*26802*/         OPC_Scope, 18, /*->26822*/ // 2 children in Scope
/*26804*/           OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*26806*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*26809*/           OPC_EmitMergeInputChains1_0,
/*26810*/           OPC_MorphNodeTo, TARGET_VAL(X86::PMOVZXBWrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v8i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (intrinsic_wo_chain:v8i16 415:iPTR, (bitconvert:v16i8 (X86vzload:v2i64 addr:iPTR:$src))) - Complexity = 32
                    // Dst: (PMOVZXBWrm:v8i16 addr:iPTR:$src)
/*26822*/         /*Scope*/ 18, /*->26841*/
/*26823*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*26825*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*26828*/           OPC_EmitMergeInputChains1_0,
/*26829*/           OPC_MorphNodeTo, TARGET_VAL(X86::VPMOVZXBWrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v8i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (intrinsic_wo_chain:v8i16 415:iPTR, (bitconvert:v16i8 (X86vzload:v2i64 addr:iPTR:$src))) - Complexity = 32
                    // Dst: (VPMOVZXBWrm:v8i16 addr:iPTR:$src)
/*26841*/         0, /*End of Scope*/
                0, // EndSwitchOpcode
/*26843*/     /*Scope*/ 25, /*->26869*/
/*26844*/       OPC_RecordChild1, // #0 = $src
/*26845*/       OPC_Scope, 10, /*->26857*/ // 2 children in Scope
/*26847*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*26849*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPMOVZXBWrr), 0,
                      1/*#VTs*/, MVT::v8i16, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:v8i16 415:iPTR, VR128:v16i8:$src) - Complexity = 8
                  // Dst: (VPMOVZXBWrr:v8i16 VR128:v16i8:$src)
/*26857*/       /*Scope*/ 10, /*->26868*/
/*26858*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*26860*/         OPC_MorphNodeTo, TARGET_VAL(X86::PMOVZXBWrr), 0,
                      1/*#VTs*/, MVT::v8i16, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:v8i16 415:iPTR, VR128:v16i8:$src) - Complexity = 8
                  // Dst: (PMOVZXBWrr:v8i16 VR128:v16i8:$src)
/*26868*/       0, /*End of Scope*/
/*26869*/     0, /*End of Scope*/
/*26870*/   /*Scope*/ 98|128,1/*226*/, /*->27098*/
/*26872*/     OPC_CheckInteger, 33|128,3/*417*/, 
/*26875*/     OPC_MoveParent,
/*26876*/     OPC_Scope, 64|128,1/*192*/, /*->27071*/ // 2 children in Scope
/*26879*/       OPC_MoveChild, 1,
/*26881*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*26884*/       OPC_MoveChild, 0,
/*26886*/       OPC_SwitchOpcode /*3 cases */, 66,  TARGET_VAL(X86ISD::VZEXT_MOVL),// ->26956
/*26890*/         OPC_MoveChild, 0,
/*26892*/         OPC_CheckOpcode, TARGET_VAL(ISD::SCALAR_TO_VECTOR),
/*26895*/         OPC_MoveChild, 0,
/*26897*/         OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*26900*/         OPC_RecordMemRef,
/*26901*/         OPC_RecordNode, // #0 = 'ld' chained node
/*26902*/         OPC_CheckFoldableChainNode,
/*26903*/         OPC_RecordChild1, // #1 = $src
/*26904*/         OPC_CheckPredicate, 2, // Predicate_unindexedload
/*26906*/         OPC_CheckPredicate, 3, // Predicate_load
/*26908*/         OPC_CheckType, MVT::i64,
/*26910*/         OPC_MoveParent,
/*26911*/         OPC_MoveParent,
/*26912*/         OPC_CheckType, MVT::v2i64,
/*26914*/         OPC_MoveParent,
/*26915*/         OPC_MoveParent,
/*26916*/         OPC_Scope, 18, /*->26936*/ // 2 children in Scope
/*26918*/           OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*26920*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*26923*/           OPC_EmitMergeInputChains1_0,
/*26924*/           OPC_MorphNodeTo, TARGET_VAL(X86::PMOVZXWDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (intrinsic_wo_chain:v4i32 417:iPTR, (bitconvert:v8i16 (X86vzmovl:v2i64 (scalar_to_vector:v2i64 (ld:i64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)))) - Complexity = 39
                    // Dst: (PMOVZXWDrm:v4i32 addr:iPTR:$src)
/*26936*/         /*Scope*/ 18, /*->26955*/
/*26937*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*26939*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*26942*/           OPC_EmitMergeInputChains1_0,
/*26943*/           OPC_MorphNodeTo, TARGET_VAL(X86::VPMOVZXWDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (intrinsic_wo_chain:v4i32 417:iPTR, (bitconvert:v8i16 (X86vzmovl:v2i64 (scalar_to_vector:v2i64 (ld:i64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)))) - Complexity = 39
                    // Dst: (VPMOVZXWDrm:v4i32 addr:iPTR:$src)
/*26955*/         0, /*End of Scope*/
                /*SwitchOpcode*/ 60,  TARGET_VAL(ISD::SCALAR_TO_VECTOR),// ->27019
/*26959*/         OPC_MoveChild, 0,
/*26961*/         OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*26964*/         OPC_RecordMemRef,
/*26965*/         OPC_RecordNode, // #0 = 'ld' chained node
/*26966*/         OPC_CheckFoldableChainNode,
/*26967*/         OPC_RecordChild1, // #1 = $src
/*26968*/         OPC_CheckPredicate, 2, // Predicate_unindexedload
/*26970*/         OPC_CheckPredicate, 3, // Predicate_load
/*26972*/         OPC_CheckType, MVT::i64,
/*26974*/         OPC_MoveParent,
/*26975*/         OPC_CheckType, MVT::v2i64,
/*26977*/         OPC_MoveParent,
/*26978*/         OPC_MoveParent,
/*26979*/         OPC_Scope, 18, /*->26999*/ // 2 children in Scope
/*26981*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*26983*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*26986*/           OPC_EmitMergeInputChains1_0,
/*26987*/           OPC_MorphNodeTo, TARGET_VAL(X86::VPMOVZXWDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (intrinsic_wo_chain:v4i32 417:iPTR, (bitconvert:v8i16 (scalar_to_vector:v2i64 (ld:i64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 36
                    // Dst: (VPMOVZXWDrm:v4i32 addr:iPTR:$src)
/*26999*/         /*Scope*/ 18, /*->27018*/
/*27000*/           OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*27002*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*27005*/           OPC_EmitMergeInputChains1_0,
/*27006*/           OPC_MorphNodeTo, TARGET_VAL(X86::PMOVZXWDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (intrinsic_wo_chain:v4i32 417:iPTR, (bitconvert:v8i16 (scalar_to_vector:v2i64 (ld:i64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 36
                    // Dst: (PMOVZXWDrm:v4i32 addr:iPTR:$src)
/*27018*/         0, /*End of Scope*/
                /*SwitchOpcode*/ 48,  TARGET_VAL(X86ISD::VZEXT_LOAD),// ->27070
/*27022*/         OPC_RecordMemRef,
/*27023*/         OPC_RecordNode, // #0 = 'X86vzload' chained node
/*27024*/         OPC_CheckFoldableChainNode,
/*27025*/         OPC_RecordChild1, // #1 = $src
/*27026*/         OPC_CheckType, MVT::v2i64,
/*27028*/         OPC_MoveParent,
/*27029*/         OPC_MoveParent,
/*27030*/         OPC_Scope, 18, /*->27050*/ // 2 children in Scope
/*27032*/           OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*27034*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*27037*/           OPC_EmitMergeInputChains1_0,
/*27038*/           OPC_MorphNodeTo, TARGET_VAL(X86::PMOVZXWDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (intrinsic_wo_chain:v4i32 417:iPTR, (bitconvert:v8i16 (X86vzload:v2i64 addr:iPTR:$src))) - Complexity = 32
                    // Dst: (PMOVZXWDrm:v4i32 addr:iPTR:$src)
/*27050*/         /*Scope*/ 18, /*->27069*/
/*27051*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*27053*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*27056*/           OPC_EmitMergeInputChains1_0,
/*27057*/           OPC_MorphNodeTo, TARGET_VAL(X86::VPMOVZXWDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (intrinsic_wo_chain:v4i32 417:iPTR, (bitconvert:v8i16 (X86vzload:v2i64 addr:iPTR:$src))) - Complexity = 32
                    // Dst: (VPMOVZXWDrm:v4i32 addr:iPTR:$src)
/*27069*/         0, /*End of Scope*/
                0, // EndSwitchOpcode
/*27071*/     /*Scope*/ 25, /*->27097*/
/*27072*/       OPC_RecordChild1, // #0 = $src
/*27073*/       OPC_Scope, 10, /*->27085*/ // 2 children in Scope
/*27075*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*27077*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPMOVZXWDrr), 0,
                      1/*#VTs*/, MVT::v4i32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:v4i32 417:iPTR, VR128:v8i16:$src) - Complexity = 8
                  // Dst: (VPMOVZXWDrr:v4i32 VR128:v8i16:$src)
/*27085*/       /*Scope*/ 10, /*->27096*/
/*27086*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*27088*/         OPC_MorphNodeTo, TARGET_VAL(X86::PMOVZXWDrr), 0,
                      1/*#VTs*/, MVT::v4i32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:v4i32 417:iPTR, VR128:v8i16:$src) - Complexity = 8
                  // Dst: (PMOVZXWDrr:v4i32 VR128:v8i16:$src)
/*27096*/       0, /*End of Scope*/
/*27097*/     0, /*End of Scope*/
/*27098*/   /*Scope*/ 98|128,1/*226*/, /*->27326*/
/*27100*/     OPC_CheckInteger, 32|128,3/*416*/, 
/*27103*/     OPC_MoveParent,
/*27104*/     OPC_Scope, 64|128,1/*192*/, /*->27299*/ // 2 children in Scope
/*27107*/       OPC_MoveChild, 1,
/*27109*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*27112*/       OPC_MoveChild, 0,
/*27114*/       OPC_SwitchOpcode /*3 cases */, 66,  TARGET_VAL(X86ISD::VZEXT_MOVL),// ->27184
/*27118*/         OPC_MoveChild, 0,
/*27120*/         OPC_CheckOpcode, TARGET_VAL(ISD::SCALAR_TO_VECTOR),
/*27123*/         OPC_MoveChild, 0,
/*27125*/         OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*27128*/         OPC_RecordMemRef,
/*27129*/         OPC_RecordNode, // #0 = 'ld' chained node
/*27130*/         OPC_CheckFoldableChainNode,
/*27131*/         OPC_RecordChild1, // #1 = $src
/*27132*/         OPC_CheckPredicate, 2, // Predicate_unindexedload
/*27134*/         OPC_CheckPredicate, 3, // Predicate_load
/*27136*/         OPC_CheckType, MVT::i64,
/*27138*/         OPC_MoveParent,
/*27139*/         OPC_MoveParent,
/*27140*/         OPC_CheckType, MVT::v2i64,
/*27142*/         OPC_MoveParent,
/*27143*/         OPC_MoveParent,
/*27144*/         OPC_Scope, 18, /*->27164*/ // 2 children in Scope
/*27146*/           OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*27148*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*27151*/           OPC_EmitMergeInputChains1_0,
/*27152*/           OPC_MorphNodeTo, TARGET_VAL(X86::PMOVZXDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (intrinsic_wo_chain:v2i64 416:iPTR, (bitconvert:v4i32 (X86vzmovl:v2i64 (scalar_to_vector:v2i64 (ld:i64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)))) - Complexity = 39
                    // Dst: (PMOVZXDQrm:v2i64 addr:iPTR:$src)
/*27164*/         /*Scope*/ 18, /*->27183*/
/*27165*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*27167*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*27170*/           OPC_EmitMergeInputChains1_0,
/*27171*/           OPC_MorphNodeTo, TARGET_VAL(X86::VPMOVZXDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (intrinsic_wo_chain:v2i64 416:iPTR, (bitconvert:v4i32 (X86vzmovl:v2i64 (scalar_to_vector:v2i64 (ld:i64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)))) - Complexity = 39
                    // Dst: (VPMOVZXDQrm:v2i64 addr:iPTR:$src)
/*27183*/         0, /*End of Scope*/
                /*SwitchOpcode*/ 60,  TARGET_VAL(ISD::SCALAR_TO_VECTOR),// ->27247
/*27187*/         OPC_MoveChild, 0,
/*27189*/         OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*27192*/         OPC_RecordMemRef,
/*27193*/         OPC_RecordNode, // #0 = 'ld' chained node
/*27194*/         OPC_CheckFoldableChainNode,
/*27195*/         OPC_RecordChild1, // #1 = $src
/*27196*/         OPC_CheckPredicate, 2, // Predicate_unindexedload
/*27198*/         OPC_CheckPredicate, 3, // Predicate_load
/*27200*/         OPC_CheckType, MVT::i64,
/*27202*/         OPC_MoveParent,
/*27203*/         OPC_CheckType, MVT::v2i64,
/*27205*/         OPC_MoveParent,
/*27206*/         OPC_MoveParent,
/*27207*/         OPC_Scope, 18, /*->27227*/ // 2 children in Scope
/*27209*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*27211*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*27214*/           OPC_EmitMergeInputChains1_0,
/*27215*/           OPC_MorphNodeTo, TARGET_VAL(X86::VPMOVZXDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (intrinsic_wo_chain:v2i64 416:iPTR, (bitconvert:v4i32 (scalar_to_vector:v2i64 (ld:i64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 36
                    // Dst: (VPMOVZXDQrm:v2i64 addr:iPTR:$src)
/*27227*/         /*Scope*/ 18, /*->27246*/
/*27228*/           OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*27230*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*27233*/           OPC_EmitMergeInputChains1_0,
/*27234*/           OPC_MorphNodeTo, TARGET_VAL(X86::PMOVZXDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (intrinsic_wo_chain:v2i64 416:iPTR, (bitconvert:v4i32 (scalar_to_vector:v2i64 (ld:i64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 36
                    // Dst: (PMOVZXDQrm:v2i64 addr:iPTR:$src)
/*27246*/         0, /*End of Scope*/
                /*SwitchOpcode*/ 48,  TARGET_VAL(X86ISD::VZEXT_LOAD),// ->27298
/*27250*/         OPC_RecordMemRef,
/*27251*/         OPC_RecordNode, // #0 = 'X86vzload' chained node
/*27252*/         OPC_CheckFoldableChainNode,
/*27253*/         OPC_RecordChild1, // #1 = $src
/*27254*/         OPC_CheckType, MVT::v2i64,
/*27256*/         OPC_MoveParent,
/*27257*/         OPC_MoveParent,
/*27258*/         OPC_Scope, 18, /*->27278*/ // 2 children in Scope
/*27260*/           OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*27262*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*27265*/           OPC_EmitMergeInputChains1_0,
/*27266*/           OPC_MorphNodeTo, TARGET_VAL(X86::PMOVZXDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (intrinsic_wo_chain:v2i64 416:iPTR, (bitconvert:v4i32 (X86vzload:v2i64 addr:iPTR:$src))) - Complexity = 32
                    // Dst: (PMOVZXDQrm:v2i64 addr:iPTR:$src)
/*27278*/         /*Scope*/ 18, /*->27297*/
/*27279*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*27281*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*27284*/           OPC_EmitMergeInputChains1_0,
/*27285*/           OPC_MorphNodeTo, TARGET_VAL(X86::VPMOVZXDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (intrinsic_wo_chain:v2i64 416:iPTR, (bitconvert:v4i32 (X86vzload:v2i64 addr:iPTR:$src))) - Complexity = 32
                    // Dst: (VPMOVZXDQrm:v2i64 addr:iPTR:$src)
/*27297*/         0, /*End of Scope*/
                0, // EndSwitchOpcode
/*27299*/     /*Scope*/ 25, /*->27325*/
/*27300*/       OPC_RecordChild1, // #0 = $src
/*27301*/       OPC_Scope, 10, /*->27313*/ // 2 children in Scope
/*27303*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*27305*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPMOVZXDQrr), 0,
                      1/*#VTs*/, MVT::v2i64, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:v2i64 416:iPTR, VR128:v4i32:$src) - Complexity = 8
                  // Dst: (VPMOVZXDQrr:v2i64 VR128:v4i32:$src)
/*27313*/       /*Scope*/ 10, /*->27324*/
/*27314*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*27316*/         OPC_MorphNodeTo, TARGET_VAL(X86::PMOVZXDQrr), 0,
                      1/*#VTs*/, MVT::v2i64, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:v2i64 416:iPTR, VR128:v4i32:$src) - Complexity = 8
                  // Dst: (PMOVZXDQrr:v2i64 VR128:v4i32:$src)
/*27324*/       0, /*End of Scope*/
/*27325*/     0, /*End of Scope*/
/*27326*/   /*Scope*/ 47|128,1/*175*/, /*->27503*/
/*27328*/     OPC_CheckInteger, 23|128,3/*407*/, 
/*27331*/     OPC_MoveParent,
/*27332*/     OPC_Scope, 13|128,1/*141*/, /*->27476*/ // 2 children in Scope
/*27335*/       OPC_MoveChild, 1,
/*27337*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*27340*/       OPC_MoveChild, 0,
/*27342*/       OPC_SwitchOpcode /*2 cases */, 66,  TARGET_VAL(X86ISD::VZEXT_MOVL),// ->27412
/*27346*/         OPC_MoveChild, 0,
/*27348*/         OPC_CheckOpcode, TARGET_VAL(ISD::SCALAR_TO_VECTOR),
/*27351*/         OPC_MoveChild, 0,
/*27353*/         OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*27356*/         OPC_RecordMemRef,
/*27357*/         OPC_RecordNode, // #0 = 'ld' chained node
/*27358*/         OPC_CheckFoldableChainNode,
/*27359*/         OPC_RecordChild1, // #1 = $src
/*27360*/         OPC_CheckPredicate, 2, // Predicate_unindexedload
/*27362*/         OPC_CheckPredicate, 7, // Predicate_loadi32
/*27364*/         OPC_CheckType, MVT::i32,
/*27366*/         OPC_MoveParent,
/*27367*/         OPC_MoveParent,
/*27368*/         OPC_CheckType, MVT::v4i32,
/*27370*/         OPC_MoveParent,
/*27371*/         OPC_MoveParent,
/*27372*/         OPC_Scope, 18, /*->27392*/ // 2 children in Scope
/*27374*/           OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*27376*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*27379*/           OPC_EmitMergeInputChains1_0,
/*27380*/           OPC_MorphNodeTo, TARGET_VAL(X86::PMOVSXBDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (intrinsic_wo_chain:v4i32 407:iPTR, (bitconvert:v16i8 (X86vzmovl:v4i32 (scalar_to_vector:v4i32 (ld:i32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)))) - Complexity = 39
                    // Dst: (PMOVSXBDrm:v4i32 addr:iPTR:$src)
/*27392*/         /*Scope*/ 18, /*->27411*/
/*27393*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*27395*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*27398*/           OPC_EmitMergeInputChains1_0,
/*27399*/           OPC_MorphNodeTo, TARGET_VAL(X86::VPMOVSXBDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (intrinsic_wo_chain:v4i32 407:iPTR, (bitconvert:v16i8 (X86vzmovl:v4i32 (scalar_to_vector:v4i32 (ld:i32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)))) - Complexity = 39
                    // Dst: (VPMOVSXBDrm:v4i32 addr:iPTR:$src)
/*27411*/         0, /*End of Scope*/
                /*SwitchOpcode*/ 60,  TARGET_VAL(ISD::SCALAR_TO_VECTOR),// ->27475
/*27415*/         OPC_MoveChild, 0,
/*27417*/         OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*27420*/         OPC_RecordMemRef,
/*27421*/         OPC_RecordNode, // #0 = 'ld' chained node
/*27422*/         OPC_CheckFoldableChainNode,
/*27423*/         OPC_RecordChild1, // #1 = $src
/*27424*/         OPC_CheckPredicate, 2, // Predicate_unindexedload
/*27426*/         OPC_CheckPredicate, 7, // Predicate_loadi32
/*27428*/         OPC_CheckType, MVT::i32,
/*27430*/         OPC_MoveParent,
/*27431*/         OPC_CheckType, MVT::v4i32,
/*27433*/         OPC_MoveParent,
/*27434*/         OPC_MoveParent,
/*27435*/         OPC_Scope, 18, /*->27455*/ // 2 children in Scope
/*27437*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*27439*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*27442*/           OPC_EmitMergeInputChains1_0,
/*27443*/           OPC_MorphNodeTo, TARGET_VAL(X86::VPMOVSXBDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (intrinsic_wo_chain:v4i32 407:iPTR, (bitconvert:v16i8 (scalar_to_vector:v4i32 (ld:i32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>))) - Complexity = 36
                    // Dst: (VPMOVSXBDrm:v4i32 addr:iPTR:$src)
/*27455*/         /*Scope*/ 18, /*->27474*/
/*27456*/           OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*27458*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*27461*/           OPC_EmitMergeInputChains1_0,
/*27462*/           OPC_MorphNodeTo, TARGET_VAL(X86::PMOVSXBDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (intrinsic_wo_chain:v4i32 407:iPTR, (bitconvert:v16i8 (scalar_to_vector:v4i32 (ld:i32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>))) - Complexity = 36
                    // Dst: (PMOVSXBDrm:v4i32 addr:iPTR:$src)
/*27474*/         0, /*End of Scope*/
                0, // EndSwitchOpcode
/*27476*/     /*Scope*/ 25, /*->27502*/
/*27477*/       OPC_RecordChild1, // #0 = $src
/*27478*/       OPC_Scope, 10, /*->27490*/ // 2 children in Scope
/*27480*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*27482*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPMOVSXBDrr), 0,
                      1/*#VTs*/, MVT::v4i32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:v4i32 407:iPTR, VR128:v16i8:$src) - Complexity = 8
                  // Dst: (VPMOVSXBDrr:v4i32 VR128:v16i8:$src)
/*27490*/       /*Scope*/ 10, /*->27501*/
/*27491*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*27493*/         OPC_MorphNodeTo, TARGET_VAL(X86::PMOVSXBDrr), 0,
                      1/*#VTs*/, MVT::v4i32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:v4i32 407:iPTR, VR128:v16i8:$src) - Complexity = 8
                  // Dst: (PMOVSXBDrr:v4i32 VR128:v16i8:$src)
/*27501*/       0, /*End of Scope*/
/*27502*/     0, /*End of Scope*/
/*27503*/   /*Scope*/ 47|128,1/*175*/, /*->27680*/
/*27505*/     OPC_CheckInteger, 28|128,3/*412*/, 
/*27508*/     OPC_MoveParent,
/*27509*/     OPC_Scope, 13|128,1/*141*/, /*->27653*/ // 2 children in Scope
/*27512*/       OPC_MoveChild, 1,
/*27514*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*27517*/       OPC_MoveChild, 0,
/*27519*/       OPC_SwitchOpcode /*2 cases */, 66,  TARGET_VAL(X86ISD::VZEXT_MOVL),// ->27589
/*27523*/         OPC_MoveChild, 0,
/*27525*/         OPC_CheckOpcode, TARGET_VAL(ISD::SCALAR_TO_VECTOR),
/*27528*/         OPC_MoveChild, 0,
/*27530*/         OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*27533*/         OPC_RecordMemRef,
/*27534*/         OPC_RecordNode, // #0 = 'ld' chained node
/*27535*/         OPC_CheckFoldableChainNode,
/*27536*/         OPC_RecordChild1, // #1 = $src
/*27537*/         OPC_CheckPredicate, 2, // Predicate_unindexedload
/*27539*/         OPC_CheckPredicate, 7, // Predicate_loadi32
/*27541*/         OPC_CheckType, MVT::i32,
/*27543*/         OPC_MoveParent,
/*27544*/         OPC_MoveParent,
/*27545*/         OPC_CheckType, MVT::v4i32,
/*27547*/         OPC_MoveParent,
/*27548*/         OPC_MoveParent,
/*27549*/         OPC_Scope, 18, /*->27569*/ // 2 children in Scope
/*27551*/           OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*27553*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*27556*/           OPC_EmitMergeInputChains1_0,
/*27557*/           OPC_MorphNodeTo, TARGET_VAL(X86::PMOVSXWQrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (intrinsic_wo_chain:v2i64 412:iPTR, (bitconvert:v8i16 (X86vzmovl:v4i32 (scalar_to_vector:v4i32 (ld:i32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)))) - Complexity = 39
                    // Dst: (PMOVSXWQrm:v2i64 addr:iPTR:$src)
/*27569*/         /*Scope*/ 18, /*->27588*/
/*27570*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*27572*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*27575*/           OPC_EmitMergeInputChains1_0,
/*27576*/           OPC_MorphNodeTo, TARGET_VAL(X86::VPMOVSXWQrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (intrinsic_wo_chain:v2i64 412:iPTR, (bitconvert:v8i16 (X86vzmovl:v4i32 (scalar_to_vector:v4i32 (ld:i32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)))) - Complexity = 39
                    // Dst: (VPMOVSXWQrm:v2i64 addr:iPTR:$src)
/*27588*/         0, /*End of Scope*/
                /*SwitchOpcode*/ 60,  TARGET_VAL(ISD::SCALAR_TO_VECTOR),// ->27652
/*27592*/         OPC_MoveChild, 0,
/*27594*/         OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*27597*/         OPC_RecordMemRef,
/*27598*/         OPC_RecordNode, // #0 = 'ld' chained node
/*27599*/         OPC_CheckFoldableChainNode,
/*27600*/         OPC_RecordChild1, // #1 = $src
/*27601*/         OPC_CheckPredicate, 2, // Predicate_unindexedload
/*27603*/         OPC_CheckPredicate, 7, // Predicate_loadi32
/*27605*/         OPC_CheckType, MVT::i32,
/*27607*/         OPC_MoveParent,
/*27608*/         OPC_CheckType, MVT::v4i32,
/*27610*/         OPC_MoveParent,
/*27611*/         OPC_MoveParent,
/*27612*/         OPC_Scope, 18, /*->27632*/ // 2 children in Scope
/*27614*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*27616*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*27619*/           OPC_EmitMergeInputChains1_0,
/*27620*/           OPC_MorphNodeTo, TARGET_VAL(X86::VPMOVSXWQrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (intrinsic_wo_chain:v2i64 412:iPTR, (bitconvert:v8i16 (scalar_to_vector:v4i32 (ld:i32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>))) - Complexity = 36
                    // Dst: (VPMOVSXWQrm:v2i64 addr:iPTR:$src)
/*27632*/         /*Scope*/ 18, /*->27651*/
/*27633*/           OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*27635*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*27638*/           OPC_EmitMergeInputChains1_0,
/*27639*/           OPC_MorphNodeTo, TARGET_VAL(X86::PMOVSXWQrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (intrinsic_wo_chain:v2i64 412:iPTR, (bitconvert:v8i16 (scalar_to_vector:v4i32 (ld:i32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>))) - Complexity = 36
                    // Dst: (PMOVSXWQrm:v2i64 addr:iPTR:$src)
/*27651*/         0, /*End of Scope*/
                0, // EndSwitchOpcode
/*27653*/     /*Scope*/ 25, /*->27679*/
/*27654*/       OPC_RecordChild1, // #0 = $src
/*27655*/       OPC_Scope, 10, /*->27667*/ // 2 children in Scope
/*27657*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*27659*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPMOVSXWQrr), 0,
                      1/*#VTs*/, MVT::v2i64, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:v2i64 412:iPTR, VR128:v8i16:$src) - Complexity = 8
                  // Dst: (VPMOVSXWQrr:v2i64 VR128:v8i16:$src)
/*27667*/       /*Scope*/ 10, /*->27678*/
/*27668*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*27670*/         OPC_MorphNodeTo, TARGET_VAL(X86::PMOVSXWQrr), 0,
                      1/*#VTs*/, MVT::v2i64, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:v2i64 412:iPTR, VR128:v8i16:$src) - Complexity = 8
                  // Dst: (PMOVSXWQrr:v2i64 VR128:v8i16:$src)
/*27678*/       0, /*End of Scope*/
/*27679*/     0, /*End of Scope*/
/*27680*/   /*Scope*/ 47|128,1/*175*/, /*->27857*/
/*27682*/     OPC_CheckInteger, 29|128,3/*413*/, 
/*27685*/     OPC_MoveParent,
/*27686*/     OPC_Scope, 13|128,1/*141*/, /*->27830*/ // 2 children in Scope
/*27689*/       OPC_MoveChild, 1,
/*27691*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*27694*/       OPC_MoveChild, 0,
/*27696*/       OPC_SwitchOpcode /*2 cases */, 66,  TARGET_VAL(X86ISD::VZEXT_MOVL),// ->27766
/*27700*/         OPC_MoveChild, 0,
/*27702*/         OPC_CheckOpcode, TARGET_VAL(ISD::SCALAR_TO_VECTOR),
/*27705*/         OPC_MoveChild, 0,
/*27707*/         OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*27710*/         OPC_RecordMemRef,
/*27711*/         OPC_RecordNode, // #0 = 'ld' chained node
/*27712*/         OPC_CheckFoldableChainNode,
/*27713*/         OPC_RecordChild1, // #1 = $src
/*27714*/         OPC_CheckPredicate, 2, // Predicate_unindexedload
/*27716*/         OPC_CheckPredicate, 7, // Predicate_loadi32
/*27718*/         OPC_CheckType, MVT::i32,
/*27720*/         OPC_MoveParent,
/*27721*/         OPC_MoveParent,
/*27722*/         OPC_CheckType, MVT::v4i32,
/*27724*/         OPC_MoveParent,
/*27725*/         OPC_MoveParent,
/*27726*/         OPC_Scope, 18, /*->27746*/ // 2 children in Scope
/*27728*/           OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*27730*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*27733*/           OPC_EmitMergeInputChains1_0,
/*27734*/           OPC_MorphNodeTo, TARGET_VAL(X86::PMOVZXBDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (intrinsic_wo_chain:v4i32 413:iPTR, (bitconvert:v16i8 (X86vzmovl:v4i32 (scalar_to_vector:v4i32 (ld:i32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)))) - Complexity = 39
                    // Dst: (PMOVZXBDrm:v4i32 addr:iPTR:$src)
/*27746*/         /*Scope*/ 18, /*->27765*/
/*27747*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*27749*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*27752*/           OPC_EmitMergeInputChains1_0,
/*27753*/           OPC_MorphNodeTo, TARGET_VAL(X86::VPMOVZXBDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (intrinsic_wo_chain:v4i32 413:iPTR, (bitconvert:v16i8 (X86vzmovl:v4i32 (scalar_to_vector:v4i32 (ld:i32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)))) - Complexity = 39
                    // Dst: (VPMOVZXBDrm:v4i32 addr:iPTR:$src)
/*27765*/         0, /*End of Scope*/
                /*SwitchOpcode*/ 60,  TARGET_VAL(ISD::SCALAR_TO_VECTOR),// ->27829
/*27769*/         OPC_MoveChild, 0,
/*27771*/         OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*27774*/         OPC_RecordMemRef,
/*27775*/         OPC_RecordNode, // #0 = 'ld' chained node
/*27776*/         OPC_CheckFoldableChainNode,
/*27777*/         OPC_RecordChild1, // #1 = $src
/*27778*/         OPC_CheckPredicate, 2, // Predicate_unindexedload
/*27780*/         OPC_CheckPredicate, 7, // Predicate_loadi32
/*27782*/         OPC_CheckType, MVT::i32,
/*27784*/         OPC_MoveParent,
/*27785*/         OPC_CheckType, MVT::v4i32,
/*27787*/         OPC_MoveParent,
/*27788*/         OPC_MoveParent,
/*27789*/         OPC_Scope, 18, /*->27809*/ // 2 children in Scope
/*27791*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*27793*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*27796*/           OPC_EmitMergeInputChains1_0,
/*27797*/           OPC_MorphNodeTo, TARGET_VAL(X86::VPMOVZXBDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (intrinsic_wo_chain:v4i32 413:iPTR, (bitconvert:v16i8 (scalar_to_vector:v4i32 (ld:i32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>))) - Complexity = 36
                    // Dst: (VPMOVZXBDrm:v4i32 addr:iPTR:$src)
/*27809*/         /*Scope*/ 18, /*->27828*/
/*27810*/           OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*27812*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*27815*/           OPC_EmitMergeInputChains1_0,
/*27816*/           OPC_MorphNodeTo, TARGET_VAL(X86::PMOVZXBDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (intrinsic_wo_chain:v4i32 413:iPTR, (bitconvert:v16i8 (scalar_to_vector:v4i32 (ld:i32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>))) - Complexity = 36
                    // Dst: (PMOVZXBDrm:v4i32 addr:iPTR:$src)
/*27828*/         0, /*End of Scope*/
                0, // EndSwitchOpcode
/*27830*/     /*Scope*/ 25, /*->27856*/
/*27831*/       OPC_RecordChild1, // #0 = $src
/*27832*/       OPC_Scope, 10, /*->27844*/ // 2 children in Scope
/*27834*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*27836*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPMOVZXBDrr), 0,
                      1/*#VTs*/, MVT::v4i32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:v4i32 413:iPTR, VR128:v16i8:$src) - Complexity = 8
                  // Dst: (VPMOVZXBDrr:v4i32 VR128:v16i8:$src)
/*27844*/       /*Scope*/ 10, /*->27855*/
/*27845*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*27847*/         OPC_MorphNodeTo, TARGET_VAL(X86::PMOVZXBDrr), 0,
                      1/*#VTs*/, MVT::v4i32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:v4i32 413:iPTR, VR128:v16i8:$src) - Complexity = 8
                  // Dst: (PMOVZXBDrr:v4i32 VR128:v16i8:$src)
/*27855*/       0, /*End of Scope*/
/*27856*/     0, /*End of Scope*/
/*27857*/   /*Scope*/ 47|128,1/*175*/, /*->28034*/
/*27859*/     OPC_CheckInteger, 34|128,3/*418*/, 
/*27862*/     OPC_MoveParent,
/*27863*/     OPC_Scope, 13|128,1/*141*/, /*->28007*/ // 2 children in Scope
/*27866*/       OPC_MoveChild, 1,
/*27868*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*27871*/       OPC_MoveChild, 0,
/*27873*/       OPC_SwitchOpcode /*2 cases */, 66,  TARGET_VAL(X86ISD::VZEXT_MOVL),// ->27943
/*27877*/         OPC_MoveChild, 0,
/*27879*/         OPC_CheckOpcode, TARGET_VAL(ISD::SCALAR_TO_VECTOR),
/*27882*/         OPC_MoveChild, 0,
/*27884*/         OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*27887*/         OPC_RecordMemRef,
/*27888*/         OPC_RecordNode, // #0 = 'ld' chained node
/*27889*/         OPC_CheckFoldableChainNode,
/*27890*/         OPC_RecordChild1, // #1 = $src
/*27891*/         OPC_CheckPredicate, 2, // Predicate_unindexedload
/*27893*/         OPC_CheckPredicate, 7, // Predicate_loadi32
/*27895*/         OPC_CheckType, MVT::i32,
/*27897*/         OPC_MoveParent,
/*27898*/         OPC_MoveParent,
/*27899*/         OPC_CheckType, MVT::v4i32,
/*27901*/         OPC_MoveParent,
/*27902*/         OPC_MoveParent,
/*27903*/         OPC_Scope, 18, /*->27923*/ // 2 children in Scope
/*27905*/           OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*27907*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*27910*/           OPC_EmitMergeInputChains1_0,
/*27911*/           OPC_MorphNodeTo, TARGET_VAL(X86::PMOVZXWQrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (intrinsic_wo_chain:v2i64 418:iPTR, (bitconvert:v8i16 (X86vzmovl:v4i32 (scalar_to_vector:v4i32 (ld:i32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)))) - Complexity = 39
                    // Dst: (PMOVZXWQrm:v2i64 addr:iPTR:$src)
/*27923*/         /*Scope*/ 18, /*->27942*/
/*27924*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*27926*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*27929*/           OPC_EmitMergeInputChains1_0,
/*27930*/           OPC_MorphNodeTo, TARGET_VAL(X86::VPMOVZXWQrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (intrinsic_wo_chain:v2i64 418:iPTR, (bitconvert:v8i16 (X86vzmovl:v4i32 (scalar_to_vector:v4i32 (ld:i32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)))) - Complexity = 39
                    // Dst: (VPMOVZXWQrm:v2i64 addr:iPTR:$src)
/*27942*/         0, /*End of Scope*/
                /*SwitchOpcode*/ 60,  TARGET_VAL(ISD::SCALAR_TO_VECTOR),// ->28006
/*27946*/         OPC_MoveChild, 0,
/*27948*/         OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*27951*/         OPC_RecordMemRef,
/*27952*/         OPC_RecordNode, // #0 = 'ld' chained node
/*27953*/         OPC_CheckFoldableChainNode,
/*27954*/         OPC_RecordChild1, // #1 = $src
/*27955*/         OPC_CheckPredicate, 2, // Predicate_unindexedload
/*27957*/         OPC_CheckPredicate, 7, // Predicate_loadi32
/*27959*/         OPC_CheckType, MVT::i32,
/*27961*/         OPC_MoveParent,
/*27962*/         OPC_CheckType, MVT::v4i32,
/*27964*/         OPC_MoveParent,
/*27965*/         OPC_MoveParent,
/*27966*/         OPC_Scope, 18, /*->27986*/ // 2 children in Scope
/*27968*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*27970*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*27973*/           OPC_EmitMergeInputChains1_0,
/*27974*/           OPC_MorphNodeTo, TARGET_VAL(X86::VPMOVZXWQrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (intrinsic_wo_chain:v2i64 418:iPTR, (bitconvert:v8i16 (scalar_to_vector:v4i32 (ld:i32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>))) - Complexity = 36
                    // Dst: (VPMOVZXWQrm:v2i64 addr:iPTR:$src)
/*27986*/         /*Scope*/ 18, /*->28005*/
/*27987*/           OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*27989*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*27992*/           OPC_EmitMergeInputChains1_0,
/*27993*/           OPC_MorphNodeTo, TARGET_VAL(X86::PMOVZXWQrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (intrinsic_wo_chain:v2i64 418:iPTR, (bitconvert:v8i16 (scalar_to_vector:v4i32 (ld:i32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>))) - Complexity = 36
                    // Dst: (PMOVZXWQrm:v2i64 addr:iPTR:$src)
/*28005*/         0, /*End of Scope*/
                0, // EndSwitchOpcode
/*28007*/     /*Scope*/ 25, /*->28033*/
/*28008*/       OPC_RecordChild1, // #0 = $src
/*28009*/       OPC_Scope, 10, /*->28021*/ // 2 children in Scope
/*28011*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*28013*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPMOVZXWQrr), 0,
                      1/*#VTs*/, MVT::v2i64, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:v2i64 418:iPTR, VR128:v8i16:$src) - Complexity = 8
                  // Dst: (VPMOVZXWQrr:v2i64 VR128:v8i16:$src)
/*28021*/       /*Scope*/ 10, /*->28032*/
/*28022*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*28024*/         OPC_MorphNodeTo, TARGET_VAL(X86::PMOVZXWQrr), 0,
                      1/*#VTs*/, MVT::v2i64, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:v2i64 418:iPTR, VR128:v8i16:$src) - Complexity = 8
                  // Dst: (PMOVZXWQrr:v2i64 VR128:v8i16:$src)
/*28032*/       0, /*End of Scope*/
/*28033*/     0, /*End of Scope*/
/*28034*/   /*Scope*/ 47|128,1/*175*/, /*->28211*/
/*28036*/     OPC_CheckInteger, 24|128,3/*408*/, 
/*28039*/     OPC_MoveParent,
/*28040*/     OPC_Scope, 13|128,1/*141*/, /*->28184*/ // 2 children in Scope
/*28043*/       OPC_MoveChild, 1,
/*28045*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*28048*/       OPC_MoveChild, 0,
/*28050*/       OPC_SwitchOpcode /*2 cases */, 66,  TARGET_VAL(X86ISD::VZEXT_MOVL),// ->28120
/*28054*/         OPC_MoveChild, 0,
/*28056*/         OPC_CheckOpcode, TARGET_VAL(ISD::SCALAR_TO_VECTOR),
/*28059*/         OPC_MoveChild, 0,
/*28061*/         OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*28064*/         OPC_RecordMemRef,
/*28065*/         OPC_RecordNode, // #0 = 'ld' chained node
/*28066*/         OPC_CheckFoldableChainNode,
/*28067*/         OPC_RecordChild1, // #1 = $src
/*28068*/         OPC_CheckPredicate, 2, // Predicate_unindexedload
/*28070*/         OPC_CheckPredicate, 7, // Predicate_loadi32
/*28072*/         OPC_CheckType, MVT::i32,
/*28074*/         OPC_MoveParent,
/*28075*/         OPC_MoveParent,
/*28076*/         OPC_CheckType, MVT::v4i32,
/*28078*/         OPC_MoveParent,
/*28079*/         OPC_MoveParent,
/*28080*/         OPC_Scope, 18, /*->28100*/ // 2 children in Scope
/*28082*/           OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*28084*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*28087*/           OPC_EmitMergeInputChains1_0,
/*28088*/           OPC_MorphNodeTo, TARGET_VAL(X86::PMOVSXBQrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (intrinsic_wo_chain:v2i64 408:iPTR, (bitconvert:v16i8 (X86vzmovl:v4i32 (scalar_to_vector:v4i32 (ld:i32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)))) - Complexity = 39
                    // Dst: (PMOVSXBQrm:v2i64 addr:iPTR:$src)
/*28100*/         /*Scope*/ 18, /*->28119*/
/*28101*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*28103*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*28106*/           OPC_EmitMergeInputChains1_0,
/*28107*/           OPC_MorphNodeTo, TARGET_VAL(X86::VPMOVSXBQrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (intrinsic_wo_chain:v2i64 408:iPTR, (bitconvert:v16i8 (X86vzmovl:v4i32 (scalar_to_vector:v4i32 (ld:i32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)))) - Complexity = 39
                    // Dst: (VPMOVSXBQrm:v2i64 addr:iPTR:$src)
/*28119*/         0, /*End of Scope*/
                /*SwitchOpcode*/ 60,  TARGET_VAL(ISD::SCALAR_TO_VECTOR),// ->28183
/*28123*/         OPC_MoveChild, 0,
/*28125*/         OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*28128*/         OPC_RecordMemRef,
/*28129*/         OPC_RecordNode, // #0 = 'ld' chained node
/*28130*/         OPC_CheckFoldableChainNode,
/*28131*/         OPC_RecordChild1, // #1 = $src
/*28132*/         OPC_CheckPredicate, 2, // Predicate_unindexedload
/*28134*/         OPC_CheckPredicate, 24, // Predicate_loadi16_anyext
/*28136*/         OPC_CheckType, MVT::i32,
/*28138*/         OPC_MoveParent,
/*28139*/         OPC_CheckType, MVT::v4i32,
/*28141*/         OPC_MoveParent,
/*28142*/         OPC_MoveParent,
/*28143*/         OPC_Scope, 18, /*->28163*/ // 2 children in Scope
/*28145*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*28147*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*28150*/           OPC_EmitMergeInputChains1_0,
/*28151*/           OPC_MorphNodeTo, TARGET_VAL(X86::VPMOVSXBQrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (intrinsic_wo_chain:v2i64 408:iPTR, (bitconvert:v16i8 (scalar_to_vector:v4i32 (ld:i32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi16_anyext>>))) - Complexity = 36
                    // Dst: (VPMOVSXBQrm:v2i64 addr:iPTR:$src)
/*28163*/         /*Scope*/ 18, /*->28182*/
/*28164*/           OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*28166*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*28169*/           OPC_EmitMergeInputChains1_0,
/*28170*/           OPC_MorphNodeTo, TARGET_VAL(X86::PMOVSXBQrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (intrinsic_wo_chain:v2i64 408:iPTR, (bitconvert:v16i8 (scalar_to_vector:v4i32 (ld:i32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi16_anyext>>))) - Complexity = 36
                    // Dst: (PMOVSXBQrm:v2i64 addr:iPTR:$src)
/*28182*/         0, /*End of Scope*/
                0, // EndSwitchOpcode
/*28184*/     /*Scope*/ 25, /*->28210*/
/*28185*/       OPC_RecordChild1, // #0 = $src
/*28186*/       OPC_Scope, 10, /*->28198*/ // 2 children in Scope
/*28188*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*28190*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPMOVSXBQrr), 0,
                      1/*#VTs*/, MVT::v2i64, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:v2i64 408:iPTR, VR128:v16i8:$src) - Complexity = 8
                  // Dst: (VPMOVSXBQrr:v2i64 VR128:v16i8:$src)
/*28198*/       /*Scope*/ 10, /*->28209*/
/*28199*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*28201*/         OPC_MorphNodeTo, TARGET_VAL(X86::PMOVSXBQrr), 0,
                      1/*#VTs*/, MVT::v2i64, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:v2i64 408:iPTR, VR128:v16i8:$src) - Complexity = 8
                  // Dst: (PMOVSXBQrr:v2i64 VR128:v16i8:$src)
/*28209*/       0, /*End of Scope*/
/*28210*/     0, /*End of Scope*/
/*28211*/   /*Scope*/ 47|128,1/*175*/, /*->28388*/
/*28213*/     OPC_CheckInteger, 30|128,3/*414*/, 
/*28216*/     OPC_MoveParent,
/*28217*/     OPC_Scope, 13|128,1/*141*/, /*->28361*/ // 2 children in Scope
/*28220*/       OPC_MoveChild, 1,
/*28222*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*28225*/       OPC_MoveChild, 0,
/*28227*/       OPC_SwitchOpcode /*2 cases */, 66,  TARGET_VAL(X86ISD::VZEXT_MOVL),// ->28297
/*28231*/         OPC_MoveChild, 0,
/*28233*/         OPC_CheckOpcode, TARGET_VAL(ISD::SCALAR_TO_VECTOR),
/*28236*/         OPC_MoveChild, 0,
/*28238*/         OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*28241*/         OPC_RecordMemRef,
/*28242*/         OPC_RecordNode, // #0 = 'ld' chained node
/*28243*/         OPC_CheckFoldableChainNode,
/*28244*/         OPC_RecordChild1, // #1 = $src
/*28245*/         OPC_CheckPredicate, 2, // Predicate_unindexedload
/*28247*/         OPC_CheckPredicate, 7, // Predicate_loadi32
/*28249*/         OPC_CheckType, MVT::i32,
/*28251*/         OPC_MoveParent,
/*28252*/         OPC_MoveParent,
/*28253*/         OPC_CheckType, MVT::v4i32,
/*28255*/         OPC_MoveParent,
/*28256*/         OPC_MoveParent,
/*28257*/         OPC_Scope, 18, /*->28277*/ // 2 children in Scope
/*28259*/           OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*28261*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*28264*/           OPC_EmitMergeInputChains1_0,
/*28265*/           OPC_MorphNodeTo, TARGET_VAL(X86::PMOVZXBQrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (intrinsic_wo_chain:v2i64 414:iPTR, (bitconvert:v16i8 (X86vzmovl:v4i32 (scalar_to_vector:v4i32 (ld:i32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)))) - Complexity = 39
                    // Dst: (PMOVZXBQrm:v2i64 addr:iPTR:$src)
/*28277*/         /*Scope*/ 18, /*->28296*/
/*28278*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*28280*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*28283*/           OPC_EmitMergeInputChains1_0,
/*28284*/           OPC_MorphNodeTo, TARGET_VAL(X86::VPMOVZXBQrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (intrinsic_wo_chain:v2i64 414:iPTR, (bitconvert:v16i8 (X86vzmovl:v4i32 (scalar_to_vector:v4i32 (ld:i32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)))) - Complexity = 39
                    // Dst: (VPMOVZXBQrm:v2i64 addr:iPTR:$src)
/*28296*/         0, /*End of Scope*/
                /*SwitchOpcode*/ 60,  TARGET_VAL(ISD::SCALAR_TO_VECTOR),// ->28360
/*28300*/         OPC_MoveChild, 0,
/*28302*/         OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*28305*/         OPC_RecordMemRef,
/*28306*/         OPC_RecordNode, // #0 = 'ld' chained node
/*28307*/         OPC_CheckFoldableChainNode,
/*28308*/         OPC_RecordChild1, // #1 = $src
/*28309*/         OPC_CheckPredicate, 2, // Predicate_unindexedload
/*28311*/         OPC_CheckPredicate, 24, // Predicate_loadi16_anyext
/*28313*/         OPC_CheckType, MVT::i32,
/*28315*/         OPC_MoveParent,
/*28316*/         OPC_CheckType, MVT::v4i32,
/*28318*/         OPC_MoveParent,
/*28319*/         OPC_MoveParent,
/*28320*/         OPC_Scope, 18, /*->28340*/ // 2 children in Scope
/*28322*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*28324*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*28327*/           OPC_EmitMergeInputChains1_0,
/*28328*/           OPC_MorphNodeTo, TARGET_VAL(X86::VPMOVZXBQrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (intrinsic_wo_chain:v2i64 414:iPTR, (bitconvert:v16i8 (scalar_to_vector:v4i32 (ld:i32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi16_anyext>>))) - Complexity = 36
                    // Dst: (VPMOVZXBQrm:v2i64 addr:iPTR:$src)
/*28340*/         /*Scope*/ 18, /*->28359*/
/*28341*/           OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*28343*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*28346*/           OPC_EmitMergeInputChains1_0,
/*28347*/           OPC_MorphNodeTo, TARGET_VAL(X86::PMOVZXBQrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (intrinsic_wo_chain:v2i64 414:iPTR, (bitconvert:v16i8 (scalar_to_vector:v4i32 (ld:i32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi16_anyext>>))) - Complexity = 36
                    // Dst: (PMOVZXBQrm:v2i64 addr:iPTR:$src)
/*28359*/         0, /*End of Scope*/
                0, // EndSwitchOpcode
/*28361*/     /*Scope*/ 25, /*->28387*/
/*28362*/       OPC_RecordChild1, // #0 = $src
/*28363*/       OPC_Scope, 10, /*->28375*/ // 2 children in Scope
/*28365*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*28367*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPMOVZXBQrr), 0,
                      1/*#VTs*/, MVT::v2i64, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:v2i64 414:iPTR, VR128:v16i8:$src) - Complexity = 8
                  // Dst: (VPMOVZXBQrr:v2i64 VR128:v16i8:$src)
/*28375*/       /*Scope*/ 10, /*->28386*/
/*28376*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*28378*/         OPC_MorphNodeTo, TARGET_VAL(X86::PMOVZXBQrr), 0,
                      1/*#VTs*/, MVT::v2i64, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:v2i64 414:iPTR, VR128:v16i8:$src) - Complexity = 8
                  // Dst: (PMOVZXBQrr:v2i64 VR128:v16i8:$src)
/*28386*/       0, /*End of Scope*/
/*28387*/     0, /*End of Scope*/
/*28388*/   /*Scope*/ 0|128,1/*128*/, /*->28518*/
/*28390*/     OPC_CheckInteger, 9|128,3/*393*/, 
/*28393*/     OPC_MoveParent,
/*28394*/     OPC_RecordChild1, // #0 = $src1
/*28395*/     OPC_Scope, 79, /*->28476*/ // 2 children in Scope
/*28397*/       OPC_MoveChild, 2,
/*28399*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*28402*/       OPC_MoveChild, 0,
/*28404*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*28407*/       OPC_RecordMemRef,
/*28408*/       OPC_RecordNode, // #1 = 'ld' chained node
/*28409*/       OPC_CheckFoldableChainNode,
/*28410*/       OPC_RecordChild1, // #2 = $src2
/*28411*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*28413*/       OPC_CheckPredicate, 3, // Predicate_load
/*28415*/       OPC_CheckPredicate, 23, // Predicate_memop
/*28417*/       OPC_CheckType, MVT::v16i8,
/*28419*/       OPC_MoveParent,
/*28420*/       OPC_MoveParent,
/*28421*/       OPC_RecordChild3, // #3 = $src3
/*28422*/       OPC_MoveChild, 3,
/*28424*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*28427*/       OPC_MoveParent,
/*28428*/       OPC_Scope, 22, /*->28452*/ // 2 children in Scope
/*28430*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*28432*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*28435*/         OPC_EmitMergeInputChains1_1,
/*28436*/         OPC_EmitConvertToTarget, 3,
/*28438*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPBLENDWrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v8i16, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                  // Src: (intrinsic_wo_chain:v8i16 393:iPTR, VR128:v8i16:$src1, (bitconvert:v8i16 (ld:v16i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>), (imm:i32):$src3) - Complexity = 36
                  // Dst: (VPBLENDWrmi:v8i16 VR128:v8i16:$src1, addr:iPTR:$src2, (imm:i32):$src3)
/*28452*/       /*Scope*/ 22, /*->28475*/
/*28453*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*28455*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*28458*/         OPC_EmitMergeInputChains1_1,
/*28459*/         OPC_EmitConvertToTarget, 3,
/*28461*/         OPC_MorphNodeTo, TARGET_VAL(X86::PBLENDWrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v8i16, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                  // Src: (intrinsic_wo_chain:v8i16 393:iPTR, VR128:v8i16:$src1, (bitconvert:v8i16 (ld:v16i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>), (imm:i32):$src3) - Complexity = 36
                  // Dst: (PBLENDWrmi:v8i16 VR128:v8i16:$src1, addr:iPTR:$src2, (imm:i32):$src3)
/*28475*/       0, /*End of Scope*/
/*28476*/     /*Scope*/ 40, /*->28517*/
/*28477*/       OPC_RecordChild2, // #1 = $src2
/*28478*/       OPC_RecordChild3, // #2 = $src3
/*28479*/       OPC_MoveChild, 3,
/*28481*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*28484*/       OPC_MoveParent,
/*28485*/       OPC_Scope, 14, /*->28501*/ // 2 children in Scope
/*28487*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*28489*/         OPC_EmitConvertToTarget, 2,
/*28491*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPBLENDWrri), 0,
                      1/*#VTs*/, MVT::v8i16, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (intrinsic_wo_chain:v8i16 393:iPTR, VR128:v8i16:$src1, VR128:v8i16:$src2, (imm:i32):$src3) - Complexity = 11
                  // Dst: (VPBLENDWrri:v8i16 VR128:v8i16:$src1, VR128:v8i16:$src2, (imm:i32):$src3)
/*28501*/       /*Scope*/ 14, /*->28516*/
/*28502*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*28504*/         OPC_EmitConvertToTarget, 2,
/*28506*/         OPC_MorphNodeTo, TARGET_VAL(X86::PBLENDWrri), 0,
                      1/*#VTs*/, MVT::v8i16, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (intrinsic_wo_chain:v8i16 393:iPTR, VR128:v8i16:$src1, VR128:v8i16:$src2, (imm:i32):$src3) - Complexity = 11
                  // Dst: (PBLENDWrri:v8i16 VR128:v8i16:$src1, VR128:v8i16:$src2, (imm:i32):$src3)
/*28516*/       0, /*End of Scope*/
/*28517*/     0, /*End of Scope*/
/*28518*/   /*Scope*/ 102, /*->28621*/
/*28519*/     OPC_CheckInteger, 100|128,2/*356*/, 
/*28522*/     OPC_MoveParent,
/*28523*/     OPC_RecordChild1, // #0 = $src1
/*28524*/     OPC_Scope, 66, /*->28592*/ // 2 children in Scope
/*28526*/       OPC_MoveChild, 2,
/*28528*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*28531*/       OPC_MoveChild, 0,
/*28533*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*28536*/       OPC_RecordMemRef,
/*28537*/       OPC_RecordNode, // #1 = 'ld' chained node
/*28538*/       OPC_CheckFoldableChainNode,
/*28539*/       OPC_RecordChild1, // #2 = $src2
/*28540*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*28542*/       OPC_CheckPredicate, 3, // Predicate_load
/*28544*/       OPC_CheckPredicate, 23, // Predicate_memop
/*28546*/       OPC_CheckType, MVT::v2i64,
/*28548*/       OPC_MoveParent,
/*28549*/       OPC_MoveParent,
/*28550*/       OPC_Scope, 19, /*->28571*/ // 2 children in Scope
/*28552*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*28554*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*28557*/         OPC_EmitMergeInputChains1_1,
/*28558*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPSUBSBrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v16i8 356:iPTR, VR128:v16i8:$src1, (bitconvert:v16i8 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 33
                  // Dst: (VPSUBSBrm:v16i8 VR128:v16i8:$src1, addr:iPTR:$src2)
/*28571*/       /*Scope*/ 19, /*->28591*/
/*28572*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*28574*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*28577*/         OPC_EmitMergeInputChains1_1,
/*28578*/         OPC_MorphNodeTo, TARGET_VAL(X86::PSUBSBrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v16i8 356:iPTR, VR128:v16i8:$src1, (bitconvert:v16i8 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 33
                  // Dst: (PSUBSBrm:v16i8 VR128:v16i8:$src1, addr:iPTR:$src2)
/*28591*/       0, /*End of Scope*/
/*28592*/     /*Scope*/ 27, /*->28620*/
/*28593*/       OPC_RecordChild2, // #1 = $src2
/*28594*/       OPC_Scope, 11, /*->28607*/ // 2 children in Scope
/*28596*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*28598*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPSUBSBrr), 0,
                      1/*#VTs*/, MVT::v16i8, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v16i8 356:iPTR, VR128:v16i8:$src1, VR128:v16i8:$src2) - Complexity = 8
                  // Dst: (VPSUBSBrr:v16i8 VR128:v16i8:$src1, VR128:v16i8:$src2)
/*28607*/       /*Scope*/ 11, /*->28619*/
/*28608*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*28610*/         OPC_MorphNodeTo, TARGET_VAL(X86::PSUBSBrr), 0,
                      1/*#VTs*/, MVT::v16i8, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v16i8 356:iPTR, VR128:v16i8:$src1, VR128:v16i8:$src2) - Complexity = 8
                  // Dst: (PSUBSBrr:v16i8 VR128:v16i8:$src1, VR128:v16i8:$src2)
/*28619*/       0, /*End of Scope*/
/*28620*/     0, /*End of Scope*/
/*28621*/   /*Scope*/ 102, /*->28724*/
/*28622*/     OPC_CheckInteger, 101|128,2/*357*/, 
/*28625*/     OPC_MoveParent,
/*28626*/     OPC_RecordChild1, // #0 = $src1
/*28627*/     OPC_Scope, 66, /*->28695*/ // 2 children in Scope
/*28629*/       OPC_MoveChild, 2,
/*28631*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*28634*/       OPC_MoveChild, 0,
/*28636*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*28639*/       OPC_RecordMemRef,
/*28640*/       OPC_RecordNode, // #1 = 'ld' chained node
/*28641*/       OPC_CheckFoldableChainNode,
/*28642*/       OPC_RecordChild1, // #2 = $src2
/*28643*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*28645*/       OPC_CheckPredicate, 3, // Predicate_load
/*28647*/       OPC_CheckPredicate, 23, // Predicate_memop
/*28649*/       OPC_CheckType, MVT::v2i64,
/*28651*/       OPC_MoveParent,
/*28652*/       OPC_MoveParent,
/*28653*/       OPC_Scope, 19, /*->28674*/ // 2 children in Scope
/*28655*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*28657*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*28660*/         OPC_EmitMergeInputChains1_1,
/*28661*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPSUBSWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v8i16 357:iPTR, VR128:v8i16:$src1, (bitconvert:v8i16 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 33
                  // Dst: (VPSUBSWrm:v8i16 VR128:v8i16:$src1, addr:iPTR:$src2)
/*28674*/       /*Scope*/ 19, /*->28694*/
/*28675*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*28677*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*28680*/         OPC_EmitMergeInputChains1_1,
/*28681*/         OPC_MorphNodeTo, TARGET_VAL(X86::PSUBSWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v8i16 357:iPTR, VR128:v8i16:$src1, (bitconvert:v8i16 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 33
                  // Dst: (PSUBSWrm:v8i16 VR128:v8i16:$src1, addr:iPTR:$src2)
/*28694*/       0, /*End of Scope*/
/*28695*/     /*Scope*/ 27, /*->28723*/
/*28696*/       OPC_RecordChild2, // #1 = $src2
/*28697*/       OPC_Scope, 11, /*->28710*/ // 2 children in Scope
/*28699*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*28701*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPSUBSWrr), 0,
                      1/*#VTs*/, MVT::v8i16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v8i16 357:iPTR, VR128:v8i16:$src1, VR128:v8i16:$src2) - Complexity = 8
                  // Dst: (VPSUBSWrr:v8i16 VR128:v8i16:$src1, VR128:v8i16:$src2)
/*28710*/       /*Scope*/ 11, /*->28722*/
/*28711*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*28713*/         OPC_MorphNodeTo, TARGET_VAL(X86::PSUBSWrr), 0,
                      1/*#VTs*/, MVT::v8i16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v8i16 357:iPTR, VR128:v8i16:$src1, VR128:v8i16:$src2) - Complexity = 8
                  // Dst: (PSUBSWrr:v8i16 VR128:v8i16:$src1, VR128:v8i16:$src2)
/*28722*/       0, /*End of Scope*/
/*28723*/     0, /*End of Scope*/
/*28724*/   /*Scope*/ 102, /*->28827*/
/*28725*/     OPC_CheckInteger, 102|128,2/*358*/, 
/*28728*/     OPC_MoveParent,
/*28729*/     OPC_RecordChild1, // #0 = $src1
/*28730*/     OPC_Scope, 66, /*->28798*/ // 2 children in Scope
/*28732*/       OPC_MoveChild, 2,
/*28734*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*28737*/       OPC_MoveChild, 0,
/*28739*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*28742*/       OPC_RecordMemRef,
/*28743*/       OPC_RecordNode, // #1 = 'ld' chained node
/*28744*/       OPC_CheckFoldableChainNode,
/*28745*/       OPC_RecordChild1, // #2 = $src2
/*28746*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*28748*/       OPC_CheckPredicate, 3, // Predicate_load
/*28750*/       OPC_CheckPredicate, 23, // Predicate_memop
/*28752*/       OPC_CheckType, MVT::v2i64,
/*28754*/       OPC_MoveParent,
/*28755*/       OPC_MoveParent,
/*28756*/       OPC_Scope, 19, /*->28777*/ // 2 children in Scope
/*28758*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*28760*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*28763*/         OPC_EmitMergeInputChains1_1,
/*28764*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPSUBUSBrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v16i8 358:iPTR, VR128:v16i8:$src1, (bitconvert:v16i8 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 33
                  // Dst: (VPSUBUSBrm:v16i8 VR128:v16i8:$src1, addr:iPTR:$src2)
/*28777*/       /*Scope*/ 19, /*->28797*/
/*28778*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*28780*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*28783*/         OPC_EmitMergeInputChains1_1,
/*28784*/         OPC_MorphNodeTo, TARGET_VAL(X86::PSUBUSBrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v16i8 358:iPTR, VR128:v16i8:$src1, (bitconvert:v16i8 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 33
                  // Dst: (PSUBUSBrm:v16i8 VR128:v16i8:$src1, addr:iPTR:$src2)
/*28797*/       0, /*End of Scope*/
/*28798*/     /*Scope*/ 27, /*->28826*/
/*28799*/       OPC_RecordChild2, // #1 = $src2
/*28800*/       OPC_Scope, 11, /*->28813*/ // 2 children in Scope
/*28802*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*28804*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPSUBUSBrr), 0,
                      1/*#VTs*/, MVT::v16i8, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v16i8 358:iPTR, VR128:v16i8:$src1, VR128:v16i8:$src2) - Complexity = 8
                  // Dst: (VPSUBUSBrr:v16i8 VR128:v16i8:$src1, VR128:v16i8:$src2)
/*28813*/       /*Scope*/ 11, /*->28825*/
/*28814*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*28816*/         OPC_MorphNodeTo, TARGET_VAL(X86::PSUBUSBrr), 0,
                      1/*#VTs*/, MVT::v16i8, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v16i8 358:iPTR, VR128:v16i8:$src1, VR128:v16i8:$src2) - Complexity = 8
                  // Dst: (PSUBUSBrr:v16i8 VR128:v16i8:$src1, VR128:v16i8:$src2)
/*28825*/       0, /*End of Scope*/
/*28826*/     0, /*End of Scope*/
/*28827*/   /*Scope*/ 102, /*->28930*/
/*28828*/     OPC_CheckInteger, 103|128,2/*359*/, 
/*28831*/     OPC_MoveParent,
/*28832*/     OPC_RecordChild1, // #0 = $src1
/*28833*/     OPC_Scope, 66, /*->28901*/ // 2 children in Scope
/*28835*/       OPC_MoveChild, 2,
/*28837*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*28840*/       OPC_MoveChild, 0,
/*28842*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*28845*/       OPC_RecordMemRef,
/*28846*/       OPC_RecordNode, // #1 = 'ld' chained node
/*28847*/       OPC_CheckFoldableChainNode,
/*28848*/       OPC_RecordChild1, // #2 = $src2
/*28849*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*28851*/       OPC_CheckPredicate, 3, // Predicate_load
/*28853*/       OPC_CheckPredicate, 23, // Predicate_memop
/*28855*/       OPC_CheckType, MVT::v2i64,
/*28857*/       OPC_MoveParent,
/*28858*/       OPC_MoveParent,
/*28859*/       OPC_Scope, 19, /*->28880*/ // 2 children in Scope
/*28861*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*28863*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*28866*/         OPC_EmitMergeInputChains1_1,
/*28867*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPSUBUSWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v8i16 359:iPTR, VR128:v8i16:$src1, (bitconvert:v8i16 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 33
                  // Dst: (VPSUBUSWrm:v8i16 VR128:v8i16:$src1, addr:iPTR:$src2)
/*28880*/       /*Scope*/ 19, /*->28900*/
/*28881*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*28883*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*28886*/         OPC_EmitMergeInputChains1_1,
/*28887*/         OPC_MorphNodeTo, TARGET_VAL(X86::PSUBUSWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v8i16 359:iPTR, VR128:v8i16:$src1, (bitconvert:v8i16 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 33
                  // Dst: (PSUBUSWrm:v8i16 VR128:v8i16:$src1, addr:iPTR:$src2)
/*28900*/       0, /*End of Scope*/
/*28901*/     /*Scope*/ 27, /*->28929*/
/*28902*/       OPC_RecordChild2, // #1 = $src2
/*28903*/       OPC_Scope, 11, /*->28916*/ // 2 children in Scope
/*28905*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*28907*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPSUBUSWrr), 0,
                      1/*#VTs*/, MVT::v8i16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v8i16 359:iPTR, VR128:v8i16:$src1, VR128:v8i16:$src2) - Complexity = 8
                  // Dst: (VPSUBUSWrr:v8i16 VR128:v8i16:$src1, VR128:v8i16:$src2)
/*28916*/       /*Scope*/ 11, /*->28928*/
/*28917*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*28919*/         OPC_MorphNodeTo, TARGET_VAL(X86::PSUBUSWrr), 0,
                      1/*#VTs*/, MVT::v8i16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v8i16 359:iPTR, VR128:v8i16:$src1, VR128:v8i16:$src2) - Complexity = 8
                  // Dst: (PSUBUSWrr:v8i16 VR128:v8i16:$src1, VR128:v8i16:$src2)
/*28928*/       0, /*End of Scope*/
/*28929*/     0, /*End of Scope*/
/*28930*/   /*Scope*/ 43|128,1/*171*/, /*->29103*/
/*28932*/     OPC_CheckInteger, 58|128,2/*314*/, 
/*28935*/     OPC_MoveParent,
/*28936*/     OPC_Scope, 67, /*->29005*/ // 3 children in Scope
/*28938*/       OPC_RecordChild1, // #0 = $src1
/*28939*/       OPC_MoveChild, 2,
/*28941*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*28944*/       OPC_MoveChild, 0,
/*28946*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*28949*/       OPC_RecordMemRef,
/*28950*/       OPC_RecordNode, // #1 = 'ld' chained node
/*28951*/       OPC_CheckFoldableChainNode,
/*28952*/       OPC_RecordChild1, // #2 = $src2
/*28953*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*28955*/       OPC_CheckPredicate, 3, // Predicate_load
/*28957*/       OPC_CheckPredicate, 23, // Predicate_memop
/*28959*/       OPC_CheckType, MVT::v2i64,
/*28961*/       OPC_MoveParent,
/*28962*/       OPC_MoveParent,
/*28963*/       OPC_Scope, 19, /*->28984*/ // 2 children in Scope
/*28965*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*28967*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*28970*/         OPC_EmitMergeInputChains1_1,
/*28971*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPADDSBrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v16i8 314:iPTR, VR128:v16i8:$src1, (bitconvert:v16i8 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 33
                  // Dst: (VPADDSBrm:v16i8 VR128:v16i8:$src1, addr:iPTR:$src2)
/*28984*/       /*Scope*/ 19, /*->29004*/
/*28985*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*28987*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*28990*/         OPC_EmitMergeInputChains1_1,
/*28991*/         OPC_MorphNodeTo, TARGET_VAL(X86::PADDSBrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v16i8 314:iPTR, VR128:v16i8:$src1, (bitconvert:v16i8 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 33
                  // Dst: (PADDSBrm:v16i8 VR128:v16i8:$src1, addr:iPTR:$src2)
/*29004*/       0, /*End of Scope*/
/*29005*/     /*Scope*/ 67, /*->29073*/
/*29006*/       OPC_MoveChild, 1,
/*29008*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*29011*/       OPC_MoveChild, 0,
/*29013*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*29016*/       OPC_RecordMemRef,
/*29017*/       OPC_RecordNode, // #0 = 'ld' chained node
/*29018*/       OPC_CheckFoldableChainNode,
/*29019*/       OPC_RecordChild1, // #1 = $src2
/*29020*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*29022*/       OPC_CheckPredicate, 3, // Predicate_load
/*29024*/       OPC_CheckPredicate, 23, // Predicate_memop
/*29026*/       OPC_CheckType, MVT::v2i64,
/*29028*/       OPC_MoveParent,
/*29029*/       OPC_MoveParent,
/*29030*/       OPC_RecordChild2, // #2 = $src1
/*29031*/       OPC_Scope, 19, /*->29052*/ // 2 children in Scope
/*29033*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*29035*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*29038*/         OPC_EmitMergeInputChains1_0,
/*29039*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPADDSBrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v16i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v16i8 314:iPTR, (bitconvert:v16i8 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>), VR128:v16i8:$src1) - Complexity = 33
                  // Dst: (VPADDSBrm:v16i8 VR128:v16i8:$src1, addr:iPTR:$src2)
/*29052*/       /*Scope*/ 19, /*->29072*/
/*29053*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*29055*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*29058*/         OPC_EmitMergeInputChains1_0,
/*29059*/         OPC_MorphNodeTo, TARGET_VAL(X86::PADDSBrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v16i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v16i8 314:iPTR, (bitconvert:v16i8 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>), VR128:v16i8:$src1) - Complexity = 33
                  // Dst: (PADDSBrm:v16i8 VR128:v16i8:$src1, addr:iPTR:$src2)
/*29072*/       0, /*End of Scope*/
/*29073*/     /*Scope*/ 28, /*->29102*/
/*29074*/       OPC_RecordChild1, // #0 = $src1
/*29075*/       OPC_RecordChild2, // #1 = $src2
/*29076*/       OPC_Scope, 11, /*->29089*/ // 2 children in Scope
/*29078*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*29080*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPADDSBrr), 0,
                      1/*#VTs*/, MVT::v16i8, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v16i8 314:iPTR, VR128:v16i8:$src1, VR128:v16i8:$src2) - Complexity = 8
                  // Dst: (VPADDSBrr:v16i8 VR128:v16i8:$src1, VR128:v16i8:$src2)
/*29089*/       /*Scope*/ 11, /*->29101*/
/*29090*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*29092*/         OPC_MorphNodeTo, TARGET_VAL(X86::PADDSBrr), 0,
                      1/*#VTs*/, MVT::v16i8, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v16i8 314:iPTR, VR128:v16i8:$src1, VR128:v16i8:$src2) - Complexity = 8
                  // Dst: (PADDSBrr:v16i8 VR128:v16i8:$src1, VR128:v16i8:$src2)
/*29101*/       0, /*End of Scope*/
/*29102*/     0, /*End of Scope*/
/*29103*/   /*Scope*/ 43|128,1/*171*/, /*->29276*/
/*29105*/     OPC_CheckInteger, 59|128,2/*315*/, 
/*29108*/     OPC_MoveParent,
/*29109*/     OPC_Scope, 67, /*->29178*/ // 3 children in Scope
/*29111*/       OPC_RecordChild1, // #0 = $src1
/*29112*/       OPC_MoveChild, 2,
/*29114*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*29117*/       OPC_MoveChild, 0,
/*29119*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*29122*/       OPC_RecordMemRef,
/*29123*/       OPC_RecordNode, // #1 = 'ld' chained node
/*29124*/       OPC_CheckFoldableChainNode,
/*29125*/       OPC_RecordChild1, // #2 = $src2
/*29126*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*29128*/       OPC_CheckPredicate, 3, // Predicate_load
/*29130*/       OPC_CheckPredicate, 23, // Predicate_memop
/*29132*/       OPC_CheckType, MVT::v2i64,
/*29134*/       OPC_MoveParent,
/*29135*/       OPC_MoveParent,
/*29136*/       OPC_Scope, 19, /*->29157*/ // 2 children in Scope
/*29138*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*29140*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*29143*/         OPC_EmitMergeInputChains1_1,
/*29144*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPADDSWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v8i16 315:iPTR, VR128:v8i16:$src1, (bitconvert:v8i16 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 33
                  // Dst: (VPADDSWrm:v8i16 VR128:v8i16:$src1, addr:iPTR:$src2)
/*29157*/       /*Scope*/ 19, /*->29177*/
/*29158*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*29160*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*29163*/         OPC_EmitMergeInputChains1_1,
/*29164*/         OPC_MorphNodeTo, TARGET_VAL(X86::PADDSWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v8i16 315:iPTR, VR128:v8i16:$src1, (bitconvert:v8i16 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 33
                  // Dst: (PADDSWrm:v8i16 VR128:v8i16:$src1, addr:iPTR:$src2)
/*29177*/       0, /*End of Scope*/
/*29178*/     /*Scope*/ 67, /*->29246*/
/*29179*/       OPC_MoveChild, 1,
/*29181*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*29184*/       OPC_MoveChild, 0,
/*29186*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*29189*/       OPC_RecordMemRef,
/*29190*/       OPC_RecordNode, // #0 = 'ld' chained node
/*29191*/       OPC_CheckFoldableChainNode,
/*29192*/       OPC_RecordChild1, // #1 = $src2
/*29193*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*29195*/       OPC_CheckPredicate, 3, // Predicate_load
/*29197*/       OPC_CheckPredicate, 23, // Predicate_memop
/*29199*/       OPC_CheckType, MVT::v2i64,
/*29201*/       OPC_MoveParent,
/*29202*/       OPC_MoveParent,
/*29203*/       OPC_RecordChild2, // #2 = $src1
/*29204*/       OPC_Scope, 19, /*->29225*/ // 2 children in Scope
/*29206*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*29208*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*29211*/         OPC_EmitMergeInputChains1_0,
/*29212*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPADDSWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v8i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v8i16 315:iPTR, (bitconvert:v8i16 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>), VR128:v8i16:$src1) - Complexity = 33
                  // Dst: (VPADDSWrm:v8i16 VR128:v8i16:$src1, addr:iPTR:$src2)
/*29225*/       /*Scope*/ 19, /*->29245*/
/*29226*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*29228*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*29231*/         OPC_EmitMergeInputChains1_0,
/*29232*/         OPC_MorphNodeTo, TARGET_VAL(X86::PADDSWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v8i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v8i16 315:iPTR, (bitconvert:v8i16 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>), VR128:v8i16:$src1) - Complexity = 33
                  // Dst: (PADDSWrm:v8i16 VR128:v8i16:$src1, addr:iPTR:$src2)
/*29245*/       0, /*End of Scope*/
/*29246*/     /*Scope*/ 28, /*->29275*/
/*29247*/       OPC_RecordChild1, // #0 = $src1
/*29248*/       OPC_RecordChild2, // #1 = $src2
/*29249*/       OPC_Scope, 11, /*->29262*/ // 2 children in Scope
/*29251*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*29253*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPADDSWrr), 0,
                      1/*#VTs*/, MVT::v8i16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v8i16 315:iPTR, VR128:v8i16:$src1, VR128:v8i16:$src2) - Complexity = 8
                  // Dst: (VPADDSWrr:v8i16 VR128:v8i16:$src1, VR128:v8i16:$src2)
/*29262*/       /*Scope*/ 11, /*->29274*/
/*29263*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*29265*/         OPC_MorphNodeTo, TARGET_VAL(X86::PADDSWrr), 0,
                      1/*#VTs*/, MVT::v8i16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v8i16 315:iPTR, VR128:v8i16:$src1, VR128:v8i16:$src2) - Complexity = 8
                  // Dst: (PADDSWrr:v8i16 VR128:v8i16:$src1, VR128:v8i16:$src2)
/*29274*/       0, /*End of Scope*/
/*29275*/     0, /*End of Scope*/
/*29276*/   /*Scope*/ 43|128,1/*171*/, /*->29449*/
/*29278*/     OPC_CheckInteger, 60|128,2/*316*/, 
/*29281*/     OPC_MoveParent,
/*29282*/     OPC_Scope, 67, /*->29351*/ // 3 children in Scope
/*29284*/       OPC_RecordChild1, // #0 = $src1
/*29285*/       OPC_MoveChild, 2,
/*29287*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*29290*/       OPC_MoveChild, 0,
/*29292*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*29295*/       OPC_RecordMemRef,
/*29296*/       OPC_RecordNode, // #1 = 'ld' chained node
/*29297*/       OPC_CheckFoldableChainNode,
/*29298*/       OPC_RecordChild1, // #2 = $src2
/*29299*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*29301*/       OPC_CheckPredicate, 3, // Predicate_load
/*29303*/       OPC_CheckPredicate, 23, // Predicate_memop
/*29305*/       OPC_CheckType, MVT::v2i64,
/*29307*/       OPC_MoveParent,
/*29308*/       OPC_MoveParent,
/*29309*/       OPC_Scope, 19, /*->29330*/ // 2 children in Scope
/*29311*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*29313*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*29316*/         OPC_EmitMergeInputChains1_1,
/*29317*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPADDUSBrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v16i8 316:iPTR, VR128:v16i8:$src1, (bitconvert:v16i8 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 33
                  // Dst: (VPADDUSBrm:v16i8 VR128:v16i8:$src1, addr:iPTR:$src2)
/*29330*/       /*Scope*/ 19, /*->29350*/
/*29331*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*29333*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*29336*/         OPC_EmitMergeInputChains1_1,
/*29337*/         OPC_MorphNodeTo, TARGET_VAL(X86::PADDUSBrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v16i8 316:iPTR, VR128:v16i8:$src1, (bitconvert:v16i8 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 33
                  // Dst: (PADDUSBrm:v16i8 VR128:v16i8:$src1, addr:iPTR:$src2)
/*29350*/       0, /*End of Scope*/
/*29351*/     /*Scope*/ 67, /*->29419*/
/*29352*/       OPC_MoveChild, 1,
/*29354*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*29357*/       OPC_MoveChild, 0,
/*29359*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*29362*/       OPC_RecordMemRef,
/*29363*/       OPC_RecordNode, // #0 = 'ld' chained node
/*29364*/       OPC_CheckFoldableChainNode,
/*29365*/       OPC_RecordChild1, // #1 = $src2
/*29366*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*29368*/       OPC_CheckPredicate, 3, // Predicate_load
/*29370*/       OPC_CheckPredicate, 23, // Predicate_memop
/*29372*/       OPC_CheckType, MVT::v2i64,
/*29374*/       OPC_MoveParent,
/*29375*/       OPC_MoveParent,
/*29376*/       OPC_RecordChild2, // #2 = $src1
/*29377*/       OPC_Scope, 19, /*->29398*/ // 2 children in Scope
/*29379*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*29381*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*29384*/         OPC_EmitMergeInputChains1_0,
/*29385*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPADDUSBrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v16i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v16i8 316:iPTR, (bitconvert:v16i8 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>), VR128:v16i8:$src1) - Complexity = 33
                  // Dst: (VPADDUSBrm:v16i8 VR128:v16i8:$src1, addr:iPTR:$src2)
/*29398*/       /*Scope*/ 19, /*->29418*/
/*29399*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*29401*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*29404*/         OPC_EmitMergeInputChains1_0,
/*29405*/         OPC_MorphNodeTo, TARGET_VAL(X86::PADDUSBrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v16i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v16i8 316:iPTR, (bitconvert:v16i8 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>), VR128:v16i8:$src1) - Complexity = 33
                  // Dst: (PADDUSBrm:v16i8 VR128:v16i8:$src1, addr:iPTR:$src2)
/*29418*/       0, /*End of Scope*/
/*29419*/     /*Scope*/ 28, /*->29448*/
/*29420*/       OPC_RecordChild1, // #0 = $src1
/*29421*/       OPC_RecordChild2, // #1 = $src2
/*29422*/       OPC_Scope, 11, /*->29435*/ // 2 children in Scope
/*29424*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*29426*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPADDUSBrr), 0,
                      1/*#VTs*/, MVT::v16i8, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v16i8 316:iPTR, VR128:v16i8:$src1, VR128:v16i8:$src2) - Complexity = 8
                  // Dst: (VPADDUSBrr:v16i8 VR128:v16i8:$src1, VR128:v16i8:$src2)
/*29435*/       /*Scope*/ 11, /*->29447*/
/*29436*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*29438*/         OPC_MorphNodeTo, TARGET_VAL(X86::PADDUSBrr), 0,
                      1/*#VTs*/, MVT::v16i8, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v16i8 316:iPTR, VR128:v16i8:$src1, VR128:v16i8:$src2) - Complexity = 8
                  // Dst: (PADDUSBrr:v16i8 VR128:v16i8:$src1, VR128:v16i8:$src2)
/*29447*/       0, /*End of Scope*/
/*29448*/     0, /*End of Scope*/
/*29449*/   /*Scope*/ 43|128,1/*171*/, /*->29622*/
/*29451*/     OPC_CheckInteger, 61|128,2/*317*/, 
/*29454*/     OPC_MoveParent,
/*29455*/     OPC_Scope, 67, /*->29524*/ // 3 children in Scope
/*29457*/       OPC_RecordChild1, // #0 = $src1
/*29458*/       OPC_MoveChild, 2,
/*29460*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*29463*/       OPC_MoveChild, 0,
/*29465*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*29468*/       OPC_RecordMemRef,
/*29469*/       OPC_RecordNode, // #1 = 'ld' chained node
/*29470*/       OPC_CheckFoldableChainNode,
/*29471*/       OPC_RecordChild1, // #2 = $src2
/*29472*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*29474*/       OPC_CheckPredicate, 3, // Predicate_load
/*29476*/       OPC_CheckPredicate, 23, // Predicate_memop
/*29478*/       OPC_CheckType, MVT::v2i64,
/*29480*/       OPC_MoveParent,
/*29481*/       OPC_MoveParent,
/*29482*/       OPC_Scope, 19, /*->29503*/ // 2 children in Scope
/*29484*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*29486*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*29489*/         OPC_EmitMergeInputChains1_1,
/*29490*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPADDUSWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v8i16 317:iPTR, VR128:v8i16:$src1, (bitconvert:v8i16 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 33
                  // Dst: (VPADDUSWrm:v8i16 VR128:v8i16:$src1, addr:iPTR:$src2)
/*29503*/       /*Scope*/ 19, /*->29523*/
/*29504*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*29506*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*29509*/         OPC_EmitMergeInputChains1_1,
/*29510*/         OPC_MorphNodeTo, TARGET_VAL(X86::PADDUSWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v8i16 317:iPTR, VR128:v8i16:$src1, (bitconvert:v8i16 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 33
                  // Dst: (PADDUSWrm:v8i16 VR128:v8i16:$src1, addr:iPTR:$src2)
/*29523*/       0, /*End of Scope*/
/*29524*/     /*Scope*/ 67, /*->29592*/
/*29525*/       OPC_MoveChild, 1,
/*29527*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*29530*/       OPC_MoveChild, 0,
/*29532*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*29535*/       OPC_RecordMemRef,
/*29536*/       OPC_RecordNode, // #0 = 'ld' chained node
/*29537*/       OPC_CheckFoldableChainNode,
/*29538*/       OPC_RecordChild1, // #1 = $src2
/*29539*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*29541*/       OPC_CheckPredicate, 3, // Predicate_load
/*29543*/       OPC_CheckPredicate, 23, // Predicate_memop
/*29545*/       OPC_CheckType, MVT::v2i64,
/*29547*/       OPC_MoveParent,
/*29548*/       OPC_MoveParent,
/*29549*/       OPC_RecordChild2, // #2 = $src1
/*29550*/       OPC_Scope, 19, /*->29571*/ // 2 children in Scope
/*29552*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*29554*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*29557*/         OPC_EmitMergeInputChains1_0,
/*29558*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPADDUSWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v8i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v8i16 317:iPTR, (bitconvert:v8i16 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>), VR128:v8i16:$src1) - Complexity = 33
                  // Dst: (VPADDUSWrm:v8i16 VR128:v8i16:$src1, addr:iPTR:$src2)
/*29571*/       /*Scope*/ 19, /*->29591*/
/*29572*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*29574*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*29577*/         OPC_EmitMergeInputChains1_0,
/*29578*/         OPC_MorphNodeTo, TARGET_VAL(X86::PADDUSWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v8i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v8i16 317:iPTR, (bitconvert:v8i16 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>), VR128:v8i16:$src1) - Complexity = 33
                  // Dst: (PADDUSWrm:v8i16 VR128:v8i16:$src1, addr:iPTR:$src2)
/*29591*/       0, /*End of Scope*/
/*29592*/     /*Scope*/ 28, /*->29621*/
/*29593*/       OPC_RecordChild1, // #0 = $src1
/*29594*/       OPC_RecordChild2, // #1 = $src2
/*29595*/       OPC_Scope, 11, /*->29608*/ // 2 children in Scope
/*29597*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*29599*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPADDUSWrr), 0,
                      1/*#VTs*/, MVT::v8i16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v8i16 317:iPTR, VR128:v8i16:$src1, VR128:v8i16:$src2) - Complexity = 8
                  // Dst: (VPADDUSWrr:v8i16 VR128:v8i16:$src1, VR128:v8i16:$src2)
/*29608*/       /*Scope*/ 11, /*->29620*/
/*29609*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*29611*/         OPC_MorphNodeTo, TARGET_VAL(X86::PADDUSWrr), 0,
                      1/*#VTs*/, MVT::v8i16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v8i16 317:iPTR, VR128:v8i16:$src1, VR128:v8i16:$src2) - Complexity = 8
                  // Dst: (PADDUSWrr:v8i16 VR128:v8i16:$src1, VR128:v8i16:$src2)
/*29620*/       0, /*End of Scope*/
/*29621*/     0, /*End of Scope*/
/*29622*/   /*Scope*/ 43|128,1/*171*/, /*->29795*/
/*29624*/     OPC_CheckInteger, 77|128,2/*333*/, 
/*29627*/     OPC_MoveParent,
/*29628*/     OPC_Scope, 67, /*->29697*/ // 3 children in Scope
/*29630*/       OPC_RecordChild1, // #0 = $src1
/*29631*/       OPC_MoveChild, 2,
/*29633*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*29636*/       OPC_MoveChild, 0,
/*29638*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*29641*/       OPC_RecordMemRef,
/*29642*/       OPC_RecordNode, // #1 = 'ld' chained node
/*29643*/       OPC_CheckFoldableChainNode,
/*29644*/       OPC_RecordChild1, // #2 = $src2
/*29645*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*29647*/       OPC_CheckPredicate, 3, // Predicate_load
/*29649*/       OPC_CheckPredicate, 23, // Predicate_memop
/*29651*/       OPC_CheckType, MVT::v2i64,
/*29653*/       OPC_MoveParent,
/*29654*/       OPC_MoveParent,
/*29655*/       OPC_Scope, 19, /*->29676*/ // 2 children in Scope
/*29657*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*29659*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*29662*/         OPC_EmitMergeInputChains1_1,
/*29663*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPMULHUWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v8i16 333:iPTR, VR128:v8i16:$src1, (bitconvert:v8i16 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 33
                  // Dst: (VPMULHUWrm:v8i16 VR128:v8i16:$src1, addr:iPTR:$src2)
/*29676*/       /*Scope*/ 19, /*->29696*/
/*29677*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*29679*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*29682*/         OPC_EmitMergeInputChains1_1,
/*29683*/         OPC_MorphNodeTo, TARGET_VAL(X86::PMULHUWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v8i16 333:iPTR, VR128:v8i16:$src1, (bitconvert:v8i16 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 33
                  // Dst: (PMULHUWrm:v8i16 VR128:v8i16:$src1, addr:iPTR:$src2)
/*29696*/       0, /*End of Scope*/
/*29697*/     /*Scope*/ 67, /*->29765*/
/*29698*/       OPC_MoveChild, 1,
/*29700*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*29703*/       OPC_MoveChild, 0,
/*29705*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*29708*/       OPC_RecordMemRef,
/*29709*/       OPC_RecordNode, // #0 = 'ld' chained node
/*29710*/       OPC_CheckFoldableChainNode,
/*29711*/       OPC_RecordChild1, // #1 = $src2
/*29712*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*29714*/       OPC_CheckPredicate, 3, // Predicate_load
/*29716*/       OPC_CheckPredicate, 23, // Predicate_memop
/*29718*/       OPC_CheckType, MVT::v2i64,
/*29720*/       OPC_MoveParent,
/*29721*/       OPC_MoveParent,
/*29722*/       OPC_RecordChild2, // #2 = $src1
/*29723*/       OPC_Scope, 19, /*->29744*/ // 2 children in Scope
/*29725*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*29727*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*29730*/         OPC_EmitMergeInputChains1_0,
/*29731*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPMULHUWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v8i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v8i16 333:iPTR, (bitconvert:v8i16 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>), VR128:v8i16:$src1) - Complexity = 33
                  // Dst: (VPMULHUWrm:v8i16 VR128:v8i16:$src1, addr:iPTR:$src2)
/*29744*/       /*Scope*/ 19, /*->29764*/
/*29745*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*29747*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*29750*/         OPC_EmitMergeInputChains1_0,
/*29751*/         OPC_MorphNodeTo, TARGET_VAL(X86::PMULHUWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v8i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v8i16 333:iPTR, (bitconvert:v8i16 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>), VR128:v8i16:$src1) - Complexity = 33
                  // Dst: (PMULHUWrm:v8i16 VR128:v8i16:$src1, addr:iPTR:$src2)
/*29764*/       0, /*End of Scope*/
/*29765*/     /*Scope*/ 28, /*->29794*/
/*29766*/       OPC_RecordChild1, // #0 = $src1
/*29767*/       OPC_RecordChild2, // #1 = $src2
/*29768*/       OPC_Scope, 11, /*->29781*/ // 2 children in Scope
/*29770*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*29772*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPMULHUWrr), 0,
                      1/*#VTs*/, MVT::v8i16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v8i16 333:iPTR, VR128:v8i16:$src1, VR128:v8i16:$src2) - Complexity = 8
                  // Dst: (VPMULHUWrr:v8i16 VR128:v8i16:$src1, VR128:v8i16:$src2)
/*29781*/       /*Scope*/ 11, /*->29793*/
/*29782*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*29784*/         OPC_MorphNodeTo, TARGET_VAL(X86::PMULHUWrr), 0,
                      1/*#VTs*/, MVT::v8i16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v8i16 333:iPTR, VR128:v8i16:$src1, VR128:v8i16:$src2) - Complexity = 8
                  // Dst: (PMULHUWrr:v8i16 VR128:v8i16:$src1, VR128:v8i16:$src2)
/*29793*/       0, /*End of Scope*/
/*29794*/     0, /*End of Scope*/
/*29795*/   /*Scope*/ 43|128,1/*171*/, /*->29968*/
/*29797*/     OPC_CheckInteger, 76|128,2/*332*/, 
/*29800*/     OPC_MoveParent,
/*29801*/     OPC_Scope, 67, /*->29870*/ // 3 children in Scope
/*29803*/       OPC_RecordChild1, // #0 = $src1
/*29804*/       OPC_MoveChild, 2,
/*29806*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*29809*/       OPC_MoveChild, 0,
/*29811*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*29814*/       OPC_RecordMemRef,
/*29815*/       OPC_RecordNode, // #1 = 'ld' chained node
/*29816*/       OPC_CheckFoldableChainNode,
/*29817*/       OPC_RecordChild1, // #2 = $src2
/*29818*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*29820*/       OPC_CheckPredicate, 3, // Predicate_load
/*29822*/       OPC_CheckPredicate, 23, // Predicate_memop
/*29824*/       OPC_CheckType, MVT::v2i64,
/*29826*/       OPC_MoveParent,
/*29827*/       OPC_MoveParent,
/*29828*/       OPC_Scope, 19, /*->29849*/ // 2 children in Scope
/*29830*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*29832*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*29835*/         OPC_EmitMergeInputChains1_1,
/*29836*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPMULHWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v8i16 332:iPTR, VR128:v8i16:$src1, (bitconvert:v8i16 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 33
                  // Dst: (VPMULHWrm:v8i16 VR128:v8i16:$src1, addr:iPTR:$src2)
/*29849*/       /*Scope*/ 19, /*->29869*/
/*29850*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*29852*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*29855*/         OPC_EmitMergeInputChains1_1,
/*29856*/         OPC_MorphNodeTo, TARGET_VAL(X86::PMULHWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v8i16 332:iPTR, VR128:v8i16:$src1, (bitconvert:v8i16 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 33
                  // Dst: (PMULHWrm:v8i16 VR128:v8i16:$src1, addr:iPTR:$src2)
/*29869*/       0, /*End of Scope*/
/*29870*/     /*Scope*/ 67, /*->29938*/
/*29871*/       OPC_MoveChild, 1,
/*29873*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*29876*/       OPC_MoveChild, 0,
/*29878*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*29881*/       OPC_RecordMemRef,
/*29882*/       OPC_RecordNode, // #0 = 'ld' chained node
/*29883*/       OPC_CheckFoldableChainNode,
/*29884*/       OPC_RecordChild1, // #1 = $src2
/*29885*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*29887*/       OPC_CheckPredicate, 3, // Predicate_load
/*29889*/       OPC_CheckPredicate, 23, // Predicate_memop
/*29891*/       OPC_CheckType, MVT::v2i64,
/*29893*/       OPC_MoveParent,
/*29894*/       OPC_MoveParent,
/*29895*/       OPC_RecordChild2, // #2 = $src1
/*29896*/       OPC_Scope, 19, /*->29917*/ // 2 children in Scope
/*29898*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*29900*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*29903*/         OPC_EmitMergeInputChains1_0,
/*29904*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPMULHWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v8i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v8i16 332:iPTR, (bitconvert:v8i16 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>), VR128:v8i16:$src1) - Complexity = 33
                  // Dst: (VPMULHWrm:v8i16 VR128:v8i16:$src1, addr:iPTR:$src2)
/*29917*/       /*Scope*/ 19, /*->29937*/
/*29918*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*29920*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*29923*/         OPC_EmitMergeInputChains1_0,
/*29924*/         OPC_MorphNodeTo, TARGET_VAL(X86::PMULHWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v8i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v8i16 332:iPTR, (bitconvert:v8i16 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>), VR128:v8i16:$src1) - Complexity = 33
                  // Dst: (PMULHWrm:v8i16 VR128:v8i16:$src1, addr:iPTR:$src2)
/*29937*/       0, /*End of Scope*/
/*29938*/     /*Scope*/ 28, /*->29967*/
/*29939*/       OPC_RecordChild1, // #0 = $src1
/*29940*/       OPC_RecordChild2, // #1 = $src2
/*29941*/       OPC_Scope, 11, /*->29954*/ // 2 children in Scope
/*29943*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*29945*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPMULHWrr), 0,
                      1/*#VTs*/, MVT::v8i16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v8i16 332:iPTR, VR128:v8i16:$src1, VR128:v8i16:$src2) - Complexity = 8
                  // Dst: (VPMULHWrr:v8i16 VR128:v8i16:$src1, VR128:v8i16:$src2)
/*29954*/       /*Scope*/ 11, /*->29966*/
/*29955*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*29957*/         OPC_MorphNodeTo, TARGET_VAL(X86::PMULHWrr), 0,
                      1/*#VTs*/, MVT::v8i16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v8i16 332:iPTR, VR128:v8i16:$src1, VR128:v8i16:$src2) - Complexity = 8
                  // Dst: (PMULHWrr:v8i16 VR128:v8i16:$src1, VR128:v8i16:$src2)
/*29966*/       0, /*End of Scope*/
/*29967*/     0, /*End of Scope*/
/*29968*/   /*Scope*/ 43|128,1/*171*/, /*->30141*/
/*29970*/     OPC_CheckInteger, 78|128,2/*334*/, 
/*29973*/     OPC_MoveParent,
/*29974*/     OPC_Scope, 67, /*->30043*/ // 3 children in Scope
/*29976*/       OPC_RecordChild1, // #0 = $src1
/*29977*/       OPC_MoveChild, 2,
/*29979*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*29982*/       OPC_MoveChild, 0,
/*29984*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*29987*/       OPC_RecordMemRef,
/*29988*/       OPC_RecordNode, // #1 = 'ld' chained node
/*29989*/       OPC_CheckFoldableChainNode,
/*29990*/       OPC_RecordChild1, // #2 = $src2
/*29991*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*29993*/       OPC_CheckPredicate, 3, // Predicate_load
/*29995*/       OPC_CheckPredicate, 23, // Predicate_memop
/*29997*/       OPC_CheckType, MVT::v2i64,
/*29999*/       OPC_MoveParent,
/*30000*/       OPC_MoveParent,
/*30001*/       OPC_Scope, 19, /*->30022*/ // 2 children in Scope
/*30003*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*30005*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*30008*/         OPC_EmitMergeInputChains1_1,
/*30009*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPMULUDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v2i64 334:iPTR, VR128:v4i32:$src1, (bitconvert:v4i32 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 33
                  // Dst: (VPMULUDQrm:v2i64 VR128:v4i32:$src1, addr:iPTR:$src2)
/*30022*/       /*Scope*/ 19, /*->30042*/
/*30023*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*30025*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*30028*/         OPC_EmitMergeInputChains1_1,
/*30029*/         OPC_MorphNodeTo, TARGET_VAL(X86::PMULUDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v2i64 334:iPTR, VR128:v4i32:$src1, (bitconvert:v4i32 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 33
                  // Dst: (PMULUDQrm:v2i64 VR128:v4i32:$src1, addr:iPTR:$src2)
/*30042*/       0, /*End of Scope*/
/*30043*/     /*Scope*/ 67, /*->30111*/
/*30044*/       OPC_MoveChild, 1,
/*30046*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*30049*/       OPC_MoveChild, 0,
/*30051*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*30054*/       OPC_RecordMemRef,
/*30055*/       OPC_RecordNode, // #0 = 'ld' chained node
/*30056*/       OPC_CheckFoldableChainNode,
/*30057*/       OPC_RecordChild1, // #1 = $src2
/*30058*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*30060*/       OPC_CheckPredicate, 3, // Predicate_load
/*30062*/       OPC_CheckPredicate, 23, // Predicate_memop
/*30064*/       OPC_CheckType, MVT::v2i64,
/*30066*/       OPC_MoveParent,
/*30067*/       OPC_MoveParent,
/*30068*/       OPC_RecordChild2, // #2 = $src1
/*30069*/       OPC_Scope, 19, /*->30090*/ // 2 children in Scope
/*30071*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*30073*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*30076*/         OPC_EmitMergeInputChains1_0,
/*30077*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPMULUDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v2i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v2i64 334:iPTR, (bitconvert:v4i32 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>), VR128:v4i32:$src1) - Complexity = 33
                  // Dst: (VPMULUDQrm:v2i64 VR128:v4i32:$src1, addr:iPTR:$src2)
/*30090*/       /*Scope*/ 19, /*->30110*/
/*30091*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*30093*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*30096*/         OPC_EmitMergeInputChains1_0,
/*30097*/         OPC_MorphNodeTo, TARGET_VAL(X86::PMULUDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v2i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v2i64 334:iPTR, (bitconvert:v4i32 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>), VR128:v4i32:$src1) - Complexity = 33
                  // Dst: (PMULUDQrm:v2i64 VR128:v4i32:$src1, addr:iPTR:$src2)
/*30110*/       0, /*End of Scope*/
/*30111*/     /*Scope*/ 28, /*->30140*/
/*30112*/       OPC_RecordChild1, // #0 = $src1
/*30113*/       OPC_RecordChild2, // #1 = $src2
/*30114*/       OPC_Scope, 11, /*->30127*/ // 2 children in Scope
/*30116*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*30118*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPMULUDQrr), 0,
                      1/*#VTs*/, MVT::v2i64, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v2i64 334:iPTR, VR128:v4i32:$src1, VR128:v4i32:$src2) - Complexity = 8
                  // Dst: (VPMULUDQrr:v2i64 VR128:v4i32:$src1, VR128:v4i32:$src2)
/*30127*/       /*Scope*/ 11, /*->30139*/
/*30128*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*30130*/         OPC_MorphNodeTo, TARGET_VAL(X86::PMULUDQrr), 0,
                      1/*#VTs*/, MVT::v2i64, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v2i64 334:iPTR, VR128:v4i32:$src1, VR128:v4i32:$src2) - Complexity = 8
                  // Dst: (PMULUDQrr:v2i64 VR128:v4i32:$src1, VR128:v4i32:$src2)
/*30139*/       0, /*End of Scope*/
/*30140*/     0, /*End of Scope*/
/*30141*/   /*Scope*/ 43|128,1/*171*/, /*->30314*/
/*30143*/     OPC_CheckInteger, 70|128,2/*326*/, 
/*30146*/     OPC_MoveParent,
/*30147*/     OPC_Scope, 67, /*->30216*/ // 3 children in Scope
/*30149*/       OPC_RecordChild1, // #0 = $src1
/*30150*/       OPC_MoveChild, 2,
/*30152*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*30155*/       OPC_MoveChild, 0,
/*30157*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*30160*/       OPC_RecordMemRef,
/*30161*/       OPC_RecordNode, // #1 = 'ld' chained node
/*30162*/       OPC_CheckFoldableChainNode,
/*30163*/       OPC_RecordChild1, // #2 = $src2
/*30164*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*30166*/       OPC_CheckPredicate, 3, // Predicate_load
/*30168*/       OPC_CheckPredicate, 23, // Predicate_memop
/*30170*/       OPC_CheckType, MVT::v2i64,
/*30172*/       OPC_MoveParent,
/*30173*/       OPC_MoveParent,
/*30174*/       OPC_Scope, 19, /*->30195*/ // 2 children in Scope
/*30176*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*30178*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*30181*/         OPC_EmitMergeInputChains1_1,
/*30182*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPMADDWDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v4i32 326:iPTR, VR128:v8i16:$src1, (bitconvert:v8i16 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 33
                  // Dst: (VPMADDWDrm:v4i32 VR128:v8i16:$src1, addr:iPTR:$src2)
/*30195*/       /*Scope*/ 19, /*->30215*/
/*30196*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*30198*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*30201*/         OPC_EmitMergeInputChains1_1,
/*30202*/         OPC_MorphNodeTo, TARGET_VAL(X86::PMADDWDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v4i32 326:iPTR, VR128:v8i16:$src1, (bitconvert:v8i16 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 33
                  // Dst: (PMADDWDrm:v4i32 VR128:v8i16:$src1, addr:iPTR:$src2)
/*30215*/       0, /*End of Scope*/
/*30216*/     /*Scope*/ 67, /*->30284*/
/*30217*/       OPC_MoveChild, 1,
/*30219*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*30222*/       OPC_MoveChild, 0,
/*30224*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*30227*/       OPC_RecordMemRef,
/*30228*/       OPC_RecordNode, // #0 = 'ld' chained node
/*30229*/       OPC_CheckFoldableChainNode,
/*30230*/       OPC_RecordChild1, // #1 = $src2
/*30231*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*30233*/       OPC_CheckPredicate, 3, // Predicate_load
/*30235*/       OPC_CheckPredicate, 23, // Predicate_memop
/*30237*/       OPC_CheckType, MVT::v2i64,
/*30239*/       OPC_MoveParent,
/*30240*/       OPC_MoveParent,
/*30241*/       OPC_RecordChild2, // #2 = $src1
/*30242*/       OPC_Scope, 19, /*->30263*/ // 2 children in Scope
/*30244*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*30246*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*30249*/         OPC_EmitMergeInputChains1_0,
/*30250*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPMADDWDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v4i32 326:iPTR, (bitconvert:v8i16 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>), VR128:v8i16:$src1) - Complexity = 33
                  // Dst: (VPMADDWDrm:v4i32 VR128:v8i16:$src1, addr:iPTR:$src2)
/*30263*/       /*Scope*/ 19, /*->30283*/
/*30264*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*30266*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*30269*/         OPC_EmitMergeInputChains1_0,
/*30270*/         OPC_MorphNodeTo, TARGET_VAL(X86::PMADDWDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v4i32 326:iPTR, (bitconvert:v8i16 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>), VR128:v8i16:$src1) - Complexity = 33
                  // Dst: (PMADDWDrm:v4i32 VR128:v8i16:$src1, addr:iPTR:$src2)
/*30283*/       0, /*End of Scope*/
/*30284*/     /*Scope*/ 28, /*->30313*/
/*30285*/       OPC_RecordChild1, // #0 = $src1
/*30286*/       OPC_RecordChild2, // #1 = $src2
/*30287*/       OPC_Scope, 11, /*->30300*/ // 2 children in Scope
/*30289*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*30291*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPMADDWDrr), 0,
                      1/*#VTs*/, MVT::v4i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v4i32 326:iPTR, VR128:v8i16:$src1, VR128:v8i16:$src2) - Complexity = 8
                  // Dst: (VPMADDWDrr:v4i32 VR128:v8i16:$src1, VR128:v8i16:$src2)
/*30300*/       /*Scope*/ 11, /*->30312*/
/*30301*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*30303*/         OPC_MorphNodeTo, TARGET_VAL(X86::PMADDWDrr), 0,
                      1/*#VTs*/, MVT::v4i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v4i32 326:iPTR, VR128:v8i16:$src1, VR128:v8i16:$src2) - Complexity = 8
                  // Dst: (PMADDWDrr:v4i32 VR128:v8i16:$src1, VR128:v8i16:$src2)
/*30312*/       0, /*End of Scope*/
/*30313*/     0, /*End of Scope*/
/*30314*/   /*Scope*/ 43|128,1/*171*/, /*->30487*/
/*30316*/     OPC_CheckInteger, 62|128,2/*318*/, 
/*30319*/     OPC_MoveParent,
/*30320*/     OPC_Scope, 67, /*->30389*/ // 3 children in Scope
/*30322*/       OPC_RecordChild1, // #0 = $src1
/*30323*/       OPC_MoveChild, 2,
/*30325*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*30328*/       OPC_MoveChild, 0,
/*30330*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*30333*/       OPC_RecordMemRef,
/*30334*/       OPC_RecordNode, // #1 = 'ld' chained node
/*30335*/       OPC_CheckFoldableChainNode,
/*30336*/       OPC_RecordChild1, // #2 = $src2
/*30337*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*30339*/       OPC_CheckPredicate, 3, // Predicate_load
/*30341*/       OPC_CheckPredicate, 23, // Predicate_memop
/*30343*/       OPC_CheckType, MVT::v2i64,
/*30345*/       OPC_MoveParent,
/*30346*/       OPC_MoveParent,
/*30347*/       OPC_Scope, 19, /*->30368*/ // 2 children in Scope
/*30349*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*30351*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*30354*/         OPC_EmitMergeInputChains1_1,
/*30355*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPAVGBrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v16i8 318:iPTR, VR128:v16i8:$src1, (bitconvert:v16i8 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 33
                  // Dst: (VPAVGBrm:v16i8 VR128:v16i8:$src1, addr:iPTR:$src2)
/*30368*/       /*Scope*/ 19, /*->30388*/
/*30369*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*30371*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*30374*/         OPC_EmitMergeInputChains1_1,
/*30375*/         OPC_MorphNodeTo, TARGET_VAL(X86::PAVGBrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v16i8 318:iPTR, VR128:v16i8:$src1, (bitconvert:v16i8 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 33
                  // Dst: (PAVGBrm:v16i8 VR128:v16i8:$src1, addr:iPTR:$src2)
/*30388*/       0, /*End of Scope*/
/*30389*/     /*Scope*/ 67, /*->30457*/
/*30390*/       OPC_MoveChild, 1,
/*30392*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*30395*/       OPC_MoveChild, 0,
/*30397*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*30400*/       OPC_RecordMemRef,
/*30401*/       OPC_RecordNode, // #0 = 'ld' chained node
/*30402*/       OPC_CheckFoldableChainNode,
/*30403*/       OPC_RecordChild1, // #1 = $src2
/*30404*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*30406*/       OPC_CheckPredicate, 3, // Predicate_load
/*30408*/       OPC_CheckPredicate, 23, // Predicate_memop
/*30410*/       OPC_CheckType, MVT::v2i64,
/*30412*/       OPC_MoveParent,
/*30413*/       OPC_MoveParent,
/*30414*/       OPC_RecordChild2, // #2 = $src1
/*30415*/       OPC_Scope, 19, /*->30436*/ // 2 children in Scope
/*30417*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*30419*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*30422*/         OPC_EmitMergeInputChains1_0,
/*30423*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPAVGBrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v16i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v16i8 318:iPTR, (bitconvert:v16i8 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>), VR128:v16i8:$src1) - Complexity = 33
                  // Dst: (VPAVGBrm:v16i8 VR128:v16i8:$src1, addr:iPTR:$src2)
/*30436*/       /*Scope*/ 19, /*->30456*/
/*30437*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*30439*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*30442*/         OPC_EmitMergeInputChains1_0,
/*30443*/         OPC_MorphNodeTo, TARGET_VAL(X86::PAVGBrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v16i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v16i8 318:iPTR, (bitconvert:v16i8 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>), VR128:v16i8:$src1) - Complexity = 33
                  // Dst: (PAVGBrm:v16i8 VR128:v16i8:$src1, addr:iPTR:$src2)
/*30456*/       0, /*End of Scope*/
/*30457*/     /*Scope*/ 28, /*->30486*/
/*30458*/       OPC_RecordChild1, // #0 = $src1
/*30459*/       OPC_RecordChild2, // #1 = $src2
/*30460*/       OPC_Scope, 11, /*->30473*/ // 2 children in Scope
/*30462*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*30464*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPAVGBrr), 0,
                      1/*#VTs*/, MVT::v16i8, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v16i8 318:iPTR, VR128:v16i8:$src1, VR128:v16i8:$src2) - Complexity = 8
                  // Dst: (VPAVGBrr:v16i8 VR128:v16i8:$src1, VR128:v16i8:$src2)
/*30473*/       /*Scope*/ 11, /*->30485*/
/*30474*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*30476*/         OPC_MorphNodeTo, TARGET_VAL(X86::PAVGBrr), 0,
                      1/*#VTs*/, MVT::v16i8, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v16i8 318:iPTR, VR128:v16i8:$src1, VR128:v16i8:$src2) - Complexity = 8
                  // Dst: (PAVGBrr:v16i8 VR128:v16i8:$src1, VR128:v16i8:$src2)
/*30485*/       0, /*End of Scope*/
/*30486*/     0, /*End of Scope*/
/*30487*/   /*Scope*/ 43|128,1/*171*/, /*->30660*/
/*30489*/     OPC_CheckInteger, 63|128,2/*319*/, 
/*30492*/     OPC_MoveParent,
/*30493*/     OPC_Scope, 67, /*->30562*/ // 3 children in Scope
/*30495*/       OPC_RecordChild1, // #0 = $src1
/*30496*/       OPC_MoveChild, 2,
/*30498*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*30501*/       OPC_MoveChild, 0,
/*30503*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*30506*/       OPC_RecordMemRef,
/*30507*/       OPC_RecordNode, // #1 = 'ld' chained node
/*30508*/       OPC_CheckFoldableChainNode,
/*30509*/       OPC_RecordChild1, // #2 = $src2
/*30510*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*30512*/       OPC_CheckPredicate, 3, // Predicate_load
/*30514*/       OPC_CheckPredicate, 23, // Predicate_memop
/*30516*/       OPC_CheckType, MVT::v2i64,
/*30518*/       OPC_MoveParent,
/*30519*/       OPC_MoveParent,
/*30520*/       OPC_Scope, 19, /*->30541*/ // 2 children in Scope
/*30522*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*30524*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*30527*/         OPC_EmitMergeInputChains1_1,
/*30528*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPAVGWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v8i16 319:iPTR, VR128:v8i16:$src1, (bitconvert:v8i16 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 33
                  // Dst: (VPAVGWrm:v8i16 VR128:v8i16:$src1, addr:iPTR:$src2)
/*30541*/       /*Scope*/ 19, /*->30561*/
/*30542*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*30544*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*30547*/         OPC_EmitMergeInputChains1_1,
/*30548*/         OPC_MorphNodeTo, TARGET_VAL(X86::PAVGWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v8i16 319:iPTR, VR128:v8i16:$src1, (bitconvert:v8i16 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 33
                  // Dst: (PAVGWrm:v8i16 VR128:v8i16:$src1, addr:iPTR:$src2)
/*30561*/       0, /*End of Scope*/
/*30562*/     /*Scope*/ 67, /*->30630*/
/*30563*/       OPC_MoveChild, 1,
/*30565*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*30568*/       OPC_MoveChild, 0,
/*30570*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*30573*/       OPC_RecordMemRef,
/*30574*/       OPC_RecordNode, // #0 = 'ld' chained node
/*30575*/       OPC_CheckFoldableChainNode,
/*30576*/       OPC_RecordChild1, // #1 = $src2
/*30577*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*30579*/       OPC_CheckPredicate, 3, // Predicate_load
/*30581*/       OPC_CheckPredicate, 23, // Predicate_memop
/*30583*/       OPC_CheckType, MVT::v2i64,
/*30585*/       OPC_MoveParent,
/*30586*/       OPC_MoveParent,
/*30587*/       OPC_RecordChild2, // #2 = $src1
/*30588*/       OPC_Scope, 19, /*->30609*/ // 2 children in Scope
/*30590*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*30592*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*30595*/         OPC_EmitMergeInputChains1_0,
/*30596*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPAVGWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v8i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v8i16 319:iPTR, (bitconvert:v8i16 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>), VR128:v8i16:$src1) - Complexity = 33
                  // Dst: (VPAVGWrm:v8i16 VR128:v8i16:$src1, addr:iPTR:$src2)
/*30609*/       /*Scope*/ 19, /*->30629*/
/*30610*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*30612*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*30615*/         OPC_EmitMergeInputChains1_0,
/*30616*/         OPC_MorphNodeTo, TARGET_VAL(X86::PAVGWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v8i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v8i16 319:iPTR, (bitconvert:v8i16 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>), VR128:v8i16:$src1) - Complexity = 33
                  // Dst: (PAVGWrm:v8i16 VR128:v8i16:$src1, addr:iPTR:$src2)
/*30629*/       0, /*End of Scope*/
/*30630*/     /*Scope*/ 28, /*->30659*/
/*30631*/       OPC_RecordChild1, // #0 = $src1
/*30632*/       OPC_RecordChild2, // #1 = $src2
/*30633*/       OPC_Scope, 11, /*->30646*/ // 2 children in Scope
/*30635*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*30637*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPAVGWrr), 0,
                      1/*#VTs*/, MVT::v8i16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v8i16 319:iPTR, VR128:v8i16:$src1, VR128:v8i16:$src2) - Complexity = 8
                  // Dst: (VPAVGWrr:v8i16 VR128:v8i16:$src1, VR128:v8i16:$src2)
/*30646*/       /*Scope*/ 11, /*->30658*/
/*30647*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*30649*/         OPC_MorphNodeTo, TARGET_VAL(X86::PAVGWrr), 0,
                      1/*#VTs*/, MVT::v8i16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v8i16 319:iPTR, VR128:v8i16:$src1, VR128:v8i16:$src2) - Complexity = 8
                  // Dst: (PAVGWrr:v8i16 VR128:v8i16:$src1, VR128:v8i16:$src2)
/*30658*/       0, /*End of Scope*/
/*30659*/     0, /*End of Scope*/
/*30660*/   /*Scope*/ 43|128,1/*171*/, /*->30833*/
/*30662*/     OPC_CheckInteger, 74|128,2/*330*/, 
/*30665*/     OPC_MoveParent,
/*30666*/     OPC_Scope, 67, /*->30735*/ // 3 children in Scope
/*30668*/       OPC_RecordChild1, // #0 = $src1
/*30669*/       OPC_MoveChild, 2,
/*30671*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*30674*/       OPC_MoveChild, 0,
/*30676*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*30679*/       OPC_RecordMemRef,
/*30680*/       OPC_RecordNode, // #1 = 'ld' chained node
/*30681*/       OPC_CheckFoldableChainNode,
/*30682*/       OPC_RecordChild1, // #2 = $src2
/*30683*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*30685*/       OPC_CheckPredicate, 3, // Predicate_load
/*30687*/       OPC_CheckPredicate, 23, // Predicate_memop
/*30689*/       OPC_CheckType, MVT::v2i64,
/*30691*/       OPC_MoveParent,
/*30692*/       OPC_MoveParent,
/*30693*/       OPC_Scope, 19, /*->30714*/ // 2 children in Scope
/*30695*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*30697*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*30700*/         OPC_EmitMergeInputChains1_1,
/*30701*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPMINUBrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v16i8 330:iPTR, VR128:v16i8:$src1, (bitconvert:v16i8 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 33
                  // Dst: (VPMINUBrm:v16i8 VR128:v16i8:$src1, addr:iPTR:$src2)
/*30714*/       /*Scope*/ 19, /*->30734*/
/*30715*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*30717*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*30720*/         OPC_EmitMergeInputChains1_1,
/*30721*/         OPC_MorphNodeTo, TARGET_VAL(X86::PMINUBrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v16i8 330:iPTR, VR128:v16i8:$src1, (bitconvert:v16i8 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 33
                  // Dst: (PMINUBrm:v16i8 VR128:v16i8:$src1, addr:iPTR:$src2)
/*30734*/       0, /*End of Scope*/
/*30735*/     /*Scope*/ 67, /*->30803*/
/*30736*/       OPC_MoveChild, 1,
/*30738*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*30741*/       OPC_MoveChild, 0,
/*30743*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*30746*/       OPC_RecordMemRef,
/*30747*/       OPC_RecordNode, // #0 = 'ld' chained node
/*30748*/       OPC_CheckFoldableChainNode,
/*30749*/       OPC_RecordChild1, // #1 = $src2
/*30750*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*30752*/       OPC_CheckPredicate, 3, // Predicate_load
/*30754*/       OPC_CheckPredicate, 23, // Predicate_memop
/*30756*/       OPC_CheckType, MVT::v2i64,
/*30758*/       OPC_MoveParent,
/*30759*/       OPC_MoveParent,
/*30760*/       OPC_RecordChild2, // #2 = $src1
/*30761*/       OPC_Scope, 19, /*->30782*/ // 2 children in Scope
/*30763*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*30765*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*30768*/         OPC_EmitMergeInputChains1_0,
/*30769*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPMINUBrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v16i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v16i8 330:iPTR, (bitconvert:v16i8 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>), VR128:v16i8:$src1) - Complexity = 33
                  // Dst: (VPMINUBrm:v16i8 VR128:v16i8:$src1, addr:iPTR:$src2)
/*30782*/       /*Scope*/ 19, /*->30802*/
/*30783*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*30785*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*30788*/         OPC_EmitMergeInputChains1_0,
/*30789*/         OPC_MorphNodeTo, TARGET_VAL(X86::PMINUBrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v16i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v16i8 330:iPTR, (bitconvert:v16i8 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>), VR128:v16i8:$src1) - Complexity = 33
                  // Dst: (PMINUBrm:v16i8 VR128:v16i8:$src1, addr:iPTR:$src2)
/*30802*/       0, /*End of Scope*/
/*30803*/     /*Scope*/ 28, /*->30832*/
/*30804*/       OPC_RecordChild1, // #0 = $src1
/*30805*/       OPC_RecordChild2, // #1 = $src2
/*30806*/       OPC_Scope, 11, /*->30819*/ // 2 children in Scope
/*30808*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*30810*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPMINUBrr), 0,
                      1/*#VTs*/, MVT::v16i8, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v16i8 330:iPTR, VR128:v16i8:$src1, VR128:v16i8:$src2) - Complexity = 8
                  // Dst: (VPMINUBrr:v16i8 VR128:v16i8:$src1, VR128:v16i8:$src2)
/*30819*/       /*Scope*/ 11, /*->30831*/
/*30820*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*30822*/         OPC_MorphNodeTo, TARGET_VAL(X86::PMINUBrr), 0,
                      1/*#VTs*/, MVT::v16i8, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v16i8 330:iPTR, VR128:v16i8:$src1, VR128:v16i8:$src2) - Complexity = 8
                  // Dst: (PMINUBrr:v16i8 VR128:v16i8:$src1, VR128:v16i8:$src2)
/*30831*/       0, /*End of Scope*/
/*30832*/     0, /*End of Scope*/
/*30833*/   /*Scope*/ 43|128,1/*171*/, /*->31006*/
/*30835*/     OPC_CheckInteger, 73|128,2/*329*/, 
/*30838*/     OPC_MoveParent,
/*30839*/     OPC_Scope, 67, /*->30908*/ // 3 children in Scope
/*30841*/       OPC_RecordChild1, // #0 = $src1
/*30842*/       OPC_MoveChild, 2,
/*30844*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*30847*/       OPC_MoveChild, 0,
/*30849*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*30852*/       OPC_RecordMemRef,
/*30853*/       OPC_RecordNode, // #1 = 'ld' chained node
/*30854*/       OPC_CheckFoldableChainNode,
/*30855*/       OPC_RecordChild1, // #2 = $src2
/*30856*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*30858*/       OPC_CheckPredicate, 3, // Predicate_load
/*30860*/       OPC_CheckPredicate, 23, // Predicate_memop
/*30862*/       OPC_CheckType, MVT::v2i64,
/*30864*/       OPC_MoveParent,
/*30865*/       OPC_MoveParent,
/*30866*/       OPC_Scope, 19, /*->30887*/ // 2 children in Scope
/*30868*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*30870*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*30873*/         OPC_EmitMergeInputChains1_1,
/*30874*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPMINSWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v8i16 329:iPTR, VR128:v8i16:$src1, (bitconvert:v8i16 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 33
                  // Dst: (VPMINSWrm:v8i16 VR128:v8i16:$src1, addr:iPTR:$src2)
/*30887*/       /*Scope*/ 19, /*->30907*/
/*30888*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*30890*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*30893*/         OPC_EmitMergeInputChains1_1,
/*30894*/         OPC_MorphNodeTo, TARGET_VAL(X86::PMINSWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v8i16 329:iPTR, VR128:v8i16:$src1, (bitconvert:v8i16 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 33
                  // Dst: (PMINSWrm:v8i16 VR128:v8i16:$src1, addr:iPTR:$src2)
/*30907*/       0, /*End of Scope*/
/*30908*/     /*Scope*/ 67, /*->30976*/
/*30909*/       OPC_MoveChild, 1,
/*30911*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*30914*/       OPC_MoveChild, 0,
/*30916*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*30919*/       OPC_RecordMemRef,
/*30920*/       OPC_RecordNode, // #0 = 'ld' chained node
/*30921*/       OPC_CheckFoldableChainNode,
/*30922*/       OPC_RecordChild1, // #1 = $src2
/*30923*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*30925*/       OPC_CheckPredicate, 3, // Predicate_load
/*30927*/       OPC_CheckPredicate, 23, // Predicate_memop
/*30929*/       OPC_CheckType, MVT::v2i64,
/*30931*/       OPC_MoveParent,
/*30932*/       OPC_MoveParent,
/*30933*/       OPC_RecordChild2, // #2 = $src1
/*30934*/       OPC_Scope, 19, /*->30955*/ // 2 children in Scope
/*30936*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*30938*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*30941*/         OPC_EmitMergeInputChains1_0,
/*30942*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPMINSWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v8i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v8i16 329:iPTR, (bitconvert:v8i16 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>), VR128:v8i16:$src1) - Complexity = 33
                  // Dst: (VPMINSWrm:v8i16 VR128:v8i16:$src1, addr:iPTR:$src2)
/*30955*/       /*Scope*/ 19, /*->30975*/
/*30956*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*30958*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*30961*/         OPC_EmitMergeInputChains1_0,
/*30962*/         OPC_MorphNodeTo, TARGET_VAL(X86::PMINSWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v8i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v8i16 329:iPTR, (bitconvert:v8i16 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>), VR128:v8i16:$src1) - Complexity = 33
                  // Dst: (PMINSWrm:v8i16 VR128:v8i16:$src1, addr:iPTR:$src2)
/*30975*/       0, /*End of Scope*/
/*30976*/     /*Scope*/ 28, /*->31005*/
/*30977*/       OPC_RecordChild1, // #0 = $src1
/*30978*/       OPC_RecordChild2, // #1 = $src2
/*30979*/       OPC_Scope, 11, /*->30992*/ // 2 children in Scope
/*30981*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*30983*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPMINSWrr), 0,
                      1/*#VTs*/, MVT::v8i16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v8i16 329:iPTR, VR128:v8i16:$src1, VR128:v8i16:$src2) - Complexity = 8
                  // Dst: (VPMINSWrr:v8i16 VR128:v8i16:$src1, VR128:v8i16:$src2)
/*30992*/       /*Scope*/ 11, /*->31004*/
/*30993*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*30995*/         OPC_MorphNodeTo, TARGET_VAL(X86::PMINSWrr), 0,
                      1/*#VTs*/, MVT::v8i16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v8i16 329:iPTR, VR128:v8i16:$src1, VR128:v8i16:$src2) - Complexity = 8
                  // Dst: (PMINSWrr:v8i16 VR128:v8i16:$src1, VR128:v8i16:$src2)
/*31004*/       0, /*End of Scope*/
/*31005*/     0, /*End of Scope*/
/*31006*/   /*Scope*/ 43|128,1/*171*/, /*->31179*/
/*31008*/     OPC_CheckInteger, 72|128,2/*328*/, 
/*31011*/     OPC_MoveParent,
/*31012*/     OPC_Scope, 67, /*->31081*/ // 3 children in Scope
/*31014*/       OPC_RecordChild1, // #0 = $src1
/*31015*/       OPC_MoveChild, 2,
/*31017*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*31020*/       OPC_MoveChild, 0,
/*31022*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*31025*/       OPC_RecordMemRef,
/*31026*/       OPC_RecordNode, // #1 = 'ld' chained node
/*31027*/       OPC_CheckFoldableChainNode,
/*31028*/       OPC_RecordChild1, // #2 = $src2
/*31029*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*31031*/       OPC_CheckPredicate, 3, // Predicate_load
/*31033*/       OPC_CheckPredicate, 23, // Predicate_memop
/*31035*/       OPC_CheckType, MVT::v2i64,
/*31037*/       OPC_MoveParent,
/*31038*/       OPC_MoveParent,
/*31039*/       OPC_Scope, 19, /*->31060*/ // 2 children in Scope
/*31041*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*31043*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*31046*/         OPC_EmitMergeInputChains1_1,
/*31047*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPMAXUBrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v16i8 328:iPTR, VR128:v16i8:$src1, (bitconvert:v16i8 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 33
                  // Dst: (VPMAXUBrm:v16i8 VR128:v16i8:$src1, addr:iPTR:$src2)
/*31060*/       /*Scope*/ 19, /*->31080*/
/*31061*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*31063*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*31066*/         OPC_EmitMergeInputChains1_1,
/*31067*/         OPC_MorphNodeTo, TARGET_VAL(X86::PMAXUBrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v16i8 328:iPTR, VR128:v16i8:$src1, (bitconvert:v16i8 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 33
                  // Dst: (PMAXUBrm:v16i8 VR128:v16i8:$src1, addr:iPTR:$src2)
/*31080*/       0, /*End of Scope*/
/*31081*/     /*Scope*/ 67, /*->31149*/
/*31082*/       OPC_MoveChild, 1,
/*31084*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*31087*/       OPC_MoveChild, 0,
/*31089*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*31092*/       OPC_RecordMemRef,
/*31093*/       OPC_RecordNode, // #0 = 'ld' chained node
/*31094*/       OPC_CheckFoldableChainNode,
/*31095*/       OPC_RecordChild1, // #1 = $src2
/*31096*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*31098*/       OPC_CheckPredicate, 3, // Predicate_load
/*31100*/       OPC_CheckPredicate, 23, // Predicate_memop
/*31102*/       OPC_CheckType, MVT::v2i64,
/*31104*/       OPC_MoveParent,
/*31105*/       OPC_MoveParent,
/*31106*/       OPC_RecordChild2, // #2 = $src1
/*31107*/       OPC_Scope, 19, /*->31128*/ // 2 children in Scope
/*31109*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*31111*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*31114*/         OPC_EmitMergeInputChains1_0,
/*31115*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPMAXUBrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v16i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v16i8 328:iPTR, (bitconvert:v16i8 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>), VR128:v16i8:$src1) - Complexity = 33
                  // Dst: (VPMAXUBrm:v16i8 VR128:v16i8:$src1, addr:iPTR:$src2)
/*31128*/       /*Scope*/ 19, /*->31148*/
/*31129*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*31131*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*31134*/         OPC_EmitMergeInputChains1_0,
/*31135*/         OPC_MorphNodeTo, TARGET_VAL(X86::PMAXUBrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v16i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v16i8 328:iPTR, (bitconvert:v16i8 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>), VR128:v16i8:$src1) - Complexity = 33
                  // Dst: (PMAXUBrm:v16i8 VR128:v16i8:$src1, addr:iPTR:$src2)
/*31148*/       0, /*End of Scope*/
/*31149*/     /*Scope*/ 28, /*->31178*/
/*31150*/       OPC_RecordChild1, // #0 = $src1
/*31151*/       OPC_RecordChild2, // #1 = $src2
/*31152*/       OPC_Scope, 11, /*->31165*/ // 2 children in Scope
/*31154*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*31156*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPMAXUBrr), 0,
                      1/*#VTs*/, MVT::v16i8, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v16i8 328:iPTR, VR128:v16i8:$src1, VR128:v16i8:$src2) - Complexity = 8
                  // Dst: (VPMAXUBrr:v16i8 VR128:v16i8:$src1, VR128:v16i8:$src2)
/*31165*/       /*Scope*/ 11, /*->31177*/
/*31166*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*31168*/         OPC_MorphNodeTo, TARGET_VAL(X86::PMAXUBrr), 0,
                      1/*#VTs*/, MVT::v16i8, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v16i8 328:iPTR, VR128:v16i8:$src1, VR128:v16i8:$src2) - Complexity = 8
                  // Dst: (PMAXUBrr:v16i8 VR128:v16i8:$src1, VR128:v16i8:$src2)
/*31177*/       0, /*End of Scope*/
/*31178*/     0, /*End of Scope*/
/*31179*/   /*Scope*/ 43|128,1/*171*/, /*->31352*/
/*31181*/     OPC_CheckInteger, 71|128,2/*327*/, 
/*31184*/     OPC_MoveParent,
/*31185*/     OPC_Scope, 67, /*->31254*/ // 3 children in Scope
/*31187*/       OPC_RecordChild1, // #0 = $src1
/*31188*/       OPC_MoveChild, 2,
/*31190*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*31193*/       OPC_MoveChild, 0,
/*31195*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*31198*/       OPC_RecordMemRef,
/*31199*/       OPC_RecordNode, // #1 = 'ld' chained node
/*31200*/       OPC_CheckFoldableChainNode,
/*31201*/       OPC_RecordChild1, // #2 = $src2
/*31202*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*31204*/       OPC_CheckPredicate, 3, // Predicate_load
/*31206*/       OPC_CheckPredicate, 23, // Predicate_memop
/*31208*/       OPC_CheckType, MVT::v2i64,
/*31210*/       OPC_MoveParent,
/*31211*/       OPC_MoveParent,
/*31212*/       OPC_Scope, 19, /*->31233*/ // 2 children in Scope
/*31214*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*31216*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*31219*/         OPC_EmitMergeInputChains1_1,
/*31220*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPMAXSWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v8i16 327:iPTR, VR128:v8i16:$src1, (bitconvert:v8i16 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 33
                  // Dst: (VPMAXSWrm:v8i16 VR128:v8i16:$src1, addr:iPTR:$src2)
/*31233*/       /*Scope*/ 19, /*->31253*/
/*31234*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*31236*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*31239*/         OPC_EmitMergeInputChains1_1,
/*31240*/         OPC_MorphNodeTo, TARGET_VAL(X86::PMAXSWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v8i16 327:iPTR, VR128:v8i16:$src1, (bitconvert:v8i16 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 33
                  // Dst: (PMAXSWrm:v8i16 VR128:v8i16:$src1, addr:iPTR:$src2)
/*31253*/       0, /*End of Scope*/
/*31254*/     /*Scope*/ 67, /*->31322*/
/*31255*/       OPC_MoveChild, 1,
/*31257*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*31260*/       OPC_MoveChild, 0,
/*31262*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*31265*/       OPC_RecordMemRef,
/*31266*/       OPC_RecordNode, // #0 = 'ld' chained node
/*31267*/       OPC_CheckFoldableChainNode,
/*31268*/       OPC_RecordChild1, // #1 = $src2
/*31269*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*31271*/       OPC_CheckPredicate, 3, // Predicate_load
/*31273*/       OPC_CheckPredicate, 23, // Predicate_memop
/*31275*/       OPC_CheckType, MVT::v2i64,
/*31277*/       OPC_MoveParent,
/*31278*/       OPC_MoveParent,
/*31279*/       OPC_RecordChild2, // #2 = $src1
/*31280*/       OPC_Scope, 19, /*->31301*/ // 2 children in Scope
/*31282*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*31284*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*31287*/         OPC_EmitMergeInputChains1_0,
/*31288*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPMAXSWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v8i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v8i16 327:iPTR, (bitconvert:v8i16 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>), VR128:v8i16:$src1) - Complexity = 33
                  // Dst: (VPMAXSWrm:v8i16 VR128:v8i16:$src1, addr:iPTR:$src2)
/*31301*/       /*Scope*/ 19, /*->31321*/
/*31302*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*31304*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*31307*/         OPC_EmitMergeInputChains1_0,
/*31308*/         OPC_MorphNodeTo, TARGET_VAL(X86::PMAXSWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v8i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v8i16 327:iPTR, (bitconvert:v8i16 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>), VR128:v8i16:$src1) - Complexity = 33
                  // Dst: (PMAXSWrm:v8i16 VR128:v8i16:$src1, addr:iPTR:$src2)
/*31321*/       0, /*End of Scope*/
/*31322*/     /*Scope*/ 28, /*->31351*/
/*31323*/       OPC_RecordChild1, // #0 = $src1
/*31324*/       OPC_RecordChild2, // #1 = $src2
/*31325*/       OPC_Scope, 11, /*->31338*/ // 2 children in Scope
/*31327*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*31329*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPMAXSWrr), 0,
                      1/*#VTs*/, MVT::v8i16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v8i16 327:iPTR, VR128:v8i16:$src1, VR128:v8i16:$src2) - Complexity = 8
                  // Dst: (VPMAXSWrr:v8i16 VR128:v8i16:$src1, VR128:v8i16:$src2)
/*31338*/       /*Scope*/ 11, /*->31350*/
/*31339*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*31341*/         OPC_MorphNodeTo, TARGET_VAL(X86::PMAXSWrr), 0,
                      1/*#VTs*/, MVT::v8i16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v8i16 327:iPTR, VR128:v8i16:$src1, VR128:v8i16:$src2) - Complexity = 8
                  // Dst: (PMAXSWrr:v8i16 VR128:v8i16:$src1, VR128:v8i16:$src2)
/*31350*/       0, /*End of Scope*/
/*31351*/     0, /*End of Scope*/
/*31352*/   /*Scope*/ 43|128,1/*171*/, /*->31525*/
/*31354*/     OPC_CheckInteger, 79|128,2/*335*/, 
/*31357*/     OPC_MoveParent,
/*31358*/     OPC_Scope, 67, /*->31427*/ // 3 children in Scope
/*31360*/       OPC_RecordChild1, // #0 = $src1
/*31361*/       OPC_MoveChild, 2,
/*31363*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*31366*/       OPC_MoveChild, 0,
/*31368*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*31371*/       OPC_RecordMemRef,
/*31372*/       OPC_RecordNode, // #1 = 'ld' chained node
/*31373*/       OPC_CheckFoldableChainNode,
/*31374*/       OPC_RecordChild1, // #2 = $src2
/*31375*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*31377*/       OPC_CheckPredicate, 3, // Predicate_load
/*31379*/       OPC_CheckPredicate, 23, // Predicate_memop
/*31381*/       OPC_CheckType, MVT::v2i64,
/*31383*/       OPC_MoveParent,
/*31384*/       OPC_MoveParent,
/*31385*/       OPC_Scope, 19, /*->31406*/ // 2 children in Scope
/*31387*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*31389*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*31392*/         OPC_EmitMergeInputChains1_1,
/*31393*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPSADBWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v2i64 335:iPTR, VR128:v16i8:$src1, (bitconvert:v16i8 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 33
                  // Dst: (VPSADBWrm:v2i64 VR128:v16i8:$src1, addr:iPTR:$src2)
/*31406*/       /*Scope*/ 19, /*->31426*/
/*31407*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*31409*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*31412*/         OPC_EmitMergeInputChains1_1,
/*31413*/         OPC_MorphNodeTo, TARGET_VAL(X86::PSADBWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v2i64 335:iPTR, VR128:v16i8:$src1, (bitconvert:v16i8 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 33
                  // Dst: (PSADBWrm:v2i64 VR128:v16i8:$src1, addr:iPTR:$src2)
/*31426*/       0, /*End of Scope*/
/*31427*/     /*Scope*/ 67, /*->31495*/
/*31428*/       OPC_MoveChild, 1,
/*31430*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*31433*/       OPC_MoveChild, 0,
/*31435*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*31438*/       OPC_RecordMemRef,
/*31439*/       OPC_RecordNode, // #0 = 'ld' chained node
/*31440*/       OPC_CheckFoldableChainNode,
/*31441*/       OPC_RecordChild1, // #1 = $src2
/*31442*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*31444*/       OPC_CheckPredicate, 3, // Predicate_load
/*31446*/       OPC_CheckPredicate, 23, // Predicate_memop
/*31448*/       OPC_CheckType, MVT::v2i64,
/*31450*/       OPC_MoveParent,
/*31451*/       OPC_MoveParent,
/*31452*/       OPC_RecordChild2, // #2 = $src1
/*31453*/       OPC_Scope, 19, /*->31474*/ // 2 children in Scope
/*31455*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*31457*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*31460*/         OPC_EmitMergeInputChains1_0,
/*31461*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPSADBWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v2i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v2i64 335:iPTR, (bitconvert:v16i8 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>), VR128:v16i8:$src1) - Complexity = 33
                  // Dst: (VPSADBWrm:v2i64 VR128:v16i8:$src1, addr:iPTR:$src2)
/*31474*/       /*Scope*/ 19, /*->31494*/
/*31475*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*31477*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*31480*/         OPC_EmitMergeInputChains1_0,
/*31481*/         OPC_MorphNodeTo, TARGET_VAL(X86::PSADBWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v2i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v2i64 335:iPTR, (bitconvert:v16i8 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>), VR128:v16i8:$src1) - Complexity = 33
                  // Dst: (PSADBWrm:v2i64 VR128:v16i8:$src1, addr:iPTR:$src2)
/*31494*/       0, /*End of Scope*/
/*31495*/     /*Scope*/ 28, /*->31524*/
/*31496*/       OPC_RecordChild1, // #0 = $src1
/*31497*/       OPC_RecordChild2, // #1 = $src2
/*31498*/       OPC_Scope, 11, /*->31511*/ // 2 children in Scope
/*31500*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*31502*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPSADBWrr), 0,
                      1/*#VTs*/, MVT::v2i64, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v2i64 335:iPTR, VR128:v16i8:$src1, VR128:v16i8:$src2) - Complexity = 8
                  // Dst: (VPSADBWrr:v2i64 VR128:v16i8:$src1, VR128:v16i8:$src2)
/*31511*/       /*Scope*/ 11, /*->31523*/
/*31512*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*31514*/         OPC_MorphNodeTo, TARGET_VAL(X86::PSADBWrr), 0,
                      1/*#VTs*/, MVT::v2i64, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v2i64 335:iPTR, VR128:v16i8:$src1, VR128:v16i8:$src2) - Complexity = 8
                  // Dst: (PSADBWrr:v2i64 VR128:v16i8:$src1, VR128:v16i8:$src2)
/*31523*/       0, /*End of Scope*/
/*31524*/     0, /*End of Scope*/
/*31525*/   /*Scope*/ 102, /*->31628*/
/*31526*/     OPC_CheckInteger, 84|128,2/*340*/, 
/*31529*/     OPC_MoveParent,
/*31530*/     OPC_RecordChild1, // #0 = $src1
/*31531*/     OPC_Scope, 66, /*->31599*/ // 2 children in Scope
/*31533*/       OPC_MoveChild, 2,
/*31535*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*31538*/       OPC_MoveChild, 0,
/*31540*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*31543*/       OPC_RecordMemRef,
/*31544*/       OPC_RecordNode, // #1 = 'ld' chained node
/*31545*/       OPC_CheckFoldableChainNode,
/*31546*/       OPC_RecordChild1, // #2 = $src2
/*31547*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*31549*/       OPC_CheckPredicate, 3, // Predicate_load
/*31551*/       OPC_CheckPredicate, 23, // Predicate_memop
/*31553*/       OPC_CheckType, MVT::v2i64,
/*31555*/       OPC_MoveParent,
/*31556*/       OPC_MoveParent,
/*31557*/       OPC_Scope, 19, /*->31578*/ // 2 children in Scope
/*31559*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*31561*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*31564*/         OPC_EmitMergeInputChains1_1,
/*31565*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPSLLWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v8i16 340:iPTR, VR128:v8i16:$src1, (bitconvert:v8i16 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 33
                  // Dst: (VPSLLWrm:v8i16 VR128:v8i16:$src1, addr:iPTR:$src2)
/*31578*/       /*Scope*/ 19, /*->31598*/
/*31579*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*31581*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*31584*/         OPC_EmitMergeInputChains1_1,
/*31585*/         OPC_MorphNodeTo, TARGET_VAL(X86::PSLLWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v8i16 340:iPTR, VR128:v8i16:$src1, (bitconvert:v8i16 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 33
                  // Dst: (PSLLWrm:v8i16 VR128:v8i16:$src1, addr:iPTR:$src2)
/*31598*/       0, /*End of Scope*/
/*31599*/     /*Scope*/ 27, /*->31627*/
/*31600*/       OPC_RecordChild2, // #1 = $src2
/*31601*/       OPC_Scope, 11, /*->31614*/ // 2 children in Scope
/*31603*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*31605*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPSLLWrr), 0,
                      1/*#VTs*/, MVT::v8i16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v8i16 340:iPTR, VR128:v8i16:$src1, VR128:v8i16:$src2) - Complexity = 8
                  // Dst: (VPSLLWrr:v8i16 VR128:v8i16:$src1, VR128:v8i16:$src2)
/*31614*/       /*Scope*/ 11, /*->31626*/
/*31615*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*31617*/         OPC_MorphNodeTo, TARGET_VAL(X86::PSLLWrr), 0,
                      1/*#VTs*/, MVT::v8i16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v8i16 340:iPTR, VR128:v8i16:$src1, VR128:v8i16:$src2) - Complexity = 8
                  // Dst: (PSLLWrr:v8i16 VR128:v8i16:$src1, VR128:v8i16:$src2)
/*31626*/       0, /*End of Scope*/
/*31627*/     0, /*End of Scope*/
/*31628*/   /*Scope*/ 102, /*->31731*/
/*31629*/     OPC_CheckInteger, 80|128,2/*336*/, 
/*31632*/     OPC_MoveParent,
/*31633*/     OPC_RecordChild1, // #0 = $src1
/*31634*/     OPC_Scope, 66, /*->31702*/ // 2 children in Scope
/*31636*/       OPC_MoveChild, 2,
/*31638*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*31641*/       OPC_MoveChild, 0,
/*31643*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*31646*/       OPC_RecordMemRef,
/*31647*/       OPC_RecordNode, // #1 = 'ld' chained node
/*31648*/       OPC_CheckFoldableChainNode,
/*31649*/       OPC_RecordChild1, // #2 = $src2
/*31650*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*31652*/       OPC_CheckPredicate, 3, // Predicate_load
/*31654*/       OPC_CheckPredicate, 23, // Predicate_memop
/*31656*/       OPC_CheckType, MVT::v2i64,
/*31658*/       OPC_MoveParent,
/*31659*/       OPC_MoveParent,
/*31660*/       OPC_Scope, 19, /*->31681*/ // 2 children in Scope
/*31662*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*31664*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*31667*/         OPC_EmitMergeInputChains1_1,
/*31668*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPSLLDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v4i32 336:iPTR, VR128:v4i32:$src1, (bitconvert:v4i32 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 33
                  // Dst: (VPSLLDrm:v4i32 VR128:v4i32:$src1, addr:iPTR:$src2)
/*31681*/       /*Scope*/ 19, /*->31701*/
/*31682*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*31684*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*31687*/         OPC_EmitMergeInputChains1_1,
/*31688*/         OPC_MorphNodeTo, TARGET_VAL(X86::PSLLDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v4i32 336:iPTR, VR128:v4i32:$src1, (bitconvert:v4i32 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 33
                  // Dst: (PSLLDrm:v4i32 VR128:v4i32:$src1, addr:iPTR:$src2)
/*31701*/       0, /*End of Scope*/
/*31702*/     /*Scope*/ 27, /*->31730*/
/*31703*/       OPC_RecordChild2, // #1 = $src2
/*31704*/       OPC_Scope, 11, /*->31717*/ // 2 children in Scope
/*31706*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*31708*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPSLLDrr), 0,
                      1/*#VTs*/, MVT::v4i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v4i32 336:iPTR, VR128:v4i32:$src1, VR128:v4i32:$src2) - Complexity = 8
                  // Dst: (VPSLLDrr:v4i32 VR128:v4i32:$src1, VR128:v4i32:$src2)
/*31717*/       /*Scope*/ 11, /*->31729*/
/*31718*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*31720*/         OPC_MorphNodeTo, TARGET_VAL(X86::PSLLDrr), 0,
                      1/*#VTs*/, MVT::v4i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v4i32 336:iPTR, VR128:v4i32:$src1, VR128:v4i32:$src2) - Complexity = 8
                  // Dst: (PSLLDrr:v4i32 VR128:v4i32:$src1, VR128:v4i32:$src2)
/*31729*/       0, /*End of Scope*/
/*31730*/     0, /*End of Scope*/
/*31731*/   /*Scope*/ 102, /*->31834*/
/*31732*/     OPC_CheckInteger, 96|128,2/*352*/, 
/*31735*/     OPC_MoveParent,
/*31736*/     OPC_RecordChild1, // #0 = $src1
/*31737*/     OPC_Scope, 66, /*->31805*/ // 2 children in Scope
/*31739*/       OPC_MoveChild, 2,
/*31741*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*31744*/       OPC_MoveChild, 0,
/*31746*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*31749*/       OPC_RecordMemRef,
/*31750*/       OPC_RecordNode, // #1 = 'ld' chained node
/*31751*/       OPC_CheckFoldableChainNode,
/*31752*/       OPC_RecordChild1, // #2 = $src2
/*31753*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*31755*/       OPC_CheckPredicate, 3, // Predicate_load
/*31757*/       OPC_CheckPredicate, 23, // Predicate_memop
/*31759*/       OPC_CheckType, MVT::v2i64,
/*31761*/       OPC_MoveParent,
/*31762*/       OPC_MoveParent,
/*31763*/       OPC_Scope, 19, /*->31784*/ // 2 children in Scope
/*31765*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*31767*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*31770*/         OPC_EmitMergeInputChains1_1,
/*31771*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPSRLWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v8i16 352:iPTR, VR128:v8i16:$src1, (bitconvert:v8i16 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 33
                  // Dst: (VPSRLWrm:v8i16 VR128:v8i16:$src1, addr:iPTR:$src2)
/*31784*/       /*Scope*/ 19, /*->31804*/
/*31785*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*31787*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*31790*/         OPC_EmitMergeInputChains1_1,
/*31791*/         OPC_MorphNodeTo, TARGET_VAL(X86::PSRLWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v8i16 352:iPTR, VR128:v8i16:$src1, (bitconvert:v8i16 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 33
                  // Dst: (PSRLWrm:v8i16 VR128:v8i16:$src1, addr:iPTR:$src2)
/*31804*/       0, /*End of Scope*/
/*31805*/     /*Scope*/ 27, /*->31833*/
/*31806*/       OPC_RecordChild2, // #1 = $src2
/*31807*/       OPC_Scope, 11, /*->31820*/ // 2 children in Scope
/*31809*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*31811*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPSRLWrr), 0,
                      1/*#VTs*/, MVT::v8i16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v8i16 352:iPTR, VR128:v8i16:$src1, VR128:v8i16:$src2) - Complexity = 8
                  // Dst: (VPSRLWrr:v8i16 VR128:v8i16:$src1, VR128:v8i16:$src2)
/*31820*/       /*Scope*/ 11, /*->31832*/
/*31821*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*31823*/         OPC_MorphNodeTo, TARGET_VAL(X86::PSRLWrr), 0,
                      1/*#VTs*/, MVT::v8i16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v8i16 352:iPTR, VR128:v8i16:$src1, VR128:v8i16:$src2) - Complexity = 8
                  // Dst: (PSRLWrr:v8i16 VR128:v8i16:$src1, VR128:v8i16:$src2)
/*31832*/       0, /*End of Scope*/
/*31833*/     0, /*End of Scope*/
/*31834*/   /*Scope*/ 102, /*->31937*/
/*31835*/     OPC_CheckInteger, 92|128,2/*348*/, 
/*31838*/     OPC_MoveParent,
/*31839*/     OPC_RecordChild1, // #0 = $src1
/*31840*/     OPC_Scope, 66, /*->31908*/ // 2 children in Scope
/*31842*/       OPC_MoveChild, 2,
/*31844*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*31847*/       OPC_MoveChild, 0,
/*31849*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*31852*/       OPC_RecordMemRef,
/*31853*/       OPC_RecordNode, // #1 = 'ld' chained node
/*31854*/       OPC_CheckFoldableChainNode,
/*31855*/       OPC_RecordChild1, // #2 = $src2
/*31856*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*31858*/       OPC_CheckPredicate, 3, // Predicate_load
/*31860*/       OPC_CheckPredicate, 23, // Predicate_memop
/*31862*/       OPC_CheckType, MVT::v2i64,
/*31864*/       OPC_MoveParent,
/*31865*/       OPC_MoveParent,
/*31866*/       OPC_Scope, 19, /*->31887*/ // 2 children in Scope
/*31868*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*31870*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*31873*/         OPC_EmitMergeInputChains1_1,
/*31874*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPSRLDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v4i32 348:iPTR, VR128:v4i32:$src1, (bitconvert:v4i32 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 33
                  // Dst: (VPSRLDrm:v4i32 VR128:v4i32:$src1, addr:iPTR:$src2)
/*31887*/       /*Scope*/ 19, /*->31907*/
/*31888*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*31890*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*31893*/         OPC_EmitMergeInputChains1_1,
/*31894*/         OPC_MorphNodeTo, TARGET_VAL(X86::PSRLDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v4i32 348:iPTR, VR128:v4i32:$src1, (bitconvert:v4i32 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 33
                  // Dst: (PSRLDrm:v4i32 VR128:v4i32:$src1, addr:iPTR:$src2)
/*31907*/       0, /*End of Scope*/
/*31908*/     /*Scope*/ 27, /*->31936*/
/*31909*/       OPC_RecordChild2, // #1 = $src2
/*31910*/       OPC_Scope, 11, /*->31923*/ // 2 children in Scope
/*31912*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*31914*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPSRLDrr), 0,
                      1/*#VTs*/, MVT::v4i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v4i32 348:iPTR, VR128:v4i32:$src1, VR128:v4i32:$src2) - Complexity = 8
                  // Dst: (VPSRLDrr:v4i32 VR128:v4i32:$src1, VR128:v4i32:$src2)
/*31923*/       /*Scope*/ 11, /*->31935*/
/*31924*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*31926*/         OPC_MorphNodeTo, TARGET_VAL(X86::PSRLDrr), 0,
                      1/*#VTs*/, MVT::v4i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v4i32 348:iPTR, VR128:v4i32:$src1, VR128:v4i32:$src2) - Complexity = 8
                  // Dst: (PSRLDrr:v4i32 VR128:v4i32:$src1, VR128:v4i32:$src2)
/*31935*/       0, /*End of Scope*/
/*31936*/     0, /*End of Scope*/
/*31937*/   /*Scope*/ 102, /*->32040*/
/*31938*/     OPC_CheckInteger, 89|128,2/*345*/, 
/*31941*/     OPC_MoveParent,
/*31942*/     OPC_RecordChild1, // #0 = $src1
/*31943*/     OPC_Scope, 66, /*->32011*/ // 2 children in Scope
/*31945*/       OPC_MoveChild, 2,
/*31947*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*31950*/       OPC_MoveChild, 0,
/*31952*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*31955*/       OPC_RecordMemRef,
/*31956*/       OPC_RecordNode, // #1 = 'ld' chained node
/*31957*/       OPC_CheckFoldableChainNode,
/*31958*/       OPC_RecordChild1, // #2 = $src2
/*31959*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*31961*/       OPC_CheckPredicate, 3, // Predicate_load
/*31963*/       OPC_CheckPredicate, 23, // Predicate_memop
/*31965*/       OPC_CheckType, MVT::v2i64,
/*31967*/       OPC_MoveParent,
/*31968*/       OPC_MoveParent,
/*31969*/       OPC_Scope, 19, /*->31990*/ // 2 children in Scope
/*31971*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*31973*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*31976*/         OPC_EmitMergeInputChains1_1,
/*31977*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPSRAWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v8i16 345:iPTR, VR128:v8i16:$src1, (bitconvert:v8i16 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 33
                  // Dst: (VPSRAWrm:v8i16 VR128:v8i16:$src1, addr:iPTR:$src2)
/*31990*/       /*Scope*/ 19, /*->32010*/
/*31991*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*31993*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*31996*/         OPC_EmitMergeInputChains1_1,
/*31997*/         OPC_MorphNodeTo, TARGET_VAL(X86::PSRAWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v8i16 345:iPTR, VR128:v8i16:$src1, (bitconvert:v8i16 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 33
                  // Dst: (PSRAWrm:v8i16 VR128:v8i16:$src1, addr:iPTR:$src2)
/*32010*/       0, /*End of Scope*/
/*32011*/     /*Scope*/ 27, /*->32039*/
/*32012*/       OPC_RecordChild2, // #1 = $src2
/*32013*/       OPC_Scope, 11, /*->32026*/ // 2 children in Scope
/*32015*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*32017*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPSRAWrr), 0,
                      1/*#VTs*/, MVT::v8i16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v8i16 345:iPTR, VR128:v8i16:$src1, VR128:v8i16:$src2) - Complexity = 8
                  // Dst: (VPSRAWrr:v8i16 VR128:v8i16:$src1, VR128:v8i16:$src2)
/*32026*/       /*Scope*/ 11, /*->32038*/
/*32027*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*32029*/         OPC_MorphNodeTo, TARGET_VAL(X86::PSRAWrr), 0,
                      1/*#VTs*/, MVT::v8i16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v8i16 345:iPTR, VR128:v8i16:$src1, VR128:v8i16:$src2) - Complexity = 8
                  // Dst: (PSRAWrr:v8i16 VR128:v8i16:$src1, VR128:v8i16:$src2)
/*32038*/       0, /*End of Scope*/
/*32039*/     0, /*End of Scope*/
/*32040*/   /*Scope*/ 102, /*->32143*/
/*32041*/     OPC_CheckInteger, 88|128,2/*344*/, 
/*32044*/     OPC_MoveParent,
/*32045*/     OPC_RecordChild1, // #0 = $src1
/*32046*/     OPC_Scope, 66, /*->32114*/ // 2 children in Scope
/*32048*/       OPC_MoveChild, 2,
/*32050*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*32053*/       OPC_MoveChild, 0,
/*32055*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*32058*/       OPC_RecordMemRef,
/*32059*/       OPC_RecordNode, // #1 = 'ld' chained node
/*32060*/       OPC_CheckFoldableChainNode,
/*32061*/       OPC_RecordChild1, // #2 = $src2
/*32062*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*32064*/       OPC_CheckPredicate, 3, // Predicate_load
/*32066*/       OPC_CheckPredicate, 23, // Predicate_memop
/*32068*/       OPC_CheckType, MVT::v2i64,
/*32070*/       OPC_MoveParent,
/*32071*/       OPC_MoveParent,
/*32072*/       OPC_Scope, 19, /*->32093*/ // 2 children in Scope
/*32074*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*32076*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*32079*/         OPC_EmitMergeInputChains1_1,
/*32080*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPSRADrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v4i32 344:iPTR, VR128:v4i32:$src1, (bitconvert:v4i32 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 33
                  // Dst: (VPSRADrm:v4i32 VR128:v4i32:$src1, addr:iPTR:$src2)
/*32093*/       /*Scope*/ 19, /*->32113*/
/*32094*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*32096*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*32099*/         OPC_EmitMergeInputChains1_1,
/*32100*/         OPC_MorphNodeTo, TARGET_VAL(X86::PSRADrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v4i32 344:iPTR, VR128:v4i32:$src1, (bitconvert:v4i32 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 33
                  // Dst: (PSRADrm:v4i32 VR128:v4i32:$src1, addr:iPTR:$src2)
/*32113*/       0, /*End of Scope*/
/*32114*/     /*Scope*/ 27, /*->32142*/
/*32115*/       OPC_RecordChild2, // #1 = $src2
/*32116*/       OPC_Scope, 11, /*->32129*/ // 2 children in Scope
/*32118*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*32120*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPSRADrr), 0,
                      1/*#VTs*/, MVT::v4i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v4i32 344:iPTR, VR128:v4i32:$src1, VR128:v4i32:$src2) - Complexity = 8
                  // Dst: (VPSRADrr:v4i32 VR128:v4i32:$src1, VR128:v4i32:$src2)
/*32129*/       /*Scope*/ 11, /*->32141*/
/*32130*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*32132*/         OPC_MorphNodeTo, TARGET_VAL(X86::PSRADrr), 0,
                      1/*#VTs*/, MVT::v4i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v4i32 344:iPTR, VR128:v4i32:$src1, VR128:v4i32:$src2) - Complexity = 8
                  // Dst: (PSRADrr:v4i32 VR128:v4i32:$src1, VR128:v4i32:$src2)
/*32141*/       0, /*End of Scope*/
/*32142*/     0, /*End of Scope*/
/*32143*/   /*Scope*/ 102, /*->32246*/
/*32144*/     OPC_CheckInteger, 64|128,2/*320*/, 
/*32147*/     OPC_MoveParent,
/*32148*/     OPC_RecordChild1, // #0 = $src1
/*32149*/     OPC_Scope, 66, /*->32217*/ // 2 children in Scope
/*32151*/       OPC_MoveChild, 2,
/*32153*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*32156*/       OPC_MoveChild, 0,
/*32158*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*32161*/       OPC_RecordMemRef,
/*32162*/       OPC_RecordNode, // #1 = 'ld' chained node
/*32163*/       OPC_CheckFoldableChainNode,
/*32164*/       OPC_RecordChild1, // #2 = $src2
/*32165*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*32167*/       OPC_CheckPredicate, 3, // Predicate_load
/*32169*/       OPC_CheckPredicate, 23, // Predicate_memop
/*32171*/       OPC_CheckType, MVT::v2i64,
/*32173*/       OPC_MoveParent,
/*32174*/       OPC_MoveParent,
/*32175*/       OPC_Scope, 19, /*->32196*/ // 2 children in Scope
/*32177*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*32179*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*32182*/         OPC_EmitMergeInputChains1_1,
/*32183*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPCMPEQBrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v16i8 320:iPTR, VR128:v16i8:$src1, (bitconvert:v16i8 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 33
                  // Dst: (VPCMPEQBrm:v16i8 VR128:v16i8:$src1, addr:iPTR:$src2)
/*32196*/       /*Scope*/ 19, /*->32216*/
/*32197*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*32199*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*32202*/         OPC_EmitMergeInputChains1_1,
/*32203*/         OPC_MorphNodeTo, TARGET_VAL(X86::PCMPEQBrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v16i8 320:iPTR, VR128:v16i8:$src1, (bitconvert:v16i8 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 33
                  // Dst: (PCMPEQBrm:v16i8 VR128:v16i8:$src1, addr:iPTR:$src2)
/*32216*/       0, /*End of Scope*/
/*32217*/     /*Scope*/ 27, /*->32245*/
/*32218*/       OPC_RecordChild2, // #1 = $src2
/*32219*/       OPC_Scope, 11, /*->32232*/ // 2 children in Scope
/*32221*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*32223*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPCMPEQBrr), 0,
                      1/*#VTs*/, MVT::v16i8, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v16i8 320:iPTR, VR128:v16i8:$src1, VR128:v16i8:$src2) - Complexity = 8
                  // Dst: (VPCMPEQBrr:v16i8 VR128:v16i8:$src1, VR128:v16i8:$src2)
/*32232*/       /*Scope*/ 11, /*->32244*/
/*32233*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*32235*/         OPC_MorphNodeTo, TARGET_VAL(X86::PCMPEQBrr), 0,
                      1/*#VTs*/, MVT::v16i8, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v16i8 320:iPTR, VR128:v16i8:$src1, VR128:v16i8:$src2) - Complexity = 8
                  // Dst: (PCMPEQBrr:v16i8 VR128:v16i8:$src1, VR128:v16i8:$src2)
/*32244*/       0, /*End of Scope*/
/*32245*/     0, /*End of Scope*/
/*32246*/   /*Scope*/ 102, /*->32349*/
/*32247*/     OPC_CheckInteger, 66|128,2/*322*/, 
/*32250*/     OPC_MoveParent,
/*32251*/     OPC_RecordChild1, // #0 = $src1
/*32252*/     OPC_Scope, 66, /*->32320*/ // 2 children in Scope
/*32254*/       OPC_MoveChild, 2,
/*32256*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*32259*/       OPC_MoveChild, 0,
/*32261*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*32264*/       OPC_RecordMemRef,
/*32265*/       OPC_RecordNode, // #1 = 'ld' chained node
/*32266*/       OPC_CheckFoldableChainNode,
/*32267*/       OPC_RecordChild1, // #2 = $src2
/*32268*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*32270*/       OPC_CheckPredicate, 3, // Predicate_load
/*32272*/       OPC_CheckPredicate, 23, // Predicate_memop
/*32274*/       OPC_CheckType, MVT::v2i64,
/*32276*/       OPC_MoveParent,
/*32277*/       OPC_MoveParent,
/*32278*/       OPC_Scope, 19, /*->32299*/ // 2 children in Scope
/*32280*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*32282*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*32285*/         OPC_EmitMergeInputChains1_1,
/*32286*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPCMPEQWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v8i16 322:iPTR, VR128:v8i16:$src1, (bitconvert:v8i16 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 33
                  // Dst: (VPCMPEQWrm:v8i16 VR128:v8i16:$src1, addr:iPTR:$src2)
/*32299*/       /*Scope*/ 19, /*->32319*/
/*32300*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*32302*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*32305*/         OPC_EmitMergeInputChains1_1,
/*32306*/         OPC_MorphNodeTo, TARGET_VAL(X86::PCMPEQWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v8i16 322:iPTR, VR128:v8i16:$src1, (bitconvert:v8i16 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 33
                  // Dst: (PCMPEQWrm:v8i16 VR128:v8i16:$src1, addr:iPTR:$src2)
/*32319*/       0, /*End of Scope*/
/*32320*/     /*Scope*/ 27, /*->32348*/
/*32321*/       OPC_RecordChild2, // #1 = $src2
/*32322*/       OPC_Scope, 11, /*->32335*/ // 2 children in Scope
/*32324*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*32326*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPCMPEQWrr), 0,
                      1/*#VTs*/, MVT::v8i16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v8i16 322:iPTR, VR128:v8i16:$src1, VR128:v8i16:$src2) - Complexity = 8
                  // Dst: (VPCMPEQWrr:v8i16 VR128:v8i16:$src1, VR128:v8i16:$src2)
/*32335*/       /*Scope*/ 11, /*->32347*/
/*32336*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*32338*/         OPC_MorphNodeTo, TARGET_VAL(X86::PCMPEQWrr), 0,
                      1/*#VTs*/, MVT::v8i16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v8i16 322:iPTR, VR128:v8i16:$src1, VR128:v8i16:$src2) - Complexity = 8
                  // Dst: (PCMPEQWrr:v8i16 VR128:v8i16:$src1, VR128:v8i16:$src2)
/*32347*/       0, /*End of Scope*/
/*32348*/     0, /*End of Scope*/
/*32349*/   /*Scope*/ 102, /*->32452*/
/*32350*/     OPC_CheckInteger, 65|128,2/*321*/, 
/*32353*/     OPC_MoveParent,
/*32354*/     OPC_RecordChild1, // #0 = $src1
/*32355*/     OPC_Scope, 66, /*->32423*/ // 2 children in Scope
/*32357*/       OPC_MoveChild, 2,
/*32359*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*32362*/       OPC_MoveChild, 0,
/*32364*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*32367*/       OPC_RecordMemRef,
/*32368*/       OPC_RecordNode, // #1 = 'ld' chained node
/*32369*/       OPC_CheckFoldableChainNode,
/*32370*/       OPC_RecordChild1, // #2 = $src2
/*32371*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*32373*/       OPC_CheckPredicate, 3, // Predicate_load
/*32375*/       OPC_CheckPredicate, 23, // Predicate_memop
/*32377*/       OPC_CheckType, MVT::v2i64,
/*32379*/       OPC_MoveParent,
/*32380*/       OPC_MoveParent,
/*32381*/       OPC_Scope, 19, /*->32402*/ // 2 children in Scope
/*32383*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*32385*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*32388*/         OPC_EmitMergeInputChains1_1,
/*32389*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPCMPEQDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v4i32 321:iPTR, VR128:v4i32:$src1, (bitconvert:v4i32 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 33
                  // Dst: (VPCMPEQDrm:v4i32 VR128:v4i32:$src1, addr:iPTR:$src2)
/*32402*/       /*Scope*/ 19, /*->32422*/
/*32403*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*32405*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*32408*/         OPC_EmitMergeInputChains1_1,
/*32409*/         OPC_MorphNodeTo, TARGET_VAL(X86::PCMPEQDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v4i32 321:iPTR, VR128:v4i32:$src1, (bitconvert:v4i32 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 33
                  // Dst: (PCMPEQDrm:v4i32 VR128:v4i32:$src1, addr:iPTR:$src2)
/*32422*/       0, /*End of Scope*/
/*32423*/     /*Scope*/ 27, /*->32451*/
/*32424*/       OPC_RecordChild2, // #1 = $src2
/*32425*/       OPC_Scope, 11, /*->32438*/ // 2 children in Scope
/*32427*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*32429*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPCMPEQDrr), 0,
                      1/*#VTs*/, MVT::v4i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v4i32 321:iPTR, VR128:v4i32:$src1, VR128:v4i32:$src2) - Complexity = 8
                  // Dst: (VPCMPEQDrr:v4i32 VR128:v4i32:$src1, VR128:v4i32:$src2)
/*32438*/       /*Scope*/ 11, /*->32450*/
/*32439*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*32441*/         OPC_MorphNodeTo, TARGET_VAL(X86::PCMPEQDrr), 0,
                      1/*#VTs*/, MVT::v4i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v4i32 321:iPTR, VR128:v4i32:$src1, VR128:v4i32:$src2) - Complexity = 8
                  // Dst: (PCMPEQDrr:v4i32 VR128:v4i32:$src1, VR128:v4i32:$src2)
/*32450*/       0, /*End of Scope*/
/*32451*/     0, /*End of Scope*/
/*32452*/   /*Scope*/ 102, /*->32555*/
/*32453*/     OPC_CheckInteger, 67|128,2/*323*/, 
/*32456*/     OPC_MoveParent,
/*32457*/     OPC_RecordChild1, // #0 = $src1
/*32458*/     OPC_Scope, 66, /*->32526*/ // 2 children in Scope
/*32460*/       OPC_MoveChild, 2,
/*32462*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*32465*/       OPC_MoveChild, 0,
/*32467*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*32470*/       OPC_RecordMemRef,
/*32471*/       OPC_RecordNode, // #1 = 'ld' chained node
/*32472*/       OPC_CheckFoldableChainNode,
/*32473*/       OPC_RecordChild1, // #2 = $src2
/*32474*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*32476*/       OPC_CheckPredicate, 3, // Predicate_load
/*32478*/       OPC_CheckPredicate, 23, // Predicate_memop
/*32480*/       OPC_CheckType, MVT::v2i64,
/*32482*/       OPC_MoveParent,
/*32483*/       OPC_MoveParent,
/*32484*/       OPC_Scope, 19, /*->32505*/ // 2 children in Scope
/*32486*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*32488*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*32491*/         OPC_EmitMergeInputChains1_1,
/*32492*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPCMPGTBrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v16i8 323:iPTR, VR128:v16i8:$src1, (bitconvert:v16i8 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 33
                  // Dst: (VPCMPGTBrm:v16i8 VR128:v16i8:$src1, addr:iPTR:$src2)
/*32505*/       /*Scope*/ 19, /*->32525*/
/*32506*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*32508*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*32511*/         OPC_EmitMergeInputChains1_1,
/*32512*/         OPC_MorphNodeTo, TARGET_VAL(X86::PCMPGTBrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v16i8 323:iPTR, VR128:v16i8:$src1, (bitconvert:v16i8 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 33
                  // Dst: (PCMPGTBrm:v16i8 VR128:v16i8:$src1, addr:iPTR:$src2)
/*32525*/       0, /*End of Scope*/
/*32526*/     /*Scope*/ 27, /*->32554*/
/*32527*/       OPC_RecordChild2, // #1 = $src2
/*32528*/       OPC_Scope, 11, /*->32541*/ // 2 children in Scope
/*32530*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*32532*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPCMPGTBrr), 0,
                      1/*#VTs*/, MVT::v16i8, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v16i8 323:iPTR, VR128:v16i8:$src1, VR128:v16i8:$src2) - Complexity = 8
                  // Dst: (VPCMPGTBrr:v16i8 VR128:v16i8:$src1, VR128:v16i8:$src2)
/*32541*/       /*Scope*/ 11, /*->32553*/
/*32542*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*32544*/         OPC_MorphNodeTo, TARGET_VAL(X86::PCMPGTBrr), 0,
                      1/*#VTs*/, MVT::v16i8, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v16i8 323:iPTR, VR128:v16i8:$src1, VR128:v16i8:$src2) - Complexity = 8
                  // Dst: (PCMPGTBrr:v16i8 VR128:v16i8:$src1, VR128:v16i8:$src2)
/*32553*/       0, /*End of Scope*/
/*32554*/     0, /*End of Scope*/
/*32555*/   /*Scope*/ 102, /*->32658*/
/*32556*/     OPC_CheckInteger, 69|128,2/*325*/, 
/*32559*/     OPC_MoveParent,
/*32560*/     OPC_RecordChild1, // #0 = $src1
/*32561*/     OPC_Scope, 66, /*->32629*/ // 2 children in Scope
/*32563*/       OPC_MoveChild, 2,
/*32565*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*32568*/       OPC_MoveChild, 0,
/*32570*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*32573*/       OPC_RecordMemRef,
/*32574*/       OPC_RecordNode, // #1 = 'ld' chained node
/*32575*/       OPC_CheckFoldableChainNode,
/*32576*/       OPC_RecordChild1, // #2 = $src2
/*32577*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*32579*/       OPC_CheckPredicate, 3, // Predicate_load
/*32581*/       OPC_CheckPredicate, 23, // Predicate_memop
/*32583*/       OPC_CheckType, MVT::v2i64,
/*32585*/       OPC_MoveParent,
/*32586*/       OPC_MoveParent,
/*32587*/       OPC_Scope, 19, /*->32608*/ // 2 children in Scope
/*32589*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*32591*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*32594*/         OPC_EmitMergeInputChains1_1,
/*32595*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPCMPGTWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v8i16 325:iPTR, VR128:v8i16:$src1, (bitconvert:v8i16 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 33
                  // Dst: (VPCMPGTWrm:v8i16 VR128:v8i16:$src1, addr:iPTR:$src2)
/*32608*/       /*Scope*/ 19, /*->32628*/
/*32609*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*32611*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*32614*/         OPC_EmitMergeInputChains1_1,
/*32615*/         OPC_MorphNodeTo, TARGET_VAL(X86::PCMPGTWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v8i16 325:iPTR, VR128:v8i16:$src1, (bitconvert:v8i16 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 33
                  // Dst: (PCMPGTWrm:v8i16 VR128:v8i16:$src1, addr:iPTR:$src2)
/*32628*/       0, /*End of Scope*/
/*32629*/     /*Scope*/ 27, /*->32657*/
/*32630*/       OPC_RecordChild2, // #1 = $src2
/*32631*/       OPC_Scope, 11, /*->32644*/ // 2 children in Scope
/*32633*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*32635*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPCMPGTWrr), 0,
                      1/*#VTs*/, MVT::v8i16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v8i16 325:iPTR, VR128:v8i16:$src1, VR128:v8i16:$src2) - Complexity = 8
                  // Dst: (VPCMPGTWrr:v8i16 VR128:v8i16:$src1, VR128:v8i16:$src2)
/*32644*/       /*Scope*/ 11, /*->32656*/
/*32645*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*32647*/         OPC_MorphNodeTo, TARGET_VAL(X86::PCMPGTWrr), 0,
                      1/*#VTs*/, MVT::v8i16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v8i16 325:iPTR, VR128:v8i16:$src1, VR128:v8i16:$src2) - Complexity = 8
                  // Dst: (PCMPGTWrr:v8i16 VR128:v8i16:$src1, VR128:v8i16:$src2)
/*32656*/       0, /*End of Scope*/
/*32657*/     0, /*End of Scope*/
/*32658*/   /*Scope*/ 102, /*->32761*/
/*32659*/     OPC_CheckInteger, 68|128,2/*324*/, 
/*32662*/     OPC_MoveParent,
/*32663*/     OPC_RecordChild1, // #0 = $src1
/*32664*/     OPC_Scope, 66, /*->32732*/ // 2 children in Scope
/*32666*/       OPC_MoveChild, 2,
/*32668*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*32671*/       OPC_MoveChild, 0,
/*32673*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*32676*/       OPC_RecordMemRef,
/*32677*/       OPC_RecordNode, // #1 = 'ld' chained node
/*32678*/       OPC_CheckFoldableChainNode,
/*32679*/       OPC_RecordChild1, // #2 = $src2
/*32680*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*32682*/       OPC_CheckPredicate, 3, // Predicate_load
/*32684*/       OPC_CheckPredicate, 23, // Predicate_memop
/*32686*/       OPC_CheckType, MVT::v2i64,
/*32688*/       OPC_MoveParent,
/*32689*/       OPC_MoveParent,
/*32690*/       OPC_Scope, 19, /*->32711*/ // 2 children in Scope
/*32692*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*32694*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*32697*/         OPC_EmitMergeInputChains1_1,
/*32698*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPCMPGTDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v4i32 324:iPTR, VR128:v4i32:$src1, (bitconvert:v4i32 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 33
                  // Dst: (VPCMPGTDrm:v4i32 VR128:v4i32:$src1, addr:iPTR:$src2)
/*32711*/       /*Scope*/ 19, /*->32731*/
/*32712*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*32714*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*32717*/         OPC_EmitMergeInputChains1_1,
/*32718*/         OPC_MorphNodeTo, TARGET_VAL(X86::PCMPGTDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v4i32 324:iPTR, VR128:v4i32:$src1, (bitconvert:v4i32 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 33
                  // Dst: (PCMPGTDrm:v4i32 VR128:v4i32:$src1, addr:iPTR:$src2)
/*32731*/       0, /*End of Scope*/
/*32732*/     /*Scope*/ 27, /*->32760*/
/*32733*/       OPC_RecordChild2, // #1 = $src2
/*32734*/       OPC_Scope, 11, /*->32747*/ // 2 children in Scope
/*32736*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*32738*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPCMPGTDrr), 0,
                      1/*#VTs*/, MVT::v4i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v4i32 324:iPTR, VR128:v4i32:$src1, VR128:v4i32:$src2) - Complexity = 8
                  // Dst: (VPCMPGTDrr:v4i32 VR128:v4i32:$src1, VR128:v4i32:$src2)
/*32747*/       /*Scope*/ 11, /*->32759*/
/*32748*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*32750*/         OPC_MorphNodeTo, TARGET_VAL(X86::PCMPGTDrr), 0,
                      1/*#VTs*/, MVT::v4i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v4i32 324:iPTR, VR128:v4i32:$src1, VR128:v4i32:$src2) - Complexity = 8
                  // Dst: (PCMPGTDrr:v4i32 VR128:v4i32:$src1, VR128:v4i32:$src2)
/*32759*/       0, /*End of Scope*/
/*32760*/     0, /*End of Scope*/
/*32761*/   /*Scope*/ 102, /*->32864*/
/*32762*/     OPC_CheckInteger, 56|128,2/*312*/, 
/*32765*/     OPC_MoveParent,
/*32766*/     OPC_RecordChild1, // #0 = $src1
/*32767*/     OPC_Scope, 66, /*->32835*/ // 2 children in Scope
/*32769*/       OPC_MoveChild, 2,
/*32771*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*32774*/       OPC_MoveChild, 0,
/*32776*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*32779*/       OPC_RecordMemRef,
/*32780*/       OPC_RecordNode, // #1 = 'ld' chained node
/*32781*/       OPC_CheckFoldableChainNode,
/*32782*/       OPC_RecordChild1, // #2 = $src2
/*32783*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*32785*/       OPC_CheckPredicate, 3, // Predicate_load
/*32787*/       OPC_CheckPredicate, 23, // Predicate_memop
/*32789*/       OPC_CheckType, MVT::v2i64,
/*32791*/       OPC_MoveParent,
/*32792*/       OPC_MoveParent,
/*32793*/       OPC_Scope, 19, /*->32814*/ // 2 children in Scope
/*32795*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*32797*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*32800*/         OPC_EmitMergeInputChains1_1,
/*32801*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPACKSSWBrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v16i8 312:iPTR, VR128:v8i16:$src1, (bitconvert:v8i16 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 33
                  // Dst: (VPACKSSWBrm:v16i8 VR128:v8i16:$src1, addr:iPTR:$src2)
/*32814*/       /*Scope*/ 19, /*->32834*/
/*32815*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*32817*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*32820*/         OPC_EmitMergeInputChains1_1,
/*32821*/         OPC_MorphNodeTo, TARGET_VAL(X86::PACKSSWBrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v16i8 312:iPTR, VR128:v8i16:$src1, (bitconvert:v8i16 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 33
                  // Dst: (PACKSSWBrm:v16i8 VR128:v8i16:$src1, addr:iPTR:$src2)
/*32834*/       0, /*End of Scope*/
/*32835*/     /*Scope*/ 27, /*->32863*/
/*32836*/       OPC_RecordChild2, // #1 = $src2
/*32837*/       OPC_Scope, 11, /*->32850*/ // 2 children in Scope
/*32839*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*32841*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPACKSSWBrr), 0,
                      1/*#VTs*/, MVT::v16i8, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v16i8 312:iPTR, VR128:v8i16:$src1, VR128:v8i16:$src2) - Complexity = 8
                  // Dst: (VPACKSSWBrr:v16i8 VR128:v8i16:$src1, VR128:v8i16:$src2)
/*32850*/       /*Scope*/ 11, /*->32862*/
/*32851*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*32853*/         OPC_MorphNodeTo, TARGET_VAL(X86::PACKSSWBrr), 0,
                      1/*#VTs*/, MVT::v16i8, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v16i8 312:iPTR, VR128:v8i16:$src1, VR128:v8i16:$src2) - Complexity = 8
                  // Dst: (PACKSSWBrr:v16i8 VR128:v8i16:$src1, VR128:v8i16:$src2)
/*32862*/       0, /*End of Scope*/
/*32863*/     0, /*End of Scope*/
/*32864*/   /*Scope*/ 102, /*->32967*/
/*32865*/     OPC_CheckInteger, 55|128,2/*311*/, 
/*32868*/     OPC_MoveParent,
/*32869*/     OPC_RecordChild1, // #0 = $src1
/*32870*/     OPC_Scope, 66, /*->32938*/ // 2 children in Scope
/*32872*/       OPC_MoveChild, 2,
/*32874*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*32877*/       OPC_MoveChild, 0,
/*32879*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*32882*/       OPC_RecordMemRef,
/*32883*/       OPC_RecordNode, // #1 = 'ld' chained node
/*32884*/       OPC_CheckFoldableChainNode,
/*32885*/       OPC_RecordChild1, // #2 = $src2
/*32886*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*32888*/       OPC_CheckPredicate, 3, // Predicate_load
/*32890*/       OPC_CheckPredicate, 23, // Predicate_memop
/*32892*/       OPC_CheckType, MVT::v2i64,
/*32894*/       OPC_MoveParent,
/*32895*/       OPC_MoveParent,
/*32896*/       OPC_Scope, 19, /*->32917*/ // 2 children in Scope
/*32898*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*32900*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*32903*/         OPC_EmitMergeInputChains1_1,
/*32904*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPACKSSDWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v8i16 311:iPTR, VR128:v4i32:$src1, (bitconvert:v4i32 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 33
                  // Dst: (VPACKSSDWrm:v8i16 VR128:v4i32:$src1, addr:iPTR:$src2)
/*32917*/       /*Scope*/ 19, /*->32937*/
/*32918*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*32920*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*32923*/         OPC_EmitMergeInputChains1_1,
/*32924*/         OPC_MorphNodeTo, TARGET_VAL(X86::PACKSSDWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v8i16 311:iPTR, VR128:v4i32:$src1, (bitconvert:v4i32 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 33
                  // Dst: (PACKSSDWrm:v8i16 VR128:v4i32:$src1, addr:iPTR:$src2)
/*32937*/       0, /*End of Scope*/
/*32938*/     /*Scope*/ 27, /*->32966*/
/*32939*/       OPC_RecordChild2, // #1 = $src2
/*32940*/       OPC_Scope, 11, /*->32953*/ // 2 children in Scope
/*32942*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*32944*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPACKSSDWrr), 0,
                      1/*#VTs*/, MVT::v8i16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v8i16 311:iPTR, VR128:v4i32:$src1, VR128:v4i32:$src2) - Complexity = 8
                  // Dst: (VPACKSSDWrr:v8i16 VR128:v4i32:$src1, VR128:v4i32:$src2)
/*32953*/       /*Scope*/ 11, /*->32965*/
/*32954*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*32956*/         OPC_MorphNodeTo, TARGET_VAL(X86::PACKSSDWrr), 0,
                      1/*#VTs*/, MVT::v8i16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v8i16 311:iPTR, VR128:v4i32:$src1, VR128:v4i32:$src2) - Complexity = 8
                  // Dst: (PACKSSDWrr:v8i16 VR128:v4i32:$src1, VR128:v4i32:$src2)
/*32965*/       0, /*End of Scope*/
/*32966*/     0, /*End of Scope*/
/*32967*/   /*Scope*/ 102, /*->33070*/
/*32968*/     OPC_CheckInteger, 57|128,2/*313*/, 
/*32971*/     OPC_MoveParent,
/*32972*/     OPC_RecordChild1, // #0 = $src1
/*32973*/     OPC_Scope, 66, /*->33041*/ // 2 children in Scope
/*32975*/       OPC_MoveChild, 2,
/*32977*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*32980*/       OPC_MoveChild, 0,
/*32982*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*32985*/       OPC_RecordMemRef,
/*32986*/       OPC_RecordNode, // #1 = 'ld' chained node
/*32987*/       OPC_CheckFoldableChainNode,
/*32988*/       OPC_RecordChild1, // #2 = $src2
/*32989*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*32991*/       OPC_CheckPredicate, 3, // Predicate_load
/*32993*/       OPC_CheckPredicate, 23, // Predicate_memop
/*32995*/       OPC_CheckType, MVT::v2i64,
/*32997*/       OPC_MoveParent,
/*32998*/       OPC_MoveParent,
/*32999*/       OPC_Scope, 19, /*->33020*/ // 2 children in Scope
/*33001*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*33003*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*33006*/         OPC_EmitMergeInputChains1_1,
/*33007*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPACKUSWBrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v16i8 313:iPTR, VR128:v8i16:$src1, (bitconvert:v8i16 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 33
                  // Dst: (VPACKUSWBrm:v16i8 VR128:v8i16:$src1, addr:iPTR:$src2)
/*33020*/       /*Scope*/ 19, /*->33040*/
/*33021*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*33023*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*33026*/         OPC_EmitMergeInputChains1_1,
/*33027*/         OPC_MorphNodeTo, TARGET_VAL(X86::PACKUSWBrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v16i8 313:iPTR, VR128:v8i16:$src1, (bitconvert:v8i16 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 33
                  // Dst: (PACKUSWBrm:v16i8 VR128:v8i16:$src1, addr:iPTR:$src2)
/*33040*/       0, /*End of Scope*/
/*33041*/     /*Scope*/ 27, /*->33069*/
/*33042*/       OPC_RecordChild2, // #1 = $src2
/*33043*/       OPC_Scope, 11, /*->33056*/ // 2 children in Scope
/*33045*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*33047*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPACKUSWBrr), 0,
                      1/*#VTs*/, MVT::v16i8, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v16i8 313:iPTR, VR128:v8i16:$src1, VR128:v8i16:$src2) - Complexity = 8
                  // Dst: (VPACKUSWBrr:v16i8 VR128:v8i16:$src1, VR128:v8i16:$src2)
/*33056*/       /*Scope*/ 11, /*->33068*/
/*33057*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*33059*/         OPC_MorphNodeTo, TARGET_VAL(X86::PACKUSWBrr), 0,
                      1/*#VTs*/, MVT::v16i8, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v16i8 313:iPTR, VR128:v8i16:$src1, VR128:v8i16:$src2) - Complexity = 8
                  // Dst: (PACKUSWBrr:v16i8 VR128:v8i16:$src1, VR128:v8i16:$src2)
/*33068*/       0, /*End of Scope*/
/*33069*/     0, /*End of Scope*/
/*33070*/   /*Scope*/ 102, /*->33173*/
/*33071*/     OPC_CheckInteger, 120|128,3/*504*/, 
/*33074*/     OPC_MoveParent,
/*33075*/     OPC_RecordChild1, // #0 = $src1
/*33076*/     OPC_Scope, 66, /*->33144*/ // 2 children in Scope
/*33078*/       OPC_MoveChild, 2,
/*33080*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*33083*/       OPC_MoveChild, 0,
/*33085*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*33088*/       OPC_RecordMemRef,
/*33089*/       OPC_RecordNode, // #1 = 'ld' chained node
/*33090*/       OPC_CheckFoldableChainNode,
/*33091*/       OPC_RecordChild1, // #2 = $src2
/*33092*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*33094*/       OPC_CheckPredicate, 3, // Predicate_load
/*33096*/       OPC_CheckPredicate, 23, // Predicate_memop
/*33098*/       OPC_CheckType, MVT::v16i8,
/*33100*/       OPC_MoveParent,
/*33101*/       OPC_MoveParent,
/*33102*/       OPC_Scope, 19, /*->33123*/ // 2 children in Scope
/*33104*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*33106*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*33109*/         OPC_EmitMergeInputChains1_1,
/*33110*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPHADDWrm128), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v8i16 504:iPTR, VR128:v8i16:$src1, (bitconvert:v8i16 (ld:v16i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 33
                  // Dst: (VPHADDWrm128:v8i16 VR128:v8i16:$src1, addr:iPTR:$src2)
/*33123*/       /*Scope*/ 19, /*->33143*/
/*33124*/         OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*33126*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*33129*/         OPC_EmitMergeInputChains1_1,
/*33130*/         OPC_MorphNodeTo, TARGET_VAL(X86::PHADDWrm128), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v8i16 504:iPTR, VR128:v8i16:$src1, (bitconvert:v8i16 (ld:v16i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 33
                  // Dst: (PHADDWrm128:v8i16 VR128:v8i16:$src1, addr:iPTR:$src2)
/*33143*/       0, /*End of Scope*/
/*33144*/     /*Scope*/ 27, /*->33172*/
/*33145*/       OPC_RecordChild2, // #1 = $src2
/*33146*/       OPC_Scope, 11, /*->33159*/ // 2 children in Scope
/*33148*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*33150*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPHADDWrr128), 0,
                      1/*#VTs*/, MVT::v8i16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v8i16 504:iPTR, VR128:v8i16:$src1, VR128:v8i16:$src2) - Complexity = 8
                  // Dst: (VPHADDWrr128:v8i16 VR128:v8i16:$src1, VR128:v8i16:$src2)
/*33159*/       /*Scope*/ 11, /*->33171*/
/*33160*/         OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*33162*/         OPC_MorphNodeTo, TARGET_VAL(X86::PHADDWrr128), 0,
                      1/*#VTs*/, MVT::v8i16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v8i16 504:iPTR, VR128:v8i16:$src1, VR128:v8i16:$src2) - Complexity = 8
                  // Dst: (PHADDWrr128:v8i16 VR128:v8i16:$src1, VR128:v8i16:$src2)
/*33171*/       0, /*End of Scope*/
/*33172*/     0, /*End of Scope*/
/*33173*/   /*Scope*/ 102, /*->33276*/
/*33174*/     OPC_CheckInteger, 116|128,3/*500*/, 
/*33177*/     OPC_MoveParent,
/*33178*/     OPC_RecordChild1, // #0 = $src1
/*33179*/     OPC_Scope, 66, /*->33247*/ // 2 children in Scope
/*33181*/       OPC_MoveChild, 2,
/*33183*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*33186*/       OPC_MoveChild, 0,
/*33188*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*33191*/       OPC_RecordMemRef,
/*33192*/       OPC_RecordNode, // #1 = 'ld' chained node
/*33193*/       OPC_CheckFoldableChainNode,
/*33194*/       OPC_RecordChild1, // #2 = $src2
/*33195*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*33197*/       OPC_CheckPredicate, 3, // Predicate_load
/*33199*/       OPC_CheckPredicate, 23, // Predicate_memop
/*33201*/       OPC_CheckType, MVT::v16i8,
/*33203*/       OPC_MoveParent,
/*33204*/       OPC_MoveParent,
/*33205*/       OPC_Scope, 19, /*->33226*/ // 2 children in Scope
/*33207*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*33209*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*33212*/         OPC_EmitMergeInputChains1_1,
/*33213*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPHADDDrm128), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v4i32 500:iPTR, VR128:v4i32:$src1, (bitconvert:v4i32 (ld:v16i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 33
                  // Dst: (VPHADDDrm128:v4i32 VR128:v4i32:$src1, addr:iPTR:$src2)
/*33226*/       /*Scope*/ 19, /*->33246*/
/*33227*/         OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*33229*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*33232*/         OPC_EmitMergeInputChains1_1,
/*33233*/         OPC_MorphNodeTo, TARGET_VAL(X86::PHADDDrm128), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v4i32 500:iPTR, VR128:v4i32:$src1, (bitconvert:v4i32 (ld:v16i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 33
                  // Dst: (PHADDDrm128:v4i32 VR128:v4i32:$src1, addr:iPTR:$src2)
/*33246*/       0, /*End of Scope*/
/*33247*/     /*Scope*/ 27, /*->33275*/
/*33248*/       OPC_RecordChild2, // #1 = $src2
/*33249*/       OPC_Scope, 11, /*->33262*/ // 2 children in Scope
/*33251*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*33253*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPHADDDrr128), 0,
                      1/*#VTs*/, MVT::v4i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v4i32 500:iPTR, VR128:v4i32:$src1, VR128:v4i32:$src2) - Complexity = 8
                  // Dst: (VPHADDDrr128:v4i32 VR128:v4i32:$src1, VR128:v4i32:$src2)
/*33262*/       /*Scope*/ 11, /*->33274*/
/*33263*/         OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*33265*/         OPC_MorphNodeTo, TARGET_VAL(X86::PHADDDrr128), 0,
                      1/*#VTs*/, MVT::v4i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v4i32 500:iPTR, VR128:v4i32:$src1, VR128:v4i32:$src2) - Complexity = 8
                  // Dst: (PHADDDrr128:v4i32 VR128:v4i32:$src1, VR128:v4i32:$src2)
/*33274*/       0, /*End of Scope*/
/*33275*/     0, /*End of Scope*/
/*33276*/   /*Scope*/ 102, /*->33379*/
/*33277*/     OPC_CheckInteger, 118|128,3/*502*/, 
/*33280*/     OPC_MoveParent,
/*33281*/     OPC_RecordChild1, // #0 = $src1
/*33282*/     OPC_Scope, 66, /*->33350*/ // 2 children in Scope
/*33284*/       OPC_MoveChild, 2,
/*33286*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*33289*/       OPC_MoveChild, 0,
/*33291*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*33294*/       OPC_RecordMemRef,
/*33295*/       OPC_RecordNode, // #1 = 'ld' chained node
/*33296*/       OPC_CheckFoldableChainNode,
/*33297*/       OPC_RecordChild1, // #2 = $src2
/*33298*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*33300*/       OPC_CheckPredicate, 3, // Predicate_load
/*33302*/       OPC_CheckPredicate, 23, // Predicate_memop
/*33304*/       OPC_CheckType, MVT::v16i8,
/*33306*/       OPC_MoveParent,
/*33307*/       OPC_MoveParent,
/*33308*/       OPC_Scope, 19, /*->33329*/ // 2 children in Scope
/*33310*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*33312*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*33315*/         OPC_EmitMergeInputChains1_1,
/*33316*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPHADDSWrm128), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v4i32 502:iPTR, VR128:v4i32:$src1, (bitconvert:v4i32 (ld:v16i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 33
                  // Dst: (VPHADDSWrm128:v4i32 VR128:v4i32:$src1, addr:iPTR:$src2)
/*33329*/       /*Scope*/ 19, /*->33349*/
/*33330*/         OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*33332*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*33335*/         OPC_EmitMergeInputChains1_1,
/*33336*/         OPC_MorphNodeTo, TARGET_VAL(X86::PHADDSWrm128), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v4i32 502:iPTR, VR128:v4i32:$src1, (bitconvert:v4i32 (ld:v16i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 33
                  // Dst: (PHADDSWrm128:v4i32 VR128:v4i32:$src1, addr:iPTR:$src2)
/*33349*/       0, /*End of Scope*/
/*33350*/     /*Scope*/ 27, /*->33378*/
/*33351*/       OPC_RecordChild2, // #1 = $src2
/*33352*/       OPC_Scope, 11, /*->33365*/ // 2 children in Scope
/*33354*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*33356*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPHADDSWrr128), 0,
                      1/*#VTs*/, MVT::v4i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v4i32 502:iPTR, VR128:v4i32:$src1, VR128:v4i32:$src2) - Complexity = 8
                  // Dst: (VPHADDSWrr128:v4i32 VR128:v4i32:$src1, VR128:v4i32:$src2)
/*33365*/       /*Scope*/ 11, /*->33377*/
/*33366*/         OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*33368*/         OPC_MorphNodeTo, TARGET_VAL(X86::PHADDSWrr128), 0,
                      1/*#VTs*/, MVT::v4i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v4i32 502:iPTR, VR128:v4i32:$src1, VR128:v4i32:$src2) - Complexity = 8
                  // Dst: (PHADDSWrr128:v4i32 VR128:v4i32:$src1, VR128:v4i32:$src2)
/*33377*/       0, /*End of Scope*/
/*33378*/     0, /*End of Scope*/
/*33379*/   /*Scope*/ 102, /*->33482*/
/*33380*/     OPC_CheckInteger, 126|128,3/*510*/, 
/*33383*/     OPC_MoveParent,
/*33384*/     OPC_RecordChild1, // #0 = $src1
/*33385*/     OPC_Scope, 66, /*->33453*/ // 2 children in Scope
/*33387*/       OPC_MoveChild, 2,
/*33389*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*33392*/       OPC_MoveChild, 0,
/*33394*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*33397*/       OPC_RecordMemRef,
/*33398*/       OPC_RecordNode, // #1 = 'ld' chained node
/*33399*/       OPC_CheckFoldableChainNode,
/*33400*/       OPC_RecordChild1, // #2 = $src2
/*33401*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*33403*/       OPC_CheckPredicate, 3, // Predicate_load
/*33405*/       OPC_CheckPredicate, 23, // Predicate_memop
/*33407*/       OPC_CheckType, MVT::v16i8,
/*33409*/       OPC_MoveParent,
/*33410*/       OPC_MoveParent,
/*33411*/       OPC_Scope, 19, /*->33432*/ // 2 children in Scope
/*33413*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*33415*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*33418*/         OPC_EmitMergeInputChains1_1,
/*33419*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPHSUBWrm128), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v8i16 510:iPTR, VR128:v8i16:$src1, (bitconvert:v8i16 (ld:v16i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 33
                  // Dst: (VPHSUBWrm128:v8i16 VR128:v8i16:$src1, addr:iPTR:$src2)
/*33432*/       /*Scope*/ 19, /*->33452*/
/*33433*/         OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*33435*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*33438*/         OPC_EmitMergeInputChains1_1,
/*33439*/         OPC_MorphNodeTo, TARGET_VAL(X86::PHSUBWrm128), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v8i16 510:iPTR, VR128:v8i16:$src1, (bitconvert:v8i16 (ld:v16i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 33
                  // Dst: (PHSUBWrm128:v8i16 VR128:v8i16:$src1, addr:iPTR:$src2)
/*33452*/       0, /*End of Scope*/
/*33453*/     /*Scope*/ 27, /*->33481*/
/*33454*/       OPC_RecordChild2, // #1 = $src2
/*33455*/       OPC_Scope, 11, /*->33468*/ // 2 children in Scope
/*33457*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*33459*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPHSUBWrr128), 0,
                      1/*#VTs*/, MVT::v8i16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v8i16 510:iPTR, VR128:v8i16:$src1, VR128:v8i16:$src2) - Complexity = 8
                  // Dst: (VPHSUBWrr128:v8i16 VR128:v8i16:$src1, VR128:v8i16:$src2)
/*33468*/       /*Scope*/ 11, /*->33480*/
/*33469*/         OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*33471*/         OPC_MorphNodeTo, TARGET_VAL(X86::PHSUBWrr128), 0,
                      1/*#VTs*/, MVT::v8i16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v8i16 510:iPTR, VR128:v8i16:$src1, VR128:v8i16:$src2) - Complexity = 8
                  // Dst: (PHSUBWrr128:v8i16 VR128:v8i16:$src1, VR128:v8i16:$src2)
/*33480*/       0, /*End of Scope*/
/*33481*/     0, /*End of Scope*/
/*33482*/   /*Scope*/ 102, /*->33585*/
/*33483*/     OPC_CheckInteger, 122|128,3/*506*/, 
/*33486*/     OPC_MoveParent,
/*33487*/     OPC_RecordChild1, // #0 = $src1
/*33488*/     OPC_Scope, 66, /*->33556*/ // 2 children in Scope
/*33490*/       OPC_MoveChild, 2,
/*33492*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*33495*/       OPC_MoveChild, 0,
/*33497*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*33500*/       OPC_RecordMemRef,
/*33501*/       OPC_RecordNode, // #1 = 'ld' chained node
/*33502*/       OPC_CheckFoldableChainNode,
/*33503*/       OPC_RecordChild1, // #2 = $src2
/*33504*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*33506*/       OPC_CheckPredicate, 3, // Predicate_load
/*33508*/       OPC_CheckPredicate, 23, // Predicate_memop
/*33510*/       OPC_CheckType, MVT::v16i8,
/*33512*/       OPC_MoveParent,
/*33513*/       OPC_MoveParent,
/*33514*/       OPC_Scope, 19, /*->33535*/ // 2 children in Scope
/*33516*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*33518*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*33521*/         OPC_EmitMergeInputChains1_1,
/*33522*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPHSUBDrm128), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v4i32 506:iPTR, VR128:v4i32:$src1, (bitconvert:v4i32 (ld:v16i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 33
                  // Dst: (VPHSUBDrm128:v4i32 VR128:v4i32:$src1, addr:iPTR:$src2)
/*33535*/       /*Scope*/ 19, /*->33555*/
/*33536*/         OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*33538*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*33541*/         OPC_EmitMergeInputChains1_1,
/*33542*/         OPC_MorphNodeTo, TARGET_VAL(X86::PHSUBDrm128), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v4i32 506:iPTR, VR128:v4i32:$src1, (bitconvert:v4i32 (ld:v16i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 33
                  // Dst: (PHSUBDrm128:v4i32 VR128:v4i32:$src1, addr:iPTR:$src2)
/*33555*/       0, /*End of Scope*/
/*33556*/     /*Scope*/ 27, /*->33584*/
/*33557*/       OPC_RecordChild2, // #1 = $src2
/*33558*/       OPC_Scope, 11, /*->33571*/ // 2 children in Scope
/*33560*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*33562*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPHSUBDrr128), 0,
                      1/*#VTs*/, MVT::v4i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v4i32 506:iPTR, VR128:v4i32:$src1, VR128:v4i32:$src2) - Complexity = 8
                  // Dst: (VPHSUBDrr128:v4i32 VR128:v4i32:$src1, VR128:v4i32:$src2)
/*33571*/       /*Scope*/ 11, /*->33583*/
/*33572*/         OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*33574*/         OPC_MorphNodeTo, TARGET_VAL(X86::PHSUBDrr128), 0,
                      1/*#VTs*/, MVT::v4i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v4i32 506:iPTR, VR128:v4i32:$src1, VR128:v4i32:$src2) - Complexity = 8
                  // Dst: (PHSUBDrr128:v4i32 VR128:v4i32:$src1, VR128:v4i32:$src2)
/*33583*/       0, /*End of Scope*/
/*33584*/     0, /*End of Scope*/
/*33585*/   /*Scope*/ 102, /*->33688*/
/*33586*/     OPC_CheckInteger, 124|128,3/*508*/, 
/*33589*/     OPC_MoveParent,
/*33590*/     OPC_RecordChild1, // #0 = $src1
/*33591*/     OPC_Scope, 66, /*->33659*/ // 2 children in Scope
/*33593*/       OPC_MoveChild, 2,
/*33595*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*33598*/       OPC_MoveChild, 0,
/*33600*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*33603*/       OPC_RecordMemRef,
/*33604*/       OPC_RecordNode, // #1 = 'ld' chained node
/*33605*/       OPC_CheckFoldableChainNode,
/*33606*/       OPC_RecordChild1, // #2 = $src2
/*33607*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*33609*/       OPC_CheckPredicate, 3, // Predicate_load
/*33611*/       OPC_CheckPredicate, 23, // Predicate_memop
/*33613*/       OPC_CheckType, MVT::v16i8,
/*33615*/       OPC_MoveParent,
/*33616*/       OPC_MoveParent,
/*33617*/       OPC_Scope, 19, /*->33638*/ // 2 children in Scope
/*33619*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*33621*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*33624*/         OPC_EmitMergeInputChains1_1,
/*33625*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPHSUBSWrm128), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v8i16 508:iPTR, VR128:v8i16:$src1, (bitconvert:v8i16 (ld:v16i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 33
                  // Dst: (VPHSUBSWrm128:v8i16 VR128:v8i16:$src1, addr:iPTR:$src2)
/*33638*/       /*Scope*/ 19, /*->33658*/
/*33639*/         OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*33641*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*33644*/         OPC_EmitMergeInputChains1_1,
/*33645*/         OPC_MorphNodeTo, TARGET_VAL(X86::PHSUBSWrm128), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v8i16 508:iPTR, VR128:v8i16:$src1, (bitconvert:v8i16 (ld:v16i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 33
                  // Dst: (PHSUBSWrm128:v8i16 VR128:v8i16:$src1, addr:iPTR:$src2)
/*33658*/       0, /*End of Scope*/
/*33659*/     /*Scope*/ 27, /*->33687*/
/*33660*/       OPC_RecordChild2, // #1 = $src2
/*33661*/       OPC_Scope, 11, /*->33674*/ // 2 children in Scope
/*33663*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*33665*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPHSUBSWrr128), 0,
                      1/*#VTs*/, MVT::v8i16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v8i16 508:iPTR, VR128:v8i16:$src1, VR128:v8i16:$src2) - Complexity = 8
                  // Dst: (VPHSUBSWrr128:v8i16 VR128:v8i16:$src1, VR128:v8i16:$src2)
/*33674*/       /*Scope*/ 11, /*->33686*/
/*33675*/         OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*33677*/         OPC_MorphNodeTo, TARGET_VAL(X86::PHSUBSWrr128), 0,
                      1/*#VTs*/, MVT::v8i16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v8i16 508:iPTR, VR128:v8i16:$src1, VR128:v8i16:$src2) - Complexity = 8
                  // Dst: (PHSUBSWrr128:v8i16 VR128:v8i16:$src1, VR128:v8i16:$src2)
/*33686*/       0, /*End of Scope*/
/*33687*/     0, /*End of Scope*/
/*33688*/   /*Scope*/ 102, /*->33791*/
/*33689*/     OPC_CheckInteger, 0|128,4/*512*/, 
/*33692*/     OPC_MoveParent,
/*33693*/     OPC_RecordChild1, // #0 = $src1
/*33694*/     OPC_Scope, 66, /*->33762*/ // 2 children in Scope
/*33696*/       OPC_MoveChild, 2,
/*33698*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*33701*/       OPC_MoveChild, 0,
/*33703*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*33706*/       OPC_RecordMemRef,
/*33707*/       OPC_RecordNode, // #1 = 'ld' chained node
/*33708*/       OPC_CheckFoldableChainNode,
/*33709*/       OPC_RecordChild1, // #2 = $src2
/*33710*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*33712*/       OPC_CheckPredicate, 3, // Predicate_load
/*33714*/       OPC_CheckPredicate, 23, // Predicate_memop
/*33716*/       OPC_CheckType, MVT::v16i8,
/*33718*/       OPC_MoveParent,
/*33719*/       OPC_MoveParent,
/*33720*/       OPC_Scope, 19, /*->33741*/ // 2 children in Scope
/*33722*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*33724*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*33727*/         OPC_EmitMergeInputChains1_1,
/*33728*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPMADDUBSWrm128), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v8i16 512:iPTR, VR128:v8i16:$src1, (bitconvert:v8i16 (ld:v16i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 33
                  // Dst: (VPMADDUBSWrm128:v8i16 VR128:v8i16:$src1, addr:iPTR:$src2)
/*33741*/       /*Scope*/ 19, /*->33761*/
/*33742*/         OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*33744*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*33747*/         OPC_EmitMergeInputChains1_1,
/*33748*/         OPC_MorphNodeTo, TARGET_VAL(X86::PMADDUBSWrm128), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v8i16 512:iPTR, VR128:v8i16:$src1, (bitconvert:v8i16 (ld:v16i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 33
                  // Dst: (PMADDUBSWrm128:v8i16 VR128:v8i16:$src1, addr:iPTR:$src2)
/*33761*/       0, /*End of Scope*/
/*33762*/     /*Scope*/ 27, /*->33790*/
/*33763*/       OPC_RecordChild2, // #1 = $src2
/*33764*/       OPC_Scope, 11, /*->33777*/ // 2 children in Scope
/*33766*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*33768*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPMADDUBSWrr128), 0,
                      1/*#VTs*/, MVT::v8i16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v8i16 512:iPTR, VR128:v8i16:$src1, VR128:v8i16:$src2) - Complexity = 8
                  // Dst: (VPMADDUBSWrr128:v8i16 VR128:v8i16:$src1, VR128:v8i16:$src2)
/*33777*/       /*Scope*/ 11, /*->33789*/
/*33778*/         OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*33780*/         OPC_MorphNodeTo, TARGET_VAL(X86::PMADDUBSWrr128), 0,
                      1/*#VTs*/, MVT::v8i16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v8i16 512:iPTR, VR128:v8i16:$src1, VR128:v8i16:$src2) - Complexity = 8
                  // Dst: (PMADDUBSWrr128:v8i16 VR128:v8i16:$src1, VR128:v8i16:$src2)
/*33789*/       0, /*End of Scope*/
/*33790*/     0, /*End of Scope*/
/*33791*/   /*Scope*/ 102, /*->33894*/
/*33792*/     OPC_CheckInteger, 10|128,4/*522*/, 
/*33795*/     OPC_MoveParent,
/*33796*/     OPC_RecordChild1, // #0 = $src1
/*33797*/     OPC_Scope, 66, /*->33865*/ // 2 children in Scope
/*33799*/       OPC_MoveChild, 2,
/*33801*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*33804*/       OPC_MoveChild, 0,
/*33806*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*33809*/       OPC_RecordMemRef,
/*33810*/       OPC_RecordNode, // #1 = 'ld' chained node
/*33811*/       OPC_CheckFoldableChainNode,
/*33812*/       OPC_RecordChild1, // #2 = $src2
/*33813*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*33815*/       OPC_CheckPredicate, 3, // Predicate_load
/*33817*/       OPC_CheckPredicate, 23, // Predicate_memop
/*33819*/       OPC_CheckType, MVT::v16i8,
/*33821*/       OPC_MoveParent,
/*33822*/       OPC_MoveParent,
/*33823*/       OPC_Scope, 19, /*->33844*/ // 2 children in Scope
/*33825*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*33827*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*33830*/         OPC_EmitMergeInputChains1_1,
/*33831*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPSIGNWrm128), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v8i16 522:iPTR, VR128:v8i16:$src1, (bitconvert:v8i16 (ld:v16i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 33
                  // Dst: (VPSIGNWrm128:v8i16 VR128:v8i16:$src1, addr:iPTR:$src2)
/*33844*/       /*Scope*/ 19, /*->33864*/
/*33845*/         OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*33847*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*33850*/         OPC_EmitMergeInputChains1_1,
/*33851*/         OPC_MorphNodeTo, TARGET_VAL(X86::PSIGNWrm128), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v8i16 522:iPTR, VR128:v8i16:$src1, (bitconvert:v8i16 (ld:v16i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 33
                  // Dst: (PSIGNWrm128:v8i16 VR128:v8i16:$src1, addr:iPTR:$src2)
/*33864*/       0, /*End of Scope*/
/*33865*/     /*Scope*/ 27, /*->33893*/
/*33866*/       OPC_RecordChild2, // #1 = $src2
/*33867*/       OPC_Scope, 11, /*->33880*/ // 2 children in Scope
/*33869*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*33871*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPSIGNWrr128), 0,
                      1/*#VTs*/, MVT::v8i16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v8i16 522:iPTR, VR128:v8i16:$src1, VR128:v8i16:$src2) - Complexity = 8
                  // Dst: (VPSIGNWrr128:v8i16 VR128:v8i16:$src1, VR128:v8i16:$src2)
/*33880*/       /*Scope*/ 11, /*->33892*/
/*33881*/         OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*33883*/         OPC_MorphNodeTo, TARGET_VAL(X86::PSIGNWrr128), 0,
                      1/*#VTs*/, MVT::v8i16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v8i16 522:iPTR, VR128:v8i16:$src1, VR128:v8i16:$src2) - Complexity = 8
                  // Dst: (PSIGNWrr128:v8i16 VR128:v8i16:$src1, VR128:v8i16:$src2)
/*33892*/       0, /*End of Scope*/
/*33893*/     0, /*End of Scope*/
/*33894*/   /*Scope*/ 102, /*->33997*/
/*33895*/     OPC_CheckInteger, 8|128,4/*520*/, 
/*33898*/     OPC_MoveParent,
/*33899*/     OPC_RecordChild1, // #0 = $src1
/*33900*/     OPC_Scope, 66, /*->33968*/ // 2 children in Scope
/*33902*/       OPC_MoveChild, 2,
/*33904*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*33907*/       OPC_MoveChild, 0,
/*33909*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*33912*/       OPC_RecordMemRef,
/*33913*/       OPC_RecordNode, // #1 = 'ld' chained node
/*33914*/       OPC_CheckFoldableChainNode,
/*33915*/       OPC_RecordChild1, // #2 = $src2
/*33916*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*33918*/       OPC_CheckPredicate, 3, // Predicate_load
/*33920*/       OPC_CheckPredicate, 23, // Predicate_memop
/*33922*/       OPC_CheckType, MVT::v16i8,
/*33924*/       OPC_MoveParent,
/*33925*/       OPC_MoveParent,
/*33926*/       OPC_Scope, 19, /*->33947*/ // 2 children in Scope
/*33928*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*33930*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*33933*/         OPC_EmitMergeInputChains1_1,
/*33934*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPSIGNDrm128), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v4i32 520:iPTR, VR128:v4i32:$src1, (bitconvert:v4i32 (ld:v16i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 33
                  // Dst: (VPSIGNDrm128:v4i32 VR128:v4i32:$src1, addr:iPTR:$src2)
/*33947*/       /*Scope*/ 19, /*->33967*/
/*33948*/         OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*33950*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*33953*/         OPC_EmitMergeInputChains1_1,
/*33954*/         OPC_MorphNodeTo, TARGET_VAL(X86::PSIGNDrm128), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v4i32 520:iPTR, VR128:v4i32:$src1, (bitconvert:v4i32 (ld:v16i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 33
                  // Dst: (PSIGNDrm128:v4i32 VR128:v4i32:$src1, addr:iPTR:$src2)
/*33967*/       0, /*End of Scope*/
/*33968*/     /*Scope*/ 27, /*->33996*/
/*33969*/       OPC_RecordChild2, // #1 = $src2
/*33970*/       OPC_Scope, 11, /*->33983*/ // 2 children in Scope
/*33972*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*33974*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPSIGNDrr128), 0,
                      1/*#VTs*/, MVT::v4i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v4i32 520:iPTR, VR128:v4i32:$src1, VR128:v4i32:$src2) - Complexity = 8
                  // Dst: (VPSIGNDrr128:v4i32 VR128:v4i32:$src1, VR128:v4i32:$src2)
/*33983*/       /*Scope*/ 11, /*->33995*/
/*33984*/         OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*33986*/         OPC_MorphNodeTo, TARGET_VAL(X86::PSIGNDrr128), 0,
                      1/*#VTs*/, MVT::v4i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v4i32 520:iPTR, VR128:v4i32:$src1, VR128:v4i32:$src2) - Complexity = 8
                  // Dst: (PSIGNDrr128:v4i32 VR128:v4i32:$src1, VR128:v4i32:$src2)
/*33995*/       0, /*End of Scope*/
/*33996*/     0, /*End of Scope*/
/*33997*/   /*Scope*/ 43|128,1/*171*/, /*->34170*/
/*33999*/     OPC_CheckInteger, 2|128,4/*514*/, 
/*34002*/     OPC_MoveParent,
/*34003*/     OPC_Scope, 67, /*->34072*/ // 3 children in Scope
/*34005*/       OPC_RecordChild1, // #0 = $src1
/*34006*/       OPC_MoveChild, 2,
/*34008*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*34011*/       OPC_MoveChild, 0,
/*34013*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*34016*/       OPC_RecordMemRef,
/*34017*/       OPC_RecordNode, // #1 = 'ld' chained node
/*34018*/       OPC_CheckFoldableChainNode,
/*34019*/       OPC_RecordChild1, // #2 = $src2
/*34020*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*34022*/       OPC_CheckPredicate, 3, // Predicate_load
/*34024*/       OPC_CheckPredicate, 23, // Predicate_memop
/*34026*/       OPC_CheckType, MVT::v16i8,
/*34028*/       OPC_MoveParent,
/*34029*/       OPC_MoveParent,
/*34030*/       OPC_Scope, 19, /*->34051*/ // 2 children in Scope
/*34032*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*34034*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*34037*/         OPC_EmitMergeInputChains1_1,
/*34038*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPMULHRSWrm128), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v8i16 514:iPTR, VR128:v8i16:$src1, (bitconvert:v8i16 (ld:v16i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 33
                  // Dst: (VPMULHRSWrm128:v8i16 VR128:v8i16:$src1, addr:iPTR:$src2)
/*34051*/       /*Scope*/ 19, /*->34071*/
/*34052*/         OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*34054*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*34057*/         OPC_EmitMergeInputChains1_1,
/*34058*/         OPC_MorphNodeTo, TARGET_VAL(X86::PMULHRSWrm128), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v8i16 514:iPTR, VR128:v8i16:$src1, (bitconvert:v8i16 (ld:v16i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 33
                  // Dst: (PMULHRSWrm128:v8i16 VR128:v8i16:$src1, addr:iPTR:$src2)
/*34071*/       0, /*End of Scope*/
/*34072*/     /*Scope*/ 67, /*->34140*/
/*34073*/       OPC_MoveChild, 1,
/*34075*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*34078*/       OPC_MoveChild, 0,
/*34080*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*34083*/       OPC_RecordMemRef,
/*34084*/       OPC_RecordNode, // #0 = 'ld' chained node
/*34085*/       OPC_CheckFoldableChainNode,
/*34086*/       OPC_RecordChild1, // #1 = $src2
/*34087*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*34089*/       OPC_CheckPredicate, 3, // Predicate_load
/*34091*/       OPC_CheckPredicate, 23, // Predicate_memop
/*34093*/       OPC_CheckType, MVT::v16i8,
/*34095*/       OPC_MoveParent,
/*34096*/       OPC_MoveParent,
/*34097*/       OPC_RecordChild2, // #2 = $src1
/*34098*/       OPC_Scope, 19, /*->34119*/ // 2 children in Scope
/*34100*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*34102*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*34105*/         OPC_EmitMergeInputChains1_0,
/*34106*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPMULHRSWrm128), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v8i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v8i16 514:iPTR, (bitconvert:v8i16 (ld:v16i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>), VR128:v8i16:$src1) - Complexity = 33
                  // Dst: (VPMULHRSWrm128:v8i16 VR128:v8i16:$src1, addr:iPTR:$src2)
/*34119*/       /*Scope*/ 19, /*->34139*/
/*34120*/         OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*34122*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*34125*/         OPC_EmitMergeInputChains1_0,
/*34126*/         OPC_MorphNodeTo, TARGET_VAL(X86::PMULHRSWrm128), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v8i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v8i16 514:iPTR, (bitconvert:v8i16 (ld:v16i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>), VR128:v8i16:$src1) - Complexity = 33
                  // Dst: (PMULHRSWrm128:v8i16 VR128:v8i16:$src1, addr:iPTR:$src2)
/*34139*/       0, /*End of Scope*/
/*34140*/     /*Scope*/ 28, /*->34169*/
/*34141*/       OPC_RecordChild1, // #0 = $src1
/*34142*/       OPC_RecordChild2, // #1 = $src2
/*34143*/       OPC_Scope, 11, /*->34156*/ // 2 children in Scope
/*34145*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*34147*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPMULHRSWrr128), 0,
                      1/*#VTs*/, MVT::v8i16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v8i16 514:iPTR, VR128:v8i16:$src1, VR128:v8i16:$src2) - Complexity = 8
                  // Dst: (VPMULHRSWrr128:v8i16 VR128:v8i16:$src1, VR128:v8i16:$src2)
/*34156*/       /*Scope*/ 11, /*->34168*/
/*34157*/         OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*34159*/         OPC_MorphNodeTo, TARGET_VAL(X86::PMULHRSWrr128), 0,
                      1/*#VTs*/, MVT::v8i16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v8i16 514:iPTR, VR128:v8i16:$src1, VR128:v8i16:$src2) - Complexity = 8
                  // Dst: (PMULHRSWrr128:v8i16 VR128:v8i16:$src1, VR128:v8i16:$src2)
/*34168*/       0, /*End of Scope*/
/*34169*/     0, /*End of Scope*/
/*34170*/   /*Scope*/ 102, /*->34273*/
/*34171*/     OPC_CheckInteger, 7|128,3/*391*/, 
/*34174*/     OPC_MoveParent,
/*34175*/     OPC_RecordChild1, // #0 = $src1
/*34176*/     OPC_Scope, 66, /*->34244*/ // 2 children in Scope
/*34178*/       OPC_MoveChild, 2,
/*34180*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*34183*/       OPC_MoveChild, 0,
/*34185*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*34188*/       OPC_RecordMemRef,
/*34189*/       OPC_RecordNode, // #1 = 'ld' chained node
/*34190*/       OPC_CheckFoldableChainNode,
/*34191*/       OPC_RecordChild1, // #2 = $src2
/*34192*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*34194*/       OPC_CheckPredicate, 3, // Predicate_load
/*34196*/       OPC_CheckPredicate, 23, // Predicate_memop
/*34198*/       OPC_CheckType, MVT::v16i8,
/*34200*/       OPC_MoveParent,
/*34201*/       OPC_MoveParent,
/*34202*/       OPC_Scope, 19, /*->34223*/ // 2 children in Scope
/*34204*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*34206*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*34209*/         OPC_EmitMergeInputChains1_1,
/*34210*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPACKUSDWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v8i16 391:iPTR, VR128:v4i32:$src1, (bitconvert:v4i32 (ld:v16i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 33
                  // Dst: (VPACKUSDWrm:v8i16 VR128:v4i32:$src1, addr:iPTR:$src2)
/*34223*/       /*Scope*/ 19, /*->34243*/
/*34224*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*34226*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*34229*/         OPC_EmitMergeInputChains1_1,
/*34230*/         OPC_MorphNodeTo, TARGET_VAL(X86::PACKUSDWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v8i16 391:iPTR, VR128:v4i32:$src1, (bitconvert:v4i32 (ld:v16i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 33
                  // Dst: (PACKUSDWrm:v8i16 VR128:v4i32:$src1, addr:iPTR:$src2)
/*34243*/       0, /*End of Scope*/
/*34244*/     /*Scope*/ 27, /*->34272*/
/*34245*/       OPC_RecordChild2, // #1 = $src2
/*34246*/       OPC_Scope, 11, /*->34259*/ // 2 children in Scope
/*34248*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*34250*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPACKUSDWrr), 0,
                      1/*#VTs*/, MVT::v8i16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v8i16 391:iPTR, VR128:v4i32:$src1, VR128:v4i32:$src2) - Complexity = 8
                  // Dst: (VPACKUSDWrr:v8i16 VR128:v4i32:$src1, VR128:v4i32:$src2)
/*34259*/       /*Scope*/ 11, /*->34271*/
/*34260*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*34262*/         OPC_MorphNodeTo, TARGET_VAL(X86::PACKUSDWrr), 0,
                      1/*#VTs*/, MVT::v8i16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v8i16 391:iPTR, VR128:v4i32:$src1, VR128:v4i32:$src2) - Complexity = 8
                  // Dst: (PACKUSDWrr:v8i16 VR128:v4i32:$src1, VR128:v4i32:$src2)
/*34271*/       0, /*End of Scope*/
/*34272*/     0, /*End of Scope*/
/*34273*/   /*Scope*/ 43|128,1/*171*/, /*->34446*/
/*34275*/     OPC_CheckInteger, 10|128,3/*394*/, 
/*34278*/     OPC_MoveParent,
/*34279*/     OPC_Scope, 67, /*->34348*/ // 3 children in Scope
/*34281*/       OPC_RecordChild1, // #0 = $src1
/*34282*/       OPC_MoveChild, 2,
/*34284*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*34287*/       OPC_MoveChild, 0,
/*34289*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*34292*/       OPC_RecordMemRef,
/*34293*/       OPC_RecordNode, // #1 = 'ld' chained node
/*34294*/       OPC_CheckFoldableChainNode,
/*34295*/       OPC_RecordChild1, // #2 = $src2
/*34296*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*34298*/       OPC_CheckPredicate, 3, // Predicate_load
/*34300*/       OPC_CheckPredicate, 23, // Predicate_memop
/*34302*/       OPC_CheckType, MVT::v16i8,
/*34304*/       OPC_MoveParent,
/*34305*/       OPC_MoveParent,
/*34306*/       OPC_Scope, 19, /*->34327*/ // 2 children in Scope
/*34308*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*34310*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*34313*/         OPC_EmitMergeInputChains1_1,
/*34314*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPCMPEQQrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v2i64 394:iPTR, VR128:v2i64:$src1, (bitconvert:v2i64 (ld:v16i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 33
                  // Dst: (VPCMPEQQrm:v2i64 VR128:v2i64:$src1, addr:iPTR:$src2)
/*34327*/       /*Scope*/ 19, /*->34347*/
/*34328*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*34330*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*34333*/         OPC_EmitMergeInputChains1_1,
/*34334*/         OPC_MorphNodeTo, TARGET_VAL(X86::PCMPEQQrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v2i64 394:iPTR, VR128:v2i64:$src1, (bitconvert:v2i64 (ld:v16i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 33
                  // Dst: (PCMPEQQrm:v2i64 VR128:v2i64:$src1, addr:iPTR:$src2)
/*34347*/       0, /*End of Scope*/
/*34348*/     /*Scope*/ 67, /*->34416*/
/*34349*/       OPC_MoveChild, 1,
/*34351*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*34354*/       OPC_MoveChild, 0,
/*34356*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*34359*/       OPC_RecordMemRef,
/*34360*/       OPC_RecordNode, // #0 = 'ld' chained node
/*34361*/       OPC_CheckFoldableChainNode,
/*34362*/       OPC_RecordChild1, // #1 = $src2
/*34363*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*34365*/       OPC_CheckPredicate, 3, // Predicate_load
/*34367*/       OPC_CheckPredicate, 23, // Predicate_memop
/*34369*/       OPC_CheckType, MVT::v16i8,
/*34371*/       OPC_MoveParent,
/*34372*/       OPC_MoveParent,
/*34373*/       OPC_RecordChild2, // #2 = $src1
/*34374*/       OPC_Scope, 19, /*->34395*/ // 2 children in Scope
/*34376*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*34378*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*34381*/         OPC_EmitMergeInputChains1_0,
/*34382*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPCMPEQQrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v2i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v2i64 394:iPTR, (bitconvert:v2i64 (ld:v16i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>), VR128:v2i64:$src1) - Complexity = 33
                  // Dst: (VPCMPEQQrm:v2i64 VR128:v2i64:$src1, addr:iPTR:$src2)
/*34395*/       /*Scope*/ 19, /*->34415*/
/*34396*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*34398*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*34401*/         OPC_EmitMergeInputChains1_0,
/*34402*/         OPC_MorphNodeTo, TARGET_VAL(X86::PCMPEQQrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v2i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v2i64 394:iPTR, (bitconvert:v2i64 (ld:v16i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>), VR128:v2i64:$src1) - Complexity = 33
                  // Dst: (PCMPEQQrm:v2i64 VR128:v2i64:$src1, addr:iPTR:$src2)
/*34415*/       0, /*End of Scope*/
/*34416*/     /*Scope*/ 28, /*->34445*/
/*34417*/       OPC_RecordChild1, // #0 = $src1
/*34418*/       OPC_RecordChild2, // #1 = $src2
/*34419*/       OPC_Scope, 11, /*->34432*/ // 2 children in Scope
/*34421*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*34423*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPCMPEQQrr), 0,
                      1/*#VTs*/, MVT::v2i64, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v2i64 394:iPTR, VR128:v2i64:$src1, VR128:v2i64:$src2) - Complexity = 8
                  // Dst: (VPCMPEQQrr:v2i64 VR128:v2i64:$src1, VR128:v2i64:$src2)
/*34432*/       /*Scope*/ 11, /*->34444*/
/*34433*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*34435*/         OPC_MorphNodeTo, TARGET_VAL(X86::PCMPEQQrr), 0,
                      1/*#VTs*/, MVT::v2i64, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v2i64 394:iPTR, VR128:v2i64:$src1, VR128:v2i64:$src2) - Complexity = 8
                  // Dst: (PCMPEQQrr:v2i64 VR128:v2i64:$src1, VR128:v2i64:$src2)
/*34444*/       0, /*End of Scope*/
/*34445*/     0, /*End of Scope*/
/*34446*/   /*Scope*/ 43|128,1/*171*/, /*->34619*/
/*34448*/     OPC_CheckInteger, 20|128,3/*404*/, 
/*34451*/     OPC_MoveParent,
/*34452*/     OPC_Scope, 67, /*->34521*/ // 3 children in Scope
/*34454*/       OPC_RecordChild1, // #0 = $src1
/*34455*/       OPC_MoveChild, 2,
/*34457*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*34460*/       OPC_MoveChild, 0,
/*34462*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*34465*/       OPC_RecordMemRef,
/*34466*/       OPC_RecordNode, // #1 = 'ld' chained node
/*34467*/       OPC_CheckFoldableChainNode,
/*34468*/       OPC_RecordChild1, // #2 = $src2
/*34469*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*34471*/       OPC_CheckPredicate, 3, // Predicate_load
/*34473*/       OPC_CheckPredicate, 23, // Predicate_memop
/*34475*/       OPC_CheckType, MVT::v16i8,
/*34477*/       OPC_MoveParent,
/*34478*/       OPC_MoveParent,
/*34479*/       OPC_Scope, 19, /*->34500*/ // 2 children in Scope
/*34481*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*34483*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*34486*/         OPC_EmitMergeInputChains1_1,
/*34487*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPMINSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v4i32 404:iPTR, VR128:v4i32:$src1, (bitconvert:v4i32 (ld:v16i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 33
                  // Dst: (VPMINSDrm:v4i32 VR128:v4i32:$src1, addr:iPTR:$src2)
/*34500*/       /*Scope*/ 19, /*->34520*/
/*34501*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*34503*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*34506*/         OPC_EmitMergeInputChains1_1,
/*34507*/         OPC_MorphNodeTo, TARGET_VAL(X86::PMINSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v4i32 404:iPTR, VR128:v4i32:$src1, (bitconvert:v4i32 (ld:v16i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 33
                  // Dst: (PMINSDrm:v4i32 VR128:v4i32:$src1, addr:iPTR:$src2)
/*34520*/       0, /*End of Scope*/
/*34521*/     /*Scope*/ 67, /*->34589*/
/*34522*/       OPC_MoveChild, 1,
/*34524*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*34527*/       OPC_MoveChild, 0,
/*34529*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*34532*/       OPC_RecordMemRef,
/*34533*/       OPC_RecordNode, // #0 = 'ld' chained node
/*34534*/       OPC_CheckFoldableChainNode,
/*34535*/       OPC_RecordChild1, // #1 = $src2
/*34536*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*34538*/       OPC_CheckPredicate, 3, // Predicate_load
/*34540*/       OPC_CheckPredicate, 23, // Predicate_memop
/*34542*/       OPC_CheckType, MVT::v16i8,
/*34544*/       OPC_MoveParent,
/*34545*/       OPC_MoveParent,
/*34546*/       OPC_RecordChild2, // #2 = $src1
/*34547*/       OPC_Scope, 19, /*->34568*/ // 2 children in Scope
/*34549*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*34551*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*34554*/         OPC_EmitMergeInputChains1_0,
/*34555*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPMINSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v4i32 404:iPTR, (bitconvert:v4i32 (ld:v16i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>), VR128:v4i32:$src1) - Complexity = 33
                  // Dst: (VPMINSDrm:v4i32 VR128:v4i32:$src1, addr:iPTR:$src2)
/*34568*/       /*Scope*/ 19, /*->34588*/
/*34569*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*34571*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*34574*/         OPC_EmitMergeInputChains1_0,
/*34575*/         OPC_MorphNodeTo, TARGET_VAL(X86::PMINSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v4i32 404:iPTR, (bitconvert:v4i32 (ld:v16i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>), VR128:v4i32:$src1) - Complexity = 33
                  // Dst: (PMINSDrm:v4i32 VR128:v4i32:$src1, addr:iPTR:$src2)
/*34588*/       0, /*End of Scope*/
/*34589*/     /*Scope*/ 28, /*->34618*/
/*34590*/       OPC_RecordChild1, // #0 = $src1
/*34591*/       OPC_RecordChild2, // #1 = $src2
/*34592*/       OPC_Scope, 11, /*->34605*/ // 2 children in Scope
/*34594*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*34596*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPMINSDrr), 0,
                      1/*#VTs*/, MVT::v4i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v4i32 404:iPTR, VR128:v4i32:$src1, VR128:v4i32:$src2) - Complexity = 8
                  // Dst: (VPMINSDrr:v4i32 VR128:v4i32:$src1, VR128:v4i32:$src2)
/*34605*/       /*Scope*/ 11, /*->34617*/
/*34606*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*34608*/         OPC_MorphNodeTo, TARGET_VAL(X86::PMINSDrr), 0,
                      1/*#VTs*/, MVT::v4i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v4i32 404:iPTR, VR128:v4i32:$src1, VR128:v4i32:$src2) - Complexity = 8
                  // Dst: (PMINSDrr:v4i32 VR128:v4i32:$src1, VR128:v4i32:$src2)
/*34617*/       0, /*End of Scope*/
/*34618*/     0, /*End of Scope*/
/*34619*/   /*Scope*/ 43|128,1/*171*/, /*->34792*/
/*34621*/     OPC_CheckInteger, 21|128,3/*405*/, 
/*34624*/     OPC_MoveParent,
/*34625*/     OPC_Scope, 67, /*->34694*/ // 3 children in Scope
/*34627*/       OPC_RecordChild1, // #0 = $src1
/*34628*/       OPC_MoveChild, 2,
/*34630*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*34633*/       OPC_MoveChild, 0,
/*34635*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*34638*/       OPC_RecordMemRef,
/*34639*/       OPC_RecordNode, // #1 = 'ld' chained node
/*34640*/       OPC_CheckFoldableChainNode,
/*34641*/       OPC_RecordChild1, // #2 = $src2
/*34642*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*34644*/       OPC_CheckPredicate, 3, // Predicate_load
/*34646*/       OPC_CheckPredicate, 23, // Predicate_memop
/*34648*/       OPC_CheckType, MVT::v16i8,
/*34650*/       OPC_MoveParent,
/*34651*/       OPC_MoveParent,
/*34652*/       OPC_Scope, 19, /*->34673*/ // 2 children in Scope
/*34654*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*34656*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*34659*/         OPC_EmitMergeInputChains1_1,
/*34660*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPMINUDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v4i32 405:iPTR, VR128:v4i32:$src1, (bitconvert:v4i32 (ld:v16i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 33
                  // Dst: (VPMINUDrm:v4i32 VR128:v4i32:$src1, addr:iPTR:$src2)
/*34673*/       /*Scope*/ 19, /*->34693*/
/*34674*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*34676*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*34679*/         OPC_EmitMergeInputChains1_1,
/*34680*/         OPC_MorphNodeTo, TARGET_VAL(X86::PMINUDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v4i32 405:iPTR, VR128:v4i32:$src1, (bitconvert:v4i32 (ld:v16i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 33
                  // Dst: (PMINUDrm:v4i32 VR128:v4i32:$src1, addr:iPTR:$src2)
/*34693*/       0, /*End of Scope*/
/*34694*/     /*Scope*/ 67, /*->34762*/
/*34695*/       OPC_MoveChild, 1,
/*34697*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*34700*/       OPC_MoveChild, 0,
/*34702*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*34705*/       OPC_RecordMemRef,
/*34706*/       OPC_RecordNode, // #0 = 'ld' chained node
/*34707*/       OPC_CheckFoldableChainNode,
/*34708*/       OPC_RecordChild1, // #1 = $src2
/*34709*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*34711*/       OPC_CheckPredicate, 3, // Predicate_load
/*34713*/       OPC_CheckPredicate, 23, // Predicate_memop
/*34715*/       OPC_CheckType, MVT::v16i8,
/*34717*/       OPC_MoveParent,
/*34718*/       OPC_MoveParent,
/*34719*/       OPC_RecordChild2, // #2 = $src1
/*34720*/       OPC_Scope, 19, /*->34741*/ // 2 children in Scope
/*34722*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*34724*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*34727*/         OPC_EmitMergeInputChains1_0,
/*34728*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPMINUDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v4i32 405:iPTR, (bitconvert:v4i32 (ld:v16i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>), VR128:v4i32:$src1) - Complexity = 33
                  // Dst: (VPMINUDrm:v4i32 VR128:v4i32:$src1, addr:iPTR:$src2)
/*34741*/       /*Scope*/ 19, /*->34761*/
/*34742*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*34744*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*34747*/         OPC_EmitMergeInputChains1_0,
/*34748*/         OPC_MorphNodeTo, TARGET_VAL(X86::PMINUDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v4i32 405:iPTR, (bitconvert:v4i32 (ld:v16i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>), VR128:v4i32:$src1) - Complexity = 33
                  // Dst: (PMINUDrm:v4i32 VR128:v4i32:$src1, addr:iPTR:$src2)
/*34761*/       0, /*End of Scope*/
/*34762*/     /*Scope*/ 28, /*->34791*/
/*34763*/       OPC_RecordChild1, // #0 = $src1
/*34764*/       OPC_RecordChild2, // #1 = $src2
/*34765*/       OPC_Scope, 11, /*->34778*/ // 2 children in Scope
/*34767*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*34769*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPMINUDrr), 0,
                      1/*#VTs*/, MVT::v4i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v4i32 405:iPTR, VR128:v4i32:$src1, VR128:v4i32:$src2) - Complexity = 8
                  // Dst: (VPMINUDrr:v4i32 VR128:v4i32:$src1, VR128:v4i32:$src2)
/*34778*/       /*Scope*/ 11, /*->34790*/
/*34779*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*34781*/         OPC_MorphNodeTo, TARGET_VAL(X86::PMINUDrr), 0,
                      1/*#VTs*/, MVT::v4i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v4i32 405:iPTR, VR128:v4i32:$src1, VR128:v4i32:$src2) - Complexity = 8
                  // Dst: (PMINUDrr:v4i32 VR128:v4i32:$src1, VR128:v4i32:$src2)
/*34790*/       0, /*End of Scope*/
/*34791*/     0, /*End of Scope*/
/*34792*/   /*Scope*/ 43|128,1/*171*/, /*->34965*/
/*34794*/     OPC_CheckInteger, 22|128,3/*406*/, 
/*34797*/     OPC_MoveParent,
/*34798*/     OPC_Scope, 67, /*->34867*/ // 3 children in Scope
/*34800*/       OPC_RecordChild1, // #0 = $src1
/*34801*/       OPC_MoveChild, 2,
/*34803*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*34806*/       OPC_MoveChild, 0,
/*34808*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*34811*/       OPC_RecordMemRef,
/*34812*/       OPC_RecordNode, // #1 = 'ld' chained node
/*34813*/       OPC_CheckFoldableChainNode,
/*34814*/       OPC_RecordChild1, // #2 = $src2
/*34815*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*34817*/       OPC_CheckPredicate, 3, // Predicate_load
/*34819*/       OPC_CheckPredicate, 23, // Predicate_memop
/*34821*/       OPC_CheckType, MVT::v16i8,
/*34823*/       OPC_MoveParent,
/*34824*/       OPC_MoveParent,
/*34825*/       OPC_Scope, 19, /*->34846*/ // 2 children in Scope
/*34827*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*34829*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*34832*/         OPC_EmitMergeInputChains1_1,
/*34833*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPMINUWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v8i16 406:iPTR, VR128:v8i16:$src1, (bitconvert:v8i16 (ld:v16i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 33
                  // Dst: (VPMINUWrm:v8i16 VR128:v8i16:$src1, addr:iPTR:$src2)
/*34846*/       /*Scope*/ 19, /*->34866*/
/*34847*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*34849*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*34852*/         OPC_EmitMergeInputChains1_1,
/*34853*/         OPC_MorphNodeTo, TARGET_VAL(X86::PMINUWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v8i16 406:iPTR, VR128:v8i16:$src1, (bitconvert:v8i16 (ld:v16i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 33
                  // Dst: (PMINUWrm:v8i16 VR128:v8i16:$src1, addr:iPTR:$src2)
/*34866*/       0, /*End of Scope*/
/*34867*/     /*Scope*/ 67, /*->34935*/
/*34868*/       OPC_MoveChild, 1,
/*34870*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*34873*/       OPC_MoveChild, 0,
/*34875*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*34878*/       OPC_RecordMemRef,
/*34879*/       OPC_RecordNode, // #0 = 'ld' chained node
/*34880*/       OPC_CheckFoldableChainNode,
/*34881*/       OPC_RecordChild1, // #1 = $src2
/*34882*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*34884*/       OPC_CheckPredicate, 3, // Predicate_load
/*34886*/       OPC_CheckPredicate, 23, // Predicate_memop
/*34888*/       OPC_CheckType, MVT::v16i8,
/*34890*/       OPC_MoveParent,
/*34891*/       OPC_MoveParent,
/*34892*/       OPC_RecordChild2, // #2 = $src1
/*34893*/       OPC_Scope, 19, /*->34914*/ // 2 children in Scope
/*34895*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*34897*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*34900*/         OPC_EmitMergeInputChains1_0,
/*34901*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPMINUWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v8i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v8i16 406:iPTR, (bitconvert:v8i16 (ld:v16i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>), VR128:v8i16:$src1) - Complexity = 33
                  // Dst: (VPMINUWrm:v8i16 VR128:v8i16:$src1, addr:iPTR:$src2)
/*34914*/       /*Scope*/ 19, /*->34934*/
/*34915*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*34917*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*34920*/         OPC_EmitMergeInputChains1_0,
/*34921*/         OPC_MorphNodeTo, TARGET_VAL(X86::PMINUWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v8i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v8i16 406:iPTR, (bitconvert:v8i16 (ld:v16i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>), VR128:v8i16:$src1) - Complexity = 33
                  // Dst: (PMINUWrm:v8i16 VR128:v8i16:$src1, addr:iPTR:$src2)
/*34934*/       0, /*End of Scope*/
/*34935*/     /*Scope*/ 28, /*->34964*/
/*34936*/       OPC_RecordChild1, // #0 = $src1
/*34937*/       OPC_RecordChild2, // #1 = $src2
/*34938*/       OPC_Scope, 11, /*->34951*/ // 2 children in Scope
/*34940*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*34942*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPMINUWrr), 0,
                      1/*#VTs*/, MVT::v8i16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v8i16 406:iPTR, VR128:v8i16:$src1, VR128:v8i16:$src2) - Complexity = 8
                  // Dst: (VPMINUWrr:v8i16 VR128:v8i16:$src1, VR128:v8i16:$src2)
/*34951*/       /*Scope*/ 11, /*->34963*/
/*34952*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*34954*/         OPC_MorphNodeTo, TARGET_VAL(X86::PMINUWrr), 0,
                      1/*#VTs*/, MVT::v8i16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v8i16 406:iPTR, VR128:v8i16:$src1, VR128:v8i16:$src2) - Complexity = 8
                  // Dst: (PMINUWrr:v8i16 VR128:v8i16:$src1, VR128:v8i16:$src2)
/*34963*/       0, /*End of Scope*/
/*34964*/     0, /*End of Scope*/
/*34965*/   /*Scope*/ 43|128,1/*171*/, /*->35138*/
/*34967*/     OPC_CheckInteger, 16|128,3/*400*/, 
/*34970*/     OPC_MoveParent,
/*34971*/     OPC_Scope, 67, /*->35040*/ // 3 children in Scope
/*34973*/       OPC_RecordChild1, // #0 = $src1
/*34974*/       OPC_MoveChild, 2,
/*34976*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*34979*/       OPC_MoveChild, 0,
/*34981*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*34984*/       OPC_RecordMemRef,
/*34985*/       OPC_RecordNode, // #1 = 'ld' chained node
/*34986*/       OPC_CheckFoldableChainNode,
/*34987*/       OPC_RecordChild1, // #2 = $src2
/*34988*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*34990*/       OPC_CheckPredicate, 3, // Predicate_load
/*34992*/       OPC_CheckPredicate, 23, // Predicate_memop
/*34994*/       OPC_CheckType, MVT::v16i8,
/*34996*/       OPC_MoveParent,
/*34997*/       OPC_MoveParent,
/*34998*/       OPC_Scope, 19, /*->35019*/ // 2 children in Scope
/*35000*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*35002*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*35005*/         OPC_EmitMergeInputChains1_1,
/*35006*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPMAXSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v4i32 400:iPTR, VR128:v4i32:$src1, (bitconvert:v4i32 (ld:v16i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 33
                  // Dst: (VPMAXSDrm:v4i32 VR128:v4i32:$src1, addr:iPTR:$src2)
/*35019*/       /*Scope*/ 19, /*->35039*/
/*35020*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*35022*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*35025*/         OPC_EmitMergeInputChains1_1,
/*35026*/         OPC_MorphNodeTo, TARGET_VAL(X86::PMAXSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v4i32 400:iPTR, VR128:v4i32:$src1, (bitconvert:v4i32 (ld:v16i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 33
                  // Dst: (PMAXSDrm:v4i32 VR128:v4i32:$src1, addr:iPTR:$src2)
/*35039*/       0, /*End of Scope*/
/*35040*/     /*Scope*/ 67, /*->35108*/
/*35041*/       OPC_MoveChild, 1,
/*35043*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*35046*/       OPC_MoveChild, 0,
/*35048*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*35051*/       OPC_RecordMemRef,
/*35052*/       OPC_RecordNode, // #0 = 'ld' chained node
/*35053*/       OPC_CheckFoldableChainNode,
/*35054*/       OPC_RecordChild1, // #1 = $src2
/*35055*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*35057*/       OPC_CheckPredicate, 3, // Predicate_load
/*35059*/       OPC_CheckPredicate, 23, // Predicate_memop
/*35061*/       OPC_CheckType, MVT::v16i8,
/*35063*/       OPC_MoveParent,
/*35064*/       OPC_MoveParent,
/*35065*/       OPC_RecordChild2, // #2 = $src1
/*35066*/       OPC_Scope, 19, /*->35087*/ // 2 children in Scope
/*35068*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*35070*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*35073*/         OPC_EmitMergeInputChains1_0,
/*35074*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPMAXSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v4i32 400:iPTR, (bitconvert:v4i32 (ld:v16i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>), VR128:v4i32:$src1) - Complexity = 33
                  // Dst: (VPMAXSDrm:v4i32 VR128:v4i32:$src1, addr:iPTR:$src2)
/*35087*/       /*Scope*/ 19, /*->35107*/
/*35088*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*35090*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*35093*/         OPC_EmitMergeInputChains1_0,
/*35094*/         OPC_MorphNodeTo, TARGET_VAL(X86::PMAXSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v4i32 400:iPTR, (bitconvert:v4i32 (ld:v16i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>), VR128:v4i32:$src1) - Complexity = 33
                  // Dst: (PMAXSDrm:v4i32 VR128:v4i32:$src1, addr:iPTR:$src2)
/*35107*/       0, /*End of Scope*/
/*35108*/     /*Scope*/ 28, /*->35137*/
/*35109*/       OPC_RecordChild1, // #0 = $src1
/*35110*/       OPC_RecordChild2, // #1 = $src2
/*35111*/       OPC_Scope, 11, /*->35124*/ // 2 children in Scope
/*35113*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*35115*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPMAXSDrr), 0,
                      1/*#VTs*/, MVT::v4i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v4i32 400:iPTR, VR128:v4i32:$src1, VR128:v4i32:$src2) - Complexity = 8
                  // Dst: (VPMAXSDrr:v4i32 VR128:v4i32:$src1, VR128:v4i32:$src2)
/*35124*/       /*Scope*/ 11, /*->35136*/
/*35125*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*35127*/         OPC_MorphNodeTo, TARGET_VAL(X86::PMAXSDrr), 0,
                      1/*#VTs*/, MVT::v4i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v4i32 400:iPTR, VR128:v4i32:$src1, VR128:v4i32:$src2) - Complexity = 8
                  // Dst: (PMAXSDrr:v4i32 VR128:v4i32:$src1, VR128:v4i32:$src2)
/*35136*/       0, /*End of Scope*/
/*35137*/     0, /*End of Scope*/
/*35138*/   /*Scope*/ 43|128,1/*171*/, /*->35311*/
/*35140*/     OPC_CheckInteger, 17|128,3/*401*/, 
/*35143*/     OPC_MoveParent,
/*35144*/     OPC_Scope, 67, /*->35213*/ // 3 children in Scope
/*35146*/       OPC_RecordChild1, // #0 = $src1
/*35147*/       OPC_MoveChild, 2,
/*35149*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*35152*/       OPC_MoveChild, 0,
/*35154*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*35157*/       OPC_RecordMemRef,
/*35158*/       OPC_RecordNode, // #1 = 'ld' chained node
/*35159*/       OPC_CheckFoldableChainNode,
/*35160*/       OPC_RecordChild1, // #2 = $src2
/*35161*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*35163*/       OPC_CheckPredicate, 3, // Predicate_load
/*35165*/       OPC_CheckPredicate, 23, // Predicate_memop
/*35167*/       OPC_CheckType, MVT::v16i8,
/*35169*/       OPC_MoveParent,
/*35170*/       OPC_MoveParent,
/*35171*/       OPC_Scope, 19, /*->35192*/ // 2 children in Scope
/*35173*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*35175*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*35178*/         OPC_EmitMergeInputChains1_1,
/*35179*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPMAXUDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v4i32 401:iPTR, VR128:v4i32:$src1, (bitconvert:v4i32 (ld:v16i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 33
                  // Dst: (VPMAXUDrm:v4i32 VR128:v4i32:$src1, addr:iPTR:$src2)
/*35192*/       /*Scope*/ 19, /*->35212*/
/*35193*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*35195*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*35198*/         OPC_EmitMergeInputChains1_1,
/*35199*/         OPC_MorphNodeTo, TARGET_VAL(X86::PMAXUDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v4i32 401:iPTR, VR128:v4i32:$src1, (bitconvert:v4i32 (ld:v16i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 33
                  // Dst: (PMAXUDrm:v4i32 VR128:v4i32:$src1, addr:iPTR:$src2)
/*35212*/       0, /*End of Scope*/
/*35213*/     /*Scope*/ 67, /*->35281*/
/*35214*/       OPC_MoveChild, 1,
/*35216*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*35219*/       OPC_MoveChild, 0,
/*35221*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*35224*/       OPC_RecordMemRef,
/*35225*/       OPC_RecordNode, // #0 = 'ld' chained node
/*35226*/       OPC_CheckFoldableChainNode,
/*35227*/       OPC_RecordChild1, // #1 = $src2
/*35228*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*35230*/       OPC_CheckPredicate, 3, // Predicate_load
/*35232*/       OPC_CheckPredicate, 23, // Predicate_memop
/*35234*/       OPC_CheckType, MVT::v16i8,
/*35236*/       OPC_MoveParent,
/*35237*/       OPC_MoveParent,
/*35238*/       OPC_RecordChild2, // #2 = $src1
/*35239*/       OPC_Scope, 19, /*->35260*/ // 2 children in Scope
/*35241*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*35243*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*35246*/         OPC_EmitMergeInputChains1_0,
/*35247*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPMAXUDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v4i32 401:iPTR, (bitconvert:v4i32 (ld:v16i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>), VR128:v4i32:$src1) - Complexity = 33
                  // Dst: (VPMAXUDrm:v4i32 VR128:v4i32:$src1, addr:iPTR:$src2)
/*35260*/       /*Scope*/ 19, /*->35280*/
/*35261*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*35263*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*35266*/         OPC_EmitMergeInputChains1_0,
/*35267*/         OPC_MorphNodeTo, TARGET_VAL(X86::PMAXUDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v4i32 401:iPTR, (bitconvert:v4i32 (ld:v16i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>), VR128:v4i32:$src1) - Complexity = 33
                  // Dst: (PMAXUDrm:v4i32 VR128:v4i32:$src1, addr:iPTR:$src2)
/*35280*/       0, /*End of Scope*/
/*35281*/     /*Scope*/ 28, /*->35310*/
/*35282*/       OPC_RecordChild1, // #0 = $src1
/*35283*/       OPC_RecordChild2, // #1 = $src2
/*35284*/       OPC_Scope, 11, /*->35297*/ // 2 children in Scope
/*35286*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*35288*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPMAXUDrr), 0,
                      1/*#VTs*/, MVT::v4i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v4i32 401:iPTR, VR128:v4i32:$src1, VR128:v4i32:$src2) - Complexity = 8
                  // Dst: (VPMAXUDrr:v4i32 VR128:v4i32:$src1, VR128:v4i32:$src2)
/*35297*/       /*Scope*/ 11, /*->35309*/
/*35298*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*35300*/         OPC_MorphNodeTo, TARGET_VAL(X86::PMAXUDrr), 0,
                      1/*#VTs*/, MVT::v4i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v4i32 401:iPTR, VR128:v4i32:$src1, VR128:v4i32:$src2) - Complexity = 8
                  // Dst: (PMAXUDrr:v4i32 VR128:v4i32:$src1, VR128:v4i32:$src2)
/*35309*/       0, /*End of Scope*/
/*35310*/     0, /*End of Scope*/
/*35311*/   /*Scope*/ 43|128,1/*171*/, /*->35484*/
/*35313*/     OPC_CheckInteger, 18|128,3/*402*/, 
/*35316*/     OPC_MoveParent,
/*35317*/     OPC_Scope, 67, /*->35386*/ // 3 children in Scope
/*35319*/       OPC_RecordChild1, // #0 = $src1
/*35320*/       OPC_MoveChild, 2,
/*35322*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*35325*/       OPC_MoveChild, 0,
/*35327*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*35330*/       OPC_RecordMemRef,
/*35331*/       OPC_RecordNode, // #1 = 'ld' chained node
/*35332*/       OPC_CheckFoldableChainNode,
/*35333*/       OPC_RecordChild1, // #2 = $src2
/*35334*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*35336*/       OPC_CheckPredicate, 3, // Predicate_load
/*35338*/       OPC_CheckPredicate, 23, // Predicate_memop
/*35340*/       OPC_CheckType, MVT::v16i8,
/*35342*/       OPC_MoveParent,
/*35343*/       OPC_MoveParent,
/*35344*/       OPC_Scope, 19, /*->35365*/ // 2 children in Scope
/*35346*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*35348*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*35351*/         OPC_EmitMergeInputChains1_1,
/*35352*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPMAXUWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v8i16 402:iPTR, VR128:v8i16:$src1, (bitconvert:v8i16 (ld:v16i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 33
                  // Dst: (VPMAXUWrm:v8i16 VR128:v8i16:$src1, addr:iPTR:$src2)
/*35365*/       /*Scope*/ 19, /*->35385*/
/*35366*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*35368*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*35371*/         OPC_EmitMergeInputChains1_1,
/*35372*/         OPC_MorphNodeTo, TARGET_VAL(X86::PMAXUWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v8i16 402:iPTR, VR128:v8i16:$src1, (bitconvert:v8i16 (ld:v16i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 33
                  // Dst: (PMAXUWrm:v8i16 VR128:v8i16:$src1, addr:iPTR:$src2)
/*35385*/       0, /*End of Scope*/
/*35386*/     /*Scope*/ 67, /*->35454*/
/*35387*/       OPC_MoveChild, 1,
/*35389*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*35392*/       OPC_MoveChild, 0,
/*35394*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*35397*/       OPC_RecordMemRef,
/*35398*/       OPC_RecordNode, // #0 = 'ld' chained node
/*35399*/       OPC_CheckFoldableChainNode,
/*35400*/       OPC_RecordChild1, // #1 = $src2
/*35401*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*35403*/       OPC_CheckPredicate, 3, // Predicate_load
/*35405*/       OPC_CheckPredicate, 23, // Predicate_memop
/*35407*/       OPC_CheckType, MVT::v16i8,
/*35409*/       OPC_MoveParent,
/*35410*/       OPC_MoveParent,
/*35411*/       OPC_RecordChild2, // #2 = $src1
/*35412*/       OPC_Scope, 19, /*->35433*/ // 2 children in Scope
/*35414*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*35416*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*35419*/         OPC_EmitMergeInputChains1_0,
/*35420*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPMAXUWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v8i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v8i16 402:iPTR, (bitconvert:v8i16 (ld:v16i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>), VR128:v8i16:$src1) - Complexity = 33
                  // Dst: (VPMAXUWrm:v8i16 VR128:v8i16:$src1, addr:iPTR:$src2)
/*35433*/       /*Scope*/ 19, /*->35453*/
/*35434*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*35436*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*35439*/         OPC_EmitMergeInputChains1_0,
/*35440*/         OPC_MorphNodeTo, TARGET_VAL(X86::PMAXUWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v8i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v8i16 402:iPTR, (bitconvert:v8i16 (ld:v16i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>), VR128:v8i16:$src1) - Complexity = 33
                  // Dst: (PMAXUWrm:v8i16 VR128:v8i16:$src1, addr:iPTR:$src2)
/*35453*/       0, /*End of Scope*/
/*35454*/     /*Scope*/ 28, /*->35483*/
/*35455*/       OPC_RecordChild1, // #0 = $src1
/*35456*/       OPC_RecordChild2, // #1 = $src2
/*35457*/       OPC_Scope, 11, /*->35470*/ // 2 children in Scope
/*35459*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*35461*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPMAXUWrr), 0,
                      1/*#VTs*/, MVT::v8i16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v8i16 402:iPTR, VR128:v8i16:$src1, VR128:v8i16:$src2) - Complexity = 8
                  // Dst: (VPMAXUWrr:v8i16 VR128:v8i16:$src1, VR128:v8i16:$src2)
/*35470*/       /*Scope*/ 11, /*->35482*/
/*35471*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*35473*/         OPC_MorphNodeTo, TARGET_VAL(X86::PMAXUWrr), 0,
                      1/*#VTs*/, MVT::v8i16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v8i16 402:iPTR, VR128:v8i16:$src1, VR128:v8i16:$src2) - Complexity = 8
                  // Dst: (PMAXUWrr:v8i16 VR128:v8i16:$src1, VR128:v8i16:$src2)
/*35482*/       0, /*End of Scope*/
/*35483*/     0, /*End of Scope*/
/*35484*/   /*Scope*/ 43|128,1/*171*/, /*->35657*/
/*35486*/     OPC_CheckInteger, 35|128,3/*419*/, 
/*35489*/     OPC_MoveParent,
/*35490*/     OPC_Scope, 67, /*->35559*/ // 3 children in Scope
/*35492*/       OPC_RecordChild1, // #0 = $src1
/*35493*/       OPC_MoveChild, 2,
/*35495*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*35498*/       OPC_MoveChild, 0,
/*35500*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*35503*/       OPC_RecordMemRef,
/*35504*/       OPC_RecordNode, // #1 = 'ld' chained node
/*35505*/       OPC_CheckFoldableChainNode,
/*35506*/       OPC_RecordChild1, // #2 = $src2
/*35507*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*35509*/       OPC_CheckPredicate, 3, // Predicate_load
/*35511*/       OPC_CheckPredicate, 23, // Predicate_memop
/*35513*/       OPC_CheckType, MVT::v16i8,
/*35515*/       OPC_MoveParent,
/*35516*/       OPC_MoveParent,
/*35517*/       OPC_Scope, 19, /*->35538*/ // 2 children in Scope
/*35519*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*35521*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*35524*/         OPC_EmitMergeInputChains1_1,
/*35525*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPMULDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v2i64 419:iPTR, VR128:v4i32:$src1, (bitconvert:v4i32 (ld:v16i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 33
                  // Dst: (VPMULDQrm:v2i64 VR128:v4i32:$src1, addr:iPTR:$src2)
/*35538*/       /*Scope*/ 19, /*->35558*/
/*35539*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*35541*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*35544*/         OPC_EmitMergeInputChains1_1,
/*35545*/         OPC_MorphNodeTo, TARGET_VAL(X86::PMULDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v2i64 419:iPTR, VR128:v4i32:$src1, (bitconvert:v4i32 (ld:v16i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 33
                  // Dst: (PMULDQrm:v2i64 VR128:v4i32:$src1, addr:iPTR:$src2)
/*35558*/       0, /*End of Scope*/
/*35559*/     /*Scope*/ 67, /*->35627*/
/*35560*/       OPC_MoveChild, 1,
/*35562*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*35565*/       OPC_MoveChild, 0,
/*35567*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*35570*/       OPC_RecordMemRef,
/*35571*/       OPC_RecordNode, // #0 = 'ld' chained node
/*35572*/       OPC_CheckFoldableChainNode,
/*35573*/       OPC_RecordChild1, // #1 = $src2
/*35574*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*35576*/       OPC_CheckPredicate, 3, // Predicate_load
/*35578*/       OPC_CheckPredicate, 23, // Predicate_memop
/*35580*/       OPC_CheckType, MVT::v16i8,
/*35582*/       OPC_MoveParent,
/*35583*/       OPC_MoveParent,
/*35584*/       OPC_RecordChild2, // #2 = $src1
/*35585*/       OPC_Scope, 19, /*->35606*/ // 2 children in Scope
/*35587*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*35589*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*35592*/         OPC_EmitMergeInputChains1_0,
/*35593*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPMULDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v2i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v2i64 419:iPTR, (bitconvert:v4i32 (ld:v16i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>), VR128:v4i32:$src1) - Complexity = 33
                  // Dst: (VPMULDQrm:v2i64 VR128:v4i32:$src1, addr:iPTR:$src2)
/*35606*/       /*Scope*/ 19, /*->35626*/
/*35607*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*35609*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*35612*/         OPC_EmitMergeInputChains1_0,
/*35613*/         OPC_MorphNodeTo, TARGET_VAL(X86::PMULDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v2i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v2i64 419:iPTR, (bitconvert:v4i32 (ld:v16i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>), VR128:v4i32:$src1) - Complexity = 33
                  // Dst: (PMULDQrm:v2i64 VR128:v4i32:$src1, addr:iPTR:$src2)
/*35626*/       0, /*End of Scope*/
/*35627*/     /*Scope*/ 28, /*->35656*/
/*35628*/       OPC_RecordChild1, // #0 = $src1
/*35629*/       OPC_RecordChild2, // #1 = $src2
/*35630*/       OPC_Scope, 11, /*->35643*/ // 2 children in Scope
/*35632*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*35634*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPMULDQrr), 0,
                      1/*#VTs*/, MVT::v2i64, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v2i64 419:iPTR, VR128:v4i32:$src1, VR128:v4i32:$src2) - Complexity = 8
                  // Dst: (VPMULDQrr:v2i64 VR128:v4i32:$src1, VR128:v4i32:$src2)
/*35643*/       /*Scope*/ 11, /*->35655*/
/*35644*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*35646*/         OPC_MorphNodeTo, TARGET_VAL(X86::PMULDQrr), 0,
                      1/*#VTs*/, MVT::v2i64, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v2i64 419:iPTR, VR128:v4i32:$src1, VR128:v4i32:$src2) - Complexity = 8
                  // Dst: (PMULDQrr:v2i64 VR128:v4i32:$src1, VR128:v4i32:$src2)
/*35655*/       0, /*End of Scope*/
/*35656*/     0, /*End of Scope*/
/*35657*/   /*Scope*/ 66|128,1/*194*/, /*->35853*/
/*35659*/     OPC_CheckInteger, 6|128,3/*390*/, 
/*35662*/     OPC_MoveParent,
/*35663*/     OPC_Scope, 72, /*->35737*/ // 3 children in Scope
/*35665*/       OPC_RecordChild1, // #0 = $src1
/*35666*/       OPC_MoveChild, 2,
/*35668*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*35671*/       OPC_RecordMemRef,
/*35672*/       OPC_RecordNode, // #1 = 'ld' chained node
/*35673*/       OPC_CheckFoldableChainNode,
/*35674*/       OPC_RecordChild1, // #2 = $src2
/*35675*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*35677*/       OPC_CheckPredicate, 3, // Predicate_load
/*35679*/       OPC_CheckPredicate, 23, // Predicate_memop
/*35681*/       OPC_MoveParent,
/*35682*/       OPC_RecordChild3, // #3 = $src3
/*35683*/       OPC_MoveChild, 3,
/*35685*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*35688*/       OPC_MoveParent,
/*35689*/       OPC_Scope, 22, /*->35713*/ // 2 children in Scope
/*35691*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*35693*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*35696*/         OPC_EmitMergeInputChains1_1,
/*35697*/         OPC_EmitConvertToTarget, 3,
/*35699*/         OPC_MorphNodeTo, TARGET_VAL(X86::VMPSADBWrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v16i8, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                  // Src: (intrinsic_wo_chain:v16i8 390:iPTR, VR128:v16i8:$src1, (ld:v16i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, (imm:i32):$src3) - Complexity = 33
                  // Dst: (VMPSADBWrmi:v16i8 VR128:v16i8:$src1, addr:iPTR:$src2, (imm:i32):$src3)
/*35713*/       /*Scope*/ 22, /*->35736*/
/*35714*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*35716*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*35719*/         OPC_EmitMergeInputChains1_1,
/*35720*/         OPC_EmitConvertToTarget, 3,
/*35722*/         OPC_MorphNodeTo, TARGET_VAL(X86::MPSADBWrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v16i8, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                  // Src: (intrinsic_wo_chain:v16i8 390:iPTR, VR128:v16i8:$src1, (ld:v16i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, (imm:i32):$src3) - Complexity = 33
                  // Dst: (MPSADBWrmi:v16i8 VR128:v16i8:$src1, addr:iPTR:$src2, (imm:i32):$src3)
/*35736*/       0, /*End of Scope*/
/*35737*/     /*Scope*/ 72, /*->35810*/
/*35738*/       OPC_MoveChild, 1,
/*35740*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*35743*/       OPC_RecordMemRef,
/*35744*/       OPC_RecordNode, // #0 = 'ld' chained node
/*35745*/       OPC_CheckFoldableChainNode,
/*35746*/       OPC_RecordChild1, // #1 = $src2
/*35747*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*35749*/       OPC_CheckPredicate, 3, // Predicate_load
/*35751*/       OPC_CheckPredicate, 23, // Predicate_memop
/*35753*/       OPC_MoveParent,
/*35754*/       OPC_RecordChild2, // #2 = $src1
/*35755*/       OPC_RecordChild3, // #3 = $src3
/*35756*/       OPC_MoveChild, 3,
/*35758*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*35761*/       OPC_MoveParent,
/*35762*/       OPC_Scope, 22, /*->35786*/ // 2 children in Scope
/*35764*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*35766*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*35769*/         OPC_EmitMergeInputChains1_0,
/*35770*/         OPC_EmitConvertToTarget, 3,
/*35772*/         OPC_MorphNodeTo, TARGET_VAL(X86::VMPSADBWrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v16i8, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 9, 
                  // Src: (intrinsic_wo_chain:v16i8 390:iPTR, (ld:v16i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, VR128:v16i8:$src1, (imm:i32):$src3) - Complexity = 33
                  // Dst: (VMPSADBWrmi:v16i8 VR128:v16i8:$src1, addr:iPTR:$src2, (imm:i32):$src3)
/*35786*/       /*Scope*/ 22, /*->35809*/
/*35787*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*35789*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*35792*/         OPC_EmitMergeInputChains1_0,
/*35793*/         OPC_EmitConvertToTarget, 3,
/*35795*/         OPC_MorphNodeTo, TARGET_VAL(X86::MPSADBWrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v16i8, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 9, 
                  // Src: (intrinsic_wo_chain:v16i8 390:iPTR, (ld:v16i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, VR128:v16i8:$src1, (imm:i32):$src3) - Complexity = 33
                  // Dst: (MPSADBWrmi:v16i8 VR128:v16i8:$src1, addr:iPTR:$src2, (imm:i32):$src3)
/*35809*/       0, /*End of Scope*/
/*35810*/     /*Scope*/ 41, /*->35852*/
/*35811*/       OPC_RecordChild1, // #0 = $src1
/*35812*/       OPC_RecordChild2, // #1 = $src2
/*35813*/       OPC_RecordChild3, // #2 = $src3
/*35814*/       OPC_MoveChild, 3,
/*35816*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*35819*/       OPC_MoveParent,
/*35820*/       OPC_Scope, 14, /*->35836*/ // 2 children in Scope
/*35822*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*35824*/         OPC_EmitConvertToTarget, 2,
/*35826*/         OPC_MorphNodeTo, TARGET_VAL(X86::VMPSADBWrri), 0,
                      1/*#VTs*/, MVT::v16i8, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (intrinsic_wo_chain:v16i8 390:iPTR, VR128:v16i8:$src1, VR128:v16i8:$src2, (imm:i32):$src3) - Complexity = 11
                  // Dst: (VMPSADBWrri:v16i8 VR128:v16i8:$src1, VR128:v16i8:$src2, (imm:i32):$src3)
/*35836*/       /*Scope*/ 14, /*->35851*/
/*35837*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*35839*/         OPC_EmitConvertToTarget, 2,
/*35841*/         OPC_MorphNodeTo, TARGET_VAL(X86::MPSADBWrri), 0,
                      1/*#VTs*/, MVT::v16i8, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (intrinsic_wo_chain:v16i8 390:iPTR, VR128:v16i8:$src1, VR128:v16i8:$src2, (imm:i32):$src3) - Complexity = 11
                  // Dst: (MPSADBWrri:v16i8 VR128:v16i8:$src1, VR128:v16i8:$src2, (imm:i32):$src3)
/*35851*/       0, /*End of Scope*/
/*35852*/     0, /*End of Scope*/
/*35853*/   /*Scope*/ 102, /*->35956*/
/*35854*/     OPC_CheckInteger, 55|128,3/*439*/, 
/*35857*/     OPC_MoveParent,
/*35858*/     OPC_RecordChild1, // #0 = $src1
/*35859*/     OPC_Scope, 66, /*->35927*/ // 2 children in Scope
/*35861*/       OPC_MoveChild, 2,
/*35863*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*35866*/       OPC_MoveChild, 0,
/*35868*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*35871*/       OPC_RecordMemRef,
/*35872*/       OPC_RecordNode, // #1 = 'ld' chained node
/*35873*/       OPC_CheckFoldableChainNode,
/*35874*/       OPC_RecordChild1, // #2 = $src2
/*35875*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*35877*/       OPC_CheckPredicate, 3, // Predicate_load
/*35879*/       OPC_CheckPredicate, 23, // Predicate_memop
/*35881*/       OPC_CheckType, MVT::v16i8,
/*35883*/       OPC_MoveParent,
/*35884*/       OPC_MoveParent,
/*35885*/       OPC_Scope, 19, /*->35906*/ // 2 children in Scope
/*35887*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*35889*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*35892*/         OPC_EmitMergeInputChains1_1,
/*35893*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPCMPGTQrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v2i64 439:iPTR, VR128:v2i64:$src1, (bitconvert:v2i64 (ld:v16i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 33
                  // Dst: (VPCMPGTQrm:v2i64 VR128:v2i64:$src1, addr:iPTR:$src2)
/*35906*/       /*Scope*/ 19, /*->35926*/
/*35907*/         OPC_CheckPatternPredicate, 11, // (Subtarget->hasSSE42())
/*35909*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*35912*/         OPC_EmitMergeInputChains1_1,
/*35913*/         OPC_MorphNodeTo, TARGET_VAL(X86::PCMPGTQrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v2i64 439:iPTR, VR128:v2i64:$src1, (bitconvert:v2i64 (ld:v16i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 33
                  // Dst: (PCMPGTQrm:v2i64 VR128:v2i64:$src1, addr:iPTR:$src2)
/*35926*/       0, /*End of Scope*/
/*35927*/     /*Scope*/ 27, /*->35955*/
/*35928*/       OPC_RecordChild2, // #1 = $src2
/*35929*/       OPC_Scope, 11, /*->35942*/ // 2 children in Scope
/*35931*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*35933*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPCMPGTQrr), 0,
                      1/*#VTs*/, MVT::v2i64, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v2i64 439:iPTR, VR128:v2i64:$src1, VR128:v2i64:$src2) - Complexity = 8
                  // Dst: (VPCMPGTQrr:v2i64 VR128:v2i64:$src1, VR128:v2i64:$src2)
/*35942*/       /*Scope*/ 11, /*->35954*/
/*35943*/         OPC_CheckPatternPredicate, 11, // (Subtarget->hasSSE42())
/*35945*/         OPC_MorphNodeTo, TARGET_VAL(X86::PCMPGTQrr), 0,
                      1/*#VTs*/, MVT::v2i64, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v2i64 439:iPTR, VR128:v2i64:$src1, VR128:v2i64:$src2) - Complexity = 8
                  // Dst: (PCMPGTQrr:v2i64 VR128:v2i64:$src1, VR128:v2i64:$src2)
/*35954*/       0, /*End of Scope*/
/*35955*/     0, /*End of Scope*/
/*35956*/   /*Scope*/ 114, /*->36071*/
/*35957*/     OPC_CheckInteger, 112, 
/*35959*/     OPC_MoveParent,
/*35960*/     OPC_Scope, 69, /*->36031*/ // 2 children in Scope
/*35962*/       OPC_MoveChild, 1,
/*35964*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*35967*/       OPC_RecordMemRef,
/*35968*/       OPC_RecordNode, // #0 = 'ld' chained node
/*35969*/       OPC_CheckFoldableChainNode,
/*35970*/       OPC_RecordChild1, // #1 = $src1
/*35971*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*35973*/       OPC_CheckPredicate, 3, // Predicate_load
/*35975*/       OPC_CheckPredicate, 23, // Predicate_memop
/*35977*/       OPC_MoveParent,
/*35978*/       OPC_RecordChild2, // #2 = $src2
/*35979*/       OPC_MoveChild, 2,
/*35981*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*35984*/       OPC_MoveParent,
/*35985*/       OPC_Scope, 21, /*->36008*/ // 2 children in Scope
/*35987*/         OPC_CheckPatternPredicate, 14, // (Subtarget->hasAVX()) && (Subtarget->hasAES())
/*35989*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #3 #4 #5 #6 #7
/*35992*/         OPC_EmitMergeInputChains1_0,
/*35993*/         OPC_EmitConvertToTarget, 2,
/*35995*/         OPC_MorphNodeTo, TARGET_VAL(X86::VAESKEYGENASSIST128rm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v2i64, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                  // Src: (intrinsic_wo_chain:v2i64 112:iPTR, (ld:v2i64 addr:iPTR:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, (imm:i8):$src2) - Complexity = 33
                  // Dst: (VAESKEYGENASSIST128rm:v2i64 addr:iPTR:$src1, (imm:i8):$src2)
/*36008*/       /*Scope*/ 21, /*->36030*/
/*36009*/         OPC_CheckPatternPredicate, 15, // (Subtarget->hasAES())
/*36011*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #3 #4 #5 #6 #7
/*36014*/         OPC_EmitMergeInputChains1_0,
/*36015*/         OPC_EmitConvertToTarget, 2,
/*36017*/         OPC_MorphNodeTo, TARGET_VAL(X86::AESKEYGENASSIST128rm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v2i64, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                  // Src: (intrinsic_wo_chain:v2i64 112:iPTR, (ld:v2i64 addr:iPTR:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, (imm:i8):$src2) - Complexity = 33
                  // Dst: (AESKEYGENASSIST128rm:v2i64 addr:iPTR:$src1, (imm:i8):$src2)
/*36030*/       0, /*End of Scope*/
/*36031*/     /*Scope*/ 38, /*->36070*/
/*36032*/       OPC_RecordChild1, // #0 = $src1
/*36033*/       OPC_RecordChild2, // #1 = $src2
/*36034*/       OPC_MoveChild, 2,
/*36036*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*36039*/       OPC_MoveParent,
/*36040*/       OPC_Scope, 13, /*->36055*/ // 2 children in Scope
/*36042*/         OPC_CheckPatternPredicate, 14, // (Subtarget->hasAVX()) && (Subtarget->hasAES())
/*36044*/         OPC_EmitConvertToTarget, 1,
/*36046*/         OPC_MorphNodeTo, TARGET_VAL(X86::VAESKEYGENASSIST128rr), 0,
                      1/*#VTs*/, MVT::v2i64, 2/*#Ops*/, 0, 2, 
                  // Src: (intrinsic_wo_chain:v2i64 112:iPTR, VR128:v2i64:$src1, (imm:i8):$src2) - Complexity = 11
                  // Dst: (VAESKEYGENASSIST128rr:v2i64 VR128:v2i64:$src1, (imm:i8):$src2)
/*36055*/       /*Scope*/ 13, /*->36069*/
/*36056*/         OPC_CheckPatternPredicate, 15, // (Subtarget->hasAES())
/*36058*/         OPC_EmitConvertToTarget, 1,
/*36060*/         OPC_MorphNodeTo, TARGET_VAL(X86::AESKEYGENASSIST128rr), 0,
                      1/*#VTs*/, MVT::v2i64, 2/*#Ops*/, 0, 2, 
                  // Src: (intrinsic_wo_chain:v2i64 112:iPTR, VR128:v2i64:$src1, (imm:i8):$src2) - Complexity = 11
                  // Dst: (AESKEYGENASSIST128rr:v2i64 VR128:v2i64:$src1, (imm:i8):$src2)
/*36069*/       0, /*End of Scope*/
/*36070*/     0, /*End of Scope*/
/*36071*/   /*Scope*/ 72, /*->36144*/
/*36072*/     OPC_CheckInteger, 52|128,1/*180*/, 
/*36075*/     OPC_MoveParent,
/*36076*/     OPC_RecordChild1, // #0 = $src1
/*36077*/     OPC_Scope, 43, /*->36122*/ // 2 children in Scope
/*36079*/       OPC_MoveChild, 2,
/*36081*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*36084*/       OPC_RecordMemRef,
/*36085*/       OPC_RecordNode, // #1 = 'ld' chained node
/*36086*/       OPC_CheckFoldableChainNode,
/*36087*/       OPC_RecordChild1, // #2 = $src2
/*36088*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*36090*/       OPC_CheckPredicate, 3, // Predicate_load
/*36092*/       OPC_CheckPredicate, 23, // Predicate_memop
/*36094*/       OPC_MoveParent,
/*36095*/       OPC_RecordChild3, // #3 = $src3
/*36096*/       OPC_MoveChild, 3,
/*36098*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*36101*/       OPC_MoveParent,
/*36102*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*36105*/       OPC_EmitMergeInputChains1_1,
/*36106*/       OPC_EmitConvertToTarget, 3,
/*36108*/       OPC_MorphNodeTo, TARGET_VAL(X86::VPERM2F128rm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v8i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                // Src: (intrinsic_wo_chain:v8i32 180:iPTR, VR256:v8i32:$src1, (ld:v8i32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, (imm:i8):$src3) - Complexity = 33
                // Dst: (VPERM2F128rm:v8i32 VR256:v8i32:$src1, addr:iPTR:$src2, (imm:i8):$src3)
/*36122*/     /*Scope*/ 20, /*->36143*/
/*36123*/       OPC_RecordChild2, // #1 = $src2
/*36124*/       OPC_RecordChild3, // #2 = $src3
/*36125*/       OPC_MoveChild, 3,
/*36127*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*36130*/       OPC_MoveParent,
/*36131*/       OPC_EmitConvertToTarget, 2,
/*36133*/       OPC_MorphNodeTo, TARGET_VAL(X86::VPERM2F128rr), 0,
                    1/*#VTs*/, MVT::v8i32, 3/*#Ops*/, 0, 1, 3, 
                // Src: (intrinsic_wo_chain:v8i32 180:iPTR, VR256:v8i32:$src1, VR256:v8i32:$src2, (imm:i8):$src3) - Complexity = 11
                // Dst: (VPERM2F128rr:v8i32 VR256:v8i32:$src1, VR256:v8i32:$src2, (imm:i8):$src3)
/*36143*/     0, /*End of Scope*/
/*36144*/   /*Scope*/ 122, /*->36267*/
/*36145*/     OPC_CheckInteger, 62|128,3/*446*/, 
/*36148*/     OPC_MoveParent,
/*36149*/     OPC_RecordChild1, // #0 = $src1
/*36150*/     OPC_Scope, 71, /*->36223*/ // 2 children in Scope
/*36152*/       OPC_MoveChild, 2,
/*36154*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*36157*/       OPC_RecordMemRef,
/*36158*/       OPC_RecordNode, // #1 = 'ld' chained node
/*36159*/       OPC_CheckFoldableChainNode,
/*36160*/       OPC_RecordChild1, // #2 = $src2
/*36161*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*36163*/       OPC_CheckPredicate, 3, // Predicate_load
/*36165*/       OPC_MoveParent,
/*36166*/       OPC_RecordChild3, // #3 = $src3
/*36167*/       OPC_MoveChild, 3,
/*36169*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*36172*/       OPC_MoveParent,
/*36173*/       OPC_Scope, 23, /*->36198*/ // 2 children in Scope
/*36175*/         OPC_CheckPatternPredicate, 11, // (Subtarget->hasSSE42())
/*36177*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*36180*/         OPC_EmitMergeInputChains1_1,
/*36181*/         OPC_EmitConvertToTarget, 3,
/*36183*/         OPC_MorphNodeTo, TARGET_VAL(X86::PCMPISTRM128MEM), 0|OPFL_Chain|OPFL_MemRefs,
                      2/*#VTs*/, MVT::v16i8, MVT::i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                  // Src: (intrinsic_wo_chain:v16i8 446:iPTR, VR128:v16i8:$src1, (ld:v16i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:i8):$src3) - Complexity = 33
                  // Dst: (PCMPISTRM128MEM:v16i8:i32 VR128:v16i8:$src1, addr:iPTR:$src2, (imm:i8):$src3)
/*36198*/       /*Scope*/ 23, /*->36222*/
/*36199*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*36201*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*36204*/         OPC_EmitMergeInputChains1_1,
/*36205*/         OPC_EmitConvertToTarget, 3,
/*36207*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPCMPISTRM128MEM), 0|OPFL_Chain|OPFL_MemRefs,
                      2/*#VTs*/, MVT::v16i8, MVT::i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                  // Src: (intrinsic_wo_chain:v16i8 446:iPTR, VR128:v16i8:$src1, (ld:v16i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:i8):$src3) - Complexity = 33
                  // Dst: (VPCMPISTRM128MEM:v16i8:i32 VR128:v16i8:$src1, addr:iPTR:$src2, (imm:i8):$src3)
/*36222*/       0, /*End of Scope*/
/*36223*/     /*Scope*/ 42, /*->36266*/
/*36224*/       OPC_RecordChild2, // #1 = $src2
/*36225*/       OPC_RecordChild3, // #2 = $src3
/*36226*/       OPC_MoveChild, 3,
/*36228*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*36231*/       OPC_MoveParent,
/*36232*/       OPC_Scope, 15, /*->36249*/ // 2 children in Scope
/*36234*/         OPC_CheckPatternPredicate, 11, // (Subtarget->hasSSE42())
/*36236*/         OPC_EmitConvertToTarget, 2,
/*36238*/         OPC_MorphNodeTo, TARGET_VAL(X86::PCMPISTRM128REG), 0,
                      2/*#VTs*/, MVT::v16i8, MVT::i32, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (intrinsic_wo_chain:v16i8 446:iPTR, VR128:v16i8:$src1, VR128:v16i8:$src2, (imm:i8):$src3) - Complexity = 11
                  // Dst: (PCMPISTRM128REG:v16i8:i32 VR128:v16i8:$src1, VR128:v16i8:$src2, (imm:i8):$src3)
/*36249*/       /*Scope*/ 15, /*->36265*/
/*36250*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*36252*/         OPC_EmitConvertToTarget, 2,
/*36254*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPCMPISTRM128REG), 0,
                      2/*#VTs*/, MVT::v16i8, MVT::i32, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (intrinsic_wo_chain:v16i8 446:iPTR, VR128:v16i8:$src1, VR128:v16i8:$src2, (imm:i8):$src3) - Complexity = 11
                  // Dst: (VPCMPISTRM128REG:v16i8:i32 VR128:v16i8:$src1, VR128:v16i8:$src2, (imm:i8):$src3)
/*36265*/       0, /*End of Scope*/
/*36266*/     0, /*End of Scope*/
/*36267*/   /*Scope*/ 25|128,1/*153*/, /*->36422*/
/*36269*/     OPC_CheckInteger, 54|128,3/*438*/, 
/*36272*/     OPC_MoveParent,
/*36273*/     OPC_RecordChild1, // #0 = $src1
/*36274*/     OPC_RecordChild2, // #1 = physreg input EAX
/*36275*/     OPC_Scope, 88, /*->36365*/ // 2 children in Scope
/*36277*/       OPC_MoveChild, 3,
/*36279*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*36282*/       OPC_RecordMemRef,
/*36283*/       OPC_RecordNode, // #2 = 'ld' chained node
/*36284*/       OPC_CheckFoldableChainNode,
/*36285*/       OPC_RecordChild1, // #3 = $src3
/*36286*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*36288*/       OPC_CheckPredicate, 3, // Predicate_load
/*36290*/       OPC_MoveParent,
/*36291*/       OPC_RecordChild4, // #4 = physreg input EDX
/*36292*/       OPC_RecordChild5, // #5 = $src5
/*36293*/       OPC_MoveChild, 5,
/*36295*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*36298*/       OPC_MoveParent,
/*36299*/       OPC_Scope, 31, /*->36332*/ // 2 children in Scope
/*36301*/         OPC_CheckPatternPredicate, 11, // (Subtarget->hasSSE42())
/*36303*/         OPC_CheckComplexPat, /*CP*/0, /*#*/3, // SelectAddr:$src3 #6 #7 #8 #9 #10
/*36306*/         OPC_EmitMergeInputChains, 1, 2, 
/*36309*/         OPC_EmitConvertToTarget, 5,
/*36311*/         OPC_EmitCopyToReg, 1, X86::EAX,
/*36314*/         OPC_EmitCopyToReg, 4, X86::EDX,
/*36317*/         OPC_MorphNodeTo, TARGET_VAL(X86::PCMPESTRM128MEM), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      2/*#VTs*/, MVT::v16i8, MVT::i32, 7/*#Ops*/, 0, 6, 7, 8, 9, 10, 11, 
                  // Src: (intrinsic_wo_chain:v16i8 438:iPTR, VR128:v16i8:$src1, EAX:i32, (ld:v16i8 addr:iPTR:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, EDX:i32, (imm:i8):$src5) - Complexity = 33
                  // Dst: (PCMPESTRM128MEM:v16i8:i32 VR128:v16i8:$src1, addr:iPTR:$src3, (imm:i8):$src5)
/*36332*/       /*Scope*/ 31, /*->36364*/
/*36333*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*36335*/         OPC_CheckComplexPat, /*CP*/0, /*#*/3, // SelectAddr:$src3 #6 #7 #8 #9 #10
/*36338*/         OPC_EmitMergeInputChains, 1, 2, 
/*36341*/         OPC_EmitConvertToTarget, 5,
/*36343*/         OPC_EmitCopyToReg, 1, X86::EAX,
/*36346*/         OPC_EmitCopyToReg, 4, X86::EDX,
/*36349*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPCMPESTRM128MEM), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      2/*#VTs*/, MVT::v16i8, MVT::i32, 7/*#Ops*/, 0, 6, 7, 8, 9, 10, 11, 
                  // Src: (intrinsic_wo_chain:v16i8 438:iPTR, VR128:v16i8:$src1, EAX:i32, (ld:v16i8 addr:iPTR:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, EDX:i32, (imm:i8):$src5) - Complexity = 33
                  // Dst: (VPCMPESTRM128MEM:v16i8:i32 VR128:v16i8:$src1, addr:iPTR:$src3, (imm:i8):$src5)
/*36364*/       0, /*End of Scope*/
/*36365*/     /*Scope*/ 55, /*->36421*/
/*36366*/       OPC_RecordChild3, // #2 = $src3
/*36367*/       OPC_RecordChild4, // #3 = physreg input EDX
/*36368*/       OPC_RecordChild5, // #4 = $src5
/*36369*/       OPC_MoveChild, 5,
/*36371*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*36374*/       OPC_MoveParent,
/*36375*/       OPC_Scope, 21, /*->36398*/ // 2 children in Scope
/*36377*/         OPC_CheckPatternPredicate, 11, // (Subtarget->hasSSE42())
/*36379*/         OPC_EmitConvertToTarget, 4,
/*36381*/         OPC_EmitCopyToReg, 1, X86::EAX,
/*36384*/         OPC_EmitCopyToReg, 3, X86::EDX,
/*36387*/         OPC_MorphNodeTo, TARGET_VAL(X86::PCMPESTRM128REG), 0|OPFL_GlueInput,
                      2/*#VTs*/, MVT::v16i8, MVT::i32, 3/*#Ops*/, 0, 2, 5, 
                  // Src: (intrinsic_wo_chain:v16i8 438:iPTR, VR128:v16i8:$src1, EAX:i32, VR128:v16i8:$src3, EDX:i32, (imm:i8):$src5) - Complexity = 11
                  // Dst: (PCMPESTRM128REG:v16i8:i32 VR128:v16i8:$src1, VR128:v16i8:$src3, (imm:i8):$src5)
/*36398*/       /*Scope*/ 21, /*->36420*/
/*36399*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*36401*/         OPC_EmitConvertToTarget, 4,
/*36403*/         OPC_EmitCopyToReg, 1, X86::EAX,
/*36406*/         OPC_EmitCopyToReg, 3, X86::EDX,
/*36409*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPCMPESTRM128REG), 0|OPFL_GlueInput,
                      2/*#VTs*/, MVT::v16i8, MVT::i32, 3/*#Ops*/, 0, 2, 5, 
                  // Src: (intrinsic_wo_chain:v16i8 438:iPTR, VR128:v16i8:$src1, EAX:i32, VR128:v16i8:$src3, EDX:i32, (imm:i8):$src5) - Complexity = 11
                  // Dst: (VPCMPESTRM128REG:v16i8:i32 VR128:v16i8:$src1, VR128:v16i8:$src3, (imm:i8):$src5)
/*36420*/       0, /*End of Scope*/
/*36421*/     0, /*End of Scope*/
/*36422*/   /*Scope*/ 89, /*->36512*/
/*36423*/     OPC_CheckInteger, 33|128,2/*289*/, 
/*36426*/     OPC_MoveParent,
/*36427*/     OPC_Scope, 56, /*->36485*/ // 2 children in Scope
/*36429*/       OPC_MoveChild, 1,
/*36431*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*36434*/       OPC_RecordMemRef,
/*36435*/       OPC_RecordNode, // #0 = 'ld' chained node
/*36436*/       OPC_CheckFoldableChainNode,
/*36437*/       OPC_RecordChild1, // #1 = $src
/*36438*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*36440*/       OPC_CheckPredicate, 3, // Predicate_load
/*36442*/       OPC_CheckPredicate, 23, // Predicate_memop
/*36444*/       OPC_MoveParent,
/*36445*/       OPC_Scope, 18, /*->36465*/ // 2 children in Scope
/*36447*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*36449*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*36452*/         OPC_EmitMergeInputChains1_0,
/*36453*/         OPC_MorphNodeTo, TARGET_VAL(X86::Int_VCVTPS2DQrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (intrinsic_wo_chain:v4i32 289:iPTR, (ld:v4f32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 30
                  // Dst: (Int_VCVTPS2DQrm:v4i32 addr:iPTR:$src)
/*36465*/       /*Scope*/ 18, /*->36484*/
/*36466*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*36468*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*36471*/         OPC_EmitMergeInputChains1_0,
/*36472*/         OPC_MorphNodeTo, TARGET_VAL(X86::Int_CVTPS2DQrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (intrinsic_wo_chain:v4i32 289:iPTR, (ld:v4f32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 30
                  // Dst: (Int_CVTPS2DQrm:v4i32 addr:iPTR:$src)
/*36484*/       0, /*End of Scope*/
/*36485*/     /*Scope*/ 25, /*->36511*/
/*36486*/       OPC_RecordChild1, // #0 = $src
/*36487*/       OPC_Scope, 10, /*->36499*/ // 2 children in Scope
/*36489*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*36491*/         OPC_MorphNodeTo, TARGET_VAL(X86::Int_VCVTPS2DQrr), 0,
                      1/*#VTs*/, MVT::v4i32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:v4i32 289:iPTR, VR128:v4f32:$src) - Complexity = 8
                  // Dst: (Int_VCVTPS2DQrr:v4i32 VR128:v4f32:$src)
/*36499*/       /*Scope*/ 10, /*->36510*/
/*36500*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*36502*/         OPC_MorphNodeTo, TARGET_VAL(X86::Int_CVTPS2DQrr), 0,
                      1/*#VTs*/, MVT::v4i32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:v4i32 289:iPTR, VR128:v4f32:$src) - Complexity = 8
                  // Dst: (Int_CVTPS2DQrr:v4i32 VR128:v4f32:$src)
/*36510*/       0, /*End of Scope*/
/*36511*/     0, /*End of Scope*/
/*36512*/   /*Scope*/ 89, /*->36602*/
/*36513*/     OPC_CheckInteger, 31|128,2/*287*/, 
/*36516*/     OPC_MoveParent,
/*36517*/     OPC_Scope, 56, /*->36575*/ // 2 children in Scope
/*36519*/       OPC_MoveChild, 1,
/*36521*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*36524*/       OPC_RecordMemRef,
/*36525*/       OPC_RecordNode, // #0 = 'ld' chained node
/*36526*/       OPC_CheckFoldableChainNode,
/*36527*/       OPC_RecordChild1, // #1 = $src
/*36528*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*36530*/       OPC_CheckPredicate, 3, // Predicate_load
/*36532*/       OPC_CheckPredicate, 23, // Predicate_memop
/*36534*/       OPC_MoveParent,
/*36535*/       OPC_Scope, 18, /*->36555*/ // 2 children in Scope
/*36537*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*36539*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*36542*/         OPC_EmitMergeInputChains1_0,
/*36543*/         OPC_MorphNodeTo, TARGET_VAL(X86::Int_VCVTPD2DQrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (intrinsic_wo_chain:v4i32 287:iPTR, (ld:v2f64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 30
                  // Dst: (Int_VCVTPD2DQrm:v4i32 addr:iPTR:$src)
/*36555*/       /*Scope*/ 18, /*->36574*/
/*36556*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*36558*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*36561*/         OPC_EmitMergeInputChains1_0,
/*36562*/         OPC_MorphNodeTo, TARGET_VAL(X86::Int_CVTPD2DQrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (intrinsic_wo_chain:v4i32 287:iPTR, (ld:v2f64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 30
                  // Dst: (Int_CVTPD2DQrm:v4i32 addr:iPTR:$src)
/*36574*/       0, /*End of Scope*/
/*36575*/     /*Scope*/ 25, /*->36601*/
/*36576*/       OPC_RecordChild1, // #0 = $src
/*36577*/       OPC_Scope, 10, /*->36589*/ // 2 children in Scope
/*36579*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*36581*/         OPC_MorphNodeTo, TARGET_VAL(X86::Int_VCVTPD2DQrr), 0,
                      1/*#VTs*/, MVT::v4i32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:v4i32 287:iPTR, VR128:v2f64:$src) - Complexity = 8
                  // Dst: (Int_VCVTPD2DQrr:v4i32 VR128:v2f64:$src)
/*36589*/       /*Scope*/ 10, /*->36600*/
/*36590*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*36592*/         OPC_MorphNodeTo, TARGET_VAL(X86::Int_CVTPD2DQrr), 0,
                      1/*#VTs*/, MVT::v4i32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:v4i32 287:iPTR, VR128:v2f64:$src) - Complexity = 8
                  // Dst: (Int_CVTPD2DQrr:v4i32 VR128:v2f64:$src)
/*36600*/       0, /*End of Scope*/
/*36601*/     0, /*End of Scope*/
/*36602*/   /*Scope*/ 89, /*->36692*/
/*36603*/     OPC_CheckInteger, 42|128,2/*298*/, 
/*36606*/     OPC_MoveParent,
/*36607*/     OPC_Scope, 56, /*->36665*/ // 2 children in Scope
/*36609*/       OPC_MoveChild, 1,
/*36611*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*36614*/       OPC_RecordMemRef,
/*36615*/       OPC_RecordNode, // #0 = 'ld' chained node
/*36616*/       OPC_CheckFoldableChainNode,
/*36617*/       OPC_RecordChild1, // #1 = $src
/*36618*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*36620*/       OPC_CheckPredicate, 3, // Predicate_load
/*36622*/       OPC_CheckPredicate, 23, // Predicate_memop
/*36624*/       OPC_MoveParent,
/*36625*/       OPC_Scope, 18, /*->36645*/ // 2 children in Scope
/*36627*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*36629*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*36632*/         OPC_EmitMergeInputChains1_0,
/*36633*/         OPC_MorphNodeTo, TARGET_VAL(X86::CVTTPS2DQrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (intrinsic_wo_chain:v4i32 298:iPTR, (ld:v4f32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 30
                  // Dst: (CVTTPS2DQrm:v4i32 addr:iPTR:$src)
/*36645*/       /*Scope*/ 18, /*->36664*/
/*36646*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*36648*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*36651*/         OPC_EmitMergeInputChains1_0,
/*36652*/         OPC_MorphNodeTo, TARGET_VAL(X86::Int_VCVTTPS2DQrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (intrinsic_wo_chain:v4i32 298:iPTR, (ld:v4f32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 30
                  // Dst: (Int_VCVTTPS2DQrm:v4i32 addr:iPTR:$src)
/*36664*/       0, /*End of Scope*/
/*36665*/     /*Scope*/ 25, /*->36691*/
/*36666*/       OPC_RecordChild1, // #0 = $src
/*36667*/       OPC_Scope, 10, /*->36679*/ // 2 children in Scope
/*36669*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*36671*/         OPC_MorphNodeTo, TARGET_VAL(X86::CVTTPS2DQrr), 0,
                      1/*#VTs*/, MVT::v4i32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:v4i32 298:iPTR, VR128:v4f32:$src) - Complexity = 8
                  // Dst: (CVTTPS2DQrr:v4i32 VR128:v4f32:$src)
/*36679*/       /*Scope*/ 10, /*->36690*/
/*36680*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*36682*/         OPC_MorphNodeTo, TARGET_VAL(X86::Int_VCVTTPS2DQrr), 0,
                      1/*#VTs*/, MVT::v4i32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:v4i32 298:iPTR, VR128:v4f32:$src) - Complexity = 8
                  // Dst: (Int_VCVTTPS2DQrr:v4i32 VR128:v4f32:$src)
/*36690*/       0, /*End of Scope*/
/*36691*/     0, /*End of Scope*/
/*36692*/   /*Scope*/ 89, /*->36782*/
/*36693*/     OPC_CheckInteger, 41|128,2/*297*/, 
/*36696*/     OPC_MoveParent,
/*36697*/     OPC_Scope, 56, /*->36755*/ // 2 children in Scope
/*36699*/       OPC_MoveChild, 1,
/*36701*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*36704*/       OPC_RecordMemRef,
/*36705*/       OPC_RecordNode, // #0 = 'ld' chained node
/*36706*/       OPC_CheckFoldableChainNode,
/*36707*/       OPC_RecordChild1, // #1 = $src
/*36708*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*36710*/       OPC_CheckPredicate, 3, // Predicate_load
/*36712*/       OPC_CheckPredicate, 23, // Predicate_memop
/*36714*/       OPC_MoveParent,
/*36715*/       OPC_Scope, 18, /*->36735*/ // 2 children in Scope
/*36717*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*36719*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*36722*/         OPC_EmitMergeInputChains1_0,
/*36723*/         OPC_MorphNodeTo, TARGET_VAL(X86::VCVTTPD2DQrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (intrinsic_wo_chain:v4i32 297:iPTR, (ld:v2f64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 30
                  // Dst: (VCVTTPD2DQrm:v4i32 addr:iPTR:$src)
/*36735*/       /*Scope*/ 18, /*->36754*/
/*36736*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*36738*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*36741*/         OPC_EmitMergeInputChains1_0,
/*36742*/         OPC_MorphNodeTo, TARGET_VAL(X86::CVTTPD2DQrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (intrinsic_wo_chain:v4i32 297:iPTR, (ld:v2f64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 30
                  // Dst: (CVTTPD2DQrm:v4i32 addr:iPTR:$src)
/*36754*/       0, /*End of Scope*/
/*36755*/     /*Scope*/ 25, /*->36781*/
/*36756*/       OPC_RecordChild1, // #0 = $src
/*36757*/       OPC_Scope, 10, /*->36769*/ // 2 children in Scope
/*36759*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*36761*/         OPC_MorphNodeTo, TARGET_VAL(X86::VCVTTPD2DQrr), 0,
                      1/*#VTs*/, MVT::v4i32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:v4i32 297:iPTR, VR128:v2f64:$src) - Complexity = 8
                  // Dst: (VCVTTPD2DQrr:v4i32 VR128:v2f64:$src)
/*36769*/       /*Scope*/ 10, /*->36780*/
/*36770*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*36772*/         OPC_MorphNodeTo, TARGET_VAL(X86::CVTTPD2DQrr), 0,
                      1/*#VTs*/, MVT::v4i32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:v4i32 297:iPTR, VR128:v2f64:$src) - Complexity = 8
                  // Dst: (CVTTPD2DQrr:v4i32 VR128:v2f64:$src)
/*36780*/       0, /*End of Scope*/
/*36781*/     0, /*End of Scope*/
/*36782*/   /*Scope*/ 48, /*->36831*/
/*36783*/     OPC_CheckInteger, 124, 
/*36785*/     OPC_MoveParent,
/*36786*/     OPC_Scope, 32, /*->36820*/ // 2 children in Scope
/*36788*/       OPC_MoveChild, 1,
/*36790*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*36793*/       OPC_RecordMemRef,
/*36794*/       OPC_RecordNode, // #0 = 'ld' chained node
/*36795*/       OPC_CheckFoldableChainNode,
/*36796*/       OPC_RecordChild1, // #1 = $src
/*36797*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*36799*/       OPC_CheckPredicate, 3, // Predicate_load
/*36801*/       OPC_CheckPredicate, 23, // Predicate_memop
/*36803*/       OPC_MoveParent,
/*36804*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*36807*/       OPC_EmitMergeInputChains1_0,
/*36808*/       OPC_MorphNodeTo, TARGET_VAL(X86::VCVTPS2DQYrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v8i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (intrinsic_wo_chain:v8i32 124:iPTR, (ld:v8f32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 30
                // Dst: (VCVTPS2DQYrm:v8i32 addr:iPTR:$src)
/*36820*/     /*Scope*/ 9, /*->36830*/
/*36821*/       OPC_RecordChild1, // #0 = $src
/*36822*/       OPC_MorphNodeTo, TARGET_VAL(X86::VCVTPS2DQYrr), 0,
                    1/*#VTs*/, MVT::v8i32, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:v8i32 124:iPTR, VR256:v8f32:$src) - Complexity = 8
                // Dst: (VCVTPS2DQYrr:v8i32 VR256:v8f32:$src)
/*36830*/     0, /*End of Scope*/
/*36831*/   /*Scope*/ 48, /*->36880*/
/*36832*/     OPC_CheckInteger, 127, 
/*36834*/     OPC_MoveParent,
/*36835*/     OPC_Scope, 32, /*->36869*/ // 2 children in Scope
/*36837*/       OPC_MoveChild, 1,
/*36839*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*36842*/       OPC_RecordMemRef,
/*36843*/       OPC_RecordNode, // #0 = 'ld' chained node
/*36844*/       OPC_CheckFoldableChainNode,
/*36845*/       OPC_RecordChild1, // #1 = $src
/*36846*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*36848*/       OPC_CheckPredicate, 3, // Predicate_load
/*36850*/       OPC_CheckPredicate, 23, // Predicate_memop
/*36852*/       OPC_MoveParent,
/*36853*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*36856*/       OPC_EmitMergeInputChains1_0,
/*36857*/       OPC_MorphNodeTo, TARGET_VAL(X86::VCVTTPD2DQYrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (intrinsic_wo_chain:v4i32 127:iPTR, (ld:v4f64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 30
                // Dst: (VCVTTPD2DQYrm:v4i32 addr:iPTR:$src)
/*36869*/     /*Scope*/ 9, /*->36879*/
/*36870*/       OPC_RecordChild1, // #0 = $src
/*36871*/       OPC_MorphNodeTo, TARGET_VAL(X86::VCVTTPD2DQYrr), 0,
                    1/*#VTs*/, MVT::v4i32, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:v4i32 127:iPTR, VR256:v4f64:$src) - Complexity = 8
                // Dst: (VCVTTPD2DQYrr:v4i32 VR256:v4f64:$src)
/*36879*/     0, /*End of Scope*/
/*36880*/   /*Scope*/ 49, /*->36930*/
/*36881*/     OPC_CheckInteger, 0|128,1/*128*/, 
/*36884*/     OPC_MoveParent,
/*36885*/     OPC_Scope, 32, /*->36919*/ // 2 children in Scope
/*36887*/       OPC_MoveChild, 1,
/*36889*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*36892*/       OPC_RecordMemRef,
/*36893*/       OPC_RecordNode, // #0 = 'ld' chained node
/*36894*/       OPC_CheckFoldableChainNode,
/*36895*/       OPC_RecordChild1, // #1 = $src
/*36896*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*36898*/       OPC_CheckPredicate, 3, // Predicate_load
/*36900*/       OPC_CheckPredicate, 23, // Predicate_memop
/*36902*/       OPC_MoveParent,
/*36903*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*36906*/       OPC_EmitMergeInputChains1_0,
/*36907*/       OPC_MorphNodeTo, TARGET_VAL(X86::VCVTTPS2DQYrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v8i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (intrinsic_wo_chain:v8i32 128:iPTR, (ld:v8f32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 30
                // Dst: (VCVTTPS2DQYrm:v8i32 addr:iPTR:$src)
/*36919*/     /*Scope*/ 9, /*->36929*/
/*36920*/       OPC_RecordChild1, // #0 = $src
/*36921*/       OPC_MorphNodeTo, TARGET_VAL(X86::VCVTTPS2DQYrr), 0,
                    1/*#VTs*/, MVT::v8i32, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:v8i32 128:iPTR, VR256:v8f32:$src) - Complexity = 8
                // Dst: (VCVTTPS2DQYrr:v8i32 VR256:v8f32:$src)
/*36929*/     0, /*End of Scope*/
/*36930*/   /*Scope*/ 94, /*->37025*/
/*36931*/     OPC_CheckInteger, 83|128,2/*339*/, 
/*36934*/     OPC_MoveParent,
/*36935*/     OPC_RecordChild1, // #0 = $src1
/*36936*/     OPC_Scope, 58, /*->36996*/ // 2 children in Scope
/*36938*/       OPC_MoveChild, 2,
/*36940*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*36943*/       OPC_RecordMemRef,
/*36944*/       OPC_RecordNode, // #1 = 'ld' chained node
/*36945*/       OPC_CheckFoldableChainNode,
/*36946*/       OPC_RecordChild1, // #2 = $src2
/*36947*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*36949*/       OPC_CheckPredicate, 3, // Predicate_load
/*36951*/       OPC_CheckPredicate, 23, // Predicate_memop
/*36953*/       OPC_MoveParent,
/*36954*/       OPC_Scope, 19, /*->36975*/ // 2 children in Scope
/*36956*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*36958*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*36961*/         OPC_EmitMergeInputChains1_1,
/*36962*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPSLLQrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v2i64 339:iPTR, VR128:v2i64:$src1, (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 30
                  // Dst: (VPSLLQrm:v2i64 VR128:v2i64:$src1, addr:iPTR:$src2)
/*36975*/       /*Scope*/ 19, /*->36995*/
/*36976*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*36978*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*36981*/         OPC_EmitMergeInputChains1_1,
/*36982*/         OPC_MorphNodeTo, TARGET_VAL(X86::PSLLQrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v2i64 339:iPTR, VR128:v2i64:$src1, (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 30
                  // Dst: (PSLLQrm:v2i64 VR128:v2i64:$src1, addr:iPTR:$src2)
/*36995*/       0, /*End of Scope*/
/*36996*/     /*Scope*/ 27, /*->37024*/
/*36997*/       OPC_RecordChild2, // #1 = $src2
/*36998*/       OPC_Scope, 11, /*->37011*/ // 2 children in Scope
/*37000*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*37002*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPSLLQrr), 0,
                      1/*#VTs*/, MVT::v2i64, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v2i64 339:iPTR, VR128:v2i64:$src1, VR128:v2i64:$src2) - Complexity = 8
                  // Dst: (VPSLLQrr:v2i64 VR128:v2i64:$src1, VR128:v2i64:$src2)
/*37011*/       /*Scope*/ 11, /*->37023*/
/*37012*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*37014*/         OPC_MorphNodeTo, TARGET_VAL(X86::PSLLQrr), 0,
                      1/*#VTs*/, MVT::v2i64, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v2i64 339:iPTR, VR128:v2i64:$src1, VR128:v2i64:$src2) - Complexity = 8
                  // Dst: (PSLLQrr:v2i64 VR128:v2i64:$src1, VR128:v2i64:$src2)
/*37023*/       0, /*End of Scope*/
/*37024*/     0, /*End of Scope*/
/*37025*/   /*Scope*/ 94, /*->37120*/
/*37026*/     OPC_CheckInteger, 95|128,2/*351*/, 
/*37029*/     OPC_MoveParent,
/*37030*/     OPC_RecordChild1, // #0 = $src1
/*37031*/     OPC_Scope, 58, /*->37091*/ // 2 children in Scope
/*37033*/       OPC_MoveChild, 2,
/*37035*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*37038*/       OPC_RecordMemRef,
/*37039*/       OPC_RecordNode, // #1 = 'ld' chained node
/*37040*/       OPC_CheckFoldableChainNode,
/*37041*/       OPC_RecordChild1, // #2 = $src2
/*37042*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*37044*/       OPC_CheckPredicate, 3, // Predicate_load
/*37046*/       OPC_CheckPredicate, 23, // Predicate_memop
/*37048*/       OPC_MoveParent,
/*37049*/       OPC_Scope, 19, /*->37070*/ // 2 children in Scope
/*37051*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*37053*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*37056*/         OPC_EmitMergeInputChains1_1,
/*37057*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPSRLQrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v2i64 351:iPTR, VR128:v2i64:$src1, (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 30
                  // Dst: (VPSRLQrm:v2i64 VR128:v2i64:$src1, addr:iPTR:$src2)
/*37070*/       /*Scope*/ 19, /*->37090*/
/*37071*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*37073*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*37076*/         OPC_EmitMergeInputChains1_1,
/*37077*/         OPC_MorphNodeTo, TARGET_VAL(X86::PSRLQrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v2i64 351:iPTR, VR128:v2i64:$src1, (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 30
                  // Dst: (PSRLQrm:v2i64 VR128:v2i64:$src1, addr:iPTR:$src2)
/*37090*/       0, /*End of Scope*/
/*37091*/     /*Scope*/ 27, /*->37119*/
/*37092*/       OPC_RecordChild2, // #1 = $src2
/*37093*/       OPC_Scope, 11, /*->37106*/ // 2 children in Scope
/*37095*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*37097*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPSRLQrr), 0,
                      1/*#VTs*/, MVT::v2i64, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v2i64 351:iPTR, VR128:v2i64:$src1, VR128:v2i64:$src2) - Complexity = 8
                  // Dst: (VPSRLQrr:v2i64 VR128:v2i64:$src1, VR128:v2i64:$src2)
/*37106*/       /*Scope*/ 11, /*->37118*/
/*37107*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*37109*/         OPC_MorphNodeTo, TARGET_VAL(X86::PSRLQrr), 0,
                      1/*#VTs*/, MVT::v2i64, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v2i64 351:iPTR, VR128:v2i64:$src1, VR128:v2i64:$src2) - Complexity = 8
                  // Dst: (PSRLQrr:v2i64 VR128:v2i64:$src1, VR128:v2i64:$src2)
/*37118*/       0, /*End of Scope*/
/*37119*/     0, /*End of Scope*/
/*37120*/   /*Scope*/ 48, /*->37169*/
/*37121*/     OPC_CheckInteger, 122, 
/*37123*/     OPC_MoveParent,
/*37124*/     OPC_Scope, 32, /*->37158*/ // 2 children in Scope
/*37126*/       OPC_MoveChild, 1,
/*37128*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*37131*/       OPC_RecordMemRef,
/*37132*/       OPC_RecordNode, // #0 = 'ld' chained node
/*37133*/       OPC_CheckFoldableChainNode,
/*37134*/       OPC_RecordChild1, // #1 = $src
/*37135*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*37137*/       OPC_CheckPredicate, 3, // Predicate_load
/*37139*/       OPC_CheckPredicate, 23, // Predicate_memop
/*37141*/       OPC_MoveParent,
/*37142*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*37145*/       OPC_EmitMergeInputChains1_0,
/*37146*/       OPC_MorphNodeTo, TARGET_VAL(X86::VCVTPD2DQYrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (intrinsic_wo_chain:v4i32 122:iPTR, (ld:v4f64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 30
                // Dst: (VCVTPD2DQYrm:v4i32 addr:iPTR:$src)
/*37158*/     /*Scope*/ 9, /*->37168*/
/*37159*/       OPC_RecordChild1, // #0 = $src
/*37160*/       OPC_MorphNodeTo, TARGET_VAL(X86::VCVTPD2DQYrr), 0,
                    1/*#VTs*/, MVT::v4i32, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:v4i32 122:iPTR, VR256:v4f64:$src) - Complexity = 8
                // Dst: (VCVTPD2DQYrr:v4i32 VR256:v4f64:$src)
/*37168*/     0, /*End of Scope*/
/*37169*/   /*Scope*/ 89, /*->37259*/
/*37170*/     OPC_CheckInteger, 110|128,3/*494*/, 
/*37173*/     OPC_MoveParent,
/*37174*/     OPC_Scope, 56, /*->37232*/ // 2 children in Scope
/*37176*/       OPC_MoveChild, 1,
/*37178*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*37181*/       OPC_RecordMemRef,
/*37182*/       OPC_RecordNode, // #0 = 'ld' chained node
/*37183*/       OPC_CheckFoldableChainNode,
/*37184*/       OPC_RecordChild1, // #1 = $src
/*37185*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*37187*/       OPC_CheckPredicate, 3, // Predicate_load
/*37189*/       OPC_CheckPredicate, 23, // Predicate_memop
/*37191*/       OPC_MoveParent,
/*37192*/       OPC_Scope, 18, /*->37212*/ // 2 children in Scope
/*37194*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*37196*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*37199*/         OPC_EmitMergeInputChains1_0,
/*37200*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPABSBrm128), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v16i8, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (intrinsic_wo_chain:v16i8 494:iPTR, (ld:v16i8 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 30
                  // Dst: (VPABSBrm128:v16i8 addr:iPTR:$src)
/*37212*/       /*Scope*/ 18, /*->37231*/
/*37213*/         OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*37215*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*37218*/         OPC_EmitMergeInputChains1_0,
/*37219*/         OPC_MorphNodeTo, TARGET_VAL(X86::PABSBrm128), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v16i8, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (intrinsic_wo_chain:v16i8 494:iPTR, (ld:v16i8 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 30
                  // Dst: (PABSBrm128:v16i8 addr:iPTR:$src)
/*37231*/       0, /*End of Scope*/
/*37232*/     /*Scope*/ 25, /*->37258*/
/*37233*/       OPC_RecordChild1, // #0 = $src
/*37234*/       OPC_Scope, 10, /*->37246*/ // 2 children in Scope
/*37236*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*37238*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPABSBrr128), 0,
                      1/*#VTs*/, MVT::v16i8, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:v16i8 494:iPTR, VR128:v16i8:$src) - Complexity = 8
                  // Dst: (VPABSBrr128:v16i8 VR128:v16i8:$src)
/*37246*/       /*Scope*/ 10, /*->37257*/
/*37247*/         OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*37249*/         OPC_MorphNodeTo, TARGET_VAL(X86::PABSBrr128), 0,
                      1/*#VTs*/, MVT::v16i8, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:v16i8 494:iPTR, VR128:v16i8:$src) - Complexity = 8
                  // Dst: (PABSBrr128:v16i8 VR128:v16i8:$src)
/*37257*/       0, /*End of Scope*/
/*37258*/     0, /*End of Scope*/
/*37259*/   /*Scope*/ 89, /*->37349*/
/*37260*/     OPC_CheckInteger, 114|128,3/*498*/, 
/*37263*/     OPC_MoveParent,
/*37264*/     OPC_Scope, 56, /*->37322*/ // 2 children in Scope
/*37266*/       OPC_MoveChild, 1,
/*37268*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*37271*/       OPC_RecordMemRef,
/*37272*/       OPC_RecordNode, // #0 = 'ld' chained node
/*37273*/       OPC_CheckFoldableChainNode,
/*37274*/       OPC_RecordChild1, // #1 = $src
/*37275*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*37277*/       OPC_CheckPredicate, 3, // Predicate_load
/*37279*/       OPC_CheckPredicate, 23, // Predicate_memop
/*37281*/       OPC_MoveParent,
/*37282*/       OPC_Scope, 18, /*->37302*/ // 2 children in Scope
/*37284*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*37286*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*37289*/         OPC_EmitMergeInputChains1_0,
/*37290*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPABSWrm128), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v8i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (intrinsic_wo_chain:v8i16 498:iPTR, (ld:v8i16 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 30
                  // Dst: (VPABSWrm128:v8i16 addr:iPTR:$src)
/*37302*/       /*Scope*/ 18, /*->37321*/
/*37303*/         OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*37305*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*37308*/         OPC_EmitMergeInputChains1_0,
/*37309*/         OPC_MorphNodeTo, TARGET_VAL(X86::PABSWrm128), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v8i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (intrinsic_wo_chain:v8i16 498:iPTR, (ld:v8i16 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 30
                  // Dst: (PABSWrm128:v8i16 addr:iPTR:$src)
/*37321*/       0, /*End of Scope*/
/*37322*/     /*Scope*/ 25, /*->37348*/
/*37323*/       OPC_RecordChild1, // #0 = $src
/*37324*/       OPC_Scope, 10, /*->37336*/ // 2 children in Scope
/*37326*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*37328*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPABSWrr128), 0,
                      1/*#VTs*/, MVT::v8i16, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:v8i16 498:iPTR, VR128:v8i16:$src) - Complexity = 8
                  // Dst: (VPABSWrr128:v8i16 VR128:v8i16:$src)
/*37336*/       /*Scope*/ 10, /*->37347*/
/*37337*/         OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*37339*/         OPC_MorphNodeTo, TARGET_VAL(X86::PABSWrr128), 0,
                      1/*#VTs*/, MVT::v8i16, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:v8i16 498:iPTR, VR128:v8i16:$src) - Complexity = 8
                  // Dst: (PABSWrr128:v8i16 VR128:v8i16:$src)
/*37347*/       0, /*End of Scope*/
/*37348*/     0, /*End of Scope*/
/*37349*/   /*Scope*/ 89, /*->37439*/
/*37350*/     OPC_CheckInteger, 112|128,3/*496*/, 
/*37353*/     OPC_MoveParent,
/*37354*/     OPC_Scope, 56, /*->37412*/ // 2 children in Scope
/*37356*/       OPC_MoveChild, 1,
/*37358*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*37361*/       OPC_RecordMemRef,
/*37362*/       OPC_RecordNode, // #0 = 'ld' chained node
/*37363*/       OPC_CheckFoldableChainNode,
/*37364*/       OPC_RecordChild1, // #1 = $src
/*37365*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*37367*/       OPC_CheckPredicate, 3, // Predicate_load
/*37369*/       OPC_CheckPredicate, 23, // Predicate_memop
/*37371*/       OPC_MoveParent,
/*37372*/       OPC_Scope, 18, /*->37392*/ // 2 children in Scope
/*37374*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*37376*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*37379*/         OPC_EmitMergeInputChains1_0,
/*37380*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPABSDrm128), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (intrinsic_wo_chain:v4i32 496:iPTR, (ld:v4i32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 30
                  // Dst: (VPABSDrm128:v4i32 addr:iPTR:$src)
/*37392*/       /*Scope*/ 18, /*->37411*/
/*37393*/         OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*37395*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*37398*/         OPC_EmitMergeInputChains1_0,
/*37399*/         OPC_MorphNodeTo, TARGET_VAL(X86::PABSDrm128), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (intrinsic_wo_chain:v4i32 496:iPTR, (ld:v4i32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 30
                  // Dst: (PABSDrm128:v4i32 addr:iPTR:$src)
/*37411*/       0, /*End of Scope*/
/*37412*/     /*Scope*/ 25, /*->37438*/
/*37413*/       OPC_RecordChild1, // #0 = $src
/*37414*/       OPC_Scope, 10, /*->37426*/ // 2 children in Scope
/*37416*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*37418*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPABSDrr128), 0,
                      1/*#VTs*/, MVT::v4i32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:v4i32 496:iPTR, VR128:v4i32:$src) - Complexity = 8
                  // Dst: (VPABSDrr128:v4i32 VR128:v4i32:$src)
/*37426*/       /*Scope*/ 10, /*->37437*/
/*37427*/         OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*37429*/         OPC_MorphNodeTo, TARGET_VAL(X86::PABSDrr128), 0,
                      1/*#VTs*/, MVT::v4i32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:v4i32 496:iPTR, VR128:v4i32:$src) - Complexity = 8
                  // Dst: (PABSDrr128:v4i32 VR128:v4i32:$src)
/*37437*/       0, /*End of Scope*/
/*37438*/     0, /*End of Scope*/
/*37439*/   /*Scope*/ 94, /*->37534*/
/*37440*/     OPC_CheckInteger, 4|128,4/*516*/, 
/*37443*/     OPC_MoveParent,
/*37444*/     OPC_RecordChild1, // #0 = $src1
/*37445*/     OPC_Scope, 58, /*->37505*/ // 2 children in Scope
/*37447*/       OPC_MoveChild, 2,
/*37449*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*37452*/       OPC_RecordMemRef,
/*37453*/       OPC_RecordNode, // #1 = 'ld' chained node
/*37454*/       OPC_CheckFoldableChainNode,
/*37455*/       OPC_RecordChild1, // #2 = $src2
/*37456*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*37458*/       OPC_CheckPredicate, 3, // Predicate_load
/*37460*/       OPC_CheckPredicate, 23, // Predicate_memop
/*37462*/       OPC_MoveParent,
/*37463*/       OPC_Scope, 19, /*->37484*/ // 2 children in Scope
/*37465*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*37467*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*37470*/         OPC_EmitMergeInputChains1_1,
/*37471*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPSHUFBrm128), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v16i8 516:iPTR, VR128:v16i8:$src1, (ld:v16i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 30
                  // Dst: (VPSHUFBrm128:v16i8 VR128:v16i8:$src1, addr:iPTR:$src2)
/*37484*/       /*Scope*/ 19, /*->37504*/
/*37485*/         OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*37487*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*37490*/         OPC_EmitMergeInputChains1_1,
/*37491*/         OPC_MorphNodeTo, TARGET_VAL(X86::PSHUFBrm128), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v16i8 516:iPTR, VR128:v16i8:$src1, (ld:v16i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 30
                  // Dst: (PSHUFBrm128:v16i8 VR128:v16i8:$src1, addr:iPTR:$src2)
/*37504*/       0, /*End of Scope*/
/*37505*/     /*Scope*/ 27, /*->37533*/
/*37506*/       OPC_RecordChild2, // #1 = $src2
/*37507*/       OPC_Scope, 11, /*->37520*/ // 2 children in Scope
/*37509*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*37511*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPSHUFBrr128), 0,
                      1/*#VTs*/, MVT::v16i8, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v16i8 516:iPTR, VR128:v16i8:$src1, VR128:v16i8:$src2) - Complexity = 8
                  // Dst: (VPSHUFBrr128:v16i8 VR128:v16i8:$src1, VR128:v16i8:$src2)
/*37520*/       /*Scope*/ 11, /*->37532*/
/*37521*/         OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*37523*/         OPC_MorphNodeTo, TARGET_VAL(X86::PSHUFBrr128), 0,
                      1/*#VTs*/, MVT::v16i8, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v16i8 516:iPTR, VR128:v16i8:$src1, VR128:v16i8:$src2) - Complexity = 8
                  // Dst: (PSHUFBrr128:v16i8 VR128:v16i8:$src1, VR128:v16i8:$src2)
/*37532*/       0, /*End of Scope*/
/*37533*/     0, /*End of Scope*/
/*37534*/   /*Scope*/ 94, /*->37629*/
/*37535*/     OPC_CheckInteger, 6|128,4/*518*/, 
/*37538*/     OPC_MoveParent,
/*37539*/     OPC_RecordChild1, // #0 = $src1
/*37540*/     OPC_Scope, 58, /*->37600*/ // 2 children in Scope
/*37542*/       OPC_MoveChild, 2,
/*37544*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*37547*/       OPC_RecordMemRef,
/*37548*/       OPC_RecordNode, // #1 = 'ld' chained node
/*37549*/       OPC_CheckFoldableChainNode,
/*37550*/       OPC_RecordChild1, // #2 = $src2
/*37551*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*37553*/       OPC_CheckPredicate, 3, // Predicate_load
/*37555*/       OPC_CheckPredicate, 23, // Predicate_memop
/*37557*/       OPC_MoveParent,
/*37558*/       OPC_Scope, 19, /*->37579*/ // 2 children in Scope
/*37560*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*37562*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*37565*/         OPC_EmitMergeInputChains1_1,
/*37566*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPSIGNBrm128), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v16i8 518:iPTR, VR128:v16i8:$src1, (ld:v16i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 30
                  // Dst: (VPSIGNBrm128:v16i8 VR128:v16i8:$src1, addr:iPTR:$src2)
/*37579*/       /*Scope*/ 19, /*->37599*/
/*37580*/         OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*37582*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*37585*/         OPC_EmitMergeInputChains1_1,
/*37586*/         OPC_MorphNodeTo, TARGET_VAL(X86::PSIGNBrm128), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v16i8 518:iPTR, VR128:v16i8:$src1, (ld:v16i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 30
                  // Dst: (PSIGNBrm128:v16i8 VR128:v16i8:$src1, addr:iPTR:$src2)
/*37599*/       0, /*End of Scope*/
/*37600*/     /*Scope*/ 27, /*->37628*/
/*37601*/       OPC_RecordChild2, // #1 = $src2
/*37602*/       OPC_Scope, 11, /*->37615*/ // 2 children in Scope
/*37604*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*37606*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPSIGNBrr128), 0,
                      1/*#VTs*/, MVT::v16i8, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v16i8 518:iPTR, VR128:v16i8:$src1, VR128:v16i8:$src2) - Complexity = 8
                  // Dst: (VPSIGNBrr128:v16i8 VR128:v16i8:$src1, VR128:v16i8:$src2)
/*37615*/       /*Scope*/ 11, /*->37627*/
/*37616*/         OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*37618*/         OPC_MorphNodeTo, TARGET_VAL(X86::PSIGNBrr128), 0,
                      1/*#VTs*/, MVT::v16i8, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v16i8 518:iPTR, VR128:v16i8:$src1, VR128:v16i8:$src2) - Complexity = 8
                  // Dst: (PSIGNBrr128:v16i8 VR128:v16i8:$src1, VR128:v16i8:$src2)
/*37627*/       0, /*End of Scope*/
/*37628*/     0, /*End of Scope*/
/*37629*/   /*Scope*/ 89, /*->37719*/
/*37630*/     OPC_CheckInteger, 14|128,3/*398*/, 
/*37633*/     OPC_MoveParent,
/*37634*/     OPC_Scope, 56, /*->37692*/ // 2 children in Scope
/*37636*/       OPC_MoveChild, 1,
/*37638*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*37641*/       OPC_RecordMemRef,
/*37642*/       OPC_RecordNode, // #0 = 'ld' chained node
/*37643*/       OPC_CheckFoldableChainNode,
/*37644*/       OPC_RecordChild1, // #1 = $src
/*37645*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*37647*/       OPC_CheckPredicate, 3, // Predicate_load
/*37649*/       OPC_CheckPredicate, 23, // Predicate_memop
/*37651*/       OPC_MoveParent,
/*37652*/       OPC_Scope, 18, /*->37672*/ // 2 children in Scope
/*37654*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*37656*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*37659*/         OPC_EmitMergeInputChains1_0,
/*37660*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPHMINPOSUWrm128), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v8i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (intrinsic_wo_chain:v8i16 398:iPTR, (ld:v8i16 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 30
                  // Dst: (VPHMINPOSUWrm128:v8i16 addr:iPTR:$src)
/*37672*/       /*Scope*/ 18, /*->37691*/
/*37673*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*37675*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*37678*/         OPC_EmitMergeInputChains1_0,
/*37679*/         OPC_MorphNodeTo, TARGET_VAL(X86::PHMINPOSUWrm128), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v8i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (intrinsic_wo_chain:v8i16 398:iPTR, (ld:v8i16 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 30
                  // Dst: (PHMINPOSUWrm128:v8i16 addr:iPTR:$src)
/*37691*/       0, /*End of Scope*/
/*37692*/     /*Scope*/ 25, /*->37718*/
/*37693*/       OPC_RecordChild1, // #0 = $src
/*37694*/       OPC_Scope, 10, /*->37706*/ // 2 children in Scope
/*37696*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*37698*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPHMINPOSUWrr128), 0,
                      1/*#VTs*/, MVT::v8i16, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:v8i16 398:iPTR, VR128:v8i16:$src) - Complexity = 8
                  // Dst: (VPHMINPOSUWrr128:v8i16 VR128:v8i16:$src)
/*37706*/       /*Scope*/ 10, /*->37717*/
/*37707*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*37709*/         OPC_MorphNodeTo, TARGET_VAL(X86::PHMINPOSUWrr128), 0,
                      1/*#VTs*/, MVT::v8i16, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:v8i16 398:iPTR, VR128:v8i16:$src) - Complexity = 8
                  // Dst: (PHMINPOSUWrr128:v8i16 VR128:v8i16:$src)
/*37717*/       0, /*End of Scope*/
/*37718*/     0, /*End of Scope*/
/*37719*/   /*Scope*/ 27|128,1/*155*/, /*->37876*/
/*37721*/     OPC_CheckInteger, 19|128,3/*403*/, 
/*37724*/     OPC_MoveParent,
/*37725*/     OPC_Scope, 59, /*->37786*/ // 3 children in Scope
/*37727*/       OPC_RecordChild1, // #0 = $src1
/*37728*/       OPC_MoveChild, 2,
/*37730*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*37733*/       OPC_RecordMemRef,
/*37734*/       OPC_RecordNode, // #1 = 'ld' chained node
/*37735*/       OPC_CheckFoldableChainNode,
/*37736*/       OPC_RecordChild1, // #2 = $src2
/*37737*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*37739*/       OPC_CheckPredicate, 3, // Predicate_load
/*37741*/       OPC_CheckPredicate, 23, // Predicate_memop
/*37743*/       OPC_MoveParent,
/*37744*/       OPC_Scope, 19, /*->37765*/ // 2 children in Scope
/*37746*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*37748*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*37751*/         OPC_EmitMergeInputChains1_1,
/*37752*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPMINSBrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v16i8 403:iPTR, VR128:v16i8:$src1, (ld:v16i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 30
                  // Dst: (VPMINSBrm:v16i8 VR128:v16i8:$src1, addr:iPTR:$src2)
/*37765*/       /*Scope*/ 19, /*->37785*/
/*37766*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*37768*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*37771*/         OPC_EmitMergeInputChains1_1,
/*37772*/         OPC_MorphNodeTo, TARGET_VAL(X86::PMINSBrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v16i8 403:iPTR, VR128:v16i8:$src1, (ld:v16i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 30
                  // Dst: (PMINSBrm:v16i8 VR128:v16i8:$src1, addr:iPTR:$src2)
/*37785*/       0, /*End of Scope*/
/*37786*/     /*Scope*/ 59, /*->37846*/
/*37787*/       OPC_MoveChild, 1,
/*37789*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*37792*/       OPC_RecordMemRef,
/*37793*/       OPC_RecordNode, // #0 = 'ld' chained node
/*37794*/       OPC_CheckFoldableChainNode,
/*37795*/       OPC_RecordChild1, // #1 = $src2
/*37796*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*37798*/       OPC_CheckPredicate, 3, // Predicate_load
/*37800*/       OPC_CheckPredicate, 23, // Predicate_memop
/*37802*/       OPC_MoveParent,
/*37803*/       OPC_RecordChild2, // #2 = $src1
/*37804*/       OPC_Scope, 19, /*->37825*/ // 2 children in Scope
/*37806*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*37808*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*37811*/         OPC_EmitMergeInputChains1_0,
/*37812*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPMINSBrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v16i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v16i8 403:iPTR, (ld:v16i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, VR128:v16i8:$src1) - Complexity = 30
                  // Dst: (VPMINSBrm:v16i8 VR128:v16i8:$src1, addr:iPTR:$src2)
/*37825*/       /*Scope*/ 19, /*->37845*/
/*37826*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*37828*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*37831*/         OPC_EmitMergeInputChains1_0,
/*37832*/         OPC_MorphNodeTo, TARGET_VAL(X86::PMINSBrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v16i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v16i8 403:iPTR, (ld:v16i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, VR128:v16i8:$src1) - Complexity = 30
                  // Dst: (PMINSBrm:v16i8 VR128:v16i8:$src1, addr:iPTR:$src2)
/*37845*/       0, /*End of Scope*/
/*37846*/     /*Scope*/ 28, /*->37875*/
/*37847*/       OPC_RecordChild1, // #0 = $src1
/*37848*/       OPC_RecordChild2, // #1 = $src2
/*37849*/       OPC_Scope, 11, /*->37862*/ // 2 children in Scope
/*37851*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*37853*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPMINSBrr), 0,
                      1/*#VTs*/, MVT::v16i8, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v16i8 403:iPTR, VR128:v16i8:$src1, VR128:v16i8:$src2) - Complexity = 8
                  // Dst: (VPMINSBrr:v16i8 VR128:v16i8:$src1, VR128:v16i8:$src2)
/*37862*/       /*Scope*/ 11, /*->37874*/
/*37863*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*37865*/         OPC_MorphNodeTo, TARGET_VAL(X86::PMINSBrr), 0,
                      1/*#VTs*/, MVT::v16i8, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v16i8 403:iPTR, VR128:v16i8:$src1, VR128:v16i8:$src2) - Complexity = 8
                  // Dst: (PMINSBrr:v16i8 VR128:v16i8:$src1, VR128:v16i8:$src2)
/*37874*/       0, /*End of Scope*/
/*37875*/     0, /*End of Scope*/
/*37876*/   /*Scope*/ 27|128,1/*155*/, /*->38033*/
/*37878*/     OPC_CheckInteger, 15|128,3/*399*/, 
/*37881*/     OPC_MoveParent,
/*37882*/     OPC_Scope, 59, /*->37943*/ // 3 children in Scope
/*37884*/       OPC_RecordChild1, // #0 = $src1
/*37885*/       OPC_MoveChild, 2,
/*37887*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*37890*/       OPC_RecordMemRef,
/*37891*/       OPC_RecordNode, // #1 = 'ld' chained node
/*37892*/       OPC_CheckFoldableChainNode,
/*37893*/       OPC_RecordChild1, // #2 = $src2
/*37894*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*37896*/       OPC_CheckPredicate, 3, // Predicate_load
/*37898*/       OPC_CheckPredicate, 23, // Predicate_memop
/*37900*/       OPC_MoveParent,
/*37901*/       OPC_Scope, 19, /*->37922*/ // 2 children in Scope
/*37903*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*37905*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*37908*/         OPC_EmitMergeInputChains1_1,
/*37909*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPMAXSBrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v16i8 399:iPTR, VR128:v16i8:$src1, (ld:v16i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 30
                  // Dst: (VPMAXSBrm:v16i8 VR128:v16i8:$src1, addr:iPTR:$src2)
/*37922*/       /*Scope*/ 19, /*->37942*/
/*37923*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*37925*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*37928*/         OPC_EmitMergeInputChains1_1,
/*37929*/         OPC_MorphNodeTo, TARGET_VAL(X86::PMAXSBrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v16i8 399:iPTR, VR128:v16i8:$src1, (ld:v16i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 30
                  // Dst: (PMAXSBrm:v16i8 VR128:v16i8:$src1, addr:iPTR:$src2)
/*37942*/       0, /*End of Scope*/
/*37943*/     /*Scope*/ 59, /*->38003*/
/*37944*/       OPC_MoveChild, 1,
/*37946*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*37949*/       OPC_RecordMemRef,
/*37950*/       OPC_RecordNode, // #0 = 'ld' chained node
/*37951*/       OPC_CheckFoldableChainNode,
/*37952*/       OPC_RecordChild1, // #1 = $src2
/*37953*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*37955*/       OPC_CheckPredicate, 3, // Predicate_load
/*37957*/       OPC_CheckPredicate, 23, // Predicate_memop
/*37959*/       OPC_MoveParent,
/*37960*/       OPC_RecordChild2, // #2 = $src1
/*37961*/       OPC_Scope, 19, /*->37982*/ // 2 children in Scope
/*37963*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*37965*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*37968*/         OPC_EmitMergeInputChains1_0,
/*37969*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPMAXSBrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v16i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v16i8 399:iPTR, (ld:v16i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, VR128:v16i8:$src1) - Complexity = 30
                  // Dst: (VPMAXSBrm:v16i8 VR128:v16i8:$src1, addr:iPTR:$src2)
/*37982*/       /*Scope*/ 19, /*->38002*/
/*37983*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*37985*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*37988*/         OPC_EmitMergeInputChains1_0,
/*37989*/         OPC_MorphNodeTo, TARGET_VAL(X86::PMAXSBrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v16i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v16i8 399:iPTR, (ld:v16i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, VR128:v16i8:$src1) - Complexity = 30
                  // Dst: (PMAXSBrm:v16i8 VR128:v16i8:$src1, addr:iPTR:$src2)
/*38002*/       0, /*End of Scope*/
/*38003*/     /*Scope*/ 28, /*->38032*/
/*38004*/       OPC_RecordChild1, // #0 = $src1
/*38005*/       OPC_RecordChild2, // #1 = $src2
/*38006*/       OPC_Scope, 11, /*->38019*/ // 2 children in Scope
/*38008*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*38010*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPMAXSBrr), 0,
                      1/*#VTs*/, MVT::v16i8, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v16i8 399:iPTR, VR128:v16i8:$src1, VR128:v16i8:$src2) - Complexity = 8
                  // Dst: (VPMAXSBrr:v16i8 VR128:v16i8:$src1, VR128:v16i8:$src2)
/*38019*/       /*Scope*/ 11, /*->38031*/
/*38020*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*38022*/         OPC_MorphNodeTo, TARGET_VAL(X86::PMAXSBrr), 0,
                      1/*#VTs*/, MVT::v16i8, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v16i8 399:iPTR, VR128:v16i8:$src1, VR128:v16i8:$src2) - Complexity = 8
                  // Dst: (PMAXSBrr:v16i8 VR128:v16i8:$src1, VR128:v16i8:$src2)
/*38031*/       0, /*End of Scope*/
/*38032*/     0, /*End of Scope*/
/*38033*/   /*Scope*/ 104, /*->38138*/
/*38034*/     OPC_CheckInteger, 8|128,3/*392*/, 
/*38037*/     OPC_MoveParent,
/*38038*/     OPC_RecordChild1, // #0 = $src1
/*38039*/     OPC_Scope, 63, /*->38104*/ // 2 children in Scope
/*38041*/       OPC_MoveChild, 2,
/*38043*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*38046*/       OPC_RecordMemRef,
/*38047*/       OPC_RecordNode, // #1 = 'ld' chained node
/*38048*/       OPC_CheckFoldableChainNode,
/*38049*/       OPC_RecordChild1, // #2 = $src2
/*38050*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*38052*/       OPC_CheckPredicate, 3, // Predicate_load
/*38054*/       OPC_CheckPredicate, 23, // Predicate_memop
/*38056*/       OPC_MoveParent,
/*38057*/       OPC_RecordChild3, // #3 = $src3
/*38058*/       OPC_Scope, 20, /*->38080*/ // 2 children in Scope
/*38060*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*38062*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*38065*/         OPC_EmitMergeInputChains1_1,
/*38066*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPBLENDVBrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v16i8, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                  // Src: (intrinsic_wo_chain:v16i8 392:iPTR, VR128:v16i8:$src1, (ld:v16i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, VR128:v16i8:$src3) - Complexity = 30
                  // Dst: (VPBLENDVBrm:v16i8 VR128:v16i8:$src1, addr:iPTR:$src2, VR128:v16i8:$src3)
/*38080*/       /*Scope*/ 22, /*->38103*/
/*38081*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*38083*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*38086*/         OPC_EmitMergeInputChains1_1,
/*38087*/         OPC_EmitCopyToReg, 3, X86::XMM0,
/*38090*/         OPC_MorphNodeTo, TARGET_VAL(X86::PBLENDVBrm0), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v16i8, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                  // Src: (intrinsic_wo_chain:v16i8 392:iPTR, VR128:v16i8:$src1, (ld:v16i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, XMM0:v16i8) - Complexity = 30
                  // Dst: (PBLENDVBrm0:v16i8 VR128:v16i8:$src1, addr:iPTR:$src2)
/*38103*/       0, /*End of Scope*/
/*38104*/     /*Scope*/ 32, /*->38137*/
/*38105*/       OPC_RecordChild2, // #1 = $src2
/*38106*/       OPC_RecordChild3, // #2 = $src3
/*38107*/       OPC_Scope, 12, /*->38121*/ // 2 children in Scope
/*38109*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*38111*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPBLENDVBrr), 0,
                      1/*#VTs*/, MVT::v16i8, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:v16i8 392:iPTR, VR128:v16i8:$src1, VR128:v16i8:$src2, VR128:v16i8:$src3) - Complexity = 8
                  // Dst: (VPBLENDVBrr:v16i8 VR128:v16i8:$src1, VR128:v16i8:$src2, VR128:v16i8:$src3)
/*38121*/       /*Scope*/ 14, /*->38136*/
/*38122*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*38124*/         OPC_EmitCopyToReg, 2, X86::XMM0,
/*38127*/         OPC_MorphNodeTo, TARGET_VAL(X86::PBLENDVBrr0), 0|OPFL_GlueInput,
                      1/*#VTs*/, MVT::v16i8, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v16i8 392:iPTR, VR128:v16i8:$src1, VR128:v16i8:$src2, XMM0:v16i8) - Complexity = 8
                  // Dst: (PBLENDVBrr0:v16i8 VR128:v16i8:$src1, VR128:v16i8:$src2)
/*38136*/       0, /*End of Scope*/
/*38137*/     0, /*End of Scope*/
/*38138*/   /*Scope*/ 88, /*->38227*/
/*38139*/     OPC_CheckInteger, 111, 
/*38141*/     OPC_MoveParent,
/*38142*/     OPC_Scope, 56, /*->38200*/ // 2 children in Scope
/*38144*/       OPC_MoveChild, 1,
/*38146*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*38149*/       OPC_RecordMemRef,
/*38150*/       OPC_RecordNode, // #0 = 'ld' chained node
/*38151*/       OPC_CheckFoldableChainNode,
/*38152*/       OPC_RecordChild1, // #1 = $src1
/*38153*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*38155*/       OPC_CheckPredicate, 3, // Predicate_load
/*38157*/       OPC_CheckPredicate, 23, // Predicate_memop
/*38159*/       OPC_MoveParent,
/*38160*/       OPC_Scope, 18, /*->38180*/ // 2 children in Scope
/*38162*/         OPC_CheckPatternPredicate, 14, // (Subtarget->hasAVX()) && (Subtarget->hasAES())
/*38164*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #2 #3 #4 #5 #6
/*38167*/         OPC_EmitMergeInputChains1_0,
/*38168*/         OPC_MorphNodeTo, TARGET_VAL(X86::VAESIMCrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (intrinsic_wo_chain:v2i64 111:iPTR, (ld:v2i64 addr:iPTR:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 30
                  // Dst: (VAESIMCrm:v2i64 addr:iPTR:$src1)
/*38180*/       /*Scope*/ 18, /*->38199*/
/*38181*/         OPC_CheckPatternPredicate, 15, // (Subtarget->hasAES())
/*38183*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #2 #3 #4 #5 #6
/*38186*/         OPC_EmitMergeInputChains1_0,
/*38187*/         OPC_MorphNodeTo, TARGET_VAL(X86::AESIMCrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (intrinsic_wo_chain:v2i64 111:iPTR, (ld:v2i64 addr:iPTR:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 30
                  // Dst: (AESIMCrm:v2i64 addr:iPTR:$src1)
/*38199*/       0, /*End of Scope*/
/*38200*/     /*Scope*/ 25, /*->38226*/
/*38201*/       OPC_RecordChild1, // #0 = $src1
/*38202*/       OPC_Scope, 10, /*->38214*/ // 2 children in Scope
/*38204*/         OPC_CheckPatternPredicate, 14, // (Subtarget->hasAVX()) && (Subtarget->hasAES())
/*38206*/         OPC_MorphNodeTo, TARGET_VAL(X86::VAESIMCrr), 0,
                      1/*#VTs*/, MVT::v2i64, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:v2i64 111:iPTR, VR128:v2i64:$src1) - Complexity = 8
                  // Dst: (VAESIMCrr:v2i64 VR128:v2i64:$src1)
/*38214*/       /*Scope*/ 10, /*->38225*/
/*38215*/         OPC_CheckPatternPredicate, 15, // (Subtarget->hasAES())
/*38217*/         OPC_MorphNodeTo, TARGET_VAL(X86::AESIMCrr), 0,
                      1/*#VTs*/, MVT::v2i64, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:v2i64 111:iPTR, VR128:v2i64:$src1) - Complexity = 8
                  // Dst: (AESIMCrr:v2i64 VR128:v2i64:$src1)
/*38225*/       0, /*End of Scope*/
/*38226*/     0, /*End of Scope*/
/*38227*/   /*Scope*/ 42, /*->38270*/
/*38228*/     OPC_CheckInteger, 87|128,2/*343*/, 
/*38231*/     OPC_MoveParent,
/*38232*/     OPC_RecordChild1, // #0 = $src1
/*38233*/     OPC_RecordChild2, // #1 = $src2
/*38234*/     OPC_MoveChild, 2,
/*38236*/     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*38239*/     OPC_MoveParent,
/*38240*/     OPC_Scope, 13, /*->38255*/ // 2 children in Scope
/*38242*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*38244*/       OPC_EmitConvertToTarget, 1,
/*38246*/       OPC_MorphNodeTo, TARGET_VAL(X86::VPSLLWri), 0,
                    1/*#VTs*/, MVT::v8i16, 2/*#Ops*/, 0, 2, 
                // Src: (intrinsic_wo_chain:v8i16 343:iPTR, VR128:v8i16:$src1, (imm:i32):$src2) - Complexity = 11
                // Dst: (VPSLLWri:v8i16 VR128:v8i16:$src1, (imm:i32):$src2)
/*38255*/     /*Scope*/ 13, /*->38269*/
/*38256*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*38258*/       OPC_EmitConvertToTarget, 1,
/*38260*/       OPC_MorphNodeTo, TARGET_VAL(X86::PSLLWri), 0,
                    1/*#VTs*/, MVT::v8i16, 2/*#Ops*/, 0, 2, 
                // Src: (intrinsic_wo_chain:v8i16 343:iPTR, VR128:v8i16:$src1, (imm:i32):$src2) - Complexity = 11
                // Dst: (PSLLWri:v8i16 VR128:v8i16:$src1, (imm:i32):$src2)
/*38269*/     0, /*End of Scope*/
/*38270*/   /*Scope*/ 42, /*->38313*/
/*38271*/     OPC_CheckInteger, 85|128,2/*341*/, 
/*38274*/     OPC_MoveParent,
/*38275*/     OPC_RecordChild1, // #0 = $src1
/*38276*/     OPC_RecordChild2, // #1 = $src2
/*38277*/     OPC_MoveChild, 2,
/*38279*/     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*38282*/     OPC_MoveParent,
/*38283*/     OPC_Scope, 13, /*->38298*/ // 2 children in Scope
/*38285*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*38287*/       OPC_EmitConvertToTarget, 1,
/*38289*/       OPC_MorphNodeTo, TARGET_VAL(X86::VPSLLDri), 0,
                    1/*#VTs*/, MVT::v4i32, 2/*#Ops*/, 0, 2, 
                // Src: (intrinsic_wo_chain:v4i32 341:iPTR, VR128:v4i32:$src1, (imm:i32):$src2) - Complexity = 11
                // Dst: (VPSLLDri:v4i32 VR128:v4i32:$src1, (imm:i32):$src2)
/*38298*/     /*Scope*/ 13, /*->38312*/
/*38299*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*38301*/       OPC_EmitConvertToTarget, 1,
/*38303*/       OPC_MorphNodeTo, TARGET_VAL(X86::PSLLDri), 0,
                    1/*#VTs*/, MVT::v4i32, 2/*#Ops*/, 0, 2, 
                // Src: (intrinsic_wo_chain:v4i32 341:iPTR, VR128:v4i32:$src1, (imm:i32):$src2) - Complexity = 11
                // Dst: (PSLLDri:v4i32 VR128:v4i32:$src1, (imm:i32):$src2)
/*38312*/     0, /*End of Scope*/
/*38313*/   /*Scope*/ 42, /*->38356*/
/*38314*/     OPC_CheckInteger, 86|128,2/*342*/, 
/*38317*/     OPC_MoveParent,
/*38318*/     OPC_RecordChild1, // #0 = $src1
/*38319*/     OPC_RecordChild2, // #1 = $src2
/*38320*/     OPC_MoveChild, 2,
/*38322*/     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*38325*/     OPC_MoveParent,
/*38326*/     OPC_Scope, 13, /*->38341*/ // 2 children in Scope
/*38328*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*38330*/       OPC_EmitConvertToTarget, 1,
/*38332*/       OPC_MorphNodeTo, TARGET_VAL(X86::VPSLLQri), 0,
                    1/*#VTs*/, MVT::v2i64, 2/*#Ops*/, 0, 2, 
                // Src: (intrinsic_wo_chain:v2i64 342:iPTR, VR128:v2i64:$src1, (imm:i32):$src2) - Complexity = 11
                // Dst: (VPSLLQri:v2i64 VR128:v2i64:$src1, (imm:i32):$src2)
/*38341*/     /*Scope*/ 13, /*->38355*/
/*38342*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*38344*/       OPC_EmitConvertToTarget, 1,
/*38346*/       OPC_MorphNodeTo, TARGET_VAL(X86::PSLLQri), 0,
                    1/*#VTs*/, MVT::v2i64, 2/*#Ops*/, 0, 2, 
                // Src: (intrinsic_wo_chain:v2i64 342:iPTR, VR128:v2i64:$src1, (imm:i32):$src2) - Complexity = 11
                // Dst: (PSLLQri:v2i64 VR128:v2i64:$src1, (imm:i32):$src2)
/*38355*/     0, /*End of Scope*/
/*38356*/   /*Scope*/ 42, /*->38399*/
/*38357*/     OPC_CheckInteger, 99|128,2/*355*/, 
/*38360*/     OPC_MoveParent,
/*38361*/     OPC_RecordChild1, // #0 = $src1
/*38362*/     OPC_RecordChild2, // #1 = $src2
/*38363*/     OPC_MoveChild, 2,
/*38365*/     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*38368*/     OPC_MoveParent,
/*38369*/     OPC_Scope, 13, /*->38384*/ // 2 children in Scope
/*38371*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*38373*/       OPC_EmitConvertToTarget, 1,
/*38375*/       OPC_MorphNodeTo, TARGET_VAL(X86::VPSRLWri), 0,
                    1/*#VTs*/, MVT::v8i16, 2/*#Ops*/, 0, 2, 
                // Src: (intrinsic_wo_chain:v8i16 355:iPTR, VR128:v8i16:$src1, (imm:i32):$src2) - Complexity = 11
                // Dst: (VPSRLWri:v8i16 VR128:v8i16:$src1, (imm:i32):$src2)
/*38384*/     /*Scope*/ 13, /*->38398*/
/*38385*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*38387*/       OPC_EmitConvertToTarget, 1,
/*38389*/       OPC_MorphNodeTo, TARGET_VAL(X86::PSRLWri), 0,
                    1/*#VTs*/, MVT::v8i16, 2/*#Ops*/, 0, 2, 
                // Src: (intrinsic_wo_chain:v8i16 355:iPTR, VR128:v8i16:$src1, (imm:i32):$src2) - Complexity = 11
                // Dst: (PSRLWri:v8i16 VR128:v8i16:$src1, (imm:i32):$src2)
/*38398*/     0, /*End of Scope*/
/*38399*/   /*Scope*/ 42, /*->38442*/
/*38400*/     OPC_CheckInteger, 97|128,2/*353*/, 
/*38403*/     OPC_MoveParent,
/*38404*/     OPC_RecordChild1, // #0 = $src1
/*38405*/     OPC_RecordChild2, // #1 = $src2
/*38406*/     OPC_MoveChild, 2,
/*38408*/     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*38411*/     OPC_MoveParent,
/*38412*/     OPC_Scope, 13, /*->38427*/ // 2 children in Scope
/*38414*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*38416*/       OPC_EmitConvertToTarget, 1,
/*38418*/       OPC_MorphNodeTo, TARGET_VAL(X86::VPSRLDri), 0,
                    1/*#VTs*/, MVT::v4i32, 2/*#Ops*/, 0, 2, 
                // Src: (intrinsic_wo_chain:v4i32 353:iPTR, VR128:v4i32:$src1, (imm:i32):$src2) - Complexity = 11
                // Dst: (VPSRLDri:v4i32 VR128:v4i32:$src1, (imm:i32):$src2)
/*38427*/     /*Scope*/ 13, /*->38441*/
/*38428*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*38430*/       OPC_EmitConvertToTarget, 1,
/*38432*/       OPC_MorphNodeTo, TARGET_VAL(X86::PSRLDri), 0,
                    1/*#VTs*/, MVT::v4i32, 2/*#Ops*/, 0, 2, 
                // Src: (intrinsic_wo_chain:v4i32 353:iPTR, VR128:v4i32:$src1, (imm:i32):$src2) - Complexity = 11
                // Dst: (PSRLDri:v4i32 VR128:v4i32:$src1, (imm:i32):$src2)
/*38441*/     0, /*End of Scope*/
/*38442*/   /*Scope*/ 42, /*->38485*/
/*38443*/     OPC_CheckInteger, 98|128,2/*354*/, 
/*38446*/     OPC_MoveParent,
/*38447*/     OPC_RecordChild1, // #0 = $src1
/*38448*/     OPC_RecordChild2, // #1 = $src2
/*38449*/     OPC_MoveChild, 2,
/*38451*/     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*38454*/     OPC_MoveParent,
/*38455*/     OPC_Scope, 13, /*->38470*/ // 2 children in Scope
/*38457*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*38459*/       OPC_EmitConvertToTarget, 1,
/*38461*/       OPC_MorphNodeTo, TARGET_VAL(X86::VPSRLQri), 0,
                    1/*#VTs*/, MVT::v2i64, 2/*#Ops*/, 0, 2, 
                // Src: (intrinsic_wo_chain:v2i64 354:iPTR, VR128:v2i64:$src1, (imm:i32):$src2) - Complexity = 11
                // Dst: (VPSRLQri:v2i64 VR128:v2i64:$src1, (imm:i32):$src2)
/*38470*/     /*Scope*/ 13, /*->38484*/
/*38471*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*38473*/       OPC_EmitConvertToTarget, 1,
/*38475*/       OPC_MorphNodeTo, TARGET_VAL(X86::PSRLQri), 0,
                    1/*#VTs*/, MVT::v2i64, 2/*#Ops*/, 0, 2, 
                // Src: (intrinsic_wo_chain:v2i64 354:iPTR, VR128:v2i64:$src1, (imm:i32):$src2) - Complexity = 11
                // Dst: (PSRLQri:v2i64 VR128:v2i64:$src1, (imm:i32):$src2)
/*38484*/     0, /*End of Scope*/
/*38485*/   /*Scope*/ 42, /*->38528*/
/*38486*/     OPC_CheckInteger, 91|128,2/*347*/, 
/*38489*/     OPC_MoveParent,
/*38490*/     OPC_RecordChild1, // #0 = $src1
/*38491*/     OPC_RecordChild2, // #1 = $src2
/*38492*/     OPC_MoveChild, 2,
/*38494*/     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*38497*/     OPC_MoveParent,
/*38498*/     OPC_Scope, 13, /*->38513*/ // 2 children in Scope
/*38500*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*38502*/       OPC_EmitConvertToTarget, 1,
/*38504*/       OPC_MorphNodeTo, TARGET_VAL(X86::VPSRAWri), 0,
                    1/*#VTs*/, MVT::v8i16, 2/*#Ops*/, 0, 2, 
                // Src: (intrinsic_wo_chain:v8i16 347:iPTR, VR128:v8i16:$src1, (imm:i32):$src2) - Complexity = 11
                // Dst: (VPSRAWri:v8i16 VR128:v8i16:$src1, (imm:i32):$src2)
/*38513*/     /*Scope*/ 13, /*->38527*/
/*38514*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*38516*/       OPC_EmitConvertToTarget, 1,
/*38518*/       OPC_MorphNodeTo, TARGET_VAL(X86::PSRAWri), 0,
                    1/*#VTs*/, MVT::v8i16, 2/*#Ops*/, 0, 2, 
                // Src: (intrinsic_wo_chain:v8i16 347:iPTR, VR128:v8i16:$src1, (imm:i32):$src2) - Complexity = 11
                // Dst: (PSRAWri:v8i16 VR128:v8i16:$src1, (imm:i32):$src2)
/*38527*/     0, /*End of Scope*/
/*38528*/   /*Scope*/ 42, /*->38571*/
/*38529*/     OPC_CheckInteger, 90|128,2/*346*/, 
/*38532*/     OPC_MoveParent,
/*38533*/     OPC_RecordChild1, // #0 = $src1
/*38534*/     OPC_RecordChild2, // #1 = $src2
/*38535*/     OPC_MoveChild, 2,
/*38537*/     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*38540*/     OPC_MoveParent,
/*38541*/     OPC_Scope, 13, /*->38556*/ // 2 children in Scope
/*38543*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*38545*/       OPC_EmitConvertToTarget, 1,
/*38547*/       OPC_MorphNodeTo, TARGET_VAL(X86::VPSRADri), 0,
                    1/*#VTs*/, MVT::v4i32, 2/*#Ops*/, 0, 2, 
                // Src: (intrinsic_wo_chain:v4i32 346:iPTR, VR128:v4i32:$src1, (imm:i32):$src2) - Complexity = 11
                // Dst: (VPSRADri:v4i32 VR128:v4i32:$src1, (imm:i32):$src2)
/*38556*/     /*Scope*/ 13, /*->38570*/
/*38557*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*38559*/       OPC_EmitConvertToTarget, 1,
/*38561*/       OPC_MorphNodeTo, TARGET_VAL(X86::PSRADri), 0,
                    1/*#VTs*/, MVT::v4i32, 2/*#Ops*/, 0, 2, 
                // Src: (intrinsic_wo_chain:v4i32 346:iPTR, VR128:v4i32:$src1, (imm:i32):$src2) - Complexity = 11
                // Dst: (PSRADri:v4i32 VR128:v4i32:$src1, (imm:i32):$src2)
/*38570*/     0, /*End of Scope*/
/*38571*/   /*Scope*/ 48, /*->38620*/
/*38572*/     OPC_CheckInteger, 81|128,2/*337*/, 
/*38575*/     OPC_MoveParent,
/*38576*/     OPC_RecordChild1, // #0 = $src1
/*38577*/     OPC_RecordChild2, // #1 = $src2
/*38578*/     OPC_MoveChild, 2,
/*38580*/     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*38583*/     OPC_MoveParent,
/*38584*/     OPC_Scope, 16, /*->38602*/ // 2 children in Scope
/*38586*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*38588*/       OPC_EmitConvertToTarget, 1,
/*38590*/       OPC_EmitNodeXForm, 0, 2, // BYTE_imm
/*38593*/       OPC_MorphNodeTo, TARGET_VAL(X86::VPSLLDQri), 0,
                    1/*#VTs*/, MVT::v2i64, 2/*#Ops*/, 0, 3, 
                // Src: (intrinsic_wo_chain:v2i64 337:iPTR, VR128:v2i64:$src1, (imm:i32):$src2) - Complexity = 11
                // Dst: (VPSLLDQri:v2i64 VR128:v2i64:$src1, (BYTE_imm:i32 (imm:i32):$src2))
/*38602*/     /*Scope*/ 16, /*->38619*/
/*38603*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*38605*/       OPC_EmitConvertToTarget, 1,
/*38607*/       OPC_EmitNodeXForm, 0, 2, // BYTE_imm
/*38610*/       OPC_MorphNodeTo, TARGET_VAL(X86::PSLLDQri), 0,
                    1/*#VTs*/, MVT::v2i64, 2/*#Ops*/, 0, 3, 
                // Src: (intrinsic_wo_chain:v2i64 337:iPTR, VR128:v2i64:$src1, (imm:i32):$src2) - Complexity = 11
                // Dst: (PSLLDQri:v2i64 VR128:v2i64:$src1, (BYTE_imm:i32 (imm:i32):$src2))
/*38619*/     0, /*End of Scope*/
/*38620*/   /*Scope*/ 48, /*->38669*/
/*38621*/     OPC_CheckInteger, 93|128,2/*349*/, 
/*38624*/     OPC_MoveParent,
/*38625*/     OPC_RecordChild1, // #0 = $src1
/*38626*/     OPC_RecordChild2, // #1 = $src2
/*38627*/     OPC_MoveChild, 2,
/*38629*/     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*38632*/     OPC_MoveParent,
/*38633*/     OPC_Scope, 16, /*->38651*/ // 2 children in Scope
/*38635*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*38637*/       OPC_EmitConvertToTarget, 1,
/*38639*/       OPC_EmitNodeXForm, 0, 2, // BYTE_imm
/*38642*/       OPC_MorphNodeTo, TARGET_VAL(X86::VPSRLDQri), 0,
                    1/*#VTs*/, MVT::v2i64, 2/*#Ops*/, 0, 3, 
                // Src: (intrinsic_wo_chain:v2i64 349:iPTR, VR128:v2i64:$src1, (imm:i32):$src2) - Complexity = 11
                // Dst: (VPSRLDQri:v2i64 VR128:v2i64:$src1, (BYTE_imm:i32 (imm:i32):$src2))
/*38651*/     /*Scope*/ 16, /*->38668*/
/*38652*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*38654*/       OPC_EmitConvertToTarget, 1,
/*38656*/       OPC_EmitNodeXForm, 0, 2, // BYTE_imm
/*38659*/       OPC_MorphNodeTo, TARGET_VAL(X86::PSRLDQri), 0,
                    1/*#VTs*/, MVT::v2i64, 2/*#Ops*/, 0, 3, 
                // Src: (intrinsic_wo_chain:v2i64 349:iPTR, VR128:v2i64:$src1, (imm:i32):$src2) - Complexity = 11
                // Dst: (PSRLDQri:v2i64 VR128:v2i64:$src1, (BYTE_imm:i32 (imm:i32):$src2))
/*38668*/     0, /*End of Scope*/
/*38669*/   /*Scope*/ 42, /*->38712*/
/*38670*/     OPC_CheckInteger, 82|128,2/*338*/, 
/*38673*/     OPC_MoveParent,
/*38674*/     OPC_RecordChild1, // #0 = $src1
/*38675*/     OPC_RecordChild2, // #1 = $src2
/*38676*/     OPC_MoveChild, 2,
/*38678*/     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*38681*/     OPC_MoveParent,
/*38682*/     OPC_Scope, 13, /*->38697*/ // 2 children in Scope
/*38684*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*38686*/       OPC_EmitConvertToTarget, 1,
/*38688*/       OPC_MorphNodeTo, TARGET_VAL(X86::VPSLLDQri), 0,
                    1/*#VTs*/, MVT::v2i64, 2/*#Ops*/, 0, 2, 
                // Src: (intrinsic_wo_chain:v2i64 338:iPTR, VR128:v2i64:$src1, (imm:i32):$src2) - Complexity = 11
                // Dst: (VPSLLDQri:v2i64 VR128:v2i64:$src1, (imm:i32):$src2)
/*38697*/     /*Scope*/ 13, /*->38711*/
/*38698*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*38700*/       OPC_EmitConvertToTarget, 1,
/*38702*/       OPC_MorphNodeTo, TARGET_VAL(X86::PSLLDQri), 0,
                    1/*#VTs*/, MVT::v2i64, 2/*#Ops*/, 0, 2, 
                // Src: (intrinsic_wo_chain:v2i64 338:iPTR, VR128:v2i64:$src1, (imm:i32):$src2) - Complexity = 11
                // Dst: (PSLLDQri:v2i64 VR128:v2i64:$src1, (imm:i32):$src2)
/*38711*/     0, /*End of Scope*/
/*38712*/   /*Scope*/ 42, /*->38755*/
/*38713*/     OPC_CheckInteger, 94|128,2/*350*/, 
/*38716*/     OPC_MoveParent,
/*38717*/     OPC_RecordChild1, // #0 = $src1
/*38718*/     OPC_RecordChild2, // #1 = $src2
/*38719*/     OPC_MoveChild, 2,
/*38721*/     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*38724*/     OPC_MoveParent,
/*38725*/     OPC_Scope, 13, /*->38740*/ // 2 children in Scope
/*38727*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*38729*/       OPC_EmitConvertToTarget, 1,
/*38731*/       OPC_MorphNodeTo, TARGET_VAL(X86::VPSRLDQri), 0,
                    1/*#VTs*/, MVT::v2i64, 2/*#Ops*/, 0, 2, 
                // Src: (intrinsic_wo_chain:v2i64 350:iPTR, VR128:v2i64:$src1, (imm:i32):$src2) - Complexity = 11
                // Dst: (VPSRLDQri:v2i64 VR128:v2i64:$src1, (imm:i32):$src2)
/*38740*/     /*Scope*/ 13, /*->38754*/
/*38741*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*38743*/       OPC_EmitConvertToTarget, 1,
/*38745*/       OPC_MorphNodeTo, TARGET_VAL(X86::PSRLDQri), 0,
                    1/*#VTs*/, MVT::v2i64, 2/*#Ops*/, 0, 2, 
                // Src: (intrinsic_wo_chain:v2i64 350:iPTR, VR128:v2i64:$src1, (imm:i32):$src2) - Complexity = 11
                // Dst: (PSRLDQri:v2i64 VR128:v2i64:$src1, (imm:i32):$src2)
/*38754*/     0, /*End of Scope*/
/*38755*/   /*Scope*/ 25, /*->38781*/
/*38756*/     OPC_CheckInteger, 49|128,1/*177*/, 
/*38759*/     OPC_MoveParent,
/*38760*/     OPC_RecordChild1, // #0 = $src1
/*38761*/     OPC_RecordChild2, // #1 = $src2
/*38762*/     OPC_RecordChild3, // #2 = $src3
/*38763*/     OPC_MoveChild, 3,
/*38765*/     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*38768*/     OPC_MoveParent,
/*38769*/     OPC_EmitConvertToTarget, 2,
/*38771*/     OPC_MorphNodeTo, TARGET_VAL(X86::VINSERTF128rr), 0,
                  1/*#VTs*/, MVT::v8i32, 3/*#Ops*/, 0, 1, 3, 
              // Src: (intrinsic_wo_chain:v8i32 177:iPTR, VR256:v8i32:$src1, VR128:v4i32:$src2, (imm:i8):$src3) - Complexity = 11
              // Dst: (VINSERTF128rr:v8i32 VR256:v8i32:$src1, VR128:v4i32:$src2, (imm:i8):$src3)
/*38781*/   /*Scope*/ 23, /*->38805*/
/*38782*/     OPC_CheckInteger, 46|128,1/*174*/, 
/*38785*/     OPC_MoveParent,
/*38786*/     OPC_RecordChild1, // #0 = $src1
/*38787*/     OPC_RecordChild2, // #1 = $src2
/*38788*/     OPC_MoveChild, 2,
/*38790*/     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*38793*/     OPC_MoveParent,
/*38794*/     OPC_EmitConvertToTarget, 1,
/*38796*/     OPC_MorphNodeTo, TARGET_VAL(X86::VEXTRACTF128rr), 0,
                  1/*#VTs*/, MVT::v4i32, 2/*#Ops*/, 0, 2, 
              // Src: (intrinsic_wo_chain:v4i32 174:iPTR, VR256:v8i32:$src1, (imm:i8):$src2) - Complexity = 11
              // Dst: (VEXTRACTF128rr:v4i32 VR256:v8i32:$src1, (imm:i8):$src2)
/*38805*/   /*Scope*/ 0|128,1/*128*/, /*->38935*/
/*38807*/     OPC_CheckInteger, 126|128,2/*382*/, 
/*38810*/     OPC_MoveParent,
/*38811*/     OPC_RecordChild1, // #0 = $src1
/*38812*/     OPC_Scope, 79, /*->38893*/ // 2 children in Scope
/*38814*/       OPC_MoveChild, 2,
/*38816*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*38819*/       OPC_MoveChild, 0,
/*38821*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*38824*/       OPC_RecordMemRef,
/*38825*/       OPC_RecordNode, // #1 = 'ld' chained node
/*38826*/       OPC_CheckFoldableChainNode,
/*38827*/       OPC_RecordChild1, // #2 = $src2
/*38828*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*38830*/       OPC_CheckPredicate, 3, // Predicate_load
/*38832*/       OPC_CheckPredicate, 23, // Predicate_memop
/*38834*/       OPC_CheckType, MVT::v16i8,
/*38836*/       OPC_MoveParent,
/*38837*/       OPC_MoveParent,
/*38838*/       OPC_RecordChild3, // #3 = $src3
/*38839*/       OPC_MoveChild, 3,
/*38841*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*38844*/       OPC_MoveParent,
/*38845*/       OPC_Scope, 22, /*->38869*/ // 2 children in Scope
/*38847*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*38849*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*38852*/         OPC_EmitMergeInputChains1_1,
/*38853*/         OPC_EmitConvertToTarget, 3,
/*38855*/         OPC_MorphNodeTo, TARGET_VAL(X86::VBLENDPSrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                  // Src: (intrinsic_wo_chain:v4f32 382:iPTR, VR128:v4f32:$src1, (bitconvert:v4f32 (ld:v16i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>), (imm:i32):$src3) - Complexity = 36
                  // Dst: (VBLENDPSrmi:v4f32 VR128:v4f32:$src1, addr:iPTR:$src2, (imm:i32):$src3)
/*38869*/       /*Scope*/ 22, /*->38892*/
/*38870*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*38872*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*38875*/         OPC_EmitMergeInputChains1_1,
/*38876*/         OPC_EmitConvertToTarget, 3,
/*38878*/         OPC_MorphNodeTo, TARGET_VAL(X86::BLENDPSrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                  // Src: (intrinsic_wo_chain:v4f32 382:iPTR, VR128:v4f32:$src1, (bitconvert:v4f32 (ld:v16i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>), (imm:i32):$src3) - Complexity = 36
                  // Dst: (BLENDPSrmi:v4f32 VR128:v4f32:$src1, addr:iPTR:$src2, (imm:i32):$src3)
/*38892*/       0, /*End of Scope*/
/*38893*/     /*Scope*/ 40, /*->38934*/
/*38894*/       OPC_RecordChild2, // #1 = $src2
/*38895*/       OPC_RecordChild3, // #2 = $src3
/*38896*/       OPC_MoveChild, 3,
/*38898*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*38901*/       OPC_MoveParent,
/*38902*/       OPC_Scope, 14, /*->38918*/ // 2 children in Scope
/*38904*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*38906*/         OPC_EmitConvertToTarget, 2,
/*38908*/         OPC_MorphNodeTo, TARGET_VAL(X86::VBLENDPSrri), 0,
                      1/*#VTs*/, MVT::v4f32, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (intrinsic_wo_chain:v4f32 382:iPTR, VR128:v4f32:$src1, VR128:v4f32:$src2, (imm:i32):$src3) - Complexity = 11
                  // Dst: (VBLENDPSrri:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src2, (imm:i32):$src3)
/*38918*/       /*Scope*/ 14, /*->38933*/
/*38919*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*38921*/         OPC_EmitConvertToTarget, 2,
/*38923*/         OPC_MorphNodeTo, TARGET_VAL(X86::BLENDPSrri), 0,
                      1/*#VTs*/, MVT::v4f32, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (intrinsic_wo_chain:v4f32 382:iPTR, VR128:v4f32:$src1, VR128:v4f32:$src2, (imm:i32):$src3) - Complexity = 11
                  // Dst: (BLENDPSrri:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src2, (imm:i32):$src3)
/*38933*/       0, /*End of Scope*/
/*38934*/     0, /*End of Scope*/
/*38935*/   /*Scope*/ 0|128,1/*128*/, /*->39065*/
/*38937*/     OPC_CheckInteger, 125|128,2/*381*/, 
/*38940*/     OPC_MoveParent,
/*38941*/     OPC_RecordChild1, // #0 = $src1
/*38942*/     OPC_Scope, 79, /*->39023*/ // 2 children in Scope
/*38944*/       OPC_MoveChild, 2,
/*38946*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*38949*/       OPC_MoveChild, 0,
/*38951*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*38954*/       OPC_RecordMemRef,
/*38955*/       OPC_RecordNode, // #1 = 'ld' chained node
/*38956*/       OPC_CheckFoldableChainNode,
/*38957*/       OPC_RecordChild1, // #2 = $src2
/*38958*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*38960*/       OPC_CheckPredicate, 3, // Predicate_load
/*38962*/       OPC_CheckPredicate, 23, // Predicate_memop
/*38964*/       OPC_CheckType, MVT::v16i8,
/*38966*/       OPC_MoveParent,
/*38967*/       OPC_MoveParent,
/*38968*/       OPC_RecordChild3, // #3 = $src3
/*38969*/       OPC_MoveChild, 3,
/*38971*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*38974*/       OPC_MoveParent,
/*38975*/       OPC_Scope, 22, /*->38999*/ // 2 children in Scope
/*38977*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*38979*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*38982*/         OPC_EmitMergeInputChains1_1,
/*38983*/         OPC_EmitConvertToTarget, 3,
/*38985*/         OPC_MorphNodeTo, TARGET_VAL(X86::VBLENDPDrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v2f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                  // Src: (intrinsic_wo_chain:v2f64 381:iPTR, VR128:v2f64:$src1, (bitconvert:v2f64 (ld:v16i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>), (imm:i32):$src3) - Complexity = 36
                  // Dst: (VBLENDPDrmi:v2f64 VR128:v2f64:$src1, addr:iPTR:$src2, (imm:i32):$src3)
/*38999*/       /*Scope*/ 22, /*->39022*/
/*39000*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*39002*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*39005*/         OPC_EmitMergeInputChains1_1,
/*39006*/         OPC_EmitConvertToTarget, 3,
/*39008*/         OPC_MorphNodeTo, TARGET_VAL(X86::BLENDPDrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v2f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                  // Src: (intrinsic_wo_chain:v2f64 381:iPTR, VR128:v2f64:$src1, (bitconvert:v2f64 (ld:v16i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>), (imm:i32):$src3) - Complexity = 36
                  // Dst: (BLENDPDrmi:v2f64 VR128:v2f64:$src1, addr:iPTR:$src2, (imm:i32):$src3)
/*39022*/       0, /*End of Scope*/
/*39023*/     /*Scope*/ 40, /*->39064*/
/*39024*/       OPC_RecordChild2, // #1 = $src2
/*39025*/       OPC_RecordChild3, // #2 = $src3
/*39026*/       OPC_MoveChild, 3,
/*39028*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*39031*/       OPC_MoveParent,
/*39032*/       OPC_Scope, 14, /*->39048*/ // 2 children in Scope
/*39034*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*39036*/         OPC_EmitConvertToTarget, 2,
/*39038*/         OPC_MorphNodeTo, TARGET_VAL(X86::VBLENDPDrri), 0,
                      1/*#VTs*/, MVT::v2f64, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (intrinsic_wo_chain:v2f64 381:iPTR, VR128:v2f64:$src1, VR128:v2f64:$src2, (imm:i32):$src3) - Complexity = 11
                  // Dst: (VBLENDPDrri:v2f64 VR128:v2f64:$src1, VR128:v2f64:$src2, (imm:i32):$src3)
/*39048*/       /*Scope*/ 14, /*->39063*/
/*39049*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*39051*/         OPC_EmitConvertToTarget, 2,
/*39053*/         OPC_MorphNodeTo, TARGET_VAL(X86::BLENDPDrri), 0,
                      1/*#VTs*/, MVT::v2f64, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (intrinsic_wo_chain:v2f64 381:iPTR, VR128:v2f64:$src1, VR128:v2f64:$src2, (imm:i32):$src3) - Complexity = 11
                  // Dst: (BLENDPDrri:v2f64 VR128:v2f64:$src1, VR128:v2f64:$src2, (imm:i32):$src3)
/*39063*/       0, /*End of Scope*/
/*39064*/     0, /*End of Scope*/
/*39065*/   /*Scope*/ 83, /*->39149*/
/*39066*/     OPC_CheckInteger, 116, 
/*39068*/     OPC_MoveParent,
/*39069*/     OPC_RecordChild1, // #0 = $src1
/*39070*/     OPC_Scope, 53, /*->39125*/ // 2 children in Scope
/*39072*/       OPC_MoveChild, 2,
/*39074*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*39077*/       OPC_MoveChild, 0,
/*39079*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*39082*/       OPC_RecordMemRef,
/*39083*/       OPC_RecordNode, // #1 = 'ld' chained node
/*39084*/       OPC_CheckFoldableChainNode,
/*39085*/       OPC_RecordChild1, // #2 = $src2
/*39086*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*39088*/       OPC_CheckPredicate, 3, // Predicate_load
/*39090*/       OPC_CheckPredicate, 23, // Predicate_memop
/*39092*/       OPC_CheckType, MVT::v32i8,
/*39094*/       OPC_MoveParent,
/*39095*/       OPC_MoveParent,
/*39096*/       OPC_RecordChild3, // #3 = $src3
/*39097*/       OPC_MoveChild, 3,
/*39099*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*39102*/       OPC_MoveParent,
/*39103*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*39105*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*39108*/       OPC_EmitMergeInputChains1_1,
/*39109*/       OPC_EmitConvertToTarget, 3,
/*39111*/       OPC_MorphNodeTo, TARGET_VAL(X86::VBLENDPSYrmi), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v8f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                // Src: (intrinsic_wo_chain:v8f32 116:iPTR, VR256:v8f32:$src1, (bitconvert:v8f32 (ld:v32i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>), (imm:i32):$src3) - Complexity = 36
                // Dst: (VBLENDPSYrmi:v8f32 VR256:v8f32:$src1, addr:iPTR:$src2, (imm:i32):$src3)
/*39125*/     /*Scope*/ 22, /*->39148*/
/*39126*/       OPC_RecordChild2, // #1 = $src2
/*39127*/       OPC_RecordChild3, // #2 = $src3
/*39128*/       OPC_MoveChild, 3,
/*39130*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*39133*/       OPC_MoveParent,
/*39134*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*39136*/       OPC_EmitConvertToTarget, 2,
/*39138*/       OPC_MorphNodeTo, TARGET_VAL(X86::VBLENDPSYrri), 0,
                    1/*#VTs*/, MVT::v8f32, 3/*#Ops*/, 0, 1, 3, 
                // Src: (intrinsic_wo_chain:v8f32 116:iPTR, VR256:v8f32:$src1, VR256:v8f32:$src2, (imm:i32):$src3) - Complexity = 11
                // Dst: (VBLENDPSYrri:v8f32 VR256:v8f32:$src1, VR256:v8f32:$src2, (imm:i32):$src3)
/*39148*/     0, /*End of Scope*/
/*39149*/   /*Scope*/ 83, /*->39233*/
/*39150*/     OPC_CheckInteger, 115, 
/*39152*/     OPC_MoveParent,
/*39153*/     OPC_RecordChild1, // #0 = $src1
/*39154*/     OPC_Scope, 53, /*->39209*/ // 2 children in Scope
/*39156*/       OPC_MoveChild, 2,
/*39158*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*39161*/       OPC_MoveChild, 0,
/*39163*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*39166*/       OPC_RecordMemRef,
/*39167*/       OPC_RecordNode, // #1 = 'ld' chained node
/*39168*/       OPC_CheckFoldableChainNode,
/*39169*/       OPC_RecordChild1, // #2 = $src2
/*39170*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*39172*/       OPC_CheckPredicate, 3, // Predicate_load
/*39174*/       OPC_CheckPredicate, 23, // Predicate_memop
/*39176*/       OPC_CheckType, MVT::v32i8,
/*39178*/       OPC_MoveParent,
/*39179*/       OPC_MoveParent,
/*39180*/       OPC_RecordChild3, // #3 = $src3
/*39181*/       OPC_MoveChild, 3,
/*39183*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*39186*/       OPC_MoveParent,
/*39187*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*39189*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*39192*/       OPC_EmitMergeInputChains1_1,
/*39193*/       OPC_EmitConvertToTarget, 3,
/*39195*/       OPC_MorphNodeTo, TARGET_VAL(X86::VBLENDPDYrmi), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v4f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                // Src: (intrinsic_wo_chain:v4f64 115:iPTR, VR256:v4f64:$src1, (bitconvert:v4f64 (ld:v32i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>), (imm:i32):$src3) - Complexity = 36
                // Dst: (VBLENDPDYrmi:v4f64 VR256:v4f64:$src1, addr:iPTR:$src2, (imm:i32):$src3)
/*39209*/     /*Scope*/ 22, /*->39232*/
/*39210*/       OPC_RecordChild2, // #1 = $src2
/*39211*/       OPC_RecordChild3, // #2 = $src3
/*39212*/       OPC_MoveChild, 3,
/*39214*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*39217*/       OPC_MoveParent,
/*39218*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*39220*/       OPC_EmitConvertToTarget, 2,
/*39222*/       OPC_MorphNodeTo, TARGET_VAL(X86::VBLENDPDYrri), 0,
                    1/*#VTs*/, MVT::v4f64, 3/*#Ops*/, 0, 1, 3, 
                // Src: (intrinsic_wo_chain:v4f64 115:iPTR, VR256:v4f64:$src1, VR256:v4f64:$src2, (imm:i32):$src3) - Complexity = 11
                // Dst: (VBLENDPDYrri:v4f64 VR256:v4f64:$src1, VR256:v4f64:$src2, (imm:i32):$src3)
/*39232*/     0, /*End of Scope*/
/*39233*/   /*Scope*/ 82|128,1/*210*/, /*->39445*/
/*39235*/     OPC_CheckInteger, 2|128,3/*386*/, 
/*39238*/     OPC_MoveParent,
/*39239*/     OPC_Scope, 80, /*->39321*/ // 3 children in Scope
/*39241*/       OPC_RecordChild1, // #0 = $src1
/*39242*/       OPC_MoveChild, 2,
/*39244*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*39247*/       OPC_MoveChild, 0,
/*39249*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*39252*/       OPC_RecordMemRef,
/*39253*/       OPC_RecordNode, // #1 = 'ld' chained node
/*39254*/       OPC_CheckFoldableChainNode,
/*39255*/       OPC_RecordChild1, // #2 = $src2
/*39256*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*39258*/       OPC_CheckPredicate, 3, // Predicate_load
/*39260*/       OPC_CheckPredicate, 23, // Predicate_memop
/*39262*/       OPC_CheckType, MVT::v16i8,
/*39264*/       OPC_MoveParent,
/*39265*/       OPC_MoveParent,
/*39266*/       OPC_RecordChild3, // #3 = $src3
/*39267*/       OPC_MoveChild, 3,
/*39269*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*39272*/       OPC_MoveParent,
/*39273*/       OPC_Scope, 22, /*->39297*/ // 2 children in Scope
/*39275*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*39277*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*39280*/         OPC_EmitMergeInputChains1_1,
/*39281*/         OPC_EmitConvertToTarget, 3,
/*39283*/         OPC_MorphNodeTo, TARGET_VAL(X86::VDPPSrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                  // Src: (intrinsic_wo_chain:v4f32 386:iPTR, VR128:v4f32:$src1, (bitconvert:v4f32 (ld:v16i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>), (imm:i32):$src3) - Complexity = 36
                  // Dst: (VDPPSrmi:v4f32 VR128:v4f32:$src1, addr:iPTR:$src2, (imm:i32):$src3)
/*39297*/       /*Scope*/ 22, /*->39320*/
/*39298*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*39300*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*39303*/         OPC_EmitMergeInputChains1_1,
/*39304*/         OPC_EmitConvertToTarget, 3,
/*39306*/         OPC_MorphNodeTo, TARGET_VAL(X86::DPPSrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                  // Src: (intrinsic_wo_chain:v4f32 386:iPTR, VR128:v4f32:$src1, (bitconvert:v4f32 (ld:v16i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>), (imm:i32):$src3) - Complexity = 36
                  // Dst: (DPPSrmi:v4f32 VR128:v4f32:$src1, addr:iPTR:$src2, (imm:i32):$src3)
/*39320*/       0, /*End of Scope*/
/*39321*/     /*Scope*/ 80, /*->39402*/
/*39322*/       OPC_MoveChild, 1,
/*39324*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*39327*/       OPC_MoveChild, 0,
/*39329*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*39332*/       OPC_RecordMemRef,
/*39333*/       OPC_RecordNode, // #0 = 'ld' chained node
/*39334*/       OPC_CheckFoldableChainNode,
/*39335*/       OPC_RecordChild1, // #1 = $src2
/*39336*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*39338*/       OPC_CheckPredicate, 3, // Predicate_load
/*39340*/       OPC_CheckPredicate, 23, // Predicate_memop
/*39342*/       OPC_CheckType, MVT::v16i8,
/*39344*/       OPC_MoveParent,
/*39345*/       OPC_MoveParent,
/*39346*/       OPC_RecordChild2, // #2 = $src1
/*39347*/       OPC_RecordChild3, // #3 = $src3
/*39348*/       OPC_MoveChild, 3,
/*39350*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*39353*/       OPC_MoveParent,
/*39354*/       OPC_Scope, 22, /*->39378*/ // 2 children in Scope
/*39356*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*39358*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*39361*/         OPC_EmitMergeInputChains1_0,
/*39362*/         OPC_EmitConvertToTarget, 3,
/*39364*/         OPC_MorphNodeTo, TARGET_VAL(X86::VDPPSrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4f32, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 9, 
                  // Src: (intrinsic_wo_chain:v4f32 386:iPTR, (bitconvert:v4f32 (ld:v16i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>), VR128:v4f32:$src1, (imm:i32):$src3) - Complexity = 36
                  // Dst: (VDPPSrmi:v4f32 VR128:v4f32:$src1, addr:iPTR:$src2, (imm:i32):$src3)
/*39378*/       /*Scope*/ 22, /*->39401*/
/*39379*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*39381*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*39384*/         OPC_EmitMergeInputChains1_0,
/*39385*/         OPC_EmitConvertToTarget, 3,
/*39387*/         OPC_MorphNodeTo, TARGET_VAL(X86::DPPSrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4f32, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 9, 
                  // Src: (intrinsic_wo_chain:v4f32 386:iPTR, (bitconvert:v4f32 (ld:v16i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>), VR128:v4f32:$src1, (imm:i32):$src3) - Complexity = 36
                  // Dst: (DPPSrmi:v4f32 VR128:v4f32:$src1, addr:iPTR:$src2, (imm:i32):$src3)
/*39401*/       0, /*End of Scope*/
/*39402*/     /*Scope*/ 41, /*->39444*/
/*39403*/       OPC_RecordChild1, // #0 = $src1
/*39404*/       OPC_RecordChild2, // #1 = $src2
/*39405*/       OPC_RecordChild3, // #2 = $src3
/*39406*/       OPC_MoveChild, 3,
/*39408*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*39411*/       OPC_MoveParent,
/*39412*/       OPC_Scope, 14, /*->39428*/ // 2 children in Scope
/*39414*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*39416*/         OPC_EmitConvertToTarget, 2,
/*39418*/         OPC_MorphNodeTo, TARGET_VAL(X86::VDPPSrri), 0,
                      1/*#VTs*/, MVT::v4f32, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (intrinsic_wo_chain:v4f32 386:iPTR, VR128:v4f32:$src1, VR128:v4f32:$src2, (imm:i32):$src3) - Complexity = 11
                  // Dst: (VDPPSrri:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src2, (imm:i32):$src3)
/*39428*/       /*Scope*/ 14, /*->39443*/
/*39429*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*39431*/         OPC_EmitConvertToTarget, 2,
/*39433*/         OPC_MorphNodeTo, TARGET_VAL(X86::DPPSrri), 0,
                      1/*#VTs*/, MVT::v4f32, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (intrinsic_wo_chain:v4f32 386:iPTR, VR128:v4f32:$src1, VR128:v4f32:$src2, (imm:i32):$src3) - Complexity = 11
                  // Dst: (DPPSrri:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src2, (imm:i32):$src3)
/*39443*/       0, /*End of Scope*/
/*39444*/     0, /*End of Scope*/
/*39445*/   /*Scope*/ 82|128,1/*210*/, /*->39657*/
/*39447*/     OPC_CheckInteger, 1|128,3/*385*/, 
/*39450*/     OPC_MoveParent,
/*39451*/     OPC_Scope, 80, /*->39533*/ // 3 children in Scope
/*39453*/       OPC_RecordChild1, // #0 = $src1
/*39454*/       OPC_MoveChild, 2,
/*39456*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*39459*/       OPC_MoveChild, 0,
/*39461*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*39464*/       OPC_RecordMemRef,
/*39465*/       OPC_RecordNode, // #1 = 'ld' chained node
/*39466*/       OPC_CheckFoldableChainNode,
/*39467*/       OPC_RecordChild1, // #2 = $src2
/*39468*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*39470*/       OPC_CheckPredicate, 3, // Predicate_load
/*39472*/       OPC_CheckPredicate, 23, // Predicate_memop
/*39474*/       OPC_CheckType, MVT::v16i8,
/*39476*/       OPC_MoveParent,
/*39477*/       OPC_MoveParent,
/*39478*/       OPC_RecordChild3, // #3 = $src3
/*39479*/       OPC_MoveChild, 3,
/*39481*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*39484*/       OPC_MoveParent,
/*39485*/       OPC_Scope, 22, /*->39509*/ // 2 children in Scope
/*39487*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*39489*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*39492*/         OPC_EmitMergeInputChains1_1,
/*39493*/         OPC_EmitConvertToTarget, 3,
/*39495*/         OPC_MorphNodeTo, TARGET_VAL(X86::VDPPDrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v2f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                  // Src: (intrinsic_wo_chain:v2f64 385:iPTR, VR128:v2f64:$src1, (bitconvert:v2f64 (ld:v16i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>), (imm:i32):$src3) - Complexity = 36
                  // Dst: (VDPPDrmi:v2f64 VR128:v2f64:$src1, addr:iPTR:$src2, (imm:i32):$src3)
/*39509*/       /*Scope*/ 22, /*->39532*/
/*39510*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*39512*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*39515*/         OPC_EmitMergeInputChains1_1,
/*39516*/         OPC_EmitConvertToTarget, 3,
/*39518*/         OPC_MorphNodeTo, TARGET_VAL(X86::DPPDrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v2f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                  // Src: (intrinsic_wo_chain:v2f64 385:iPTR, VR128:v2f64:$src1, (bitconvert:v2f64 (ld:v16i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>), (imm:i32):$src3) - Complexity = 36
                  // Dst: (DPPDrmi:v2f64 VR128:v2f64:$src1, addr:iPTR:$src2, (imm:i32):$src3)
/*39532*/       0, /*End of Scope*/
/*39533*/     /*Scope*/ 80, /*->39614*/
/*39534*/       OPC_MoveChild, 1,
/*39536*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*39539*/       OPC_MoveChild, 0,
/*39541*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*39544*/       OPC_RecordMemRef,
/*39545*/       OPC_RecordNode, // #0 = 'ld' chained node
/*39546*/       OPC_CheckFoldableChainNode,
/*39547*/       OPC_RecordChild1, // #1 = $src2
/*39548*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*39550*/       OPC_CheckPredicate, 3, // Predicate_load
/*39552*/       OPC_CheckPredicate, 23, // Predicate_memop
/*39554*/       OPC_CheckType, MVT::v16i8,
/*39556*/       OPC_MoveParent,
/*39557*/       OPC_MoveParent,
/*39558*/       OPC_RecordChild2, // #2 = $src1
/*39559*/       OPC_RecordChild3, // #3 = $src3
/*39560*/       OPC_MoveChild, 3,
/*39562*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*39565*/       OPC_MoveParent,
/*39566*/       OPC_Scope, 22, /*->39590*/ // 2 children in Scope
/*39568*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*39570*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*39573*/         OPC_EmitMergeInputChains1_0,
/*39574*/         OPC_EmitConvertToTarget, 3,
/*39576*/         OPC_MorphNodeTo, TARGET_VAL(X86::VDPPDrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v2f64, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 9, 
                  // Src: (intrinsic_wo_chain:v2f64 385:iPTR, (bitconvert:v2f64 (ld:v16i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>), VR128:v2f64:$src1, (imm:i32):$src3) - Complexity = 36
                  // Dst: (VDPPDrmi:v2f64 VR128:v2f64:$src1, addr:iPTR:$src2, (imm:i32):$src3)
/*39590*/       /*Scope*/ 22, /*->39613*/
/*39591*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*39593*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*39596*/         OPC_EmitMergeInputChains1_0,
/*39597*/         OPC_EmitConvertToTarget, 3,
/*39599*/         OPC_MorphNodeTo, TARGET_VAL(X86::DPPDrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v2f64, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 9, 
                  // Src: (intrinsic_wo_chain:v2f64 385:iPTR, (bitconvert:v2f64 (ld:v16i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>), VR128:v2f64:$src1, (imm:i32):$src3) - Complexity = 36
                  // Dst: (DPPDrmi:v2f64 VR128:v2f64:$src1, addr:iPTR:$src2, (imm:i32):$src3)
/*39613*/       0, /*End of Scope*/
/*39614*/     /*Scope*/ 41, /*->39656*/
/*39615*/       OPC_RecordChild1, // #0 = $src1
/*39616*/       OPC_RecordChild2, // #1 = $src2
/*39617*/       OPC_RecordChild3, // #2 = $src3
/*39618*/       OPC_MoveChild, 3,
/*39620*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*39623*/       OPC_MoveParent,
/*39624*/       OPC_Scope, 14, /*->39640*/ // 2 children in Scope
/*39626*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*39628*/         OPC_EmitConvertToTarget, 2,
/*39630*/         OPC_MorphNodeTo, TARGET_VAL(X86::VDPPDrri), 0,
                      1/*#VTs*/, MVT::v2f64, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (intrinsic_wo_chain:v2f64 385:iPTR, VR128:v2f64:$src1, VR128:v2f64:$src2, (imm:i32):$src3) - Complexity = 11
                  // Dst: (VDPPDrri:v2f64 VR128:v2f64:$src1, VR128:v2f64:$src2, (imm:i32):$src3)
/*39640*/       /*Scope*/ 14, /*->39655*/
/*39641*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*39643*/         OPC_EmitConvertToTarget, 2,
/*39645*/         OPC_MorphNodeTo, TARGET_VAL(X86::DPPDrri), 0,
                      1/*#VTs*/, MVT::v2f64, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (intrinsic_wo_chain:v2f64 385:iPTR, VR128:v2f64:$src1, VR128:v2f64:$src2, (imm:i32):$src3) - Complexity = 11
                  // Dst: (DPPDrri:v2f64 VR128:v2f64:$src1, VR128:v2f64:$src2, (imm:i32):$src3)
/*39655*/       0, /*End of Scope*/
/*39656*/     0, /*End of Scope*/
/*39657*/   /*Scope*/ 84, /*->39742*/
/*39658*/     OPC_CheckInteger, 1|128,1/*129*/, 
/*39661*/     OPC_MoveParent,
/*39662*/     OPC_RecordChild1, // #0 = $src1
/*39663*/     OPC_Scope, 53, /*->39718*/ // 2 children in Scope
/*39665*/       OPC_MoveChild, 2,
/*39667*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*39670*/       OPC_MoveChild, 0,
/*39672*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*39675*/       OPC_RecordMemRef,
/*39676*/       OPC_RecordNode, // #1 = 'ld' chained node
/*39677*/       OPC_CheckFoldableChainNode,
/*39678*/       OPC_RecordChild1, // #2 = $src2
/*39679*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*39681*/       OPC_CheckPredicate, 3, // Predicate_load
/*39683*/       OPC_CheckPredicate, 23, // Predicate_memop
/*39685*/       OPC_CheckType, MVT::v32i8,
/*39687*/       OPC_MoveParent,
/*39688*/       OPC_MoveParent,
/*39689*/       OPC_RecordChild3, // #3 = $src3
/*39690*/       OPC_MoveChild, 3,
/*39692*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*39695*/       OPC_MoveParent,
/*39696*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*39698*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*39701*/       OPC_EmitMergeInputChains1_1,
/*39702*/       OPC_EmitConvertToTarget, 3,
/*39704*/       OPC_MorphNodeTo, TARGET_VAL(X86::VDPPSYrmi), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v8f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                // Src: (intrinsic_wo_chain:v8f32 129:iPTR, VR256:v8f32:$src1, (bitconvert:v8f32 (ld:v32i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>), (imm:i32):$src3) - Complexity = 36
                // Dst: (VDPPSYrmi:v8f32 VR256:v8f32:$src1, addr:iPTR:$src2, (imm:i32):$src3)
/*39718*/     /*Scope*/ 22, /*->39741*/
/*39719*/       OPC_RecordChild2, // #1 = $src2
/*39720*/       OPC_RecordChild3, // #2 = $src3
/*39721*/       OPC_MoveChild, 3,
/*39723*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*39726*/       OPC_MoveParent,
/*39727*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*39729*/       OPC_EmitConvertToTarget, 2,
/*39731*/       OPC_MorphNodeTo, TARGET_VAL(X86::VDPPSYrri), 0,
                    1/*#VTs*/, MVT::v8f32, 3/*#Ops*/, 0, 1, 3, 
                // Src: (intrinsic_wo_chain:v8f32 129:iPTR, VR256:v8f32:$src1, VR256:v8f32:$src2, (imm:i32):$src3) - Complexity = 11
                // Dst: (VDPPSYrri:v8f32 VR256:v8f32:$src1, VR256:v8f32:$src2, (imm:i32):$src3)
/*39741*/     0, /*End of Scope*/
/*39742*/   /*Scope*/ 97, /*->39840*/
/*39743*/     OPC_CheckInteger, 30|128,2/*286*/, 
/*39746*/     OPC_MoveParent,
/*39747*/     OPC_Scope, 64, /*->39813*/ // 2 children in Scope
/*39749*/       OPC_MoveChild, 1,
/*39751*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*39754*/       OPC_MoveChild, 0,
/*39756*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*39759*/       OPC_RecordMemRef,
/*39760*/       OPC_RecordNode, // #0 = 'ld' chained node
/*39761*/       OPC_CheckFoldableChainNode,
/*39762*/       OPC_RecordChild1, // #1 = $src
/*39763*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*39765*/       OPC_CheckPredicate, 3, // Predicate_load
/*39767*/       OPC_CheckPredicate, 23, // Predicate_memop
/*39769*/       OPC_CheckType, MVT::v2i64,
/*39771*/       OPC_MoveParent,
/*39772*/       OPC_MoveParent,
/*39773*/       OPC_Scope, 18, /*->39793*/ // 2 children in Scope
/*39775*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*39777*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*39780*/         OPC_EmitMergeInputChains1_0,
/*39781*/         OPC_MorphNodeTo, TARGET_VAL(X86::Int_VCVTDQ2PSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (intrinsic_wo_chain:v4f32 286:iPTR, (bitconvert:v4i32 (ld:v2i64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 33
                  // Dst: (Int_VCVTDQ2PSrm:v4f32 addr:iPTR:$src)
/*39793*/       /*Scope*/ 18, /*->39812*/
/*39794*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*39796*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*39799*/         OPC_EmitMergeInputChains1_0,
/*39800*/         OPC_MorphNodeTo, TARGET_VAL(X86::Int_CVTDQ2PSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (intrinsic_wo_chain:v4f32 286:iPTR, (bitconvert:v4i32 (ld:v2i64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 33
                  // Dst: (Int_CVTDQ2PSrm:v4f32 addr:iPTR:$src)
/*39812*/       0, /*End of Scope*/
/*39813*/     /*Scope*/ 25, /*->39839*/
/*39814*/       OPC_RecordChild1, // #0 = $src
/*39815*/       OPC_Scope, 10, /*->39827*/ // 2 children in Scope
/*39817*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*39819*/         OPC_MorphNodeTo, TARGET_VAL(X86::Int_VCVTDQ2PSrr), 0,
                      1/*#VTs*/, MVT::v4f32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:v4f32 286:iPTR, VR128:v4i32:$src) - Complexity = 8
                  // Dst: (Int_VCVTDQ2PSrr:v4f32 VR128:v4i32:$src)
/*39827*/       /*Scope*/ 10, /*->39838*/
/*39828*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*39830*/         OPC_MorphNodeTo, TARGET_VAL(X86::Int_CVTDQ2PSrr), 0,
                      1/*#VTs*/, MVT::v4f32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:v4f32 286:iPTR, VR128:v4i32:$src) - Complexity = 8
                  // Dst: (Int_CVTDQ2PSrr:v4f32 VR128:v4i32:$src)
/*39838*/       0, /*End of Scope*/
/*39839*/     0, /*End of Scope*/
/*39840*/   /*Scope*/ 97, /*->39938*/
/*39841*/     OPC_CheckInteger, 29|128,2/*285*/, 
/*39844*/     OPC_MoveParent,
/*39845*/     OPC_Scope, 64, /*->39911*/ // 2 children in Scope
/*39847*/       OPC_MoveChild, 1,
/*39849*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*39852*/       OPC_MoveChild, 0,
/*39854*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*39857*/       OPC_RecordMemRef,
/*39858*/       OPC_RecordNode, // #0 = 'ld' chained node
/*39859*/       OPC_CheckFoldableChainNode,
/*39860*/       OPC_RecordChild1, // #1 = $src
/*39861*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*39863*/       OPC_CheckPredicate, 3, // Predicate_load
/*39865*/       OPC_CheckPredicate, 23, // Predicate_memop
/*39867*/       OPC_CheckType, MVT::v2i64,
/*39869*/       OPC_MoveParent,
/*39870*/       OPC_MoveParent,
/*39871*/       OPC_Scope, 18, /*->39891*/ // 2 children in Scope
/*39873*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*39875*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*39878*/         OPC_EmitMergeInputChains1_0,
/*39879*/         OPC_MorphNodeTo, TARGET_VAL(X86::Int_VCVTDQ2PDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v2f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (intrinsic_wo_chain:v2f64 285:iPTR, (bitconvert:v4i32 (ld:v2i64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 33
                  // Dst: (Int_VCVTDQ2PDrm:v2f64 addr:iPTR:$src)
/*39891*/       /*Scope*/ 18, /*->39910*/
/*39892*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*39894*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*39897*/         OPC_EmitMergeInputChains1_0,
/*39898*/         OPC_MorphNodeTo, TARGET_VAL(X86::Int_CVTDQ2PDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v2f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (intrinsic_wo_chain:v2f64 285:iPTR, (bitconvert:v4i32 (ld:v2i64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 33
                  // Dst: (Int_CVTDQ2PDrm:v2f64 addr:iPTR:$src)
/*39910*/       0, /*End of Scope*/
/*39911*/     /*Scope*/ 25, /*->39937*/
/*39912*/       OPC_RecordChild1, // #0 = $src
/*39913*/       OPC_Scope, 10, /*->39925*/ // 2 children in Scope
/*39915*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*39917*/         OPC_MorphNodeTo, TARGET_VAL(X86::Int_VCVTDQ2PDrr), 0,
                      1/*#VTs*/, MVT::v2f64, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:v2f64 285:iPTR, VR128:v4i32:$src) - Complexity = 8
                  // Dst: (Int_VCVTDQ2PDrr:v2f64 VR128:v4i32:$src)
/*39925*/       /*Scope*/ 10, /*->39936*/
/*39926*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*39928*/         OPC_MorphNodeTo, TARGET_VAL(X86::Int_CVTDQ2PDrr), 0,
                      1/*#VTs*/, MVT::v2f64, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:v2f64 285:iPTR, VR128:v4i32:$src) - Complexity = 8
                  // Dst: (Int_CVTDQ2PDrr:v2f64 VR128:v4i32:$src)
/*39936*/       0, /*End of Scope*/
/*39937*/     0, /*End of Scope*/
/*39938*/   /*Scope*/ 118, /*->40057*/
/*39939*/     OPC_CheckInteger, 65|128,3/*449*/, 
/*39942*/     OPC_MoveParent,
/*39943*/     OPC_RecordChild1, // #0 = $src1
/*39944*/     OPC_Scope, 69, /*->40015*/ // 2 children in Scope
/*39946*/       OPC_MoveChild, 2,
/*39948*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*39951*/       OPC_RecordMemRef,
/*39952*/       OPC_RecordNode, // #1 = 'ld' chained node
/*39953*/       OPC_CheckFoldableChainNode,
/*39954*/       OPC_RecordChild1, // #2 = $src
/*39955*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*39957*/       OPC_CheckPredicate, 3, // Predicate_load
/*39959*/       OPC_MoveParent,
/*39960*/       OPC_RecordChild3, // #3 = $cc
/*39961*/       OPC_MoveChild, 3,
/*39963*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*39966*/       OPC_MoveParent,
/*39967*/       OPC_Scope, 22, /*->39991*/ // 2 children in Scope
/*39969*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*39971*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src #4 #5 #6 #7 #8
/*39974*/         OPC_EmitMergeInputChains1_1,
/*39975*/         OPC_EmitConvertToTarget, 3,
/*39977*/         OPC_MorphNodeTo, TARGET_VAL(X86::Int_VCMPSSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                  // Src: (intrinsic_wo_chain:v4f32 449:iPTR, VR128:v4f32:$src1, (ld:v4f32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:i8):$cc) - Complexity = 33
                  // Dst: (Int_VCMPSSrm:v4f32 VR128:v4f32:$src1, addr:iPTR:$src, (imm:i8):$cc)
/*39991*/       /*Scope*/ 22, /*->40014*/
/*39992*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*39994*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src #4 #5 #6 #7 #8
/*39997*/         OPC_EmitMergeInputChains1_1,
/*39998*/         OPC_EmitConvertToTarget, 3,
/*40000*/         OPC_MorphNodeTo, TARGET_VAL(X86::Int_CMPSSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                  // Src: (intrinsic_wo_chain:v4f32 449:iPTR, VR128:v4f32:$src1, (ld:v4f32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:i8):$cc) - Complexity = 33
                  // Dst: (Int_CMPSSrm:v4f32 VR128:v4f32:$src1, addr:iPTR:$src, (imm:i8):$cc)
/*40014*/       0, /*End of Scope*/
/*40015*/     /*Scope*/ 40, /*->40056*/
/*40016*/       OPC_RecordChild2, // #1 = $src
/*40017*/       OPC_RecordChild3, // #2 = $cc
/*40018*/       OPC_MoveChild, 3,
/*40020*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*40023*/       OPC_MoveParent,
/*40024*/       OPC_Scope, 14, /*->40040*/ // 2 children in Scope
/*40026*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*40028*/         OPC_EmitConvertToTarget, 2,
/*40030*/         OPC_MorphNodeTo, TARGET_VAL(X86::Int_VCMPSSrr), 0,
                      1/*#VTs*/, MVT::v4f32, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (intrinsic_wo_chain:v4f32 449:iPTR, VR128:v4f32:$src1, VR128:v4f32:$src, (imm:i8):$cc) - Complexity = 11
                  // Dst: (Int_VCMPSSrr:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src, (imm:i8):$cc)
/*40040*/       /*Scope*/ 14, /*->40055*/
/*40041*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*40043*/         OPC_EmitConvertToTarget, 2,
/*40045*/         OPC_MorphNodeTo, TARGET_VAL(X86::Int_CMPSSrr), 0,
                      1/*#VTs*/, MVT::v4f32, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (intrinsic_wo_chain:v4f32 449:iPTR, VR128:v4f32:$src1, VR128:v4f32:$src, (imm:i8):$cc) - Complexity = 11
                  // Dst: (Int_CMPSSrr:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src, (imm:i8):$cc)
/*40055*/       0, /*End of Scope*/
/*40056*/     0, /*End of Scope*/
/*40057*/   /*Scope*/ 118, /*->40176*/
/*40058*/     OPC_CheckInteger, 22|128,2/*278*/, 
/*40061*/     OPC_MoveParent,
/*40062*/     OPC_RecordChild1, // #0 = $src1
/*40063*/     OPC_Scope, 69, /*->40134*/ // 2 children in Scope
/*40065*/       OPC_MoveChild, 2,
/*40067*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*40070*/       OPC_RecordMemRef,
/*40071*/       OPC_RecordNode, // #1 = 'ld' chained node
/*40072*/       OPC_CheckFoldableChainNode,
/*40073*/       OPC_RecordChild1, // #2 = $src
/*40074*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*40076*/       OPC_CheckPredicate, 3, // Predicate_load
/*40078*/       OPC_MoveParent,
/*40079*/       OPC_RecordChild3, // #3 = $cc
/*40080*/       OPC_MoveChild, 3,
/*40082*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*40085*/       OPC_MoveParent,
/*40086*/       OPC_Scope, 22, /*->40110*/ // 2 children in Scope
/*40088*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*40090*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src #4 #5 #6 #7 #8
/*40093*/         OPC_EmitMergeInputChains1_1,
/*40094*/         OPC_EmitConvertToTarget, 3,
/*40096*/         OPC_MorphNodeTo, TARGET_VAL(X86::Int_VCMPSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v2f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                  // Src: (intrinsic_wo_chain:v2f64 278:iPTR, VR128:v2f64:$src1, (ld:v2f64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:i8):$cc) - Complexity = 33
                  // Dst: (Int_VCMPSDrm:v2f64 VR128:v2f64:$src1, addr:iPTR:$src, (imm:i8):$cc)
/*40110*/       /*Scope*/ 22, /*->40133*/
/*40111*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*40113*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src #4 #5 #6 #7 #8
/*40116*/         OPC_EmitMergeInputChains1_1,
/*40117*/         OPC_EmitConvertToTarget, 3,
/*40119*/         OPC_MorphNodeTo, TARGET_VAL(X86::Int_CMPSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v2f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                  // Src: (intrinsic_wo_chain:v2f64 278:iPTR, VR128:v2f64:$src1, (ld:v2f64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:i8):$cc) - Complexity = 33
                  // Dst: (Int_CMPSDrm:v2f64 VR128:v2f64:$src1, addr:iPTR:$src, (imm:i8):$cc)
/*40133*/       0, /*End of Scope*/
/*40134*/     /*Scope*/ 40, /*->40175*/
/*40135*/       OPC_RecordChild2, // #1 = $src
/*40136*/       OPC_RecordChild3, // #2 = $cc
/*40137*/       OPC_MoveChild, 3,
/*40139*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*40142*/       OPC_MoveParent,
/*40143*/       OPC_Scope, 14, /*->40159*/ // 2 children in Scope
/*40145*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*40147*/         OPC_EmitConvertToTarget, 2,
/*40149*/         OPC_MorphNodeTo, TARGET_VAL(X86::Int_VCMPSDrr), 0,
                      1/*#VTs*/, MVT::v2f64, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (intrinsic_wo_chain:v2f64 278:iPTR, VR128:v2f64:$src1, VR128:v2f64:$src, (imm:i8):$cc) - Complexity = 11
                  // Dst: (Int_VCMPSDrr:v2f64 VR128:v2f64:$src1, VR128:v2f64:$src, (imm:i8):$cc)
/*40159*/       /*Scope*/ 14, /*->40174*/
/*40160*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*40162*/         OPC_EmitConvertToTarget, 2,
/*40164*/         OPC_MorphNodeTo, TARGET_VAL(X86::Int_CMPSDrr), 0,
                      1/*#VTs*/, MVT::v2f64, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (intrinsic_wo_chain:v2f64 278:iPTR, VR128:v2f64:$src1, VR128:v2f64:$src, (imm:i8):$cc) - Complexity = 11
                  // Dst: (Int_CMPSDrr:v2f64 VR128:v2f64:$src1, VR128:v2f64:$src, (imm:i8):$cc)
/*40174*/       0, /*End of Scope*/
/*40175*/     0, /*End of Scope*/
/*40176*/   /*Scope*/ 120, /*->40297*/
/*40177*/     OPC_CheckInteger, 64|128,3/*448*/, 
/*40180*/     OPC_MoveParent,
/*40181*/     OPC_RecordChild1, // #0 = $src1
/*40182*/     OPC_Scope, 71, /*->40255*/ // 2 children in Scope
/*40184*/       OPC_MoveChild, 2,
/*40186*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*40189*/       OPC_RecordMemRef,
/*40190*/       OPC_RecordNode, // #1 = 'ld' chained node
/*40191*/       OPC_CheckFoldableChainNode,
/*40192*/       OPC_RecordChild1, // #2 = $src2
/*40193*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*40195*/       OPC_CheckPredicate, 3, // Predicate_load
/*40197*/       OPC_CheckPredicate, 23, // Predicate_memop
/*40199*/       OPC_MoveParent,
/*40200*/       OPC_RecordChild3, // #3 = $cc
/*40201*/       OPC_MoveChild, 3,
/*40203*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*40206*/       OPC_MoveParent,
/*40207*/       OPC_Scope, 22, /*->40231*/ // 2 children in Scope
/*40209*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*40211*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*40214*/         OPC_EmitMergeInputChains1_1,
/*40215*/         OPC_EmitConvertToTarget, 3,
/*40217*/         OPC_MorphNodeTo, TARGET_VAL(X86::VCMPPSrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                  // Src: (intrinsic_wo_chain:v4f32 448:iPTR, VR128:v4f32:$src1, (ld:v4f32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, (imm:i8):$cc) - Complexity = 33
                  // Dst: (VCMPPSrmi:v4f32 VR128:v4f32:$src1, addr:iPTR:$src2, (imm:i8):$cc)
/*40231*/       /*Scope*/ 22, /*->40254*/
/*40232*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*40234*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*40237*/         OPC_EmitMergeInputChains1_1,
/*40238*/         OPC_EmitConvertToTarget, 3,
/*40240*/         OPC_MorphNodeTo, TARGET_VAL(X86::CMPPSrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                  // Src: (intrinsic_wo_chain:v4f32 448:iPTR, VR128:v4f32:$src1, (ld:v4f32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, (imm:i8):$cc) - Complexity = 33
                  // Dst: (CMPPSrmi:v4f32 VR128:v4f32:$src1, addr:iPTR:$src2, (imm:i8):$cc)
/*40254*/       0, /*End of Scope*/
/*40255*/     /*Scope*/ 40, /*->40296*/
/*40256*/       OPC_RecordChild2, // #1 = $src2
/*40257*/       OPC_RecordChild3, // #2 = $cc
/*40258*/       OPC_MoveChild, 3,
/*40260*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*40263*/       OPC_MoveParent,
/*40264*/       OPC_Scope, 14, /*->40280*/ // 2 children in Scope
/*40266*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*40268*/         OPC_EmitConvertToTarget, 2,
/*40270*/         OPC_MorphNodeTo, TARGET_VAL(X86::VCMPPSrri), 0,
                      1/*#VTs*/, MVT::v4f32, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (intrinsic_wo_chain:v4f32 448:iPTR, VR128:v4f32:$src1, VR128:v4f32:$src2, (imm:i8):$cc) - Complexity = 11
                  // Dst: (VCMPPSrri:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src2, (imm:i8):$cc)
/*40280*/       /*Scope*/ 14, /*->40295*/
/*40281*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*40283*/         OPC_EmitConvertToTarget, 2,
/*40285*/         OPC_MorphNodeTo, TARGET_VAL(X86::CMPPSrri), 0,
                      1/*#VTs*/, MVT::v4f32, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (intrinsic_wo_chain:v4f32 448:iPTR, VR128:v4f32:$src1, VR128:v4f32:$src2, (imm:i8):$cc) - Complexity = 11
                  // Dst: (CMPPSrri:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src2, (imm:i8):$cc)
/*40295*/       0, /*End of Scope*/
/*40296*/     0, /*End of Scope*/
/*40297*/   /*Scope*/ 120, /*->40418*/
/*40298*/     OPC_CheckInteger, 21|128,2/*277*/, 
/*40301*/     OPC_MoveParent,
/*40302*/     OPC_RecordChild1, // #0 = $src1
/*40303*/     OPC_Scope, 71, /*->40376*/ // 2 children in Scope
/*40305*/       OPC_MoveChild, 2,
/*40307*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*40310*/       OPC_RecordMemRef,
/*40311*/       OPC_RecordNode, // #1 = 'ld' chained node
/*40312*/       OPC_CheckFoldableChainNode,
/*40313*/       OPC_RecordChild1, // #2 = $src2
/*40314*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*40316*/       OPC_CheckPredicate, 3, // Predicate_load
/*40318*/       OPC_CheckPredicate, 23, // Predicate_memop
/*40320*/       OPC_MoveParent,
/*40321*/       OPC_RecordChild3, // #3 = $cc
/*40322*/       OPC_MoveChild, 3,
/*40324*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*40327*/       OPC_MoveParent,
/*40328*/       OPC_Scope, 22, /*->40352*/ // 2 children in Scope
/*40330*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*40332*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*40335*/         OPC_EmitMergeInputChains1_1,
/*40336*/         OPC_EmitConvertToTarget, 3,
/*40338*/         OPC_MorphNodeTo, TARGET_VAL(X86::VCMPPDrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v2f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                  // Src: (intrinsic_wo_chain:v2f64 277:iPTR, VR128:v2f64:$src1, (ld:v2f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, (imm:i8):$cc) - Complexity = 33
                  // Dst: (VCMPPDrmi:v2f64 VR128:v2f64:$src1, addr:iPTR:$src2, (imm:i8):$cc)
/*40352*/       /*Scope*/ 22, /*->40375*/
/*40353*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*40355*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*40358*/         OPC_EmitMergeInputChains1_1,
/*40359*/         OPC_EmitConvertToTarget, 3,
/*40361*/         OPC_MorphNodeTo, TARGET_VAL(X86::CMPPDrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v2f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                  // Src: (intrinsic_wo_chain:v2f64 277:iPTR, VR128:v2f64:$src1, (ld:v2f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, (imm:i8):$cc) - Complexity = 33
                  // Dst: (CMPPDrmi:v2f64 VR128:v2f64:$src1, addr:iPTR:$src2, (imm:i8):$cc)
/*40375*/       0, /*End of Scope*/
/*40376*/     /*Scope*/ 40, /*->40417*/
/*40377*/       OPC_RecordChild2, // #1 = $src2
/*40378*/       OPC_RecordChild3, // #2 = $cc
/*40379*/       OPC_MoveChild, 3,
/*40381*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*40384*/       OPC_MoveParent,
/*40385*/       OPC_Scope, 14, /*->40401*/ // 2 children in Scope
/*40387*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*40389*/         OPC_EmitConvertToTarget, 2,
/*40391*/         OPC_MorphNodeTo, TARGET_VAL(X86::VCMPPDrri), 0,
                      1/*#VTs*/, MVT::v2f64, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (intrinsic_wo_chain:v2f64 277:iPTR, VR128:v2f64:$src1, VR128:v2f64:$src2, (imm:i8):$cc) - Complexity = 11
                  // Dst: (VCMPPDrri:v2f64 VR128:v2f64:$src1, VR128:v2f64:$src2, (imm:i8):$cc)
/*40401*/       /*Scope*/ 14, /*->40416*/
/*40402*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*40404*/         OPC_EmitConvertToTarget, 2,
/*40406*/         OPC_MorphNodeTo, TARGET_VAL(X86::CMPPDrri), 0,
                      1/*#VTs*/, MVT::v2f64, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (intrinsic_wo_chain:v2f64 277:iPTR, VR128:v2f64:$src1, VR128:v2f64:$src2, (imm:i8):$cc) - Complexity = 11
                  // Dst: (CMPPDrri:v2f64 VR128:v2f64:$src1, VR128:v2f64:$src2, (imm:i8):$cc)
/*40416*/       0, /*End of Scope*/
/*40417*/     0, /*End of Scope*/
/*40418*/   /*Scope*/ 75, /*->40494*/
/*40419*/     OPC_CheckInteger, 120, 
/*40421*/     OPC_MoveParent,
/*40422*/     OPC_RecordChild1, // #0 = $src1
/*40423*/     OPC_Scope, 45, /*->40470*/ // 2 children in Scope
/*40425*/       OPC_MoveChild, 2,
/*40427*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*40430*/       OPC_RecordMemRef,
/*40431*/       OPC_RecordNode, // #1 = 'ld' chained node
/*40432*/       OPC_CheckFoldableChainNode,
/*40433*/       OPC_RecordChild1, // #2 = $src2
/*40434*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*40436*/       OPC_CheckPredicate, 3, // Predicate_load
/*40438*/       OPC_CheckPredicate, 23, // Predicate_memop
/*40440*/       OPC_MoveParent,
/*40441*/       OPC_RecordChild3, // #3 = $cc
/*40442*/       OPC_MoveChild, 3,
/*40444*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*40447*/       OPC_MoveParent,
/*40448*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*40450*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*40453*/       OPC_EmitMergeInputChains1_1,
/*40454*/       OPC_EmitConvertToTarget, 3,
/*40456*/       OPC_MorphNodeTo, TARGET_VAL(X86::VCMPPSYrmi), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v8f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                // Src: (intrinsic_wo_chain:v8f32 120:iPTR, VR256:v8f32:$src1, (ld:v8f32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, (imm:i8):$cc) - Complexity = 33
                // Dst: (VCMPPSYrmi:v8f32 VR256:v8f32:$src1, addr:iPTR:$src2, (imm:i8):$cc)
/*40470*/     /*Scope*/ 22, /*->40493*/
/*40471*/       OPC_RecordChild2, // #1 = $src2
/*40472*/       OPC_RecordChild3, // #2 = $cc
/*40473*/       OPC_MoveChild, 3,
/*40475*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*40478*/       OPC_MoveParent,
/*40479*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*40481*/       OPC_EmitConvertToTarget, 2,
/*40483*/       OPC_MorphNodeTo, TARGET_VAL(X86::VCMPPSYrri), 0,
                    1/*#VTs*/, MVT::v8f32, 3/*#Ops*/, 0, 1, 3, 
                // Src: (intrinsic_wo_chain:v8f32 120:iPTR, VR256:v8f32:$src1, VR256:v8f32:$src2, (imm:i8):$cc) - Complexity = 11
                // Dst: (VCMPPSYrri:v8f32 VR256:v8f32:$src1, VR256:v8f32:$src2, (imm:i8):$cc)
/*40493*/     0, /*End of Scope*/
/*40494*/   /*Scope*/ 75, /*->40570*/
/*40495*/     OPC_CheckInteger, 119, 
/*40497*/     OPC_MoveParent,
/*40498*/     OPC_RecordChild1, // #0 = $src1
/*40499*/     OPC_Scope, 45, /*->40546*/ // 2 children in Scope
/*40501*/       OPC_MoveChild, 2,
/*40503*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*40506*/       OPC_RecordMemRef,
/*40507*/       OPC_RecordNode, // #1 = 'ld' chained node
/*40508*/       OPC_CheckFoldableChainNode,
/*40509*/       OPC_RecordChild1, // #2 = $src2
/*40510*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*40512*/       OPC_CheckPredicate, 3, // Predicate_load
/*40514*/       OPC_CheckPredicate, 23, // Predicate_memop
/*40516*/       OPC_MoveParent,
/*40517*/       OPC_RecordChild3, // #3 = $cc
/*40518*/       OPC_MoveChild, 3,
/*40520*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*40523*/       OPC_MoveParent,
/*40524*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*40526*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*40529*/       OPC_EmitMergeInputChains1_1,
/*40530*/       OPC_EmitConvertToTarget, 3,
/*40532*/       OPC_MorphNodeTo, TARGET_VAL(X86::VCMPPDYrmi), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v4f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                // Src: (intrinsic_wo_chain:v4f64 119:iPTR, VR256:v4f64:$src1, (ld:v4f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, (imm:i8):$cc) - Complexity = 33
                // Dst: (VCMPPDYrmi:v4f64 VR256:v4f64:$src1, addr:iPTR:$src2, (imm:i8):$cc)
/*40546*/     /*Scope*/ 22, /*->40569*/
/*40547*/       OPC_RecordChild2, // #1 = $src2
/*40548*/       OPC_RecordChild3, // #2 = $cc
/*40549*/       OPC_MoveChild, 3,
/*40551*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*40554*/       OPC_MoveParent,
/*40555*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*40557*/       OPC_EmitConvertToTarget, 2,
/*40559*/       OPC_MorphNodeTo, TARGET_VAL(X86::VCMPPDYrri), 0,
                    1/*#VTs*/, MVT::v4f64, 3/*#Ops*/, 0, 1, 3, 
                // Src: (intrinsic_wo_chain:v4f64 119:iPTR, VR256:v4f64:$src1, VR256:v4f64:$src2, (imm:i8):$cc) - Complexity = 11
                // Dst: (VCMPPDYrri:v4f64 VR256:v4f64:$src1, VR256:v4f64:$src2, (imm:i8):$cc)
/*40569*/     0, /*End of Scope*/
/*40570*/   /*Scope*/ 115, /*->40686*/
/*40571*/     OPC_CheckInteger, 40|128,3/*424*/, 
/*40574*/     OPC_MoveParent,
/*40575*/     OPC_Scope, 69, /*->40646*/ // 2 children in Scope
/*40577*/       OPC_MoveChild, 1,
/*40579*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*40582*/       OPC_RecordMemRef,
/*40583*/       OPC_RecordNode, // #0 = 'ld' chained node
/*40584*/       OPC_CheckFoldableChainNode,
/*40585*/       OPC_RecordChild1, // #1 = $src1
/*40586*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*40588*/       OPC_CheckPredicate, 3, // Predicate_load
/*40590*/       OPC_CheckPredicate, 23, // Predicate_memop
/*40592*/       OPC_MoveParent,
/*40593*/       OPC_RecordChild2, // #2 = $src2
/*40594*/       OPC_MoveChild, 2,
/*40596*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*40599*/       OPC_MoveParent,
/*40600*/       OPC_Scope, 21, /*->40623*/ // 2 children in Scope
/*40602*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*40604*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #3 #4 #5 #6 #7
/*40607*/         OPC_EmitMergeInputChains1_0,
/*40608*/         OPC_EmitConvertToTarget, 2,
/*40610*/         OPC_MorphNodeTo, TARGET_VAL(X86::VROUNDPSm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4f32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                  // Src: (intrinsic_wo_chain:v4f32 424:iPTR, (ld:v4f32 addr:iPTR:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, (imm:i32):$src2) - Complexity = 33
                  // Dst: (VROUNDPSm:v4f32 addr:iPTR:$src1, (imm:i32):$src2)
/*40623*/       /*Scope*/ 21, /*->40645*/
/*40624*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*40626*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #3 #4 #5 #6 #7
/*40629*/         OPC_EmitMergeInputChains1_0,
/*40630*/         OPC_EmitConvertToTarget, 2,
/*40632*/         OPC_MorphNodeTo, TARGET_VAL(X86::ROUNDPSm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4f32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                  // Src: (intrinsic_wo_chain:v4f32 424:iPTR, (ld:v4f32 addr:iPTR:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, (imm:i32):$src2) - Complexity = 33
                  // Dst: (ROUNDPSm:v4f32 addr:iPTR:$src1, (imm:i32):$src2)
/*40645*/       0, /*End of Scope*/
/*40646*/     /*Scope*/ 38, /*->40685*/
/*40647*/       OPC_RecordChild1, // #0 = $src1
/*40648*/       OPC_RecordChild2, // #1 = $src2
/*40649*/       OPC_MoveChild, 2,
/*40651*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*40654*/       OPC_MoveParent,
/*40655*/       OPC_Scope, 13, /*->40670*/ // 2 children in Scope
/*40657*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*40659*/         OPC_EmitConvertToTarget, 1,
/*40661*/         OPC_MorphNodeTo, TARGET_VAL(X86::VROUNDPSr), 0,
                      1/*#VTs*/, MVT::v4f32, 2/*#Ops*/, 0, 2, 
                  // Src: (intrinsic_wo_chain:v4f32 424:iPTR, VR128:v4f32:$src1, (imm:i32):$src2) - Complexity = 11
                  // Dst: (VROUNDPSr:v4f32 VR128:v4f32:$src1, (imm:i32):$src2)
/*40670*/       /*Scope*/ 13, /*->40684*/
/*40671*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*40673*/         OPC_EmitConvertToTarget, 1,
/*40675*/         OPC_MorphNodeTo, TARGET_VAL(X86::ROUNDPSr), 0,
                      1/*#VTs*/, MVT::v4f32, 2/*#Ops*/, 0, 2, 
                  // Src: (intrinsic_wo_chain:v4f32 424:iPTR, VR128:v4f32:$src1, (imm:i32):$src2) - Complexity = 11
                  // Dst: (ROUNDPSr:v4f32 VR128:v4f32:$src1, (imm:i32):$src2)
/*40684*/       0, /*End of Scope*/
/*40685*/     0, /*End of Scope*/
/*40686*/   /*Scope*/ 115, /*->40802*/
/*40687*/     OPC_CheckInteger, 39|128,3/*423*/, 
/*40690*/     OPC_MoveParent,
/*40691*/     OPC_Scope, 69, /*->40762*/ // 2 children in Scope
/*40693*/       OPC_MoveChild, 1,
/*40695*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*40698*/       OPC_RecordMemRef,
/*40699*/       OPC_RecordNode, // #0 = 'ld' chained node
/*40700*/       OPC_CheckFoldableChainNode,
/*40701*/       OPC_RecordChild1, // #1 = $src1
/*40702*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*40704*/       OPC_CheckPredicate, 3, // Predicate_load
/*40706*/       OPC_CheckPredicate, 23, // Predicate_memop
/*40708*/       OPC_MoveParent,
/*40709*/       OPC_RecordChild2, // #2 = $src2
/*40710*/       OPC_MoveChild, 2,
/*40712*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*40715*/       OPC_MoveParent,
/*40716*/       OPC_Scope, 21, /*->40739*/ // 2 children in Scope
/*40718*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*40720*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #3 #4 #5 #6 #7
/*40723*/         OPC_EmitMergeInputChains1_0,
/*40724*/         OPC_EmitConvertToTarget, 2,
/*40726*/         OPC_MorphNodeTo, TARGET_VAL(X86::VROUNDPDm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v2f64, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                  // Src: (intrinsic_wo_chain:v2f64 423:iPTR, (ld:v2f64 addr:iPTR:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, (imm:i32):$src2) - Complexity = 33
                  // Dst: (VROUNDPDm:v2f64 addr:iPTR:$src1, (imm:i32):$src2)
/*40739*/       /*Scope*/ 21, /*->40761*/
/*40740*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*40742*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #3 #4 #5 #6 #7
/*40745*/         OPC_EmitMergeInputChains1_0,
/*40746*/         OPC_EmitConvertToTarget, 2,
/*40748*/         OPC_MorphNodeTo, TARGET_VAL(X86::ROUNDPDm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v2f64, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                  // Src: (intrinsic_wo_chain:v2f64 423:iPTR, (ld:v2f64 addr:iPTR:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, (imm:i32):$src2) - Complexity = 33
                  // Dst: (ROUNDPDm:v2f64 addr:iPTR:$src1, (imm:i32):$src2)
/*40761*/       0, /*End of Scope*/
/*40762*/     /*Scope*/ 38, /*->40801*/
/*40763*/       OPC_RecordChild1, // #0 = $src1
/*40764*/       OPC_RecordChild2, // #1 = $src2
/*40765*/       OPC_MoveChild, 2,
/*40767*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*40770*/       OPC_MoveParent,
/*40771*/       OPC_Scope, 13, /*->40786*/ // 2 children in Scope
/*40773*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*40775*/         OPC_EmitConvertToTarget, 1,
/*40777*/         OPC_MorphNodeTo, TARGET_VAL(X86::VROUNDPDr), 0,
                      1/*#VTs*/, MVT::v2f64, 2/*#Ops*/, 0, 2, 
                  // Src: (intrinsic_wo_chain:v2f64 423:iPTR, VR128:v2f64:$src1, (imm:i32):$src2) - Complexity = 11
                  // Dst: (VROUNDPDr:v2f64 VR128:v2f64:$src1, (imm:i32):$src2)
/*40786*/       /*Scope*/ 13, /*->40800*/
/*40787*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*40789*/         OPC_EmitConvertToTarget, 1,
/*40791*/         OPC_MorphNodeTo, TARGET_VAL(X86::ROUNDPDr), 0,
                      1/*#VTs*/, MVT::v2f64, 2/*#Ops*/, 0, 2, 
                  // Src: (intrinsic_wo_chain:v2f64 423:iPTR, VR128:v2f64:$src1, (imm:i32):$src2) - Complexity = 11
                  // Dst: (ROUNDPDr:v2f64 VR128:v2f64:$src1, (imm:i32):$src2)
/*40800*/       0, /*End of Scope*/
/*40801*/     0, /*End of Scope*/
/*40802*/   /*Scope*/ 73, /*->40876*/
/*40803*/     OPC_CheckInteger, 32|128,1/*160*/, 
/*40806*/     OPC_MoveParent,
/*40807*/     OPC_Scope, 44, /*->40853*/ // 2 children in Scope
/*40809*/       OPC_MoveChild, 1,
/*40811*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*40814*/       OPC_RecordMemRef,
/*40815*/       OPC_RecordNode, // #0 = 'ld' chained node
/*40816*/       OPC_CheckFoldableChainNode,
/*40817*/       OPC_RecordChild1, // #1 = $src1
/*40818*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*40820*/       OPC_CheckPredicate, 3, // Predicate_load
/*40822*/       OPC_CheckPredicate, 23, // Predicate_memop
/*40824*/       OPC_MoveParent,
/*40825*/       OPC_RecordChild2, // #2 = $src2
/*40826*/       OPC_MoveChild, 2,
/*40828*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*40831*/       OPC_MoveParent,
/*40832*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*40834*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #3 #4 #5 #6 #7
/*40837*/       OPC_EmitMergeInputChains1_0,
/*40838*/       OPC_EmitConvertToTarget, 2,
/*40840*/       OPC_MorphNodeTo, TARGET_VAL(X86::VROUNDYPSm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v8f32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                // Src: (intrinsic_wo_chain:v8f32 160:iPTR, (ld:v8f32 addr:iPTR:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, (imm:i32):$src2) - Complexity = 33
                // Dst: (VROUNDYPSm:v8f32 addr:iPTR:$src1, (imm:i32):$src2)
/*40853*/     /*Scope*/ 21, /*->40875*/
/*40854*/       OPC_RecordChild1, // #0 = $src1
/*40855*/       OPC_RecordChild2, // #1 = $src2
/*40856*/       OPC_MoveChild, 2,
/*40858*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*40861*/       OPC_MoveParent,
/*40862*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*40864*/       OPC_EmitConvertToTarget, 1,
/*40866*/       OPC_MorphNodeTo, TARGET_VAL(X86::VROUNDYPSr), 0,
                    1/*#VTs*/, MVT::v8f32, 2/*#Ops*/, 0, 2, 
                // Src: (intrinsic_wo_chain:v8f32 160:iPTR, VR256:v8f32:$src1, (imm:i32):$src2) - Complexity = 11
                // Dst: (VROUNDYPSr:v8f32 VR256:v8f32:$src1, (imm:i32):$src2)
/*40875*/     0, /*End of Scope*/
/*40876*/   /*Scope*/ 73, /*->40950*/
/*40877*/     OPC_CheckInteger, 31|128,1/*159*/, 
/*40880*/     OPC_MoveParent,
/*40881*/     OPC_Scope, 44, /*->40927*/ // 2 children in Scope
/*40883*/       OPC_MoveChild, 1,
/*40885*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*40888*/       OPC_RecordMemRef,
/*40889*/       OPC_RecordNode, // #0 = 'ld' chained node
/*40890*/       OPC_CheckFoldableChainNode,
/*40891*/       OPC_RecordChild1, // #1 = $src1
/*40892*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*40894*/       OPC_CheckPredicate, 3, // Predicate_load
/*40896*/       OPC_CheckPredicate, 23, // Predicate_memop
/*40898*/       OPC_MoveParent,
/*40899*/       OPC_RecordChild2, // #2 = $src2
/*40900*/       OPC_MoveChild, 2,
/*40902*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*40905*/       OPC_MoveParent,
/*40906*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*40908*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #3 #4 #5 #6 #7
/*40911*/       OPC_EmitMergeInputChains1_0,
/*40912*/       OPC_EmitConvertToTarget, 2,
/*40914*/       OPC_MorphNodeTo, TARGET_VAL(X86::VROUNDYPDm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v4f64, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                // Src: (intrinsic_wo_chain:v4f64 159:iPTR, (ld:v4f64 addr:iPTR:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, (imm:i32):$src2) - Complexity = 33
                // Dst: (VROUNDYPDm:v4f64 addr:iPTR:$src1, (imm:i32):$src2)
/*40927*/     /*Scope*/ 21, /*->40949*/
/*40928*/       OPC_RecordChild1, // #0 = $src1
/*40929*/       OPC_RecordChild2, // #1 = $src2
/*40930*/       OPC_MoveChild, 2,
/*40932*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*40935*/       OPC_MoveParent,
/*40936*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*40938*/       OPC_EmitConvertToTarget, 1,
/*40940*/       OPC_MorphNodeTo, TARGET_VAL(X86::VROUNDYPDr), 0,
                    1/*#VTs*/, MVT::v4f64, 2/*#Ops*/, 0, 2, 
                // Src: (intrinsic_wo_chain:v4f64 159:iPTR, VR256:v4f64:$src1, (imm:i32):$src2) - Complexity = 11
                // Dst: (VROUNDYPDr:v4f64 VR256:v4f64:$src1, (imm:i32):$src2)
/*40949*/     0, /*End of Scope*/
/*40950*/   /*Scope*/ 112, /*->41063*/
/*40951*/     OPC_CheckInteger, 127|128,2/*383*/, 
/*40954*/     OPC_MoveParent,
/*40955*/     OPC_RecordChild1, // #0 = $src1
/*40956*/     OPC_Scope, 71, /*->41029*/ // 2 children in Scope
/*40958*/       OPC_MoveChild, 2,
/*40960*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*40963*/       OPC_MoveChild, 0,
/*40965*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*40968*/       OPC_RecordMemRef,
/*40969*/       OPC_RecordNode, // #1 = 'ld' chained node
/*40970*/       OPC_CheckFoldableChainNode,
/*40971*/       OPC_RecordChild1, // #2 = $src2
/*40972*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*40974*/       OPC_CheckPredicate, 3, // Predicate_load
/*40976*/       OPC_CheckPredicate, 23, // Predicate_memop
/*40978*/       OPC_CheckType, MVT::v16i8,
/*40980*/       OPC_MoveParent,
/*40981*/       OPC_MoveParent,
/*40982*/       OPC_RecordChild3, // #3 = $src3
/*40983*/       OPC_Scope, 20, /*->41005*/ // 2 children in Scope
/*40985*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*40987*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*40990*/         OPC_EmitMergeInputChains1_1,
/*40991*/         OPC_MorphNodeTo, TARGET_VAL(X86::VBLENDVPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v2f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                  // Src: (intrinsic_wo_chain:v2f64 383:iPTR, VR128:v2f64:$src1, (bitconvert:v2f64 (ld:v16i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>), VR128:v2f64:$src3) - Complexity = 33
                  // Dst: (VBLENDVPDrm:v2f64 VR128:v2f64:$src1, addr:iPTR:$src2, VR128:v2f64:$src3)
/*41005*/       /*Scope*/ 22, /*->41028*/
/*41006*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*41008*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*41011*/         OPC_EmitMergeInputChains1_1,
/*41012*/         OPC_EmitCopyToReg, 3, X86::XMM0,
/*41015*/         OPC_MorphNodeTo, TARGET_VAL(X86::BLENDVPDrm0), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v2f64, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                  // Src: (intrinsic_wo_chain:v2f64 383:iPTR, VR128:v2f64:$src1, (bitconvert:v2f64 (ld:v16i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>), XMM0:v2f64) - Complexity = 33
                  // Dst: (BLENDVPDrm0:v2f64 VR128:v2f64:$src1, addr:iPTR:$src2)
/*41028*/       0, /*End of Scope*/
/*41029*/     /*Scope*/ 32, /*->41062*/
/*41030*/       OPC_RecordChild2, // #1 = $src2
/*41031*/       OPC_RecordChild3, // #2 = $src3
/*41032*/       OPC_Scope, 12, /*->41046*/ // 2 children in Scope
/*41034*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*41036*/         OPC_MorphNodeTo, TARGET_VAL(X86::VBLENDVPDrr), 0,
                      1/*#VTs*/, MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:v2f64 383:iPTR, VR128:v2f64:$src1, VR128:v2f64:$src2, VR128:v2f64:$src3) - Complexity = 8
                  // Dst: (VBLENDVPDrr:v2f64 VR128:v2f64:$src1, VR128:v2f64:$src2, VR128:v2f64:$src3)
/*41046*/       /*Scope*/ 14, /*->41061*/
/*41047*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*41049*/         OPC_EmitCopyToReg, 2, X86::XMM0,
/*41052*/         OPC_MorphNodeTo, TARGET_VAL(X86::BLENDVPDrr0), 0|OPFL_GlueInput,
                      1/*#VTs*/, MVT::v2f64, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v2f64 383:iPTR, VR128:v2f64:$src1, VR128:v2f64:$src2, XMM0:v2f64) - Complexity = 8
                  // Dst: (BLENDVPDrr0:v2f64 VR128:v2f64:$src1, VR128:v2f64:$src2)
/*41061*/       0, /*End of Scope*/
/*41062*/     0, /*End of Scope*/
/*41063*/   /*Scope*/ 112, /*->41176*/
/*41064*/     OPC_CheckInteger, 0|128,3/*384*/, 
/*41067*/     OPC_MoveParent,
/*41068*/     OPC_RecordChild1, // #0 = $src1
/*41069*/     OPC_Scope, 71, /*->41142*/ // 2 children in Scope
/*41071*/       OPC_MoveChild, 2,
/*41073*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*41076*/       OPC_MoveChild, 0,
/*41078*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*41081*/       OPC_RecordMemRef,
/*41082*/       OPC_RecordNode, // #1 = 'ld' chained node
/*41083*/       OPC_CheckFoldableChainNode,
/*41084*/       OPC_RecordChild1, // #2 = $src2
/*41085*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*41087*/       OPC_CheckPredicate, 3, // Predicate_load
/*41089*/       OPC_CheckPredicate, 23, // Predicate_memop
/*41091*/       OPC_CheckType, MVT::v16i8,
/*41093*/       OPC_MoveParent,
/*41094*/       OPC_MoveParent,
/*41095*/       OPC_RecordChild3, // #3 = $src3
/*41096*/       OPC_Scope, 20, /*->41118*/ // 2 children in Scope
/*41098*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*41100*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*41103*/         OPC_EmitMergeInputChains1_1,
/*41104*/         OPC_MorphNodeTo, TARGET_VAL(X86::VBLENDVPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                  // Src: (intrinsic_wo_chain:v4f32 384:iPTR, VR128:v4f32:$src1, (bitconvert:v4f32 (ld:v16i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>), VR128:v4f32:$src3) - Complexity = 33
                  // Dst: (VBLENDVPSrm:v4f32 VR128:v4f32:$src1, addr:iPTR:$src2, VR128:v4f32:$src3)
/*41118*/       /*Scope*/ 22, /*->41141*/
/*41119*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*41121*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*41124*/         OPC_EmitMergeInputChains1_1,
/*41125*/         OPC_EmitCopyToReg, 3, X86::XMM0,
/*41128*/         OPC_MorphNodeTo, TARGET_VAL(X86::BLENDVPSrm0), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4f32, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                  // Src: (intrinsic_wo_chain:v4f32 384:iPTR, VR128:v4f32:$src1, (bitconvert:v4f32 (ld:v16i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>), XMM0:v4f32) - Complexity = 33
                  // Dst: (BLENDVPSrm0:v4f32 VR128:v4f32:$src1, addr:iPTR:$src2)
/*41141*/       0, /*End of Scope*/
/*41142*/     /*Scope*/ 32, /*->41175*/
/*41143*/       OPC_RecordChild2, // #1 = $src2
/*41144*/       OPC_RecordChild3, // #2 = $src3
/*41145*/       OPC_Scope, 12, /*->41159*/ // 2 children in Scope
/*41147*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*41149*/         OPC_MorphNodeTo, TARGET_VAL(X86::VBLENDVPSrr), 0,
                      1/*#VTs*/, MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:v4f32 384:iPTR, VR128:v4f32:$src1, VR128:v4f32:$src2, VR128:v4f32:$src3) - Complexity = 8
                  // Dst: (VBLENDVPSrr:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src2, VR128:v4f32:$src3)
/*41159*/       /*Scope*/ 14, /*->41174*/
/*41160*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*41162*/         OPC_EmitCopyToReg, 2, X86::XMM0,
/*41165*/         OPC_MorphNodeTo, TARGET_VAL(X86::BLENDVPSrr0), 0|OPFL_GlueInput,
                      1/*#VTs*/, MVT::v4f32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v4f32 384:iPTR, VR128:v4f32:$src1, VR128:v4f32:$src2, XMM0:v4f32) - Complexity = 8
                  // Dst: (BLENDVPSrr0:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src2)
/*41174*/       0, /*End of Scope*/
/*41175*/     0, /*End of Scope*/
/*41176*/   /*Scope*/ 67, /*->41244*/
/*41177*/     OPC_CheckInteger, 117, 
/*41179*/     OPC_MoveParent,
/*41180*/     OPC_RecordChild1, // #0 = $src1
/*41181*/     OPC_Scope, 45, /*->41228*/ // 2 children in Scope
/*41183*/       OPC_MoveChild, 2,
/*41185*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*41188*/       OPC_MoveChild, 0,
/*41190*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*41193*/       OPC_RecordMemRef,
/*41194*/       OPC_RecordNode, // #1 = 'ld' chained node
/*41195*/       OPC_CheckFoldableChainNode,
/*41196*/       OPC_RecordChild1, // #2 = $src2
/*41197*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*41199*/       OPC_CheckPredicate, 3, // Predicate_load
/*41201*/       OPC_CheckPredicate, 23, // Predicate_memop
/*41203*/       OPC_CheckType, MVT::v32i8,
/*41205*/       OPC_MoveParent,
/*41206*/       OPC_MoveParent,
/*41207*/       OPC_RecordChild3, // #3 = $src3
/*41208*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*41210*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*41213*/       OPC_EmitMergeInputChains1_1,
/*41214*/       OPC_MorphNodeTo, TARGET_VAL(X86::VBLENDVPDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v4f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                // Src: (intrinsic_wo_chain:v4f64 117:iPTR, VR256:v4f64:$src1, (bitconvert:v4f64 (ld:v32i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>), VR256:v4f64:$src3) - Complexity = 33
                // Dst: (VBLENDVPDYrm:v4f64 VR256:v4f64:$src1, addr:iPTR:$src2, VR256:v4f64:$src3)
/*41228*/     /*Scope*/ 14, /*->41243*/
/*41229*/       OPC_RecordChild2, // #1 = $src2
/*41230*/       OPC_RecordChild3, // #2 = $src3
/*41231*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*41233*/       OPC_MorphNodeTo, TARGET_VAL(X86::VBLENDVPDYrr), 0,
                    1/*#VTs*/, MVT::v4f64, 3/*#Ops*/, 0, 1, 2, 
                // Src: (intrinsic_wo_chain:v4f64 117:iPTR, VR256:v4f64:$src1, VR256:v4f64:$src2, VR256:v4f64:$src3) - Complexity = 8
                // Dst: (VBLENDVPDYrr:v4f64 VR256:v4f64:$src1, VR256:v4f64:$src2, VR256:v4f64:$src3)
/*41243*/     0, /*End of Scope*/
/*41244*/   /*Scope*/ 67, /*->41312*/
/*41245*/     OPC_CheckInteger, 118, 
/*41247*/     OPC_MoveParent,
/*41248*/     OPC_RecordChild1, // #0 = $src1
/*41249*/     OPC_Scope, 45, /*->41296*/ // 2 children in Scope
/*41251*/       OPC_MoveChild, 2,
/*41253*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*41256*/       OPC_MoveChild, 0,
/*41258*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*41261*/       OPC_RecordMemRef,
/*41262*/       OPC_RecordNode, // #1 = 'ld' chained node
/*41263*/       OPC_CheckFoldableChainNode,
/*41264*/       OPC_RecordChild1, // #2 = $src2
/*41265*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*41267*/       OPC_CheckPredicate, 3, // Predicate_load
/*41269*/       OPC_CheckPredicate, 23, // Predicate_memop
/*41271*/       OPC_CheckType, MVT::v32i8,
/*41273*/       OPC_MoveParent,
/*41274*/       OPC_MoveParent,
/*41275*/       OPC_RecordChild3, // #3 = $src3
/*41276*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*41278*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*41281*/       OPC_EmitMergeInputChains1_1,
/*41282*/       OPC_MorphNodeTo, TARGET_VAL(X86::VBLENDVPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v8f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                // Src: (intrinsic_wo_chain:v8f32 118:iPTR, VR256:v8f32:$src1, (bitconvert:v8f32 (ld:v32i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>), VR256:v8f32:$src3) - Complexity = 33
                // Dst: (VBLENDVPSYrm:v8f32 VR256:v8f32:$src1, addr:iPTR:$src2, VR256:v8f32:$src3)
/*41296*/     /*Scope*/ 14, /*->41311*/
/*41297*/       OPC_RecordChild2, // #1 = $src2
/*41298*/       OPC_RecordChild3, // #2 = $src3
/*41299*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*41301*/       OPC_MorphNodeTo, TARGET_VAL(X86::VBLENDVPSYrr), 0,
                    1/*#VTs*/, MVT::v8f32, 3/*#Ops*/, 0, 1, 2, 
                // Src: (intrinsic_wo_chain:v8f32 118:iPTR, VR256:v8f32:$src1, VR256:v8f32:$src2, VR256:v8f32:$src3) - Complexity = 8
                // Dst: (VBLENDVPSYrr:v8f32 VR256:v8f32:$src1, VR256:v8f32:$src2, VR256:v8f32:$src3)
/*41311*/     0, /*End of Scope*/
/*41312*/   /*Scope*/ 73, /*->41386*/
/*41313*/     OPC_CheckInteger, 55|128,1/*183*/, 
/*41316*/     OPC_MoveParent,
/*41317*/     OPC_Scope, 44, /*->41363*/ // 2 children in Scope
/*41319*/       OPC_MoveChild, 1,
/*41321*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*41324*/       OPC_RecordMemRef,
/*41325*/       OPC_RecordNode, // #0 = 'ld' chained node
/*41326*/       OPC_CheckFoldableChainNode,
/*41327*/       OPC_RecordChild1, // #1 = $src1
/*41328*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*41330*/       OPC_CheckPredicate, 3, // Predicate_load
/*41332*/       OPC_CheckPredicate, 23, // Predicate_memop
/*41334*/       OPC_MoveParent,
/*41335*/       OPC_RecordChild2, // #2 = $src2
/*41336*/       OPC_MoveChild, 2,
/*41338*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*41341*/       OPC_MoveParent,
/*41342*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*41344*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #3 #4 #5 #6 #7
/*41347*/       OPC_EmitMergeInputChains1_0,
/*41348*/       OPC_EmitConvertToTarget, 2,
/*41350*/       OPC_MorphNodeTo, TARGET_VAL(X86::VPERMILPSmi), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v4f32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                // Src: (intrinsic_wo_chain:v4f32 183:iPTR, (ld:v4f32 addr:iPTR:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, (imm:i8):$src2) - Complexity = 33
                // Dst: (VPERMILPSmi:v4f32 addr:iPTR:$src1, (imm:i8):$src2)
/*41363*/     /*Scope*/ 21, /*->41385*/
/*41364*/       OPC_RecordChild1, // #0 = $src1
/*41365*/       OPC_RecordChild2, // #1 = $src2
/*41366*/       OPC_MoveChild, 2,
/*41368*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*41371*/       OPC_MoveParent,
/*41372*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*41374*/       OPC_EmitConvertToTarget, 1,
/*41376*/       OPC_MorphNodeTo, TARGET_VAL(X86::VPERMILPSri), 0,
                    1/*#VTs*/, MVT::v4f32, 2/*#Ops*/, 0, 2, 
                // Src: (intrinsic_wo_chain:v4f32 183:iPTR, VR128:v4f32:$src1, (imm:i8):$src2) - Complexity = 11
                // Dst: (VPERMILPSri:v4f32 VR128:v4f32:$src1, (imm:i8):$src2)
/*41385*/     0, /*End of Scope*/
/*41386*/   /*Scope*/ 73, /*->41460*/
/*41387*/     OPC_CheckInteger, 56|128,1/*184*/, 
/*41390*/     OPC_MoveParent,
/*41391*/     OPC_Scope, 44, /*->41437*/ // 2 children in Scope
/*41393*/       OPC_MoveChild, 1,
/*41395*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*41398*/       OPC_RecordMemRef,
/*41399*/       OPC_RecordNode, // #0 = 'ld' chained node
/*41400*/       OPC_CheckFoldableChainNode,
/*41401*/       OPC_RecordChild1, // #1 = $src1
/*41402*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*41404*/       OPC_CheckPredicate, 3, // Predicate_load
/*41406*/       OPC_CheckPredicate, 23, // Predicate_memop
/*41408*/       OPC_MoveParent,
/*41409*/       OPC_RecordChild2, // #2 = $src2
/*41410*/       OPC_MoveChild, 2,
/*41412*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*41415*/       OPC_MoveParent,
/*41416*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*41418*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #3 #4 #5 #6 #7
/*41421*/       OPC_EmitMergeInputChains1_0,
/*41422*/       OPC_EmitConvertToTarget, 2,
/*41424*/       OPC_MorphNodeTo, TARGET_VAL(X86::VPERMILPSYmi), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v8f32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                // Src: (intrinsic_wo_chain:v8f32 184:iPTR, (ld:v8f32 addr:iPTR:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, (imm:i8):$src2) - Complexity = 33
                // Dst: (VPERMILPSYmi:v8f32 addr:iPTR:$src1, (imm:i8):$src2)
/*41437*/     /*Scope*/ 21, /*->41459*/
/*41438*/       OPC_RecordChild1, // #0 = $src1
/*41439*/       OPC_RecordChild2, // #1 = $src2
/*41440*/       OPC_MoveChild, 2,
/*41442*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*41445*/       OPC_MoveParent,
/*41446*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*41448*/       OPC_EmitConvertToTarget, 1,
/*41450*/       OPC_MorphNodeTo, TARGET_VAL(X86::VPERMILPSYri), 0,
                    1/*#VTs*/, MVT::v8f32, 2/*#Ops*/, 0, 2, 
                // Src: (intrinsic_wo_chain:v8f32 184:iPTR, VR256:v8f32:$src1, (imm:i8):$src2) - Complexity = 11
                // Dst: (VPERMILPSYri:v8f32 VR256:v8f32:$src1, (imm:i8):$src2)
/*41459*/     0, /*End of Scope*/
/*41460*/   /*Scope*/ 73, /*->41534*/
/*41461*/     OPC_CheckInteger, 53|128,1/*181*/, 
/*41464*/     OPC_MoveParent,
/*41465*/     OPC_Scope, 44, /*->41511*/ // 2 children in Scope
/*41467*/       OPC_MoveChild, 1,
/*41469*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*41472*/       OPC_RecordMemRef,
/*41473*/       OPC_RecordNode, // #0 = 'ld' chained node
/*41474*/       OPC_CheckFoldableChainNode,
/*41475*/       OPC_RecordChild1, // #1 = $src1
/*41476*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*41478*/       OPC_CheckPredicate, 3, // Predicate_load
/*41480*/       OPC_CheckPredicate, 23, // Predicate_memop
/*41482*/       OPC_MoveParent,
/*41483*/       OPC_RecordChild2, // #2 = $src2
/*41484*/       OPC_MoveChild, 2,
/*41486*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*41489*/       OPC_MoveParent,
/*41490*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*41492*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #3 #4 #5 #6 #7
/*41495*/       OPC_EmitMergeInputChains1_0,
/*41496*/       OPC_EmitConvertToTarget, 2,
/*41498*/       OPC_MorphNodeTo, TARGET_VAL(X86::VPERMILPDmi), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v2f64, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                // Src: (intrinsic_wo_chain:v2f64 181:iPTR, (ld:v2f64 addr:iPTR:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, (imm:i8):$src2) - Complexity = 33
                // Dst: (VPERMILPDmi:v2f64 addr:iPTR:$src1, (imm:i8):$src2)
/*41511*/     /*Scope*/ 21, /*->41533*/
/*41512*/       OPC_RecordChild1, // #0 = $src1
/*41513*/       OPC_RecordChild2, // #1 = $src2
/*41514*/       OPC_MoveChild, 2,
/*41516*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*41519*/       OPC_MoveParent,
/*41520*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*41522*/       OPC_EmitConvertToTarget, 1,
/*41524*/       OPC_MorphNodeTo, TARGET_VAL(X86::VPERMILPDri), 0,
                    1/*#VTs*/, MVT::v2f64, 2/*#Ops*/, 0, 2, 
                // Src: (intrinsic_wo_chain:v2f64 181:iPTR, VR128:v2f64:$src1, (imm:i8):$src2) - Complexity = 11
                // Dst: (VPERMILPDri:v2f64 VR128:v2f64:$src1, (imm:i8):$src2)
/*41533*/     0, /*End of Scope*/
/*41534*/   /*Scope*/ 73, /*->41608*/
/*41535*/     OPC_CheckInteger, 54|128,1/*182*/, 
/*41538*/     OPC_MoveParent,
/*41539*/     OPC_Scope, 44, /*->41585*/ // 2 children in Scope
/*41541*/       OPC_MoveChild, 1,
/*41543*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*41546*/       OPC_RecordMemRef,
/*41547*/       OPC_RecordNode, // #0 = 'ld' chained node
/*41548*/       OPC_CheckFoldableChainNode,
/*41549*/       OPC_RecordChild1, // #1 = $src1
/*41550*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*41552*/       OPC_CheckPredicate, 3, // Predicate_load
/*41554*/       OPC_CheckPredicate, 23, // Predicate_memop
/*41556*/       OPC_MoveParent,
/*41557*/       OPC_RecordChild2, // #2 = $src2
/*41558*/       OPC_MoveChild, 2,
/*41560*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*41563*/       OPC_MoveParent,
/*41564*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*41566*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #3 #4 #5 #6 #7
/*41569*/       OPC_EmitMergeInputChains1_0,
/*41570*/       OPC_EmitConvertToTarget, 2,
/*41572*/       OPC_MorphNodeTo, TARGET_VAL(X86::VPERMILPDYmi), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v4f64, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                // Src: (intrinsic_wo_chain:v4f64 182:iPTR, (ld:v4f64 addr:iPTR:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, (imm:i8):$src2) - Complexity = 33
                // Dst: (VPERMILPDYmi:v4f64 addr:iPTR:$src1, (imm:i8):$src2)
/*41585*/     /*Scope*/ 21, /*->41607*/
/*41586*/       OPC_RecordChild1, // #0 = $src1
/*41587*/       OPC_RecordChild2, // #1 = $src2
/*41588*/       OPC_MoveChild, 2,
/*41590*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*41593*/       OPC_MoveParent,
/*41594*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*41596*/       OPC_EmitConvertToTarget, 1,
/*41598*/       OPC_MorphNodeTo, TARGET_VAL(X86::VPERMILPDYri), 0,
                    1/*#VTs*/, MVT::v4f64, 2/*#Ops*/, 0, 2, 
                // Src: (intrinsic_wo_chain:v4f64 182:iPTR, VR256:v4f64:$src1, (imm:i8):$src2) - Complexity = 11
                // Dst: (VPERMILPDYri:v4f64 VR256:v4f64:$src1, (imm:i8):$src2)
/*41607*/     0, /*End of Scope*/
/*41608*/   /*Scope*/ 72, /*->41681*/
/*41609*/     OPC_CheckInteger, 51|128,1/*179*/, 
/*41612*/     OPC_MoveParent,
/*41613*/     OPC_RecordChild1, // #0 = $src1
/*41614*/     OPC_Scope, 43, /*->41659*/ // 2 children in Scope
/*41616*/       OPC_MoveChild, 2,
/*41618*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*41621*/       OPC_RecordMemRef,
/*41622*/       OPC_RecordNode, // #1 = 'ld' chained node
/*41623*/       OPC_CheckFoldableChainNode,
/*41624*/       OPC_RecordChild1, // #2 = $src2
/*41625*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*41627*/       OPC_CheckPredicate, 3, // Predicate_load
/*41629*/       OPC_CheckPredicate, 23, // Predicate_memop
/*41631*/       OPC_MoveParent,
/*41632*/       OPC_RecordChild3, // #3 = $src3
/*41633*/       OPC_MoveChild, 3,
/*41635*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*41638*/       OPC_MoveParent,
/*41639*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*41642*/       OPC_EmitMergeInputChains1_1,
/*41643*/       OPC_EmitConvertToTarget, 3,
/*41645*/       OPC_MorphNodeTo, TARGET_VAL(X86::VPERM2F128rm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v8f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                // Src: (intrinsic_wo_chain:v8f32 179:iPTR, VR256:v8f32:$src1, (ld:v8f32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, (imm:i8):$src3) - Complexity = 33
                // Dst: (VPERM2F128rm:v8f32 VR256:v8f32:$src1, addr:iPTR:$src2, (imm:i8):$src3)
/*41659*/     /*Scope*/ 20, /*->41680*/
/*41660*/       OPC_RecordChild2, // #1 = $src2
/*41661*/       OPC_RecordChild3, // #2 = $src3
/*41662*/       OPC_MoveChild, 3,
/*41664*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*41667*/       OPC_MoveParent,
/*41668*/       OPC_EmitConvertToTarget, 2,
/*41670*/       OPC_MorphNodeTo, TARGET_VAL(X86::VPERM2F128rr), 0,
                    1/*#VTs*/, MVT::v8f32, 3/*#Ops*/, 0, 1, 3, 
                // Src: (intrinsic_wo_chain:v8f32 179:iPTR, VR256:v8f32:$src1, VR256:v8f32:$src2, (imm:i8):$src3) - Complexity = 11
                // Dst: (VPERM2F128rr:v8f32 VR256:v8f32:$src1, VR256:v8f32:$src2, (imm:i8):$src3)
/*41680*/     0, /*End of Scope*/
/*41681*/   /*Scope*/ 72, /*->41754*/
/*41682*/     OPC_CheckInteger, 50|128,1/*178*/, 
/*41685*/     OPC_MoveParent,
/*41686*/     OPC_RecordChild1, // #0 = $src1
/*41687*/     OPC_Scope, 43, /*->41732*/ // 2 children in Scope
/*41689*/       OPC_MoveChild, 2,
/*41691*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*41694*/       OPC_RecordMemRef,
/*41695*/       OPC_RecordNode, // #1 = 'ld' chained node
/*41696*/       OPC_CheckFoldableChainNode,
/*41697*/       OPC_RecordChild1, // #2 = $src2
/*41698*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*41700*/       OPC_CheckPredicate, 3, // Predicate_load
/*41702*/       OPC_CheckPredicate, 23, // Predicate_memop
/*41704*/       OPC_MoveParent,
/*41705*/       OPC_RecordChild3, // #3 = $src3
/*41706*/       OPC_MoveChild, 3,
/*41708*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*41711*/       OPC_MoveParent,
/*41712*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*41715*/       OPC_EmitMergeInputChains1_1,
/*41716*/       OPC_EmitConvertToTarget, 3,
/*41718*/       OPC_MorphNodeTo, TARGET_VAL(X86::VPERM2F128rm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v4f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                // Src: (intrinsic_wo_chain:v4f64 178:iPTR, VR256:v4f64:$src1, (ld:v4f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, (imm:i8):$src3) - Complexity = 33
                // Dst: (VPERM2F128rm:v4f64 VR256:v4f64:$src1, addr:iPTR:$src2, (imm:i8):$src3)
/*41732*/     /*Scope*/ 20, /*->41753*/
/*41733*/       OPC_RecordChild2, // #1 = $src2
/*41734*/       OPC_RecordChild3, // #2 = $src3
/*41735*/       OPC_MoveChild, 3,
/*41737*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*41740*/       OPC_MoveParent,
/*41741*/       OPC_EmitConvertToTarget, 2,
/*41743*/       OPC_MorphNodeTo, TARGET_VAL(X86::VPERM2F128rr), 0,
                    1/*#VTs*/, MVT::v4f64, 3/*#Ops*/, 0, 1, 3, 
                // Src: (intrinsic_wo_chain:v4f64 178:iPTR, VR256:v4f64:$src1, VR256:v4f64:$src2, (imm:i8):$src3) - Complexity = 11
                // Dst: (VPERM2F128rr:v4f64 VR256:v4f64:$src1, VR256:v4f64:$src2, (imm:i8):$src3)
/*41753*/     0, /*End of Scope*/
/*41754*/   /*Scope*/ 92, /*->41847*/
/*41755*/     OPC_CheckInteger, 76|128,3/*460*/, 
/*41758*/     OPC_MoveParent,
/*41759*/     OPC_RecordChild1, // #0 = $src1
/*41760*/     OPC_Scope, 56, /*->41818*/ // 2 children in Scope
/*41762*/       OPC_MoveChild, 2,
/*41764*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*41767*/       OPC_RecordMemRef,
/*41768*/       OPC_RecordNode, // #1 = 'ld' chained node
/*41769*/       OPC_CheckFoldableChainNode,
/*41770*/       OPC_RecordChild1, // #2 = $src2
/*41771*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*41773*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*41775*/       OPC_MoveParent,
/*41776*/       OPC_Scope, 19, /*->41797*/ // 2 children in Scope
/*41778*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*41780*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*41783*/         OPC_EmitMergeInputChains1_1,
/*41784*/         OPC_MorphNodeTo, TARGET_VAL(X86::Int_VCVTSI2SSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v4f32 460:iPTR, VR128:v4f32:$src1, (ld:i32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>) - Complexity = 30
                  // Dst: (Int_VCVTSI2SSrm:v4f32 VR128:v4f32:$src1, addr:iPTR:$src2)
/*41797*/       /*Scope*/ 19, /*->41817*/
/*41798*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*41800*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*41803*/         OPC_EmitMergeInputChains1_1,
/*41804*/         OPC_MorphNodeTo, TARGET_VAL(X86::Int_CVTSI2SSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v4f32 460:iPTR, VR128:v4f32:$src1, (ld:i32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>) - Complexity = 30
                  // Dst: (Int_CVTSI2SSrm:v4f32 VR128:v4f32:$src1, addr:iPTR:$src2)
/*41817*/       0, /*End of Scope*/
/*41818*/     /*Scope*/ 27, /*->41846*/
/*41819*/       OPC_RecordChild2, // #1 = $src2
/*41820*/       OPC_Scope, 11, /*->41833*/ // 2 children in Scope
/*41822*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*41824*/         OPC_MorphNodeTo, TARGET_VAL(X86::Int_VCVTSI2SSrr), 0,
                      1/*#VTs*/, MVT::v4f32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v4f32 460:iPTR, VR128:v4f32:$src1, GR32:i32:$src2) - Complexity = 8
                  // Dst: (Int_VCVTSI2SSrr:v4f32 VR128:v4f32:$src1, GR32:i32:$src2)
/*41833*/       /*Scope*/ 11, /*->41845*/
/*41834*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*41836*/         OPC_MorphNodeTo, TARGET_VAL(X86::Int_CVTSI2SSrr), 0,
                      1/*#VTs*/, MVT::v4f32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v4f32 460:iPTR, VR128:v4f32:$src1, GR32:i32:$src2) - Complexity = 8
                  // Dst: (Int_CVTSI2SSrr:v4f32 VR128:v4f32:$src1, GR32:i32:$src2)
/*41845*/       0, /*End of Scope*/
/*41846*/     0, /*End of Scope*/
/*41847*/   /*Scope*/ 92, /*->41940*/
/*41848*/     OPC_CheckInteger, 77|128,3/*461*/, 
/*41851*/     OPC_MoveParent,
/*41852*/     OPC_RecordChild1, // #0 = $src1
/*41853*/     OPC_Scope, 56, /*->41911*/ // 2 children in Scope
/*41855*/       OPC_MoveChild, 2,
/*41857*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*41860*/       OPC_RecordMemRef,
/*41861*/       OPC_RecordNode, // #1 = 'ld' chained node
/*41862*/       OPC_CheckFoldableChainNode,
/*41863*/       OPC_RecordChild1, // #2 = $src2
/*41864*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*41866*/       OPC_CheckPredicate, 3, // Predicate_load
/*41868*/       OPC_MoveParent,
/*41869*/       OPC_Scope, 19, /*->41890*/ // 2 children in Scope
/*41871*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*41873*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*41876*/         OPC_EmitMergeInputChains1_1,
/*41877*/         OPC_MorphNodeTo, TARGET_VAL(X86::Int_VCVTSI2SS64rm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v4f32 461:iPTR, VR128:v4f32:$src1, (ld:i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                  // Dst: (Int_VCVTSI2SS64rm:v4f32 VR128:v4f32:$src1, addr:iPTR:$src2)
/*41890*/       /*Scope*/ 19, /*->41910*/
/*41891*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*41893*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*41896*/         OPC_EmitMergeInputChains1_1,
/*41897*/         OPC_MorphNodeTo, TARGET_VAL(X86::Int_CVTSI2SS64rm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v4f32 461:iPTR, VR128:v4f32:$src1, (ld:i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                  // Dst: (Int_CVTSI2SS64rm:v4f32 VR128:v4f32:$src1, addr:iPTR:$src2)
/*41910*/       0, /*End of Scope*/
/*41911*/     /*Scope*/ 27, /*->41939*/
/*41912*/       OPC_RecordChild2, // #1 = $src2
/*41913*/       OPC_Scope, 11, /*->41926*/ // 2 children in Scope
/*41915*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*41917*/         OPC_MorphNodeTo, TARGET_VAL(X86::Int_VCVTSI2SS64rr), 0,
                      1/*#VTs*/, MVT::v4f32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v4f32 461:iPTR, VR128:v4f32:$src1, GR64:i64:$src2) - Complexity = 8
                  // Dst: (Int_VCVTSI2SS64rr:v4f32 VR128:v4f32:$src1, GR64:i64:$src2)
/*41926*/       /*Scope*/ 11, /*->41938*/
/*41927*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*41929*/         OPC_MorphNodeTo, TARGET_VAL(X86::Int_CVTSI2SS64rr), 0,
                      1/*#VTs*/, MVT::v4f32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v4f32 461:iPTR, VR128:v4f32:$src1, GR64:i64:$src2) - Complexity = 8
                  // Dst: (Int_CVTSI2SS64rr:v4f32 VR128:v4f32:$src1, GR64:i64:$src2)
/*41938*/       0, /*End of Scope*/
/*41939*/     0, /*End of Scope*/
/*41940*/   /*Scope*/ 92, /*->42033*/
/*41941*/     OPC_CheckInteger, 38|128,2/*294*/, 
/*41944*/     OPC_MoveParent,
/*41945*/     OPC_RecordChild1, // #0 = $src1
/*41946*/     OPC_Scope, 56, /*->42004*/ // 2 children in Scope
/*41948*/       OPC_MoveChild, 2,
/*41950*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*41953*/       OPC_RecordMemRef,
/*41954*/       OPC_RecordNode, // #1 = 'ld' chained node
/*41955*/       OPC_CheckFoldableChainNode,
/*41956*/       OPC_RecordChild1, // #2 = $src2
/*41957*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*41959*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*41961*/       OPC_MoveParent,
/*41962*/       OPC_Scope, 19, /*->41983*/ // 2 children in Scope
/*41964*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*41966*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*41969*/         OPC_EmitMergeInputChains1_1,
/*41970*/         OPC_MorphNodeTo, TARGET_VAL(X86::Int_VCVTSI2SDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v2f64 294:iPTR, VR128:v2f64:$src1, (ld:i32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>) - Complexity = 30
                  // Dst: (Int_VCVTSI2SDrm:v2f64 VR128:v2f64:$src1, addr:iPTR:$src2)
/*41983*/       /*Scope*/ 19, /*->42003*/
/*41984*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*41986*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*41989*/         OPC_EmitMergeInputChains1_1,
/*41990*/         OPC_MorphNodeTo, TARGET_VAL(X86::Int_CVTSI2SDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v2f64 294:iPTR, VR128:v2f64:$src1, (ld:i32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>) - Complexity = 30
                  // Dst: (Int_CVTSI2SDrm:v2f64 VR128:v2f64:$src1, addr:iPTR:$src2)
/*42003*/       0, /*End of Scope*/
/*42004*/     /*Scope*/ 27, /*->42032*/
/*42005*/       OPC_RecordChild2, // #1 = $src2
/*42006*/       OPC_Scope, 11, /*->42019*/ // 2 children in Scope
/*42008*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*42010*/         OPC_MorphNodeTo, TARGET_VAL(X86::Int_VCVTSI2SDrr), 0,
                      1/*#VTs*/, MVT::v2f64, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v2f64 294:iPTR, VR128:v2f64:$src1, GR32:i32:$src2) - Complexity = 8
                  // Dst: (Int_VCVTSI2SDrr:v2f64 VR128:v2f64:$src1, GR32:i32:$src2)
/*42019*/       /*Scope*/ 11, /*->42031*/
/*42020*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*42022*/         OPC_MorphNodeTo, TARGET_VAL(X86::Int_CVTSI2SDrr), 0,
                      1/*#VTs*/, MVT::v2f64, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v2f64 294:iPTR, VR128:v2f64:$src1, GR32:i32:$src2) - Complexity = 8
                  // Dst: (Int_CVTSI2SDrr:v2f64 VR128:v2f64:$src1, GR32:i32:$src2)
/*42031*/       0, /*End of Scope*/
/*42032*/     0, /*End of Scope*/
/*42033*/   /*Scope*/ 92, /*->42126*/
/*42034*/     OPC_CheckInteger, 39|128,2/*295*/, 
/*42037*/     OPC_MoveParent,
/*42038*/     OPC_RecordChild1, // #0 = $src1
/*42039*/     OPC_Scope, 56, /*->42097*/ // 2 children in Scope
/*42041*/       OPC_MoveChild, 2,
/*42043*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*42046*/       OPC_RecordMemRef,
/*42047*/       OPC_RecordNode, // #1 = 'ld' chained node
/*42048*/       OPC_CheckFoldableChainNode,
/*42049*/       OPC_RecordChild1, // #2 = $src2
/*42050*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*42052*/       OPC_CheckPredicate, 3, // Predicate_load
/*42054*/       OPC_MoveParent,
/*42055*/       OPC_Scope, 19, /*->42076*/ // 2 children in Scope
/*42057*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*42059*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*42062*/         OPC_EmitMergeInputChains1_1,
/*42063*/         OPC_MorphNodeTo, TARGET_VAL(X86::Int_VCVTSI2SD64rm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v2f64 295:iPTR, VR128:v2f64:$src1, (ld:i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                  // Dst: (Int_VCVTSI2SD64rm:v2f64 VR128:v2f64:$src1, addr:iPTR:$src2)
/*42076*/       /*Scope*/ 19, /*->42096*/
/*42077*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*42079*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*42082*/         OPC_EmitMergeInputChains1_1,
/*42083*/         OPC_MorphNodeTo, TARGET_VAL(X86::Int_CVTSI2SD64rm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v2f64 295:iPTR, VR128:v2f64:$src1, (ld:i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                  // Dst: (Int_CVTSI2SD64rm:v2f64 VR128:v2f64:$src1, addr:iPTR:$src2)
/*42096*/       0, /*End of Scope*/
/*42097*/     /*Scope*/ 27, /*->42125*/
/*42098*/       OPC_RecordChild2, // #1 = $src2
/*42099*/       OPC_Scope, 11, /*->42112*/ // 2 children in Scope
/*42101*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*42103*/         OPC_MorphNodeTo, TARGET_VAL(X86::Int_VCVTSI2SD64rr), 0,
                      1/*#VTs*/, MVT::v2f64, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v2f64 295:iPTR, VR128:v2f64:$src1, GR64:i64:$src2) - Complexity = 8
                  // Dst: (Int_VCVTSI2SD64rr:v2f64 VR128:v2f64:$src1, GR64:i64:$src2)
/*42112*/       /*Scope*/ 11, /*->42124*/
/*42113*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*42115*/         OPC_MorphNodeTo, TARGET_VAL(X86::Int_CVTSI2SD64rr), 0,
                      1/*#VTs*/, MVT::v2f64, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v2f64 295:iPTR, VR128:v2f64:$src1, GR64:i64:$src2) - Complexity = 8
                  // Dst: (Int_CVTSI2SD64rr:v2f64 VR128:v2f64:$src1, GR64:i64:$src2)
/*42124*/       0, /*End of Scope*/
/*42125*/     0, /*End of Scope*/
/*42126*/   /*Scope*/ 92, /*->42219*/
/*42127*/     OPC_CheckInteger, 37|128,2/*293*/, 
/*42130*/     OPC_MoveParent,
/*42131*/     OPC_RecordChild1, // #0 = $src1
/*42132*/     OPC_Scope, 56, /*->42190*/ // 2 children in Scope
/*42134*/       OPC_MoveChild, 2,
/*42136*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*42139*/       OPC_RecordMemRef,
/*42140*/       OPC_RecordNode, // #1 = 'ld' chained node
/*42141*/       OPC_CheckFoldableChainNode,
/*42142*/       OPC_RecordChild1, // #2 = $src2
/*42143*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*42145*/       OPC_CheckPredicate, 3, // Predicate_load
/*42147*/       OPC_MoveParent,
/*42148*/       OPC_Scope, 19, /*->42169*/ // 2 children in Scope
/*42150*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*42152*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*42155*/         OPC_EmitMergeInputChains1_1,
/*42156*/         OPC_MorphNodeTo, TARGET_VAL(X86::Int_VCVTSD2SSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v4f32 293:iPTR, VR128:v4f32:$src1, (ld:v2f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                  // Dst: (Int_VCVTSD2SSrm:v4f32 VR128:v4f32:$src1, addr:iPTR:$src2)
/*42169*/       /*Scope*/ 19, /*->42189*/
/*42170*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*42172*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*42175*/         OPC_EmitMergeInputChains1_1,
/*42176*/         OPC_MorphNodeTo, TARGET_VAL(X86::Int_CVTSD2SSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v4f32 293:iPTR, VR128:v4f32:$src1, (ld:v2f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                  // Dst: (Int_CVTSD2SSrm:v4f32 VR128:v4f32:$src1, addr:iPTR:$src2)
/*42189*/       0, /*End of Scope*/
/*42190*/     /*Scope*/ 27, /*->42218*/
/*42191*/       OPC_RecordChild2, // #1 = $src2
/*42192*/       OPC_Scope, 11, /*->42205*/ // 2 children in Scope
/*42194*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*42196*/         OPC_MorphNodeTo, TARGET_VAL(X86::Int_VCVTSD2SSrr), 0,
                      1/*#VTs*/, MVT::v4f32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v4f32 293:iPTR, VR128:v4f32:$src1, VR128:v2f64:$src2) - Complexity = 8
                  // Dst: (Int_VCVTSD2SSrr:v4f32 VR128:v4f32:$src1, VR128:v2f64:$src2)
/*42205*/       /*Scope*/ 11, /*->42217*/
/*42206*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*42208*/         OPC_MorphNodeTo, TARGET_VAL(X86::Int_CVTSD2SSrr), 0,
                      1/*#VTs*/, MVT::v4f32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v4f32 293:iPTR, VR128:v4f32:$src1, VR128:v2f64:$src2) - Complexity = 8
                  // Dst: (Int_CVTSD2SSrr:v4f32 VR128:v4f32:$src1, VR128:v2f64:$src2)
/*42217*/       0, /*End of Scope*/
/*42218*/     0, /*End of Scope*/
/*42219*/   /*Scope*/ 92, /*->42312*/
/*42220*/     OPC_CheckInteger, 40|128,2/*296*/, 
/*42223*/     OPC_MoveParent,
/*42224*/     OPC_RecordChild1, // #0 = $src1
/*42225*/     OPC_Scope, 56, /*->42283*/ // 2 children in Scope
/*42227*/       OPC_MoveChild, 2,
/*42229*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*42232*/       OPC_RecordMemRef,
/*42233*/       OPC_RecordNode, // #1 = 'ld' chained node
/*42234*/       OPC_CheckFoldableChainNode,
/*42235*/       OPC_RecordChild1, // #2 = $src2
/*42236*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*42238*/       OPC_CheckPredicate, 3, // Predicate_load
/*42240*/       OPC_MoveParent,
/*42241*/       OPC_Scope, 19, /*->42262*/ // 2 children in Scope
/*42243*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*42245*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*42248*/         OPC_EmitMergeInputChains1_1,
/*42249*/         OPC_MorphNodeTo, TARGET_VAL(X86::Int_VCVTSS2SDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v2f64 296:iPTR, VR128:v2f64:$src1, (ld:v4f32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                  // Dst: (Int_VCVTSS2SDrm:v2f64 VR128:v2f64:$src1, addr:iPTR:$src2)
/*42262*/       /*Scope*/ 19, /*->42282*/
/*42263*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*42265*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*42268*/         OPC_EmitMergeInputChains1_1,
/*42269*/         OPC_MorphNodeTo, TARGET_VAL(X86::Int_CVTSS2SDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v2f64 296:iPTR, VR128:v2f64:$src1, (ld:v4f32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                  // Dst: (Int_CVTSS2SDrm:v2f64 VR128:v2f64:$src1, addr:iPTR:$src2)
/*42282*/       0, /*End of Scope*/
/*42283*/     /*Scope*/ 27, /*->42311*/
/*42284*/       OPC_RecordChild2, // #1 = $src2
/*42285*/       OPC_Scope, 11, /*->42298*/ // 2 children in Scope
/*42287*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*42289*/         OPC_MorphNodeTo, TARGET_VAL(X86::Int_VCVTSS2SDrr), 0,
                      1/*#VTs*/, MVT::v2f64, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v2f64 296:iPTR, VR128:v2f64:$src1, VR128:v4f32:$src2) - Complexity = 8
                  // Dst: (Int_VCVTSS2SDrr:v2f64 VR128:v2f64:$src1, VR128:v4f32:$src2)
/*42298*/       /*Scope*/ 11, /*->42310*/
/*42299*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*42301*/         OPC_MorphNodeTo, TARGET_VAL(X86::Int_CVTSS2SDrr), 0,
                      1/*#VTs*/, MVT::v2f64, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v2f64 296:iPTR, VR128:v2f64:$src1, VR128:v4f32:$src2) - Complexity = 8
                  // Dst: (Int_CVTSS2SDrr:v2f64 VR128:v2f64:$src1, VR128:v4f32:$src2)
/*42310*/       0, /*End of Scope*/
/*42311*/     0, /*End of Scope*/
/*42312*/   /*Scope*/ 87, /*->42400*/
/*42313*/     OPC_CheckInteger, 34|128,2/*290*/, 
/*42316*/     OPC_MoveParent,
/*42317*/     OPC_Scope, 54, /*->42373*/ // 2 children in Scope
/*42319*/       OPC_MoveChild, 1,
/*42321*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*42324*/       OPC_RecordMemRef,
/*42325*/       OPC_RecordNode, // #0 = 'ld' chained node
/*42326*/       OPC_CheckFoldableChainNode,
/*42327*/       OPC_RecordChild1, // #1 = $src
/*42328*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*42330*/       OPC_CheckPredicate, 3, // Predicate_load
/*42332*/       OPC_MoveParent,
/*42333*/       OPC_Scope, 18, /*->42353*/ // 2 children in Scope
/*42335*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*42337*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*42340*/         OPC_EmitMergeInputChains1_0,
/*42341*/         OPC_MorphNodeTo, TARGET_VAL(X86::Int_VCVTPS2PDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v2f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (intrinsic_wo_chain:v2f64 290:iPTR, (ld:v4f32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                  // Dst: (Int_VCVTPS2PDrm:v2f64 addr:iPTR:$src)
/*42353*/       /*Scope*/ 18, /*->42372*/
/*42354*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*42356*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*42359*/         OPC_EmitMergeInputChains1_0,
/*42360*/         OPC_MorphNodeTo, TARGET_VAL(X86::Int_CVTPS2PDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v2f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (intrinsic_wo_chain:v2f64 290:iPTR, (ld:v4f32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                  // Dst: (Int_CVTPS2PDrm:v2f64 addr:iPTR:$src)
/*42372*/       0, /*End of Scope*/
/*42373*/     /*Scope*/ 25, /*->42399*/
/*42374*/       OPC_RecordChild1, // #0 = $src
/*42375*/       OPC_Scope, 10, /*->42387*/ // 2 children in Scope
/*42377*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*42379*/         OPC_MorphNodeTo, TARGET_VAL(X86::Int_VCVTPS2PDrr), 0,
                      1/*#VTs*/, MVT::v2f64, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:v2f64 290:iPTR, VR128:v4f32:$src) - Complexity = 8
                  // Dst: (Int_VCVTPS2PDrr:v2f64 VR128:v4f32:$src)
/*42387*/       /*Scope*/ 10, /*->42398*/
/*42388*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*42390*/         OPC_MorphNodeTo, TARGET_VAL(X86::Int_CVTPS2PDrr), 0,
                      1/*#VTs*/, MVT::v2f64, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:v2f64 290:iPTR, VR128:v4f32:$src) - Complexity = 8
                  // Dst: (Int_CVTPS2PDrr:v2f64 VR128:v4f32:$src)
/*42398*/       0, /*End of Scope*/
/*42399*/     0, /*End of Scope*/
/*42400*/   /*Scope*/ 89, /*->42490*/
/*42401*/     OPC_CheckInteger, 32|128,2/*288*/, 
/*42404*/     OPC_MoveParent,
/*42405*/     OPC_Scope, 56, /*->42463*/ // 2 children in Scope
/*42407*/       OPC_MoveChild, 1,
/*42409*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*42412*/       OPC_RecordMemRef,
/*42413*/       OPC_RecordNode, // #0 = 'ld' chained node
/*42414*/       OPC_CheckFoldableChainNode,
/*42415*/       OPC_RecordChild1, // #1 = $src
/*42416*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*42418*/       OPC_CheckPredicate, 3, // Predicate_load
/*42420*/       OPC_CheckPredicate, 23, // Predicate_memop
/*42422*/       OPC_MoveParent,
/*42423*/       OPC_Scope, 18, /*->42443*/ // 2 children in Scope
/*42425*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*42427*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*42430*/         OPC_EmitMergeInputChains1_0,
/*42431*/         OPC_MorphNodeTo, TARGET_VAL(X86::Int_VCVTPD2PSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (intrinsic_wo_chain:v4f32 288:iPTR, (ld:v2f64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 30
                  // Dst: (Int_VCVTPD2PSrm:v4f32 addr:iPTR:$src)
/*42443*/       /*Scope*/ 18, /*->42462*/
/*42444*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*42446*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*42449*/         OPC_EmitMergeInputChains1_0,
/*42450*/         OPC_MorphNodeTo, TARGET_VAL(X86::Int_CVTPD2PSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (intrinsic_wo_chain:v4f32 288:iPTR, (ld:v2f64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 30
                  // Dst: (Int_CVTPD2PSrm:v4f32 addr:iPTR:$src)
/*42462*/       0, /*End of Scope*/
/*42463*/     /*Scope*/ 25, /*->42489*/
/*42464*/       OPC_RecordChild1, // #0 = $src
/*42465*/       OPC_Scope, 10, /*->42477*/ // 2 children in Scope
/*42467*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*42469*/         OPC_MorphNodeTo, TARGET_VAL(X86::Int_VCVTPD2PSrr), 0,
                      1/*#VTs*/, MVT::v4f32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:v4f32 288:iPTR, VR128:v2f64:$src) - Complexity = 8
                  // Dst: (Int_VCVTPD2PSrr:v4f32 VR128:v2f64:$src)
/*42477*/       /*Scope*/ 10, /*->42488*/
/*42478*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*42480*/         OPC_MorphNodeTo, TARGET_VAL(X86::Int_CVTPD2PSrr), 0,
                      1/*#VTs*/, MVT::v4f32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:v4f32 288:iPTR, VR128:v2f64:$src) - Complexity = 8
                  // Dst: (Int_CVTPD2PSrr:v4f32 VR128:v2f64:$src)
/*42488*/       0, /*End of Scope*/
/*42489*/     0, /*End of Scope*/
/*42490*/   /*Scope*/ 48, /*->42539*/
/*42491*/     OPC_CheckInteger, 126, 
/*42493*/     OPC_MoveParent,
/*42494*/     OPC_Scope, 32, /*->42528*/ // 2 children in Scope
/*42496*/       OPC_MoveChild, 1,
/*42498*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*42501*/       OPC_RecordMemRef,
/*42502*/       OPC_RecordNode, // #0 = 'ld' chained node
/*42503*/       OPC_CheckFoldableChainNode,
/*42504*/       OPC_RecordChild1, // #1 = $src
/*42505*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*42507*/       OPC_CheckPredicate, 3, // Predicate_load
/*42509*/       OPC_CheckPredicate, 23, // Predicate_memop
/*42511*/       OPC_MoveParent,
/*42512*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*42515*/       OPC_EmitMergeInputChains1_0,
/*42516*/       OPC_MorphNodeTo, TARGET_VAL(X86::VCVTDQ2PSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v8f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (intrinsic_wo_chain:v8f32 126:iPTR, (ld:v8i32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 30
                // Dst: (VCVTDQ2PSYrm:v8f32 addr:iPTR:$src)
/*42528*/     /*Scope*/ 9, /*->42538*/
/*42529*/       OPC_RecordChild1, // #0 = $src
/*42530*/       OPC_MorphNodeTo, TARGET_VAL(X86::VCVTDQ2PSYrr), 0,
                    1/*#VTs*/, MVT::v8f32, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:v8f32 126:iPTR, VR256:v8i32:$src) - Complexity = 8
                // Dst: (VCVTDQ2PSYrr:v8f32 VR256:v8i32:$src)
/*42538*/     0, /*End of Scope*/
/*42539*/   /*Scope*/ 48, /*->42588*/
/*42540*/     OPC_CheckInteger, 121, 
/*42542*/     OPC_MoveParent,
/*42543*/     OPC_Scope, 32, /*->42577*/ // 2 children in Scope
/*42545*/       OPC_MoveChild, 1,
/*42547*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*42550*/       OPC_RecordMemRef,
/*42551*/       OPC_RecordNode, // #0 = 'ld' chained node
/*42552*/       OPC_CheckFoldableChainNode,
/*42553*/       OPC_RecordChild1, // #1 = $src
/*42554*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*42556*/       OPC_CheckPredicate, 3, // Predicate_load
/*42558*/       OPC_CheckPredicate, 23, // Predicate_memop
/*42560*/       OPC_MoveParent,
/*42561*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*42564*/       OPC_EmitMergeInputChains1_0,
/*42565*/       OPC_MorphNodeTo, TARGET_VAL(X86::VCVTPD2PSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v4f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (intrinsic_wo_chain:v4f32 121:iPTR, (ld:v4f64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 30
                // Dst: (VCVTPD2PSYrm:v4f32 addr:iPTR:$src)
/*42577*/     /*Scope*/ 9, /*->42587*/
/*42578*/       OPC_RecordChild1, // #0 = $src
/*42579*/       OPC_MorphNodeTo, TARGET_VAL(X86::VCVTPD2PSYrr), 0,
                    1/*#VTs*/, MVT::v4f32, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:v4f32 121:iPTR, VR256:v4f64:$src) - Complexity = 8
                // Dst: (VCVTPD2PSYrr:v4f32 VR256:v4f64:$src)
/*42587*/     0, /*End of Scope*/
/*42588*/   /*Scope*/ 48, /*->42637*/
/*42589*/     OPC_CheckInteger, 123, 
/*42591*/     OPC_MoveParent,
/*42592*/     OPC_Scope, 32, /*->42626*/ // 2 children in Scope
/*42594*/       OPC_MoveChild, 1,
/*42596*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*42599*/       OPC_RecordMemRef,
/*42600*/       OPC_RecordNode, // #0 = 'ld' chained node
/*42601*/       OPC_CheckFoldableChainNode,
/*42602*/       OPC_RecordChild1, // #1 = $src
/*42603*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*42605*/       OPC_CheckPredicate, 3, // Predicate_load
/*42607*/       OPC_CheckPredicate, 23, // Predicate_memop
/*42609*/       OPC_MoveParent,
/*42610*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*42613*/       OPC_EmitMergeInputChains1_0,
/*42614*/       OPC_MorphNodeTo, TARGET_VAL(X86::VCVTPS2PDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v4f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (intrinsic_wo_chain:v4f64 123:iPTR, (ld:v4f32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 30
                // Dst: (VCVTPS2PDYrm:v4f64 addr:iPTR:$src)
/*42626*/     /*Scope*/ 9, /*->42636*/
/*42627*/       OPC_RecordChild1, // #0 = $src
/*42628*/       OPC_MorphNodeTo, TARGET_VAL(X86::VCVTPS2PDYrr), 0,
                    1/*#VTs*/, MVT::v4f64, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:v4f64 123:iPTR, VR128:v4f32:$src) - Complexity = 8
                // Dst: (VCVTPS2PDYrr:v4f64 VR128:v4f32:$src)
/*42636*/     0, /*End of Scope*/
/*42637*/   /*Scope*/ 94, /*->42732*/
/*42638*/     OPC_CheckInteger, 86|128,3/*470*/, 
/*42641*/     OPC_MoveParent,
/*42642*/     OPC_RecordChild1, // #0 = $src1
/*42643*/     OPC_Scope, 58, /*->42703*/ // 2 children in Scope
/*42645*/       OPC_MoveChild, 2,
/*42647*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*42650*/       OPC_RecordMemRef,
/*42651*/       OPC_RecordNode, // #1 = 'ld' chained node
/*42652*/       OPC_CheckFoldableChainNode,
/*42653*/       OPC_RecordChild1, // #2 = $src2
/*42654*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*42656*/       OPC_CheckPredicate, 3, // Predicate_load
/*42658*/       OPC_CheckPredicate, 23, // Predicate_memop
/*42660*/       OPC_MoveParent,
/*42661*/       OPC_Scope, 19, /*->42682*/ // 2 children in Scope
/*42663*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*42665*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*42668*/         OPC_EmitMergeInputChains1_1,
/*42669*/         OPC_MorphNodeTo, TARGET_VAL(X86::VMAXPSrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v4f32 470:iPTR, VR128:v4f32:$src1, (ld:v4f32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 30
                  // Dst: (VMAXPSrm_Int:v4f32 VR128:v4f32:$src1, addr:iPTR:$src2)
/*42682*/       /*Scope*/ 19, /*->42702*/
/*42683*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*42685*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*42688*/         OPC_EmitMergeInputChains1_1,
/*42689*/         OPC_MorphNodeTo, TARGET_VAL(X86::MAXPSrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v4f32 470:iPTR, VR128:v4f32:$src1, (ld:v4f32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 30
                  // Dst: (MAXPSrm_Int:v4f32 VR128:v4f32:$src1, addr:iPTR:$src2)
/*42702*/       0, /*End of Scope*/
/*42703*/     /*Scope*/ 27, /*->42731*/
/*42704*/       OPC_RecordChild2, // #1 = $src2
/*42705*/       OPC_Scope, 11, /*->42718*/ // 2 children in Scope
/*42707*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*42709*/         OPC_MorphNodeTo, TARGET_VAL(X86::VMAXPSrr_Int), 0,
                      1/*#VTs*/, MVT::v4f32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v4f32 470:iPTR, VR128:v4f32:$src1, VR128:v4f32:$src2) - Complexity = 8
                  // Dst: (VMAXPSrr_Int:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src2)
/*42718*/       /*Scope*/ 11, /*->42730*/
/*42719*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*42721*/         OPC_MorphNodeTo, TARGET_VAL(X86::MAXPSrr_Int), 0,
                      1/*#VTs*/, MVT::v4f32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v4f32 470:iPTR, VR128:v4f32:$src1, VR128:v4f32:$src2) - Complexity = 8
                  // Dst: (MAXPSrr_Int:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src2)
/*42730*/       0, /*End of Scope*/
/*42731*/     0, /*End of Scope*/
/*42732*/   /*Scope*/ 94, /*->42827*/
/*42733*/     OPC_CheckInteger, 48|128,2/*304*/, 
/*42736*/     OPC_MoveParent,
/*42737*/     OPC_RecordChild1, // #0 = $src1
/*42738*/     OPC_Scope, 58, /*->42798*/ // 2 children in Scope
/*42740*/       OPC_MoveChild, 2,
/*42742*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*42745*/       OPC_RecordMemRef,
/*42746*/       OPC_RecordNode, // #1 = 'ld' chained node
/*42747*/       OPC_CheckFoldableChainNode,
/*42748*/       OPC_RecordChild1, // #2 = $src2
/*42749*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*42751*/       OPC_CheckPredicate, 3, // Predicate_load
/*42753*/       OPC_CheckPredicate, 23, // Predicate_memop
/*42755*/       OPC_MoveParent,
/*42756*/       OPC_Scope, 19, /*->42777*/ // 2 children in Scope
/*42758*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*42760*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*42763*/         OPC_EmitMergeInputChains1_1,
/*42764*/         OPC_MorphNodeTo, TARGET_VAL(X86::VMAXPDrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v2f64 304:iPTR, VR128:v2f64:$src1, (ld:v2f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 30
                  // Dst: (VMAXPDrm_Int:v2f64 VR128:v2f64:$src1, addr:iPTR:$src2)
/*42777*/       /*Scope*/ 19, /*->42797*/
/*42778*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*42780*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*42783*/         OPC_EmitMergeInputChains1_1,
/*42784*/         OPC_MorphNodeTo, TARGET_VAL(X86::MAXPDrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v2f64 304:iPTR, VR128:v2f64:$src1, (ld:v2f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 30
                  // Dst: (MAXPDrm_Int:v2f64 VR128:v2f64:$src1, addr:iPTR:$src2)
/*42797*/       0, /*End of Scope*/
/*42798*/     /*Scope*/ 27, /*->42826*/
/*42799*/       OPC_RecordChild2, // #1 = $src2
/*42800*/       OPC_Scope, 11, /*->42813*/ // 2 children in Scope
/*42802*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*42804*/         OPC_MorphNodeTo, TARGET_VAL(X86::VMAXPDrr_Int), 0,
                      1/*#VTs*/, MVT::v2f64, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v2f64 304:iPTR, VR128:v2f64:$src1, VR128:v2f64:$src2) - Complexity = 8
                  // Dst: (VMAXPDrr_Int:v2f64 VR128:v2f64:$src1, VR128:v2f64:$src2)
/*42813*/       /*Scope*/ 11, /*->42825*/
/*42814*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*42816*/         OPC_MorphNodeTo, TARGET_VAL(X86::MAXPDrr_Int), 0,
                      1/*#VTs*/, MVT::v2f64, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v2f64 304:iPTR, VR128:v2f64:$src1, VR128:v2f64:$src2) - Complexity = 8
                  // Dst: (MAXPDrr_Int:v2f64 VR128:v2f64:$src1, VR128:v2f64:$src2)
/*42825*/       0, /*End of Scope*/
/*42826*/     0, /*End of Scope*/
/*42827*/   /*Scope*/ 56, /*->42884*/
/*42828*/     OPC_CheckInteger, 19|128,1/*147*/, 
/*42831*/     OPC_MoveParent,
/*42832*/     OPC_RecordChild1, // #0 = $src1
/*42833*/     OPC_Scope, 35, /*->42870*/ // 2 children in Scope
/*42835*/       OPC_MoveChild, 2,
/*42837*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*42840*/       OPC_RecordMemRef,
/*42841*/       OPC_RecordNode, // #1 = 'ld' chained node
/*42842*/       OPC_CheckFoldableChainNode,
/*42843*/       OPC_RecordChild1, // #2 = $src2
/*42844*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*42846*/       OPC_CheckPredicate, 3, // Predicate_load
/*42848*/       OPC_CheckPredicate, 23, // Predicate_memop
/*42850*/       OPC_MoveParent,
/*42851*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*42853*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*42856*/       OPC_EmitMergeInputChains1_1,
/*42857*/       OPC_MorphNodeTo, TARGET_VAL(X86::VMAXPSYrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v8f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_wo_chain:v8f32 147:iPTR, VR256:v8f32:$src1, (ld:v8f32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 30
                // Dst: (VMAXPSYrm_Int:v8f32 VR256:v8f32:$src1, addr:iPTR:$src2)
/*42870*/     /*Scope*/ 12, /*->42883*/
/*42871*/       OPC_RecordChild2, // #1 = $src2
/*42872*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*42874*/       OPC_MorphNodeTo, TARGET_VAL(X86::VMAXPSYrr_Int), 0,
                    1/*#VTs*/, MVT::v8f32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:v8f32 147:iPTR, VR256:v8f32:$src1, VR256:v8f32:$src2) - Complexity = 8
                // Dst: (VMAXPSYrr_Int:v8f32 VR256:v8f32:$src1, VR256:v8f32:$src2)
/*42883*/     0, /*End of Scope*/
/*42884*/   /*Scope*/ 56, /*->42941*/
/*42885*/     OPC_CheckInteger, 18|128,1/*146*/, 
/*42888*/     OPC_MoveParent,
/*42889*/     OPC_RecordChild1, // #0 = $src1
/*42890*/     OPC_Scope, 35, /*->42927*/ // 2 children in Scope
/*42892*/       OPC_MoveChild, 2,
/*42894*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*42897*/       OPC_RecordMemRef,
/*42898*/       OPC_RecordNode, // #1 = 'ld' chained node
/*42899*/       OPC_CheckFoldableChainNode,
/*42900*/       OPC_RecordChild1, // #2 = $src2
/*42901*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*42903*/       OPC_CheckPredicate, 3, // Predicate_load
/*42905*/       OPC_CheckPredicate, 23, // Predicate_memop
/*42907*/       OPC_MoveParent,
/*42908*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*42910*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*42913*/       OPC_EmitMergeInputChains1_1,
/*42914*/       OPC_MorphNodeTo, TARGET_VAL(X86::VMAXPDYrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v4f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_wo_chain:v4f64 146:iPTR, VR256:v4f64:$src1, (ld:v4f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 30
                // Dst: (VMAXPDYrm_Int:v4f64 VR256:v4f64:$src1, addr:iPTR:$src2)
/*42927*/     /*Scope*/ 12, /*->42940*/
/*42928*/       OPC_RecordChild2, // #1 = $src2
/*42929*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*42931*/       OPC_MorphNodeTo, TARGET_VAL(X86::VMAXPDYrr_Int), 0,
                    1/*#VTs*/, MVT::v4f64, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:v4f64 146:iPTR, VR256:v4f64:$src1, VR256:v4f64:$src2) - Complexity = 8
                // Dst: (VMAXPDYrr_Int:v4f64 VR256:v4f64:$src1, VR256:v4f64:$src2)
/*42940*/     0, /*End of Scope*/
/*42941*/   /*Scope*/ 94, /*->43036*/
/*42942*/     OPC_CheckInteger, 88|128,3/*472*/, 
/*42945*/     OPC_MoveParent,
/*42946*/     OPC_RecordChild1, // #0 = $src1
/*42947*/     OPC_Scope, 58, /*->43007*/ // 2 children in Scope
/*42949*/       OPC_MoveChild, 2,
/*42951*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*42954*/       OPC_RecordMemRef,
/*42955*/       OPC_RecordNode, // #1 = 'ld' chained node
/*42956*/       OPC_CheckFoldableChainNode,
/*42957*/       OPC_RecordChild1, // #2 = $src2
/*42958*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*42960*/       OPC_CheckPredicate, 3, // Predicate_load
/*42962*/       OPC_CheckPredicate, 23, // Predicate_memop
/*42964*/       OPC_MoveParent,
/*42965*/       OPC_Scope, 19, /*->42986*/ // 2 children in Scope
/*42967*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*42969*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*42972*/         OPC_EmitMergeInputChains1_1,
/*42973*/         OPC_MorphNodeTo, TARGET_VAL(X86::VMINPSrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v4f32 472:iPTR, VR128:v4f32:$src1, (ld:v4f32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 30
                  // Dst: (VMINPSrm_Int:v4f32 VR128:v4f32:$src1, addr:iPTR:$src2)
/*42986*/       /*Scope*/ 19, /*->43006*/
/*42987*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*42989*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*42992*/         OPC_EmitMergeInputChains1_1,
/*42993*/         OPC_MorphNodeTo, TARGET_VAL(X86::MINPSrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v4f32 472:iPTR, VR128:v4f32:$src1, (ld:v4f32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 30
                  // Dst: (MINPSrm_Int:v4f32 VR128:v4f32:$src1, addr:iPTR:$src2)
/*43006*/       0, /*End of Scope*/
/*43007*/     /*Scope*/ 27, /*->43035*/
/*43008*/       OPC_RecordChild2, // #1 = $src2
/*43009*/       OPC_Scope, 11, /*->43022*/ // 2 children in Scope
/*43011*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*43013*/         OPC_MorphNodeTo, TARGET_VAL(X86::VMINPSrr_Int), 0,
                      1/*#VTs*/, MVT::v4f32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v4f32 472:iPTR, VR128:v4f32:$src1, VR128:v4f32:$src2) - Complexity = 8
                  // Dst: (VMINPSrr_Int:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src2)
/*43022*/       /*Scope*/ 11, /*->43034*/
/*43023*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*43025*/         OPC_MorphNodeTo, TARGET_VAL(X86::MINPSrr_Int), 0,
                      1/*#VTs*/, MVT::v4f32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v4f32 472:iPTR, VR128:v4f32:$src1, VR128:v4f32:$src2) - Complexity = 8
                  // Dst: (MINPSrr_Int:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src2)
/*43034*/       0, /*End of Scope*/
/*43035*/     0, /*End of Scope*/
/*43036*/   /*Scope*/ 94, /*->43131*/
/*43037*/     OPC_CheckInteger, 51|128,2/*307*/, 
/*43040*/     OPC_MoveParent,
/*43041*/     OPC_RecordChild1, // #0 = $src1
/*43042*/     OPC_Scope, 58, /*->43102*/ // 2 children in Scope
/*43044*/       OPC_MoveChild, 2,
/*43046*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*43049*/       OPC_RecordMemRef,
/*43050*/       OPC_RecordNode, // #1 = 'ld' chained node
/*43051*/       OPC_CheckFoldableChainNode,
/*43052*/       OPC_RecordChild1, // #2 = $src2
/*43053*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*43055*/       OPC_CheckPredicate, 3, // Predicate_load
/*43057*/       OPC_CheckPredicate, 23, // Predicate_memop
/*43059*/       OPC_MoveParent,
/*43060*/       OPC_Scope, 19, /*->43081*/ // 2 children in Scope
/*43062*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*43064*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*43067*/         OPC_EmitMergeInputChains1_1,
/*43068*/         OPC_MorphNodeTo, TARGET_VAL(X86::VMINPDrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v2f64 307:iPTR, VR128:v2f64:$src1, (ld:v2f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 30
                  // Dst: (VMINPDrm_Int:v2f64 VR128:v2f64:$src1, addr:iPTR:$src2)
/*43081*/       /*Scope*/ 19, /*->43101*/
/*43082*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*43084*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*43087*/         OPC_EmitMergeInputChains1_1,
/*43088*/         OPC_MorphNodeTo, TARGET_VAL(X86::MINPDrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v2f64 307:iPTR, VR128:v2f64:$src1, (ld:v2f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 30
                  // Dst: (MINPDrm_Int:v2f64 VR128:v2f64:$src1, addr:iPTR:$src2)
/*43101*/       0, /*End of Scope*/
/*43102*/     /*Scope*/ 27, /*->43130*/
/*43103*/       OPC_RecordChild2, // #1 = $src2
/*43104*/       OPC_Scope, 11, /*->43117*/ // 2 children in Scope
/*43106*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*43108*/         OPC_MorphNodeTo, TARGET_VAL(X86::VMINPDrr_Int), 0,
                      1/*#VTs*/, MVT::v2f64, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v2f64 307:iPTR, VR128:v2f64:$src1, VR128:v2f64:$src2) - Complexity = 8
                  // Dst: (VMINPDrr_Int:v2f64 VR128:v2f64:$src1, VR128:v2f64:$src2)
/*43117*/       /*Scope*/ 11, /*->43129*/
/*43118*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*43120*/         OPC_MorphNodeTo, TARGET_VAL(X86::MINPDrr_Int), 0,
                      1/*#VTs*/, MVT::v2f64, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v2f64 307:iPTR, VR128:v2f64:$src1, VR128:v2f64:$src2) - Complexity = 8
                  // Dst: (MINPDrr_Int:v2f64 VR128:v2f64:$src1, VR128:v2f64:$src2)
/*43129*/       0, /*End of Scope*/
/*43130*/     0, /*End of Scope*/
/*43131*/   /*Scope*/ 56, /*->43188*/
/*43132*/     OPC_CheckInteger, 21|128,1/*149*/, 
/*43135*/     OPC_MoveParent,
/*43136*/     OPC_RecordChild1, // #0 = $src1
/*43137*/     OPC_Scope, 35, /*->43174*/ // 2 children in Scope
/*43139*/       OPC_MoveChild, 2,
/*43141*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*43144*/       OPC_RecordMemRef,
/*43145*/       OPC_RecordNode, // #1 = 'ld' chained node
/*43146*/       OPC_CheckFoldableChainNode,
/*43147*/       OPC_RecordChild1, // #2 = $src2
/*43148*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*43150*/       OPC_CheckPredicate, 3, // Predicate_load
/*43152*/       OPC_CheckPredicate, 23, // Predicate_memop
/*43154*/       OPC_MoveParent,
/*43155*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*43157*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*43160*/       OPC_EmitMergeInputChains1_1,
/*43161*/       OPC_MorphNodeTo, TARGET_VAL(X86::VMINPSYrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v8f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_wo_chain:v8f32 149:iPTR, VR256:v8f32:$src1, (ld:v8f32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 30
                // Dst: (VMINPSYrm_Int:v8f32 VR256:v8f32:$src1, addr:iPTR:$src2)
/*43174*/     /*Scope*/ 12, /*->43187*/
/*43175*/       OPC_RecordChild2, // #1 = $src2
/*43176*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*43178*/       OPC_MorphNodeTo, TARGET_VAL(X86::VMINPSYrr_Int), 0,
                    1/*#VTs*/, MVT::v8f32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:v8f32 149:iPTR, VR256:v8f32:$src1, VR256:v8f32:$src2) - Complexity = 8
                // Dst: (VMINPSYrr_Int:v8f32 VR256:v8f32:$src1, VR256:v8f32:$src2)
/*43187*/     0, /*End of Scope*/
/*43188*/   /*Scope*/ 56, /*->43245*/
/*43189*/     OPC_CheckInteger, 20|128,1/*148*/, 
/*43192*/     OPC_MoveParent,
/*43193*/     OPC_RecordChild1, // #0 = $src1
/*43194*/     OPC_Scope, 35, /*->43231*/ // 2 children in Scope
/*43196*/       OPC_MoveChild, 2,
/*43198*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*43201*/       OPC_RecordMemRef,
/*43202*/       OPC_RecordNode, // #1 = 'ld' chained node
/*43203*/       OPC_CheckFoldableChainNode,
/*43204*/       OPC_RecordChild1, // #2 = $src2
/*43205*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*43207*/       OPC_CheckPredicate, 3, // Predicate_load
/*43209*/       OPC_CheckPredicate, 23, // Predicate_memop
/*43211*/       OPC_MoveParent,
/*43212*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*43214*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*43217*/       OPC_EmitMergeInputChains1_1,
/*43218*/       OPC_MorphNodeTo, TARGET_VAL(X86::VMINPDYrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v4f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_wo_chain:v4f64 148:iPTR, VR256:v4f64:$src1, (ld:v4f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 30
                // Dst: (VMINPDYrm_Int:v4f64 VR256:v4f64:$src1, addr:iPTR:$src2)
/*43231*/     /*Scope*/ 12, /*->43244*/
/*43232*/       OPC_RecordChild2, // #1 = $src2
/*43233*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*43235*/       OPC_MorphNodeTo, TARGET_VAL(X86::VMINPDYrr_Int), 0,
                    1/*#VTs*/, MVT::v4f64, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:v4f64 148:iPTR, VR256:v4f64:$src1, VR256:v4f64:$src2) - Complexity = 8
                // Dst: (VMINPDYrr_Int:v4f64 VR256:v4f64:$src1, VR256:v4f64:$src2)
/*43244*/     0, /*End of Scope*/
/*43245*/   /*Scope*/ 89, /*->43335*/
/*43246*/     OPC_CheckInteger, 98|128,3/*482*/, 
/*43249*/     OPC_MoveParent,
/*43250*/     OPC_Scope, 56, /*->43308*/ // 2 children in Scope
/*43252*/       OPC_MoveChild, 1,
/*43254*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*43257*/       OPC_RecordMemRef,
/*43258*/       OPC_RecordNode, // #0 = 'ld' chained node
/*43259*/       OPC_CheckFoldableChainNode,
/*43260*/       OPC_RecordChild1, // #1 = $src
/*43261*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*43263*/       OPC_CheckPredicate, 3, // Predicate_load
/*43265*/       OPC_CheckPredicate, 23, // Predicate_memop
/*43267*/       OPC_MoveParent,
/*43268*/       OPC_Scope, 18, /*->43288*/ // 2 children in Scope
/*43270*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*43272*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*43275*/         OPC_EmitMergeInputChains1_0,
/*43276*/         OPC_MorphNodeTo, TARGET_VAL(X86::VSQRTPSm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (intrinsic_wo_chain:v4f32 482:iPTR, (ld:v4f32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 30
                  // Dst: (VSQRTPSm_Int:v4f32 addr:iPTR:$src)
/*43288*/       /*Scope*/ 18, /*->43307*/
/*43289*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*43291*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*43294*/         OPC_EmitMergeInputChains1_0,
/*43295*/         OPC_MorphNodeTo, TARGET_VAL(X86::SQRTPSm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (intrinsic_wo_chain:v4f32 482:iPTR, (ld:v4f32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 30
                  // Dst: (SQRTPSm_Int:v4f32 addr:iPTR:$src)
/*43307*/       0, /*End of Scope*/
/*43308*/     /*Scope*/ 25, /*->43334*/
/*43309*/       OPC_RecordChild1, // #0 = $src
/*43310*/       OPC_Scope, 10, /*->43322*/ // 2 children in Scope
/*43312*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*43314*/         OPC_MorphNodeTo, TARGET_VAL(X86::VSQRTPSr_Int), 0,
                      1/*#VTs*/, MVT::v4f32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:v4f32 482:iPTR, VR128:v4f32:$src) - Complexity = 8
                  // Dst: (VSQRTPSr_Int:v4f32 VR128:v4f32:$src)
/*43322*/       /*Scope*/ 10, /*->43333*/
/*43323*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*43325*/         OPC_MorphNodeTo, TARGET_VAL(X86::SQRTPSr_Int), 0,
                      1/*#VTs*/, MVT::v4f32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:v4f32 482:iPTR, VR128:v4f32:$src) - Complexity = 8
                  // Dst: (SQRTPSr_Int:v4f32 VR128:v4f32:$src)
/*43333*/       0, /*End of Scope*/
/*43334*/     0, /*End of Scope*/
/*43335*/   /*Scope*/ 89, /*->43425*/
/*43336*/     OPC_CheckInteger, 104|128,2/*360*/, 
/*43339*/     OPC_MoveParent,
/*43340*/     OPC_Scope, 56, /*->43398*/ // 2 children in Scope
/*43342*/       OPC_MoveChild, 1,
/*43344*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*43347*/       OPC_RecordMemRef,
/*43348*/       OPC_RecordNode, // #0 = 'ld' chained node
/*43349*/       OPC_CheckFoldableChainNode,
/*43350*/       OPC_RecordChild1, // #1 = $src
/*43351*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*43353*/       OPC_CheckPredicate, 3, // Predicate_load
/*43355*/       OPC_CheckPredicate, 23, // Predicate_memop
/*43357*/       OPC_MoveParent,
/*43358*/       OPC_Scope, 18, /*->43378*/ // 2 children in Scope
/*43360*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*43362*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*43365*/         OPC_EmitMergeInputChains1_0,
/*43366*/         OPC_MorphNodeTo, TARGET_VAL(X86::VSQRTPDm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v2f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (intrinsic_wo_chain:v2f64 360:iPTR, (ld:v2f64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 30
                  // Dst: (VSQRTPDm_Int:v2f64 addr:iPTR:$src)
/*43378*/       /*Scope*/ 18, /*->43397*/
/*43379*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*43381*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*43384*/         OPC_EmitMergeInputChains1_0,
/*43385*/         OPC_MorphNodeTo, TARGET_VAL(X86::SQRTPDm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v2f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (intrinsic_wo_chain:v2f64 360:iPTR, (ld:v2f64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 30
                  // Dst: (SQRTPDm_Int:v2f64 addr:iPTR:$src)
/*43397*/       0, /*End of Scope*/
/*43398*/     /*Scope*/ 25, /*->43424*/
/*43399*/       OPC_RecordChild1, // #0 = $src
/*43400*/       OPC_Scope, 10, /*->43412*/ // 2 children in Scope
/*43402*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*43404*/         OPC_MorphNodeTo, TARGET_VAL(X86::VSQRTPDr_Int), 0,
                      1/*#VTs*/, MVT::v2f64, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:v2f64 360:iPTR, VR128:v2f64:$src) - Complexity = 8
                  // Dst: (VSQRTPDr_Int:v2f64 VR128:v2f64:$src)
/*43412*/       /*Scope*/ 10, /*->43423*/
/*43413*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*43415*/         OPC_MorphNodeTo, TARGET_VAL(X86::SQRTPDr_Int), 0,
                      1/*#VTs*/, MVT::v2f64, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:v2f64 360:iPTR, VR128:v2f64:$src) - Complexity = 8
                  // Dst: (SQRTPDr_Int:v2f64 VR128:v2f64:$src)
/*43423*/       0, /*End of Scope*/
/*43424*/     0, /*End of Scope*/
/*43425*/   /*Scope*/ 53, /*->43479*/
/*43426*/     OPC_CheckInteger, 35|128,1/*163*/, 
/*43429*/     OPC_MoveParent,
/*43430*/     OPC_Scope, 34, /*->43466*/ // 2 children in Scope
/*43432*/       OPC_MoveChild, 1,
/*43434*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*43437*/       OPC_RecordMemRef,
/*43438*/       OPC_RecordNode, // #0 = 'ld' chained node
/*43439*/       OPC_CheckFoldableChainNode,
/*43440*/       OPC_RecordChild1, // #1 = $src
/*43441*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*43443*/       OPC_CheckPredicate, 3, // Predicate_load
/*43445*/       OPC_CheckPredicate, 23, // Predicate_memop
/*43447*/       OPC_MoveParent,
/*43448*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*43450*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*43453*/       OPC_EmitMergeInputChains1_0,
/*43454*/       OPC_MorphNodeTo, TARGET_VAL(X86::VSQRTPSYm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v8f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (intrinsic_wo_chain:v8f32 163:iPTR, (ld:v8f32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 30
                // Dst: (VSQRTPSYm_Int:v8f32 addr:iPTR:$src)
/*43466*/     /*Scope*/ 11, /*->43478*/
/*43467*/       OPC_RecordChild1, // #0 = $src
/*43468*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*43470*/       OPC_MorphNodeTo, TARGET_VAL(X86::VSQRTPSYr_Int), 0,
                    1/*#VTs*/, MVT::v8f32, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:v8f32 163:iPTR, VR256:v8f32:$src) - Complexity = 8
                // Dst: (VSQRTPSYr_Int:v8f32 VR256:v8f32:$src)
/*43478*/     0, /*End of Scope*/
/*43479*/   /*Scope*/ 53, /*->43533*/
/*43480*/     OPC_CheckInteger, 34|128,1/*162*/, 
/*43483*/     OPC_MoveParent,
/*43484*/     OPC_Scope, 34, /*->43520*/ // 2 children in Scope
/*43486*/       OPC_MoveChild, 1,
/*43488*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*43491*/       OPC_RecordMemRef,
/*43492*/       OPC_RecordNode, // #0 = 'ld' chained node
/*43493*/       OPC_CheckFoldableChainNode,
/*43494*/       OPC_RecordChild1, // #1 = $src
/*43495*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*43497*/       OPC_CheckPredicate, 3, // Predicate_load
/*43499*/       OPC_CheckPredicate, 23, // Predicate_memop
/*43501*/       OPC_MoveParent,
/*43502*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*43504*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*43507*/       OPC_EmitMergeInputChains1_0,
/*43508*/       OPC_MorphNodeTo, TARGET_VAL(X86::VSQRTPDYm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v4f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (intrinsic_wo_chain:v4f64 162:iPTR, (ld:v4f64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 30
                // Dst: (VSQRTPDYm_Int:v4f64 addr:iPTR:$src)
/*43520*/     /*Scope*/ 11, /*->43532*/
/*43521*/       OPC_RecordChild1, // #0 = $src
/*43522*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*43524*/       OPC_MorphNodeTo, TARGET_VAL(X86::VSQRTPDYr_Int), 0,
                    1/*#VTs*/, MVT::v4f64, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:v4f64 162:iPTR, VR256:v4f64:$src) - Complexity = 8
                // Dst: (VSQRTPDYr_Int:v4f64 VR256:v4f64:$src)
/*43532*/     0, /*End of Scope*/
/*43533*/   /*Scope*/ 53, /*->43587*/
/*43534*/     OPC_CheckInteger, 33|128,1/*161*/, 
/*43537*/     OPC_MoveParent,
/*43538*/     OPC_Scope, 34, /*->43574*/ // 2 children in Scope
/*43540*/       OPC_MoveChild, 1,
/*43542*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*43545*/       OPC_RecordMemRef,
/*43546*/       OPC_RecordNode, // #0 = 'ld' chained node
/*43547*/       OPC_CheckFoldableChainNode,
/*43548*/       OPC_RecordChild1, // #1 = $src
/*43549*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*43551*/       OPC_CheckPredicate, 3, // Predicate_load
/*43553*/       OPC_CheckPredicate, 23, // Predicate_memop
/*43555*/       OPC_MoveParent,
/*43556*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*43558*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*43561*/       OPC_EmitMergeInputChains1_0,
/*43562*/       OPC_MorphNodeTo, TARGET_VAL(X86::VRSQRTPSYm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v8f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (intrinsic_wo_chain:v8f32 161:iPTR, (ld:v8f32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 30
                // Dst: (VRSQRTPSYm_Int:v8f32 addr:iPTR:$src)
/*43574*/     /*Scope*/ 11, /*->43586*/
/*43575*/       OPC_RecordChild1, // #0 = $src
/*43576*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*43578*/       OPC_MorphNodeTo, TARGET_VAL(X86::VRSQRTPSYr_Int), 0,
                    1/*#VTs*/, MVT::v8f32, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:v8f32 161:iPTR, VR256:v8f32:$src) - Complexity = 8
                // Dst: (VRSQRTPSYr_Int:v8f32 VR256:v8f32:$src)
/*43586*/     0, /*End of Scope*/
/*43587*/   /*Scope*/ 89, /*->43677*/
/*43588*/     OPC_CheckInteger, 95|128,3/*479*/, 
/*43591*/     OPC_MoveParent,
/*43592*/     OPC_Scope, 56, /*->43650*/ // 2 children in Scope
/*43594*/       OPC_MoveChild, 1,
/*43596*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*43599*/       OPC_RecordMemRef,
/*43600*/       OPC_RecordNode, // #0 = 'ld' chained node
/*43601*/       OPC_CheckFoldableChainNode,
/*43602*/       OPC_RecordChild1, // #1 = $src
/*43603*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*43605*/       OPC_CheckPredicate, 3, // Predicate_load
/*43607*/       OPC_CheckPredicate, 23, // Predicate_memop
/*43609*/       OPC_MoveParent,
/*43610*/       OPC_Scope, 18, /*->43630*/ // 2 children in Scope
/*43612*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*43614*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*43617*/         OPC_EmitMergeInputChains1_0,
/*43618*/         OPC_MorphNodeTo, TARGET_VAL(X86::VRSQRTPSm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (intrinsic_wo_chain:v4f32 479:iPTR, (ld:v4f32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 30
                  // Dst: (VRSQRTPSm_Int:v4f32 addr:iPTR:$src)
/*43630*/       /*Scope*/ 18, /*->43649*/
/*43631*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*43633*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*43636*/         OPC_EmitMergeInputChains1_0,
/*43637*/         OPC_MorphNodeTo, TARGET_VAL(X86::RSQRTPSm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (intrinsic_wo_chain:v4f32 479:iPTR, (ld:v4f32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 30
                  // Dst: (RSQRTPSm_Int:v4f32 addr:iPTR:$src)
/*43649*/       0, /*End of Scope*/
/*43650*/     /*Scope*/ 25, /*->43676*/
/*43651*/       OPC_RecordChild1, // #0 = $src
/*43652*/       OPC_Scope, 10, /*->43664*/ // 2 children in Scope
/*43654*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*43656*/         OPC_MorphNodeTo, TARGET_VAL(X86::VRSQRTPSr_Int), 0,
                      1/*#VTs*/, MVT::v4f32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:v4f32 479:iPTR, VR128:v4f32:$src) - Complexity = 8
                  // Dst: (VRSQRTPSr_Int:v4f32 VR128:v4f32:$src)
/*43664*/       /*Scope*/ 10, /*->43675*/
/*43665*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*43667*/         OPC_MorphNodeTo, TARGET_VAL(X86::RSQRTPSr_Int), 0,
                      1/*#VTs*/, MVT::v4f32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:v4f32 479:iPTR, VR128:v4f32:$src) - Complexity = 8
                  // Dst: (RSQRTPSr_Int:v4f32 VR128:v4f32:$src)
/*43675*/       0, /*End of Scope*/
/*43676*/     0, /*End of Scope*/
/*43677*/   /*Scope*/ 53, /*->43731*/
/*43678*/     OPC_CheckInteger, 30|128,1/*158*/, 
/*43681*/     OPC_MoveParent,
/*43682*/     OPC_Scope, 34, /*->43718*/ // 2 children in Scope
/*43684*/       OPC_MoveChild, 1,
/*43686*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*43689*/       OPC_RecordMemRef,
/*43690*/       OPC_RecordNode, // #0 = 'ld' chained node
/*43691*/       OPC_CheckFoldableChainNode,
/*43692*/       OPC_RecordChild1, // #1 = $src
/*43693*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*43695*/       OPC_CheckPredicate, 3, // Predicate_load
/*43697*/       OPC_CheckPredicate, 23, // Predicate_memop
/*43699*/       OPC_MoveParent,
/*43700*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*43702*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*43705*/       OPC_EmitMergeInputChains1_0,
/*43706*/       OPC_MorphNodeTo, TARGET_VAL(X86::VRCPPSYm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v8f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (intrinsic_wo_chain:v8f32 158:iPTR, (ld:v8f32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 30
                // Dst: (VRCPPSYm_Int:v8f32 addr:iPTR:$src)
/*43718*/     /*Scope*/ 11, /*->43730*/
/*43719*/       OPC_RecordChild1, // #0 = $src
/*43720*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*43722*/       OPC_MorphNodeTo, TARGET_VAL(X86::VRCPPSYr_Int), 0,
                    1/*#VTs*/, MVT::v8f32, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:v8f32 158:iPTR, VR256:v8f32:$src) - Complexity = 8
                // Dst: (VRCPPSYr_Int:v8f32 VR256:v8f32:$src)
/*43730*/     0, /*End of Scope*/
/*43731*/   /*Scope*/ 89, /*->43821*/
/*43732*/     OPC_CheckInteger, 93|128,3/*477*/, 
/*43735*/     OPC_MoveParent,
/*43736*/     OPC_Scope, 56, /*->43794*/ // 2 children in Scope
/*43738*/       OPC_MoveChild, 1,
/*43740*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*43743*/       OPC_RecordMemRef,
/*43744*/       OPC_RecordNode, // #0 = 'ld' chained node
/*43745*/       OPC_CheckFoldableChainNode,
/*43746*/       OPC_RecordChild1, // #1 = $src
/*43747*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*43749*/       OPC_CheckPredicate, 3, // Predicate_load
/*43751*/       OPC_CheckPredicate, 23, // Predicate_memop
/*43753*/       OPC_MoveParent,
/*43754*/       OPC_Scope, 18, /*->43774*/ // 2 children in Scope
/*43756*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*43758*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*43761*/         OPC_EmitMergeInputChains1_0,
/*43762*/         OPC_MorphNodeTo, TARGET_VAL(X86::VRCPPSm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (intrinsic_wo_chain:v4f32 477:iPTR, (ld:v4f32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 30
                  // Dst: (VRCPPSm_Int:v4f32 addr:iPTR:$src)
/*43774*/       /*Scope*/ 18, /*->43793*/
/*43775*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*43777*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*43780*/         OPC_EmitMergeInputChains1_0,
/*43781*/         OPC_MorphNodeTo, TARGET_VAL(X86::RCPPSm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (intrinsic_wo_chain:v4f32 477:iPTR, (ld:v4f32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 30
                  // Dst: (RCPPSm_Int:v4f32 addr:iPTR:$src)
/*43793*/       0, /*End of Scope*/
/*43794*/     /*Scope*/ 25, /*->43820*/
/*43795*/       OPC_RecordChild1, // #0 = $src
/*43796*/       OPC_Scope, 10, /*->43808*/ // 2 children in Scope
/*43798*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*43800*/         OPC_MorphNodeTo, TARGET_VAL(X86::VRCPPSr_Int), 0,
                      1/*#VTs*/, MVT::v4f32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:v4f32 477:iPTR, VR128:v4f32:$src) - Complexity = 8
                  // Dst: (VRCPPSr_Int:v4f32 VR128:v4f32:$src)
/*43808*/       /*Scope*/ 10, /*->43819*/
/*43809*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*43811*/         OPC_MorphNodeTo, TARGET_VAL(X86::RCPPSr_Int), 0,
                      1/*#VTs*/, MVT::v4f32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:v4f32 477:iPTR, VR128:v4f32:$src) - Complexity = 8
                  // Dst: (RCPPSr_Int:v4f32 VR128:v4f32:$src)
/*43819*/       0, /*End of Scope*/
/*43820*/     0, /*End of Scope*/
/*43821*/   /*Scope*/ 48, /*->43870*/
/*43822*/     OPC_CheckInteger, 125, 
/*43824*/     OPC_MoveParent,
/*43825*/     OPC_Scope, 32, /*->43859*/ // 2 children in Scope
/*43827*/       OPC_MoveChild, 1,
/*43829*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*43832*/       OPC_RecordMemRef,
/*43833*/       OPC_RecordNode, // #0 = 'ld' chained node
/*43834*/       OPC_CheckFoldableChainNode,
/*43835*/       OPC_RecordChild1, // #1 = $src
/*43836*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*43838*/       OPC_CheckPredicate, 3, // Predicate_load
/*43840*/       OPC_CheckPredicate, 23, // Predicate_memop
/*43842*/       OPC_MoveParent,
/*43843*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*43846*/       OPC_EmitMergeInputChains1_0,
/*43847*/       OPC_MorphNodeTo, TARGET_VAL(X86::VCVTDQ2PDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v4f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (intrinsic_wo_chain:v4f64 125:iPTR, (ld:v4i32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 30
                // Dst: (VCVTDQ2PDYrm:v4f64 addr:iPTR:$src)
/*43859*/     /*Scope*/ 9, /*->43869*/
/*43860*/       OPC_RecordChild1, // #0 = $src
/*43861*/       OPC_MorphNodeTo, TARGET_VAL(X86::VCVTDQ2PDYrr), 0,
                    1/*#VTs*/, MVT::v4f64, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:v4f64 125:iPTR, VR128:v4i32:$src) - Complexity = 8
                // Dst: (VCVTDQ2PDYrr:v4f64 VR128:v4i32:$src)
/*43869*/     0, /*End of Scope*/
/*43870*/   /*Scope*/ 94, /*->43965*/
/*43871*/     OPC_CheckInteger, 117|128,2/*373*/, 
/*43874*/     OPC_MoveParent,
/*43875*/     OPC_RecordChild1, // #0 = $src1
/*43876*/     OPC_Scope, 58, /*->43936*/ // 2 children in Scope
/*43878*/       OPC_MoveChild, 2,
/*43880*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*43883*/       OPC_RecordMemRef,
/*43884*/       OPC_RecordNode, // #1 = 'ld' chained node
/*43885*/       OPC_CheckFoldableChainNode,
/*43886*/       OPC_RecordChild1, // #2 = $src2
/*43887*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*43889*/       OPC_CheckPredicate, 3, // Predicate_load
/*43891*/       OPC_CheckPredicate, 23, // Predicate_memop
/*43893*/       OPC_MoveParent,
/*43894*/       OPC_Scope, 19, /*->43915*/ // 2 children in Scope
/*43896*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*43898*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*43901*/         OPC_EmitMergeInputChains1_1,
/*43902*/         OPC_MorphNodeTo, TARGET_VAL(X86::VADDSUBPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v4f32 373:iPTR, VR128:v4f32:$src1, (ld:v4f32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 30
                  // Dst: (VADDSUBPSrm:v4f32 VR128:v4f32:$src1, addr:iPTR:$src2)
/*43915*/       /*Scope*/ 19, /*->43935*/
/*43916*/         OPC_CheckPatternPredicate, 16, // (Subtarget->hasSSE3())
/*43918*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*43921*/         OPC_EmitMergeInputChains1_1,
/*43922*/         OPC_MorphNodeTo, TARGET_VAL(X86::ADDSUBPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v4f32 373:iPTR, VR128:v4f32:$src1, (ld:v4f32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 30
                  // Dst: (ADDSUBPSrm:v4f32 VR128:v4f32:$src1, addr:iPTR:$src2)
/*43935*/       0, /*End of Scope*/
/*43936*/     /*Scope*/ 27, /*->43964*/
/*43937*/       OPC_RecordChild2, // #1 = $src2
/*43938*/       OPC_Scope, 11, /*->43951*/ // 2 children in Scope
/*43940*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*43942*/         OPC_MorphNodeTo, TARGET_VAL(X86::VADDSUBPSrr), 0,
                      1/*#VTs*/, MVT::v4f32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v4f32 373:iPTR, VR128:v4f32:$src1, VR128:v4f32:$src2) - Complexity = 8
                  // Dst: (VADDSUBPSrr:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src2)
/*43951*/       /*Scope*/ 11, /*->43963*/
/*43952*/         OPC_CheckPatternPredicate, 16, // (Subtarget->hasSSE3())
/*43954*/         OPC_MorphNodeTo, TARGET_VAL(X86::ADDSUBPSrr), 0,
                      1/*#VTs*/, MVT::v4f32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v4f32 373:iPTR, VR128:v4f32:$src1, VR128:v4f32:$src2) - Complexity = 8
                  // Dst: (ADDSUBPSrr:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src2)
/*43963*/       0, /*End of Scope*/
/*43964*/     0, /*End of Scope*/
/*43965*/   /*Scope*/ 94, /*->44060*/
/*43966*/     OPC_CheckInteger, 116|128,2/*372*/, 
/*43969*/     OPC_MoveParent,
/*43970*/     OPC_RecordChild1, // #0 = $src1
/*43971*/     OPC_Scope, 58, /*->44031*/ // 2 children in Scope
/*43973*/       OPC_MoveChild, 2,
/*43975*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*43978*/       OPC_RecordMemRef,
/*43979*/       OPC_RecordNode, // #1 = 'ld' chained node
/*43980*/       OPC_CheckFoldableChainNode,
/*43981*/       OPC_RecordChild1, // #2 = $src2
/*43982*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*43984*/       OPC_CheckPredicate, 3, // Predicate_load
/*43986*/       OPC_CheckPredicate, 23, // Predicate_memop
/*43988*/       OPC_MoveParent,
/*43989*/       OPC_Scope, 19, /*->44010*/ // 2 children in Scope
/*43991*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*43993*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*43996*/         OPC_EmitMergeInputChains1_1,
/*43997*/         OPC_MorphNodeTo, TARGET_VAL(X86::VADDSUBPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v2f64 372:iPTR, VR128:v2f64:$src1, (ld:v2f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 30
                  // Dst: (VADDSUBPDrm:v2f64 VR128:v2f64:$src1, addr:iPTR:$src2)
/*44010*/       /*Scope*/ 19, /*->44030*/
/*44011*/         OPC_CheckPatternPredicate, 16, // (Subtarget->hasSSE3())
/*44013*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*44016*/         OPC_EmitMergeInputChains1_1,
/*44017*/         OPC_MorphNodeTo, TARGET_VAL(X86::ADDSUBPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_wo_chain:v2f64 372:iPTR, VR128:v2f64:$src1, (ld:v2f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 30
                  // Dst: (ADDSUBPDrm:v2f64 VR128:v2f64:$src1, addr:iPTR:$src2)
/*44030*/       0, /*End of Scope*/
/*44031*/     /*Scope*/ 27, /*->44059*/
/*44032*/       OPC_RecordChild2, // #1 = $src2
/*44033*/       OPC_Scope, 11, /*->44046*/ // 2 children in Scope
/*44035*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*44037*/         OPC_MorphNodeTo, TARGET_VAL(X86::VADDSUBPDrr), 0,
                      1/*#VTs*/, MVT::v2f64, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v2f64 372:iPTR, VR128:v2f64:$src1, VR128:v2f64:$src2) - Complexity = 8
                  // Dst: (VADDSUBPDrr:v2f64 VR128:v2f64:$src1, VR128:v2f64:$src2)
/*44046*/       /*Scope*/ 11, /*->44058*/
/*44047*/         OPC_CheckPatternPredicate, 16, // (Subtarget->hasSSE3())
/*44049*/         OPC_MorphNodeTo, TARGET_VAL(X86::ADDSUBPDrr), 0,
                      1/*#VTs*/, MVT::v2f64, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:v2f64 372:iPTR, VR128:v2f64:$src1, VR128:v2f64:$src2) - Complexity = 8
                  // Dst: (ADDSUBPDrr:v2f64 VR128:v2f64:$src1, VR128:v2f64:$src2)
/*44058*/       0, /*End of Scope*/
/*44059*/     0, /*End of Scope*/
/*44060*/   /*Scope*/ 55, /*->44116*/
/*44061*/     OPC_CheckInteger, 114, 
/*44063*/     OPC_MoveParent,
/*44064*/     OPC_RecordChild1, // #0 = $src1
/*44065*/     OPC_Scope, 35, /*->44102*/ // 2 children in Scope
/*44067*/       OPC_MoveChild, 2,
/*44069*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*44072*/       OPC_RecordMemRef,
/*44073*/       OPC_RecordNode, // #1 = 'ld' chained node
/*44074*/       OPC_CheckFoldableChainNode,
/*44075*/       OPC_RecordChild1, // #2 = $src2
/*44076*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*44078*/       OPC_CheckPredicate, 3, // Predicate_load
/*44080*/       OPC_CheckPredicate, 23, // Predicate_memop
/*44082*/       OPC_MoveParent,
/*44083*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*44085*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*44088*/       OPC_EmitMergeInputChains1_1,
/*44089*/       OPC_MorphNodeTo, TARGET_VAL(X86::VADDSUBPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v8f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_wo_chain:v8f32 114:iPTR, VR256:v8f32:$src1, (ld:v8f32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 30
                // Dst: (VADDSUBPSYrm:v8f32 VR256:v8f32:$src1, addr:iPTR:$src2)
/*44102*/     /*Scope*/ 12, /*->44115*/
/*44103*/       OPC_RecordChild2, // #1 = $src2
/*44104*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*44106*/       OPC_MorphNodeTo, TARGET_VAL(X86::VADDSUBPSYrr), 0,
                    1/*#VTs*/, MVT::v8f32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:v8f32 114:iPTR, VR256:v8f32:$src1, VR256:v8f32:$src2) - Complexity = 8
                // Dst: (VADDSUBPSYrr:v8f32 VR256:v8f32:$src1, VR256:v8f32:$src2)
/*44115*/     0, /*End of Scope*/
/*44116*/   /*Scope*/ 55, /*->44172*/
/*44117*/     OPC_CheckInteger, 113, 
/*44119*/     OPC_MoveParent,
/*44120*/     OPC_RecordChild1, // #0 = $src1
/*44121*/     OPC_Scope, 35, /*->44158*/ // 2 children in Scope
/*44123*/       OPC_MoveChild, 2,
/*44125*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*44128*/       OPC_RecordMemRef,
/*44129*/       OPC_RecordNode, // #1 = 'ld' chained node
/*44130*/       OPC_CheckFoldableChainNode,
/*44131*/       OPC_RecordChild1, // #2 = $src2
/*44132*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*44134*/       OPC_CheckPredicate, 3, // Predicate_load
/*44136*/       OPC_CheckPredicate, 23, // Predicate_memop
/*44138*/       OPC_MoveParent,
/*44139*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*44141*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*44144*/       OPC_EmitMergeInputChains1_1,
/*44145*/       OPC_MorphNodeTo, TARGET_VAL(X86::VADDSUBPDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v4f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_wo_chain:v4f64 113:iPTR, VR256:v4f64:$src1, (ld:v4f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 30
                // Dst: (VADDSUBPDYrm:v4f64 VR256:v4f64:$src1, addr:iPTR:$src2)
/*44158*/     /*Scope*/ 12, /*->44171*/
/*44159*/       OPC_RecordChild2, // #1 = $src2
/*44160*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*44162*/       OPC_MorphNodeTo, TARGET_VAL(X86::VADDSUBPDYrr), 0,
                    1/*#VTs*/, MVT::v4f64, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:v4f64 113:iPTR, VR256:v4f64:$src1, VR256:v4f64:$src2) - Complexity = 8
                // Dst: (VADDSUBPDYrr:v4f64 VR256:v4f64:$src1, VR256:v4f64:$src2)
/*44171*/     0, /*End of Scope*/
/*44172*/   /*Scope*/ 56, /*->44229*/
/*44173*/     OPC_CheckInteger, 59|128,1/*187*/, 
/*44176*/     OPC_MoveParent,
/*44177*/     OPC_RecordChild1, // #0 = $src1
/*44178*/     OPC_Scope, 35, /*->44215*/ // 2 children in Scope
/*44180*/       OPC_MoveChild, 2,
/*44182*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*44185*/       OPC_RecordMemRef,
/*44186*/       OPC_RecordNode, // #1 = 'ld' chained node
/*44187*/       OPC_CheckFoldableChainNode,
/*44188*/       OPC_RecordChild1, // #2 = $src2
/*44189*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*44191*/       OPC_CheckPredicate, 3, // Predicate_load
/*44193*/       OPC_CheckPredicate, 23, // Predicate_memop
/*44195*/       OPC_MoveParent,
/*44196*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*44198*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*44201*/       OPC_EmitMergeInputChains1_1,
/*44202*/       OPC_MorphNodeTo, TARGET_VAL(X86::VPERMILPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_wo_chain:v4f32 187:iPTR, VR128:v4f32:$src1, (ld:v4i32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 30
                // Dst: (VPERMILPSrm:v4f32 VR128:v4f32:$src1, addr:iPTR:$src2)
/*44215*/     /*Scope*/ 12, /*->44228*/
/*44216*/       OPC_RecordChild2, // #1 = $src2
/*44217*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*44219*/       OPC_MorphNodeTo, TARGET_VAL(X86::VPERMILPSrr), 0,
                    1/*#VTs*/, MVT::v4f32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:v4f32 187:iPTR, VR128:v4f32:$src1, VR128:v4i32:$src2) - Complexity = 8
                // Dst: (VPERMILPSrr:v4f32 VR128:v4f32:$src1, VR128:v4i32:$src2)
/*44228*/     0, /*End of Scope*/
/*44229*/   /*Scope*/ 56, /*->44286*/
/*44230*/     OPC_CheckInteger, 60|128,1/*188*/, 
/*44233*/     OPC_MoveParent,
/*44234*/     OPC_RecordChild1, // #0 = $src1
/*44235*/     OPC_Scope, 35, /*->44272*/ // 2 children in Scope
/*44237*/       OPC_MoveChild, 2,
/*44239*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*44242*/       OPC_RecordMemRef,
/*44243*/       OPC_RecordNode, // #1 = 'ld' chained node
/*44244*/       OPC_CheckFoldableChainNode,
/*44245*/       OPC_RecordChild1, // #2 = $src2
/*44246*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*44248*/       OPC_CheckPredicate, 3, // Predicate_load
/*44250*/       OPC_CheckPredicate, 23, // Predicate_memop
/*44252*/       OPC_MoveParent,
/*44253*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*44255*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*44258*/       OPC_EmitMergeInputChains1_1,
/*44259*/       OPC_MorphNodeTo, TARGET_VAL(X86::VPERMILPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v8f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_wo_chain:v8f32 188:iPTR, VR256:v8f32:$src1, (ld:v8i32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 30
                // Dst: (VPERMILPSYrm:v8f32 VR256:v8f32:$src1, addr:iPTR:$src2)
/*44272*/     /*Scope*/ 12, /*->44285*/
/*44273*/       OPC_RecordChild2, // #1 = $src2
/*44274*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*44276*/       OPC_MorphNodeTo, TARGET_VAL(X86::VPERMILPSYrr), 0,
                    1/*#VTs*/, MVT::v8f32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:v8f32 188:iPTR, VR256:v8f32:$src1, VR256:v8i32:$src2) - Complexity = 8
                // Dst: (VPERMILPSYrr:v8f32 VR256:v8f32:$src1, VR256:v8i32:$src2)
/*44285*/     0, /*End of Scope*/
/*44286*/   /*Scope*/ 56, /*->44343*/
/*44287*/     OPC_CheckInteger, 57|128,1/*185*/, 
/*44290*/     OPC_MoveParent,
/*44291*/     OPC_RecordChild1, // #0 = $src1
/*44292*/     OPC_Scope, 35, /*->44329*/ // 2 children in Scope
/*44294*/       OPC_MoveChild, 2,
/*44296*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*44299*/       OPC_RecordMemRef,
/*44300*/       OPC_RecordNode, // #1 = 'ld' chained node
/*44301*/       OPC_CheckFoldableChainNode,
/*44302*/       OPC_RecordChild1, // #2 = $src2
/*44303*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*44305*/       OPC_CheckPredicate, 3, // Predicate_load
/*44307*/       OPC_CheckPredicate, 23, // Predicate_memop
/*44309*/       OPC_MoveParent,
/*44310*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*44312*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*44315*/       OPC_EmitMergeInputChains1_1,
/*44316*/       OPC_MorphNodeTo, TARGET_VAL(X86::VPERMILPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_wo_chain:v2f64 185:iPTR, VR128:v2f64:$src1, (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 30
                // Dst: (VPERMILPDrm:v2f64 VR128:v2f64:$src1, addr:iPTR:$src2)
/*44329*/     /*Scope*/ 12, /*->44342*/
/*44330*/       OPC_RecordChild2, // #1 = $src2
/*44331*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*44333*/       OPC_MorphNodeTo, TARGET_VAL(X86::VPERMILPDrr), 0,
                    1/*#VTs*/, MVT::v2f64, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:v2f64 185:iPTR, VR128:v2f64:$src1, VR128:v2i64:$src2) - Complexity = 8
                // Dst: (VPERMILPDrr:v2f64 VR128:v2f64:$src1, VR128:v2i64:$src2)
/*44342*/     0, /*End of Scope*/
/*44343*/   /*Scope*/ 56, /*->44400*/
/*44344*/     OPC_CheckInteger, 58|128,1/*186*/, 
/*44347*/     OPC_MoveParent,
/*44348*/     OPC_RecordChild1, // #0 = $src1
/*44349*/     OPC_Scope, 35, /*->44386*/ // 2 children in Scope
/*44351*/       OPC_MoveChild, 2,
/*44353*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*44356*/       OPC_RecordMemRef,
/*44357*/       OPC_RecordNode, // #1 = 'ld' chained node
/*44358*/       OPC_CheckFoldableChainNode,
/*44359*/       OPC_RecordChild1, // #2 = $src2
/*44360*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*44362*/       OPC_CheckPredicate, 3, // Predicate_load
/*44364*/       OPC_CheckPredicate, 23, // Predicate_memop
/*44366*/       OPC_MoveParent,
/*44367*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*44369*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*44372*/       OPC_EmitMergeInputChains1_1,
/*44373*/       OPC_MorphNodeTo, TARGET_VAL(X86::VPERMILPDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v4f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_wo_chain:v4f64 186:iPTR, VR256:v4f64:$src1, (ld:v4i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 30
                // Dst: (VPERMILPDYrm:v4f64 VR256:v4f64:$src1, addr:iPTR:$src2)
/*44386*/     /*Scope*/ 12, /*->44399*/
/*44387*/       OPC_RecordChild2, // #1 = $src2
/*44388*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*44390*/       OPC_MorphNodeTo, TARGET_VAL(X86::VPERMILPDYrr), 0,
                    1/*#VTs*/, MVT::v4f64, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:v4f64 186:iPTR, VR256:v4f64:$src1, VR256:v4i64:$src2) - Complexity = 8
                // Dst: (VPERMILPDYrr:v4f64 VR256:v4f64:$src1, VR256:v4i64:$src2)
/*44399*/     0, /*End of Scope*/
/*44400*/   /*Scope*/ 51, /*->44452*/
/*44401*/     OPC_CheckInteger, 73|128,3/*457*/, 
/*44404*/     OPC_MoveParent,
/*44405*/     OPC_Scope, 32, /*->44439*/ // 2 children in Scope
/*44407*/       OPC_MoveChild, 1,
/*44409*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*44412*/       OPC_RecordMemRef,
/*44413*/       OPC_RecordNode, // #0 = 'ld' chained node
/*44414*/       OPC_CheckFoldableChainNode,
/*44415*/       OPC_RecordChild1, // #1 = $src
/*44416*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*44418*/       OPC_CheckPredicate, 3, // Predicate_load
/*44420*/       OPC_MoveParent,
/*44421*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*44423*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*44426*/       OPC_EmitMergeInputChains1_0,
/*44427*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_CVTPI2PDirm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v2f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (intrinsic_wo_chain:v2f64 457:iPTR, (ld:x86mmx addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                // Dst: (MMX_CVTPI2PDirm:v2f64 addr:iPTR:$src)
/*44439*/     /*Scope*/ 11, /*->44451*/
/*44440*/       OPC_RecordChild1, // #0 = $src
/*44441*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*44443*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_CVTPI2PDirr), 0,
                    1/*#VTs*/, MVT::v2f64, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:v2f64 457:iPTR, VR64:x86mmx:$src) - Complexity = 8
                // Dst: (MMX_CVTPI2PDirr:v2f64 VR64:x86mmx:$src)
/*44451*/     0, /*End of Scope*/
/*44452*/   /*Scope*/ 54, /*->44507*/
/*44453*/     OPC_CheckInteger, 74|128,3/*458*/, 
/*44456*/     OPC_MoveParent,
/*44457*/     OPC_RecordChild1, // #0 = $src1
/*44458*/     OPC_Scope, 33, /*->44493*/ // 2 children in Scope
/*44460*/       OPC_MoveChild, 2,
/*44462*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*44465*/       OPC_RecordMemRef,
/*44466*/       OPC_RecordNode, // #1 = 'ld' chained node
/*44467*/       OPC_CheckFoldableChainNode,
/*44468*/       OPC_RecordChild1, // #2 = $src2
/*44469*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*44471*/       OPC_CheckPredicate, 3, // Predicate_load
/*44473*/       OPC_MoveParent,
/*44474*/       OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*44476*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*44479*/       OPC_EmitMergeInputChains1_1,
/*44480*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_CVTPI2PSirm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_wo_chain:v4f32 458:iPTR, VR128:v4f32:$src1, (ld:x86mmx addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                // Dst: (MMX_CVTPI2PSirm:v4f32 VR128:v4f32:$src1, addr:iPTR:$src2)
/*44493*/     /*Scope*/ 12, /*->44506*/
/*44494*/       OPC_RecordChild2, // #1 = $src2
/*44495*/       OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*44497*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_CVTPI2PSirr), 0,
                    1/*#VTs*/, MVT::v4f32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:v4f32 458:iPTR, VR128:v4f32:$src1, VR64:x86mmx:$src2) - Complexity = 8
                // Dst: (MMX_CVTPI2PSirr:v4f32 VR128:v4f32:$src1, VR64:x86mmx:$src2)
/*44506*/     0, /*End of Scope*/
/*44507*/   /*Scope*/ 95, /*->44603*/
/*44508*/     OPC_CheckInteger, 42|128,3/*426*/, 
/*44511*/     OPC_MoveParent,
/*44512*/     OPC_RecordChild1, // #0 = $src1
/*44513*/     OPC_RecordChild2, // #1 = $src2
/*44514*/     OPC_RecordChild3, // #2 = $src3
/*44515*/     OPC_MoveChild, 3,
/*44517*/     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*44520*/     OPC_MoveParent,
/*44521*/     OPC_Scope, 24, /*->44547*/ // 4 children in Scope
/*44523*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*44525*/       OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectScalarSSELoad:$src2 #3 #4 #5 #6 #7 + chain result
/*44528*/       OPC_EmitMergeInputChains, 1, 8, 
/*44531*/       OPC_EmitConvertToTarget, 2,
/*44533*/       OPC_MorphNodeTo, TARGET_VAL(X86::VROUNDSSm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v4f32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 9, 
                // Src: (intrinsic_wo_chain:v4f32 426:iPTR, VR128:v4f32:$src1, sse_load_f32:v4f32:$src2, (imm:i32):$src3) - Complexity = 29
                // Dst: (VROUNDSSm:v4f32 VR128:v4f32:$src1, sse_load_f32:v4f32:$src2, (imm:i32):$src3)
/*44547*/     /*Scope*/ 24, /*->44572*/
/*44548*/       OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*44550*/       OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectScalarSSELoad:$src2 #3 #4 #5 #6 #7 + chain result
/*44553*/       OPC_EmitMergeInputChains, 1, 8, 
/*44556*/       OPC_EmitConvertToTarget, 2,
/*44558*/       OPC_MorphNodeTo, TARGET_VAL(X86::ROUNDSSm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v4f32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 9, 
                // Src: (intrinsic_wo_chain:v4f32 426:iPTR, VR128:v4f32:$src1, sse_load_f32:v4f32:$src2, (imm:i32):$src3) - Complexity = 29
                // Dst: (ROUNDSSm:v4f32 VR128:v4f32:$src1, sse_load_f32:v4f32:$src2, (imm:i32):$src3)
/*44572*/     /*Scope*/ 14, /*->44587*/
/*44573*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*44575*/       OPC_EmitConvertToTarget, 2,
/*44577*/       OPC_MorphNodeTo, TARGET_VAL(X86::VROUNDSSr), 0,
                    1/*#VTs*/, MVT::v4f32, 3/*#Ops*/, 0, 1, 3, 
                // Src: (intrinsic_wo_chain:v4f32 426:iPTR, VR128:v4f32:$src1, VR128:v4f32:$src2, (imm:i32):$src3) - Complexity = 11
                // Dst: (VROUNDSSr:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src2, (imm:i32):$src3)
/*44587*/     /*Scope*/ 14, /*->44602*/
/*44588*/       OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*44590*/       OPC_EmitConvertToTarget, 2,
/*44592*/       OPC_MorphNodeTo, TARGET_VAL(X86::ROUNDSSr), 0,
                    1/*#VTs*/, MVT::v4f32, 3/*#Ops*/, 0, 1, 3, 
                // Src: (intrinsic_wo_chain:v4f32 426:iPTR, VR128:v4f32:$src1, VR128:v4f32:$src2, (imm:i32):$src3) - Complexity = 11
                // Dst: (ROUNDSSr:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src2, (imm:i32):$src3)
/*44602*/     0, /*End of Scope*/
/*44603*/   /*Scope*/ 95, /*->44699*/
/*44604*/     OPC_CheckInteger, 41|128,3/*425*/, 
/*44607*/     OPC_MoveParent,
/*44608*/     OPC_RecordChild1, // #0 = $src1
/*44609*/     OPC_RecordChild2, // #1 = $src2
/*44610*/     OPC_RecordChild3, // #2 = $src3
/*44611*/     OPC_MoveChild, 3,
/*44613*/     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*44616*/     OPC_MoveParent,
/*44617*/     OPC_Scope, 24, /*->44643*/ // 4 children in Scope
/*44619*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*44621*/       OPC_CheckComplexPat, /*CP*/2, /*#*/1, // SelectScalarSSELoad:$src2 #3 #4 #5 #6 #7 + chain result
/*44624*/       OPC_EmitMergeInputChains, 1, 8, 
/*44627*/       OPC_EmitConvertToTarget, 2,
/*44629*/       OPC_MorphNodeTo, TARGET_VAL(X86::VROUNDSDm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v2f64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 9, 
                // Src: (intrinsic_wo_chain:v2f64 425:iPTR, VR128:v2f64:$src1, sse_load_f64:v2f64:$src2, (imm:i32):$src3) - Complexity = 29
                // Dst: (VROUNDSDm:v2f64 VR128:v2f64:$src1, sse_load_f64:v2f64:$src2, (imm:i32):$src3)
/*44643*/     /*Scope*/ 24, /*->44668*/
/*44644*/       OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*44646*/       OPC_CheckComplexPat, /*CP*/2, /*#*/1, // SelectScalarSSELoad:$src2 #3 #4 #5 #6 #7 + chain result
/*44649*/       OPC_EmitMergeInputChains, 1, 8, 
/*44652*/       OPC_EmitConvertToTarget, 2,
/*44654*/       OPC_MorphNodeTo, TARGET_VAL(X86::ROUNDSDm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v2f64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 9, 
                // Src: (intrinsic_wo_chain:v2f64 425:iPTR, VR128:v2f64:$src1, sse_load_f64:v2f64:$src2, (imm:i32):$src3) - Complexity = 29
                // Dst: (ROUNDSDm:v2f64 VR128:v2f64:$src1, sse_load_f64:v2f64:$src2, (imm:i32):$src3)
/*44668*/     /*Scope*/ 14, /*->44683*/
/*44669*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*44671*/       OPC_EmitConvertToTarget, 2,
/*44673*/       OPC_MorphNodeTo, TARGET_VAL(X86::VROUNDSDr), 0,
                    1/*#VTs*/, MVT::v2f64, 3/*#Ops*/, 0, 1, 3, 
                // Src: (intrinsic_wo_chain:v2f64 425:iPTR, VR128:v2f64:$src1, VR128:v2f64:$src2, (imm:i32):$src3) - Complexity = 11
                // Dst: (VROUNDSDr:v2f64 VR128:v2f64:$src1, VR128:v2f64:$src2, (imm:i32):$src3)
/*44683*/     /*Scope*/ 14, /*->44698*/
/*44684*/       OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*44686*/       OPC_EmitConvertToTarget, 2,
/*44688*/       OPC_MorphNodeTo, TARGET_VAL(X86::ROUNDSDr), 0,
                    1/*#VTs*/, MVT::v2f64, 3/*#Ops*/, 0, 1, 3, 
                // Src: (intrinsic_wo_chain:v2f64 425:iPTR, VR128:v2f64:$src1, VR128:v2f64:$src2, (imm:i32):$src3) - Complexity = 11
                // Dst: (ROUNDSDr:v2f64 VR128:v2f64:$src1, VR128:v2f64:$src2, (imm:i32):$src3)
/*44698*/     0, /*End of Scope*/
/*44699*/   /*Scope*/ 76, /*->44776*/
/*44700*/     OPC_CheckInteger, 63|128,3/*447*/, 
/*44703*/     OPC_MoveParent,
/*44704*/     OPC_RecordChild1, // #0 = $src1
/*44705*/     OPC_RecordChild2, // #1 = $src2
/*44706*/     OPC_Scope, 21, /*->44729*/ // 4 children in Scope
/*44708*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*44710*/       OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*44713*/       OPC_EmitMergeInputChains, 1, 7, 
/*44716*/       OPC_MorphNodeTo, TARGET_VAL(X86::VADDSSrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v4f32, 6/*#Ops*/, 0, 2, 3, 4, 5, 6, 
                // Src: (intrinsic_wo_chain:v4f32 447:iPTR, VR128:v4f32:$src1, sse_load_f32:v4f32:$src2) - Complexity = 26
                // Dst: (VADDSSrm_Int:v4f32 VR128:v4f32:$src1, sse_load_f32:v4f32:$src2)
/*44729*/     /*Scope*/ 21, /*->44751*/
/*44730*/       OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*44732*/       OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*44735*/       OPC_EmitMergeInputChains, 1, 7, 
/*44738*/       OPC_MorphNodeTo, TARGET_VAL(X86::ADDSSrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v4f32, 6/*#Ops*/, 0, 2, 3, 4, 5, 6, 
                // Src: (intrinsic_wo_chain:v4f32 447:iPTR, VR128:v4f32:$src1, sse_load_f32:v4f32:$src2) - Complexity = 26
                // Dst: (ADDSSrm_Int:v4f32 VR128:v4f32:$src1, sse_load_f32:v4f32:$src2)
/*44751*/     /*Scope*/ 11, /*->44763*/
/*44752*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*44754*/       OPC_MorphNodeTo, TARGET_VAL(X86::VADDSSrr_Int), 0,
                    1/*#VTs*/, MVT::v4f32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:v4f32 447:iPTR, VR128:v4f32:$src1, VR128:v4f32:$src2) - Complexity = 8
                // Dst: (VADDSSrr_Int:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src2)
/*44763*/     /*Scope*/ 11, /*->44775*/
/*44764*/       OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*44766*/       OPC_MorphNodeTo, TARGET_VAL(X86::ADDSSrr_Int), 0,
                    1/*#VTs*/, MVT::v4f32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:v4f32 447:iPTR, VR128:v4f32:$src1, VR128:v4f32:$src2) - Complexity = 8
                // Dst: (ADDSSrr_Int:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src2)
/*44775*/     0, /*End of Scope*/
/*44776*/   /*Scope*/ 76, /*->44853*/
/*44777*/     OPC_CheckInteger, 19|128,2/*275*/, 
/*44780*/     OPC_MoveParent,
/*44781*/     OPC_RecordChild1, // #0 = $src1
/*44782*/     OPC_RecordChild2, // #1 = $src2
/*44783*/     OPC_Scope, 21, /*->44806*/ // 4 children in Scope
/*44785*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*44787*/       OPC_CheckComplexPat, /*CP*/2, /*#*/1, // SelectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*44790*/       OPC_EmitMergeInputChains, 1, 7, 
/*44793*/       OPC_MorphNodeTo, TARGET_VAL(X86::VADDSDrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v2f64, 6/*#Ops*/, 0, 2, 3, 4, 5, 6, 
                // Src: (intrinsic_wo_chain:v2f64 275:iPTR, VR128:v2f64:$src1, sse_load_f64:v2f64:$src2) - Complexity = 26
                // Dst: (VADDSDrm_Int:v2f64 VR128:v2f64:$src1, sse_load_f64:v2f64:$src2)
/*44806*/     /*Scope*/ 21, /*->44828*/
/*44807*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*44809*/       OPC_CheckComplexPat, /*CP*/2, /*#*/1, // SelectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*44812*/       OPC_EmitMergeInputChains, 1, 7, 
/*44815*/       OPC_MorphNodeTo, TARGET_VAL(X86::ADDSDrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v2f64, 6/*#Ops*/, 0, 2, 3, 4, 5, 6, 
                // Src: (intrinsic_wo_chain:v2f64 275:iPTR, VR128:v2f64:$src1, sse_load_f64:v2f64:$src2) - Complexity = 26
                // Dst: (ADDSDrm_Int:v2f64 VR128:v2f64:$src1, sse_load_f64:v2f64:$src2)
/*44828*/     /*Scope*/ 11, /*->44840*/
/*44829*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*44831*/       OPC_MorphNodeTo, TARGET_VAL(X86::VADDSDrr_Int), 0,
                    1/*#VTs*/, MVT::v2f64, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:v2f64 275:iPTR, VR128:v2f64:$src1, VR128:v2f64:$src2) - Complexity = 8
                // Dst: (VADDSDrr_Int:v2f64 VR128:v2f64:$src1, VR128:v2f64:$src2)
/*44840*/     /*Scope*/ 11, /*->44852*/
/*44841*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*44843*/       OPC_MorphNodeTo, TARGET_VAL(X86::ADDSDrr_Int), 0,
                    1/*#VTs*/, MVT::v2f64, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:v2f64 275:iPTR, VR128:v2f64:$src1, VR128:v2f64:$src2) - Complexity = 8
                // Dst: (ADDSDrr_Int:v2f64 VR128:v2f64:$src1, VR128:v2f64:$src2)
/*44852*/     0, /*End of Scope*/
/*44853*/   /*Scope*/ 76, /*->44930*/
/*44854*/     OPC_CheckInteger, 91|128,3/*475*/, 
/*44857*/     OPC_MoveParent,
/*44858*/     OPC_RecordChild1, // #0 = $src1
/*44859*/     OPC_RecordChild2, // #1 = $src2
/*44860*/     OPC_Scope, 21, /*->44883*/ // 4 children in Scope
/*44862*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*44864*/       OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*44867*/       OPC_EmitMergeInputChains, 1, 7, 
/*44870*/       OPC_MorphNodeTo, TARGET_VAL(X86::VMULSSrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v4f32, 6/*#Ops*/, 0, 2, 3, 4, 5, 6, 
                // Src: (intrinsic_wo_chain:v4f32 475:iPTR, VR128:v4f32:$src1, sse_load_f32:v4f32:$src2) - Complexity = 26
                // Dst: (VMULSSrm_Int:v4f32 VR128:v4f32:$src1, sse_load_f32:v4f32:$src2)
/*44883*/     /*Scope*/ 21, /*->44905*/
/*44884*/       OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*44886*/       OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*44889*/       OPC_EmitMergeInputChains, 1, 7, 
/*44892*/       OPC_MorphNodeTo, TARGET_VAL(X86::MULSSrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v4f32, 6/*#Ops*/, 0, 2, 3, 4, 5, 6, 
                // Src: (intrinsic_wo_chain:v4f32 475:iPTR, VR128:v4f32:$src1, sse_load_f32:v4f32:$src2) - Complexity = 26
                // Dst: (MULSSrm_Int:v4f32 VR128:v4f32:$src1, sse_load_f32:v4f32:$src2)
/*44905*/     /*Scope*/ 11, /*->44917*/
/*44906*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*44908*/       OPC_MorphNodeTo, TARGET_VAL(X86::VMULSSrr_Int), 0,
                    1/*#VTs*/, MVT::v4f32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:v4f32 475:iPTR, VR128:v4f32:$src1, VR128:v4f32:$src2) - Complexity = 8
                // Dst: (VMULSSrr_Int:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src2)
/*44917*/     /*Scope*/ 11, /*->44929*/
/*44918*/       OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*44920*/       OPC_MorphNodeTo, TARGET_VAL(X86::MULSSrr_Int), 0,
                    1/*#VTs*/, MVT::v4f32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:v4f32 475:iPTR, VR128:v4f32:$src1, VR128:v4f32:$src2) - Complexity = 8
                // Dst: (MULSSrr_Int:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src2)
/*44929*/     0, /*End of Scope*/
/*44930*/   /*Scope*/ 76, /*->45007*/
/*44931*/     OPC_CheckInteger, 54|128,2/*310*/, 
/*44934*/     OPC_MoveParent,
/*44935*/     OPC_RecordChild1, // #0 = $src1
/*44936*/     OPC_RecordChild2, // #1 = $src2
/*44937*/     OPC_Scope, 21, /*->44960*/ // 4 children in Scope
/*44939*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*44941*/       OPC_CheckComplexPat, /*CP*/2, /*#*/1, // SelectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*44944*/       OPC_EmitMergeInputChains, 1, 7, 
/*44947*/       OPC_MorphNodeTo, TARGET_VAL(X86::VMULSDrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v2f64, 6/*#Ops*/, 0, 2, 3, 4, 5, 6, 
                // Src: (intrinsic_wo_chain:v2f64 310:iPTR, VR128:v2f64:$src1, sse_load_f64:v2f64:$src2) - Complexity = 26
                // Dst: (VMULSDrm_Int:v2f64 VR128:v2f64:$src1, sse_load_f64:v2f64:$src2)
/*44960*/     /*Scope*/ 21, /*->44982*/
/*44961*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*44963*/       OPC_CheckComplexPat, /*CP*/2, /*#*/1, // SelectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*44966*/       OPC_EmitMergeInputChains, 1, 7, 
/*44969*/       OPC_MorphNodeTo, TARGET_VAL(X86::MULSDrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v2f64, 6/*#Ops*/, 0, 2, 3, 4, 5, 6, 
                // Src: (intrinsic_wo_chain:v2f64 310:iPTR, VR128:v2f64:$src1, sse_load_f64:v2f64:$src2) - Complexity = 26
                // Dst: (MULSDrm_Int:v2f64 VR128:v2f64:$src1, sse_load_f64:v2f64:$src2)
/*44982*/     /*Scope*/ 11, /*->44994*/
/*44983*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*44985*/       OPC_MorphNodeTo, TARGET_VAL(X86::VMULSDrr_Int), 0,
                    1/*#VTs*/, MVT::v2f64, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:v2f64 310:iPTR, VR128:v2f64:$src1, VR128:v2f64:$src2) - Complexity = 8
                // Dst: (VMULSDrr_Int:v2f64 VR128:v2f64:$src1, VR128:v2f64:$src2)
/*44994*/     /*Scope*/ 11, /*->45006*/
/*44995*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*44997*/       OPC_MorphNodeTo, TARGET_VAL(X86::MULSDrr_Int), 0,
                    1/*#VTs*/, MVT::v2f64, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:v2f64 310:iPTR, VR128:v2f64:$src1, VR128:v2f64:$src2) - Complexity = 8
                // Dst: (MULSDrr_Int:v2f64 VR128:v2f64:$src1, VR128:v2f64:$src2)
/*45006*/     0, /*End of Scope*/
/*45007*/   /*Scope*/ 76, /*->45084*/
/*45008*/     OPC_CheckInteger, 102|128,3/*486*/, 
/*45011*/     OPC_MoveParent,
/*45012*/     OPC_RecordChild1, // #0 = $src1
/*45013*/     OPC_RecordChild2, // #1 = $src2
/*45014*/     OPC_Scope, 21, /*->45037*/ // 4 children in Scope
/*45016*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*45018*/       OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*45021*/       OPC_EmitMergeInputChains, 1, 7, 
/*45024*/       OPC_MorphNodeTo, TARGET_VAL(X86::VSUBSSrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v4f32, 6/*#Ops*/, 0, 2, 3, 4, 5, 6, 
                // Src: (intrinsic_wo_chain:v4f32 486:iPTR, VR128:v4f32:$src1, sse_load_f32:v4f32:$src2) - Complexity = 26
                // Dst: (VSUBSSrm_Int:v4f32 VR128:v4f32:$src1, sse_load_f32:v4f32:$src2)
/*45037*/     /*Scope*/ 21, /*->45059*/
/*45038*/       OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*45040*/       OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*45043*/       OPC_EmitMergeInputChains, 1, 7, 
/*45046*/       OPC_MorphNodeTo, TARGET_VAL(X86::SUBSSrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v4f32, 6/*#Ops*/, 0, 2, 3, 4, 5, 6, 
                // Src: (intrinsic_wo_chain:v4f32 486:iPTR, VR128:v4f32:$src1, sse_load_f32:v4f32:$src2) - Complexity = 26
                // Dst: (SUBSSrm_Int:v4f32 VR128:v4f32:$src1, sse_load_f32:v4f32:$src2)
/*45059*/     /*Scope*/ 11, /*->45071*/
/*45060*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*45062*/       OPC_MorphNodeTo, TARGET_VAL(X86::VSUBSSrr_Int), 0,
                    1/*#VTs*/, MVT::v4f32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:v4f32 486:iPTR, VR128:v4f32:$src1, VR128:v4f32:$src2) - Complexity = 8
                // Dst: (VSUBSSrr_Int:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src2)
/*45071*/     /*Scope*/ 11, /*->45083*/
/*45072*/       OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*45074*/       OPC_MorphNodeTo, TARGET_VAL(X86::SUBSSrr_Int), 0,
                    1/*#VTs*/, MVT::v4f32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:v4f32 486:iPTR, VR128:v4f32:$src1, VR128:v4f32:$src2) - Complexity = 8
                // Dst: (SUBSSrr_Int:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src2)
/*45083*/     0, /*End of Scope*/
/*45084*/   /*Scope*/ 76, /*->45161*/
/*45085*/     OPC_CheckInteger, 109|128,2/*365*/, 
/*45088*/     OPC_MoveParent,
/*45089*/     OPC_RecordChild1, // #0 = $src1
/*45090*/     OPC_RecordChild2, // #1 = $src2
/*45091*/     OPC_Scope, 21, /*->45114*/ // 4 children in Scope
/*45093*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*45095*/       OPC_CheckComplexPat, /*CP*/2, /*#*/1, // SelectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*45098*/       OPC_EmitMergeInputChains, 1, 7, 
/*45101*/       OPC_MorphNodeTo, TARGET_VAL(X86::VSUBSDrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v2f64, 6/*#Ops*/, 0, 2, 3, 4, 5, 6, 
                // Src: (intrinsic_wo_chain:v2f64 365:iPTR, VR128:v2f64:$src1, sse_load_f64:v2f64:$src2) - Complexity = 26
                // Dst: (VSUBSDrm_Int:v2f64 VR128:v2f64:$src1, sse_load_f64:v2f64:$src2)
/*45114*/     /*Scope*/ 21, /*->45136*/
/*45115*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*45117*/       OPC_CheckComplexPat, /*CP*/2, /*#*/1, // SelectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*45120*/       OPC_EmitMergeInputChains, 1, 7, 
/*45123*/       OPC_MorphNodeTo, TARGET_VAL(X86::SUBSDrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v2f64, 6/*#Ops*/, 0, 2, 3, 4, 5, 6, 
                // Src: (intrinsic_wo_chain:v2f64 365:iPTR, VR128:v2f64:$src1, sse_load_f64:v2f64:$src2) - Complexity = 26
                // Dst: (SUBSDrm_Int:v2f64 VR128:v2f64:$src1, sse_load_f64:v2f64:$src2)
/*45136*/     /*Scope*/ 11, /*->45148*/
/*45137*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*45139*/       OPC_MorphNodeTo, TARGET_VAL(X86::VSUBSDrr_Int), 0,
                    1/*#VTs*/, MVT::v2f64, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:v2f64 365:iPTR, VR128:v2f64:$src1, VR128:v2f64:$src2) - Complexity = 8
                // Dst: (VSUBSDrr_Int:v2f64 VR128:v2f64:$src1, VR128:v2f64:$src2)
/*45148*/     /*Scope*/ 11, /*->45160*/
/*45149*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*45151*/       OPC_MorphNodeTo, TARGET_VAL(X86::SUBSDrr_Int), 0,
                    1/*#VTs*/, MVT::v2f64, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:v2f64 365:iPTR, VR128:v2f64:$src1, VR128:v2f64:$src2) - Complexity = 8
                // Dst: (SUBSDrr_Int:v2f64 VR128:v2f64:$src1, VR128:v2f64:$src2)
/*45160*/     0, /*End of Scope*/
/*45161*/   /*Scope*/ 76, /*->45238*/
/*45162*/     OPC_CheckInteger, 84|128,3/*468*/, 
/*45165*/     OPC_MoveParent,
/*45166*/     OPC_RecordChild1, // #0 = $src1
/*45167*/     OPC_RecordChild2, // #1 = $src2
/*45168*/     OPC_Scope, 21, /*->45191*/ // 4 children in Scope
/*45170*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*45172*/       OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*45175*/       OPC_EmitMergeInputChains, 1, 7, 
/*45178*/       OPC_MorphNodeTo, TARGET_VAL(X86::VDIVSSrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v4f32, 6/*#Ops*/, 0, 2, 3, 4, 5, 6, 
                // Src: (intrinsic_wo_chain:v4f32 468:iPTR, VR128:v4f32:$src1, sse_load_f32:v4f32:$src2) - Complexity = 26
                // Dst: (VDIVSSrm_Int:v4f32 VR128:v4f32:$src1, sse_load_f32:v4f32:$src2)
/*45191*/     /*Scope*/ 21, /*->45213*/
/*45192*/       OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*45194*/       OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*45197*/       OPC_EmitMergeInputChains, 1, 7, 
/*45200*/       OPC_MorphNodeTo, TARGET_VAL(X86::DIVSSrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v4f32, 6/*#Ops*/, 0, 2, 3, 4, 5, 6, 
                // Src: (intrinsic_wo_chain:v4f32 468:iPTR, VR128:v4f32:$src1, sse_load_f32:v4f32:$src2) - Complexity = 26
                // Dst: (DIVSSrm_Int:v4f32 VR128:v4f32:$src1, sse_load_f32:v4f32:$src2)
/*45213*/     /*Scope*/ 11, /*->45225*/
/*45214*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*45216*/       OPC_MorphNodeTo, TARGET_VAL(X86::VDIVSSrr_Int), 0,
                    1/*#VTs*/, MVT::v4f32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:v4f32 468:iPTR, VR128:v4f32:$src1, VR128:v4f32:$src2) - Complexity = 8
                // Dst: (VDIVSSrr_Int:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src2)
/*45225*/     /*Scope*/ 11, /*->45237*/
/*45226*/       OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*45228*/       OPC_MorphNodeTo, TARGET_VAL(X86::DIVSSrr_Int), 0,
                    1/*#VTs*/, MVT::v4f32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:v4f32 468:iPTR, VR128:v4f32:$src1, VR128:v4f32:$src2) - Complexity = 8
                // Dst: (DIVSSrr_Int:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src2)
/*45237*/     0, /*End of Scope*/
/*45238*/   /*Scope*/ 76, /*->45315*/
/*45239*/     OPC_CheckInteger, 45|128,2/*301*/, 
/*45242*/     OPC_MoveParent,
/*45243*/     OPC_RecordChild1, // #0 = $src1
/*45244*/     OPC_RecordChild2, // #1 = $src2
/*45245*/     OPC_Scope, 21, /*->45268*/ // 4 children in Scope
/*45247*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*45249*/       OPC_CheckComplexPat, /*CP*/2, /*#*/1, // SelectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*45252*/       OPC_EmitMergeInputChains, 1, 7, 
/*45255*/       OPC_MorphNodeTo, TARGET_VAL(X86::VDIVSDrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v2f64, 6/*#Ops*/, 0, 2, 3, 4, 5, 6, 
                // Src: (intrinsic_wo_chain:v2f64 301:iPTR, VR128:v2f64:$src1, sse_load_f64:v2f64:$src2) - Complexity = 26
                // Dst: (VDIVSDrm_Int:v2f64 VR128:v2f64:$src1, sse_load_f64:v2f64:$src2)
/*45268*/     /*Scope*/ 21, /*->45290*/
/*45269*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*45271*/       OPC_CheckComplexPat, /*CP*/2, /*#*/1, // SelectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*45274*/       OPC_EmitMergeInputChains, 1, 7, 
/*45277*/       OPC_MorphNodeTo, TARGET_VAL(X86::DIVSDrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v2f64, 6/*#Ops*/, 0, 2, 3, 4, 5, 6, 
                // Src: (intrinsic_wo_chain:v2f64 301:iPTR, VR128:v2f64:$src1, sse_load_f64:v2f64:$src2) - Complexity = 26
                // Dst: (DIVSDrm_Int:v2f64 VR128:v2f64:$src1, sse_load_f64:v2f64:$src2)
/*45290*/     /*Scope*/ 11, /*->45302*/
/*45291*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*45293*/       OPC_MorphNodeTo, TARGET_VAL(X86::VDIVSDrr_Int), 0,
                    1/*#VTs*/, MVT::v2f64, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:v2f64 301:iPTR, VR128:v2f64:$src1, VR128:v2f64:$src2) - Complexity = 8
                // Dst: (VDIVSDrr_Int:v2f64 VR128:v2f64:$src1, VR128:v2f64:$src2)
/*45302*/     /*Scope*/ 11, /*->45314*/
/*45303*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*45305*/       OPC_MorphNodeTo, TARGET_VAL(X86::DIVSDrr_Int), 0,
                    1/*#VTs*/, MVT::v2f64, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:v2f64 301:iPTR, VR128:v2f64:$src1, VR128:v2f64:$src2) - Complexity = 8
                // Dst: (DIVSDrr_Int:v2f64 VR128:v2f64:$src1, VR128:v2f64:$src2)
/*45314*/     0, /*End of Scope*/
/*45315*/   /*Scope*/ 76, /*->45392*/
/*45316*/     OPC_CheckInteger, 87|128,3/*471*/, 
/*45319*/     OPC_MoveParent,
/*45320*/     OPC_RecordChild1, // #0 = $src1
/*45321*/     OPC_RecordChild2, // #1 = $src2
/*45322*/     OPC_Scope, 21, /*->45345*/ // 4 children in Scope
/*45324*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*45326*/       OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*45329*/       OPC_EmitMergeInputChains, 1, 7, 
/*45332*/       OPC_MorphNodeTo, TARGET_VAL(X86::VMAXSSrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v4f32, 6/*#Ops*/, 0, 2, 3, 4, 5, 6, 
                // Src: (intrinsic_wo_chain:v4f32 471:iPTR, VR128:v4f32:$src1, sse_load_f32:v4f32:$src2) - Complexity = 26
                // Dst: (VMAXSSrm_Int:v4f32 VR128:v4f32:$src1, sse_load_f32:v4f32:$src2)
/*45345*/     /*Scope*/ 21, /*->45367*/
/*45346*/       OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*45348*/       OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*45351*/       OPC_EmitMergeInputChains, 1, 7, 
/*45354*/       OPC_MorphNodeTo, TARGET_VAL(X86::MAXSSrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v4f32, 6/*#Ops*/, 0, 2, 3, 4, 5, 6, 
                // Src: (intrinsic_wo_chain:v4f32 471:iPTR, VR128:v4f32:$src1, sse_load_f32:v4f32:$src2) - Complexity = 26
                // Dst: (MAXSSrm_Int:v4f32 VR128:v4f32:$src1, sse_load_f32:v4f32:$src2)
/*45367*/     /*Scope*/ 11, /*->45379*/
/*45368*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*45370*/       OPC_MorphNodeTo, TARGET_VAL(X86::VMAXSSrr_Int), 0,
                    1/*#VTs*/, MVT::v4f32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:v4f32 471:iPTR, VR128:v4f32:$src1, VR128:v4f32:$src2) - Complexity = 8
                // Dst: (VMAXSSrr_Int:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src2)
/*45379*/     /*Scope*/ 11, /*->45391*/
/*45380*/       OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*45382*/       OPC_MorphNodeTo, TARGET_VAL(X86::MAXSSrr_Int), 0,
                    1/*#VTs*/, MVT::v4f32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:v4f32 471:iPTR, VR128:v4f32:$src1, VR128:v4f32:$src2) - Complexity = 8
                // Dst: (MAXSSrr_Int:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src2)
/*45391*/     0, /*End of Scope*/
/*45392*/   /*Scope*/ 76, /*->45469*/
/*45393*/     OPC_CheckInteger, 49|128,2/*305*/, 
/*45396*/     OPC_MoveParent,
/*45397*/     OPC_RecordChild1, // #0 = $src1
/*45398*/     OPC_RecordChild2, // #1 = $src2
/*45399*/     OPC_Scope, 21, /*->45422*/ // 4 children in Scope
/*45401*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*45403*/       OPC_CheckComplexPat, /*CP*/2, /*#*/1, // SelectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*45406*/       OPC_EmitMergeInputChains, 1, 7, 
/*45409*/       OPC_MorphNodeTo, TARGET_VAL(X86::VMAXSDrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v2f64, 6/*#Ops*/, 0, 2, 3, 4, 5, 6, 
                // Src: (intrinsic_wo_chain:v2f64 305:iPTR, VR128:v2f64:$src1, sse_load_f64:v2f64:$src2) - Complexity = 26
                // Dst: (VMAXSDrm_Int:v2f64 VR128:v2f64:$src1, sse_load_f64:v2f64:$src2)
/*45422*/     /*Scope*/ 21, /*->45444*/
/*45423*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*45425*/       OPC_CheckComplexPat, /*CP*/2, /*#*/1, // SelectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*45428*/       OPC_EmitMergeInputChains, 1, 7, 
/*45431*/       OPC_MorphNodeTo, TARGET_VAL(X86::MAXSDrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v2f64, 6/*#Ops*/, 0, 2, 3, 4, 5, 6, 
                // Src: (intrinsic_wo_chain:v2f64 305:iPTR, VR128:v2f64:$src1, sse_load_f64:v2f64:$src2) - Complexity = 26
                // Dst: (MAXSDrm_Int:v2f64 VR128:v2f64:$src1, sse_load_f64:v2f64:$src2)
/*45444*/     /*Scope*/ 11, /*->45456*/
/*45445*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*45447*/       OPC_MorphNodeTo, TARGET_VAL(X86::VMAXSDrr_Int), 0,
                    1/*#VTs*/, MVT::v2f64, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:v2f64 305:iPTR, VR128:v2f64:$src1, VR128:v2f64:$src2) - Complexity = 8
                // Dst: (VMAXSDrr_Int:v2f64 VR128:v2f64:$src1, VR128:v2f64:$src2)
/*45456*/     /*Scope*/ 11, /*->45468*/
/*45457*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*45459*/       OPC_MorphNodeTo, TARGET_VAL(X86::MAXSDrr_Int), 0,
                    1/*#VTs*/, MVT::v2f64, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:v2f64 305:iPTR, VR128:v2f64:$src1, VR128:v2f64:$src2) - Complexity = 8
                // Dst: (MAXSDrr_Int:v2f64 VR128:v2f64:$src1, VR128:v2f64:$src2)
/*45468*/     0, /*End of Scope*/
/*45469*/   /*Scope*/ 76, /*->45546*/
/*45470*/     OPC_CheckInteger, 89|128,3/*473*/, 
/*45473*/     OPC_MoveParent,
/*45474*/     OPC_RecordChild1, // #0 = $src1
/*45475*/     OPC_RecordChild2, // #1 = $src2
/*45476*/     OPC_Scope, 21, /*->45499*/ // 4 children in Scope
/*45478*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*45480*/       OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*45483*/       OPC_EmitMergeInputChains, 1, 7, 
/*45486*/       OPC_MorphNodeTo, TARGET_VAL(X86::VMINSSrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v4f32, 6/*#Ops*/, 0, 2, 3, 4, 5, 6, 
                // Src: (intrinsic_wo_chain:v4f32 473:iPTR, VR128:v4f32:$src1, sse_load_f32:v4f32:$src2) - Complexity = 26
                // Dst: (VMINSSrm_Int:v4f32 VR128:v4f32:$src1, sse_load_f32:v4f32:$src2)
/*45499*/     /*Scope*/ 21, /*->45521*/
/*45500*/       OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*45502*/       OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*45505*/       OPC_EmitMergeInputChains, 1, 7, 
/*45508*/       OPC_MorphNodeTo, TARGET_VAL(X86::MINSSrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v4f32, 6/*#Ops*/, 0, 2, 3, 4, 5, 6, 
                // Src: (intrinsic_wo_chain:v4f32 473:iPTR, VR128:v4f32:$src1, sse_load_f32:v4f32:$src2) - Complexity = 26
                // Dst: (MINSSrm_Int:v4f32 VR128:v4f32:$src1, sse_load_f32:v4f32:$src2)
/*45521*/     /*Scope*/ 11, /*->45533*/
/*45522*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*45524*/       OPC_MorphNodeTo, TARGET_VAL(X86::VMINSSrr_Int), 0,
                    1/*#VTs*/, MVT::v4f32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:v4f32 473:iPTR, VR128:v4f32:$src1, VR128:v4f32:$src2) - Complexity = 8
                // Dst: (VMINSSrr_Int:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src2)
/*45533*/     /*Scope*/ 11, /*->45545*/
/*45534*/       OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*45536*/       OPC_MorphNodeTo, TARGET_VAL(X86::MINSSrr_Int), 0,
                    1/*#VTs*/, MVT::v4f32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:v4f32 473:iPTR, VR128:v4f32:$src1, VR128:v4f32:$src2) - Complexity = 8
                // Dst: (MINSSrr_Int:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src2)
/*45545*/     0, /*End of Scope*/
/*45546*/   /*Scope*/ 76, /*->45623*/
/*45547*/     OPC_CheckInteger, 52|128,2/*308*/, 
/*45550*/     OPC_MoveParent,
/*45551*/     OPC_RecordChild1, // #0 = $src1
/*45552*/     OPC_RecordChild2, // #1 = $src2
/*45553*/     OPC_Scope, 21, /*->45576*/ // 4 children in Scope
/*45555*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*45557*/       OPC_CheckComplexPat, /*CP*/2, /*#*/1, // SelectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*45560*/       OPC_EmitMergeInputChains, 1, 7, 
/*45563*/       OPC_MorphNodeTo, TARGET_VAL(X86::VMINSDrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v2f64, 6/*#Ops*/, 0, 2, 3, 4, 5, 6, 
                // Src: (intrinsic_wo_chain:v2f64 308:iPTR, VR128:v2f64:$src1, sse_load_f64:v2f64:$src2) - Complexity = 26
                // Dst: (VMINSDrm_Int:v2f64 VR128:v2f64:$src1, sse_load_f64:v2f64:$src2)
/*45576*/     /*Scope*/ 21, /*->45598*/
/*45577*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*45579*/       OPC_CheckComplexPat, /*CP*/2, /*#*/1, // SelectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*45582*/       OPC_EmitMergeInputChains, 1, 7, 
/*45585*/       OPC_MorphNodeTo, TARGET_VAL(X86::MINSDrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v2f64, 6/*#Ops*/, 0, 2, 3, 4, 5, 6, 
                // Src: (intrinsic_wo_chain:v2f64 308:iPTR, VR128:v2f64:$src1, sse_load_f64:v2f64:$src2) - Complexity = 26
                // Dst: (MINSDrm_Int:v2f64 VR128:v2f64:$src1, sse_load_f64:v2f64:$src2)
/*45598*/     /*Scope*/ 11, /*->45610*/
/*45599*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*45601*/       OPC_MorphNodeTo, TARGET_VAL(X86::VMINSDrr_Int), 0,
                    1/*#VTs*/, MVT::v2f64, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:v2f64 308:iPTR, VR128:v2f64:$src1, VR128:v2f64:$src2) - Complexity = 8
                // Dst: (VMINSDrr_Int:v2f64 VR128:v2f64:$src1, VR128:v2f64:$src2)
/*45610*/     /*Scope*/ 11, /*->45622*/
/*45611*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*45613*/       OPC_MorphNodeTo, TARGET_VAL(X86::MINSDrr_Int), 0,
                    1/*#VTs*/, MVT::v2f64, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:v2f64 308:iPTR, VR128:v2f64:$src1, VR128:v2f64:$src2) - Complexity = 8
                // Dst: (MINSDrr_Int:v2f64 VR128:v2f64:$src1, VR128:v2f64:$src2)
/*45622*/     0, /*End of Scope*/
/*45623*/   /*Scope*/ 119, /*->45743*/
/*45624*/     OPC_CheckInteger, 99|128,3/*483*/, 
/*45627*/     OPC_MoveParent,
/*45628*/     OPC_RecordChild1, // #0 = $src
/*45629*/     OPC_Scope, 20, /*->45651*/ // 4 children in Scope
/*45631*/       OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*45633*/       OPC_CheckComplexPat, /*CP*/1, /*#*/0, // SelectScalarSSELoad:$src #1 #2 #3 #4 #5 + chain result
/*45636*/       OPC_EmitMergeInputChains, 1, 6, 
/*45639*/       OPC_MorphNodeTo, TARGET_VAL(X86::SQRTSSm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v4f32, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                // Src: (intrinsic_wo_chain:v4f32 483:iPTR, sse_load_f32:v4f32:$src) - Complexity = 26
                // Dst: (SQRTSSm_Int:v4f32 sse_load_f32:v4f32:$src)
/*45651*/     /*Scope*/ 28, /*->45680*/
/*45652*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*45654*/       OPC_CheckComplexPat, /*CP*/1, /*#*/0, // SelectScalarSSELoad:$src #1 #2 #3 #4 #5 + chain result
/*45657*/       OPC_EmitMergeInputChains, 1, 6, 
/*45660*/       OPC_EmitNode, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    1/*#VTs*/, MVT::v4f32, 0/*#Ops*/,  // Results = #7 
/*45667*/       OPC_MorphNodeTo, TARGET_VAL(X86::VSQRTSSm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v4f32, 6/*#Ops*/, 7, 1, 2, 3, 4, 5, 
                // Src: (intrinsic_wo_chain:v4f32 483:iPTR, sse_load_f32:v4f32:$src) - Complexity = 26
                // Dst: (VSQRTSSm_Int:v4f32 (IMPLICIT_DEF:v4f32), sse_load_f32:v4f32:$src)
/*45680*/     /*Scope*/ 10, /*->45691*/
/*45681*/       OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*45683*/       OPC_MorphNodeTo, TARGET_VAL(X86::SQRTSSr_Int), 0,
                    1/*#VTs*/, MVT::v4f32, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:v4f32 483:iPTR, VR128:v4f32:$src) - Complexity = 8
                // Dst: (SQRTSSr_Int:v4f32 VR128:v4f32:$src)
/*45691*/     /*Scope*/ 50, /*->45742*/
/*45692*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*45694*/       OPC_EmitNode, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    1/*#VTs*/, MVT::v4f32, 0/*#Ops*/,  // Results = #1 
/*45701*/       OPC_EmitNode, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    1/*#VTs*/, MVT::f32, 0/*#Ops*/,  // Results = #2 
/*45708*/       OPC_EmitInteger, MVT::i32, X86::sub_ss,
/*45711*/       OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                    1/*#VTs*/, MVT::f32, 2/*#Ops*/, 0, 3,  // Results = #4 
/*45720*/       OPC_EmitNode, TARGET_VAL(X86::VSQRTSSr), 0,
                    1/*#VTs*/, MVT::f32, 2/*#Ops*/, 2, 4,  // Results = #5 
/*45729*/       OPC_EmitInteger, MVT::i32, X86::sub_ss,
/*45732*/       OPC_MorphNodeTo, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    1/*#VTs*/, MVT::v4f32, 3/*#Ops*/, 1, 5, 6, 
                // Src: (intrinsic_wo_chain:v4f32 483:iPTR, VR128:v4f32:$src) - Complexity = 8
                // Dst: (INSERT_SUBREG:v4f32 (IMPLICIT_DEF:v4f32), (VSQRTSSr:f32 (IMPLICIT_DEF:f32), (EXTRACT_SUBREG:f32 VR128:v4f32:$src, sub_ss:i32)), sub_ss:i32)
/*45742*/     0, /*End of Scope*/
/*45743*/   /*Scope*/ 119, /*->45863*/
/*45744*/     OPC_CheckInteger, 105|128,2/*361*/, 
/*45747*/     OPC_MoveParent,
/*45748*/     OPC_RecordChild1, // #0 = $src
/*45749*/     OPC_Scope, 20, /*->45771*/ // 4 children in Scope
/*45751*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*45753*/       OPC_CheckComplexPat, /*CP*/2, /*#*/0, // SelectScalarSSELoad:$src #1 #2 #3 #4 #5 + chain result
/*45756*/       OPC_EmitMergeInputChains, 1, 6, 
/*45759*/       OPC_MorphNodeTo, TARGET_VAL(X86::SQRTSDm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v2f64, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                // Src: (intrinsic_wo_chain:v2f64 361:iPTR, sse_load_f64:v2f64:$src) - Complexity = 26
                // Dst: (SQRTSDm_Int:v2f64 sse_load_f64:v2f64:$src)
/*45771*/     /*Scope*/ 28, /*->45800*/
/*45772*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*45774*/       OPC_CheckComplexPat, /*CP*/2, /*#*/0, // SelectScalarSSELoad:$src #1 #2 #3 #4 #5 + chain result
/*45777*/       OPC_EmitMergeInputChains, 1, 6, 
/*45780*/       OPC_EmitNode, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    1/*#VTs*/, MVT::v2f64, 0/*#Ops*/,  // Results = #7 
/*45787*/       OPC_MorphNodeTo, TARGET_VAL(X86::VSQRTSDm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v2f64, 6/*#Ops*/, 7, 1, 2, 3, 4, 5, 
                // Src: (intrinsic_wo_chain:v2f64 361:iPTR, sse_load_f64:v2f64:$src) - Complexity = 26
                // Dst: (VSQRTSDm_Int:v2f64 (IMPLICIT_DEF:v2f64), sse_load_f64:v2f64:$src)
/*45800*/     /*Scope*/ 10, /*->45811*/
/*45801*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*45803*/       OPC_MorphNodeTo, TARGET_VAL(X86::SQRTSDr_Int), 0,
                    1/*#VTs*/, MVT::v2f64, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:v2f64 361:iPTR, VR128:v2f64:$src) - Complexity = 8
                // Dst: (SQRTSDr_Int:v2f64 VR128:v2f64:$src)
/*45811*/     /*Scope*/ 50, /*->45862*/
/*45812*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*45814*/       OPC_EmitNode, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    1/*#VTs*/, MVT::v2f64, 0/*#Ops*/,  // Results = #1 
/*45821*/       OPC_EmitNode, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    1/*#VTs*/, MVT::f64, 0/*#Ops*/,  // Results = #2 
/*45828*/       OPC_EmitInteger, MVT::i32, X86::sub_sd,
/*45831*/       OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                    1/*#VTs*/, MVT::f64, 2/*#Ops*/, 0, 3,  // Results = #4 
/*45840*/       OPC_EmitNode, TARGET_VAL(X86::VSQRTSDr), 0,
                    1/*#VTs*/, MVT::f64, 2/*#Ops*/, 2, 4,  // Results = #5 
/*45849*/       OPC_EmitInteger, MVT::i32, X86::sub_sd,
/*45852*/       OPC_MorphNodeTo, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    1/*#VTs*/, MVT::v2f64, 3/*#Ops*/, 1, 5, 6, 
                // Src: (intrinsic_wo_chain:v2f64 361:iPTR, VR128:v2f64:$src) - Complexity = 8
                // Dst: (INSERT_SUBREG:v2f64 (IMPLICIT_DEF:v2f64), (VSQRTSDr:f64 (IMPLICIT_DEF:f64), (EXTRACT_SUBREG:f64 VR128:v2f64:$src, sub_sd:i32)), sub_sd:i32)
/*45862*/     0, /*End of Scope*/
/*45863*/   /*Scope*/ 119, /*->45983*/
/*45864*/     OPC_CheckInteger, 96|128,3/*480*/, 
/*45867*/     OPC_MoveParent,
/*45868*/     OPC_RecordChild1, // #0 = $src
/*45869*/     OPC_Scope, 20, /*->45891*/ // 4 children in Scope
/*45871*/       OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*45873*/       OPC_CheckComplexPat, /*CP*/1, /*#*/0, // SelectScalarSSELoad:$src #1 #2 #3 #4 #5 + chain result
/*45876*/       OPC_EmitMergeInputChains, 1, 6, 
/*45879*/       OPC_MorphNodeTo, TARGET_VAL(X86::RSQRTSSm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v4f32, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                // Src: (intrinsic_wo_chain:v4f32 480:iPTR, sse_load_f32:v4f32:$src) - Complexity = 26
                // Dst: (RSQRTSSm_Int:v4f32 sse_load_f32:v4f32:$src)
/*45891*/     /*Scope*/ 28, /*->45920*/
/*45892*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*45894*/       OPC_CheckComplexPat, /*CP*/1, /*#*/0, // SelectScalarSSELoad:$src #1 #2 #3 #4 #5 + chain result
/*45897*/       OPC_EmitMergeInputChains, 1, 6, 
/*45900*/       OPC_EmitNode, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    1/*#VTs*/, MVT::v4f32, 0/*#Ops*/,  // Results = #7 
/*45907*/       OPC_MorphNodeTo, TARGET_VAL(X86::VRSQRTSSm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v4f32, 6/*#Ops*/, 7, 1, 2, 3, 4, 5, 
                // Src: (intrinsic_wo_chain:v4f32 480:iPTR, sse_load_f32:v4f32:$src) - Complexity = 26
                // Dst: (VRSQRTSSm_Int:v4f32 (IMPLICIT_DEF:v4f32), sse_load_f32:v4f32:$src)
/*45920*/     /*Scope*/ 10, /*->45931*/
/*45921*/       OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*45923*/       OPC_MorphNodeTo, TARGET_VAL(X86::RSQRTSSr_Int), 0,
                    1/*#VTs*/, MVT::v4f32, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:v4f32 480:iPTR, VR128:v4f32:$src) - Complexity = 8
                // Dst: (RSQRTSSr_Int:v4f32 VR128:v4f32:$src)
/*45931*/     /*Scope*/ 50, /*->45982*/
/*45932*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*45934*/       OPC_EmitNode, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    1/*#VTs*/, MVT::v4f32, 0/*#Ops*/,  // Results = #1 
/*45941*/       OPC_EmitNode, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    1/*#VTs*/, MVT::f32, 0/*#Ops*/,  // Results = #2 
/*45948*/       OPC_EmitInteger, MVT::i32, X86::sub_ss,
/*45951*/       OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                    1/*#VTs*/, MVT::f32, 2/*#Ops*/, 0, 3,  // Results = #4 
/*45960*/       OPC_EmitNode, TARGET_VAL(X86::VRSQRTSSr), 0,
                    1/*#VTs*/, MVT::f32, 2/*#Ops*/, 2, 4,  // Results = #5 
/*45969*/       OPC_EmitInteger, MVT::i32, X86::sub_ss,
/*45972*/       OPC_MorphNodeTo, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    1/*#VTs*/, MVT::v4f32, 3/*#Ops*/, 1, 5, 6, 
                // Src: (intrinsic_wo_chain:v4f32 480:iPTR, VR128:v4f32:$src) - Complexity = 8
                // Dst: (INSERT_SUBREG:v4f32 (IMPLICIT_DEF:v4f32), (VRSQRTSSr:f32 (IMPLICIT_DEF:f32), (EXTRACT_SUBREG:f32 VR128:v4f32:$src, sub_ss:i32)), sub_ss:i32)
/*45982*/     0, /*End of Scope*/
/*45983*/   /*Scope*/ 119, /*->46103*/
/*45984*/     OPC_CheckInteger, 94|128,3/*478*/, 
/*45987*/     OPC_MoveParent,
/*45988*/     OPC_RecordChild1, // #0 = $src
/*45989*/     OPC_Scope, 20, /*->46011*/ // 4 children in Scope
/*45991*/       OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*45993*/       OPC_CheckComplexPat, /*CP*/1, /*#*/0, // SelectScalarSSELoad:$src #1 #2 #3 #4 #5 + chain result
/*45996*/       OPC_EmitMergeInputChains, 1, 6, 
/*45999*/       OPC_MorphNodeTo, TARGET_VAL(X86::RCPSSm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v4f32, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                // Src: (intrinsic_wo_chain:v4f32 478:iPTR, sse_load_f32:v4f32:$src) - Complexity = 26
                // Dst: (RCPSSm_Int:v4f32 sse_load_f32:v4f32:$src)
/*46011*/     /*Scope*/ 28, /*->46040*/
/*46012*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*46014*/       OPC_CheckComplexPat, /*CP*/1, /*#*/0, // SelectScalarSSELoad:$src #1 #2 #3 #4 #5 + chain result
/*46017*/       OPC_EmitMergeInputChains, 1, 6, 
/*46020*/       OPC_EmitNode, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    1/*#VTs*/, MVT::v4f32, 0/*#Ops*/,  // Results = #7 
/*46027*/       OPC_MorphNodeTo, TARGET_VAL(X86::VRCPSSm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v4f32, 6/*#Ops*/, 7, 1, 2, 3, 4, 5, 
                // Src: (intrinsic_wo_chain:v4f32 478:iPTR, sse_load_f32:v4f32:$src) - Complexity = 26
                // Dst: (VRCPSSm_Int:v4f32 (IMPLICIT_DEF:v4f32), sse_load_f32:v4f32:$src)
/*46040*/     /*Scope*/ 10, /*->46051*/
/*46041*/       OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*46043*/       OPC_MorphNodeTo, TARGET_VAL(X86::RCPSSr_Int), 0,
                    1/*#VTs*/, MVT::v4f32, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:v4f32 478:iPTR, VR128:v4f32:$src) - Complexity = 8
                // Dst: (RCPSSr_Int:v4f32 VR128:v4f32:$src)
/*46051*/     /*Scope*/ 50, /*->46102*/
/*46052*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*46054*/       OPC_EmitNode, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    1/*#VTs*/, MVT::v4f32, 0/*#Ops*/,  // Results = #1 
/*46061*/       OPC_EmitNode, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    1/*#VTs*/, MVT::f32, 0/*#Ops*/,  // Results = #2 
/*46068*/       OPC_EmitInteger, MVT::i32, X86::sub_ss,
/*46071*/       OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                    1/*#VTs*/, MVT::f32, 2/*#Ops*/, 0, 3,  // Results = #4 
/*46080*/       OPC_EmitNode, TARGET_VAL(X86::VRCPSSr), 0,
                    1/*#VTs*/, MVT::f32, 2/*#Ops*/, 2, 4,  // Results = #5 
/*46089*/       OPC_EmitInteger, MVT::i32, X86::sub_ss,
/*46092*/       OPC_MorphNodeTo, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    1/*#VTs*/, MVT::v4f32, 3/*#Ops*/, 1, 5, 6, 
                // Src: (intrinsic_wo_chain:v4f32 478:iPTR, VR128:v4f32:$src) - Complexity = 8
                // Dst: (INSERT_SUBREG:v4f32 (IMPLICIT_DEF:v4f32), (VRCPSSr:f32 (IMPLICIT_DEF:f32), (EXTRACT_SUBREG:f32 VR128:v4f32:$src, sub_ss:i32)), sub_ss:i32)
/*46102*/     0, /*End of Scope*/
/*46103*/   /*Scope*/ 45, /*->46149*/
/*46104*/     OPC_CheckInteger, 4|128,3/*388*/, 
/*46107*/     OPC_MoveParent,
/*46108*/     OPC_RecordChild1, // #0 = $src1
/*46109*/     OPC_RecordChild2, // #1 = $src2
/*46110*/     OPC_RecordChild3, // #2 = $src3
/*46111*/     OPC_MoveChild, 3,
/*46113*/     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*46116*/     OPC_MoveParent,
/*46117*/     OPC_Scope, 14, /*->46133*/ // 2 children in Scope
/*46119*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*46121*/       OPC_EmitConvertToTarget, 2,
/*46123*/       OPC_MorphNodeTo, TARGET_VAL(X86::VINSERTPSrr), 0,
                    1/*#VTs*/, MVT::v4f32, 3/*#Ops*/, 0, 1, 3, 
                // Src: (intrinsic_wo_chain:v4f32 388:iPTR, VR128:v4f32:$src1, VR128:v4f32:$src2, (imm:i32):$src3) - Complexity = 11
                // Dst: (VINSERTPSrr:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src2, (imm:i32):$src3)
/*46133*/     /*Scope*/ 14, /*->46148*/
/*46134*/       OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*46136*/       OPC_EmitConvertToTarget, 2,
/*46138*/       OPC_MorphNodeTo, TARGET_VAL(X86::INSERTPSrr), 0,
                    1/*#VTs*/, MVT::v4f32, 3/*#Ops*/, 0, 1, 3, 
                // Src: (intrinsic_wo_chain:v4f32 388:iPTR, VR128:v4f32:$src1, VR128:v4f32:$src2, (imm:i32):$src3) - Complexity = 11
                // Dst: (INSERTPSrr:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src2, (imm:i32):$src3)
/*46148*/     0, /*End of Scope*/
/*46149*/   /*Scope*/ 25, /*->46175*/
/*46150*/     OPC_CheckInteger, 47|128,1/*175*/, 
/*46153*/     OPC_MoveParent,
/*46154*/     OPC_RecordChild1, // #0 = $src1
/*46155*/     OPC_RecordChild2, // #1 = $src2
/*46156*/     OPC_RecordChild3, // #2 = $src3
/*46157*/     OPC_MoveChild, 3,
/*46159*/     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*46162*/     OPC_MoveParent,
/*46163*/     OPC_EmitConvertToTarget, 2,
/*46165*/     OPC_MorphNodeTo, TARGET_VAL(X86::VINSERTF128rr), 0,
                  1/*#VTs*/, MVT::v4f64, 3/*#Ops*/, 0, 1, 3, 
              // Src: (intrinsic_wo_chain:v4f64 175:iPTR, VR256:v4f64:$src1, VR128:v2f64:$src2, (imm:i8):$src3) - Complexity = 11
              // Dst: (VINSERTF128rr:v4f64 VR256:v4f64:$src1, VR128:v2f64:$src2, (imm:i8):$src3)
/*46175*/   /*Scope*/ 25, /*->46201*/
/*46176*/     OPC_CheckInteger, 48|128,1/*176*/, 
/*46179*/     OPC_MoveParent,
/*46180*/     OPC_RecordChild1, // #0 = $src1
/*46181*/     OPC_RecordChild2, // #1 = $src2
/*46182*/     OPC_RecordChild3, // #2 = $src3
/*46183*/     OPC_MoveChild, 3,
/*46185*/     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*46188*/     OPC_MoveParent,
/*46189*/     OPC_EmitConvertToTarget, 2,
/*46191*/     OPC_MorphNodeTo, TARGET_VAL(X86::VINSERTF128rr), 0,
                  1/*#VTs*/, MVT::v8f32, 3/*#Ops*/, 0, 1, 3, 
              // Src: (intrinsic_wo_chain:v8f32 176:iPTR, VR256:v8f32:$src1, VR128:v4f32:$src2, (imm:i8):$src3) - Complexity = 11
              // Dst: (VINSERTF128rr:v8f32 VR256:v8f32:$src1, VR128:v4f32:$src2, (imm:i8):$src3)
/*46201*/   /*Scope*/ 23, /*->46225*/
/*46202*/     OPC_CheckInteger, 44|128,1/*172*/, 
/*46205*/     OPC_MoveParent,
/*46206*/     OPC_RecordChild1, // #0 = $src1
/*46207*/     OPC_RecordChild2, // #1 = $src2
/*46208*/     OPC_MoveChild, 2,
/*46210*/     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*46213*/     OPC_MoveParent,
/*46214*/     OPC_EmitConvertToTarget, 1,
/*46216*/     OPC_MorphNodeTo, TARGET_VAL(X86::VEXTRACTF128rr), 0,
                  1/*#VTs*/, MVT::v2f64, 2/*#Ops*/, 0, 2, 
              // Src: (intrinsic_wo_chain:v2f64 172:iPTR, VR256:v4f64:$src1, (imm:i8):$src2) - Complexity = 11
              // Dst: (VEXTRACTF128rr:v2f64 VR256:v4f64:$src1, (imm:i8):$src2)
/*46225*/   /*Scope*/ 23, /*->46249*/
/*46226*/     OPC_CheckInteger, 45|128,1/*173*/, 
/*46229*/     OPC_MoveParent,
/*46230*/     OPC_RecordChild1, // #0 = $src1
/*46231*/     OPC_RecordChild2, // #1 = $src2
/*46232*/     OPC_MoveChild, 2,
/*46234*/     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*46237*/     OPC_MoveParent,
/*46238*/     OPC_EmitConvertToTarget, 1,
/*46240*/     OPC_MorphNodeTo, TARGET_VAL(X86::VEXTRACTF128rr), 0,
                  1/*#VTs*/, MVT::v4f32, 2/*#Ops*/, 0, 2, 
              // Src: (intrinsic_wo_chain:v4f32 173:iPTR, VR256:v8f32:$src1, (imm:i8):$src2) - Complexity = 11
              // Dst: (VEXTRACTF128rr:v4f32 VR256:v8f32:$src1, (imm:i8):$src2)
/*46249*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 126|128,37/*4862*/,  TARGET_VAL(X86ISD::CMOV),// ->51116
/*46254*/   OPC_Scope, 110|128,12/*1646*/, /*->47903*/ // 3 children in Scope
/*46257*/     OPC_RecordChild0, // #0 = $src1
/*46258*/     OPC_MoveChild, 1,
/*46260*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*46263*/     OPC_RecordMemRef,
/*46264*/     OPC_RecordNode, // #1 = 'ld' chained node
/*46265*/     OPC_CheckFoldableChainNode,
/*46266*/     OPC_RecordChild1, // #2 = $src2
/*46267*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*46269*/     OPC_Scope, 33, /*->46304*/ // 48 children in Scope
/*46271*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*46273*/       OPC_MoveParent,
/*46274*/       OPC_MoveChild, 2,
/*46276*/       OPC_CheckInteger, 13, 
/*46278*/       OPC_MoveParent,
/*46279*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*46280*/       OPC_CheckType, MVT::i16,
/*46282*/       OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*46284*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*46287*/       OPC_EmitMergeInputChains1_1,
/*46288*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*46291*/       OPC_MorphNodeTo, TARGET_VAL(X86::CMOVO16rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i16, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                // Src: (X86cmov:i16 GR16:i16:$src1, (ld:i16 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>, 13:i8, EFLAGS:i32) - Complexity = 30
                // Dst: (CMOVO16rm:i16 GR16:i16:$src1, addr:iPTR:$src2)
/*46304*/     /*Scope*/ 33, /*->46338*/
/*46305*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*46307*/       OPC_MoveParent,
/*46308*/       OPC_MoveChild, 2,
/*46310*/       OPC_CheckInteger, 13, 
/*46312*/       OPC_MoveParent,
/*46313*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*46314*/       OPC_CheckType, MVT::i32,
/*46316*/       OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*46318*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*46321*/       OPC_EmitMergeInputChains1_1,
/*46322*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*46325*/       OPC_MorphNodeTo, TARGET_VAL(X86::CMOVO32rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i32, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                // Src: (X86cmov:i32 GR32:i32:$src1, (ld:i32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>, 13:i8, EFLAGS:i32) - Complexity = 30
                // Dst: (CMOVO32rm:i32 GR32:i32:$src1, addr:iPTR:$src2)
/*46338*/     /*Scope*/ 33, /*->46372*/
/*46339*/       OPC_CheckPredicate, 3, // Predicate_load
/*46341*/       OPC_MoveParent,
/*46342*/       OPC_MoveChild, 2,
/*46344*/       OPC_CheckInteger, 13, 
/*46346*/       OPC_MoveParent,
/*46347*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*46348*/       OPC_CheckType, MVT::i64,
/*46350*/       OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*46352*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*46355*/       OPC_EmitMergeInputChains1_1,
/*46356*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*46359*/       OPC_MorphNodeTo, TARGET_VAL(X86::CMOVO64rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i64, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                // Src: (X86cmov:i64 GR64:i64:$src1, (ld:i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, 13:i8, EFLAGS:i32) - Complexity = 30
                // Dst: (CMOVO64rm:i64 GR64:i64:$src1, addr:iPTR:$src2)
/*46372*/     /*Scope*/ 33, /*->46406*/
/*46373*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*46375*/       OPC_MoveParent,
/*46376*/       OPC_MoveChild, 2,
/*46378*/       OPC_CheckInteger, 10, 
/*46380*/       OPC_MoveParent,
/*46381*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*46382*/       OPC_CheckType, MVT::i16,
/*46384*/       OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*46386*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*46389*/       OPC_EmitMergeInputChains1_1,
/*46390*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*46393*/       OPC_MorphNodeTo, TARGET_VAL(X86::CMOVNO16rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i16, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                // Src: (X86cmov:i16 GR16:i16:$src1, (ld:i16 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>, 10:i8, EFLAGS:i32) - Complexity = 30
                // Dst: (CMOVNO16rm:i16 GR16:i16:$src1, addr:iPTR:$src2)
/*46406*/     /*Scope*/ 33, /*->46440*/
/*46407*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*46409*/       OPC_MoveParent,
/*46410*/       OPC_MoveChild, 2,
/*46412*/       OPC_CheckInteger, 10, 
/*46414*/       OPC_MoveParent,
/*46415*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*46416*/       OPC_CheckType, MVT::i32,
/*46418*/       OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*46420*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*46423*/       OPC_EmitMergeInputChains1_1,
/*46424*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*46427*/       OPC_MorphNodeTo, TARGET_VAL(X86::CMOVNO32rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i32, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                // Src: (X86cmov:i32 GR32:i32:$src1, (ld:i32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>, 10:i8, EFLAGS:i32) - Complexity = 30
                // Dst: (CMOVNO32rm:i32 GR32:i32:$src1, addr:iPTR:$src2)
/*46440*/     /*Scope*/ 33, /*->46474*/
/*46441*/       OPC_CheckPredicate, 3, // Predicate_load
/*46443*/       OPC_MoveParent,
/*46444*/       OPC_MoveChild, 2,
/*46446*/       OPC_CheckInteger, 10, 
/*46448*/       OPC_MoveParent,
/*46449*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*46450*/       OPC_CheckType, MVT::i64,
/*46452*/       OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*46454*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*46457*/       OPC_EmitMergeInputChains1_1,
/*46458*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*46461*/       OPC_MorphNodeTo, TARGET_VAL(X86::CMOVNO64rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i64, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                // Src: (X86cmov:i64 GR64:i64:$src1, (ld:i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, 10:i8, EFLAGS:i32) - Complexity = 30
                // Dst: (CMOVNO64rm:i64 GR64:i64:$src1, addr:iPTR:$src2)
/*46474*/     /*Scope*/ 33, /*->46508*/
/*46475*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*46477*/       OPC_MoveParent,
/*46478*/       OPC_MoveChild, 2,
/*46480*/       OPC_CheckInteger, 2, 
/*46482*/       OPC_MoveParent,
/*46483*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*46484*/       OPC_CheckType, MVT::i16,
/*46486*/       OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*46488*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*46491*/       OPC_EmitMergeInputChains1_1,
/*46492*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*46495*/       OPC_MorphNodeTo, TARGET_VAL(X86::CMOVB16rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i16, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                // Src: (X86cmov:i16 GR16:i16:$src1, (ld:i16 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>, 2:i8, EFLAGS:i32) - Complexity = 30
                // Dst: (CMOVB16rm:i16 GR16:i16:$src1, addr:iPTR:$src2)
/*46508*/     /*Scope*/ 33, /*->46542*/
/*46509*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*46511*/       OPC_MoveParent,
/*46512*/       OPC_MoveChild, 2,
/*46514*/       OPC_CheckInteger, 2, 
/*46516*/       OPC_MoveParent,
/*46517*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*46518*/       OPC_CheckType, MVT::i32,
/*46520*/       OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*46522*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*46525*/       OPC_EmitMergeInputChains1_1,
/*46526*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*46529*/       OPC_MorphNodeTo, TARGET_VAL(X86::CMOVB32rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i32, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                // Src: (X86cmov:i32 GR32:i32:$src1, (ld:i32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>, 2:i8, EFLAGS:i32) - Complexity = 30
                // Dst: (CMOVB32rm:i32 GR32:i32:$src1, addr:iPTR:$src2)
/*46542*/     /*Scope*/ 33, /*->46576*/
/*46543*/       OPC_CheckPredicate, 3, // Predicate_load
/*46545*/       OPC_MoveParent,
/*46546*/       OPC_MoveChild, 2,
/*46548*/       OPC_CheckInteger, 2, 
/*46550*/       OPC_MoveParent,
/*46551*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*46552*/       OPC_CheckType, MVT::i64,
/*46554*/       OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*46556*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*46559*/       OPC_EmitMergeInputChains1_1,
/*46560*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*46563*/       OPC_MorphNodeTo, TARGET_VAL(X86::CMOVB64rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i64, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                // Src: (X86cmov:i64 GR64:i64:$src1, (ld:i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, 2:i8, EFLAGS:i32) - Complexity = 30
                // Dst: (CMOVB64rm:i64 GR64:i64:$src1, addr:iPTR:$src2)
/*46576*/     /*Scope*/ 33, /*->46610*/
/*46577*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*46579*/       OPC_MoveParent,
/*46580*/       OPC_MoveChild, 2,
/*46582*/       OPC_CheckInteger, 1, 
/*46584*/       OPC_MoveParent,
/*46585*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*46586*/       OPC_CheckType, MVT::i16,
/*46588*/       OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*46590*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*46593*/       OPC_EmitMergeInputChains1_1,
/*46594*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*46597*/       OPC_MorphNodeTo, TARGET_VAL(X86::CMOVAE16rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i16, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                // Src: (X86cmov:i16 GR16:i16:$src1, (ld:i16 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>, 1:i8, EFLAGS:i32) - Complexity = 30
                // Dst: (CMOVAE16rm:i16 GR16:i16:$src1, addr:iPTR:$src2)
/*46610*/     /*Scope*/ 33, /*->46644*/
/*46611*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*46613*/       OPC_MoveParent,
/*46614*/       OPC_MoveChild, 2,
/*46616*/       OPC_CheckInteger, 1, 
/*46618*/       OPC_MoveParent,
/*46619*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*46620*/       OPC_CheckType, MVT::i32,
/*46622*/       OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*46624*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*46627*/       OPC_EmitMergeInputChains1_1,
/*46628*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*46631*/       OPC_MorphNodeTo, TARGET_VAL(X86::CMOVAE32rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i32, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                // Src: (X86cmov:i32 GR32:i32:$src1, (ld:i32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>, 1:i8, EFLAGS:i32) - Complexity = 30
                // Dst: (CMOVAE32rm:i32 GR32:i32:$src1, addr:iPTR:$src2)
/*46644*/     /*Scope*/ 33, /*->46678*/
/*46645*/       OPC_CheckPredicate, 3, // Predicate_load
/*46647*/       OPC_MoveParent,
/*46648*/       OPC_MoveChild, 2,
/*46650*/       OPC_CheckInteger, 1, 
/*46652*/       OPC_MoveParent,
/*46653*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*46654*/       OPC_CheckType, MVT::i64,
/*46656*/       OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*46658*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*46661*/       OPC_EmitMergeInputChains1_1,
/*46662*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*46665*/       OPC_MorphNodeTo, TARGET_VAL(X86::CMOVAE64rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i64, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                // Src: (X86cmov:i64 GR64:i64:$src1, (ld:i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, 1:i8, EFLAGS:i32) - Complexity = 30
                // Dst: (CMOVAE64rm:i64 GR64:i64:$src1, addr:iPTR:$src2)
/*46678*/     /*Scope*/ 33, /*->46712*/
/*46679*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*46681*/       OPC_MoveParent,
/*46682*/       OPC_MoveChild, 2,
/*46684*/       OPC_CheckInteger, 4, 
/*46686*/       OPC_MoveParent,
/*46687*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*46688*/       OPC_CheckType, MVT::i16,
/*46690*/       OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*46692*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*46695*/       OPC_EmitMergeInputChains1_1,
/*46696*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*46699*/       OPC_MorphNodeTo, TARGET_VAL(X86::CMOVE16rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i16, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                // Src: (X86cmov:i16 GR16:i16:$src1, (ld:i16 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>, 4:i8, EFLAGS:i32) - Complexity = 30
                // Dst: (CMOVE16rm:i16 GR16:i16:$src1, addr:iPTR:$src2)
/*46712*/     /*Scope*/ 33, /*->46746*/
/*46713*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*46715*/       OPC_MoveParent,
/*46716*/       OPC_MoveChild, 2,
/*46718*/       OPC_CheckInteger, 4, 
/*46720*/       OPC_MoveParent,
/*46721*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*46722*/       OPC_CheckType, MVT::i32,
/*46724*/       OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*46726*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*46729*/       OPC_EmitMergeInputChains1_1,
/*46730*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*46733*/       OPC_MorphNodeTo, TARGET_VAL(X86::CMOVE32rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i32, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                // Src: (X86cmov:i32 GR32:i32:$src1, (ld:i32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>, 4:i8, EFLAGS:i32) - Complexity = 30
                // Dst: (CMOVE32rm:i32 GR32:i32:$src1, addr:iPTR:$src2)
/*46746*/     /*Scope*/ 33, /*->46780*/
/*46747*/       OPC_CheckPredicate, 3, // Predicate_load
/*46749*/       OPC_MoveParent,
/*46750*/       OPC_MoveChild, 2,
/*46752*/       OPC_CheckInteger, 4, 
/*46754*/       OPC_MoveParent,
/*46755*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*46756*/       OPC_CheckType, MVT::i64,
/*46758*/       OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*46760*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*46763*/       OPC_EmitMergeInputChains1_1,
/*46764*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*46767*/       OPC_MorphNodeTo, TARGET_VAL(X86::CMOVE64rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i64, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                // Src: (X86cmov:i64 GR64:i64:$src1, (ld:i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, 4:i8, EFLAGS:i32) - Complexity = 30
                // Dst: (CMOVE64rm:i64 GR64:i64:$src1, addr:iPTR:$src2)
/*46780*/     /*Scope*/ 33, /*->46814*/
/*46781*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*46783*/       OPC_MoveParent,
/*46784*/       OPC_MoveChild, 2,
/*46786*/       OPC_CheckInteger, 9, 
/*46788*/       OPC_MoveParent,
/*46789*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*46790*/       OPC_CheckType, MVT::i16,
/*46792*/       OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*46794*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*46797*/       OPC_EmitMergeInputChains1_1,
/*46798*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*46801*/       OPC_MorphNodeTo, TARGET_VAL(X86::CMOVNE16rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i16, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                // Src: (X86cmov:i16 GR16:i16:$src1, (ld:i16 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>, 9:i8, EFLAGS:i32) - Complexity = 30
                // Dst: (CMOVNE16rm:i16 GR16:i16:$src1, addr:iPTR:$src2)
/*46814*/     /*Scope*/ 33, /*->46848*/
/*46815*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*46817*/       OPC_MoveParent,
/*46818*/       OPC_MoveChild, 2,
/*46820*/       OPC_CheckInteger, 9, 
/*46822*/       OPC_MoveParent,
/*46823*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*46824*/       OPC_CheckType, MVT::i32,
/*46826*/       OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*46828*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*46831*/       OPC_EmitMergeInputChains1_1,
/*46832*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*46835*/       OPC_MorphNodeTo, TARGET_VAL(X86::CMOVNE32rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i32, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                // Src: (X86cmov:i32 GR32:i32:$src1, (ld:i32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>, 9:i8, EFLAGS:i32) - Complexity = 30
                // Dst: (CMOVNE32rm:i32 GR32:i32:$src1, addr:iPTR:$src2)
/*46848*/     /*Scope*/ 33, /*->46882*/
/*46849*/       OPC_CheckPredicate, 3, // Predicate_load
/*46851*/       OPC_MoveParent,
/*46852*/       OPC_MoveChild, 2,
/*46854*/       OPC_CheckInteger, 9, 
/*46856*/       OPC_MoveParent,
/*46857*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*46858*/       OPC_CheckType, MVT::i64,
/*46860*/       OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*46862*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*46865*/       OPC_EmitMergeInputChains1_1,
/*46866*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*46869*/       OPC_MorphNodeTo, TARGET_VAL(X86::CMOVNE64rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i64, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                // Src: (X86cmov:i64 GR64:i64:$src1, (ld:i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, 9:i8, EFLAGS:i32) - Complexity = 30
                // Dst: (CMOVNE64rm:i64 GR64:i64:$src1, addr:iPTR:$src2)
/*46882*/     /*Scope*/ 33, /*->46916*/
/*46883*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*46885*/       OPC_MoveParent,
/*46886*/       OPC_MoveChild, 2,
/*46888*/       OPC_CheckInteger, 3, 
/*46890*/       OPC_MoveParent,
/*46891*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*46892*/       OPC_CheckType, MVT::i16,
/*46894*/       OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*46896*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*46899*/       OPC_EmitMergeInputChains1_1,
/*46900*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*46903*/       OPC_MorphNodeTo, TARGET_VAL(X86::CMOVBE16rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i16, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                // Src: (X86cmov:i16 GR16:i16:$src1, (ld:i16 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>, 3:i8, EFLAGS:i32) - Complexity = 30
                // Dst: (CMOVBE16rm:i16 GR16:i16:$src1, addr:iPTR:$src2)
/*46916*/     /*Scope*/ 33, /*->46950*/
/*46917*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*46919*/       OPC_MoveParent,
/*46920*/       OPC_MoveChild, 2,
/*46922*/       OPC_CheckInteger, 3, 
/*46924*/       OPC_MoveParent,
/*46925*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*46926*/       OPC_CheckType, MVT::i32,
/*46928*/       OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*46930*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*46933*/       OPC_EmitMergeInputChains1_1,
/*46934*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*46937*/       OPC_MorphNodeTo, TARGET_VAL(X86::CMOVBE32rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i32, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                // Src: (X86cmov:i32 GR32:i32:$src1, (ld:i32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>, 3:i8, EFLAGS:i32) - Complexity = 30
                // Dst: (CMOVBE32rm:i32 GR32:i32:$src1, addr:iPTR:$src2)
/*46950*/     /*Scope*/ 33, /*->46984*/
/*46951*/       OPC_CheckPredicate, 3, // Predicate_load
/*46953*/       OPC_MoveParent,
/*46954*/       OPC_MoveChild, 2,
/*46956*/       OPC_CheckInteger, 3, 
/*46958*/       OPC_MoveParent,
/*46959*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*46960*/       OPC_CheckType, MVT::i64,
/*46962*/       OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*46964*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*46967*/       OPC_EmitMergeInputChains1_1,
/*46968*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*46971*/       OPC_MorphNodeTo, TARGET_VAL(X86::CMOVBE64rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i64, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                // Src: (X86cmov:i64 GR64:i64:$src1, (ld:i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, 3:i8, EFLAGS:i32) - Complexity = 30
                // Dst: (CMOVBE64rm:i64 GR64:i64:$src1, addr:iPTR:$src2)
/*46984*/     /*Scope*/ 33, /*->47018*/
/*46985*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*46987*/       OPC_MoveParent,
/*46988*/       OPC_MoveChild, 2,
/*46990*/       OPC_CheckInteger, 0, 
/*46992*/       OPC_MoveParent,
/*46993*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*46994*/       OPC_CheckType, MVT::i16,
/*46996*/       OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*46998*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*47001*/       OPC_EmitMergeInputChains1_1,
/*47002*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*47005*/       OPC_MorphNodeTo, TARGET_VAL(X86::CMOVA16rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i16, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                // Src: (X86cmov:i16 GR16:i16:$src1, (ld:i16 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>, 0:i8, EFLAGS:i32) - Complexity = 30
                // Dst: (CMOVA16rm:i16 GR16:i16:$src1, addr:iPTR:$src2)
/*47018*/     /*Scope*/ 33, /*->47052*/
/*47019*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*47021*/       OPC_MoveParent,
/*47022*/       OPC_MoveChild, 2,
/*47024*/       OPC_CheckInteger, 0, 
/*47026*/       OPC_MoveParent,
/*47027*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*47028*/       OPC_CheckType, MVT::i32,
/*47030*/       OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*47032*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*47035*/       OPC_EmitMergeInputChains1_1,
/*47036*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*47039*/       OPC_MorphNodeTo, TARGET_VAL(X86::CMOVA32rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i32, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                // Src: (X86cmov:i32 GR32:i32:$src1, (ld:i32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>, 0:i8, EFLAGS:i32) - Complexity = 30
                // Dst: (CMOVA32rm:i32 GR32:i32:$src1, addr:iPTR:$src2)
/*47052*/     /*Scope*/ 33, /*->47086*/
/*47053*/       OPC_CheckPredicate, 3, // Predicate_load
/*47055*/       OPC_MoveParent,
/*47056*/       OPC_MoveChild, 2,
/*47058*/       OPC_CheckInteger, 0, 
/*47060*/       OPC_MoveParent,
/*47061*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*47062*/       OPC_CheckType, MVT::i64,
/*47064*/       OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*47066*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*47069*/       OPC_EmitMergeInputChains1_1,
/*47070*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*47073*/       OPC_MorphNodeTo, TARGET_VAL(X86::CMOVA64rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i64, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                // Src: (X86cmov:i64 GR64:i64:$src1, (ld:i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, 0:i8, EFLAGS:i32) - Complexity = 30
                // Dst: (CMOVA64rm:i64 GR64:i64:$src1, addr:iPTR:$src2)
/*47086*/     /*Scope*/ 33, /*->47120*/
/*47087*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*47089*/       OPC_MoveParent,
/*47090*/       OPC_MoveChild, 2,
/*47092*/       OPC_CheckInteger, 15, 
/*47094*/       OPC_MoveParent,
/*47095*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*47096*/       OPC_CheckType, MVT::i16,
/*47098*/       OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*47100*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*47103*/       OPC_EmitMergeInputChains1_1,
/*47104*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*47107*/       OPC_MorphNodeTo, TARGET_VAL(X86::CMOVS16rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i16, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                // Src: (X86cmov:i16 GR16:i16:$src1, (ld:i16 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>, 15:i8, EFLAGS:i32) - Complexity = 30
                // Dst: (CMOVS16rm:i16 GR16:i16:$src1, addr:iPTR:$src2)
/*47120*/     /*Scope*/ 33, /*->47154*/
/*47121*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*47123*/       OPC_MoveParent,
/*47124*/       OPC_MoveChild, 2,
/*47126*/       OPC_CheckInteger, 15, 
/*47128*/       OPC_MoveParent,
/*47129*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*47130*/       OPC_CheckType, MVT::i32,
/*47132*/       OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*47134*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*47137*/       OPC_EmitMergeInputChains1_1,
/*47138*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*47141*/       OPC_MorphNodeTo, TARGET_VAL(X86::CMOVS32rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i32, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                // Src: (X86cmov:i32 GR32:i32:$src1, (ld:i32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>, 15:i8, EFLAGS:i32) - Complexity = 30
                // Dst: (CMOVS32rm:i32 GR32:i32:$src1, addr:iPTR:$src2)
/*47154*/     /*Scope*/ 33, /*->47188*/
/*47155*/       OPC_CheckPredicate, 3, // Predicate_load
/*47157*/       OPC_MoveParent,
/*47158*/       OPC_MoveChild, 2,
/*47160*/       OPC_CheckInteger, 15, 
/*47162*/       OPC_MoveParent,
/*47163*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*47164*/       OPC_CheckType, MVT::i64,
/*47166*/       OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*47168*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*47171*/       OPC_EmitMergeInputChains1_1,
/*47172*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*47175*/       OPC_MorphNodeTo, TARGET_VAL(X86::CMOVS64rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i64, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                // Src: (X86cmov:i64 GR64:i64:$src1, (ld:i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, 15:i8, EFLAGS:i32) - Complexity = 30
                // Dst: (CMOVS64rm:i64 GR64:i64:$src1, addr:iPTR:$src2)
/*47188*/     /*Scope*/ 33, /*->47222*/
/*47189*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*47191*/       OPC_MoveParent,
/*47192*/       OPC_MoveChild, 2,
/*47194*/       OPC_CheckInteger, 12, 
/*47196*/       OPC_MoveParent,
/*47197*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*47198*/       OPC_CheckType, MVT::i16,
/*47200*/       OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*47202*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*47205*/       OPC_EmitMergeInputChains1_1,
/*47206*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*47209*/       OPC_MorphNodeTo, TARGET_VAL(X86::CMOVNS16rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i16, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                // Src: (X86cmov:i16 GR16:i16:$src1, (ld:i16 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>, 12:i8, EFLAGS:i32) - Complexity = 30
                // Dst: (CMOVNS16rm:i16 GR16:i16:$src1, addr:iPTR:$src2)
/*47222*/     /*Scope*/ 33, /*->47256*/
/*47223*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*47225*/       OPC_MoveParent,
/*47226*/       OPC_MoveChild, 2,
/*47228*/       OPC_CheckInteger, 12, 
/*47230*/       OPC_MoveParent,
/*47231*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*47232*/       OPC_CheckType, MVT::i32,
/*47234*/       OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*47236*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*47239*/       OPC_EmitMergeInputChains1_1,
/*47240*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*47243*/       OPC_MorphNodeTo, TARGET_VAL(X86::CMOVNS32rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i32, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                // Src: (X86cmov:i32 GR32:i32:$src1, (ld:i32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>, 12:i8, EFLAGS:i32) - Complexity = 30
                // Dst: (CMOVNS32rm:i32 GR32:i32:$src1, addr:iPTR:$src2)
/*47256*/     /*Scope*/ 33, /*->47290*/
/*47257*/       OPC_CheckPredicate, 3, // Predicate_load
/*47259*/       OPC_MoveParent,
/*47260*/       OPC_MoveChild, 2,
/*47262*/       OPC_CheckInteger, 12, 
/*47264*/       OPC_MoveParent,
/*47265*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*47266*/       OPC_CheckType, MVT::i64,
/*47268*/       OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*47270*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*47273*/       OPC_EmitMergeInputChains1_1,
/*47274*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*47277*/       OPC_MorphNodeTo, TARGET_VAL(X86::CMOVNS64rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i64, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                // Src: (X86cmov:i64 GR64:i64:$src1, (ld:i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, 12:i8, EFLAGS:i32) - Complexity = 30
                // Dst: (CMOVNS64rm:i64 GR64:i64:$src1, addr:iPTR:$src2)
/*47290*/     /*Scope*/ 33, /*->47324*/
/*47291*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*47293*/       OPC_MoveParent,
/*47294*/       OPC_MoveChild, 2,
/*47296*/       OPC_CheckInteger, 14, 
/*47298*/       OPC_MoveParent,
/*47299*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*47300*/       OPC_CheckType, MVT::i16,
/*47302*/       OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*47304*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*47307*/       OPC_EmitMergeInputChains1_1,
/*47308*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*47311*/       OPC_MorphNodeTo, TARGET_VAL(X86::CMOVP16rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i16, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                // Src: (X86cmov:i16 GR16:i16:$src1, (ld:i16 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>, 14:i8, EFLAGS:i32) - Complexity = 30
                // Dst: (CMOVP16rm:i16 GR16:i16:$src1, addr:iPTR:$src2)
/*47324*/     /*Scope*/ 33, /*->47358*/
/*47325*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*47327*/       OPC_MoveParent,
/*47328*/       OPC_MoveChild, 2,
/*47330*/       OPC_CheckInteger, 14, 
/*47332*/       OPC_MoveParent,
/*47333*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*47334*/       OPC_CheckType, MVT::i32,
/*47336*/       OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*47338*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*47341*/       OPC_EmitMergeInputChains1_1,
/*47342*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*47345*/       OPC_MorphNodeTo, TARGET_VAL(X86::CMOVP32rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i32, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                // Src: (X86cmov:i32 GR32:i32:$src1, (ld:i32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>, 14:i8, EFLAGS:i32) - Complexity = 30
                // Dst: (CMOVP32rm:i32 GR32:i32:$src1, addr:iPTR:$src2)
/*47358*/     /*Scope*/ 33, /*->47392*/
/*47359*/       OPC_CheckPredicate, 3, // Predicate_load
/*47361*/       OPC_MoveParent,
/*47362*/       OPC_MoveChild, 2,
/*47364*/       OPC_CheckInteger, 14, 
/*47366*/       OPC_MoveParent,
/*47367*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*47368*/       OPC_CheckType, MVT::i64,
/*47370*/       OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*47372*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*47375*/       OPC_EmitMergeInputChains1_1,
/*47376*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*47379*/       OPC_MorphNodeTo, TARGET_VAL(X86::CMOVP64rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i64, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                // Src: (X86cmov:i64 GR64:i64:$src1, (ld:i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, 14:i8, EFLAGS:i32) - Complexity = 30
                // Dst: (CMOVP64rm:i64 GR64:i64:$src1, addr:iPTR:$src2)
/*47392*/     /*Scope*/ 33, /*->47426*/
/*47393*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*47395*/       OPC_MoveParent,
/*47396*/       OPC_MoveChild, 2,
/*47398*/       OPC_CheckInteger, 11, 
/*47400*/       OPC_MoveParent,
/*47401*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*47402*/       OPC_CheckType, MVT::i16,
/*47404*/       OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*47406*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*47409*/       OPC_EmitMergeInputChains1_1,
/*47410*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*47413*/       OPC_MorphNodeTo, TARGET_VAL(X86::CMOVNP16rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i16, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                // Src: (X86cmov:i16 GR16:i16:$src1, (ld:i16 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>, 11:i8, EFLAGS:i32) - Complexity = 30
                // Dst: (CMOVNP16rm:i16 GR16:i16:$src1, addr:iPTR:$src2)
/*47426*/     /*Scope*/ 33, /*->47460*/
/*47427*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*47429*/       OPC_MoveParent,
/*47430*/       OPC_MoveChild, 2,
/*47432*/       OPC_CheckInteger, 11, 
/*47434*/       OPC_MoveParent,
/*47435*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*47436*/       OPC_CheckType, MVT::i32,
/*47438*/       OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*47440*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*47443*/       OPC_EmitMergeInputChains1_1,
/*47444*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*47447*/       OPC_MorphNodeTo, TARGET_VAL(X86::CMOVNP32rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i32, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                // Src: (X86cmov:i32 GR32:i32:$src1, (ld:i32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>, 11:i8, EFLAGS:i32) - Complexity = 30
                // Dst: (CMOVNP32rm:i32 GR32:i32:$src1, addr:iPTR:$src2)
/*47460*/     /*Scope*/ 33, /*->47494*/
/*47461*/       OPC_CheckPredicate, 3, // Predicate_load
/*47463*/       OPC_MoveParent,
/*47464*/       OPC_MoveChild, 2,
/*47466*/       OPC_CheckInteger, 11, 
/*47468*/       OPC_MoveParent,
/*47469*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*47470*/       OPC_CheckType, MVT::i64,
/*47472*/       OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*47474*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*47477*/       OPC_EmitMergeInputChains1_1,
/*47478*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*47481*/       OPC_MorphNodeTo, TARGET_VAL(X86::CMOVNP64rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i64, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                // Src: (X86cmov:i64 GR64:i64:$src1, (ld:i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, 11:i8, EFLAGS:i32) - Complexity = 30
                // Dst: (CMOVNP64rm:i64 GR64:i64:$src1, addr:iPTR:$src2)
/*47494*/     /*Scope*/ 33, /*->47528*/
/*47495*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*47497*/       OPC_MoveParent,
/*47498*/       OPC_MoveChild, 2,
/*47500*/       OPC_CheckInteger, 7, 
/*47502*/       OPC_MoveParent,
/*47503*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*47504*/       OPC_CheckType, MVT::i16,
/*47506*/       OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*47508*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*47511*/       OPC_EmitMergeInputChains1_1,
/*47512*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*47515*/       OPC_MorphNodeTo, TARGET_VAL(X86::CMOVL16rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i16, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                // Src: (X86cmov:i16 GR16:i16:$src1, (ld:i16 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>, 7:i8, EFLAGS:i32) - Complexity = 30
                // Dst: (CMOVL16rm:i16 GR16:i16:$src1, addr:iPTR:$src2)
/*47528*/     /*Scope*/ 33, /*->47562*/
/*47529*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*47531*/       OPC_MoveParent,
/*47532*/       OPC_MoveChild, 2,
/*47534*/       OPC_CheckInteger, 7, 
/*47536*/       OPC_MoveParent,
/*47537*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*47538*/       OPC_CheckType, MVT::i32,
/*47540*/       OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*47542*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*47545*/       OPC_EmitMergeInputChains1_1,
/*47546*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*47549*/       OPC_MorphNodeTo, TARGET_VAL(X86::CMOVL32rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i32, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                // Src: (X86cmov:i32 GR32:i32:$src1, (ld:i32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>, 7:i8, EFLAGS:i32) - Complexity = 30
                // Dst: (CMOVL32rm:i32 GR32:i32:$src1, addr:iPTR:$src2)
/*47562*/     /*Scope*/ 33, /*->47596*/
/*47563*/       OPC_CheckPredicate, 3, // Predicate_load
/*47565*/       OPC_MoveParent,
/*47566*/       OPC_MoveChild, 2,
/*47568*/       OPC_CheckInteger, 7, 
/*47570*/       OPC_MoveParent,
/*47571*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*47572*/       OPC_CheckType, MVT::i64,
/*47574*/       OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*47576*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*47579*/       OPC_EmitMergeInputChains1_1,
/*47580*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*47583*/       OPC_MorphNodeTo, TARGET_VAL(X86::CMOVL64rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i64, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                // Src: (X86cmov:i64 GR64:i64:$src1, (ld:i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, 7:i8, EFLAGS:i32) - Complexity = 30
                // Dst: (CMOVL64rm:i64 GR64:i64:$src1, addr:iPTR:$src2)
/*47596*/     /*Scope*/ 33, /*->47630*/
/*47597*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*47599*/       OPC_MoveParent,
/*47600*/       OPC_MoveChild, 2,
/*47602*/       OPC_CheckInteger, 6, 
/*47604*/       OPC_MoveParent,
/*47605*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*47606*/       OPC_CheckType, MVT::i16,
/*47608*/       OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*47610*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*47613*/       OPC_EmitMergeInputChains1_1,
/*47614*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*47617*/       OPC_MorphNodeTo, TARGET_VAL(X86::CMOVGE16rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i16, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                // Src: (X86cmov:i16 GR16:i16:$src1, (ld:i16 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>, 6:i8, EFLAGS:i32) - Complexity = 30
                // Dst: (CMOVGE16rm:i16 GR16:i16:$src1, addr:iPTR:$src2)
/*47630*/     /*Scope*/ 33, /*->47664*/
/*47631*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*47633*/       OPC_MoveParent,
/*47634*/       OPC_MoveChild, 2,
/*47636*/       OPC_CheckInteger, 6, 
/*47638*/       OPC_MoveParent,
/*47639*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*47640*/       OPC_CheckType, MVT::i32,
/*47642*/       OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*47644*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*47647*/       OPC_EmitMergeInputChains1_1,
/*47648*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*47651*/       OPC_MorphNodeTo, TARGET_VAL(X86::CMOVGE32rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i32, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                // Src: (X86cmov:i32 GR32:i32:$src1, (ld:i32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>, 6:i8, EFLAGS:i32) - Complexity = 30
                // Dst: (CMOVGE32rm:i32 GR32:i32:$src1, addr:iPTR:$src2)
/*47664*/     /*Scope*/ 33, /*->47698*/
/*47665*/       OPC_CheckPredicate, 3, // Predicate_load
/*47667*/       OPC_MoveParent,
/*47668*/       OPC_MoveChild, 2,
/*47670*/       OPC_CheckInteger, 6, 
/*47672*/       OPC_MoveParent,
/*47673*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*47674*/       OPC_CheckType, MVT::i64,
/*47676*/       OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*47678*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*47681*/       OPC_EmitMergeInputChains1_1,
/*47682*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*47685*/       OPC_MorphNodeTo, TARGET_VAL(X86::CMOVGE64rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i64, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                // Src: (X86cmov:i64 GR64:i64:$src1, (ld:i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, 6:i8, EFLAGS:i32) - Complexity = 30
                // Dst: (CMOVGE64rm:i64 GR64:i64:$src1, addr:iPTR:$src2)
/*47698*/     /*Scope*/ 33, /*->47732*/
/*47699*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*47701*/       OPC_MoveParent,
/*47702*/       OPC_MoveChild, 2,
/*47704*/       OPC_CheckInteger, 8, 
/*47706*/       OPC_MoveParent,
/*47707*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*47708*/       OPC_CheckType, MVT::i16,
/*47710*/       OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*47712*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*47715*/       OPC_EmitMergeInputChains1_1,
/*47716*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*47719*/       OPC_MorphNodeTo, TARGET_VAL(X86::CMOVLE16rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i16, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                // Src: (X86cmov:i16 GR16:i16:$src1, (ld:i16 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>, 8:i8, EFLAGS:i32) - Complexity = 30
                // Dst: (CMOVLE16rm:i16 GR16:i16:$src1, addr:iPTR:$src2)
/*47732*/     /*Scope*/ 33, /*->47766*/
/*47733*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*47735*/       OPC_MoveParent,
/*47736*/       OPC_MoveChild, 2,
/*47738*/       OPC_CheckInteger, 8, 
/*47740*/       OPC_MoveParent,
/*47741*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*47742*/       OPC_CheckType, MVT::i32,
/*47744*/       OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*47746*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*47749*/       OPC_EmitMergeInputChains1_1,
/*47750*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*47753*/       OPC_MorphNodeTo, TARGET_VAL(X86::CMOVLE32rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i32, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                // Src: (X86cmov:i32 GR32:i32:$src1, (ld:i32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>, 8:i8, EFLAGS:i32) - Complexity = 30
                // Dst: (CMOVLE32rm:i32 GR32:i32:$src1, addr:iPTR:$src2)
/*47766*/     /*Scope*/ 33, /*->47800*/
/*47767*/       OPC_CheckPredicate, 3, // Predicate_load
/*47769*/       OPC_MoveParent,
/*47770*/       OPC_MoveChild, 2,
/*47772*/       OPC_CheckInteger, 8, 
/*47774*/       OPC_MoveParent,
/*47775*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*47776*/       OPC_CheckType, MVT::i64,
/*47778*/       OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*47780*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*47783*/       OPC_EmitMergeInputChains1_1,
/*47784*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*47787*/       OPC_MorphNodeTo, TARGET_VAL(X86::CMOVLE64rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i64, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                // Src: (X86cmov:i64 GR64:i64:$src1, (ld:i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, 8:i8, EFLAGS:i32) - Complexity = 30
                // Dst: (CMOVLE64rm:i64 GR64:i64:$src1, addr:iPTR:$src2)
/*47800*/     /*Scope*/ 33, /*->47834*/
/*47801*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*47803*/       OPC_MoveParent,
/*47804*/       OPC_MoveChild, 2,
/*47806*/       OPC_CheckInteger, 5, 
/*47808*/       OPC_MoveParent,
/*47809*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*47810*/       OPC_CheckType, MVT::i16,
/*47812*/       OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*47814*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*47817*/       OPC_EmitMergeInputChains1_1,
/*47818*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*47821*/       OPC_MorphNodeTo, TARGET_VAL(X86::CMOVG16rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i16, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                // Src: (X86cmov:i16 GR16:i16:$src1, (ld:i16 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>, 5:i8, EFLAGS:i32) - Complexity = 30
                // Dst: (CMOVG16rm:i16 GR16:i16:$src1, addr:iPTR:$src2)
/*47834*/     /*Scope*/ 33, /*->47868*/
/*47835*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*47837*/       OPC_MoveParent,
/*47838*/       OPC_MoveChild, 2,
/*47840*/       OPC_CheckInteger, 5, 
/*47842*/       OPC_MoveParent,
/*47843*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*47844*/       OPC_CheckType, MVT::i32,
/*47846*/       OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*47848*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*47851*/       OPC_EmitMergeInputChains1_1,
/*47852*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*47855*/       OPC_MorphNodeTo, TARGET_VAL(X86::CMOVG32rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i32, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                // Src: (X86cmov:i32 GR32:i32:$src1, (ld:i32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>, 5:i8, EFLAGS:i32) - Complexity = 30
                // Dst: (CMOVG32rm:i32 GR32:i32:$src1, addr:iPTR:$src2)
/*47868*/     /*Scope*/ 33, /*->47902*/
/*47869*/       OPC_CheckPredicate, 3, // Predicate_load
/*47871*/       OPC_MoveParent,
/*47872*/       OPC_MoveChild, 2,
/*47874*/       OPC_CheckInteger, 5, 
/*47876*/       OPC_MoveParent,
/*47877*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*47878*/       OPC_CheckType, MVT::i64,
/*47880*/       OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*47882*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*47885*/       OPC_EmitMergeInputChains1_1,
/*47886*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*47889*/       OPC_MorphNodeTo, TARGET_VAL(X86::CMOVG64rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i64, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                // Src: (X86cmov:i64 GR64:i64:$src1, (ld:i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, 5:i8, EFLAGS:i32) - Complexity = 30
                // Dst: (CMOVG64rm:i64 GR64:i64:$src1, addr:iPTR:$src2)
/*47902*/     0, /*End of Scope*/
/*47903*/   /*Scope*/ 61|128,12/*1597*/, /*->49502*/
/*47905*/     OPC_MoveChild, 0,
/*47907*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*47910*/     OPC_RecordMemRef,
/*47911*/     OPC_RecordNode, // #0 = 'ld' chained node
/*47912*/     OPC_CheckFoldableChainNode,
/*47913*/     OPC_RecordChild1, // #1 = $src1
/*47914*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*47916*/     OPC_Scope, 32, /*->47950*/ // 48 children in Scope
/*47918*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*47920*/       OPC_MoveParent,
/*47921*/       OPC_RecordChild1, // #2 = $src2
/*47922*/       OPC_MoveChild, 2,
/*47924*/       OPC_CheckInteger, 2, 
/*47926*/       OPC_MoveParent,
/*47927*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*47928*/       OPC_CheckType, MVT::i16,
/*47930*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #4 #5 #6 #7 #8
/*47933*/       OPC_EmitMergeInputChains1_0,
/*47934*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*47937*/       OPC_MorphNodeTo, TARGET_VAL(X86::CMOVAE16rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i16, 6/*#Ops*/, 2, 4, 5, 6, 7, 8, 
                // Src: (X86cmov:i16 (ld:i16 addr:iPTR:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>, GR16:i16:$src2, 2:i8, EFLAGS:i32) - Complexity = 30
                // Dst: (CMOVAE16rm:i16 GR16:i16:$src2, addr:iPTR:$src1)
/*47950*/     /*Scope*/ 32, /*->47983*/
/*47951*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*47953*/       OPC_MoveParent,
/*47954*/       OPC_RecordChild1, // #2 = $src2
/*47955*/       OPC_MoveChild, 2,
/*47957*/       OPC_CheckInteger, 2, 
/*47959*/       OPC_MoveParent,
/*47960*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*47961*/       OPC_CheckType, MVT::i32,
/*47963*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #4 #5 #6 #7 #8
/*47966*/       OPC_EmitMergeInputChains1_0,
/*47967*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*47970*/       OPC_MorphNodeTo, TARGET_VAL(X86::CMOVAE32rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i32, 6/*#Ops*/, 2, 4, 5, 6, 7, 8, 
                // Src: (X86cmov:i32 (ld:i32 addr:iPTR:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>, GR32:i32:$src2, 2:i8, EFLAGS:i32) - Complexity = 30
                // Dst: (CMOVAE32rm:i32 GR32:i32:$src2, addr:iPTR:$src1)
/*47983*/     /*Scope*/ 32, /*->48016*/
/*47984*/       OPC_CheckPredicate, 3, // Predicate_load
/*47986*/       OPC_MoveParent,
/*47987*/       OPC_RecordChild1, // #2 = $src2
/*47988*/       OPC_MoveChild, 2,
/*47990*/       OPC_CheckInteger, 2, 
/*47992*/       OPC_MoveParent,
/*47993*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*47994*/       OPC_CheckType, MVT::i64,
/*47996*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #4 #5 #6 #7 #8
/*47999*/       OPC_EmitMergeInputChains1_0,
/*48000*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*48003*/       OPC_MorphNodeTo, TARGET_VAL(X86::CMOVAE64rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i64, 6/*#Ops*/, 2, 4, 5, 6, 7, 8, 
                // Src: (X86cmov:i64 (ld:i64 addr:iPTR:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, GR64:i64:$src2, 2:i8, EFLAGS:i32) - Complexity = 30
                // Dst: (CMOVAE64rm:i64 GR64:i64:$src2, addr:iPTR:$src1)
/*48016*/     /*Scope*/ 32, /*->48049*/
/*48017*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*48019*/       OPC_MoveParent,
/*48020*/       OPC_RecordChild1, // #2 = $src2
/*48021*/       OPC_MoveChild, 2,
/*48023*/       OPC_CheckInteger, 1, 
/*48025*/       OPC_MoveParent,
/*48026*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*48027*/       OPC_CheckType, MVT::i16,
/*48029*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #4 #5 #6 #7 #8
/*48032*/       OPC_EmitMergeInputChains1_0,
/*48033*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*48036*/       OPC_MorphNodeTo, TARGET_VAL(X86::CMOVB16rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i16, 6/*#Ops*/, 2, 4, 5, 6, 7, 8, 
                // Src: (X86cmov:i16 (ld:i16 addr:iPTR:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>, GR16:i16:$src2, 1:i8, EFLAGS:i32) - Complexity = 30
                // Dst: (CMOVB16rm:i16 GR16:i16:$src2, addr:iPTR:$src1)
/*48049*/     /*Scope*/ 32, /*->48082*/
/*48050*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*48052*/       OPC_MoveParent,
/*48053*/       OPC_RecordChild1, // #2 = $src2
/*48054*/       OPC_MoveChild, 2,
/*48056*/       OPC_CheckInteger, 1, 
/*48058*/       OPC_MoveParent,
/*48059*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*48060*/       OPC_CheckType, MVT::i32,
/*48062*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #4 #5 #6 #7 #8
/*48065*/       OPC_EmitMergeInputChains1_0,
/*48066*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*48069*/       OPC_MorphNodeTo, TARGET_VAL(X86::CMOVB32rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i32, 6/*#Ops*/, 2, 4, 5, 6, 7, 8, 
                // Src: (X86cmov:i32 (ld:i32 addr:iPTR:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>, GR32:i32:$src2, 1:i8, EFLAGS:i32) - Complexity = 30
                // Dst: (CMOVB32rm:i32 GR32:i32:$src2, addr:iPTR:$src1)
/*48082*/     /*Scope*/ 32, /*->48115*/
/*48083*/       OPC_CheckPredicate, 3, // Predicate_load
/*48085*/       OPC_MoveParent,
/*48086*/       OPC_RecordChild1, // #2 = $src2
/*48087*/       OPC_MoveChild, 2,
/*48089*/       OPC_CheckInteger, 1, 
/*48091*/       OPC_MoveParent,
/*48092*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*48093*/       OPC_CheckType, MVT::i64,
/*48095*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #4 #5 #6 #7 #8
/*48098*/       OPC_EmitMergeInputChains1_0,
/*48099*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*48102*/       OPC_MorphNodeTo, TARGET_VAL(X86::CMOVB64rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i64, 6/*#Ops*/, 2, 4, 5, 6, 7, 8, 
                // Src: (X86cmov:i64 (ld:i64 addr:iPTR:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, GR64:i64:$src2, 1:i8, EFLAGS:i32) - Complexity = 30
                // Dst: (CMOVB64rm:i64 GR64:i64:$src2, addr:iPTR:$src1)
/*48115*/     /*Scope*/ 32, /*->48148*/
/*48116*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*48118*/       OPC_MoveParent,
/*48119*/       OPC_RecordChild1, // #2 = $src2
/*48120*/       OPC_MoveChild, 2,
/*48122*/       OPC_CheckInteger, 4, 
/*48124*/       OPC_MoveParent,
/*48125*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*48126*/       OPC_CheckType, MVT::i16,
/*48128*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #4 #5 #6 #7 #8
/*48131*/       OPC_EmitMergeInputChains1_0,
/*48132*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*48135*/       OPC_MorphNodeTo, TARGET_VAL(X86::CMOVNE16rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i16, 6/*#Ops*/, 2, 4, 5, 6, 7, 8, 
                // Src: (X86cmov:i16 (ld:i16 addr:iPTR:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>, GR16:i16:$src2, 4:i8, EFLAGS:i32) - Complexity = 30
                // Dst: (CMOVNE16rm:i16 GR16:i16:$src2, addr:iPTR:$src1)
/*48148*/     /*Scope*/ 32, /*->48181*/
/*48149*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*48151*/       OPC_MoveParent,
/*48152*/       OPC_RecordChild1, // #2 = $src2
/*48153*/       OPC_MoveChild, 2,
/*48155*/       OPC_CheckInteger, 4, 
/*48157*/       OPC_MoveParent,
/*48158*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*48159*/       OPC_CheckType, MVT::i32,
/*48161*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #4 #5 #6 #7 #8
/*48164*/       OPC_EmitMergeInputChains1_0,
/*48165*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*48168*/       OPC_MorphNodeTo, TARGET_VAL(X86::CMOVNE32rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i32, 6/*#Ops*/, 2, 4, 5, 6, 7, 8, 
                // Src: (X86cmov:i32 (ld:i32 addr:iPTR:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>, GR32:i32:$src2, 4:i8, EFLAGS:i32) - Complexity = 30
                // Dst: (CMOVNE32rm:i32 GR32:i32:$src2, addr:iPTR:$src1)
/*48181*/     /*Scope*/ 32, /*->48214*/
/*48182*/       OPC_CheckPredicate, 3, // Predicate_load
/*48184*/       OPC_MoveParent,
/*48185*/       OPC_RecordChild1, // #2 = $src2
/*48186*/       OPC_MoveChild, 2,
/*48188*/       OPC_CheckInteger, 4, 
/*48190*/       OPC_MoveParent,
/*48191*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*48192*/       OPC_CheckType, MVT::i64,
/*48194*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #4 #5 #6 #7 #8
/*48197*/       OPC_EmitMergeInputChains1_0,
/*48198*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*48201*/       OPC_MorphNodeTo, TARGET_VAL(X86::CMOVNE64rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i64, 6/*#Ops*/, 2, 4, 5, 6, 7, 8, 
                // Src: (X86cmov:i64 (ld:i64 addr:iPTR:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, GR64:i64:$src2, 4:i8, EFLAGS:i32) - Complexity = 30
                // Dst: (CMOVNE64rm:i64 GR64:i64:$src2, addr:iPTR:$src1)
/*48214*/     /*Scope*/ 32, /*->48247*/
/*48215*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*48217*/       OPC_MoveParent,
/*48218*/       OPC_RecordChild1, // #2 = $src2
/*48219*/       OPC_MoveChild, 2,
/*48221*/       OPC_CheckInteger, 9, 
/*48223*/       OPC_MoveParent,
/*48224*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*48225*/       OPC_CheckType, MVT::i16,
/*48227*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #4 #5 #6 #7 #8
/*48230*/       OPC_EmitMergeInputChains1_0,
/*48231*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*48234*/       OPC_MorphNodeTo, TARGET_VAL(X86::CMOVE16rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i16, 6/*#Ops*/, 2, 4, 5, 6, 7, 8, 
                // Src: (X86cmov:i16 (ld:i16 addr:iPTR:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>, GR16:i16:$src2, 9:i8, EFLAGS:i32) - Complexity = 30
                // Dst: (CMOVE16rm:i16 GR16:i16:$src2, addr:iPTR:$src1)
/*48247*/     /*Scope*/ 32, /*->48280*/
/*48248*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*48250*/       OPC_MoveParent,
/*48251*/       OPC_RecordChild1, // #2 = $src2
/*48252*/       OPC_MoveChild, 2,
/*48254*/       OPC_CheckInteger, 9, 
/*48256*/       OPC_MoveParent,
/*48257*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*48258*/       OPC_CheckType, MVT::i32,
/*48260*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #4 #5 #6 #7 #8
/*48263*/       OPC_EmitMergeInputChains1_0,
/*48264*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*48267*/       OPC_MorphNodeTo, TARGET_VAL(X86::CMOVE32rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i32, 6/*#Ops*/, 2, 4, 5, 6, 7, 8, 
                // Src: (X86cmov:i32 (ld:i32 addr:iPTR:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>, GR32:i32:$src2, 9:i8, EFLAGS:i32) - Complexity = 30
                // Dst: (CMOVE32rm:i32 GR32:i32:$src2, addr:iPTR:$src1)
/*48280*/     /*Scope*/ 32, /*->48313*/
/*48281*/       OPC_CheckPredicate, 3, // Predicate_load
/*48283*/       OPC_MoveParent,
/*48284*/       OPC_RecordChild1, // #2 = $src2
/*48285*/       OPC_MoveChild, 2,
/*48287*/       OPC_CheckInteger, 9, 
/*48289*/       OPC_MoveParent,
/*48290*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*48291*/       OPC_CheckType, MVT::i64,
/*48293*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #4 #5 #6 #7 #8
/*48296*/       OPC_EmitMergeInputChains1_0,
/*48297*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*48300*/       OPC_MorphNodeTo, TARGET_VAL(X86::CMOVE64rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i64, 6/*#Ops*/, 2, 4, 5, 6, 7, 8, 
                // Src: (X86cmov:i64 (ld:i64 addr:iPTR:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, GR64:i64:$src2, 9:i8, EFLAGS:i32) - Complexity = 30
                // Dst: (CMOVE64rm:i64 GR64:i64:$src2, addr:iPTR:$src1)
/*48313*/     /*Scope*/ 32, /*->48346*/
/*48314*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*48316*/       OPC_MoveParent,
/*48317*/       OPC_RecordChild1, // #2 = $src2
/*48318*/       OPC_MoveChild, 2,
/*48320*/       OPC_CheckInteger, 3, 
/*48322*/       OPC_MoveParent,
/*48323*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*48324*/       OPC_CheckType, MVT::i16,
/*48326*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #4 #5 #6 #7 #8
/*48329*/       OPC_EmitMergeInputChains1_0,
/*48330*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*48333*/       OPC_MorphNodeTo, TARGET_VAL(X86::CMOVA16rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i16, 6/*#Ops*/, 2, 4, 5, 6, 7, 8, 
                // Src: (X86cmov:i16 (ld:i16 addr:iPTR:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>, GR16:i16:$src2, 3:i8, EFLAGS:i32) - Complexity = 30
                // Dst: (CMOVA16rm:i16 GR16:i16:$src2, addr:iPTR:$src1)
/*48346*/     /*Scope*/ 32, /*->48379*/
/*48347*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*48349*/       OPC_MoveParent,
/*48350*/       OPC_RecordChild1, // #2 = $src2
/*48351*/       OPC_MoveChild, 2,
/*48353*/       OPC_CheckInteger, 3, 
/*48355*/       OPC_MoveParent,
/*48356*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*48357*/       OPC_CheckType, MVT::i32,
/*48359*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #4 #5 #6 #7 #8
/*48362*/       OPC_EmitMergeInputChains1_0,
/*48363*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*48366*/       OPC_MorphNodeTo, TARGET_VAL(X86::CMOVA32rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i32, 6/*#Ops*/, 2, 4, 5, 6, 7, 8, 
                // Src: (X86cmov:i32 (ld:i32 addr:iPTR:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>, GR32:i32:$src2, 3:i8, EFLAGS:i32) - Complexity = 30
                // Dst: (CMOVA32rm:i32 GR32:i32:$src2, addr:iPTR:$src1)
/*48379*/     /*Scope*/ 32, /*->48412*/
/*48380*/       OPC_CheckPredicate, 3, // Predicate_load
/*48382*/       OPC_MoveParent,
/*48383*/       OPC_RecordChild1, // #2 = $src2
/*48384*/       OPC_MoveChild, 2,
/*48386*/       OPC_CheckInteger, 3, 
/*48388*/       OPC_MoveParent,
/*48389*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*48390*/       OPC_CheckType, MVT::i64,
/*48392*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #4 #5 #6 #7 #8
/*48395*/       OPC_EmitMergeInputChains1_0,
/*48396*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*48399*/       OPC_MorphNodeTo, TARGET_VAL(X86::CMOVA64rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i64, 6/*#Ops*/, 2, 4, 5, 6, 7, 8, 
                // Src: (X86cmov:i64 (ld:i64 addr:iPTR:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, GR64:i64:$src2, 3:i8, EFLAGS:i32) - Complexity = 30
                // Dst: (CMOVA64rm:i64 GR64:i64:$src2, addr:iPTR:$src1)
/*48412*/     /*Scope*/ 32, /*->48445*/
/*48413*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*48415*/       OPC_MoveParent,
/*48416*/       OPC_RecordChild1, // #2 = $src2
/*48417*/       OPC_MoveChild, 2,
/*48419*/       OPC_CheckInteger, 0, 
/*48421*/       OPC_MoveParent,
/*48422*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*48423*/       OPC_CheckType, MVT::i16,
/*48425*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #4 #5 #6 #7 #8
/*48428*/       OPC_EmitMergeInputChains1_0,
/*48429*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*48432*/       OPC_MorphNodeTo, TARGET_VAL(X86::CMOVBE16rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i16, 6/*#Ops*/, 2, 4, 5, 6, 7, 8, 
                // Src: (X86cmov:i16 (ld:i16 addr:iPTR:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>, GR16:i16:$src2, 0:i8, EFLAGS:i32) - Complexity = 30
                // Dst: (CMOVBE16rm:i16 GR16:i16:$src2, addr:iPTR:$src1)
/*48445*/     /*Scope*/ 32, /*->48478*/
/*48446*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*48448*/       OPC_MoveParent,
/*48449*/       OPC_RecordChild1, // #2 = $src2
/*48450*/       OPC_MoveChild, 2,
/*48452*/       OPC_CheckInteger, 0, 
/*48454*/       OPC_MoveParent,
/*48455*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*48456*/       OPC_CheckType, MVT::i32,
/*48458*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #4 #5 #6 #7 #8
/*48461*/       OPC_EmitMergeInputChains1_0,
/*48462*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*48465*/       OPC_MorphNodeTo, TARGET_VAL(X86::CMOVBE32rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i32, 6/*#Ops*/, 2, 4, 5, 6, 7, 8, 
                // Src: (X86cmov:i32 (ld:i32 addr:iPTR:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>, GR32:i32:$src2, 0:i8, EFLAGS:i32) - Complexity = 30
                // Dst: (CMOVBE32rm:i32 GR32:i32:$src2, addr:iPTR:$src1)
/*48478*/     /*Scope*/ 32, /*->48511*/
/*48479*/       OPC_CheckPredicate, 3, // Predicate_load
/*48481*/       OPC_MoveParent,
/*48482*/       OPC_RecordChild1, // #2 = $src2
/*48483*/       OPC_MoveChild, 2,
/*48485*/       OPC_CheckInteger, 0, 
/*48487*/       OPC_MoveParent,
/*48488*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*48489*/       OPC_CheckType, MVT::i64,
/*48491*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #4 #5 #6 #7 #8
/*48494*/       OPC_EmitMergeInputChains1_0,
/*48495*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*48498*/       OPC_MorphNodeTo, TARGET_VAL(X86::CMOVBE64rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i64, 6/*#Ops*/, 2, 4, 5, 6, 7, 8, 
                // Src: (X86cmov:i64 (ld:i64 addr:iPTR:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, GR64:i64:$src2, 0:i8, EFLAGS:i32) - Complexity = 30
                // Dst: (CMOVBE64rm:i64 GR64:i64:$src2, addr:iPTR:$src1)
/*48511*/     /*Scope*/ 32, /*->48544*/
/*48512*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*48514*/       OPC_MoveParent,
/*48515*/       OPC_RecordChild1, // #2 = $src2
/*48516*/       OPC_MoveChild, 2,
/*48518*/       OPC_CheckInteger, 7, 
/*48520*/       OPC_MoveParent,
/*48521*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*48522*/       OPC_CheckType, MVT::i16,
/*48524*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #4 #5 #6 #7 #8
/*48527*/       OPC_EmitMergeInputChains1_0,
/*48528*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*48531*/       OPC_MorphNodeTo, TARGET_VAL(X86::CMOVGE16rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i16, 6/*#Ops*/, 2, 4, 5, 6, 7, 8, 
                // Src: (X86cmov:i16 (ld:i16 addr:iPTR:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>, GR16:i16:$src2, 7:i8, EFLAGS:i32) - Complexity = 30
                // Dst: (CMOVGE16rm:i16 GR16:i16:$src2, addr:iPTR:$src1)
/*48544*/     /*Scope*/ 32, /*->48577*/
/*48545*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*48547*/       OPC_MoveParent,
/*48548*/       OPC_RecordChild1, // #2 = $src2
/*48549*/       OPC_MoveChild, 2,
/*48551*/       OPC_CheckInteger, 7, 
/*48553*/       OPC_MoveParent,
/*48554*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*48555*/       OPC_CheckType, MVT::i32,
/*48557*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #4 #5 #6 #7 #8
/*48560*/       OPC_EmitMergeInputChains1_0,
/*48561*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*48564*/       OPC_MorphNodeTo, TARGET_VAL(X86::CMOVGE32rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i32, 6/*#Ops*/, 2, 4, 5, 6, 7, 8, 
                // Src: (X86cmov:i32 (ld:i32 addr:iPTR:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>, GR32:i32:$src2, 7:i8, EFLAGS:i32) - Complexity = 30
                // Dst: (CMOVGE32rm:i32 GR32:i32:$src2, addr:iPTR:$src1)
/*48577*/     /*Scope*/ 32, /*->48610*/
/*48578*/       OPC_CheckPredicate, 3, // Predicate_load
/*48580*/       OPC_MoveParent,
/*48581*/       OPC_RecordChild1, // #2 = $src2
/*48582*/       OPC_MoveChild, 2,
/*48584*/       OPC_CheckInteger, 7, 
/*48586*/       OPC_MoveParent,
/*48587*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*48588*/       OPC_CheckType, MVT::i64,
/*48590*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #4 #5 #6 #7 #8
/*48593*/       OPC_EmitMergeInputChains1_0,
/*48594*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*48597*/       OPC_MorphNodeTo, TARGET_VAL(X86::CMOVGE64rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i64, 6/*#Ops*/, 2, 4, 5, 6, 7, 8, 
                // Src: (X86cmov:i64 (ld:i64 addr:iPTR:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, GR64:i64:$src2, 7:i8, EFLAGS:i32) - Complexity = 30
                // Dst: (CMOVGE64rm:i64 GR64:i64:$src2, addr:iPTR:$src1)
/*48610*/     /*Scope*/ 32, /*->48643*/
/*48611*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*48613*/       OPC_MoveParent,
/*48614*/       OPC_RecordChild1, // #2 = $src2
/*48615*/       OPC_MoveChild, 2,
/*48617*/       OPC_CheckInteger, 6, 
/*48619*/       OPC_MoveParent,
/*48620*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*48621*/       OPC_CheckType, MVT::i16,
/*48623*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #4 #5 #6 #7 #8
/*48626*/       OPC_EmitMergeInputChains1_0,
/*48627*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*48630*/       OPC_MorphNodeTo, TARGET_VAL(X86::CMOVL16rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i16, 6/*#Ops*/, 2, 4, 5, 6, 7, 8, 
                // Src: (X86cmov:i16 (ld:i16 addr:iPTR:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>, GR16:i16:$src2, 6:i8, EFLAGS:i32) - Complexity = 30
                // Dst: (CMOVL16rm:i16 GR16:i16:$src2, addr:iPTR:$src1)
/*48643*/     /*Scope*/ 32, /*->48676*/
/*48644*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*48646*/       OPC_MoveParent,
/*48647*/       OPC_RecordChild1, // #2 = $src2
/*48648*/       OPC_MoveChild, 2,
/*48650*/       OPC_CheckInteger, 6, 
/*48652*/       OPC_MoveParent,
/*48653*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*48654*/       OPC_CheckType, MVT::i32,
/*48656*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #4 #5 #6 #7 #8
/*48659*/       OPC_EmitMergeInputChains1_0,
/*48660*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*48663*/       OPC_MorphNodeTo, TARGET_VAL(X86::CMOVL32rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i32, 6/*#Ops*/, 2, 4, 5, 6, 7, 8, 
                // Src: (X86cmov:i32 (ld:i32 addr:iPTR:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>, GR32:i32:$src2, 6:i8, EFLAGS:i32) - Complexity = 30
                // Dst: (CMOVL32rm:i32 GR32:i32:$src2, addr:iPTR:$src1)
/*48676*/     /*Scope*/ 32, /*->48709*/
/*48677*/       OPC_CheckPredicate, 3, // Predicate_load
/*48679*/       OPC_MoveParent,
/*48680*/       OPC_RecordChild1, // #2 = $src2
/*48681*/       OPC_MoveChild, 2,
/*48683*/       OPC_CheckInteger, 6, 
/*48685*/       OPC_MoveParent,
/*48686*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*48687*/       OPC_CheckType, MVT::i64,
/*48689*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #4 #5 #6 #7 #8
/*48692*/       OPC_EmitMergeInputChains1_0,
/*48693*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*48696*/       OPC_MorphNodeTo, TARGET_VAL(X86::CMOVL64rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i64, 6/*#Ops*/, 2, 4, 5, 6, 7, 8, 
                // Src: (X86cmov:i64 (ld:i64 addr:iPTR:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, GR64:i64:$src2, 6:i8, EFLAGS:i32) - Complexity = 30
                // Dst: (CMOVL64rm:i64 GR64:i64:$src2, addr:iPTR:$src1)
/*48709*/     /*Scope*/ 32, /*->48742*/
/*48710*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*48712*/       OPC_MoveParent,
/*48713*/       OPC_RecordChild1, // #2 = $src2
/*48714*/       OPC_MoveChild, 2,
/*48716*/       OPC_CheckInteger, 8, 
/*48718*/       OPC_MoveParent,
/*48719*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*48720*/       OPC_CheckType, MVT::i16,
/*48722*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #4 #5 #6 #7 #8
/*48725*/       OPC_EmitMergeInputChains1_0,
/*48726*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*48729*/       OPC_MorphNodeTo, TARGET_VAL(X86::CMOVG16rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i16, 6/*#Ops*/, 2, 4, 5, 6, 7, 8, 
                // Src: (X86cmov:i16 (ld:i16 addr:iPTR:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>, GR16:i16:$src2, 8:i8, EFLAGS:i32) - Complexity = 30
                // Dst: (CMOVG16rm:i16 GR16:i16:$src2, addr:iPTR:$src1)
/*48742*/     /*Scope*/ 32, /*->48775*/
/*48743*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*48745*/       OPC_MoveParent,
/*48746*/       OPC_RecordChild1, // #2 = $src2
/*48747*/       OPC_MoveChild, 2,
/*48749*/       OPC_CheckInteger, 8, 
/*48751*/       OPC_MoveParent,
/*48752*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*48753*/       OPC_CheckType, MVT::i32,
/*48755*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #4 #5 #6 #7 #8
/*48758*/       OPC_EmitMergeInputChains1_0,
/*48759*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*48762*/       OPC_MorphNodeTo, TARGET_VAL(X86::CMOVG32rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i32, 6/*#Ops*/, 2, 4, 5, 6, 7, 8, 
                // Src: (X86cmov:i32 (ld:i32 addr:iPTR:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>, GR32:i32:$src2, 8:i8, EFLAGS:i32) - Complexity = 30
                // Dst: (CMOVG32rm:i32 GR32:i32:$src2, addr:iPTR:$src1)
/*48775*/     /*Scope*/ 32, /*->48808*/
/*48776*/       OPC_CheckPredicate, 3, // Predicate_load
/*48778*/       OPC_MoveParent,
/*48779*/       OPC_RecordChild1, // #2 = $src2
/*48780*/       OPC_MoveChild, 2,
/*48782*/       OPC_CheckInteger, 8, 
/*48784*/       OPC_MoveParent,
/*48785*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*48786*/       OPC_CheckType, MVT::i64,
/*48788*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #4 #5 #6 #7 #8
/*48791*/       OPC_EmitMergeInputChains1_0,
/*48792*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*48795*/       OPC_MorphNodeTo, TARGET_VAL(X86::CMOVG64rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i64, 6/*#Ops*/, 2, 4, 5, 6, 7, 8, 
                // Src: (X86cmov:i64 (ld:i64 addr:iPTR:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, GR64:i64:$src2, 8:i8, EFLAGS:i32) - Complexity = 30
                // Dst: (CMOVG64rm:i64 GR64:i64:$src2, addr:iPTR:$src1)
/*48808*/     /*Scope*/ 32, /*->48841*/
/*48809*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*48811*/       OPC_MoveParent,
/*48812*/       OPC_RecordChild1, // #2 = $src2
/*48813*/       OPC_MoveChild, 2,
/*48815*/       OPC_CheckInteger, 5, 
/*48817*/       OPC_MoveParent,
/*48818*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*48819*/       OPC_CheckType, MVT::i16,
/*48821*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #4 #5 #6 #7 #8
/*48824*/       OPC_EmitMergeInputChains1_0,
/*48825*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*48828*/       OPC_MorphNodeTo, TARGET_VAL(X86::CMOVLE16rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i16, 6/*#Ops*/, 2, 4, 5, 6, 7, 8, 
                // Src: (X86cmov:i16 (ld:i16 addr:iPTR:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>, GR16:i16:$src2, 5:i8, EFLAGS:i32) - Complexity = 30
                // Dst: (CMOVLE16rm:i16 GR16:i16:$src2, addr:iPTR:$src1)
/*48841*/     /*Scope*/ 32, /*->48874*/
/*48842*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*48844*/       OPC_MoveParent,
/*48845*/       OPC_RecordChild1, // #2 = $src2
/*48846*/       OPC_MoveChild, 2,
/*48848*/       OPC_CheckInteger, 5, 
/*48850*/       OPC_MoveParent,
/*48851*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*48852*/       OPC_CheckType, MVT::i32,
/*48854*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #4 #5 #6 #7 #8
/*48857*/       OPC_EmitMergeInputChains1_0,
/*48858*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*48861*/       OPC_MorphNodeTo, TARGET_VAL(X86::CMOVLE32rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i32, 6/*#Ops*/, 2, 4, 5, 6, 7, 8, 
                // Src: (X86cmov:i32 (ld:i32 addr:iPTR:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>, GR32:i32:$src2, 5:i8, EFLAGS:i32) - Complexity = 30
                // Dst: (CMOVLE32rm:i32 GR32:i32:$src2, addr:iPTR:$src1)
/*48874*/     /*Scope*/ 32, /*->48907*/
/*48875*/       OPC_CheckPredicate, 3, // Predicate_load
/*48877*/       OPC_MoveParent,
/*48878*/       OPC_RecordChild1, // #2 = $src2
/*48879*/       OPC_MoveChild, 2,
/*48881*/       OPC_CheckInteger, 5, 
/*48883*/       OPC_MoveParent,
/*48884*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*48885*/       OPC_CheckType, MVT::i64,
/*48887*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #4 #5 #6 #7 #8
/*48890*/       OPC_EmitMergeInputChains1_0,
/*48891*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*48894*/       OPC_MorphNodeTo, TARGET_VAL(X86::CMOVLE64rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i64, 6/*#Ops*/, 2, 4, 5, 6, 7, 8, 
                // Src: (X86cmov:i64 (ld:i64 addr:iPTR:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, GR64:i64:$src2, 5:i8, EFLAGS:i32) - Complexity = 30
                // Dst: (CMOVLE64rm:i64 GR64:i64:$src2, addr:iPTR:$src1)
/*48907*/     /*Scope*/ 32, /*->48940*/
/*48908*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*48910*/       OPC_MoveParent,
/*48911*/       OPC_RecordChild1, // #2 = $src2
/*48912*/       OPC_MoveChild, 2,
/*48914*/       OPC_CheckInteger, 14, 
/*48916*/       OPC_MoveParent,
/*48917*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*48918*/       OPC_CheckType, MVT::i16,
/*48920*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #4 #5 #6 #7 #8
/*48923*/       OPC_EmitMergeInputChains1_0,
/*48924*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*48927*/       OPC_MorphNodeTo, TARGET_VAL(X86::CMOVNP16rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i16, 6/*#Ops*/, 2, 4, 5, 6, 7, 8, 
                // Src: (X86cmov:i16 (ld:i16 addr:iPTR:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>, GR16:i16:$src2, 14:i8, EFLAGS:i32) - Complexity = 30
                // Dst: (CMOVNP16rm:i16 GR16:i16:$src2, addr:iPTR:$src1)
/*48940*/     /*Scope*/ 32, /*->48973*/
/*48941*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*48943*/       OPC_MoveParent,
/*48944*/       OPC_RecordChild1, // #2 = $src2
/*48945*/       OPC_MoveChild, 2,
/*48947*/       OPC_CheckInteger, 14, 
/*48949*/       OPC_MoveParent,
/*48950*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*48951*/       OPC_CheckType, MVT::i32,
/*48953*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #4 #5 #6 #7 #8
/*48956*/       OPC_EmitMergeInputChains1_0,
/*48957*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*48960*/       OPC_MorphNodeTo, TARGET_VAL(X86::CMOVNP32rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i32, 6/*#Ops*/, 2, 4, 5, 6, 7, 8, 
                // Src: (X86cmov:i32 (ld:i32 addr:iPTR:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>, GR32:i32:$src2, 14:i8, EFLAGS:i32) - Complexity = 30
                // Dst: (CMOVNP32rm:i32 GR32:i32:$src2, addr:iPTR:$src1)
/*48973*/     /*Scope*/ 32, /*->49006*/
/*48974*/       OPC_CheckPredicate, 3, // Predicate_load
/*48976*/       OPC_MoveParent,
/*48977*/       OPC_RecordChild1, // #2 = $src2
/*48978*/       OPC_MoveChild, 2,
/*48980*/       OPC_CheckInteger, 14, 
/*48982*/       OPC_MoveParent,
/*48983*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*48984*/       OPC_CheckType, MVT::i64,
/*48986*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #4 #5 #6 #7 #8
/*48989*/       OPC_EmitMergeInputChains1_0,
/*48990*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*48993*/       OPC_MorphNodeTo, TARGET_VAL(X86::CMOVNP64rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i64, 6/*#Ops*/, 2, 4, 5, 6, 7, 8, 
                // Src: (X86cmov:i64 (ld:i64 addr:iPTR:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, GR64:i64:$src2, 14:i8, EFLAGS:i32) - Complexity = 30
                // Dst: (CMOVNP64rm:i64 GR64:i64:$src2, addr:iPTR:$src1)
/*49006*/     /*Scope*/ 32, /*->49039*/
/*49007*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*49009*/       OPC_MoveParent,
/*49010*/       OPC_RecordChild1, // #2 = $src2
/*49011*/       OPC_MoveChild, 2,
/*49013*/       OPC_CheckInteger, 11, 
/*49015*/       OPC_MoveParent,
/*49016*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*49017*/       OPC_CheckType, MVT::i16,
/*49019*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #4 #5 #6 #7 #8
/*49022*/       OPC_EmitMergeInputChains1_0,
/*49023*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*49026*/       OPC_MorphNodeTo, TARGET_VAL(X86::CMOVP16rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i16, 6/*#Ops*/, 2, 4, 5, 6, 7, 8, 
                // Src: (X86cmov:i16 (ld:i16 addr:iPTR:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>, GR16:i16:$src2, 11:i8, EFLAGS:i32) - Complexity = 30
                // Dst: (CMOVP16rm:i16 GR16:i16:$src2, addr:iPTR:$src1)
/*49039*/     /*Scope*/ 32, /*->49072*/
/*49040*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*49042*/       OPC_MoveParent,
/*49043*/       OPC_RecordChild1, // #2 = $src2
/*49044*/       OPC_MoveChild, 2,
/*49046*/       OPC_CheckInteger, 11, 
/*49048*/       OPC_MoveParent,
/*49049*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*49050*/       OPC_CheckType, MVT::i32,
/*49052*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #4 #5 #6 #7 #8
/*49055*/       OPC_EmitMergeInputChains1_0,
/*49056*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*49059*/       OPC_MorphNodeTo, TARGET_VAL(X86::CMOVP32rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i32, 6/*#Ops*/, 2, 4, 5, 6, 7, 8, 
                // Src: (X86cmov:i32 (ld:i32 addr:iPTR:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>, GR32:i32:$src2, 11:i8, EFLAGS:i32) - Complexity = 30
                // Dst: (CMOVP32rm:i32 GR32:i32:$src2, addr:iPTR:$src1)
/*49072*/     /*Scope*/ 32, /*->49105*/
/*49073*/       OPC_CheckPredicate, 3, // Predicate_load
/*49075*/       OPC_MoveParent,
/*49076*/       OPC_RecordChild1, // #2 = $src2
/*49077*/       OPC_MoveChild, 2,
/*49079*/       OPC_CheckInteger, 11, 
/*49081*/       OPC_MoveParent,
/*49082*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*49083*/       OPC_CheckType, MVT::i64,
/*49085*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #4 #5 #6 #7 #8
/*49088*/       OPC_EmitMergeInputChains1_0,
/*49089*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*49092*/       OPC_MorphNodeTo, TARGET_VAL(X86::CMOVP64rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i64, 6/*#Ops*/, 2, 4, 5, 6, 7, 8, 
                // Src: (X86cmov:i64 (ld:i64 addr:iPTR:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, GR64:i64:$src2, 11:i8, EFLAGS:i32) - Complexity = 30
                // Dst: (CMOVP64rm:i64 GR64:i64:$src2, addr:iPTR:$src1)
/*49105*/     /*Scope*/ 32, /*->49138*/
/*49106*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*49108*/       OPC_MoveParent,
/*49109*/       OPC_RecordChild1, // #2 = $src2
/*49110*/       OPC_MoveChild, 2,
/*49112*/       OPC_CheckInteger, 15, 
/*49114*/       OPC_MoveParent,
/*49115*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*49116*/       OPC_CheckType, MVT::i16,
/*49118*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #4 #5 #6 #7 #8
/*49121*/       OPC_EmitMergeInputChains1_0,
/*49122*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*49125*/       OPC_MorphNodeTo, TARGET_VAL(X86::CMOVNS16rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i16, 6/*#Ops*/, 2, 4, 5, 6, 7, 8, 
                // Src: (X86cmov:i16 (ld:i16 addr:iPTR:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>, GR16:i16:$src2, 15:i8, EFLAGS:i32) - Complexity = 30
                // Dst: (CMOVNS16rm:i16 GR16:i16:$src2, addr:iPTR:$src1)
/*49138*/     /*Scope*/ 32, /*->49171*/
/*49139*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*49141*/       OPC_MoveParent,
/*49142*/       OPC_RecordChild1, // #2 = $src2
/*49143*/       OPC_MoveChild, 2,
/*49145*/       OPC_CheckInteger, 15, 
/*49147*/       OPC_MoveParent,
/*49148*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*49149*/       OPC_CheckType, MVT::i32,
/*49151*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #4 #5 #6 #7 #8
/*49154*/       OPC_EmitMergeInputChains1_0,
/*49155*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*49158*/       OPC_MorphNodeTo, TARGET_VAL(X86::CMOVNS32rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i32, 6/*#Ops*/, 2, 4, 5, 6, 7, 8, 
                // Src: (X86cmov:i32 (ld:i32 addr:iPTR:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>, GR32:i32:$src2, 15:i8, EFLAGS:i32) - Complexity = 30
                // Dst: (CMOVNS32rm:i32 GR32:i32:$src2, addr:iPTR:$src1)
/*49171*/     /*Scope*/ 32, /*->49204*/
/*49172*/       OPC_CheckPredicate, 3, // Predicate_load
/*49174*/       OPC_MoveParent,
/*49175*/       OPC_RecordChild1, // #2 = $src2
/*49176*/       OPC_MoveChild, 2,
/*49178*/       OPC_CheckInteger, 15, 
/*49180*/       OPC_MoveParent,
/*49181*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*49182*/       OPC_CheckType, MVT::i64,
/*49184*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #4 #5 #6 #7 #8
/*49187*/       OPC_EmitMergeInputChains1_0,
/*49188*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*49191*/       OPC_MorphNodeTo, TARGET_VAL(X86::CMOVNS64rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i64, 6/*#Ops*/, 2, 4, 5, 6, 7, 8, 
                // Src: (X86cmov:i64 (ld:i64 addr:iPTR:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, GR64:i64:$src2, 15:i8, EFLAGS:i32) - Complexity = 30
                // Dst: (CMOVNS64rm:i64 GR64:i64:$src2, addr:iPTR:$src1)
/*49204*/     /*Scope*/ 32, /*->49237*/
/*49205*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*49207*/       OPC_MoveParent,
/*49208*/       OPC_RecordChild1, // #2 = $src2
/*49209*/       OPC_MoveChild, 2,
/*49211*/       OPC_CheckInteger, 12, 
/*49213*/       OPC_MoveParent,
/*49214*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*49215*/       OPC_CheckType, MVT::i16,
/*49217*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #4 #5 #6 #7 #8
/*49220*/       OPC_EmitMergeInputChains1_0,
/*49221*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*49224*/       OPC_MorphNodeTo, TARGET_VAL(X86::CMOVS16rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i16, 6/*#Ops*/, 2, 4, 5, 6, 7, 8, 
                // Src: (X86cmov:i16 (ld:i16 addr:iPTR:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>, GR16:i16:$src2, 12:i8, EFLAGS:i32) - Complexity = 30
                // Dst: (CMOVS16rm:i16 GR16:i16:$src2, addr:iPTR:$src1)
/*49237*/     /*Scope*/ 32, /*->49270*/
/*49238*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*49240*/       OPC_MoveParent,
/*49241*/       OPC_RecordChild1, // #2 = $src2
/*49242*/       OPC_MoveChild, 2,
/*49244*/       OPC_CheckInteger, 12, 
/*49246*/       OPC_MoveParent,
/*49247*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*49248*/       OPC_CheckType, MVT::i32,
/*49250*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #4 #5 #6 #7 #8
/*49253*/       OPC_EmitMergeInputChains1_0,
/*49254*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*49257*/       OPC_MorphNodeTo, TARGET_VAL(X86::CMOVS32rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i32, 6/*#Ops*/, 2, 4, 5, 6, 7, 8, 
                // Src: (X86cmov:i32 (ld:i32 addr:iPTR:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>, GR32:i32:$src2, 12:i8, EFLAGS:i32) - Complexity = 30
                // Dst: (CMOVS32rm:i32 GR32:i32:$src2, addr:iPTR:$src1)
/*49270*/     /*Scope*/ 32, /*->49303*/
/*49271*/       OPC_CheckPredicate, 3, // Predicate_load
/*49273*/       OPC_MoveParent,
/*49274*/       OPC_RecordChild1, // #2 = $src2
/*49275*/       OPC_MoveChild, 2,
/*49277*/       OPC_CheckInteger, 12, 
/*49279*/       OPC_MoveParent,
/*49280*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*49281*/       OPC_CheckType, MVT::i64,
/*49283*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #4 #5 #6 #7 #8
/*49286*/       OPC_EmitMergeInputChains1_0,
/*49287*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*49290*/       OPC_MorphNodeTo, TARGET_VAL(X86::CMOVS64rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i64, 6/*#Ops*/, 2, 4, 5, 6, 7, 8, 
                // Src: (X86cmov:i64 (ld:i64 addr:iPTR:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, GR64:i64:$src2, 12:i8, EFLAGS:i32) - Complexity = 30
                // Dst: (CMOVS64rm:i64 GR64:i64:$src2, addr:iPTR:$src1)
/*49303*/     /*Scope*/ 32, /*->49336*/
/*49304*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*49306*/       OPC_MoveParent,
/*49307*/       OPC_RecordChild1, // #2 = $src2
/*49308*/       OPC_MoveChild, 2,
/*49310*/       OPC_CheckInteger, 13, 
/*49312*/       OPC_MoveParent,
/*49313*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*49314*/       OPC_CheckType, MVT::i16,
/*49316*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #4 #5 #6 #7 #8
/*49319*/       OPC_EmitMergeInputChains1_0,
/*49320*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*49323*/       OPC_MorphNodeTo, TARGET_VAL(X86::CMOVNO16rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i16, 6/*#Ops*/, 2, 4, 5, 6, 7, 8, 
                // Src: (X86cmov:i16 (ld:i16 addr:iPTR:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>, GR16:i16:$src2, 13:i8, EFLAGS:i32) - Complexity = 30
                // Dst: (CMOVNO16rm:i16 GR16:i16:$src2, addr:iPTR:$src1)
/*49336*/     /*Scope*/ 32, /*->49369*/
/*49337*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*49339*/       OPC_MoveParent,
/*49340*/       OPC_RecordChild1, // #2 = $src2
/*49341*/       OPC_MoveChild, 2,
/*49343*/       OPC_CheckInteger, 13, 
/*49345*/       OPC_MoveParent,
/*49346*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*49347*/       OPC_CheckType, MVT::i32,
/*49349*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #4 #5 #6 #7 #8
/*49352*/       OPC_EmitMergeInputChains1_0,
/*49353*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*49356*/       OPC_MorphNodeTo, TARGET_VAL(X86::CMOVNO32rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i32, 6/*#Ops*/, 2, 4, 5, 6, 7, 8, 
                // Src: (X86cmov:i32 (ld:i32 addr:iPTR:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>, GR32:i32:$src2, 13:i8, EFLAGS:i32) - Complexity = 30
                // Dst: (CMOVNO32rm:i32 GR32:i32:$src2, addr:iPTR:$src1)
/*49369*/     /*Scope*/ 32, /*->49402*/
/*49370*/       OPC_CheckPredicate, 3, // Predicate_load
/*49372*/       OPC_MoveParent,
/*49373*/       OPC_RecordChild1, // #2 = $src2
/*49374*/       OPC_MoveChild, 2,
/*49376*/       OPC_CheckInteger, 13, 
/*49378*/       OPC_MoveParent,
/*49379*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*49380*/       OPC_CheckType, MVT::i64,
/*49382*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #4 #5 #6 #7 #8
/*49385*/       OPC_EmitMergeInputChains1_0,
/*49386*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*49389*/       OPC_MorphNodeTo, TARGET_VAL(X86::CMOVNO64rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i64, 6/*#Ops*/, 2, 4, 5, 6, 7, 8, 
                // Src: (X86cmov:i64 (ld:i64 addr:iPTR:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, GR64:i64:$src2, 13:i8, EFLAGS:i32) - Complexity = 30
                // Dst: (CMOVNO64rm:i64 GR64:i64:$src2, addr:iPTR:$src1)
/*49402*/     /*Scope*/ 32, /*->49435*/
/*49403*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*49405*/       OPC_MoveParent,
/*49406*/       OPC_RecordChild1, // #2 = $src2
/*49407*/       OPC_MoveChild, 2,
/*49409*/       OPC_CheckInteger, 10, 
/*49411*/       OPC_MoveParent,
/*49412*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*49413*/       OPC_CheckType, MVT::i16,
/*49415*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #4 #5 #6 #7 #8
/*49418*/       OPC_EmitMergeInputChains1_0,
/*49419*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*49422*/       OPC_MorphNodeTo, TARGET_VAL(X86::CMOVO16rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i16, 6/*#Ops*/, 2, 4, 5, 6, 7, 8, 
                // Src: (X86cmov:i16 (ld:i16 addr:iPTR:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>, GR16:i16:$src2, 10:i8, EFLAGS:i32) - Complexity = 30
                // Dst: (CMOVO16rm:i16 GR16:i16:$src2, addr:iPTR:$src1)
/*49435*/     /*Scope*/ 32, /*->49468*/
/*49436*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*49438*/       OPC_MoveParent,
/*49439*/       OPC_RecordChild1, // #2 = $src2
/*49440*/       OPC_MoveChild, 2,
/*49442*/       OPC_CheckInteger, 10, 
/*49444*/       OPC_MoveParent,
/*49445*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*49446*/       OPC_CheckType, MVT::i32,
/*49448*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #4 #5 #6 #7 #8
/*49451*/       OPC_EmitMergeInputChains1_0,
/*49452*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*49455*/       OPC_MorphNodeTo, TARGET_VAL(X86::CMOVO32rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i32, 6/*#Ops*/, 2, 4, 5, 6, 7, 8, 
                // Src: (X86cmov:i32 (ld:i32 addr:iPTR:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>, GR32:i32:$src2, 10:i8, EFLAGS:i32) - Complexity = 30
                // Dst: (CMOVO32rm:i32 GR32:i32:$src2, addr:iPTR:$src1)
/*49468*/     /*Scope*/ 32, /*->49501*/
/*49469*/       OPC_CheckPredicate, 3, // Predicate_load
/*49471*/       OPC_MoveParent,
/*49472*/       OPC_RecordChild1, // #2 = $src2
/*49473*/       OPC_MoveChild, 2,
/*49475*/       OPC_CheckInteger, 10, 
/*49477*/       OPC_MoveParent,
/*49478*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*49479*/       OPC_CheckType, MVT::i64,
/*49481*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #4 #5 #6 #7 #8
/*49484*/       OPC_EmitMergeInputChains1_0,
/*49485*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*49488*/       OPC_MorphNodeTo, TARGET_VAL(X86::CMOVO64rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i64, 6/*#Ops*/, 2, 4, 5, 6, 7, 8, 
                // Src: (X86cmov:i64 (ld:i64 addr:iPTR:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, GR64:i64:$src2, 10:i8, EFLAGS:i32) - Complexity = 30
                // Dst: (CMOVO64rm:i64 GR64:i64:$src2, addr:iPTR:$src1)
/*49501*/     0, /*End of Scope*/
/*49502*/   /*Scope*/ 75|128,12/*1611*/, /*->51115*/
/*49504*/     OPC_RecordChild0, // #0 = $src1
/*49505*/     OPC_RecordChild1, // #1 = $src2
/*49506*/     OPC_Scope, 116|128,6/*884*/, /*->50393*/ // 4 children in Scope
/*49509*/       OPC_MoveChild, 2,
/*49511*/       OPC_Scope, 54, /*->49567*/ // 16 children in Scope
/*49513*/         OPC_CheckInteger, 13, 
/*49515*/         OPC_MoveParent,
/*49516*/         OPC_RecordChild3, // #2 = physreg input EFLAGS
/*49517*/         OPC_SwitchType /*3 cases */, 14,  MVT::i16,// ->49534
/*49520*/           OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*49522*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*49525*/           OPC_MorphNodeTo, TARGET_VAL(X86::CMOVO16rr), 0|OPFL_GlueInput,
                        1/*#VTs*/, MVT::i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86cmov:i16 GR16:i16:$src1, GR16:i16:$src2, 13:i8, EFLAGS:i32) - Complexity = 8
                    // Dst: (CMOVO16rr:i16 GR16:i16:$src1, GR16:i16:$src2)
                  /*SwitchType*/ 14,  MVT::i32,// ->49550
/*49536*/           OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*49538*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*49541*/           OPC_MorphNodeTo, TARGET_VAL(X86::CMOVO32rr), 0|OPFL_GlueInput,
                        1/*#VTs*/, MVT::i32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86cmov:i32 GR32:i32:$src1, GR32:i32:$src2, 13:i8, EFLAGS:i32) - Complexity = 8
                    // Dst: (CMOVO32rr:i32 GR32:i32:$src1, GR32:i32:$src2)
                  /*SwitchType*/ 14,  MVT::i64,// ->49566
/*49552*/           OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*49554*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*49557*/           OPC_MorphNodeTo, TARGET_VAL(X86::CMOVO64rr), 0|OPFL_GlueInput,
                        1/*#VTs*/, MVT::i64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86cmov:i64 GR64:i64:$src1, GR64:i64:$src2, 13:i8, EFLAGS:i32) - Complexity = 8
                    // Dst: (CMOVO64rr:i64 GR64:i64:$src1, GR64:i64:$src2)
                  0, // EndSwitchType
/*49567*/       /*Scope*/ 54, /*->49622*/
/*49568*/         OPC_CheckInteger, 10, 
/*49570*/         OPC_MoveParent,
/*49571*/         OPC_RecordChild3, // #2 = physreg input EFLAGS
/*49572*/         OPC_SwitchType /*3 cases */, 14,  MVT::i16,// ->49589
/*49575*/           OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*49577*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*49580*/           OPC_MorphNodeTo, TARGET_VAL(X86::CMOVNO16rr), 0|OPFL_GlueInput,
                        1/*#VTs*/, MVT::i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86cmov:i16 GR16:i16:$src1, GR16:i16:$src2, 10:i8, EFLAGS:i32) - Complexity = 8
                    // Dst: (CMOVNO16rr:i16 GR16:i16:$src1, GR16:i16:$src2)
                  /*SwitchType*/ 14,  MVT::i32,// ->49605
/*49591*/           OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*49593*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*49596*/           OPC_MorphNodeTo, TARGET_VAL(X86::CMOVNO32rr), 0|OPFL_GlueInput,
                        1/*#VTs*/, MVT::i32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86cmov:i32 GR32:i32:$src1, GR32:i32:$src2, 10:i8, EFLAGS:i32) - Complexity = 8
                    // Dst: (CMOVNO32rr:i32 GR32:i32:$src1, GR32:i32:$src2)
                  /*SwitchType*/ 14,  MVT::i64,// ->49621
/*49607*/           OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*49609*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*49612*/           OPC_MorphNodeTo, TARGET_VAL(X86::CMOVNO64rr), 0|OPFL_GlueInput,
                        1/*#VTs*/, MVT::i64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86cmov:i64 GR64:i64:$src1, GR64:i64:$src2, 10:i8, EFLAGS:i32) - Complexity = 8
                    // Dst: (CMOVNO64rr:i64 GR64:i64:$src1, GR64:i64:$src2)
                  0, // EndSwitchType
/*49622*/       /*Scope*/ 54, /*->49677*/
/*49623*/         OPC_CheckInteger, 2, 
/*49625*/         OPC_MoveParent,
/*49626*/         OPC_RecordChild3, // #2 = physreg input EFLAGS
/*49627*/         OPC_SwitchType /*3 cases */, 14,  MVT::i16,// ->49644
/*49630*/           OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*49632*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*49635*/           OPC_MorphNodeTo, TARGET_VAL(X86::CMOVB16rr), 0|OPFL_GlueInput,
                        1/*#VTs*/, MVT::i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86cmov:i16 GR16:i16:$src1, GR16:i16:$src2, 2:i8, EFLAGS:i32) - Complexity = 8
                    // Dst: (CMOVB16rr:i16 GR16:i16:$src1, GR16:i16:$src2)
                  /*SwitchType*/ 14,  MVT::i32,// ->49660
/*49646*/           OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*49648*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*49651*/           OPC_MorphNodeTo, TARGET_VAL(X86::CMOVB32rr), 0|OPFL_GlueInput,
                        1/*#VTs*/, MVT::i32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86cmov:i32 GR32:i32:$src1, GR32:i32:$src2, 2:i8, EFLAGS:i32) - Complexity = 8
                    // Dst: (CMOVB32rr:i32 GR32:i32:$src1, GR32:i32:$src2)
                  /*SwitchType*/ 14,  MVT::i64,// ->49676
/*49662*/           OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*49664*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*49667*/           OPC_MorphNodeTo, TARGET_VAL(X86::CMOVB64rr), 0|OPFL_GlueInput,
                        1/*#VTs*/, MVT::i64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86cmov:i64 GR64:i64:$src1, GR64:i64:$src2, 2:i8, EFLAGS:i32) - Complexity = 8
                    // Dst: (CMOVB64rr:i64 GR64:i64:$src1, GR64:i64:$src2)
                  0, // EndSwitchType
/*49677*/       /*Scope*/ 54, /*->49732*/
/*49678*/         OPC_CheckInteger, 1, 
/*49680*/         OPC_MoveParent,
/*49681*/         OPC_RecordChild3, // #2 = physreg input EFLAGS
/*49682*/         OPC_SwitchType /*3 cases */, 14,  MVT::i16,// ->49699
/*49685*/           OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*49687*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*49690*/           OPC_MorphNodeTo, TARGET_VAL(X86::CMOVAE16rr), 0|OPFL_GlueInput,
                        1/*#VTs*/, MVT::i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86cmov:i16 GR16:i16:$src1, GR16:i16:$src2, 1:i8, EFLAGS:i32) - Complexity = 8
                    // Dst: (CMOVAE16rr:i16 GR16:i16:$src1, GR16:i16:$src2)
                  /*SwitchType*/ 14,  MVT::i32,// ->49715
/*49701*/           OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*49703*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*49706*/           OPC_MorphNodeTo, TARGET_VAL(X86::CMOVAE32rr), 0|OPFL_GlueInput,
                        1/*#VTs*/, MVT::i32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86cmov:i32 GR32:i32:$src1, GR32:i32:$src2, 1:i8, EFLAGS:i32) - Complexity = 8
                    // Dst: (CMOVAE32rr:i32 GR32:i32:$src1, GR32:i32:$src2)
                  /*SwitchType*/ 14,  MVT::i64,// ->49731
/*49717*/           OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*49719*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*49722*/           OPC_MorphNodeTo, TARGET_VAL(X86::CMOVAE64rr), 0|OPFL_GlueInput,
                        1/*#VTs*/, MVT::i64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86cmov:i64 GR64:i64:$src1, GR64:i64:$src2, 1:i8, EFLAGS:i32) - Complexity = 8
                    // Dst: (CMOVAE64rr:i64 GR64:i64:$src1, GR64:i64:$src2)
                  0, // EndSwitchType
/*49732*/       /*Scope*/ 54, /*->49787*/
/*49733*/         OPC_CheckInteger, 4, 
/*49735*/         OPC_MoveParent,
/*49736*/         OPC_RecordChild3, // #2 = physreg input EFLAGS
/*49737*/         OPC_SwitchType /*3 cases */, 14,  MVT::i16,// ->49754
/*49740*/           OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*49742*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*49745*/           OPC_MorphNodeTo, TARGET_VAL(X86::CMOVE16rr), 0|OPFL_GlueInput,
                        1/*#VTs*/, MVT::i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86cmov:i16 GR16:i16:$src1, GR16:i16:$src2, 4:i8, EFLAGS:i32) - Complexity = 8
                    // Dst: (CMOVE16rr:i16 GR16:i16:$src1, GR16:i16:$src2)
                  /*SwitchType*/ 14,  MVT::i32,// ->49770
/*49756*/           OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*49758*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*49761*/           OPC_MorphNodeTo, TARGET_VAL(X86::CMOVE32rr), 0|OPFL_GlueInput,
                        1/*#VTs*/, MVT::i32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86cmov:i32 GR32:i32:$src1, GR32:i32:$src2, 4:i8, EFLAGS:i32) - Complexity = 8
                    // Dst: (CMOVE32rr:i32 GR32:i32:$src1, GR32:i32:$src2)
                  /*SwitchType*/ 14,  MVT::i64,// ->49786
/*49772*/           OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*49774*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*49777*/           OPC_MorphNodeTo, TARGET_VAL(X86::CMOVE64rr), 0|OPFL_GlueInput,
                        1/*#VTs*/, MVT::i64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86cmov:i64 GR64:i64:$src1, GR64:i64:$src2, 4:i8, EFLAGS:i32) - Complexity = 8
                    // Dst: (CMOVE64rr:i64 GR64:i64:$src1, GR64:i64:$src2)
                  0, // EndSwitchType
/*49787*/       /*Scope*/ 54, /*->49842*/
/*49788*/         OPC_CheckInteger, 9, 
/*49790*/         OPC_MoveParent,
/*49791*/         OPC_RecordChild3, // #2 = physreg input EFLAGS
/*49792*/         OPC_SwitchType /*3 cases */, 14,  MVT::i16,// ->49809
/*49795*/           OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*49797*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*49800*/           OPC_MorphNodeTo, TARGET_VAL(X86::CMOVNE16rr), 0|OPFL_GlueInput,
                        1/*#VTs*/, MVT::i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86cmov:i16 GR16:i16:$src1, GR16:i16:$src2, 9:i8, EFLAGS:i32) - Complexity = 8
                    // Dst: (CMOVNE16rr:i16 GR16:i16:$src1, GR16:i16:$src2)
                  /*SwitchType*/ 14,  MVT::i32,// ->49825
/*49811*/           OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*49813*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*49816*/           OPC_MorphNodeTo, TARGET_VAL(X86::CMOVNE32rr), 0|OPFL_GlueInput,
                        1/*#VTs*/, MVT::i32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86cmov:i32 GR32:i32:$src1, GR32:i32:$src2, 9:i8, EFLAGS:i32) - Complexity = 8
                    // Dst: (CMOVNE32rr:i32 GR32:i32:$src1, GR32:i32:$src2)
                  /*SwitchType*/ 14,  MVT::i64,// ->49841
/*49827*/           OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*49829*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*49832*/           OPC_MorphNodeTo, TARGET_VAL(X86::CMOVNE64rr), 0|OPFL_GlueInput,
                        1/*#VTs*/, MVT::i64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86cmov:i64 GR64:i64:$src1, GR64:i64:$src2, 9:i8, EFLAGS:i32) - Complexity = 8
                    // Dst: (CMOVNE64rr:i64 GR64:i64:$src1, GR64:i64:$src2)
                  0, // EndSwitchType
/*49842*/       /*Scope*/ 54, /*->49897*/
/*49843*/         OPC_CheckInteger, 3, 
/*49845*/         OPC_MoveParent,
/*49846*/         OPC_RecordChild3, // #2 = physreg input EFLAGS
/*49847*/         OPC_SwitchType /*3 cases */, 14,  MVT::i16,// ->49864
/*49850*/           OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*49852*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*49855*/           OPC_MorphNodeTo, TARGET_VAL(X86::CMOVBE16rr), 0|OPFL_GlueInput,
                        1/*#VTs*/, MVT::i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86cmov:i16 GR16:i16:$src1, GR16:i16:$src2, 3:i8, EFLAGS:i32) - Complexity = 8
                    // Dst: (CMOVBE16rr:i16 GR16:i16:$src1, GR16:i16:$src2)
                  /*SwitchType*/ 14,  MVT::i32,// ->49880
/*49866*/           OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*49868*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*49871*/           OPC_MorphNodeTo, TARGET_VAL(X86::CMOVBE32rr), 0|OPFL_GlueInput,
                        1/*#VTs*/, MVT::i32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86cmov:i32 GR32:i32:$src1, GR32:i32:$src2, 3:i8, EFLAGS:i32) - Complexity = 8
                    // Dst: (CMOVBE32rr:i32 GR32:i32:$src1, GR32:i32:$src2)
                  /*SwitchType*/ 14,  MVT::i64,// ->49896
/*49882*/           OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*49884*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*49887*/           OPC_MorphNodeTo, TARGET_VAL(X86::CMOVBE64rr), 0|OPFL_GlueInput,
                        1/*#VTs*/, MVT::i64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86cmov:i64 GR64:i64:$src1, GR64:i64:$src2, 3:i8, EFLAGS:i32) - Complexity = 8
                    // Dst: (CMOVBE64rr:i64 GR64:i64:$src1, GR64:i64:$src2)
                  0, // EndSwitchType
/*49897*/       /*Scope*/ 54, /*->49952*/
/*49898*/         OPC_CheckInteger, 0, 
/*49900*/         OPC_MoveParent,
/*49901*/         OPC_RecordChild3, // #2 = physreg input EFLAGS
/*49902*/         OPC_SwitchType /*3 cases */, 14,  MVT::i16,// ->49919
/*49905*/           OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*49907*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*49910*/           OPC_MorphNodeTo, TARGET_VAL(X86::CMOVA16rr), 0|OPFL_GlueInput,
                        1/*#VTs*/, MVT::i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86cmov:i16 GR16:i16:$src1, GR16:i16:$src2, 0:i8, EFLAGS:i32) - Complexity = 8
                    // Dst: (CMOVA16rr:i16 GR16:i16:$src1, GR16:i16:$src2)
                  /*SwitchType*/ 14,  MVT::i32,// ->49935
/*49921*/           OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*49923*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*49926*/           OPC_MorphNodeTo, TARGET_VAL(X86::CMOVA32rr), 0|OPFL_GlueInput,
                        1/*#VTs*/, MVT::i32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86cmov:i32 GR32:i32:$src1, GR32:i32:$src2, 0:i8, EFLAGS:i32) - Complexity = 8
                    // Dst: (CMOVA32rr:i32 GR32:i32:$src1, GR32:i32:$src2)
                  /*SwitchType*/ 14,  MVT::i64,// ->49951
/*49937*/           OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*49939*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*49942*/           OPC_MorphNodeTo, TARGET_VAL(X86::CMOVA64rr), 0|OPFL_GlueInput,
                        1/*#VTs*/, MVT::i64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86cmov:i64 GR64:i64:$src1, GR64:i64:$src2, 0:i8, EFLAGS:i32) - Complexity = 8
                    // Dst: (CMOVA64rr:i64 GR64:i64:$src1, GR64:i64:$src2)
                  0, // EndSwitchType
/*49952*/       /*Scope*/ 54, /*->50007*/
/*49953*/         OPC_CheckInteger, 15, 
/*49955*/         OPC_MoveParent,
/*49956*/         OPC_RecordChild3, // #2 = physreg input EFLAGS
/*49957*/         OPC_SwitchType /*3 cases */, 14,  MVT::i16,// ->49974
/*49960*/           OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*49962*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*49965*/           OPC_MorphNodeTo, TARGET_VAL(X86::CMOVS16rr), 0|OPFL_GlueInput,
                        1/*#VTs*/, MVT::i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86cmov:i16 GR16:i16:$src1, GR16:i16:$src2, 15:i8, EFLAGS:i32) - Complexity = 8
                    // Dst: (CMOVS16rr:i16 GR16:i16:$src1, GR16:i16:$src2)
                  /*SwitchType*/ 14,  MVT::i32,// ->49990
/*49976*/           OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*49978*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*49981*/           OPC_MorphNodeTo, TARGET_VAL(X86::CMOVS32rr), 0|OPFL_GlueInput,
                        1/*#VTs*/, MVT::i32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86cmov:i32 GR32:i32:$src1, GR32:i32:$src2, 15:i8, EFLAGS:i32) - Complexity = 8
                    // Dst: (CMOVS32rr:i32 GR32:i32:$src1, GR32:i32:$src2)
                  /*SwitchType*/ 14,  MVT::i64,// ->50006
/*49992*/           OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*49994*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*49997*/           OPC_MorphNodeTo, TARGET_VAL(X86::CMOVS64rr), 0|OPFL_GlueInput,
                        1/*#VTs*/, MVT::i64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86cmov:i64 GR64:i64:$src1, GR64:i64:$src2, 15:i8, EFLAGS:i32) - Complexity = 8
                    // Dst: (CMOVS64rr:i64 GR64:i64:$src1, GR64:i64:$src2)
                  0, // EndSwitchType
/*50007*/       /*Scope*/ 54, /*->50062*/
/*50008*/         OPC_CheckInteger, 12, 
/*50010*/         OPC_MoveParent,
/*50011*/         OPC_RecordChild3, // #2 = physreg input EFLAGS
/*50012*/         OPC_SwitchType /*3 cases */, 14,  MVT::i16,// ->50029
/*50015*/           OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*50017*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*50020*/           OPC_MorphNodeTo, TARGET_VAL(X86::CMOVNS16rr), 0|OPFL_GlueInput,
                        1/*#VTs*/, MVT::i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86cmov:i16 GR16:i16:$src1, GR16:i16:$src2, 12:i8, EFLAGS:i32) - Complexity = 8
                    // Dst: (CMOVNS16rr:i16 GR16:i16:$src1, GR16:i16:$src2)
                  /*SwitchType*/ 14,  MVT::i32,// ->50045
/*50031*/           OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*50033*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*50036*/           OPC_MorphNodeTo, TARGET_VAL(X86::CMOVNS32rr), 0|OPFL_GlueInput,
                        1/*#VTs*/, MVT::i32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86cmov:i32 GR32:i32:$src1, GR32:i32:$src2, 12:i8, EFLAGS:i32) - Complexity = 8
                    // Dst: (CMOVNS32rr:i32 GR32:i32:$src1, GR32:i32:$src2)
                  /*SwitchType*/ 14,  MVT::i64,// ->50061
/*50047*/           OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*50049*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*50052*/           OPC_MorphNodeTo, TARGET_VAL(X86::CMOVNS64rr), 0|OPFL_GlueInput,
                        1/*#VTs*/, MVT::i64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86cmov:i64 GR64:i64:$src1, GR64:i64:$src2, 12:i8, EFLAGS:i32) - Complexity = 8
                    // Dst: (CMOVNS64rr:i64 GR64:i64:$src1, GR64:i64:$src2)
                  0, // EndSwitchType
/*50062*/       /*Scope*/ 54, /*->50117*/
/*50063*/         OPC_CheckInteger, 14, 
/*50065*/         OPC_MoveParent,
/*50066*/         OPC_RecordChild3, // #2 = physreg input EFLAGS
/*50067*/         OPC_SwitchType /*3 cases */, 14,  MVT::i16,// ->50084
/*50070*/           OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*50072*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*50075*/           OPC_MorphNodeTo, TARGET_VAL(X86::CMOVP16rr), 0|OPFL_GlueInput,
                        1/*#VTs*/, MVT::i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86cmov:i16 GR16:i16:$src1, GR16:i16:$src2, 14:i8, EFLAGS:i32) - Complexity = 8
                    // Dst: (CMOVP16rr:i16 GR16:i16:$src1, GR16:i16:$src2)
                  /*SwitchType*/ 14,  MVT::i32,// ->50100
/*50086*/           OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*50088*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*50091*/           OPC_MorphNodeTo, TARGET_VAL(X86::CMOVP32rr), 0|OPFL_GlueInput,
                        1/*#VTs*/, MVT::i32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86cmov:i32 GR32:i32:$src1, GR32:i32:$src2, 14:i8, EFLAGS:i32) - Complexity = 8
                    // Dst: (CMOVP32rr:i32 GR32:i32:$src1, GR32:i32:$src2)
                  /*SwitchType*/ 14,  MVT::i64,// ->50116
/*50102*/           OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*50104*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*50107*/           OPC_MorphNodeTo, TARGET_VAL(X86::CMOVP64rr), 0|OPFL_GlueInput,
                        1/*#VTs*/, MVT::i64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86cmov:i64 GR64:i64:$src1, GR64:i64:$src2, 14:i8, EFLAGS:i32) - Complexity = 8
                    // Dst: (CMOVP64rr:i64 GR64:i64:$src1, GR64:i64:$src2)
                  0, // EndSwitchType
/*50117*/       /*Scope*/ 54, /*->50172*/
/*50118*/         OPC_CheckInteger, 11, 
/*50120*/         OPC_MoveParent,
/*50121*/         OPC_RecordChild3, // #2 = physreg input EFLAGS
/*50122*/         OPC_SwitchType /*3 cases */, 14,  MVT::i16,// ->50139
/*50125*/           OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*50127*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*50130*/           OPC_MorphNodeTo, TARGET_VAL(X86::CMOVNP16rr), 0|OPFL_GlueInput,
                        1/*#VTs*/, MVT::i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86cmov:i16 GR16:i16:$src1, GR16:i16:$src2, 11:i8, EFLAGS:i32) - Complexity = 8
                    // Dst: (CMOVNP16rr:i16 GR16:i16:$src1, GR16:i16:$src2)
                  /*SwitchType*/ 14,  MVT::i32,// ->50155
/*50141*/           OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*50143*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*50146*/           OPC_MorphNodeTo, TARGET_VAL(X86::CMOVNP32rr), 0|OPFL_GlueInput,
                        1/*#VTs*/, MVT::i32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86cmov:i32 GR32:i32:$src1, GR32:i32:$src2, 11:i8, EFLAGS:i32) - Complexity = 8
                    // Dst: (CMOVNP32rr:i32 GR32:i32:$src1, GR32:i32:$src2)
                  /*SwitchType*/ 14,  MVT::i64,// ->50171
/*50157*/           OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*50159*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*50162*/           OPC_MorphNodeTo, TARGET_VAL(X86::CMOVNP64rr), 0|OPFL_GlueInput,
                        1/*#VTs*/, MVT::i64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86cmov:i64 GR64:i64:$src1, GR64:i64:$src2, 11:i8, EFLAGS:i32) - Complexity = 8
                    // Dst: (CMOVNP64rr:i64 GR64:i64:$src1, GR64:i64:$src2)
                  0, // EndSwitchType
/*50172*/       /*Scope*/ 54, /*->50227*/
/*50173*/         OPC_CheckInteger, 7, 
/*50175*/         OPC_MoveParent,
/*50176*/         OPC_RecordChild3, // #2 = physreg input EFLAGS
/*50177*/         OPC_SwitchType /*3 cases */, 14,  MVT::i16,// ->50194
/*50180*/           OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*50182*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*50185*/           OPC_MorphNodeTo, TARGET_VAL(X86::CMOVL16rr), 0|OPFL_GlueInput,
                        1/*#VTs*/, MVT::i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86cmov:i16 GR16:i16:$src1, GR16:i16:$src2, 7:i8, EFLAGS:i32) - Complexity = 8
                    // Dst: (CMOVL16rr:i16 GR16:i16:$src1, GR16:i16:$src2)
                  /*SwitchType*/ 14,  MVT::i32,// ->50210
/*50196*/           OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*50198*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*50201*/           OPC_MorphNodeTo, TARGET_VAL(X86::CMOVL32rr), 0|OPFL_GlueInput,
                        1/*#VTs*/, MVT::i32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86cmov:i32 GR32:i32:$src1, GR32:i32:$src2, 7:i8, EFLAGS:i32) - Complexity = 8
                    // Dst: (CMOVL32rr:i32 GR32:i32:$src1, GR32:i32:$src2)
                  /*SwitchType*/ 14,  MVT::i64,// ->50226
/*50212*/           OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*50214*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*50217*/           OPC_MorphNodeTo, TARGET_VAL(X86::CMOVL64rr), 0|OPFL_GlueInput,
                        1/*#VTs*/, MVT::i64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86cmov:i64 GR64:i64:$src1, GR64:i64:$src2, 7:i8, EFLAGS:i32) - Complexity = 8
                    // Dst: (CMOVL64rr:i64 GR64:i64:$src1, GR64:i64:$src2)
                  0, // EndSwitchType
/*50227*/       /*Scope*/ 54, /*->50282*/
/*50228*/         OPC_CheckInteger, 6, 
/*50230*/         OPC_MoveParent,
/*50231*/         OPC_RecordChild3, // #2 = physreg input EFLAGS
/*50232*/         OPC_SwitchType /*3 cases */, 14,  MVT::i16,// ->50249
/*50235*/           OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*50237*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*50240*/           OPC_MorphNodeTo, TARGET_VAL(X86::CMOVGE16rr), 0|OPFL_GlueInput,
                        1/*#VTs*/, MVT::i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86cmov:i16 GR16:i16:$src1, GR16:i16:$src2, 6:i8, EFLAGS:i32) - Complexity = 8
                    // Dst: (CMOVGE16rr:i16 GR16:i16:$src1, GR16:i16:$src2)
                  /*SwitchType*/ 14,  MVT::i32,// ->50265
/*50251*/           OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*50253*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*50256*/           OPC_MorphNodeTo, TARGET_VAL(X86::CMOVGE32rr), 0|OPFL_GlueInput,
                        1/*#VTs*/, MVT::i32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86cmov:i32 GR32:i32:$src1, GR32:i32:$src2, 6:i8, EFLAGS:i32) - Complexity = 8
                    // Dst: (CMOVGE32rr:i32 GR32:i32:$src1, GR32:i32:$src2)
                  /*SwitchType*/ 14,  MVT::i64,// ->50281
/*50267*/           OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*50269*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*50272*/           OPC_MorphNodeTo, TARGET_VAL(X86::CMOVGE64rr), 0|OPFL_GlueInput,
                        1/*#VTs*/, MVT::i64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86cmov:i64 GR64:i64:$src1, GR64:i64:$src2, 6:i8, EFLAGS:i32) - Complexity = 8
                    // Dst: (CMOVGE64rr:i64 GR64:i64:$src1, GR64:i64:$src2)
                  0, // EndSwitchType
/*50282*/       /*Scope*/ 54, /*->50337*/
/*50283*/         OPC_CheckInteger, 8, 
/*50285*/         OPC_MoveParent,
/*50286*/         OPC_RecordChild3, // #2 = physreg input EFLAGS
/*50287*/         OPC_SwitchType /*3 cases */, 14,  MVT::i16,// ->50304
/*50290*/           OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*50292*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*50295*/           OPC_MorphNodeTo, TARGET_VAL(X86::CMOVLE16rr), 0|OPFL_GlueInput,
                        1/*#VTs*/, MVT::i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86cmov:i16 GR16:i16:$src1, GR16:i16:$src2, 8:i8, EFLAGS:i32) - Complexity = 8
                    // Dst: (CMOVLE16rr:i16 GR16:i16:$src1, GR16:i16:$src2)
                  /*SwitchType*/ 14,  MVT::i32,// ->50320
/*50306*/           OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*50308*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*50311*/           OPC_MorphNodeTo, TARGET_VAL(X86::CMOVLE32rr), 0|OPFL_GlueInput,
                        1/*#VTs*/, MVT::i32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86cmov:i32 GR32:i32:$src1, GR32:i32:$src2, 8:i8, EFLAGS:i32) - Complexity = 8
                    // Dst: (CMOVLE32rr:i32 GR32:i32:$src1, GR32:i32:$src2)
                  /*SwitchType*/ 14,  MVT::i64,// ->50336
/*50322*/           OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*50324*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*50327*/           OPC_MorphNodeTo, TARGET_VAL(X86::CMOVLE64rr), 0|OPFL_GlueInput,
                        1/*#VTs*/, MVT::i64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86cmov:i64 GR64:i64:$src1, GR64:i64:$src2, 8:i8, EFLAGS:i32) - Complexity = 8
                    // Dst: (CMOVLE64rr:i64 GR64:i64:$src1, GR64:i64:$src2)
                  0, // EndSwitchType
/*50337*/       /*Scope*/ 54, /*->50392*/
/*50338*/         OPC_CheckInteger, 5, 
/*50340*/         OPC_MoveParent,
/*50341*/         OPC_RecordChild3, // #2 = physreg input EFLAGS
/*50342*/         OPC_SwitchType /*3 cases */, 14,  MVT::i16,// ->50359
/*50345*/           OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*50347*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*50350*/           OPC_MorphNodeTo, TARGET_VAL(X86::CMOVG16rr), 0|OPFL_GlueInput,
                        1/*#VTs*/, MVT::i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86cmov:i16 GR16:i16:$src1, GR16:i16:$src2, 5:i8, EFLAGS:i32) - Complexity = 8
                    // Dst: (CMOVG16rr:i16 GR16:i16:$src1, GR16:i16:$src2)
                  /*SwitchType*/ 14,  MVT::i32,// ->50375
/*50361*/           OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*50363*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*50366*/           OPC_MorphNodeTo, TARGET_VAL(X86::CMOVG32rr), 0|OPFL_GlueInput,
                        1/*#VTs*/, MVT::i32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86cmov:i32 GR32:i32:$src1, GR32:i32:$src2, 5:i8, EFLAGS:i32) - Complexity = 8
                    // Dst: (CMOVG32rr:i32 GR32:i32:$src1, GR32:i32:$src2)
                  /*SwitchType*/ 14,  MVT::i64,// ->50391
/*50377*/           OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*50379*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*50382*/           OPC_MorphNodeTo, TARGET_VAL(X86::CMOVG64rr), 0|OPFL_GlueInput,
                        1/*#VTs*/, MVT::i64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86cmov:i64 GR64:i64:$src1, GR64:i64:$src2, 5:i8, EFLAGS:i32) - Complexity = 8
                    // Dst: (CMOVG64rr:i64 GR64:i64:$src1, GR64:i64:$src2)
                  0, // EndSwitchType
/*50392*/       0, /*End of Scope*/
/*50393*/     /*Scope*/ 65, /*->50459*/
/*50394*/       OPC_RecordChild2, // #2 = $cond
/*50395*/       OPC_MoveChild, 2,
/*50397*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*50400*/       OPC_MoveParent,
/*50401*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*50402*/       OPC_SwitchType /*3 cases */, 15,  MVT::i8,// ->50420
/*50405*/         OPC_EmitConvertToTarget, 2,
/*50407*/         OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*50410*/         OPC_MorphNodeTo, TARGET_VAL(X86::CMOV_GR8), 0|OPFL_GlueInput,
                      1/*#VTs*/, MVT::i8, 3/*#Ops*/, 0, 1, 4, 
                  // Src: (X86cmov:i8 GR8:i8:$src1, GR8:i8:$src2, (imm:i8):$cond, EFLAGS:i32) - Complexity = 6
                  // Dst: (CMOV_GR8:i8 GR8:i8:$src1, GR8:i8:$src2, (imm:i8):$cond)
                /*SwitchType*/ 17,  MVT::i32,// ->50439
/*50422*/         OPC_CheckPatternPredicate, 18, // (!Subtarget->hasCMov())
/*50424*/         OPC_EmitConvertToTarget, 2,
/*50426*/         OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*50429*/         OPC_MorphNodeTo, TARGET_VAL(X86::CMOV_GR32), 0|OPFL_GlueInput,
                      1/*#VTs*/, MVT::i32, 3/*#Ops*/, 0, 1, 4, 
                  // Src: (X86cmov:i32 GR32:i32:$src1, GR32:i32:$src2, (imm:i8):$cond, EFLAGS:i32) - Complexity = 6
                  // Dst: (CMOV_GR32:i32 GR32:i32:$src1, GR32:i32:$src2, (imm:i8):$cond)
                /*SwitchType*/ 17,  MVT::i16,// ->50458
/*50441*/         OPC_CheckPatternPredicate, 18, // (!Subtarget->hasCMov())
/*50443*/         OPC_EmitConvertToTarget, 2,
/*50445*/         OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*50448*/         OPC_MorphNodeTo, TARGET_VAL(X86::CMOV_GR16), 0|OPFL_GlueInput,
                      1/*#VTs*/, MVT::i16, 3/*#Ops*/, 0, 1, 4, 
                  // Src: (X86cmov:i16 GR16:i16:$src1, GR16:i16:$src2, (imm:i8):$cond, EFLAGS:i32) - Complexity = 6
                  // Dst: (CMOV_GR16:i16 GR16:i16:$src1, GR16:i16:$src2, (imm:i8):$cond)
                0, // EndSwitchType
/*50459*/     /*Scope*/ 60|128,3/*444*/, /*->50905*/
/*50461*/       OPC_MoveChild, 2,
/*50463*/       OPC_Scope, 54, /*->50519*/ // 8 children in Scope
/*50465*/         OPC_CheckInteger, 2, 
/*50467*/         OPC_MoveParent,
/*50468*/         OPC_RecordChild3, // #2 = physreg input EFLAGS
/*50469*/         OPC_SwitchType /*3 cases */, 14,  MVT::f32,// ->50486
/*50472*/           OPC_CheckPatternPredicate, 19, // (!Subtarget->hasXMM()) && (Subtarget->hasCMov())
/*50474*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*50477*/           OPC_MorphNodeTo, TARGET_VAL(X86::CMOVB_Fp32), 0|OPFL_GlueInput,
                        1/*#VTs*/, MVT::f32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86cmov:f32 RFP32:f32:$src1, RFP32:f32:$src2, 2:i8, EFLAGS:i32) - Complexity = 8
                    // Dst: (CMOVB_Fp32:f32 RFP32:f32:$src1, RFP32:f32:$src2)
                  /*SwitchType*/ 14,  MVT::f64,// ->50502
/*50488*/           OPC_CheckPatternPredicate, 20, // (!Subtarget->hasXMMInt()) && (Subtarget->hasCMov())
/*50490*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*50493*/           OPC_MorphNodeTo, TARGET_VAL(X86::CMOVB_Fp64), 0|OPFL_GlueInput,
                        1/*#VTs*/, MVT::f64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86cmov:f64 RFP64:f64:$src1, RFP64:f64:$src2, 2:i8, EFLAGS:i32) - Complexity = 8
                    // Dst: (CMOVB_Fp64:f64 RFP64:f64:$src1, RFP64:f64:$src2)
                  /*SwitchType*/ 14,  MVT::f80,// ->50518
/*50504*/           OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*50506*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*50509*/           OPC_MorphNodeTo, TARGET_VAL(X86::CMOVB_Fp80), 0|OPFL_GlueInput,
                        1/*#VTs*/, MVT::f80, 2/*#Ops*/, 0, 1, 
                    // Src: (X86cmov:f80 RFP80:f80:$src1, RFP80:f80:$src2, 2:i8, EFLAGS:i32) - Complexity = 8
                    // Dst: (CMOVB_Fp80:f80 RFP80:f80:$src1, RFP80:f80:$src2)
                  0, // EndSwitchType
/*50519*/       /*Scope*/ 54, /*->50574*/
/*50520*/         OPC_CheckInteger, 3, 
/*50522*/         OPC_MoveParent,
/*50523*/         OPC_RecordChild3, // #2 = physreg input EFLAGS
/*50524*/         OPC_SwitchType /*3 cases */, 14,  MVT::f32,// ->50541
/*50527*/           OPC_CheckPatternPredicate, 19, // (!Subtarget->hasXMM()) && (Subtarget->hasCMov())
/*50529*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*50532*/           OPC_MorphNodeTo, TARGET_VAL(X86::CMOVBE_Fp32), 0|OPFL_GlueInput,
                        1/*#VTs*/, MVT::f32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86cmov:f32 RFP32:f32:$src1, RFP32:f32:$src2, 3:i8, EFLAGS:i32) - Complexity = 8
                    // Dst: (CMOVBE_Fp32:f32 RFP32:f32:$src1, RFP32:f32:$src2)
                  /*SwitchType*/ 14,  MVT::f64,// ->50557
/*50543*/           OPC_CheckPatternPredicate, 20, // (!Subtarget->hasXMMInt()) && (Subtarget->hasCMov())
/*50545*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*50548*/           OPC_MorphNodeTo, TARGET_VAL(X86::CMOVBE_Fp64), 0|OPFL_GlueInput,
                        1/*#VTs*/, MVT::f64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86cmov:f64 RFP64:f64:$src1, RFP64:f64:$src2, 3:i8, EFLAGS:i32) - Complexity = 8
                    // Dst: (CMOVBE_Fp64:f64 RFP64:f64:$src1, RFP64:f64:$src2)
                  /*SwitchType*/ 14,  MVT::f80,// ->50573
/*50559*/           OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*50561*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*50564*/           OPC_MorphNodeTo, TARGET_VAL(X86::CMOVBE_Fp80), 0|OPFL_GlueInput,
                        1/*#VTs*/, MVT::f80, 2/*#Ops*/, 0, 1, 
                    // Src: (X86cmov:f80 RFP80:f80:$src1, RFP80:f80:$src2, 3:i8, EFLAGS:i32) - Complexity = 8
                    // Dst: (CMOVBE_Fp80:f80 RFP80:f80:$src1, RFP80:f80:$src2)
                  0, // EndSwitchType
/*50574*/       /*Scope*/ 54, /*->50629*/
/*50575*/         OPC_CheckInteger, 4, 
/*50577*/         OPC_MoveParent,
/*50578*/         OPC_RecordChild3, // #2 = physreg input EFLAGS
/*50579*/         OPC_SwitchType /*3 cases */, 14,  MVT::f32,// ->50596
/*50582*/           OPC_CheckPatternPredicate, 19, // (!Subtarget->hasXMM()) && (Subtarget->hasCMov())
/*50584*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*50587*/           OPC_MorphNodeTo, TARGET_VAL(X86::CMOVE_Fp32), 0|OPFL_GlueInput,
                        1/*#VTs*/, MVT::f32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86cmov:f32 RFP32:f32:$src1, RFP32:f32:$src2, 4:i8, EFLAGS:i32) - Complexity = 8
                    // Dst: (CMOVE_Fp32:f32 RFP32:f32:$src1, RFP32:f32:$src2)
                  /*SwitchType*/ 14,  MVT::f64,// ->50612
/*50598*/           OPC_CheckPatternPredicate, 20, // (!Subtarget->hasXMMInt()) && (Subtarget->hasCMov())
/*50600*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*50603*/           OPC_MorphNodeTo, TARGET_VAL(X86::CMOVE_Fp64), 0|OPFL_GlueInput,
                        1/*#VTs*/, MVT::f64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86cmov:f64 RFP64:f64:$src1, RFP64:f64:$src2, 4:i8, EFLAGS:i32) - Complexity = 8
                    // Dst: (CMOVE_Fp64:f64 RFP64:f64:$src1, RFP64:f64:$src2)
                  /*SwitchType*/ 14,  MVT::f80,// ->50628
/*50614*/           OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*50616*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*50619*/           OPC_MorphNodeTo, TARGET_VAL(X86::CMOVE_Fp80), 0|OPFL_GlueInput,
                        1/*#VTs*/, MVT::f80, 2/*#Ops*/, 0, 1, 
                    // Src: (X86cmov:f80 RFP80:f80:$src1, RFP80:f80:$src2, 4:i8, EFLAGS:i32) - Complexity = 8
                    // Dst: (CMOVE_Fp80:f80 RFP80:f80:$src1, RFP80:f80:$src2)
                  0, // EndSwitchType
/*50629*/       /*Scope*/ 54, /*->50684*/
/*50630*/         OPC_CheckInteger, 14, 
/*50632*/         OPC_MoveParent,
/*50633*/         OPC_RecordChild3, // #2 = physreg input EFLAGS
/*50634*/         OPC_SwitchType /*3 cases */, 14,  MVT::f32,// ->50651
/*50637*/           OPC_CheckPatternPredicate, 19, // (!Subtarget->hasXMM()) && (Subtarget->hasCMov())
/*50639*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*50642*/           OPC_MorphNodeTo, TARGET_VAL(X86::CMOVP_Fp32), 0|OPFL_GlueInput,
                        1/*#VTs*/, MVT::f32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86cmov:f32 RFP32:f32:$src1, RFP32:f32:$src2, 14:i8, EFLAGS:i32) - Complexity = 8
                    // Dst: (CMOVP_Fp32:f32 RFP32:f32:$src1, RFP32:f32:$src2)
                  /*SwitchType*/ 14,  MVT::f64,// ->50667
/*50653*/           OPC_CheckPatternPredicate, 20, // (!Subtarget->hasXMMInt()) && (Subtarget->hasCMov())
/*50655*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*50658*/           OPC_MorphNodeTo, TARGET_VAL(X86::CMOVP_Fp64), 0|OPFL_GlueInput,
                        1/*#VTs*/, MVT::f64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86cmov:f64 RFP64:f64:$src1, RFP64:f64:$src2, 14:i8, EFLAGS:i32) - Complexity = 8
                    // Dst: (CMOVP_Fp64:f64 RFP64:f64:$src1, RFP64:f64:$src2)
                  /*SwitchType*/ 14,  MVT::f80,// ->50683
/*50669*/           OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*50671*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*50674*/           OPC_MorphNodeTo, TARGET_VAL(X86::CMOVP_Fp80), 0|OPFL_GlueInput,
                        1/*#VTs*/, MVT::f80, 2/*#Ops*/, 0, 1, 
                    // Src: (X86cmov:f80 RFP80:f80:$src1, RFP80:f80:$src2, 14:i8, EFLAGS:i32) - Complexity = 8
                    // Dst: (CMOVP_Fp80:f80 RFP80:f80:$src1, RFP80:f80:$src2)
                  0, // EndSwitchType
/*50684*/       /*Scope*/ 54, /*->50739*/
/*50685*/         OPC_CheckInteger, 1, 
/*50687*/         OPC_MoveParent,
/*50688*/         OPC_RecordChild3, // #2 = physreg input EFLAGS
/*50689*/         OPC_SwitchType /*3 cases */, 14,  MVT::f32,// ->50706
/*50692*/           OPC_CheckPatternPredicate, 19, // (!Subtarget->hasXMM()) && (Subtarget->hasCMov())
/*50694*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*50697*/           OPC_MorphNodeTo, TARGET_VAL(X86::CMOVNB_Fp32), 0|OPFL_GlueInput,
                        1/*#VTs*/, MVT::f32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86cmov:f32 RFP32:f32:$src1, RFP32:f32:$src2, 1:i8, EFLAGS:i32) - Complexity = 8
                    // Dst: (CMOVNB_Fp32:f32 RFP32:f32:$src1, RFP32:f32:$src2)
                  /*SwitchType*/ 14,  MVT::f64,// ->50722
/*50708*/           OPC_CheckPatternPredicate, 20, // (!Subtarget->hasXMMInt()) && (Subtarget->hasCMov())
/*50710*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*50713*/           OPC_MorphNodeTo, TARGET_VAL(X86::CMOVNB_Fp64), 0|OPFL_GlueInput,
                        1/*#VTs*/, MVT::f64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86cmov:f64 RFP64:f64:$src1, RFP64:f64:$src2, 1:i8, EFLAGS:i32) - Complexity = 8
                    // Dst: (CMOVNB_Fp64:f64 RFP64:f64:$src1, RFP64:f64:$src2)
                  /*SwitchType*/ 14,  MVT::f80,// ->50738
/*50724*/           OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*50726*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*50729*/           OPC_MorphNodeTo, TARGET_VAL(X86::CMOVNB_Fp80), 0|OPFL_GlueInput,
                        1/*#VTs*/, MVT::f80, 2/*#Ops*/, 0, 1, 
                    // Src: (X86cmov:f80 RFP80:f80:$src1, RFP80:f80:$src2, 1:i8, EFLAGS:i32) - Complexity = 8
                    // Dst: (CMOVNB_Fp80:f80 RFP80:f80:$src1, RFP80:f80:$src2)
                  0, // EndSwitchType
/*50739*/       /*Scope*/ 54, /*->50794*/
/*50740*/         OPC_CheckInteger, 0, 
/*50742*/         OPC_MoveParent,
/*50743*/         OPC_RecordChild3, // #2 = physreg input EFLAGS
/*50744*/         OPC_SwitchType /*3 cases */, 14,  MVT::f32,// ->50761
/*50747*/           OPC_CheckPatternPredicate, 19, // (!Subtarget->hasXMM()) && (Subtarget->hasCMov())
/*50749*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*50752*/           OPC_MorphNodeTo, TARGET_VAL(X86::CMOVNBE_Fp32), 0|OPFL_GlueInput,
                        1/*#VTs*/, MVT::f32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86cmov:f32 RFP32:f32:$src1, RFP32:f32:$src2, 0:i8, EFLAGS:i32) - Complexity = 8
                    // Dst: (CMOVNBE_Fp32:f32 RFP32:f32:$src1, RFP32:f32:$src2)
                  /*SwitchType*/ 14,  MVT::f64,// ->50777
/*50763*/           OPC_CheckPatternPredicate, 20, // (!Subtarget->hasXMMInt()) && (Subtarget->hasCMov())
/*50765*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*50768*/           OPC_MorphNodeTo, TARGET_VAL(X86::CMOVNBE_Fp64), 0|OPFL_GlueInput,
                        1/*#VTs*/, MVT::f64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86cmov:f64 RFP64:f64:$src1, RFP64:f64:$src2, 0:i8, EFLAGS:i32) - Complexity = 8
                    // Dst: (CMOVNBE_Fp64:f64 RFP64:f64:$src1, RFP64:f64:$src2)
                  /*SwitchType*/ 14,  MVT::f80,// ->50793
/*50779*/           OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*50781*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*50784*/           OPC_MorphNodeTo, TARGET_VAL(X86::CMOVNBE_Fp80), 0|OPFL_GlueInput,
                        1/*#VTs*/, MVT::f80, 2/*#Ops*/, 0, 1, 
                    // Src: (X86cmov:f80 RFP80:f80:$src1, RFP80:f80:$src2, 0:i8, EFLAGS:i32) - Complexity = 8
                    // Dst: (CMOVNBE_Fp80:f80 RFP80:f80:$src1, RFP80:f80:$src2)
                  0, // EndSwitchType
/*50794*/       /*Scope*/ 54, /*->50849*/
/*50795*/         OPC_CheckInteger, 9, 
/*50797*/         OPC_MoveParent,
/*50798*/         OPC_RecordChild3, // #2 = physreg input EFLAGS
/*50799*/         OPC_SwitchType /*3 cases */, 14,  MVT::f32,// ->50816
/*50802*/           OPC_CheckPatternPredicate, 19, // (!Subtarget->hasXMM()) && (Subtarget->hasCMov())
/*50804*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*50807*/           OPC_MorphNodeTo, TARGET_VAL(X86::CMOVNE_Fp32), 0|OPFL_GlueInput,
                        1/*#VTs*/, MVT::f32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86cmov:f32 RFP32:f32:$src1, RFP32:f32:$src2, 9:i8, EFLAGS:i32) - Complexity = 8
                    // Dst: (CMOVNE_Fp32:f32 RFP32:f32:$src1, RFP32:f32:$src2)
                  /*SwitchType*/ 14,  MVT::f64,// ->50832
/*50818*/           OPC_CheckPatternPredicate, 20, // (!Subtarget->hasXMMInt()) && (Subtarget->hasCMov())
/*50820*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*50823*/           OPC_MorphNodeTo, TARGET_VAL(X86::CMOVNE_Fp64), 0|OPFL_GlueInput,
                        1/*#VTs*/, MVT::f64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86cmov:f64 RFP64:f64:$src1, RFP64:f64:$src2, 9:i8, EFLAGS:i32) - Complexity = 8
                    // Dst: (CMOVNE_Fp64:f64 RFP64:f64:$src1, RFP64:f64:$src2)
                  /*SwitchType*/ 14,  MVT::f80,// ->50848
/*50834*/           OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*50836*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*50839*/           OPC_MorphNodeTo, TARGET_VAL(X86::CMOVNE_Fp80), 0|OPFL_GlueInput,
                        1/*#VTs*/, MVT::f80, 2/*#Ops*/, 0, 1, 
                    // Src: (X86cmov:f80 RFP80:f80:$src1, RFP80:f80:$src2, 9:i8, EFLAGS:i32) - Complexity = 8
                    // Dst: (CMOVNE_Fp80:f80 RFP80:f80:$src1, RFP80:f80:$src2)
                  0, // EndSwitchType
/*50849*/       /*Scope*/ 54, /*->50904*/
/*50850*/         OPC_CheckInteger, 11, 
/*50852*/         OPC_MoveParent,
/*50853*/         OPC_RecordChild3, // #2 = physreg input EFLAGS
/*50854*/         OPC_SwitchType /*3 cases */, 14,  MVT::f32,// ->50871
/*50857*/           OPC_CheckPatternPredicate, 19, // (!Subtarget->hasXMM()) && (Subtarget->hasCMov())
/*50859*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*50862*/           OPC_MorphNodeTo, TARGET_VAL(X86::CMOVNP_Fp32), 0|OPFL_GlueInput,
                        1/*#VTs*/, MVT::f32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86cmov:f32 RFP32:f32:$src1, RFP32:f32:$src2, 11:i8, EFLAGS:i32) - Complexity = 8
                    // Dst: (CMOVNP_Fp32:f32 RFP32:f32:$src1, RFP32:f32:$src2)
                  /*SwitchType*/ 14,  MVT::f64,// ->50887
/*50873*/           OPC_CheckPatternPredicate, 20, // (!Subtarget->hasXMMInt()) && (Subtarget->hasCMov())
/*50875*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*50878*/           OPC_MorphNodeTo, TARGET_VAL(X86::CMOVNP_Fp64), 0|OPFL_GlueInput,
                        1/*#VTs*/, MVT::f64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86cmov:f64 RFP64:f64:$src1, RFP64:f64:$src2, 11:i8, EFLAGS:i32) - Complexity = 8
                    // Dst: (CMOVNP_Fp64:f64 RFP64:f64:$src1, RFP64:f64:$src2)
                  /*SwitchType*/ 14,  MVT::f80,// ->50903
/*50889*/           OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*50891*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*50894*/           OPC_MorphNodeTo, TARGET_VAL(X86::CMOVNP_Fp80), 0|OPFL_GlueInput,
                        1/*#VTs*/, MVT::f80, 2/*#Ops*/, 0, 1, 
                    // Src: (X86cmov:f80 RFP80:f80:$src1, RFP80:f80:$src2, 11:i8, EFLAGS:i32) - Complexity = 8
                    // Dst: (CMOVNP_Fp80:f80 RFP80:f80:$src1, RFP80:f80:$src2)
                  0, // EndSwitchType
/*50904*/       0, /*End of Scope*/
/*50905*/     /*Scope*/ 79|128,1/*207*/, /*->51114*/
/*50907*/       OPC_RecordChild2, // #2 = $cond
/*50908*/       OPC_MoveChild, 2,
/*50910*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*50913*/       OPC_MoveParent,
/*50914*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*50915*/       OPC_SwitchType /*9 cases */, 36,  MVT::f32,// ->50954
/*50918*/         OPC_Scope, 17, /*->50937*/ // 2 children in Scope
/*50920*/           OPC_CheckPatternPredicate, 18, // (!Subtarget->hasCMov())
/*50922*/           OPC_EmitConvertToTarget, 2,
/*50924*/           OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*50927*/           OPC_MorphNodeTo, TARGET_VAL(X86::CMOV_RFP32), 0|OPFL_GlueInput,
                        1/*#VTs*/, MVT::f32, 3/*#Ops*/, 0, 1, 4, 
                    // Src: (X86cmov:f32 RFP32:f32:$src1, RFP32:f32:$src2, (imm:i8):$cond, EFLAGS:i32) - Complexity = 6
                    // Dst: (CMOV_RFP32:f32 RFP32:f32:$src1, RFP32:f32:$src2, (imm:i8):$cond)
/*50937*/         /*Scope*/ 15, /*->50953*/
/*50938*/           OPC_EmitConvertToTarget, 2,
/*50940*/           OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*50943*/           OPC_MorphNodeTo, TARGET_VAL(X86::CMOV_FR32), 0|OPFL_GlueInput,
                        1/*#VTs*/, MVT::f32, 3/*#Ops*/, 0, 1, 4, 
                    // Src: (X86cmov:f32 FR32:f32:$t, FR32:f32:$f, (imm:i8):$cond, EFLAGS:i32) - Complexity = 6
                    // Dst: (CMOV_FR32:f32 FR32:f32:$t, FR32:f32:$f, (imm:i8):$cond)
/*50953*/         0, /*End of Scope*/
                /*SwitchType*/ 36,  MVT::f64,// ->50992
/*50956*/         OPC_Scope, 17, /*->50975*/ // 2 children in Scope
/*50958*/           OPC_CheckPatternPredicate, 18, // (!Subtarget->hasCMov())
/*50960*/           OPC_EmitConvertToTarget, 2,
/*50962*/           OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*50965*/           OPC_MorphNodeTo, TARGET_VAL(X86::CMOV_RFP64), 0|OPFL_GlueInput,
                        1/*#VTs*/, MVT::f64, 3/*#Ops*/, 0, 1, 4, 
                    // Src: (X86cmov:f64 RFP64:f64:$src1, RFP64:f64:$src2, (imm:i8):$cond, EFLAGS:i32) - Complexity = 6
                    // Dst: (CMOV_RFP64:f64 RFP64:f64:$src1, RFP64:f64:$src2, (imm:i8):$cond)
/*50975*/         /*Scope*/ 15, /*->50991*/
/*50976*/           OPC_EmitConvertToTarget, 2,
/*50978*/           OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*50981*/           OPC_MorphNodeTo, TARGET_VAL(X86::CMOV_FR64), 0|OPFL_GlueInput,
                        1/*#VTs*/, MVT::f64, 3/*#Ops*/, 0, 1, 4, 
                    // Src: (X86cmov:f64 FR64:f64:$t, FR64:f64:$f, (imm:i8):$cond, EFLAGS:i32) - Complexity = 6
                    // Dst: (CMOV_FR64:f64 FR64:f64:$t, FR64:f64:$f, (imm:i8):$cond)
/*50991*/         0, /*End of Scope*/
                /*SwitchType*/ 17,  MVT::f80,// ->51011
/*50994*/         OPC_CheckPatternPredicate, 18, // (!Subtarget->hasCMov())
/*50996*/         OPC_EmitConvertToTarget, 2,
/*50998*/         OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*51001*/         OPC_MorphNodeTo, TARGET_VAL(X86::CMOV_RFP80), 0|OPFL_GlueInput,
                      1/*#VTs*/, MVT::f80, 3/*#Ops*/, 0, 1, 4, 
                  // Src: (X86cmov:f80 RFP80:f80:$src1, RFP80:f80:$src2, (imm:i8):$cond, EFLAGS:i32) - Complexity = 6
                  // Dst: (CMOV_RFP80:f80 RFP80:f80:$src1, RFP80:f80:$src2, (imm:i8):$cond)
                /*SwitchType*/ 15,  MVT::v2i64,// ->51028
/*51013*/         OPC_EmitConvertToTarget, 2,
/*51015*/         OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*51018*/         OPC_MorphNodeTo, TARGET_VAL(X86::CMOV_V2I64), 0|OPFL_GlueInput,
                      1/*#VTs*/, MVT::v2i64, 3/*#Ops*/, 0, 1, 4, 
                  // Src: (X86cmov:v2i64 VR128:v2i64:$t, VR128:v2i64:$f, (imm:i8):$cond, EFLAGS:i32) - Complexity = 6
                  // Dst: (CMOV_V2I64:v2i64 VR128:v2i64:$t, VR128:v2i64:$f, (imm:i8):$cond)
                /*SwitchType*/ 15,  MVT::v4i64,// ->51045
/*51030*/         OPC_EmitConvertToTarget, 2,
/*51032*/         OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*51035*/         OPC_MorphNodeTo, TARGET_VAL(X86::CMOV_V4I64), 0|OPFL_GlueInput,
                      1/*#VTs*/, MVT::v4i64, 3/*#Ops*/, 0, 1, 4, 
                  // Src: (X86cmov:v4i64 VR256:v4i64:$t, VR256:v4i64:$f, (imm:i8):$cond, EFLAGS:i32) - Complexity = 6
                  // Dst: (CMOV_V4I64:v4i64 VR256:v4i64:$t, VR256:v4i64:$f, (imm:i8):$cond)
                /*SwitchType*/ 15,  MVT::v4f32,// ->51062
/*51047*/         OPC_EmitConvertToTarget, 2,
/*51049*/         OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*51052*/         OPC_MorphNodeTo, TARGET_VAL(X86::CMOV_V4F32), 0|OPFL_GlueInput,
                      1/*#VTs*/, MVT::v4f32, 3/*#Ops*/, 0, 1, 4, 
                  // Src: (X86cmov:v4f32 VR128:v4f32:$t, VR128:v4f32:$f, (imm:i8):$cond, EFLAGS:i32) - Complexity = 6
                  // Dst: (CMOV_V4F32:v4f32 VR128:v4f32:$t, VR128:v4f32:$f, (imm:i8):$cond)
                /*SwitchType*/ 15,  MVT::v2f64,// ->51079
/*51064*/         OPC_EmitConvertToTarget, 2,
/*51066*/         OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*51069*/         OPC_MorphNodeTo, TARGET_VAL(X86::CMOV_V2F64), 0|OPFL_GlueInput,
                      1/*#VTs*/, MVT::v2f64, 3/*#Ops*/, 0, 1, 4, 
                  // Src: (X86cmov:v2f64 VR128:v2f64:$t, VR128:v2f64:$f, (imm:i8):$cond, EFLAGS:i32) - Complexity = 6
                  // Dst: (CMOV_V2F64:v2f64 VR128:v2f64:$t, VR128:v2f64:$f, (imm:i8):$cond)
                /*SwitchType*/ 15,  MVT::v8f32,// ->51096
/*51081*/         OPC_EmitConvertToTarget, 2,
/*51083*/         OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*51086*/         OPC_MorphNodeTo, TARGET_VAL(X86::CMOV_V8F32), 0|OPFL_GlueInput,
                      1/*#VTs*/, MVT::v8f32, 3/*#Ops*/, 0, 1, 4, 
                  // Src: (X86cmov:v8f32 VR256:v8f32:$t, VR256:v8f32:$f, (imm:i8):$cond, EFLAGS:i32) - Complexity = 6
                  // Dst: (CMOV_V8F32:v8f32 VR256:v8f32:$t, VR256:v8f32:$f, (imm:i8):$cond)
                /*SwitchType*/ 15,  MVT::v4f64,// ->51113
/*51098*/         OPC_EmitConvertToTarget, 2,
/*51100*/         OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*51103*/         OPC_MorphNodeTo, TARGET_VAL(X86::CMOV_V4F64), 0|OPFL_GlueInput,
                      1/*#VTs*/, MVT::v4f64, 3/*#Ops*/, 0, 1, 4, 
                  // Src: (X86cmov:v4f64 VR256:v4f64:$t, VR256:v4f64:$f, (imm:i8):$cond, EFLAGS:i32) - Complexity = 6
                  // Dst: (CMOV_V4F64:v4f64 VR256:v4f64:$t, VR256:v4f64:$f, (imm:i8):$cond)
                0, // EndSwitchType
/*51114*/     0, /*End of Scope*/
/*51115*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 52,  TARGET_VAL(X86ISD::VAARG_64),// ->51171
/*51119*/   OPC_RecordMemRef,
/*51120*/   OPC_RecordNode,   // #0 = 'X86vaarg64' chained node
/*51121*/   OPC_RecordChild1, // #1 = $ap
/*51122*/   OPC_RecordChild2, // #2 = $size
/*51123*/   OPC_MoveChild, 2,
/*51125*/   OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*51128*/   OPC_MoveParent,
/*51129*/   OPC_RecordChild3, // #3 = $mode
/*51130*/   OPC_MoveChild, 3,
/*51132*/   OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*51135*/   OPC_MoveParent,
/*51136*/   OPC_RecordChild4, // #4 = $align
/*51137*/   OPC_MoveChild, 4,
/*51139*/   OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*51142*/   OPC_MoveParent,
/*51143*/   OPC_CheckType, MVT::i64,
/*51145*/   OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$ap #5 #6 #7 #8 #9
/*51148*/   OPC_EmitMergeInputChains1_0,
/*51149*/   OPC_EmitConvertToTarget, 2,
/*51151*/   OPC_EmitConvertToTarget, 3,
/*51153*/   OPC_EmitConvertToTarget, 4,
/*51155*/   OPC_MorphNodeTo, TARGET_VAL(X86::VAARG_64), 0|OPFL_Chain|OPFL_MemRefs,
                2/*#VTs*/, MVT::i64, MVT::i32, 8/*#Ops*/, 5, 6, 7, 8, 9, 10, 11, 12, 
            // Src: (X86vaarg64:i64 addr:iPTR:$ap, (imm:i32):$size, (imm:i8):$mode, (imm:i32):$align) - Complexity = 30
            // Dst: (VAARG_64:i64:i32 addr:iPTR:$ap, (imm:i32):$size, (imm:i8):$mode, (imm:i32):$align)
          /*SwitchOpcode*/ 99|128,1/*227*/,  TARGET_VAL(X86ISD::BT),// ->51402
/*51175*/   OPC_Scope, 112, /*->51289*/ // 2 children in Scope
/*51177*/     OPC_MoveChild, 0,
/*51179*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*51182*/     OPC_RecordMemRef,
/*51183*/     OPC_RecordNode, // #0 = 'ld' chained node
/*51184*/     OPC_CheckFoldableChainNode,
/*51185*/     OPC_RecordChild1, // #1 = $src1
/*51186*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*51188*/     OPC_SwitchType /*3 cases */, 31,  MVT::i16,// ->51222
/*51191*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*51193*/       OPC_MoveParent,
/*51194*/       OPC_RecordChild1, // #2 = $src2
/*51195*/       OPC_MoveChild, 1,
/*51197*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*51200*/       OPC_CheckPredicate, 8, // Predicate_i16immSExt8
/*51202*/       OPC_MoveParent,
/*51203*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #3 #4 #5 #6 #7
/*51206*/       OPC_EmitMergeInputChains1_0,
/*51207*/       OPC_EmitConvertToTarget, 2,
/*51209*/       OPC_MorphNodeTo, TARGET_VAL(X86::BT16mi8), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                // Src: (X86bt:i32 (ld:i16 addr:iPTR:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>, (imm:i16)<<P:Predicate_i16immSExt8>>:$src2) - Complexity = 29
                // Dst: (BT16mi8:i32 addr:iPTR:$src1, (imm:i16):$src2)
              /*SwitchType*/ 31,  MVT::i32,// ->51255
/*51224*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*51226*/       OPC_MoveParent,
/*51227*/       OPC_RecordChild1, // #2 = $src2
/*51228*/       OPC_MoveChild, 1,
/*51230*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*51233*/       OPC_CheckPredicate, 9, // Predicate_i32immSExt8
/*51235*/       OPC_MoveParent,
/*51236*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #3 #4 #5 #6 #7
/*51239*/       OPC_EmitMergeInputChains1_0,
/*51240*/       OPC_EmitConvertToTarget, 2,
/*51242*/       OPC_MorphNodeTo, TARGET_VAL(X86::BT32mi8), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                // Src: (X86bt:i32 (ld:i32 addr:iPTR:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>, (imm:i32)<<P:Predicate_i32immSExt8>>:$src2) - Complexity = 29
                // Dst: (BT32mi8:i32 addr:iPTR:$src1, (imm:i32):$src2)
              /*SwitchType*/ 31,  MVT::i64,// ->51288
/*51257*/       OPC_CheckPredicate, 3, // Predicate_load
/*51259*/       OPC_MoveParent,
/*51260*/       OPC_RecordChild1, // #2 = $src2
/*51261*/       OPC_MoveChild, 1,
/*51263*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*51266*/       OPC_CheckPredicate, 10, // Predicate_i64immSExt8
/*51268*/       OPC_MoveParent,
/*51269*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #3 #4 #5 #6 #7
/*51272*/       OPC_EmitMergeInputChains1_0,
/*51273*/       OPC_EmitConvertToTarget, 2,
/*51275*/       OPC_MorphNodeTo, TARGET_VAL(X86::BT64mi8), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                // Src: (X86bt:i32 (ld:i64 addr:iPTR:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:i64)<<P:Predicate_i64immSExt8>>:$src2) - Complexity = 29
                // Dst: (BT64mi8:i32 addr:iPTR:$src1, (imm:i64):$src2)
              0, // EndSwitchType
/*51289*/   /*Scope*/ 111, /*->51401*/
/*51290*/     OPC_RecordChild0, // #0 = $src1
/*51291*/     OPC_Scope, 35, /*->51328*/ // 3 children in Scope
/*51293*/       OPC_CheckChild0Type, MVT::i16,
/*51295*/       OPC_RecordChild1, // #1 = $src2
/*51296*/       OPC_Scope, 19, /*->51317*/ // 2 children in Scope
/*51298*/         OPC_MoveChild, 1,
/*51300*/         OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*51303*/         OPC_CheckPredicate, 8, // Predicate_i16immSExt8
/*51305*/         OPC_MoveParent,
/*51306*/         OPC_EmitConvertToTarget, 1,
/*51308*/         OPC_MorphNodeTo, TARGET_VAL(X86::BT16ri8), 0,
                      1/*#VTs*/, MVT::i32, 2/*#Ops*/, 0, 2, 
                  // Src: (X86bt:i32 GR16:i16:$src1, (imm:i16)<<P:Predicate_i16immSExt8>>:$src2) - Complexity = 7
                  // Dst: (BT16ri8:i32 GR16:i16:$src1, (imm:i16):$src2)
/*51317*/       /*Scope*/ 9, /*->51327*/
/*51318*/         OPC_MorphNodeTo, TARGET_VAL(X86::BT16rr), 0,
                      1/*#VTs*/, MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86bt:i32 GR16:i16:$src1, GR16:i16:$src2) - Complexity = 3
                  // Dst: (BT16rr:i32 GR16:i16:$src1, GR16:i16:$src2)
/*51327*/       0, /*End of Scope*/
/*51328*/     /*Scope*/ 35, /*->51364*/
/*51329*/       OPC_CheckChild0Type, MVT::i32,
/*51331*/       OPC_RecordChild1, // #1 = $src2
/*51332*/       OPC_Scope, 19, /*->51353*/ // 2 children in Scope
/*51334*/         OPC_MoveChild, 1,
/*51336*/         OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*51339*/         OPC_CheckPredicate, 9, // Predicate_i32immSExt8
/*51341*/         OPC_MoveParent,
/*51342*/         OPC_EmitConvertToTarget, 1,
/*51344*/         OPC_MorphNodeTo, TARGET_VAL(X86::BT32ri8), 0,
                      1/*#VTs*/, MVT::i32, 2/*#Ops*/, 0, 2, 
                  // Src: (X86bt:i32 GR32:i32:$src1, (imm:i32)<<P:Predicate_i32immSExt8>>:$src2) - Complexity = 7
                  // Dst: (BT32ri8:i32 GR32:i32:$src1, (imm:i32):$src2)
/*51353*/       /*Scope*/ 9, /*->51363*/
/*51354*/         OPC_MorphNodeTo, TARGET_VAL(X86::BT32rr), 0,
                      1/*#VTs*/, MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86bt:i32 GR32:i32:$src1, GR32:i32:$src2) - Complexity = 3
                  // Dst: (BT32rr:i32 GR32:i32:$src1, GR32:i32:$src2)
/*51363*/       0, /*End of Scope*/
/*51364*/     /*Scope*/ 35, /*->51400*/
/*51365*/       OPC_CheckChild0Type, MVT::i64,
/*51367*/       OPC_RecordChild1, // #1 = $src2
/*51368*/       OPC_Scope, 19, /*->51389*/ // 2 children in Scope
/*51370*/         OPC_MoveChild, 1,
/*51372*/         OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*51375*/         OPC_CheckPredicate, 10, // Predicate_i64immSExt8
/*51377*/         OPC_MoveParent,
/*51378*/         OPC_EmitConvertToTarget, 1,
/*51380*/         OPC_MorphNodeTo, TARGET_VAL(X86::BT64ri8), 0,
                      1/*#VTs*/, MVT::i32, 2/*#Ops*/, 0, 2, 
                  // Src: (X86bt:i32 GR64:i64:$src1, (imm:i64)<<P:Predicate_i64immSExt8>>:$src2) - Complexity = 7
                  // Dst: (BT64ri8:i32 GR64:i64:$src1, (imm:i64):$src2)
/*51389*/       /*Scope*/ 9, /*->51399*/
/*51390*/         OPC_MorphNodeTo, TARGET_VAL(X86::BT64rr), 0,
                      1/*#VTs*/, MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86bt:i32 GR64:i64:$src1, GR64:i64:$src2) - Complexity = 3
                  // Dst: (BT64rr:i32 GR64:i64:$src1, GR64:i64:$src2)
/*51399*/       0, /*End of Scope*/
/*51400*/     0, /*End of Scope*/
/*51401*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 107|128,3/*491*/,  TARGET_VAL(X86ISD::SMUL),// ->51897
/*51406*/   OPC_Scope, 46|128,1/*174*/, /*->51583*/ // 4 children in Scope
/*51409*/     OPC_MoveChild, 0,
/*51411*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*51414*/     OPC_RecordMemRef,
/*51415*/     OPC_RecordNode, // #0 = 'ld' chained node
/*51416*/     OPC_CheckFoldableChainNode,
/*51417*/     OPC_RecordChild1, // #1 = $src1
/*51418*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*51420*/     OPC_CheckPredicate, 3, // Predicate_load
/*51422*/     OPC_MoveParent,
/*51423*/     OPC_RecordChild1, // #2 = $src2
/*51424*/     OPC_MoveChild, 1,
/*51426*/     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*51429*/     OPC_Scope, 25, /*->51456*/ // 5 children in Scope
/*51431*/       OPC_CheckPredicate, 8, // Predicate_i16immSExt8
/*51433*/       OPC_MoveParent,
/*51434*/       OPC_CheckType, MVT::i16,
/*51436*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #3 #4 #5 #6 #7
/*51439*/       OPC_EmitMergeInputChains1_0,
/*51440*/       OPC_EmitConvertToTarget, 2,
/*51442*/       OPC_MorphNodeTo, TARGET_VAL(X86::IMUL16rmi8), 0|OPFL_Chain|OPFL_MemRefs,
                    2/*#VTs*/, MVT::i16, MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                // Src: (X86smul_flag:i16:i32 (ld:i16 addr:iPTR:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:i16)<<P:Predicate_i16immSExt8>>:$src2) - Complexity = 29
                // Dst: (IMUL16rmi8:i16:i32 addr:iPTR:$src1, (imm:i16):$src2)
/*51456*/     /*Scope*/ 25, /*->51482*/
/*51457*/       OPC_CheckPredicate, 9, // Predicate_i32immSExt8
/*51459*/       OPC_MoveParent,
/*51460*/       OPC_CheckType, MVT::i32,
/*51462*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #3 #4 #5 #6 #7
/*51465*/       OPC_EmitMergeInputChains1_0,
/*51466*/       OPC_EmitConvertToTarget, 2,
/*51468*/       OPC_MorphNodeTo, TARGET_VAL(X86::IMUL32rmi8), 0|OPFL_Chain|OPFL_MemRefs,
                    2/*#VTs*/, MVT::i32, MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                // Src: (X86smul_flag:i32:i32 (ld:i32 addr:iPTR:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:i32)<<P:Predicate_i32immSExt8>>:$src2) - Complexity = 29
                // Dst: (IMUL32rmi8:i32:i32 addr:iPTR:$src1, (imm:i32):$src2)
/*51482*/     /*Scope*/ 25, /*->51508*/
/*51483*/       OPC_CheckPredicate, 11, // Predicate_i64immSExt32
/*51485*/       OPC_MoveParent,
/*51486*/       OPC_CheckType, MVT::i64,
/*51488*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #3 #4 #5 #6 #7
/*51491*/       OPC_EmitMergeInputChains1_0,
/*51492*/       OPC_EmitConvertToTarget, 2,
/*51494*/       OPC_MorphNodeTo, TARGET_VAL(X86::IMUL64rmi32), 0|OPFL_Chain|OPFL_MemRefs,
                    2/*#VTs*/, MVT::i64, MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                // Src: (X86smul_flag:i64:i32 (ld:i64 addr:iPTR:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:i64)<<P:Predicate_i64immSExt32>>:$src2) - Complexity = 29
                // Dst: (IMUL64rmi32:i64:i32 addr:iPTR:$src1, (imm:i64):$src2)
/*51508*/     /*Scope*/ 25, /*->51534*/
/*51509*/       OPC_CheckPredicate, 10, // Predicate_i64immSExt8
/*51511*/       OPC_MoveParent,
/*51512*/       OPC_CheckType, MVT::i64,
/*51514*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #3 #4 #5 #6 #7
/*51517*/       OPC_EmitMergeInputChains1_0,
/*51518*/       OPC_EmitConvertToTarget, 2,
/*51520*/       OPC_MorphNodeTo, TARGET_VAL(X86::IMUL64rmi8), 0|OPFL_Chain|OPFL_MemRefs,
                    2/*#VTs*/, MVT::i64, MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                // Src: (X86smul_flag:i64:i32 (ld:i64 addr:iPTR:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:i64)<<P:Predicate_i64immSExt8>>:$src2) - Complexity = 29
                // Dst: (IMUL64rmi8:i64:i32 addr:iPTR:$src1, (imm:i64):$src2)
/*51534*/     /*Scope*/ 47, /*->51582*/
/*51535*/       OPC_MoveParent,
/*51536*/       OPC_SwitchType /*2 cases */, 20,  MVT::i16,// ->51559
/*51539*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #3 #4 #5 #6 #7
/*51542*/         OPC_EmitMergeInputChains1_0,
/*51543*/         OPC_EmitConvertToTarget, 2,
/*51545*/         OPC_MorphNodeTo, TARGET_VAL(X86::IMUL16rmi), 0|OPFL_Chain|OPFL_MemRefs,
                      2/*#VTs*/, MVT::i16, MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                  // Src: (X86smul_flag:i16:i32 (ld:i16 addr:iPTR:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:i16):$src2) - Complexity = 28
                  // Dst: (IMUL16rmi:i16:i32 addr:iPTR:$src1, (imm:i16):$src2)
                /*SwitchType*/ 20,  MVT::i32,// ->51581
/*51561*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #3 #4 #5 #6 #7
/*51564*/         OPC_EmitMergeInputChains1_0,
/*51565*/         OPC_EmitConvertToTarget, 2,
/*51567*/         OPC_MorphNodeTo, TARGET_VAL(X86::IMUL32rmi), 0|OPFL_Chain|OPFL_MemRefs,
                      2/*#VTs*/, MVT::i32, MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                  // Src: (X86smul_flag:i32:i32 (ld:i32 addr:iPTR:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:i32):$src2) - Complexity = 28
                  // Dst: (IMUL32rmi:i32:i32 addr:iPTR:$src1, (imm:i32):$src2)
                0, // EndSwitchType
/*51582*/     0, /*End of Scope*/
/*51583*/   /*Scope*/ 77, /*->51661*/
/*51584*/     OPC_RecordChild0, // #0 = $src1
/*51585*/     OPC_MoveChild, 1,
/*51587*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*51590*/     OPC_RecordMemRef,
/*51591*/     OPC_RecordNode, // #1 = 'ld' chained node
/*51592*/     OPC_CheckFoldableChainNode,
/*51593*/     OPC_RecordChild1, // #2 = $src2
/*51594*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*51596*/     OPC_CheckPredicate, 3, // Predicate_load
/*51598*/     OPC_MoveParent,
/*51599*/     OPC_SwitchType /*3 cases */, 18,  MVT::i16,// ->51620
/*51602*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*51605*/       OPC_EmitMergeInputChains1_1,
/*51606*/       OPC_MorphNodeTo, TARGET_VAL(X86::IMUL16rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2/*#VTs*/, MVT::i16, MVT::i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (X86smul_flag:i16:i32 GR16:i16:$src1, (ld:i16 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                // Dst: (IMUL16rm:i16:i32 GR16:i16:$src1, addr:iPTR:$src2)
              /*SwitchType*/ 18,  MVT::i32,// ->51640
/*51622*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*51625*/       OPC_EmitMergeInputChains1_1,
/*51626*/       OPC_MorphNodeTo, TARGET_VAL(X86::IMUL32rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2/*#VTs*/, MVT::i32, MVT::i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (X86smul_flag:i32:i32 GR32:i32:$src1, (ld:i32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                // Dst: (IMUL32rm:i32:i32 GR32:i32:$src1, addr:iPTR:$src2)
              /*SwitchType*/ 18,  MVT::i64,// ->51660
/*51642*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*51645*/       OPC_EmitMergeInputChains1_1,
/*51646*/       OPC_MorphNodeTo, TARGET_VAL(X86::IMUL64rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2/*#VTs*/, MVT::i64, MVT::i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (X86smul_flag:i64:i32 GR64:i64:$src1, (ld:i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                // Dst: (IMUL64rm:i64:i32 GR64:i64:$src1, addr:iPTR:$src2)
              0, // EndSwitchType
/*51661*/   /*Scope*/ 77, /*->51739*/
/*51662*/     OPC_MoveChild, 0,
/*51664*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*51667*/     OPC_RecordMemRef,
/*51668*/     OPC_RecordNode, // #0 = 'ld' chained node
/*51669*/     OPC_CheckFoldableChainNode,
/*51670*/     OPC_RecordChild1, // #1 = $src2
/*51671*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*51673*/     OPC_CheckPredicate, 3, // Predicate_load
/*51675*/     OPC_MoveParent,
/*51676*/     OPC_RecordChild1, // #2 = $src1
/*51677*/     OPC_SwitchType /*3 cases */, 18,  MVT::i16,// ->51698
/*51680*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*51683*/       OPC_EmitMergeInputChains1_0,
/*51684*/       OPC_MorphNodeTo, TARGET_VAL(X86::IMUL16rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2/*#VTs*/, MVT::i16, MVT::i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                // Src: (X86smul_flag:i16:i32 (ld:i16 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, GR16:i16:$src1) - Complexity = 25
                // Dst: (IMUL16rm:i16:i32 GR16:i16:$src1, addr:iPTR:$src2)
              /*SwitchType*/ 18,  MVT::i32,// ->51718
/*51700*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*51703*/       OPC_EmitMergeInputChains1_0,
/*51704*/       OPC_MorphNodeTo, TARGET_VAL(X86::IMUL32rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2/*#VTs*/, MVT::i32, MVT::i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                // Src: (X86smul_flag:i32:i32 (ld:i32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, GR32:i32:$src1) - Complexity = 25
                // Dst: (IMUL32rm:i32:i32 GR32:i32:$src1, addr:iPTR:$src2)
              /*SwitchType*/ 18,  MVT::i64,// ->51738
/*51720*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*51723*/       OPC_EmitMergeInputChains1_0,
/*51724*/       OPC_MorphNodeTo, TARGET_VAL(X86::IMUL64rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2/*#VTs*/, MVT::i64, MVT::i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                // Src: (X86smul_flag:i64:i32 (ld:i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, GR64:i64:$src1) - Complexity = 25
                // Dst: (IMUL64rm:i64:i32 GR64:i64:$src1, addr:iPTR:$src2)
              0, // EndSwitchType
/*51739*/   /*Scope*/ 27|128,1/*155*/, /*->51896*/
/*51741*/     OPC_RecordChild0, // #0 = $src1
/*51742*/     OPC_RecordChild1, // #1 = $src2
/*51743*/     OPC_Scope, 111, /*->51856*/ // 4 children in Scope
/*51745*/       OPC_MoveChild, 1,
/*51747*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*51750*/       OPC_Scope, 17, /*->51769*/ // 5 children in Scope
/*51752*/         OPC_CheckPredicate, 8, // Predicate_i16immSExt8
/*51754*/         OPC_MoveParent,
/*51755*/         OPC_CheckType, MVT::i16,
/*51757*/         OPC_EmitConvertToTarget, 1,
/*51759*/         OPC_MorphNodeTo, TARGET_VAL(X86::IMUL16rri8), 0,
                      2/*#VTs*/, MVT::i16, MVT::i32, 2/*#Ops*/, 0, 2, 
                  // Src: (X86smul_flag:i16:i32 GR16:i16:$src1, (imm:i16)<<P:Predicate_i16immSExt8>>:$src2) - Complexity = 7
                  // Dst: (IMUL16rri8:i16:i32 GR16:i16:$src1, (imm:i16):$src2)
/*51769*/       /*Scope*/ 17, /*->51787*/
/*51770*/         OPC_CheckPredicate, 9, // Predicate_i32immSExt8
/*51772*/         OPC_MoveParent,
/*51773*/         OPC_CheckType, MVT::i32,
/*51775*/         OPC_EmitConvertToTarget, 1,
/*51777*/         OPC_MorphNodeTo, TARGET_VAL(X86::IMUL32rri8), 0,
                      2/*#VTs*/, MVT::i32, MVT::i32, 2/*#Ops*/, 0, 2, 
                  // Src: (X86smul_flag:i32:i32 GR32:i32:$src1, (imm:i32)<<P:Predicate_i32immSExt8>>:$src2) - Complexity = 7
                  // Dst: (IMUL32rri8:i32:i32 GR32:i32:$src1, (imm:i32):$src2)
/*51787*/       /*Scope*/ 17, /*->51805*/
/*51788*/         OPC_CheckPredicate, 11, // Predicate_i64immSExt32
/*51790*/         OPC_MoveParent,
/*51791*/         OPC_CheckType, MVT::i64,
/*51793*/         OPC_EmitConvertToTarget, 1,
/*51795*/         OPC_MorphNodeTo, TARGET_VAL(X86::IMUL64rri32), 0,
                      2/*#VTs*/, MVT::i64, MVT::i32, 2/*#Ops*/, 0, 2, 
                  // Src: (X86smul_flag:i64:i32 GR64:i64:$src1, (imm:i64)<<P:Predicate_i64immSExt32>>:$src2) - Complexity = 7
                  // Dst: (IMUL64rri32:i64:i32 GR64:i64:$src1, (imm:i64):$src2)
/*51805*/       /*Scope*/ 17, /*->51823*/
/*51806*/         OPC_CheckPredicate, 10, // Predicate_i64immSExt8
/*51808*/         OPC_MoveParent,
/*51809*/         OPC_CheckType, MVT::i64,
/*51811*/         OPC_EmitConvertToTarget, 1,
/*51813*/         OPC_MorphNodeTo, TARGET_VAL(X86::IMUL64rri8), 0,
                      2/*#VTs*/, MVT::i64, MVT::i32, 2/*#Ops*/, 0, 2, 
                  // Src: (X86smul_flag:i64:i32 GR64:i64:$src1, (imm:i64)<<P:Predicate_i64immSExt8>>:$src2) - Complexity = 7
                  // Dst: (IMUL64rri8:i64:i32 GR64:i64:$src1, (imm:i64):$src2)
/*51823*/       /*Scope*/ 31, /*->51855*/
/*51824*/         OPC_MoveParent,
/*51825*/         OPC_SwitchType /*2 cases */, 12,  MVT::i16,// ->51840
/*51828*/           OPC_EmitConvertToTarget, 1,
/*51830*/           OPC_MorphNodeTo, TARGET_VAL(X86::IMUL16rri), 0,
                        2/*#VTs*/, MVT::i16, MVT::i32, 2/*#Ops*/, 0, 2, 
                    // Src: (X86smul_flag:i16:i32 GR16:i16:$src1, (imm:i16):$src2) - Complexity = 6
                    // Dst: (IMUL16rri:i16:i32 GR16:i16:$src1, (imm:i16):$src2)
                  /*SwitchType*/ 12,  MVT::i32,// ->51854
/*51842*/           OPC_EmitConvertToTarget, 1,
/*51844*/           OPC_MorphNodeTo, TARGET_VAL(X86::IMUL32rri), 0,
                        2/*#VTs*/, MVT::i32, MVT::i32, 2/*#Ops*/, 0, 2, 
                    // Src: (X86smul_flag:i32:i32 GR32:i32:$src1, (imm:i32):$src2) - Complexity = 6
                    // Dst: (IMUL32rri:i32:i32 GR32:i32:$src1, (imm:i32):$src2)
                  0, // EndSwitchType
/*51855*/       0, /*End of Scope*/
/*51856*/     /*Scope*/ 12, /*->51869*/
/*51857*/       OPC_CheckType, MVT::i16,
/*51859*/       OPC_MorphNodeTo, TARGET_VAL(X86::IMUL16rr), 0,
                    2/*#VTs*/, MVT::i16, MVT::i32, 2/*#Ops*/, 0, 1, 
                // Src: (X86smul_flag:i16:i32 GR16:i16:$src1, GR16:i16:$src2) - Complexity = 3
                // Dst: (IMUL16rr:i16:i32 GR16:i16:$src1, GR16:i16:$src2)
/*51869*/     /*Scope*/ 12, /*->51882*/
/*51870*/       OPC_CheckType, MVT::i32,
/*51872*/       OPC_MorphNodeTo, TARGET_VAL(X86::IMUL32rr), 0,
                    2/*#VTs*/, MVT::i32, MVT::i32, 2/*#Ops*/, 0, 1, 
                // Src: (X86smul_flag:i32:i32 GR32:i32:$src1, GR32:i32:$src2) - Complexity = 3
                // Dst: (IMUL32rr:i32:i32 GR32:i32:$src1, GR32:i32:$src2)
/*51882*/     /*Scope*/ 12, /*->51895*/
/*51883*/       OPC_CheckType, MVT::i64,
/*51885*/       OPC_MorphNodeTo, TARGET_VAL(X86::IMUL64rr), 0,
                    2/*#VTs*/, MVT::i64, MVT::i32, 2/*#Ops*/, 0, 1, 
                // Src: (X86smul_flag:i64:i32 GR64:i64:$src1, GR64:i64:$src2) - Complexity = 3
                // Dst: (IMUL64rr:i64:i32 GR64:i64:$src1, GR64:i64:$src2)
/*51895*/     0, /*End of Scope*/
/*51896*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 52|128,7/*948*/,  TARGET_VAL(ISD::MUL),// ->52849
/*51901*/   OPC_Scope, 85|128,1/*213*/, /*->52117*/ // 7 children in Scope
/*51904*/     OPC_MoveChild, 0,
/*51906*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*51909*/     OPC_RecordMemRef,
/*51910*/     OPC_RecordNode, // #0 = 'ld' chained node
/*51911*/     OPC_CheckFoldableChainNode,
/*51912*/     OPC_RecordChild1, // #1 = $src1
/*51913*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*51915*/     OPC_Scope, 34, /*->51951*/ // 5 children in Scope
/*51917*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*51919*/       OPC_MoveParent,
/*51920*/       OPC_RecordChild1, // #2 = $src2
/*51921*/       OPC_MoveChild, 1,
/*51923*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*51926*/       OPC_CheckPredicate, 8, // Predicate_i16immSExt8
/*51928*/       OPC_MoveParent,
/*51929*/       OPC_CheckType, MVT::i16,
/*51931*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #3 #4 #5 #6 #7
/*51934*/       OPC_EmitMergeInputChains1_0,
/*51935*/       OPC_EmitConvertToTarget, 2,
/*51937*/       OPC_MorphNodeTo, TARGET_VAL(X86::IMUL16rmi8), 0|OPFL_Chain|OPFL_MemRefs,
                    2/*#VTs*/, MVT::i16, MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                // Src: (mul:i16 (ld:i16 addr:iPTR:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>, (imm:i16)<<P:Predicate_i16immSExt8>>:$src2) - Complexity = 29
                // Dst: (IMUL16rmi8:i16:i32 addr:iPTR:$src1, (imm:i16)<<P:Predicate_i16immSExt8>>:$src2)
/*51951*/     /*Scope*/ 34, /*->51986*/
/*51952*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*51954*/       OPC_MoveParent,
/*51955*/       OPC_RecordChild1, // #2 = $src2
/*51956*/       OPC_MoveChild, 1,
/*51958*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*51961*/       OPC_CheckPredicate, 9, // Predicate_i32immSExt8
/*51963*/       OPC_MoveParent,
/*51964*/       OPC_CheckType, MVT::i32,
/*51966*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #3 #4 #5 #6 #7
/*51969*/       OPC_EmitMergeInputChains1_0,
/*51970*/       OPC_EmitConvertToTarget, 2,
/*51972*/       OPC_MorphNodeTo, TARGET_VAL(X86::IMUL32rmi8), 0|OPFL_Chain|OPFL_MemRefs,
                    2/*#VTs*/, MVT::i32, MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                // Src: (mul:i32 (ld:i32 addr:iPTR:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>, (imm:i32)<<P:Predicate_i32immSExt8>>:$src2) - Complexity = 29
                // Dst: (IMUL32rmi8:i32:i32 addr:iPTR:$src1, (imm:i32)<<P:Predicate_i32immSExt8>>:$src2)
/*51986*/     /*Scope*/ 63, /*->52050*/
/*51987*/       OPC_CheckPredicate, 3, // Predicate_load
/*51989*/       OPC_MoveParent,
/*51990*/       OPC_RecordChild1, // #2 = $src2
/*51991*/       OPC_MoveChild, 1,
/*51993*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*51996*/       OPC_Scope, 25, /*->52023*/ // 2 children in Scope
/*51998*/         OPC_CheckPredicate, 10, // Predicate_i64immSExt8
/*52000*/         OPC_MoveParent,
/*52001*/         OPC_CheckType, MVT::i64,
/*52003*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #3 #4 #5 #6 #7
/*52006*/         OPC_EmitMergeInputChains1_0,
/*52007*/         OPC_EmitConvertToTarget, 2,
/*52009*/         OPC_MorphNodeTo, TARGET_VAL(X86::IMUL64rmi8), 0|OPFL_Chain|OPFL_MemRefs,
                      2/*#VTs*/, MVT::i64, MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                  // Src: (mul:i64 (ld:i64 addr:iPTR:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:i64)<<P:Predicate_i64immSExt8>>:$src2) - Complexity = 29
                  // Dst: (IMUL64rmi8:i64:i32 addr:iPTR:$src1, (imm:i64)<<P:Predicate_i64immSExt8>>:$src2)
/*52023*/       /*Scope*/ 25, /*->52049*/
/*52024*/         OPC_CheckPredicate, 11, // Predicate_i64immSExt32
/*52026*/         OPC_MoveParent,
/*52027*/         OPC_CheckType, MVT::i64,
/*52029*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #3 #4 #5 #6 #7
/*52032*/         OPC_EmitMergeInputChains1_0,
/*52033*/         OPC_EmitConvertToTarget, 2,
/*52035*/         OPC_MorphNodeTo, TARGET_VAL(X86::IMUL64rmi32), 0|OPFL_Chain|OPFL_MemRefs,
                      2/*#VTs*/, MVT::i64, MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                  // Src: (mul:i64 (ld:i64 addr:iPTR:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:i64)<<P:Predicate_i64immSExt32>>:$src2) - Complexity = 29
                  // Dst: (IMUL64rmi32:i64:i32 addr:iPTR:$src1, (imm:i64)<<P:Predicate_i64immSExt32>>:$src2)
/*52049*/       0, /*End of Scope*/
/*52050*/     /*Scope*/ 32, /*->52083*/
/*52051*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*52053*/       OPC_MoveParent,
/*52054*/       OPC_RecordChild1, // #2 = $src2
/*52055*/       OPC_MoveChild, 1,
/*52057*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*52060*/       OPC_MoveParent,
/*52061*/       OPC_CheckType, MVT::i16,
/*52063*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #3 #4 #5 #6 #7
/*52066*/       OPC_EmitMergeInputChains1_0,
/*52067*/       OPC_EmitConvertToTarget, 2,
/*52069*/       OPC_MorphNodeTo, TARGET_VAL(X86::IMUL16rmi), 0|OPFL_Chain|OPFL_MemRefs,
                    2/*#VTs*/, MVT::i16, MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                // Src: (mul:i16 (ld:i16 addr:iPTR:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>, (imm:i16):$src2) - Complexity = 28
                // Dst: (IMUL16rmi:i16:i32 addr:iPTR:$src1, (imm:i16):$src2)
/*52083*/     /*Scope*/ 32, /*->52116*/
/*52084*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*52086*/       OPC_MoveParent,
/*52087*/       OPC_RecordChild1, // #2 = $src2
/*52088*/       OPC_MoveChild, 1,
/*52090*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*52093*/       OPC_MoveParent,
/*52094*/       OPC_CheckType, MVT::i32,
/*52096*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #3 #4 #5 #6 #7
/*52099*/       OPC_EmitMergeInputChains1_0,
/*52100*/       OPC_EmitConvertToTarget, 2,
/*52102*/       OPC_MorphNodeTo, TARGET_VAL(X86::IMUL32rmi), 0|OPFL_Chain|OPFL_MemRefs,
                    2/*#VTs*/, MVT::i32, MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                // Src: (mul:i32 (ld:i32 addr:iPTR:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>, (imm:i32):$src2) - Complexity = 28
                // Dst: (IMUL32rmi:i32:i32 addr:iPTR:$src1, (imm:i32):$src2)
/*52116*/     0, /*End of Scope*/
/*52117*/   /*Scope*/ 112, /*->52230*/
/*52118*/     OPC_RecordChild0, // #0 = physreg input AL
/*52119*/     OPC_MoveChild, 1,
/*52121*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*52124*/     OPC_RecordMemRef,
/*52125*/     OPC_RecordNode, // #1 = 'ld' chained node
/*52126*/     OPC_CheckFoldableChainNode,
/*52127*/     OPC_RecordChild1, // #2 = $src
/*52128*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*52130*/     OPC_Scope, 25, /*->52157*/ // 4 children in Scope
/*52132*/       OPC_CheckPredicate, 3, // Predicate_load
/*52134*/       OPC_MoveParent,
/*52135*/       OPC_CheckType, MVT::i8,
/*52137*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src #3 #4 #5 #6 #7
/*52140*/       OPC_EmitMergeInputChains1_1,
/*52141*/       OPC_EmitCopyToReg, 0, X86::AL,
/*52144*/       OPC_MorphNodeTo, TARGET_VAL(X86::MUL8m), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                    2/*#VTs*/, MVT::i8, MVT::i32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                // Src: (mul:i8 AL:i8, (ld:i8 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                // Dst: (MUL8m:i8 addr:iPTR:$src)
/*52157*/     /*Scope*/ 23, /*->52181*/
/*52158*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*52160*/       OPC_MoveParent,
/*52161*/       OPC_CheckType, MVT::i16,
/*52163*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*52166*/       OPC_EmitMergeInputChains1_1,
/*52167*/       OPC_MorphNodeTo, TARGET_VAL(X86::IMUL16rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2/*#VTs*/, MVT::i16, MVT::i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (mul:i16 GR16:i16:$src1, (ld:i16 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>) - Complexity = 25
                // Dst: (IMUL16rm:i16:i32 GR16:i16:$src1, addr:iPTR:$src2)
/*52181*/     /*Scope*/ 23, /*->52205*/
/*52182*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*52184*/       OPC_MoveParent,
/*52185*/       OPC_CheckType, MVT::i32,
/*52187*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*52190*/       OPC_EmitMergeInputChains1_1,
/*52191*/       OPC_MorphNodeTo, TARGET_VAL(X86::IMUL32rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2/*#VTs*/, MVT::i32, MVT::i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (mul:i32 GR32:i32:$src1, (ld:i32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>) - Complexity = 25
                // Dst: (IMUL32rm:i32:i32 GR32:i32:$src1, addr:iPTR:$src2)
/*52205*/     /*Scope*/ 23, /*->52229*/
/*52206*/       OPC_CheckPredicate, 3, // Predicate_load
/*52208*/       OPC_MoveParent,
/*52209*/       OPC_CheckType, MVT::i64,
/*52211*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*52214*/       OPC_EmitMergeInputChains1_1,
/*52215*/       OPC_MorphNodeTo, TARGET_VAL(X86::IMUL64rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2/*#VTs*/, MVT::i64, MVT::i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (mul:i64 GR64:i64:$src1, (ld:i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                // Dst: (IMUL64rm:i64:i32 GR64:i64:$src1, addr:iPTR:$src2)
/*52229*/     0, /*End of Scope*/
/*52230*/   /*Scope*/ 88, /*->52319*/
/*52231*/     OPC_MoveChild, 0,
/*52233*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*52236*/     OPC_RecordMemRef,
/*52237*/     OPC_RecordNode, // #0 = 'ld' chained node
/*52238*/     OPC_CheckFoldableChainNode,
/*52239*/     OPC_RecordChild1, // #1 = $src2
/*52240*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*52242*/     OPC_Scope, 24, /*->52268*/ // 3 children in Scope
/*52244*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*52246*/       OPC_MoveParent,
/*52247*/       OPC_RecordChild1, // #2 = $src1
/*52248*/       OPC_CheckType, MVT::i16,
/*52250*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*52253*/       OPC_EmitMergeInputChains1_0,
/*52254*/       OPC_MorphNodeTo, TARGET_VAL(X86::IMUL16rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2/*#VTs*/, MVT::i16, MVT::i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                // Src: (mul:i16 (ld:i16 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>, GR16:i16:$src1) - Complexity = 25
                // Dst: (IMUL16rm:i16:i32 GR16:i16:$src1, addr:iPTR:$src2)
/*52268*/     /*Scope*/ 24, /*->52293*/
/*52269*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*52271*/       OPC_MoveParent,
/*52272*/       OPC_RecordChild1, // #2 = $src1
/*52273*/       OPC_CheckType, MVT::i32,
/*52275*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*52278*/       OPC_EmitMergeInputChains1_0,
/*52279*/       OPC_MorphNodeTo, TARGET_VAL(X86::IMUL32rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2/*#VTs*/, MVT::i32, MVT::i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                // Src: (mul:i32 (ld:i32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>, GR32:i32:$src1) - Complexity = 25
                // Dst: (IMUL32rm:i32:i32 GR32:i32:$src1, addr:iPTR:$src2)
/*52293*/     /*Scope*/ 24, /*->52318*/
/*52294*/       OPC_CheckPredicate, 3, // Predicate_load
/*52296*/       OPC_MoveParent,
/*52297*/       OPC_RecordChild1, // #2 = $src1
/*52298*/       OPC_CheckType, MVT::i64,
/*52300*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*52303*/       OPC_EmitMergeInputChains1_0,
/*52304*/       OPC_MorphNodeTo, TARGET_VAL(X86::IMUL64rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2/*#VTs*/, MVT::i64, MVT::i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                // Src: (mul:i64 (ld:i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, GR64:i64:$src1) - Complexity = 25
                // Dst: (IMUL64rm:i64:i32 GR64:i64:$src1, addr:iPTR:$src2)
/*52318*/     0, /*End of Scope*/
/*52319*/   /*Scope*/ 60, /*->52380*/
/*52320*/     OPC_RecordNode, // #0 = $src
/*52321*/     OPC_SwitchType /*2 cases */, 38,  MVT::i32,// ->52362
/*52324*/       OPC_Scope, 17, /*->52343*/ // 2 children in Scope
/*52326*/         OPC_CheckPatternPredicate, 3, // (!Subtarget->is64Bit())
/*52328*/         OPC_CheckComplexPat, /*CP*/3, /*#*/0, // SelectLEAAddr:$src #1 #2 #3 #4 #5
/*52331*/         OPC_MorphNodeTo, TARGET_VAL(X86::LEA32r), 0,
                      1/*#VTs*/, MVT::i32, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                  // Src: lea32addr:i32:$src - Complexity = 18
                  // Dst: (LEA32r:i32 lea32addr:i32:$src)
/*52343*/       /*Scope*/ 17, /*->52361*/
/*52344*/         OPC_CheckPatternPredicate, 4, // (Subtarget->is64Bit())
/*52346*/         OPC_CheckComplexPat, /*CP*/3, /*#*/0, // SelectLEAAddr:$src #1 #2 #3 #4 #5
/*52349*/         OPC_MorphNodeTo, TARGET_VAL(X86::LEA64_32r), 0,
                      1/*#VTs*/, MVT::i32, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                  // Src: lea32addr:i32:$src - Complexity = 18
                  // Dst: (LEA64_32r:i32 lea32addr:i32:$src)
/*52361*/       0, /*End of Scope*/
              /*SwitchType*/ 15,  MVT::i64,// ->52379
/*52364*/       OPC_CheckComplexPat, /*CP*/4, /*#*/0, // SelectLEAAddr:$src #1 #2 #3 #4 #5
/*52367*/       OPC_MorphNodeTo, TARGET_VAL(X86::LEA64r), 0,
                    1/*#VTs*/, MVT::i64, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                // Src: lea64addr:i64:$src - Complexity = 18
                // Dst: (LEA64r:i64 lea64addr:i64:$src)
              0, // EndSwitchType
/*52380*/   /*Scope*/ 33|128,2/*289*/, /*->52671*/
/*52382*/     OPC_RecordChild0, // #0 = $src1
/*52383*/     OPC_Scope, 41|128,1/*169*/, /*->52555*/ // 2 children in Scope
/*52386*/       OPC_RecordChild1, // #1 = $src2
/*52387*/       OPC_Scope, 111, /*->52500*/ // 5 children in Scope
/*52389*/         OPC_MoveChild, 1,
/*52391*/         OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*52394*/         OPC_Scope, 17, /*->52413*/ // 5 children in Scope
/*52396*/           OPC_CheckPredicate, 8, // Predicate_i16immSExt8
/*52398*/           OPC_MoveParent,
/*52399*/           OPC_CheckType, MVT::i16,
/*52401*/           OPC_EmitConvertToTarget, 1,
/*52403*/           OPC_MorphNodeTo, TARGET_VAL(X86::IMUL16rri8), 0,
                        2/*#VTs*/, MVT::i16, MVT::i32, 2/*#Ops*/, 0, 2, 
                    // Src: (mul:i16 GR16:i16:$src1, (imm:i16)<<P:Predicate_i16immSExt8>>:$src2) - Complexity = 7
                    // Dst: (IMUL16rri8:i16:i32 GR16:i16:$src1, (imm:i16)<<P:Predicate_i16immSExt8>>:$src2)
/*52413*/         /*Scope*/ 17, /*->52431*/
/*52414*/           OPC_CheckPredicate, 9, // Predicate_i32immSExt8
/*52416*/           OPC_MoveParent,
/*52417*/           OPC_CheckType, MVT::i32,
/*52419*/           OPC_EmitConvertToTarget, 1,
/*52421*/           OPC_MorphNodeTo, TARGET_VAL(X86::IMUL32rri8), 0,
                        2/*#VTs*/, MVT::i32, MVT::i32, 2/*#Ops*/, 0, 2, 
                    // Src: (mul:i32 GR32:i32:$src1, (imm:i32)<<P:Predicate_i32immSExt8>>:$src2) - Complexity = 7
                    // Dst: (IMUL32rri8:i32:i32 GR32:i32:$src1, (imm:i32)<<P:Predicate_i32immSExt8>>:$src2)
/*52431*/         /*Scope*/ 17, /*->52449*/
/*52432*/           OPC_CheckPredicate, 10, // Predicate_i64immSExt8
/*52434*/           OPC_MoveParent,
/*52435*/           OPC_CheckType, MVT::i64,
/*52437*/           OPC_EmitConvertToTarget, 1,
/*52439*/           OPC_MorphNodeTo, TARGET_VAL(X86::IMUL64rri8), 0,
                        2/*#VTs*/, MVT::i64, MVT::i32, 2/*#Ops*/, 0, 2, 
                    // Src: (mul:i64 GR64:i64:$src1, (imm:i64)<<P:Predicate_i64immSExt8>>:$src2) - Complexity = 7
                    // Dst: (IMUL64rri8:i64:i32 GR64:i64:$src1, (imm:i64)<<P:Predicate_i64immSExt8>>:$src2)
/*52449*/         /*Scope*/ 17, /*->52467*/
/*52450*/           OPC_CheckPredicate, 11, // Predicate_i64immSExt32
/*52452*/           OPC_MoveParent,
/*52453*/           OPC_CheckType, MVT::i64,
/*52455*/           OPC_EmitConvertToTarget, 1,
/*52457*/           OPC_MorphNodeTo, TARGET_VAL(X86::IMUL64rri32), 0,
                        2/*#VTs*/, MVT::i64, MVT::i32, 2/*#Ops*/, 0, 2, 
                    // Src: (mul:i64 GR64:i64:$src1, (imm:i64)<<P:Predicate_i64immSExt32>>:$src2) - Complexity = 7
                    // Dst: (IMUL64rri32:i64:i32 GR64:i64:$src1, (imm:i64)<<P:Predicate_i64immSExt32>>:$src2)
/*52467*/         /*Scope*/ 31, /*->52499*/
/*52468*/           OPC_MoveParent,
/*52469*/           OPC_SwitchType /*2 cases */, 12,  MVT::i16,// ->52484
/*52472*/             OPC_EmitConvertToTarget, 1,
/*52474*/             OPC_MorphNodeTo, TARGET_VAL(X86::IMUL16rri), 0,
                          2/*#VTs*/, MVT::i16, MVT::i32, 2/*#Ops*/, 0, 2, 
                      // Src: (mul:i16 GR16:i16:$src1, (imm:i16):$src2) - Complexity = 6
                      // Dst: (IMUL16rri:i16:i32 GR16:i16:$src1, (imm:i16):$src2)
                    /*SwitchType*/ 12,  MVT::i32,// ->52498
/*52486*/             OPC_EmitConvertToTarget, 1,
/*52488*/             OPC_MorphNodeTo, TARGET_VAL(X86::IMUL32rri), 0,
                          2/*#VTs*/, MVT::i32, MVT::i32, 2/*#Ops*/, 0, 2, 
                      // Src: (mul:i32 GR32:i32:$src1, (imm:i32):$src2) - Complexity = 6
                      // Dst: (IMUL32rri:i32:i32 GR32:i32:$src1, (imm:i32):$src2)
                    0, // EndSwitchType
/*52499*/         0, /*End of Scope*/
/*52500*/       /*Scope*/ 14, /*->52515*/
/*52501*/         OPC_CheckType, MVT::i8,
/*52503*/         OPC_EmitCopyToReg, 0, X86::AL,
/*52506*/         OPC_MorphNodeTo, TARGET_VAL(X86::MUL8r), 0|OPFL_GlueInput,
                      2/*#VTs*/, MVT::i8, MVT::i32, 1/*#Ops*/, 1, 
                  // Src: (mul:i8 AL:i8, GR8:i8:$src) - Complexity = 3
                  // Dst: (MUL8r:i8 GR8:i8:$src)
/*52515*/       /*Scope*/ 12, /*->52528*/
/*52516*/         OPC_CheckType, MVT::i16,
/*52518*/         OPC_MorphNodeTo, TARGET_VAL(X86::IMUL16rr), 0,
                      2/*#VTs*/, MVT::i16, MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (mul:i16 GR16:i16:$src1, GR16:i16:$src2) - Complexity = 3
                  // Dst: (IMUL16rr:i16:i32 GR16:i16:$src1, GR16:i16:$src2)
/*52528*/       /*Scope*/ 12, /*->52541*/
/*52529*/         OPC_CheckType, MVT::i32,
/*52531*/         OPC_MorphNodeTo, TARGET_VAL(X86::IMUL32rr), 0,
                      2/*#VTs*/, MVT::i32, MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (mul:i32 GR32:i32:$src1, GR32:i32:$src2) - Complexity = 3
                  // Dst: (IMUL32rr:i32:i32 GR32:i32:$src1, GR32:i32:$src2)
/*52541*/       /*Scope*/ 12, /*->52554*/
/*52542*/         OPC_CheckType, MVT::i64,
/*52544*/         OPC_MorphNodeTo, TARGET_VAL(X86::IMUL64rr), 0,
                      2/*#VTs*/, MVT::i64, MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (mul:i64 GR64:i64:$src1, GR64:i64:$src2) - Complexity = 3
                  // Dst: (IMUL64rr:i64:i32 GR64:i64:$src1, GR64:i64:$src2)
/*52554*/       0, /*End of Scope*/
/*52555*/     /*Scope*/ 114, /*->52670*/
/*52556*/       OPC_MoveChild, 1,
/*52558*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*52561*/       OPC_MoveChild, 0,
/*52563*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*52566*/       OPC_RecordMemRef,
/*52567*/       OPC_RecordNode, // #1 = 'ld' chained node
/*52568*/       OPC_CheckFoldableChainNode,
/*52569*/       OPC_RecordChild1, // #2 = $src2
/*52570*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*52572*/       OPC_CheckPredicate, 3, // Predicate_load
/*52574*/       OPC_CheckPredicate, 23, // Predicate_memop
/*52576*/       OPC_CheckType, MVT::v2i64,
/*52578*/       OPC_MoveParent,
/*52579*/       OPC_MoveParent,
/*52580*/       OPC_SwitchType /*2 cases */, 42,  MVT::v8i16,// ->52625
/*52583*/         OPC_Scope, 19, /*->52604*/ // 2 children in Scope
/*52585*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*52587*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*52590*/           OPC_EmitMergeInputChains1_1,
/*52591*/           OPC_MorphNodeTo, TARGET_VAL(X86::VPMULLWrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (mul:v8i16 VR128:v8i16:$src1, (bitconvert:v8i16 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 28
                    // Dst: (VPMULLWrm:v8i16 VR128:v8i16:$src1, addr:iPTR:$src2)
/*52604*/         /*Scope*/ 19, /*->52624*/
/*52605*/           OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*52607*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*52610*/           OPC_EmitMergeInputChains1_1,
/*52611*/           OPC_MorphNodeTo, TARGET_VAL(X86::PMULLWrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (mul:v8i16 VR128:v8i16:$src1, (bitconvert:v8i16 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 28
                    // Dst: (PMULLWrm:v8i16 VR128:v8i16:$src1, addr:iPTR:$src2)
/*52624*/         0, /*End of Scope*/
                /*SwitchType*/ 42,  MVT::v4i32,// ->52669
/*52627*/         OPC_Scope, 19, /*->52648*/ // 2 children in Scope
/*52629*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*52631*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*52634*/           OPC_EmitMergeInputChains1_1,
/*52635*/           OPC_MorphNodeTo, TARGET_VAL(X86::VPMULLDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (mul:v4i32 VR128:v4i32:$src1, (bitconvert:v4i32 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 28
                    // Dst: (VPMULLDrm:v4i32 VR128:v4i32:$src1, addr:iPTR:$src2)
/*52648*/         /*Scope*/ 19, /*->52668*/
/*52649*/           OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*52651*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*52654*/           OPC_EmitMergeInputChains1_1,
/*52655*/           OPC_MorphNodeTo, TARGET_VAL(X86::PMULLDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (mul:v4i32 VR128:v4i32:$src1, (bitconvert:v4i32 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 28
                    // Dst: (PMULLDrm:v4i32 VR128:v4i32:$src1, addr:iPTR:$src2)
/*52668*/         0, /*End of Scope*/
                0, // EndSwitchType
/*52670*/     0, /*End of Scope*/
/*52671*/   /*Scope*/ 115, /*->52787*/
/*52672*/     OPC_MoveChild, 0,
/*52674*/     OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*52677*/     OPC_MoveChild, 0,
/*52679*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*52682*/     OPC_RecordMemRef,
/*52683*/     OPC_RecordNode, // #0 = 'ld' chained node
/*52684*/     OPC_CheckFoldableChainNode,
/*52685*/     OPC_RecordChild1, // #1 = $src2
/*52686*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*52688*/     OPC_CheckPredicate, 3, // Predicate_load
/*52690*/     OPC_CheckPredicate, 23, // Predicate_memop
/*52692*/     OPC_CheckType, MVT::v2i64,
/*52694*/     OPC_MoveParent,
/*52695*/     OPC_MoveParent,
/*52696*/     OPC_RecordChild1, // #2 = $src1
/*52697*/     OPC_SwitchType /*2 cases */, 42,  MVT::v8i16,// ->52742
/*52700*/       OPC_Scope, 19, /*->52721*/ // 2 children in Scope
/*52702*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*52704*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*52707*/         OPC_EmitMergeInputChains1_0,
/*52708*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPMULLWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v8i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (mul:v8i16 (bitconvert:v8i16 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>), VR128:v8i16:$src1) - Complexity = 28
                  // Dst: (VPMULLWrm:v8i16 VR128:v8i16:$src1, addr:iPTR:$src2)
/*52721*/       /*Scope*/ 19, /*->52741*/
/*52722*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*52724*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*52727*/         OPC_EmitMergeInputChains1_0,
/*52728*/         OPC_MorphNodeTo, TARGET_VAL(X86::PMULLWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v8i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (mul:v8i16 (bitconvert:v8i16 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>), VR128:v8i16:$src1) - Complexity = 28
                  // Dst: (PMULLWrm:v8i16 VR128:v8i16:$src1, addr:iPTR:$src2)
/*52741*/       0, /*End of Scope*/
              /*SwitchType*/ 42,  MVT::v4i32,// ->52786
/*52744*/       OPC_Scope, 19, /*->52765*/ // 2 children in Scope
/*52746*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*52748*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*52751*/         OPC_EmitMergeInputChains1_0,
/*52752*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPMULLDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (mul:v4i32 (bitconvert:v4i32 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>), VR128:v4i32:$src1) - Complexity = 28
                  // Dst: (VPMULLDrm:v4i32 VR128:v4i32:$src1, addr:iPTR:$src2)
/*52765*/       /*Scope*/ 19, /*->52785*/
/*52766*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*52768*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*52771*/         OPC_EmitMergeInputChains1_0,
/*52772*/         OPC_MorphNodeTo, TARGET_VAL(X86::PMULLDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (mul:v4i32 (bitconvert:v4i32 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>), VR128:v4i32:$src1) - Complexity = 28
                  // Dst: (PMULLDrm:v4i32 VR128:v4i32:$src1, addr:iPTR:$src2)
/*52785*/       0, /*End of Scope*/
              0, // EndSwitchType
/*52787*/   /*Scope*/ 60, /*->52848*/
/*52788*/     OPC_RecordChild0, // #0 = $src1
/*52789*/     OPC_RecordChild1, // #1 = $src2
/*52790*/     OPC_SwitchType /*2 cases */, 26,  MVT::v8i16,// ->52819
/*52793*/       OPC_Scope, 11, /*->52806*/ // 2 children in Scope
/*52795*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*52797*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPMULLWrr), 0,
                      1/*#VTs*/, MVT::v8i16, 2/*#Ops*/, 0, 1, 
                  // Src: (mul:v8i16 VR128:v8i16:$src1, VR128:v8i16:$src2) - Complexity = 3
                  // Dst: (VPMULLWrr:v8i16 VR128:v8i16:$src1, VR128:v8i16:$src2)
/*52806*/       /*Scope*/ 11, /*->52818*/
/*52807*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*52809*/         OPC_MorphNodeTo, TARGET_VAL(X86::PMULLWrr), 0,
                      1/*#VTs*/, MVT::v8i16, 2/*#Ops*/, 0, 1, 
                  // Src: (mul:v8i16 VR128:v8i16:$src1, VR128:v8i16:$src2) - Complexity = 3
                  // Dst: (PMULLWrr:v8i16 VR128:v8i16:$src1, VR128:v8i16:$src2)
/*52818*/       0, /*End of Scope*/
              /*SwitchType*/ 26,  MVT::v4i32,// ->52847
/*52821*/       OPC_Scope, 11, /*->52834*/ // 2 children in Scope
/*52823*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*52825*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPMULLDrr), 0,
                      1/*#VTs*/, MVT::v4i32, 2/*#Ops*/, 0, 1, 
                  // Src: (mul:v4i32 VR128:v4i32:$src1, VR128:v4i32:$src2) - Complexity = 3
                  // Dst: (VPMULLDrr:v4i32 VR128:v4i32:$src1, VR128:v4i32:$src2)
/*52834*/       /*Scope*/ 11, /*->52846*/
/*52835*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*52837*/         OPC_MorphNodeTo, TARGET_VAL(X86::PMULLDrr), 0,
                      1/*#VTs*/, MVT::v4i32, 2/*#Ops*/, 0, 1, 
                  // Src: (mul:v4i32 VR128:v4i32:$src1, VR128:v4i32:$src2) - Complexity = 3
                  // Dst: (PMULLDrr:v4i32 VR128:v4i32:$src1, VR128:v4i32:$src2)
/*52846*/       0, /*End of Scope*/
              0, // EndSwitchType
/*52848*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 2|128,1/*130*/,  TARGET_VAL(X86ISD::BSF),// ->52983
/*52853*/   OPC_Scope, 84, /*->52939*/ // 2 children in Scope
/*52855*/     OPC_MoveChild, 0,
/*52857*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*52860*/     OPC_RecordMemRef,
/*52861*/     OPC_RecordNode, // #0 = 'ld' chained node
/*52862*/     OPC_RecordChild1, // #1 = $src
/*52863*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*52865*/     OPC_SwitchType /*3 cases */, 22,  MVT::i16,// ->52890
/*52868*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*52870*/       OPC_MoveParent,
/*52871*/       OPC_CheckType, MVT::i16,
/*52873*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*52876*/       OPC_EmitMergeInputChains1_0,
/*52877*/       OPC_MorphNodeTo, TARGET_VAL(X86::BSF16rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2/*#VTs*/, MVT::i16, MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (X86bsf:i16:i32 (ld:i16 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>) - Complexity = 25
                // Dst: (BSF16rm:i16:i32 addr:iPTR:$src)
              /*SwitchType*/ 22,  MVT::i32,// ->52914
/*52892*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*52894*/       OPC_MoveParent,
/*52895*/       OPC_CheckType, MVT::i32,
/*52897*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*52900*/       OPC_EmitMergeInputChains1_0,
/*52901*/       OPC_MorphNodeTo, TARGET_VAL(X86::BSF32rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2/*#VTs*/, MVT::i32, MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (X86bsf:i32:i32 (ld:i32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>) - Complexity = 25
                // Dst: (BSF32rm:i32:i32 addr:iPTR:$src)
              /*SwitchType*/ 22,  MVT::i64,// ->52938
/*52916*/       OPC_CheckPredicate, 3, // Predicate_load
/*52918*/       OPC_MoveParent,
/*52919*/       OPC_CheckType, MVT::i64,
/*52921*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*52924*/       OPC_EmitMergeInputChains1_0,
/*52925*/       OPC_MorphNodeTo, TARGET_VAL(X86::BSF64rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2/*#VTs*/, MVT::i64, MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (X86bsf:i64:i32 (ld:i64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                // Dst: (BSF64rm:i64:i32 addr:iPTR:$src)
              0, // EndSwitchType
/*52939*/   /*Scope*/ 42, /*->52982*/
/*52940*/     OPC_RecordChild0, // #0 = $src
/*52941*/     OPC_SwitchType /*3 cases */, 11,  MVT::i16,// ->52955
/*52944*/       OPC_CheckChild0Type, MVT::i16,
/*52946*/       OPC_MorphNodeTo, TARGET_VAL(X86::BSF16rr), 0,
                    2/*#VTs*/, MVT::i16, MVT::i32, 1/*#Ops*/, 0, 
                // Src: (X86bsf:i16:i32 GR16:i16:$src) - Complexity = 3
                // Dst: (BSF16rr:i16:i32 GR16:i16:$src)
              /*SwitchType*/ 11,  MVT::i32,// ->52968
/*52957*/       OPC_CheckChild0Type, MVT::i32,
/*52959*/       OPC_MorphNodeTo, TARGET_VAL(X86::BSF32rr), 0,
                    2/*#VTs*/, MVT::i32, MVT::i32, 1/*#Ops*/, 0, 
                // Src: (X86bsf:i32:i32 GR32:i32:$src) - Complexity = 3
                // Dst: (BSF32rr:i32:i32 GR32:i32:$src)
              /*SwitchType*/ 11,  MVT::i64,// ->52981
/*52970*/       OPC_CheckChild0Type, MVT::i64,
/*52972*/       OPC_MorphNodeTo, TARGET_VAL(X86::BSF64rr), 0,
                    2/*#VTs*/, MVT::i64, MVT::i32, 1/*#Ops*/, 0, 
                // Src: (X86bsf:i64:i32 GR64:i64:$src) - Complexity = 3
                // Dst: (BSF64rr:i64:i32 GR64:i64:$src)
              0, // EndSwitchType
/*52982*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 2|128,1/*130*/,  TARGET_VAL(X86ISD::BSR),// ->53117
/*52987*/   OPC_Scope, 84, /*->53073*/ // 2 children in Scope
/*52989*/     OPC_MoveChild, 0,
/*52991*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*52994*/     OPC_RecordMemRef,
/*52995*/     OPC_RecordNode, // #0 = 'ld' chained node
/*52996*/     OPC_RecordChild1, // #1 = $src
/*52997*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*52999*/     OPC_SwitchType /*3 cases */, 22,  MVT::i16,// ->53024
/*53002*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*53004*/       OPC_MoveParent,
/*53005*/       OPC_CheckType, MVT::i16,
/*53007*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*53010*/       OPC_EmitMergeInputChains1_0,
/*53011*/       OPC_MorphNodeTo, TARGET_VAL(X86::BSR16rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2/*#VTs*/, MVT::i16, MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (X86bsr:i16:i32 (ld:i16 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>) - Complexity = 25
                // Dst: (BSR16rm:i16:i32 addr:iPTR:$src)
              /*SwitchType*/ 22,  MVT::i32,// ->53048
/*53026*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*53028*/       OPC_MoveParent,
/*53029*/       OPC_CheckType, MVT::i32,
/*53031*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*53034*/       OPC_EmitMergeInputChains1_0,
/*53035*/       OPC_MorphNodeTo, TARGET_VAL(X86::BSR32rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2/*#VTs*/, MVT::i32, MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (X86bsr:i32:i32 (ld:i32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>) - Complexity = 25
                // Dst: (BSR32rm:i32:i32 addr:iPTR:$src)
              /*SwitchType*/ 22,  MVT::i64,// ->53072
/*53050*/       OPC_CheckPredicate, 3, // Predicate_load
/*53052*/       OPC_MoveParent,
/*53053*/       OPC_CheckType, MVT::i64,
/*53055*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*53058*/       OPC_EmitMergeInputChains1_0,
/*53059*/       OPC_MorphNodeTo, TARGET_VAL(X86::BSR64rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2/*#VTs*/, MVT::i64, MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (X86bsr:i64:i32 (ld:i64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                // Dst: (BSR64rm:i64:i32 addr:iPTR:$src)
              0, // EndSwitchType
/*53073*/   /*Scope*/ 42, /*->53116*/
/*53074*/     OPC_RecordChild0, // #0 = $src
/*53075*/     OPC_SwitchType /*3 cases */, 11,  MVT::i16,// ->53089
/*53078*/       OPC_CheckChild0Type, MVT::i16,
/*53080*/       OPC_MorphNodeTo, TARGET_VAL(X86::BSR16rr), 0,
                    2/*#VTs*/, MVT::i16, MVT::i32, 1/*#Ops*/, 0, 
                // Src: (X86bsr:i16:i32 GR16:i16:$src) - Complexity = 3
                // Dst: (BSR16rr:i16:i32 GR16:i16:$src)
              /*SwitchType*/ 11,  MVT::i32,// ->53102
/*53091*/       OPC_CheckChild0Type, MVT::i32,
/*53093*/       OPC_MorphNodeTo, TARGET_VAL(X86::BSR32rr), 0,
                    2/*#VTs*/, MVT::i32, MVT::i32, 1/*#Ops*/, 0, 
                // Src: (X86bsr:i32:i32 GR32:i32:$src) - Complexity = 3
                // Dst: (BSR32rr:i32:i32 GR32:i32:$src)
              /*SwitchType*/ 11,  MVT::i64,// ->53115
/*53104*/       OPC_CheckChild0Type, MVT::i64,
/*53106*/       OPC_MorphNodeTo, TARGET_VAL(X86::BSR64rr), 0,
                    2/*#VTs*/, MVT::i64, MVT::i32, 1/*#Ops*/, 0, 
                // Src: (X86bsr:i64:i32 GR64:i64:$src) - Complexity = 3
                // Dst: (BSR64rr:i64:i32 GR64:i64:$src)
              0, // EndSwitchType
/*53116*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 111,  TARGET_VAL(ISD::BSWAP),// ->53231
/*53120*/   OPC_Scope, 84, /*->53206*/ // 2 children in Scope
/*53122*/     OPC_MoveChild, 0,
/*53124*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*53127*/     OPC_RecordMemRef,
/*53128*/     OPC_RecordNode, // #0 = 'ld' chained node
/*53129*/     OPC_RecordChild1, // #1 = $src
/*53130*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*53132*/     OPC_Scope, 23, /*->53157*/ // 3 children in Scope
/*53134*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*53136*/       OPC_MoveParent,
/*53137*/       OPC_CheckType, MVT::i16,
/*53139*/       OPC_CheckPatternPredicate, 7, // (Subtarget->hasMOVBE())
/*53141*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*53144*/       OPC_EmitMergeInputChains1_0,
/*53145*/       OPC_MorphNodeTo, TARGET_VAL(X86::MOVBE16rm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (bswap:i16 (ld:i16 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>) - Complexity = 25
                // Dst: (MOVBE16rm:i16 addr:iPTR:$src)
/*53157*/     /*Scope*/ 23, /*->53181*/
/*53158*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*53160*/       OPC_MoveParent,
/*53161*/       OPC_CheckType, MVT::i32,
/*53163*/       OPC_CheckPatternPredicate, 7, // (Subtarget->hasMOVBE())
/*53165*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*53168*/       OPC_EmitMergeInputChains1_0,
/*53169*/       OPC_MorphNodeTo, TARGET_VAL(X86::MOVBE32rm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (bswap:i32 (ld:i32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>) - Complexity = 25
                // Dst: (MOVBE32rm:i32 addr:iPTR:$src)
/*53181*/     /*Scope*/ 23, /*->53205*/
/*53182*/       OPC_CheckPredicate, 3, // Predicate_load
/*53184*/       OPC_MoveParent,
/*53185*/       OPC_CheckType, MVT::i64,
/*53187*/       OPC_CheckPatternPredicate, 7, // (Subtarget->hasMOVBE())
/*53189*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*53192*/       OPC_EmitMergeInputChains1_0,
/*53193*/       OPC_MorphNodeTo, TARGET_VAL(X86::MOVBE64rm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (bswap:i64 (ld:i64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                // Dst: (MOVBE64rm:i64 addr:iPTR:$src)
/*53205*/     0, /*End of Scope*/
/*53206*/   /*Scope*/ 23, /*->53230*/
/*53207*/     OPC_RecordChild0, // #0 = $src
/*53208*/     OPC_SwitchType /*2 cases */, 8,  MVT::i32,// ->53219
/*53211*/       OPC_MorphNodeTo, TARGET_VAL(X86::BSWAP32r), 0,
                    1/*#VTs*/, MVT::i32, 1/*#Ops*/, 0, 
                // Src: (bswap:i32 GR32:i32:$src) - Complexity = 3
                // Dst: (BSWAP32r:i32 GR32:i32:$src)
              /*SwitchType*/ 8,  MVT::i64,// ->53229
/*53221*/       OPC_MorphNodeTo, TARGET_VAL(X86::BSWAP64r), 0,
                    1/*#VTs*/, MVT::i64, 1/*#Ops*/, 0, 
                // Src: (bswap:i64 GR64:i64:$src) - Complexity = 3
                // Dst: (BSWAP64r:i64 GR64:i64:$src)
              0, // EndSwitchType
/*53230*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 5|128,1/*133*/,  TARGET_VAL(ISD::CTLZ),// ->53368
/*53235*/   OPC_Scope, 87, /*->53324*/ // 2 children in Scope
/*53237*/     OPC_MoveChild, 0,
/*53239*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*53242*/     OPC_RecordMemRef,
/*53243*/     OPC_RecordNode, // #0 = 'ld' chained node
/*53244*/     OPC_RecordChild1, // #1 = $src
/*53245*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*53247*/     OPC_Scope, 24, /*->53273*/ // 3 children in Scope
/*53249*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*53251*/       OPC_MoveParent,
/*53252*/       OPC_CheckType, MVT::i16,
/*53254*/       OPC_CheckPatternPredicate, 21, // (Subtarget->hasLZCNT())
/*53256*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*53259*/       OPC_EmitMergeInputChains1_0,
/*53260*/       OPC_MorphNodeTo, TARGET_VAL(X86::LZCNT16rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2/*#VTs*/, MVT::i16, MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (ctlz:i16 (ld:i16 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>) - Complexity = 25
                // Dst: (LZCNT16rm:i16:i32 addr:iPTR:$src)
/*53273*/     /*Scope*/ 24, /*->53298*/
/*53274*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*53276*/       OPC_MoveParent,
/*53277*/       OPC_CheckType, MVT::i32,
/*53279*/       OPC_CheckPatternPredicate, 21, // (Subtarget->hasLZCNT())
/*53281*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*53284*/       OPC_EmitMergeInputChains1_0,
/*53285*/       OPC_MorphNodeTo, TARGET_VAL(X86::LZCNT32rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2/*#VTs*/, MVT::i32, MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (ctlz:i32 (ld:i32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>) - Complexity = 25
                // Dst: (LZCNT32rm:i32:i32 addr:iPTR:$src)
/*53298*/     /*Scope*/ 24, /*->53323*/
/*53299*/       OPC_CheckPredicate, 3, // Predicate_load
/*53301*/       OPC_MoveParent,
/*53302*/       OPC_CheckType, MVT::i64,
/*53304*/       OPC_CheckPatternPredicate, 21, // (Subtarget->hasLZCNT())
/*53306*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*53309*/       OPC_EmitMergeInputChains1_0,
/*53310*/       OPC_MorphNodeTo, TARGET_VAL(X86::LZCNT64rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2/*#VTs*/, MVT::i64, MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (ctlz:i64 (ld:i64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                // Dst: (LZCNT64rm:i64:i32 addr:iPTR:$src)
/*53323*/     0, /*End of Scope*/
/*53324*/   /*Scope*/ 42, /*->53367*/
/*53325*/     OPC_RecordChild0, // #0 = $src
/*53326*/     OPC_SwitchType /*3 cases */, 11,  MVT::i16,// ->53340
/*53329*/       OPC_CheckPatternPredicate, 21, // (Subtarget->hasLZCNT())
/*53331*/       OPC_MorphNodeTo, TARGET_VAL(X86::LZCNT16rr), 0,
                    2/*#VTs*/, MVT::i16, MVT::i32, 1/*#Ops*/, 0, 
                // Src: (ctlz:i16 GR16:i16:$src) - Complexity = 3
                // Dst: (LZCNT16rr:i16:i32 GR16:i16:$src)
              /*SwitchType*/ 11,  MVT::i32,// ->53353
/*53342*/       OPC_CheckPatternPredicate, 21, // (Subtarget->hasLZCNT())
/*53344*/       OPC_MorphNodeTo, TARGET_VAL(X86::LZCNT32rr), 0,
                    2/*#VTs*/, MVT::i32, MVT::i32, 1/*#Ops*/, 0, 
                // Src: (ctlz:i32 GR32:i32:$src) - Complexity = 3
                // Dst: (LZCNT32rr:i32:i32 GR32:i32:$src)
              /*SwitchType*/ 11,  MVT::i64,// ->53366
/*53355*/       OPC_CheckPatternPredicate, 21, // (Subtarget->hasLZCNT())
/*53357*/       OPC_MorphNodeTo, TARGET_VAL(X86::LZCNT64rr), 0,
                    2/*#VTs*/, MVT::i64, MVT::i32, 1/*#Ops*/, 0, 
                // Src: (ctlz:i64 GR64:i64:$src) - Complexity = 3
                // Dst: (LZCNT64rr:i64:i32 GR64:i64:$src)
              0, // EndSwitchType
/*53367*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 5|128,1/*133*/,  TARGET_VAL(ISD::CTTZ),// ->53505
/*53372*/   OPC_Scope, 87, /*->53461*/ // 2 children in Scope
/*53374*/     OPC_MoveChild, 0,
/*53376*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*53379*/     OPC_RecordMemRef,
/*53380*/     OPC_RecordNode, // #0 = 'ld' chained node
/*53381*/     OPC_RecordChild1, // #1 = $src
/*53382*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*53384*/     OPC_Scope, 24, /*->53410*/ // 3 children in Scope
/*53386*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*53388*/       OPC_MoveParent,
/*53389*/       OPC_CheckType, MVT::i16,
/*53391*/       OPC_CheckPatternPredicate, 22, // (Subtarget->hasBMI())
/*53393*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*53396*/       OPC_EmitMergeInputChains1_0,
/*53397*/       OPC_MorphNodeTo, TARGET_VAL(X86::TZCNT16rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2/*#VTs*/, MVT::i16, MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (cttz:i16 (ld:i16 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>) - Complexity = 25
                // Dst: (TZCNT16rm:i16:i32 addr:iPTR:$src)
/*53410*/     /*Scope*/ 24, /*->53435*/
/*53411*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*53413*/       OPC_MoveParent,
/*53414*/       OPC_CheckType, MVT::i32,
/*53416*/       OPC_CheckPatternPredicate, 22, // (Subtarget->hasBMI())
/*53418*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*53421*/       OPC_EmitMergeInputChains1_0,
/*53422*/       OPC_MorphNodeTo, TARGET_VAL(X86::TZCNT32rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2/*#VTs*/, MVT::i32, MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (cttz:i32 (ld:i32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>) - Complexity = 25
                // Dst: (TZCNT32rm:i32:i32 addr:iPTR:$src)
/*53435*/     /*Scope*/ 24, /*->53460*/
/*53436*/       OPC_CheckPredicate, 3, // Predicate_load
/*53438*/       OPC_MoveParent,
/*53439*/       OPC_CheckType, MVT::i64,
/*53441*/       OPC_CheckPatternPredicate, 22, // (Subtarget->hasBMI())
/*53443*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*53446*/       OPC_EmitMergeInputChains1_0,
/*53447*/       OPC_MorphNodeTo, TARGET_VAL(X86::TZCNT64rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2/*#VTs*/, MVT::i64, MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (cttz:i64 (ld:i64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                // Dst: (TZCNT64rm:i64:i32 addr:iPTR:$src)
/*53460*/     0, /*End of Scope*/
/*53461*/   /*Scope*/ 42, /*->53504*/
/*53462*/     OPC_RecordChild0, // #0 = $src
/*53463*/     OPC_SwitchType /*3 cases */, 11,  MVT::i16,// ->53477
/*53466*/       OPC_CheckPatternPredicate, 22, // (Subtarget->hasBMI())
/*53468*/       OPC_MorphNodeTo, TARGET_VAL(X86::TZCNT16rr), 0,
                    2/*#VTs*/, MVT::i16, MVT::i32, 1/*#Ops*/, 0, 
                // Src: (cttz:i16 GR16:i16:$src) - Complexity = 3
                // Dst: (TZCNT16rr:i16:i32 GR16:i16:$src)
              /*SwitchType*/ 11,  MVT::i32,// ->53490
/*53479*/       OPC_CheckPatternPredicate, 22, // (Subtarget->hasBMI())
/*53481*/       OPC_MorphNodeTo, TARGET_VAL(X86::TZCNT32rr), 0,
                    2/*#VTs*/, MVT::i32, MVT::i32, 1/*#Ops*/, 0, 
                // Src: (cttz:i32 GR32:i32:$src) - Complexity = 3
                // Dst: (TZCNT32rr:i32:i32 GR32:i32:$src)
              /*SwitchType*/ 11,  MVT::i64,// ->53503
/*53492*/       OPC_CheckPatternPredicate, 22, // (Subtarget->hasBMI())
/*53494*/       OPC_MorphNodeTo, TARGET_VAL(X86::TZCNT64rr), 0,
                    2/*#VTs*/, MVT::i64, MVT::i32, 1/*#Ops*/, 0, 
                // Src: (cttz:i64 GR64:i64:$src) - Complexity = 3
                // Dst: (TZCNT64rr:i64:i32 GR64:i64:$src)
              0, // EndSwitchType
/*53504*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 27|128,3/*411*/,  TARGET_VAL(X86ISD::AND),// ->53920
/*53509*/   OPC_Scope, 110, /*->53621*/ // 3 children in Scope
/*53511*/     OPC_RecordChild0, // #0 = $src1
/*53512*/     OPC_MoveChild, 1,
/*53514*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*53517*/     OPC_RecordMemRef,
/*53518*/     OPC_RecordNode, // #1 = 'ld' chained node
/*53519*/     OPC_CheckFoldableChainNode,
/*53520*/     OPC_RecordChild1, // #2 = $src2
/*53521*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*53523*/     OPC_Scope, 23, /*->53548*/ // 4 children in Scope
/*53525*/       OPC_CheckPredicate, 3, // Predicate_load
/*53527*/       OPC_MoveParent,
/*53528*/       OPC_CheckType, MVT::i8,
/*53530*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*53533*/       OPC_EmitMergeInputChains1_1,
/*53534*/       OPC_MorphNodeTo, TARGET_VAL(X86::AND8rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2/*#VTs*/, MVT::i8, MVT::i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (X86and_flag:i8:i32 GR8:i8:$src1, (ld:i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                // Dst: (AND8rm:i8:i32 GR8:i8:$src1, addr:iPTR:$src2)
/*53548*/     /*Scope*/ 23, /*->53572*/
/*53549*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*53551*/       OPC_MoveParent,
/*53552*/       OPC_CheckType, MVT::i16,
/*53554*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*53557*/       OPC_EmitMergeInputChains1_1,
/*53558*/       OPC_MorphNodeTo, TARGET_VAL(X86::AND16rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2/*#VTs*/, MVT::i16, MVT::i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (X86and_flag:i16:i32 GR16:i16:$src1, (ld:i16 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>) - Complexity = 25
                // Dst: (AND16rm:i16:i32 GR16:i16:$src1, addr:iPTR:$src2)
/*53572*/     /*Scope*/ 23, /*->53596*/
/*53573*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*53575*/       OPC_MoveParent,
/*53576*/       OPC_CheckType, MVT::i32,
/*53578*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*53581*/       OPC_EmitMergeInputChains1_1,
/*53582*/       OPC_MorphNodeTo, TARGET_VAL(X86::AND32rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2/*#VTs*/, MVT::i32, MVT::i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (X86and_flag:i32:i32 GR32:i32:$src1, (ld:i32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>) - Complexity = 25
                // Dst: (AND32rm:i32:i32 GR32:i32:$src1, addr:iPTR:$src2)
/*53596*/     /*Scope*/ 23, /*->53620*/
/*53597*/       OPC_CheckPredicate, 3, // Predicate_load
/*53599*/       OPC_MoveParent,
/*53600*/       OPC_CheckType, MVT::i64,
/*53602*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*53605*/       OPC_EmitMergeInputChains1_1,
/*53606*/       OPC_MorphNodeTo, TARGET_VAL(X86::AND64rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2/*#VTs*/, MVT::i64, MVT::i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (X86and_flag:i64:i32 GR64:i64:$src1, (ld:i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                // Dst: (AND64rm:i64:i32 GR64:i64:$src1, addr:iPTR:$src2)
/*53620*/     0, /*End of Scope*/
/*53621*/   /*Scope*/ 113, /*->53735*/
/*53622*/     OPC_MoveChild, 0,
/*53624*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*53627*/     OPC_RecordMemRef,
/*53628*/     OPC_RecordNode, // #0 = 'ld' chained node
/*53629*/     OPC_CheckFoldableChainNode,
/*53630*/     OPC_RecordChild1, // #1 = $src2
/*53631*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*53633*/     OPC_Scope, 24, /*->53659*/ // 4 children in Scope
/*53635*/       OPC_CheckPredicate, 3, // Predicate_load
/*53637*/       OPC_MoveParent,
/*53638*/       OPC_RecordChild1, // #2 = $src1
/*53639*/       OPC_CheckType, MVT::i8,
/*53641*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*53644*/       OPC_EmitMergeInputChains1_0,
/*53645*/       OPC_MorphNodeTo, TARGET_VAL(X86::AND8rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2/*#VTs*/, MVT::i8, MVT::i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                // Src: (X86and_flag:i8:i32 (ld:i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, GR8:i8:$src1) - Complexity = 25
                // Dst: (AND8rm:i8:i32 GR8:i8:$src1, addr:iPTR:$src2)
/*53659*/     /*Scope*/ 24, /*->53684*/
/*53660*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*53662*/       OPC_MoveParent,
/*53663*/       OPC_RecordChild1, // #2 = $src1
/*53664*/       OPC_CheckType, MVT::i16,
/*53666*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*53669*/       OPC_EmitMergeInputChains1_0,
/*53670*/       OPC_MorphNodeTo, TARGET_VAL(X86::AND16rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2/*#VTs*/, MVT::i16, MVT::i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                // Src: (X86and_flag:i16:i32 (ld:i16 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>, GR16:i16:$src1) - Complexity = 25
                // Dst: (AND16rm:i16:i32 GR16:i16:$src1, addr:iPTR:$src2)
/*53684*/     /*Scope*/ 24, /*->53709*/
/*53685*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*53687*/       OPC_MoveParent,
/*53688*/       OPC_RecordChild1, // #2 = $src1
/*53689*/       OPC_CheckType, MVT::i32,
/*53691*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*53694*/       OPC_EmitMergeInputChains1_0,
/*53695*/       OPC_MorphNodeTo, TARGET_VAL(X86::AND32rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2/*#VTs*/, MVT::i32, MVT::i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                // Src: (X86and_flag:i32:i32 (ld:i32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>, GR32:i32:$src1) - Complexity = 25
                // Dst: (AND32rm:i32:i32 GR32:i32:$src1, addr:iPTR:$src2)
/*53709*/     /*Scope*/ 24, /*->53734*/
/*53710*/       OPC_CheckPredicate, 3, // Predicate_load
/*53712*/       OPC_MoveParent,
/*53713*/       OPC_RecordChild1, // #2 = $src1
/*53714*/       OPC_CheckType, MVT::i64,
/*53716*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*53719*/       OPC_EmitMergeInputChains1_0,
/*53720*/       OPC_MorphNodeTo, TARGET_VAL(X86::AND64rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2/*#VTs*/, MVT::i64, MVT::i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                // Src: (X86and_flag:i64:i32 (ld:i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, GR64:i64:$src1) - Complexity = 25
                // Dst: (AND64rm:i64:i32 GR64:i64:$src1, addr:iPTR:$src2)
/*53734*/     0, /*End of Scope*/
/*53735*/   /*Scope*/ 54|128,1/*182*/, /*->53919*/
/*53737*/     OPC_RecordChild0, // #0 = $src1
/*53738*/     OPC_RecordChild1, // #1 = $src2
/*53739*/     OPC_Scope, 125, /*->53866*/ // 5 children in Scope
/*53741*/       OPC_MoveChild, 1,
/*53743*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*53746*/       OPC_Scope, 17, /*->53765*/ // 5 children in Scope
/*53748*/         OPC_CheckPredicate, 8, // Predicate_i16immSExt8
/*53750*/         OPC_MoveParent,
/*53751*/         OPC_CheckType, MVT::i16,
/*53753*/         OPC_EmitConvertToTarget, 1,
/*53755*/         OPC_MorphNodeTo, TARGET_VAL(X86::AND16ri8), 0,
                      2/*#VTs*/, MVT::i16, MVT::i32, 2/*#Ops*/, 0, 2, 
                  // Src: (X86and_flag:i16:i32 GR16:i16:$src1, (imm:i16)<<P:Predicate_i16immSExt8>>:$src2) - Complexity = 7
                  // Dst: (AND16ri8:i16:i32 GR16:i16:$src1, (imm:i16):$src2)
/*53765*/       /*Scope*/ 17, /*->53783*/
/*53766*/         OPC_CheckPredicate, 9, // Predicate_i32immSExt8
/*53768*/         OPC_MoveParent,
/*53769*/         OPC_CheckType, MVT::i32,
/*53771*/         OPC_EmitConvertToTarget, 1,
/*53773*/         OPC_MorphNodeTo, TARGET_VAL(X86::AND32ri8), 0,
                      2/*#VTs*/, MVT::i32, MVT::i32, 2/*#Ops*/, 0, 2, 
                  // Src: (X86and_flag:i32:i32 GR32:i32:$src1, (imm:i32)<<P:Predicate_i32immSExt8>>:$src2) - Complexity = 7
                  // Dst: (AND32ri8:i32:i32 GR32:i32:$src1, (imm:i32):$src2)
/*53783*/       /*Scope*/ 17, /*->53801*/
/*53784*/         OPC_CheckPredicate, 10, // Predicate_i64immSExt8
/*53786*/         OPC_MoveParent,
/*53787*/         OPC_CheckType, MVT::i64,
/*53789*/         OPC_EmitConvertToTarget, 1,
/*53791*/         OPC_MorphNodeTo, TARGET_VAL(X86::AND64ri8), 0,
                      2/*#VTs*/, MVT::i64, MVT::i32, 2/*#Ops*/, 0, 2, 
                  // Src: (X86and_flag:i64:i32 GR64:i64:$src1, (imm:i64)<<P:Predicate_i64immSExt8>>:$src2) - Complexity = 7
                  // Dst: (AND64ri8:i64:i32 GR64:i64:$src1, (imm:i64):$src2)
/*53801*/       /*Scope*/ 17, /*->53819*/
/*53802*/         OPC_CheckPredicate, 11, // Predicate_i64immSExt32
/*53804*/         OPC_MoveParent,
/*53805*/         OPC_CheckType, MVT::i64,
/*53807*/         OPC_EmitConvertToTarget, 1,
/*53809*/         OPC_MorphNodeTo, TARGET_VAL(X86::AND64ri32), 0,
                      2/*#VTs*/, MVT::i64, MVT::i32, 2/*#Ops*/, 0, 2, 
                  // Src: (X86and_flag:i64:i32 GR64:i64:$src1, (imm:i64)<<P:Predicate_i64immSExt32>>:$src2) - Complexity = 7
                  // Dst: (AND64ri32:i64:i32 GR64:i64:$src1, (imm:i64):$src2)
/*53819*/       /*Scope*/ 45, /*->53865*/
/*53820*/         OPC_MoveParent,
/*53821*/         OPC_SwitchType /*3 cases */, 12,  MVT::i8,// ->53836
/*53824*/           OPC_EmitConvertToTarget, 1,
/*53826*/           OPC_MorphNodeTo, TARGET_VAL(X86::AND8ri), 0,
                        2/*#VTs*/, MVT::i8, MVT::i32, 2/*#Ops*/, 0, 2, 
                    // Src: (X86and_flag:i8:i32 GR8:i8:$src1, (imm:i8):$src2) - Complexity = 6
                    // Dst: (AND8ri:i8:i32 GR8:i8:$src1, (imm:i8):$src2)
                  /*SwitchType*/ 12,  MVT::i16,// ->53850
/*53838*/           OPC_EmitConvertToTarget, 1,
/*53840*/           OPC_MorphNodeTo, TARGET_VAL(X86::AND16ri), 0,
                        2/*#VTs*/, MVT::i16, MVT::i32, 2/*#Ops*/, 0, 2, 
                    // Src: (X86and_flag:i16:i32 GR16:i16:$src1, (imm:i16):$src2) - Complexity = 6
                    // Dst: (AND16ri:i16:i32 GR16:i16:$src1, (imm:i16):$src2)
                  /*SwitchType*/ 12,  MVT::i32,// ->53864
/*53852*/           OPC_EmitConvertToTarget, 1,
/*53854*/           OPC_MorphNodeTo, TARGET_VAL(X86::AND32ri), 0,
                        2/*#VTs*/, MVT::i32, MVT::i32, 2/*#Ops*/, 0, 2, 
                    // Src: (X86and_flag:i32:i32 GR32:i32:$src1, (imm:i32):$src2) - Complexity = 6
                    // Dst: (AND32ri:i32:i32 GR32:i32:$src1, (imm:i32):$src2)
                  0, // EndSwitchType
/*53865*/       0, /*End of Scope*/
/*53866*/     /*Scope*/ 12, /*->53879*/
/*53867*/       OPC_CheckType, MVT::i8,
/*53869*/       OPC_MorphNodeTo, TARGET_VAL(X86::AND8rr), 0,
                    2/*#VTs*/, MVT::i8, MVT::i32, 2/*#Ops*/, 0, 1, 
                // Src: (X86and_flag:i8:i32 GR8:i8:$src1, GR8:i8:$src2) - Complexity = 3
                // Dst: (AND8rr:i8:i32 GR8:i8:$src1, GR8:i8:$src2)
/*53879*/     /*Scope*/ 12, /*->53892*/
/*53880*/       OPC_CheckType, MVT::i16,
/*53882*/       OPC_MorphNodeTo, TARGET_VAL(X86::AND16rr), 0,
                    2/*#VTs*/, MVT::i16, MVT::i32, 2/*#Ops*/, 0, 1, 
                // Src: (X86and_flag:i16:i32 GR16:i16:$src1, GR16:i16:$src2) - Complexity = 3
                // Dst: (AND16rr:i16:i32 GR16:i16:$src1, GR16:i16:$src2)
/*53892*/     /*Scope*/ 12, /*->53905*/
/*53893*/       OPC_CheckType, MVT::i32,
/*53895*/       OPC_MorphNodeTo, TARGET_VAL(X86::AND32rr), 0,
                    2/*#VTs*/, MVT::i32, MVT::i32, 2/*#Ops*/, 0, 1, 
                // Src: (X86and_flag:i32:i32 GR32:i32:$src1, GR32:i32:$src2) - Complexity = 3
                // Dst: (AND32rr:i32:i32 GR32:i32:$src1, GR32:i32:$src2)
/*53905*/     /*Scope*/ 12, /*->53918*/
/*53906*/       OPC_CheckType, MVT::i64,
/*53908*/       OPC_MorphNodeTo, TARGET_VAL(X86::AND64rr), 0,
                    2/*#VTs*/, MVT::i64, MVT::i32, 2/*#Ops*/, 0, 1, 
                // Src: (X86and_flag:i64:i32 GR64:i64:$src1, GR64:i64:$src2) - Complexity = 3
                // Dst: (AND64rr:i64:i32 GR64:i64:$src1, GR64:i64:$src2)
/*53918*/     0, /*End of Scope*/
/*53919*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 27|128,3/*411*/,  TARGET_VAL(X86ISD::OR),// ->54335
/*53924*/   OPC_Scope, 110, /*->54036*/ // 3 children in Scope
/*53926*/     OPC_RecordChild0, // #0 = $src1
/*53927*/     OPC_MoveChild, 1,
/*53929*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*53932*/     OPC_RecordMemRef,
/*53933*/     OPC_RecordNode, // #1 = 'ld' chained node
/*53934*/     OPC_CheckFoldableChainNode,
/*53935*/     OPC_RecordChild1, // #2 = $src2
/*53936*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*53938*/     OPC_Scope, 23, /*->53963*/ // 4 children in Scope
/*53940*/       OPC_CheckPredicate, 3, // Predicate_load
/*53942*/       OPC_MoveParent,
/*53943*/       OPC_CheckType, MVT::i8,
/*53945*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*53948*/       OPC_EmitMergeInputChains1_1,
/*53949*/       OPC_MorphNodeTo, TARGET_VAL(X86::OR8rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2/*#VTs*/, MVT::i8, MVT::i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (X86or_flag:i8:i32 GR8:i8:$src1, (ld:i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                // Dst: (OR8rm:i8:i32 GR8:i8:$src1, addr:iPTR:$src2)
/*53963*/     /*Scope*/ 23, /*->53987*/
/*53964*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*53966*/       OPC_MoveParent,
/*53967*/       OPC_CheckType, MVT::i16,
/*53969*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*53972*/       OPC_EmitMergeInputChains1_1,
/*53973*/       OPC_MorphNodeTo, TARGET_VAL(X86::OR16rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2/*#VTs*/, MVT::i16, MVT::i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (X86or_flag:i16:i32 GR16:i16:$src1, (ld:i16 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>) - Complexity = 25
                // Dst: (OR16rm:i16:i32 GR16:i16:$src1, addr:iPTR:$src2)
/*53987*/     /*Scope*/ 23, /*->54011*/
/*53988*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*53990*/       OPC_MoveParent,
/*53991*/       OPC_CheckType, MVT::i32,
/*53993*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*53996*/       OPC_EmitMergeInputChains1_1,
/*53997*/       OPC_MorphNodeTo, TARGET_VAL(X86::OR32rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2/*#VTs*/, MVT::i32, MVT::i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (X86or_flag:i32:i32 GR32:i32:$src1, (ld:i32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>) - Complexity = 25
                // Dst: (OR32rm:i32:i32 GR32:i32:$src1, addr:iPTR:$src2)
/*54011*/     /*Scope*/ 23, /*->54035*/
/*54012*/       OPC_CheckPredicate, 3, // Predicate_load
/*54014*/       OPC_MoveParent,
/*54015*/       OPC_CheckType, MVT::i64,
/*54017*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*54020*/       OPC_EmitMergeInputChains1_1,
/*54021*/       OPC_MorphNodeTo, TARGET_VAL(X86::OR64rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2/*#VTs*/, MVT::i64, MVT::i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (X86or_flag:i64:i32 GR64:i64:$src1, (ld:i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                // Dst: (OR64rm:i64:i32 GR64:i64:$src1, addr:iPTR:$src2)
/*54035*/     0, /*End of Scope*/
/*54036*/   /*Scope*/ 113, /*->54150*/
/*54037*/     OPC_MoveChild, 0,
/*54039*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*54042*/     OPC_RecordMemRef,
/*54043*/     OPC_RecordNode, // #0 = 'ld' chained node
/*54044*/     OPC_CheckFoldableChainNode,
/*54045*/     OPC_RecordChild1, // #1 = $src2
/*54046*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*54048*/     OPC_Scope, 24, /*->54074*/ // 4 children in Scope
/*54050*/       OPC_CheckPredicate, 3, // Predicate_load
/*54052*/       OPC_MoveParent,
/*54053*/       OPC_RecordChild1, // #2 = $src1
/*54054*/       OPC_CheckType, MVT::i8,
/*54056*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*54059*/       OPC_EmitMergeInputChains1_0,
/*54060*/       OPC_MorphNodeTo, TARGET_VAL(X86::OR8rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2/*#VTs*/, MVT::i8, MVT::i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                // Src: (X86or_flag:i8:i32 (ld:i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, GR8:i8:$src1) - Complexity = 25
                // Dst: (OR8rm:i8:i32 GR8:i8:$src1, addr:iPTR:$src2)
/*54074*/     /*Scope*/ 24, /*->54099*/
/*54075*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*54077*/       OPC_MoveParent,
/*54078*/       OPC_RecordChild1, // #2 = $src1
/*54079*/       OPC_CheckType, MVT::i16,
/*54081*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*54084*/       OPC_EmitMergeInputChains1_0,
/*54085*/       OPC_MorphNodeTo, TARGET_VAL(X86::OR16rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2/*#VTs*/, MVT::i16, MVT::i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                // Src: (X86or_flag:i16:i32 (ld:i16 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>, GR16:i16:$src1) - Complexity = 25
                // Dst: (OR16rm:i16:i32 GR16:i16:$src1, addr:iPTR:$src2)
/*54099*/     /*Scope*/ 24, /*->54124*/
/*54100*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*54102*/       OPC_MoveParent,
/*54103*/       OPC_RecordChild1, // #2 = $src1
/*54104*/       OPC_CheckType, MVT::i32,
/*54106*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*54109*/       OPC_EmitMergeInputChains1_0,
/*54110*/       OPC_MorphNodeTo, TARGET_VAL(X86::OR32rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2/*#VTs*/, MVT::i32, MVT::i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                // Src: (X86or_flag:i32:i32 (ld:i32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>, GR32:i32:$src1) - Complexity = 25
                // Dst: (OR32rm:i32:i32 GR32:i32:$src1, addr:iPTR:$src2)
/*54124*/     /*Scope*/ 24, /*->54149*/
/*54125*/       OPC_CheckPredicate, 3, // Predicate_load
/*54127*/       OPC_MoveParent,
/*54128*/       OPC_RecordChild1, // #2 = $src1
/*54129*/       OPC_CheckType, MVT::i64,
/*54131*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*54134*/       OPC_EmitMergeInputChains1_0,
/*54135*/       OPC_MorphNodeTo, TARGET_VAL(X86::OR64rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2/*#VTs*/, MVT::i64, MVT::i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                // Src: (X86or_flag:i64:i32 (ld:i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, GR64:i64:$src1) - Complexity = 25
                // Dst: (OR64rm:i64:i32 GR64:i64:$src1, addr:iPTR:$src2)
/*54149*/     0, /*End of Scope*/
/*54150*/   /*Scope*/ 54|128,1/*182*/, /*->54334*/
/*54152*/     OPC_RecordChild0, // #0 = $src1
/*54153*/     OPC_RecordChild1, // #1 = $src2
/*54154*/     OPC_Scope, 125, /*->54281*/ // 5 children in Scope
/*54156*/       OPC_MoveChild, 1,
/*54158*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*54161*/       OPC_Scope, 17, /*->54180*/ // 5 children in Scope
/*54163*/         OPC_CheckPredicate, 8, // Predicate_i16immSExt8
/*54165*/         OPC_MoveParent,
/*54166*/         OPC_CheckType, MVT::i16,
/*54168*/         OPC_EmitConvertToTarget, 1,
/*54170*/         OPC_MorphNodeTo, TARGET_VAL(X86::OR16ri8), 0,
                      2/*#VTs*/, MVT::i16, MVT::i32, 2/*#Ops*/, 0, 2, 
                  // Src: (X86or_flag:i16:i32 GR16:i16:$src1, (imm:i16)<<P:Predicate_i16immSExt8>>:$src2) - Complexity = 7
                  // Dst: (OR16ri8:i16:i32 GR16:i16:$src1, (imm:i16):$src2)
/*54180*/       /*Scope*/ 17, /*->54198*/
/*54181*/         OPC_CheckPredicate, 9, // Predicate_i32immSExt8
/*54183*/         OPC_MoveParent,
/*54184*/         OPC_CheckType, MVT::i32,
/*54186*/         OPC_EmitConvertToTarget, 1,
/*54188*/         OPC_MorphNodeTo, TARGET_VAL(X86::OR32ri8), 0,
                      2/*#VTs*/, MVT::i32, MVT::i32, 2/*#Ops*/, 0, 2, 
                  // Src: (X86or_flag:i32:i32 GR32:i32:$src1, (imm:i32)<<P:Predicate_i32immSExt8>>:$src2) - Complexity = 7
                  // Dst: (OR32ri8:i32:i32 GR32:i32:$src1, (imm:i32):$src2)
/*54198*/       /*Scope*/ 17, /*->54216*/
/*54199*/         OPC_CheckPredicate, 10, // Predicate_i64immSExt8
/*54201*/         OPC_MoveParent,
/*54202*/         OPC_CheckType, MVT::i64,
/*54204*/         OPC_EmitConvertToTarget, 1,
/*54206*/         OPC_MorphNodeTo, TARGET_VAL(X86::OR64ri8), 0,
                      2/*#VTs*/, MVT::i64, MVT::i32, 2/*#Ops*/, 0, 2, 
                  // Src: (X86or_flag:i64:i32 GR64:i64:$src1, (imm:i64)<<P:Predicate_i64immSExt8>>:$src2) - Complexity = 7
                  // Dst: (OR64ri8:i64:i32 GR64:i64:$src1, (imm:i64):$src2)
/*54216*/       /*Scope*/ 17, /*->54234*/
/*54217*/         OPC_CheckPredicate, 11, // Predicate_i64immSExt32
/*54219*/         OPC_MoveParent,
/*54220*/         OPC_CheckType, MVT::i64,
/*54222*/         OPC_EmitConvertToTarget, 1,
/*54224*/         OPC_MorphNodeTo, TARGET_VAL(X86::OR64ri32), 0,
                      2/*#VTs*/, MVT::i64, MVT::i32, 2/*#Ops*/, 0, 2, 
                  // Src: (X86or_flag:i64:i32 GR64:i64:$src1, (imm:i64)<<P:Predicate_i64immSExt32>>:$src2) - Complexity = 7
                  // Dst: (OR64ri32:i64:i32 GR64:i64:$src1, (imm:i64):$src2)
/*54234*/       /*Scope*/ 45, /*->54280*/
/*54235*/         OPC_MoveParent,
/*54236*/         OPC_SwitchType /*3 cases */, 12,  MVT::i8,// ->54251
/*54239*/           OPC_EmitConvertToTarget, 1,
/*54241*/           OPC_MorphNodeTo, TARGET_VAL(X86::OR8ri), 0,
                        2/*#VTs*/, MVT::i8, MVT::i32, 2/*#Ops*/, 0, 2, 
                    // Src: (X86or_flag:i8:i32 GR8:i8:$src1, (imm:i8):$src2) - Complexity = 6
                    // Dst: (OR8ri:i8:i32 GR8:i8:$src1, (imm:i8):$src2)
                  /*SwitchType*/ 12,  MVT::i16,// ->54265
/*54253*/           OPC_EmitConvertToTarget, 1,
/*54255*/           OPC_MorphNodeTo, TARGET_VAL(X86::OR16ri), 0,
                        2/*#VTs*/, MVT::i16, MVT::i32, 2/*#Ops*/, 0, 2, 
                    // Src: (X86or_flag:i16:i32 GR16:i16:$src1, (imm:i16):$src2) - Complexity = 6
                    // Dst: (OR16ri:i16:i32 GR16:i16:$src1, (imm:i16):$src2)
                  /*SwitchType*/ 12,  MVT::i32,// ->54279
/*54267*/           OPC_EmitConvertToTarget, 1,
/*54269*/           OPC_MorphNodeTo, TARGET_VAL(X86::OR32ri), 0,
                        2/*#VTs*/, MVT::i32, MVT::i32, 2/*#Ops*/, 0, 2, 
                    // Src: (X86or_flag:i32:i32 GR32:i32:$src1, (imm:i32):$src2) - Complexity = 6
                    // Dst: (OR32ri:i32:i32 GR32:i32:$src1, (imm:i32):$src2)
                  0, // EndSwitchType
/*54280*/       0, /*End of Scope*/
/*54281*/     /*Scope*/ 12, /*->54294*/
/*54282*/       OPC_CheckType, MVT::i8,
/*54284*/       OPC_MorphNodeTo, TARGET_VAL(X86::OR8rr), 0,
                    2/*#VTs*/, MVT::i8, MVT::i32, 2/*#Ops*/, 0, 1, 
                // Src: (X86or_flag:i8:i32 GR8:i8:$src1, GR8:i8:$src2) - Complexity = 3
                // Dst: (OR8rr:i8:i32 GR8:i8:$src1, GR8:i8:$src2)
/*54294*/     /*Scope*/ 12, /*->54307*/
/*54295*/       OPC_CheckType, MVT::i16,
/*54297*/       OPC_MorphNodeTo, TARGET_VAL(X86::OR16rr), 0,
                    2/*#VTs*/, MVT::i16, MVT::i32, 2/*#Ops*/, 0, 1, 
                // Src: (X86or_flag:i16:i32 GR16:i16:$src1, GR16:i16:$src2) - Complexity = 3
                // Dst: (OR16rr:i16:i32 GR16:i16:$src1, GR16:i16:$src2)
/*54307*/     /*Scope*/ 12, /*->54320*/
/*54308*/       OPC_CheckType, MVT::i32,
/*54310*/       OPC_MorphNodeTo, TARGET_VAL(X86::OR32rr), 0,
                    2/*#VTs*/, MVT::i32, MVT::i32, 2/*#Ops*/, 0, 1, 
                // Src: (X86or_flag:i32:i32 GR32:i32:$src1, GR32:i32:$src2) - Complexity = 3
                // Dst: (OR32rr:i32:i32 GR32:i32:$src1, GR32:i32:$src2)
/*54320*/     /*Scope*/ 12, /*->54333*/
/*54321*/       OPC_CheckType, MVT::i64,
/*54323*/       OPC_MorphNodeTo, TARGET_VAL(X86::OR64rr), 0,
                    2/*#VTs*/, MVT::i64, MVT::i32, 2/*#Ops*/, 0, 1, 
                // Src: (X86or_flag:i64:i32 GR64:i64:$src1, GR64:i64:$src2) - Complexity = 3
                // Dst: (OR64rr:i64:i32 GR64:i64:$src1, GR64:i64:$src2)
/*54333*/     0, /*End of Scope*/
/*54334*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 27|128,3/*411*/,  TARGET_VAL(X86ISD::XOR),// ->54750
/*54339*/   OPC_Scope, 110, /*->54451*/ // 3 children in Scope
/*54341*/     OPC_RecordChild0, // #0 = $src1
/*54342*/     OPC_MoveChild, 1,
/*54344*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*54347*/     OPC_RecordMemRef,
/*54348*/     OPC_RecordNode, // #1 = 'ld' chained node
/*54349*/     OPC_CheckFoldableChainNode,
/*54350*/     OPC_RecordChild1, // #2 = $src2
/*54351*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*54353*/     OPC_Scope, 23, /*->54378*/ // 4 children in Scope
/*54355*/       OPC_CheckPredicate, 3, // Predicate_load
/*54357*/       OPC_MoveParent,
/*54358*/       OPC_CheckType, MVT::i8,
/*54360*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*54363*/       OPC_EmitMergeInputChains1_1,
/*54364*/       OPC_MorphNodeTo, TARGET_VAL(X86::XOR8rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2/*#VTs*/, MVT::i8, MVT::i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (X86xor_flag:i8:i32 GR8:i8:$src1, (ld:i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                // Dst: (XOR8rm:i8:i32 GR8:i8:$src1, addr:iPTR:$src2)
/*54378*/     /*Scope*/ 23, /*->54402*/
/*54379*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*54381*/       OPC_MoveParent,
/*54382*/       OPC_CheckType, MVT::i16,
/*54384*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*54387*/       OPC_EmitMergeInputChains1_1,
/*54388*/       OPC_MorphNodeTo, TARGET_VAL(X86::XOR16rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2/*#VTs*/, MVT::i16, MVT::i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (X86xor_flag:i16:i32 GR16:i16:$src1, (ld:i16 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>) - Complexity = 25
                // Dst: (XOR16rm:i16:i32 GR16:i16:$src1, addr:iPTR:$src2)
/*54402*/     /*Scope*/ 23, /*->54426*/
/*54403*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*54405*/       OPC_MoveParent,
/*54406*/       OPC_CheckType, MVT::i32,
/*54408*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*54411*/       OPC_EmitMergeInputChains1_1,
/*54412*/       OPC_MorphNodeTo, TARGET_VAL(X86::XOR32rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2/*#VTs*/, MVT::i32, MVT::i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (X86xor_flag:i32:i32 GR32:i32:$src1, (ld:i32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>) - Complexity = 25
                // Dst: (XOR32rm:i32:i32 GR32:i32:$src1, addr:iPTR:$src2)
/*54426*/     /*Scope*/ 23, /*->54450*/
/*54427*/       OPC_CheckPredicate, 3, // Predicate_load
/*54429*/       OPC_MoveParent,
/*54430*/       OPC_CheckType, MVT::i64,
/*54432*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*54435*/       OPC_EmitMergeInputChains1_1,
/*54436*/       OPC_MorphNodeTo, TARGET_VAL(X86::XOR64rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2/*#VTs*/, MVT::i64, MVT::i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (X86xor_flag:i64:i32 GR64:i64:$src1, (ld:i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                // Dst: (XOR64rm:i64:i32 GR64:i64:$src1, addr:iPTR:$src2)
/*54450*/     0, /*End of Scope*/
/*54451*/   /*Scope*/ 113, /*->54565*/
/*54452*/     OPC_MoveChild, 0,
/*54454*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*54457*/     OPC_RecordMemRef,
/*54458*/     OPC_RecordNode, // #0 = 'ld' chained node
/*54459*/     OPC_CheckFoldableChainNode,
/*54460*/     OPC_RecordChild1, // #1 = $src2
/*54461*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*54463*/     OPC_Scope, 24, /*->54489*/ // 4 children in Scope
/*54465*/       OPC_CheckPredicate, 3, // Predicate_load
/*54467*/       OPC_MoveParent,
/*54468*/       OPC_RecordChild1, // #2 = $src1
/*54469*/       OPC_CheckType, MVT::i8,
/*54471*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*54474*/       OPC_EmitMergeInputChains1_0,
/*54475*/       OPC_MorphNodeTo, TARGET_VAL(X86::XOR8rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2/*#VTs*/, MVT::i8, MVT::i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                // Src: (X86xor_flag:i8:i32 (ld:i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, GR8:i8:$src1) - Complexity = 25
                // Dst: (XOR8rm:i8:i32 GR8:i8:$src1, addr:iPTR:$src2)
/*54489*/     /*Scope*/ 24, /*->54514*/
/*54490*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*54492*/       OPC_MoveParent,
/*54493*/       OPC_RecordChild1, // #2 = $src1
/*54494*/       OPC_CheckType, MVT::i16,
/*54496*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*54499*/       OPC_EmitMergeInputChains1_0,
/*54500*/       OPC_MorphNodeTo, TARGET_VAL(X86::XOR16rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2/*#VTs*/, MVT::i16, MVT::i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                // Src: (X86xor_flag:i16:i32 (ld:i16 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>, GR16:i16:$src1) - Complexity = 25
                // Dst: (XOR16rm:i16:i32 GR16:i16:$src1, addr:iPTR:$src2)
/*54514*/     /*Scope*/ 24, /*->54539*/
/*54515*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*54517*/       OPC_MoveParent,
/*54518*/       OPC_RecordChild1, // #2 = $src1
/*54519*/       OPC_CheckType, MVT::i32,
/*54521*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*54524*/       OPC_EmitMergeInputChains1_0,
/*54525*/       OPC_MorphNodeTo, TARGET_VAL(X86::XOR32rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2/*#VTs*/, MVT::i32, MVT::i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                // Src: (X86xor_flag:i32:i32 (ld:i32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>, GR32:i32:$src1) - Complexity = 25
                // Dst: (XOR32rm:i32:i32 GR32:i32:$src1, addr:iPTR:$src2)
/*54539*/     /*Scope*/ 24, /*->54564*/
/*54540*/       OPC_CheckPredicate, 3, // Predicate_load
/*54542*/       OPC_MoveParent,
/*54543*/       OPC_RecordChild1, // #2 = $src1
/*54544*/       OPC_CheckType, MVT::i64,
/*54546*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*54549*/       OPC_EmitMergeInputChains1_0,
/*54550*/       OPC_MorphNodeTo, TARGET_VAL(X86::XOR64rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2/*#VTs*/, MVT::i64, MVT::i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                // Src: (X86xor_flag:i64:i32 (ld:i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, GR64:i64:$src1) - Complexity = 25
                // Dst: (XOR64rm:i64:i32 GR64:i64:$src1, addr:iPTR:$src2)
/*54564*/     0, /*End of Scope*/
/*54565*/   /*Scope*/ 54|128,1/*182*/, /*->54749*/
/*54567*/     OPC_RecordChild0, // #0 = $src1
/*54568*/     OPC_RecordChild1, // #1 = $src2
/*54569*/     OPC_Scope, 125, /*->54696*/ // 5 children in Scope
/*54571*/       OPC_MoveChild, 1,
/*54573*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*54576*/       OPC_Scope, 17, /*->54595*/ // 5 children in Scope
/*54578*/         OPC_CheckPredicate, 8, // Predicate_i16immSExt8
/*54580*/         OPC_MoveParent,
/*54581*/         OPC_CheckType, MVT::i16,
/*54583*/         OPC_EmitConvertToTarget, 1,
/*54585*/         OPC_MorphNodeTo, TARGET_VAL(X86::XOR16ri8), 0,
                      2/*#VTs*/, MVT::i16, MVT::i32, 2/*#Ops*/, 0, 2, 
                  // Src: (X86xor_flag:i16:i32 GR16:i16:$src1, (imm:i16)<<P:Predicate_i16immSExt8>>:$src2) - Complexity = 7
                  // Dst: (XOR16ri8:i16:i32 GR16:i16:$src1, (imm:i16):$src2)
/*54595*/       /*Scope*/ 17, /*->54613*/
/*54596*/         OPC_CheckPredicate, 9, // Predicate_i32immSExt8
/*54598*/         OPC_MoveParent,
/*54599*/         OPC_CheckType, MVT::i32,
/*54601*/         OPC_EmitConvertToTarget, 1,
/*54603*/         OPC_MorphNodeTo, TARGET_VAL(X86::XOR32ri8), 0,
                      2/*#VTs*/, MVT::i32, MVT::i32, 2/*#Ops*/, 0, 2, 
                  // Src: (X86xor_flag:i32:i32 GR32:i32:$src1, (imm:i32)<<P:Predicate_i32immSExt8>>:$src2) - Complexity = 7
                  // Dst: (XOR32ri8:i32:i32 GR32:i32:$src1, (imm:i32):$src2)
/*54613*/       /*Scope*/ 17, /*->54631*/
/*54614*/         OPC_CheckPredicate, 10, // Predicate_i64immSExt8
/*54616*/         OPC_MoveParent,
/*54617*/         OPC_CheckType, MVT::i64,
/*54619*/         OPC_EmitConvertToTarget, 1,
/*54621*/         OPC_MorphNodeTo, TARGET_VAL(X86::XOR64ri8), 0,
                      2/*#VTs*/, MVT::i64, MVT::i32, 2/*#Ops*/, 0, 2, 
                  // Src: (X86xor_flag:i64:i32 GR64:i64:$src1, (imm:i64)<<P:Predicate_i64immSExt8>>:$src2) - Complexity = 7
                  // Dst: (XOR64ri8:i64:i32 GR64:i64:$src1, (imm:i64):$src2)
/*54631*/       /*Scope*/ 17, /*->54649*/
/*54632*/         OPC_CheckPredicate, 11, // Predicate_i64immSExt32
/*54634*/         OPC_MoveParent,
/*54635*/         OPC_CheckType, MVT::i64,
/*54637*/         OPC_EmitConvertToTarget, 1,
/*54639*/         OPC_MorphNodeTo, TARGET_VAL(X86::XOR64ri32), 0,
                      2/*#VTs*/, MVT::i64, MVT::i32, 2/*#Ops*/, 0, 2, 
                  // Src: (X86xor_flag:i64:i32 GR64:i64:$src1, (imm:i64)<<P:Predicate_i64immSExt32>>:$src2) - Complexity = 7
                  // Dst: (XOR64ri32:i64:i32 GR64:i64:$src1, (imm:i64):$src2)
/*54649*/       /*Scope*/ 45, /*->54695*/
/*54650*/         OPC_MoveParent,
/*54651*/         OPC_SwitchType /*3 cases */, 12,  MVT::i8,// ->54666
/*54654*/           OPC_EmitConvertToTarget, 1,
/*54656*/           OPC_MorphNodeTo, TARGET_VAL(X86::XOR8ri), 0,
                        2/*#VTs*/, MVT::i8, MVT::i32, 2/*#Ops*/, 0, 2, 
                    // Src: (X86xor_flag:i8:i32 GR8:i8:$src1, (imm:i8):$src2) - Complexity = 6
                    // Dst: (XOR8ri:i8:i32 GR8:i8:$src1, (imm:i8):$src2)
                  /*SwitchType*/ 12,  MVT::i16,// ->54680
/*54668*/           OPC_EmitConvertToTarget, 1,
/*54670*/           OPC_MorphNodeTo, TARGET_VAL(X86::XOR16ri), 0,
                        2/*#VTs*/, MVT::i16, MVT::i32, 2/*#Ops*/, 0, 2, 
                    // Src: (X86xor_flag:i16:i32 GR16:i16:$src1, (imm:i16):$src2) - Complexity = 6
                    // Dst: (XOR16ri:i16:i32 GR16:i16:$src1, (imm:i16):$src2)
                  /*SwitchType*/ 12,  MVT::i32,// ->54694
/*54682*/           OPC_EmitConvertToTarget, 1,
/*54684*/           OPC_MorphNodeTo, TARGET_VAL(X86::XOR32ri), 0,
                        2/*#VTs*/, MVT::i32, MVT::i32, 2/*#Ops*/, 0, 2, 
                    // Src: (X86xor_flag:i32:i32 GR32:i32:$src1, (imm:i32):$src2) - Complexity = 6
                    // Dst: (XOR32ri:i32:i32 GR32:i32:$src1, (imm:i32):$src2)
                  0, // EndSwitchType
/*54695*/       0, /*End of Scope*/
/*54696*/     /*Scope*/ 12, /*->54709*/
/*54697*/       OPC_CheckType, MVT::i8,
/*54699*/       OPC_MorphNodeTo, TARGET_VAL(X86::XOR8rr), 0,
                    2/*#VTs*/, MVT::i8, MVT::i32, 2/*#Ops*/, 0, 1, 
                // Src: (X86xor_flag:i8:i32 GR8:i8:$src1, GR8:i8:$src2) - Complexity = 3
                // Dst: (XOR8rr:i8:i32 GR8:i8:$src1, GR8:i8:$src2)
/*54709*/     /*Scope*/ 12, /*->54722*/
/*54710*/       OPC_CheckType, MVT::i16,
/*54712*/       OPC_MorphNodeTo, TARGET_VAL(X86::XOR16rr), 0,
                    2/*#VTs*/, MVT::i16, MVT::i32, 2/*#Ops*/, 0, 1, 
                // Src: (X86xor_flag:i16:i32 GR16:i16:$src1, GR16:i16:$src2) - Complexity = 3
                // Dst: (XOR16rr:i16:i32 GR16:i16:$src1, GR16:i16:$src2)
/*54722*/     /*Scope*/ 12, /*->54735*/
/*54723*/       OPC_CheckType, MVT::i32,
/*54725*/       OPC_MorphNodeTo, TARGET_VAL(X86::XOR32rr), 0,
                    2/*#VTs*/, MVT::i32, MVT::i32, 2/*#Ops*/, 0, 1, 
                // Src: (X86xor_flag:i32:i32 GR32:i32:$src1, GR32:i32:$src2) - Complexity = 3
                // Dst: (XOR32rr:i32:i32 GR32:i32:$src1, GR32:i32:$src2)
/*54735*/     /*Scope*/ 12, /*->54748*/
/*54736*/       OPC_CheckType, MVT::i64,
/*54738*/       OPC_MorphNodeTo, TARGET_VAL(X86::XOR64rr), 0,
                    2/*#VTs*/, MVT::i64, MVT::i32, 2/*#Ops*/, 0, 1, 
                // Src: (X86xor_flag:i64:i32 GR64:i64:$src1, GR64:i64:$src2) - Complexity = 3
                // Dst: (XOR64rr:i64:i32 GR64:i64:$src1, GR64:i64:$src2)
/*54748*/     0, /*End of Scope*/
/*54749*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 27|128,3/*411*/,  TARGET_VAL(X86ISD::ADD),// ->55165
/*54754*/   OPC_Scope, 110, /*->54866*/ // 3 children in Scope
/*54756*/     OPC_RecordChild0, // #0 = $src1
/*54757*/     OPC_MoveChild, 1,
/*54759*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*54762*/     OPC_RecordMemRef,
/*54763*/     OPC_RecordNode, // #1 = 'ld' chained node
/*54764*/     OPC_CheckFoldableChainNode,
/*54765*/     OPC_RecordChild1, // #2 = $src2
/*54766*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*54768*/     OPC_Scope, 23, /*->54793*/ // 4 children in Scope
/*54770*/       OPC_CheckPredicate, 3, // Predicate_load
/*54772*/       OPC_MoveParent,
/*54773*/       OPC_CheckType, MVT::i8,
/*54775*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*54778*/       OPC_EmitMergeInputChains1_1,
/*54779*/       OPC_MorphNodeTo, TARGET_VAL(X86::ADD8rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2/*#VTs*/, MVT::i8, MVT::i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (X86add_flag:i8:i32 GR8:i8:$src1, (ld:i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                // Dst: (ADD8rm:i8:i32 GR8:i8:$src1, addr:iPTR:$src2)
/*54793*/     /*Scope*/ 23, /*->54817*/
/*54794*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*54796*/       OPC_MoveParent,
/*54797*/       OPC_CheckType, MVT::i16,
/*54799*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*54802*/       OPC_EmitMergeInputChains1_1,
/*54803*/       OPC_MorphNodeTo, TARGET_VAL(X86::ADD16rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2/*#VTs*/, MVT::i16, MVT::i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (X86add_flag:i16:i32 GR16:i16:$src1, (ld:i16 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>) - Complexity = 25
                // Dst: (ADD16rm:i16:i32 GR16:i16:$src1, addr:iPTR:$src2)
/*54817*/     /*Scope*/ 23, /*->54841*/
/*54818*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*54820*/       OPC_MoveParent,
/*54821*/       OPC_CheckType, MVT::i32,
/*54823*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*54826*/       OPC_EmitMergeInputChains1_1,
/*54827*/       OPC_MorphNodeTo, TARGET_VAL(X86::ADD32rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2/*#VTs*/, MVT::i32, MVT::i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (X86add_flag:i32:i32 GR32:i32:$src1, (ld:i32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>) - Complexity = 25
                // Dst: (ADD32rm:i32:i32 GR32:i32:$src1, addr:iPTR:$src2)
/*54841*/     /*Scope*/ 23, /*->54865*/
/*54842*/       OPC_CheckPredicate, 3, // Predicate_load
/*54844*/       OPC_MoveParent,
/*54845*/       OPC_CheckType, MVT::i64,
/*54847*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*54850*/       OPC_EmitMergeInputChains1_1,
/*54851*/       OPC_MorphNodeTo, TARGET_VAL(X86::ADD64rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2/*#VTs*/, MVT::i64, MVT::i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (X86add_flag:i64:i32 GR64:i64:$src1, (ld:i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                // Dst: (ADD64rm:i64:i32 GR64:i64:$src1, addr:iPTR:$src2)
/*54865*/     0, /*End of Scope*/
/*54866*/   /*Scope*/ 113, /*->54980*/
/*54867*/     OPC_MoveChild, 0,
/*54869*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*54872*/     OPC_RecordMemRef,
/*54873*/     OPC_RecordNode, // #0 = 'ld' chained node
/*54874*/     OPC_CheckFoldableChainNode,
/*54875*/     OPC_RecordChild1, // #1 = $src2
/*54876*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*54878*/     OPC_Scope, 24, /*->54904*/ // 4 children in Scope
/*54880*/       OPC_CheckPredicate, 3, // Predicate_load
/*54882*/       OPC_MoveParent,
/*54883*/       OPC_RecordChild1, // #2 = $src1
/*54884*/       OPC_CheckType, MVT::i8,
/*54886*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*54889*/       OPC_EmitMergeInputChains1_0,
/*54890*/       OPC_MorphNodeTo, TARGET_VAL(X86::ADD8rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2/*#VTs*/, MVT::i8, MVT::i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                // Src: (X86add_flag:i8:i32 (ld:i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, GR8:i8:$src1) - Complexity = 25
                // Dst: (ADD8rm:i8:i32 GR8:i8:$src1, addr:iPTR:$src2)
/*54904*/     /*Scope*/ 24, /*->54929*/
/*54905*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*54907*/       OPC_MoveParent,
/*54908*/       OPC_RecordChild1, // #2 = $src1
/*54909*/       OPC_CheckType, MVT::i16,
/*54911*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*54914*/       OPC_EmitMergeInputChains1_0,
/*54915*/       OPC_MorphNodeTo, TARGET_VAL(X86::ADD16rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2/*#VTs*/, MVT::i16, MVT::i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                // Src: (X86add_flag:i16:i32 (ld:i16 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>, GR16:i16:$src1) - Complexity = 25
                // Dst: (ADD16rm:i16:i32 GR16:i16:$src1, addr:iPTR:$src2)
/*54929*/     /*Scope*/ 24, /*->54954*/
/*54930*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*54932*/       OPC_MoveParent,
/*54933*/       OPC_RecordChild1, // #2 = $src1
/*54934*/       OPC_CheckType, MVT::i32,
/*54936*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*54939*/       OPC_EmitMergeInputChains1_0,
/*54940*/       OPC_MorphNodeTo, TARGET_VAL(X86::ADD32rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2/*#VTs*/, MVT::i32, MVT::i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                // Src: (X86add_flag:i32:i32 (ld:i32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>, GR32:i32:$src1) - Complexity = 25
                // Dst: (ADD32rm:i32:i32 GR32:i32:$src1, addr:iPTR:$src2)
/*54954*/     /*Scope*/ 24, /*->54979*/
/*54955*/       OPC_CheckPredicate, 3, // Predicate_load
/*54957*/       OPC_MoveParent,
/*54958*/       OPC_RecordChild1, // #2 = $src1
/*54959*/       OPC_CheckType, MVT::i64,
/*54961*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*54964*/       OPC_EmitMergeInputChains1_0,
/*54965*/       OPC_MorphNodeTo, TARGET_VAL(X86::ADD64rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2/*#VTs*/, MVT::i64, MVT::i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                // Src: (X86add_flag:i64:i32 (ld:i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, GR64:i64:$src1) - Complexity = 25
                // Dst: (ADD64rm:i64:i32 GR64:i64:$src1, addr:iPTR:$src2)
/*54979*/     0, /*End of Scope*/
/*54980*/   /*Scope*/ 54|128,1/*182*/, /*->55164*/
/*54982*/     OPC_RecordChild0, // #0 = $src1
/*54983*/     OPC_RecordChild1, // #1 = $src2
/*54984*/     OPC_Scope, 125, /*->55111*/ // 5 children in Scope
/*54986*/       OPC_MoveChild, 1,
/*54988*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*54991*/       OPC_Scope, 17, /*->55010*/ // 5 children in Scope
/*54993*/         OPC_CheckPredicate, 8, // Predicate_i16immSExt8
/*54995*/         OPC_MoveParent,
/*54996*/         OPC_CheckType, MVT::i16,
/*54998*/         OPC_EmitConvertToTarget, 1,
/*55000*/         OPC_MorphNodeTo, TARGET_VAL(X86::ADD16ri8), 0,
                      2/*#VTs*/, MVT::i16, MVT::i32, 2/*#Ops*/, 0, 2, 
                  // Src: (X86add_flag:i16:i32 GR16:i16:$src1, (imm:i16)<<P:Predicate_i16immSExt8>>:$src2) - Complexity = 7
                  // Dst: (ADD16ri8:i16:i32 GR16:i16:$src1, (imm:i16):$src2)
/*55010*/       /*Scope*/ 17, /*->55028*/
/*55011*/         OPC_CheckPredicate, 9, // Predicate_i32immSExt8
/*55013*/         OPC_MoveParent,
/*55014*/         OPC_CheckType, MVT::i32,
/*55016*/         OPC_EmitConvertToTarget, 1,
/*55018*/         OPC_MorphNodeTo, TARGET_VAL(X86::ADD32ri8), 0,
                      2/*#VTs*/, MVT::i32, MVT::i32, 2/*#Ops*/, 0, 2, 
                  // Src: (X86add_flag:i32:i32 GR32:i32:$src1, (imm:i32)<<P:Predicate_i32immSExt8>>:$src2) - Complexity = 7
                  // Dst: (ADD32ri8:i32:i32 GR32:i32:$src1, (imm:i32):$src2)
/*55028*/       /*Scope*/ 17, /*->55046*/
/*55029*/         OPC_CheckPredicate, 10, // Predicate_i64immSExt8
/*55031*/         OPC_MoveParent,
/*55032*/         OPC_CheckType, MVT::i64,
/*55034*/         OPC_EmitConvertToTarget, 1,
/*55036*/         OPC_MorphNodeTo, TARGET_VAL(X86::ADD64ri8), 0,
                      2/*#VTs*/, MVT::i64, MVT::i32, 2/*#Ops*/, 0, 2, 
                  // Src: (X86add_flag:i64:i32 GR64:i64:$src1, (imm:i64)<<P:Predicate_i64immSExt8>>:$src2) - Complexity = 7
                  // Dst: (ADD64ri8:i64:i32 GR64:i64:$src1, (imm:i64):$src2)
/*55046*/       /*Scope*/ 17, /*->55064*/
/*55047*/         OPC_CheckPredicate, 11, // Predicate_i64immSExt32
/*55049*/         OPC_MoveParent,
/*55050*/         OPC_CheckType, MVT::i64,
/*55052*/         OPC_EmitConvertToTarget, 1,
/*55054*/         OPC_MorphNodeTo, TARGET_VAL(X86::ADD64ri32), 0,
                      2/*#VTs*/, MVT::i64, MVT::i32, 2/*#Ops*/, 0, 2, 
                  // Src: (X86add_flag:i64:i32 GR64:i64:$src1, (imm:i64)<<P:Predicate_i64immSExt32>>:$src2) - Complexity = 7
                  // Dst: (ADD64ri32:i64:i32 GR64:i64:$src1, (imm:i64):$src2)
/*55064*/       /*Scope*/ 45, /*->55110*/
/*55065*/         OPC_MoveParent,
/*55066*/         OPC_SwitchType /*3 cases */, 12,  MVT::i8,// ->55081
/*55069*/           OPC_EmitConvertToTarget, 1,
/*55071*/           OPC_MorphNodeTo, TARGET_VAL(X86::ADD8ri), 0,
                        2/*#VTs*/, MVT::i8, MVT::i32, 2/*#Ops*/, 0, 2, 
                    // Src: (X86add_flag:i8:i32 GR8:i8:$src1, (imm:i8):$src2) - Complexity = 6
                    // Dst: (ADD8ri:i8:i32 GR8:i8:$src1, (imm:i8):$src2)
                  /*SwitchType*/ 12,  MVT::i16,// ->55095
/*55083*/           OPC_EmitConvertToTarget, 1,
/*55085*/           OPC_MorphNodeTo, TARGET_VAL(X86::ADD16ri), 0,
                        2/*#VTs*/, MVT::i16, MVT::i32, 2/*#Ops*/, 0, 2, 
                    // Src: (X86add_flag:i16:i32 GR16:i16:$src1, (imm:i16):$src2) - Complexity = 6
                    // Dst: (ADD16ri:i16:i32 GR16:i16:$src1, (imm:i16):$src2)
                  /*SwitchType*/ 12,  MVT::i32,// ->55109
/*55097*/           OPC_EmitConvertToTarget, 1,
/*55099*/           OPC_MorphNodeTo, TARGET_VAL(X86::ADD32ri), 0,
                        2/*#VTs*/, MVT::i32, MVT::i32, 2/*#Ops*/, 0, 2, 
                    // Src: (X86add_flag:i32:i32 GR32:i32:$src1, (imm:i32):$src2) - Complexity = 6
                    // Dst: (ADD32ri:i32:i32 GR32:i32:$src1, (imm:i32):$src2)
                  0, // EndSwitchType
/*55110*/       0, /*End of Scope*/
/*55111*/     /*Scope*/ 12, /*->55124*/
/*55112*/       OPC_CheckType, MVT::i8,
/*55114*/       OPC_MorphNodeTo, TARGET_VAL(X86::ADD8rr), 0,
                    2/*#VTs*/, MVT::i8, MVT::i32, 2/*#Ops*/, 0, 1, 
                // Src: (X86add_flag:i8:i32 GR8:i8:$src1, GR8:i8:$src2) - Complexity = 3
                // Dst: (ADD8rr:i8:i32 GR8:i8:$src1, GR8:i8:$src2)
/*55124*/     /*Scope*/ 12, /*->55137*/
/*55125*/       OPC_CheckType, MVT::i16,
/*55127*/       OPC_MorphNodeTo, TARGET_VAL(X86::ADD16rr), 0,
                    2/*#VTs*/, MVT::i16, MVT::i32, 2/*#Ops*/, 0, 1, 
                // Src: (X86add_flag:i16:i32 GR16:i16:$src1, GR16:i16:$src2) - Complexity = 3
                // Dst: (ADD16rr:i16:i32 GR16:i16:$src1, GR16:i16:$src2)
/*55137*/     /*Scope*/ 12, /*->55150*/
/*55138*/       OPC_CheckType, MVT::i32,
/*55140*/       OPC_MorphNodeTo, TARGET_VAL(X86::ADD32rr), 0,
                    2/*#VTs*/, MVT::i32, MVT::i32, 2/*#Ops*/, 0, 1, 
                // Src: (X86add_flag:i32:i32 GR32:i32:$src1, GR32:i32:$src2) - Complexity = 3
                // Dst: (ADD32rr:i32:i32 GR32:i32:$src1, GR32:i32:$src2)
/*55150*/     /*Scope*/ 12, /*->55163*/
/*55151*/       OPC_CheckType, MVT::i64,
/*55153*/       OPC_MorphNodeTo, TARGET_VAL(X86::ADD64rr), 0,
                    2/*#VTs*/, MVT::i64, MVT::i32, 2/*#Ops*/, 0, 1, 
                // Src: (X86add_flag:i64:i32 GR64:i64:$src1, GR64:i64:$src2) - Complexity = 3
                // Dst: (ADD64rr:i64:i32 GR64:i64:$src1, GR64:i64:$src2)
/*55163*/     0, /*End of Scope*/
/*55164*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 40|128,2/*296*/,  TARGET_VAL(X86ISD::SUB),// ->55465
/*55169*/   OPC_RecordChild0, // #0 = $src1
/*55170*/   OPC_Scope, 109, /*->55281*/ // 2 children in Scope
/*55172*/     OPC_MoveChild, 1,
/*55174*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*55177*/     OPC_RecordMemRef,
/*55178*/     OPC_RecordNode, // #1 = 'ld' chained node
/*55179*/     OPC_CheckFoldableChainNode,
/*55180*/     OPC_RecordChild1, // #2 = $src2
/*55181*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*55183*/     OPC_Scope, 23, /*->55208*/ // 4 children in Scope
/*55185*/       OPC_CheckPredicate, 3, // Predicate_load
/*55187*/       OPC_MoveParent,
/*55188*/       OPC_CheckType, MVT::i8,
/*55190*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*55193*/       OPC_EmitMergeInputChains1_1,
/*55194*/       OPC_MorphNodeTo, TARGET_VAL(X86::SUB8rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2/*#VTs*/, MVT::i8, MVT::i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (X86sub_flag:i8:i32 GR8:i8:$src1, (ld:i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                // Dst: (SUB8rm:i8:i32 GR8:i8:$src1, addr:iPTR:$src2)
/*55208*/     /*Scope*/ 23, /*->55232*/
/*55209*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*55211*/       OPC_MoveParent,
/*55212*/       OPC_CheckType, MVT::i16,
/*55214*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*55217*/       OPC_EmitMergeInputChains1_1,
/*55218*/       OPC_MorphNodeTo, TARGET_VAL(X86::SUB16rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2/*#VTs*/, MVT::i16, MVT::i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (X86sub_flag:i16:i32 GR16:i16:$src1, (ld:i16 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>) - Complexity = 25
                // Dst: (SUB16rm:i16:i32 GR16:i16:$src1, addr:iPTR:$src2)
/*55232*/     /*Scope*/ 23, /*->55256*/
/*55233*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*55235*/       OPC_MoveParent,
/*55236*/       OPC_CheckType, MVT::i32,
/*55238*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*55241*/       OPC_EmitMergeInputChains1_1,
/*55242*/       OPC_MorphNodeTo, TARGET_VAL(X86::SUB32rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2/*#VTs*/, MVT::i32, MVT::i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (X86sub_flag:i32:i32 GR32:i32:$src1, (ld:i32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>) - Complexity = 25
                // Dst: (SUB32rm:i32:i32 GR32:i32:$src1, addr:iPTR:$src2)
/*55256*/     /*Scope*/ 23, /*->55280*/
/*55257*/       OPC_CheckPredicate, 3, // Predicate_load
/*55259*/       OPC_MoveParent,
/*55260*/       OPC_CheckType, MVT::i64,
/*55262*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*55265*/       OPC_EmitMergeInputChains1_1,
/*55266*/       OPC_MorphNodeTo, TARGET_VAL(X86::SUB64rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2/*#VTs*/, MVT::i64, MVT::i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (X86sub_flag:i64:i32 GR64:i64:$src1, (ld:i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                // Dst: (SUB64rm:i64:i32 GR64:i64:$src1, addr:iPTR:$src2)
/*55280*/     0, /*End of Scope*/
/*55281*/   /*Scope*/ 53|128,1/*181*/, /*->55464*/
/*55283*/     OPC_RecordChild1, // #1 = $src2
/*55284*/     OPC_Scope, 125, /*->55411*/ // 5 children in Scope
/*55286*/       OPC_MoveChild, 1,
/*55288*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*55291*/       OPC_Scope, 17, /*->55310*/ // 5 children in Scope
/*55293*/         OPC_CheckPredicate, 8, // Predicate_i16immSExt8
/*55295*/         OPC_MoveParent,
/*55296*/         OPC_CheckType, MVT::i16,
/*55298*/         OPC_EmitConvertToTarget, 1,
/*55300*/         OPC_MorphNodeTo, TARGET_VAL(X86::SUB16ri8), 0,
                      2/*#VTs*/, MVT::i16, MVT::i32, 2/*#Ops*/, 0, 2, 
                  // Src: (X86sub_flag:i16:i32 GR16:i16:$src1, (imm:i16)<<P:Predicate_i16immSExt8>>:$src2) - Complexity = 7
                  // Dst: (SUB16ri8:i16:i32 GR16:i16:$src1, (imm:i16):$src2)
/*55310*/       /*Scope*/ 17, /*->55328*/
/*55311*/         OPC_CheckPredicate, 9, // Predicate_i32immSExt8
/*55313*/         OPC_MoveParent,
/*55314*/         OPC_CheckType, MVT::i32,
/*55316*/         OPC_EmitConvertToTarget, 1,
/*55318*/         OPC_MorphNodeTo, TARGET_VAL(X86::SUB32ri8), 0,
                      2/*#VTs*/, MVT::i32, MVT::i32, 2/*#Ops*/, 0, 2, 
                  // Src: (X86sub_flag:i32:i32 GR32:i32:$src1, (imm:i32)<<P:Predicate_i32immSExt8>>:$src2) - Complexity = 7
                  // Dst: (SUB32ri8:i32:i32 GR32:i32:$src1, (imm:i32):$src2)
/*55328*/       /*Scope*/ 17, /*->55346*/
/*55329*/         OPC_CheckPredicate, 10, // Predicate_i64immSExt8
/*55331*/         OPC_MoveParent,
/*55332*/         OPC_CheckType, MVT::i64,
/*55334*/         OPC_EmitConvertToTarget, 1,
/*55336*/         OPC_MorphNodeTo, TARGET_VAL(X86::SUB64ri8), 0,
                      2/*#VTs*/, MVT::i64, MVT::i32, 2/*#Ops*/, 0, 2, 
                  // Src: (X86sub_flag:i64:i32 GR64:i64:$src1, (imm:i64)<<P:Predicate_i64immSExt8>>:$src2) - Complexity = 7
                  // Dst: (SUB64ri8:i64:i32 GR64:i64:$src1, (imm:i64):$src2)
/*55346*/       /*Scope*/ 17, /*->55364*/
/*55347*/         OPC_CheckPredicate, 11, // Predicate_i64immSExt32
/*55349*/         OPC_MoveParent,
/*55350*/         OPC_CheckType, MVT::i64,
/*55352*/         OPC_EmitConvertToTarget, 1,
/*55354*/         OPC_MorphNodeTo, TARGET_VAL(X86::SUB64ri32), 0,
                      2/*#VTs*/, MVT::i64, MVT::i32, 2/*#Ops*/, 0, 2, 
                  // Src: (X86sub_flag:i64:i32 GR64:i64:$src1, (imm:i64)<<P:Predicate_i64immSExt32>>:$src2) - Complexity = 7
                  // Dst: (SUB64ri32:i64:i32 GR64:i64:$src1, (imm:i64):$src2)
/*55364*/       /*Scope*/ 45, /*->55410*/
/*55365*/         OPC_MoveParent,
/*55366*/         OPC_SwitchType /*3 cases */, 12,  MVT::i8,// ->55381
/*55369*/           OPC_EmitConvertToTarget, 1,
/*55371*/           OPC_MorphNodeTo, TARGET_VAL(X86::SUB8ri), 0,
                        2/*#VTs*/, MVT::i8, MVT::i32, 2/*#Ops*/, 0, 2, 
                    // Src: (X86sub_flag:i8:i32 GR8:i8:$src1, (imm:i8):$src2) - Complexity = 6
                    // Dst: (SUB8ri:i8:i32 GR8:i8:$src1, (imm:i8):$src2)
                  /*SwitchType*/ 12,  MVT::i16,// ->55395
/*55383*/           OPC_EmitConvertToTarget, 1,
/*55385*/           OPC_MorphNodeTo, TARGET_VAL(X86::SUB16ri), 0,
                        2/*#VTs*/, MVT::i16, MVT::i32, 2/*#Ops*/, 0, 2, 
                    // Src: (X86sub_flag:i16:i32 GR16:i16:$src1, (imm:i16):$src2) - Complexity = 6
                    // Dst: (SUB16ri:i16:i32 GR16:i16:$src1, (imm:i16):$src2)
                  /*SwitchType*/ 12,  MVT::i32,// ->55409
/*55397*/           OPC_EmitConvertToTarget, 1,
/*55399*/           OPC_MorphNodeTo, TARGET_VAL(X86::SUB32ri), 0,
                        2/*#VTs*/, MVT::i32, MVT::i32, 2/*#Ops*/, 0, 2, 
                    // Src: (X86sub_flag:i32:i32 GR32:i32:$src1, (imm:i32):$src2) - Complexity = 6
                    // Dst: (SUB32ri:i32:i32 GR32:i32:$src1, (imm:i32):$src2)
                  0, // EndSwitchType
/*55410*/       0, /*End of Scope*/
/*55411*/     /*Scope*/ 12, /*->55424*/
/*55412*/       OPC_CheckType, MVT::i8,
/*55414*/       OPC_MorphNodeTo, TARGET_VAL(X86::SUB8rr), 0,
                    2/*#VTs*/, MVT::i8, MVT::i32, 2/*#Ops*/, 0, 1, 
                // Src: (X86sub_flag:i8:i32 GR8:i8:$src1, GR8:i8:$src2) - Complexity = 3
                // Dst: (SUB8rr:i8:i32 GR8:i8:$src1, GR8:i8:$src2)
/*55424*/     /*Scope*/ 12, /*->55437*/
/*55425*/       OPC_CheckType, MVT::i16,
/*55427*/       OPC_MorphNodeTo, TARGET_VAL(X86::SUB16rr), 0,
                    2/*#VTs*/, MVT::i16, MVT::i32, 2/*#Ops*/, 0, 1, 
                // Src: (X86sub_flag:i16:i32 GR16:i16:$src1, GR16:i16:$src2) - Complexity = 3
                // Dst: (SUB16rr:i16:i32 GR16:i16:$src1, GR16:i16:$src2)
/*55437*/     /*Scope*/ 12, /*->55450*/
/*55438*/       OPC_CheckType, MVT::i32,
/*55440*/       OPC_MorphNodeTo, TARGET_VAL(X86::SUB32rr), 0,
                    2/*#VTs*/, MVT::i32, MVT::i32, 2/*#Ops*/, 0, 1, 
                // Src: (X86sub_flag:i32:i32 GR32:i32:$src1, GR32:i32:$src2) - Complexity = 3
                // Dst: (SUB32rr:i32:i32 GR32:i32:$src1, GR32:i32:$src2)
/*55450*/     /*Scope*/ 12, /*->55463*/
/*55451*/       OPC_CheckType, MVT::i64,
/*55453*/       OPC_MorphNodeTo, TARGET_VAL(X86::SUB64rr), 0,
                    2/*#VTs*/, MVT::i64, MVT::i32, 2/*#Ops*/, 0, 1, 
                // Src: (X86sub_flag:i64:i32 GR64:i64:$src1, GR64:i64:$src2) - Complexity = 3
                // Dst: (SUB64rr:i64:i32 GR64:i64:$src1, GR64:i64:$src2)
/*55463*/     0, /*End of Scope*/
/*55464*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 95|128,2/*351*/,  TARGET_VAL(X86ISD::ADC),// ->55820
/*55469*/   OPC_RecordChild0, // #0 = $src1
/*55470*/   OPC_Scope, 125, /*->55597*/ // 2 children in Scope
/*55472*/     OPC_MoveChild, 1,
/*55474*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*55477*/     OPC_RecordMemRef,
/*55478*/     OPC_RecordNode, // #1 = 'ld' chained node
/*55479*/     OPC_CheckFoldableChainNode,
/*55480*/     OPC_RecordChild1, // #2 = $src2
/*55481*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*55483*/     OPC_Scope, 27, /*->55512*/ // 4 children in Scope
/*55485*/       OPC_CheckPredicate, 3, // Predicate_load
/*55487*/       OPC_MoveParent,
/*55488*/       OPC_RecordChild2, // #3 = physreg input EFLAGS
/*55489*/       OPC_CheckType, MVT::i8,
/*55491*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*55494*/       OPC_EmitMergeInputChains1_1,
/*55495*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*55498*/       OPC_MorphNodeTo, TARGET_VAL(X86::ADC8rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                    2/*#VTs*/, MVT::i8, MVT::i32, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                // Src: (X86adc_flag:i8:i32 GR8:i8:$src1, (ld:i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, EFLAGS:i32) - Complexity = 25
                // Dst: (ADC8rm:i8:i32 GR8:i8:$src1, addr:iPTR:$src2)
/*55512*/     /*Scope*/ 27, /*->55540*/
/*55513*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*55515*/       OPC_MoveParent,
/*55516*/       OPC_RecordChild2, // #3 = physreg input EFLAGS
/*55517*/       OPC_CheckType, MVT::i16,
/*55519*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*55522*/       OPC_EmitMergeInputChains1_1,
/*55523*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*55526*/       OPC_MorphNodeTo, TARGET_VAL(X86::ADC16rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                    2/*#VTs*/, MVT::i16, MVT::i32, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                // Src: (X86adc_flag:i16:i32 GR16:i16:$src1, (ld:i16 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>, EFLAGS:i32) - Complexity = 25
                // Dst: (ADC16rm:i16:i32 GR16:i16:$src1, addr:iPTR:$src2)
/*55540*/     /*Scope*/ 27, /*->55568*/
/*55541*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*55543*/       OPC_MoveParent,
/*55544*/       OPC_RecordChild2, // #3 = physreg input EFLAGS
/*55545*/       OPC_CheckType, MVT::i32,
/*55547*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*55550*/       OPC_EmitMergeInputChains1_1,
/*55551*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*55554*/       OPC_MorphNodeTo, TARGET_VAL(X86::ADC32rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                    2/*#VTs*/, MVT::i32, MVT::i32, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                // Src: (X86adc_flag:i32:i32 GR32:i32:$src1, (ld:i32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>, EFLAGS:i32) - Complexity = 25
                // Dst: (ADC32rm:i32:i32 GR32:i32:$src1, addr:iPTR:$src2)
/*55568*/     /*Scope*/ 27, /*->55596*/
/*55569*/       OPC_CheckPredicate, 3, // Predicate_load
/*55571*/       OPC_MoveParent,
/*55572*/       OPC_RecordChild2, // #3 = physreg input EFLAGS
/*55573*/       OPC_CheckType, MVT::i64,
/*55575*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*55578*/       OPC_EmitMergeInputChains1_1,
/*55579*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*55582*/       OPC_MorphNodeTo, TARGET_VAL(X86::ADC64rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                    2/*#VTs*/, MVT::i64, MVT::i32, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                // Src: (X86adc_flag:i64:i32 GR64:i64:$src1, (ld:i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, EFLAGS:i32) - Complexity = 25
                // Dst: (ADC64rm:i64:i32 GR64:i64:$src1, addr:iPTR:$src2)
/*55596*/     0, /*End of Scope*/
/*55597*/   /*Scope*/ 92|128,1/*220*/, /*->55819*/
/*55599*/     OPC_RecordChild1, // #1 = $src2
/*55600*/     OPC_Scope, 23|128,1/*151*/, /*->55754*/ // 2 children in Scope
/*55603*/       OPC_MoveChild, 1,
/*55605*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*55608*/       OPC_Scope, 21, /*->55631*/ // 5 children in Scope
/*55610*/         OPC_CheckPredicate, 8, // Predicate_i16immSExt8
/*55612*/         OPC_MoveParent,
/*55613*/         OPC_RecordChild2, // #2 = physreg input EFLAGS
/*55614*/         OPC_CheckType, MVT::i16,
/*55616*/         OPC_EmitConvertToTarget, 1,
/*55618*/         OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*55621*/         OPC_MorphNodeTo, TARGET_VAL(X86::ADC16ri8), 0|OPFL_GlueInput,
                      2/*#VTs*/, MVT::i16, MVT::i32, 2/*#Ops*/, 0, 3, 
                  // Src: (X86adc_flag:i16:i32 GR16:i16:$src1, (imm:i16)<<P:Predicate_i16immSExt8>>:$src2, EFLAGS:i32) - Complexity = 7
                  // Dst: (ADC16ri8:i16:i32 GR16:i16:$src1, (imm:i16):$src2)
/*55631*/       /*Scope*/ 21, /*->55653*/
/*55632*/         OPC_CheckPredicate, 9, // Predicate_i32immSExt8
/*55634*/         OPC_MoveParent,
/*55635*/         OPC_RecordChild2, // #2 = physreg input EFLAGS
/*55636*/         OPC_CheckType, MVT::i32,
/*55638*/         OPC_EmitConvertToTarget, 1,
/*55640*/         OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*55643*/         OPC_MorphNodeTo, TARGET_VAL(X86::ADC32ri8), 0|OPFL_GlueInput,
                      2/*#VTs*/, MVT::i32, MVT::i32, 2/*#Ops*/, 0, 3, 
                  // Src: (X86adc_flag:i32:i32 GR32:i32:$src1, (imm:i32)<<P:Predicate_i32immSExt8>>:$src2, EFLAGS:i32) - Complexity = 7
                  // Dst: (ADC32ri8:i32:i32 GR32:i32:$src1, (imm:i32):$src2)
/*55653*/       /*Scope*/ 21, /*->55675*/
/*55654*/         OPC_CheckPredicate, 10, // Predicate_i64immSExt8
/*55656*/         OPC_MoveParent,
/*55657*/         OPC_RecordChild2, // #2 = physreg input EFLAGS
/*55658*/         OPC_CheckType, MVT::i64,
/*55660*/         OPC_EmitConvertToTarget, 1,
/*55662*/         OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*55665*/         OPC_MorphNodeTo, TARGET_VAL(X86::ADC64ri8), 0|OPFL_GlueInput,
                      2/*#VTs*/, MVT::i64, MVT::i32, 2/*#Ops*/, 0, 3, 
                  // Src: (X86adc_flag:i64:i32 GR64:i64:$src1, (imm:i64)<<P:Predicate_i64immSExt8>>:$src2, EFLAGS:i32) - Complexity = 7
                  // Dst: (ADC64ri8:i64:i32 GR64:i64:$src1, (imm:i64):$src2)
/*55675*/       /*Scope*/ 21, /*->55697*/
/*55676*/         OPC_CheckPredicate, 11, // Predicate_i64immSExt32
/*55678*/         OPC_MoveParent,
/*55679*/         OPC_RecordChild2, // #2 = physreg input EFLAGS
/*55680*/         OPC_CheckType, MVT::i64,
/*55682*/         OPC_EmitConvertToTarget, 1,
/*55684*/         OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*55687*/         OPC_MorphNodeTo, TARGET_VAL(X86::ADC64ri32), 0|OPFL_GlueInput,
                      2/*#VTs*/, MVT::i64, MVT::i32, 2/*#Ops*/, 0, 3, 
                  // Src: (X86adc_flag:i64:i32 GR64:i64:$src1, (imm:i64)<<P:Predicate_i64immSExt32>>:$src2, EFLAGS:i32) - Complexity = 7
                  // Dst: (ADC64ri32:i64:i32 GR64:i64:$src1, (imm:i64):$src2)
/*55697*/       /*Scope*/ 55, /*->55753*/
/*55698*/         OPC_MoveParent,
/*55699*/         OPC_RecordChild2, // #2 = physreg input EFLAGS
/*55700*/         OPC_SwitchType /*3 cases */, 15,  MVT::i8,// ->55718
/*55703*/           OPC_EmitConvertToTarget, 1,
/*55705*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*55708*/           OPC_MorphNodeTo, TARGET_VAL(X86::ADC8ri), 0|OPFL_GlueInput,
                        2/*#VTs*/, MVT::i8, MVT::i32, 2/*#Ops*/, 0, 3, 
                    // Src: (X86adc_flag:i8:i32 GR8:i8:$src1, (imm:i8):$src2, EFLAGS:i32) - Complexity = 6
                    // Dst: (ADC8ri:i8:i32 GR8:i8:$src1, (imm:i8):$src2)
                  /*SwitchType*/ 15,  MVT::i16,// ->55735
/*55720*/           OPC_EmitConvertToTarget, 1,
/*55722*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*55725*/           OPC_MorphNodeTo, TARGET_VAL(X86::ADC16ri), 0|OPFL_GlueInput,
                        2/*#VTs*/, MVT::i16, MVT::i32, 2/*#Ops*/, 0, 3, 
                    // Src: (X86adc_flag:i16:i32 GR16:i16:$src1, (imm:i16):$src2, EFLAGS:i32) - Complexity = 6
                    // Dst: (ADC16ri:i16:i32 GR16:i16:$src1, (imm:i16):$src2)
                  /*SwitchType*/ 15,  MVT::i32,// ->55752
/*55737*/           OPC_EmitConvertToTarget, 1,
/*55739*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*55742*/           OPC_MorphNodeTo, TARGET_VAL(X86::ADC32ri), 0|OPFL_GlueInput,
                        2/*#VTs*/, MVT::i32, MVT::i32, 2/*#Ops*/, 0, 3, 
                    // Src: (X86adc_flag:i32:i32 GR32:i32:$src1, (imm:i32):$src2, EFLAGS:i32) - Complexity = 6
                    // Dst: (ADC32ri:i32:i32 GR32:i32:$src1, (imm:i32):$src2)
                  0, // EndSwitchType
/*55753*/       0, /*End of Scope*/
/*55754*/     /*Scope*/ 63, /*->55818*/
/*55755*/       OPC_RecordChild2, // #2 = physreg input EFLAGS
/*55756*/       OPC_SwitchType /*4 cases */, 13,  MVT::i8,// ->55772
/*55759*/         OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*55762*/         OPC_MorphNodeTo, TARGET_VAL(X86::ADC8rr), 0|OPFL_GlueInput,
                      2/*#VTs*/, MVT::i8, MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86adc_flag:i8:i32 GR8:i8:$src1, GR8:i8:$src2, EFLAGS:i32) - Complexity = 3
                  // Dst: (ADC8rr:i8:i32 GR8:i8:$src1, GR8:i8:$src2)
                /*SwitchType*/ 13,  MVT::i16,// ->55787
/*55774*/         OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*55777*/         OPC_MorphNodeTo, TARGET_VAL(X86::ADC16rr), 0|OPFL_GlueInput,
                      2/*#VTs*/, MVT::i16, MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86adc_flag:i16:i32 GR16:i16:$src1, GR16:i16:$src2, EFLAGS:i32) - Complexity = 3
                  // Dst: (ADC16rr:i16:i32 GR16:i16:$src1, GR16:i16:$src2)
                /*SwitchType*/ 13,  MVT::i32,// ->55802
/*55789*/         OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*55792*/         OPC_MorphNodeTo, TARGET_VAL(X86::ADC32rr), 0|OPFL_GlueInput,
                      2/*#VTs*/, MVT::i32, MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86adc_flag:i32:i32 GR32:i32:$src1, GR32:i32:$src2, EFLAGS:i32) - Complexity = 3
                  // Dst: (ADC32rr:i32:i32 GR32:i32:$src1, GR32:i32:$src2)
                /*SwitchType*/ 13,  MVT::i64,// ->55817
/*55804*/         OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*55807*/         OPC_MorphNodeTo, TARGET_VAL(X86::ADC64rr), 0|OPFL_GlueInput,
                      2/*#VTs*/, MVT::i64, MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86adc_flag:i64:i32 GR64:i64:$src1, GR64:i64:$src2, EFLAGS:i32) - Complexity = 3
                  // Dst: (ADC64rr:i64:i32 GR64:i64:$src1, GR64:i64:$src2)
                0, // EndSwitchType
/*55818*/     0, /*End of Scope*/
/*55819*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 95|128,2/*351*/,  TARGET_VAL(X86ISD::SBB),// ->56175
/*55824*/   OPC_RecordChild0, // #0 = $src1
/*55825*/   OPC_Scope, 125, /*->55952*/ // 2 children in Scope
/*55827*/     OPC_MoveChild, 1,
/*55829*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*55832*/     OPC_RecordMemRef,
/*55833*/     OPC_RecordNode, // #1 = 'ld' chained node
/*55834*/     OPC_CheckFoldableChainNode,
/*55835*/     OPC_RecordChild1, // #2 = $src2
/*55836*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*55838*/     OPC_Scope, 27, /*->55867*/ // 4 children in Scope
/*55840*/       OPC_CheckPredicate, 3, // Predicate_load
/*55842*/       OPC_MoveParent,
/*55843*/       OPC_RecordChild2, // #3 = physreg input EFLAGS
/*55844*/       OPC_CheckType, MVT::i8,
/*55846*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*55849*/       OPC_EmitMergeInputChains1_1,
/*55850*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*55853*/       OPC_MorphNodeTo, TARGET_VAL(X86::SBB8rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                    2/*#VTs*/, MVT::i8, MVT::i32, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                // Src: (X86sbb_flag:i8:i32 GR8:i8:$src1, (ld:i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, EFLAGS:i32) - Complexity = 25
                // Dst: (SBB8rm:i8:i32 GR8:i8:$src1, addr:iPTR:$src2)
/*55867*/     /*Scope*/ 27, /*->55895*/
/*55868*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*55870*/       OPC_MoveParent,
/*55871*/       OPC_RecordChild2, // #3 = physreg input EFLAGS
/*55872*/       OPC_CheckType, MVT::i16,
/*55874*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*55877*/       OPC_EmitMergeInputChains1_1,
/*55878*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*55881*/       OPC_MorphNodeTo, TARGET_VAL(X86::SBB16rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                    2/*#VTs*/, MVT::i16, MVT::i32, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                // Src: (X86sbb_flag:i16:i32 GR16:i16:$src1, (ld:i16 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>, EFLAGS:i32) - Complexity = 25
                // Dst: (SBB16rm:i16:i32 GR16:i16:$src1, addr:iPTR:$src2)
/*55895*/     /*Scope*/ 27, /*->55923*/
/*55896*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*55898*/       OPC_MoveParent,
/*55899*/       OPC_RecordChild2, // #3 = physreg input EFLAGS
/*55900*/       OPC_CheckType, MVT::i32,
/*55902*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*55905*/       OPC_EmitMergeInputChains1_1,
/*55906*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*55909*/       OPC_MorphNodeTo, TARGET_VAL(X86::SBB32rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                    2/*#VTs*/, MVT::i32, MVT::i32, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                // Src: (X86sbb_flag:i32:i32 GR32:i32:$src1, (ld:i32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>, EFLAGS:i32) - Complexity = 25
                // Dst: (SBB32rm:i32:i32 GR32:i32:$src1, addr:iPTR:$src2)
/*55923*/     /*Scope*/ 27, /*->55951*/
/*55924*/       OPC_CheckPredicate, 3, // Predicate_load
/*55926*/       OPC_MoveParent,
/*55927*/       OPC_RecordChild2, // #3 = physreg input EFLAGS
/*55928*/       OPC_CheckType, MVT::i64,
/*55930*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*55933*/       OPC_EmitMergeInputChains1_1,
/*55934*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*55937*/       OPC_MorphNodeTo, TARGET_VAL(X86::SBB64rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                    2/*#VTs*/, MVT::i64, MVT::i32, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                // Src: (X86sbb_flag:i64:i32 GR64:i64:$src1, (ld:i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, EFLAGS:i32) - Complexity = 25
                // Dst: (SBB64rm:i64:i32 GR64:i64:$src1, addr:iPTR:$src2)
/*55951*/     0, /*End of Scope*/
/*55952*/   /*Scope*/ 92|128,1/*220*/, /*->56174*/
/*55954*/     OPC_RecordChild1, // #1 = $src2
/*55955*/     OPC_Scope, 23|128,1/*151*/, /*->56109*/ // 2 children in Scope
/*55958*/       OPC_MoveChild, 1,
/*55960*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*55963*/       OPC_Scope, 21, /*->55986*/ // 5 children in Scope
/*55965*/         OPC_CheckPredicate, 8, // Predicate_i16immSExt8
/*55967*/         OPC_MoveParent,
/*55968*/         OPC_RecordChild2, // #2 = physreg input EFLAGS
/*55969*/         OPC_CheckType, MVT::i16,
/*55971*/         OPC_EmitConvertToTarget, 1,
/*55973*/         OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*55976*/         OPC_MorphNodeTo, TARGET_VAL(X86::SBB16ri8), 0|OPFL_GlueInput,
                      2/*#VTs*/, MVT::i16, MVT::i32, 2/*#Ops*/, 0, 3, 
                  // Src: (X86sbb_flag:i16:i32 GR16:i16:$src1, (imm:i16)<<P:Predicate_i16immSExt8>>:$src2, EFLAGS:i32) - Complexity = 7
                  // Dst: (SBB16ri8:i16:i32 GR16:i16:$src1, (imm:i16):$src2)
/*55986*/       /*Scope*/ 21, /*->56008*/
/*55987*/         OPC_CheckPredicate, 9, // Predicate_i32immSExt8
/*55989*/         OPC_MoveParent,
/*55990*/         OPC_RecordChild2, // #2 = physreg input EFLAGS
/*55991*/         OPC_CheckType, MVT::i32,
/*55993*/         OPC_EmitConvertToTarget, 1,
/*55995*/         OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*55998*/         OPC_MorphNodeTo, TARGET_VAL(X86::SBB32ri8), 0|OPFL_GlueInput,
                      2/*#VTs*/, MVT::i32, MVT::i32, 2/*#Ops*/, 0, 3, 
                  // Src: (X86sbb_flag:i32:i32 GR32:i32:$src1, (imm:i32)<<P:Predicate_i32immSExt8>>:$src2, EFLAGS:i32) - Complexity = 7
                  // Dst: (SBB32ri8:i32:i32 GR32:i32:$src1, (imm:i32):$src2)
/*56008*/       /*Scope*/ 21, /*->56030*/
/*56009*/         OPC_CheckPredicate, 10, // Predicate_i64immSExt8
/*56011*/         OPC_MoveParent,
/*56012*/         OPC_RecordChild2, // #2 = physreg input EFLAGS
/*56013*/         OPC_CheckType, MVT::i64,
/*56015*/         OPC_EmitConvertToTarget, 1,
/*56017*/         OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*56020*/         OPC_MorphNodeTo, TARGET_VAL(X86::SBB64ri8), 0|OPFL_GlueInput,
                      2/*#VTs*/, MVT::i64, MVT::i32, 2/*#Ops*/, 0, 3, 
                  // Src: (X86sbb_flag:i64:i32 GR64:i64:$src1, (imm:i64)<<P:Predicate_i64immSExt8>>:$src2, EFLAGS:i32) - Complexity = 7
                  // Dst: (SBB64ri8:i64:i32 GR64:i64:$src1, (imm:i64):$src2)
/*56030*/       /*Scope*/ 21, /*->56052*/
/*56031*/         OPC_CheckPredicate, 11, // Predicate_i64immSExt32
/*56033*/         OPC_MoveParent,
/*56034*/         OPC_RecordChild2, // #2 = physreg input EFLAGS
/*56035*/         OPC_CheckType, MVT::i64,
/*56037*/         OPC_EmitConvertToTarget, 1,
/*56039*/         OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*56042*/         OPC_MorphNodeTo, TARGET_VAL(X86::SBB64ri32), 0|OPFL_GlueInput,
                      2/*#VTs*/, MVT::i64, MVT::i32, 2/*#Ops*/, 0, 3, 
                  // Src: (X86sbb_flag:i64:i32 GR64:i64:$src1, (imm:i64)<<P:Predicate_i64immSExt32>>:$src2, EFLAGS:i32) - Complexity = 7
                  // Dst: (SBB64ri32:i64:i32 GR64:i64:$src1, (imm:i64):$src2)
/*56052*/       /*Scope*/ 55, /*->56108*/
/*56053*/         OPC_MoveParent,
/*56054*/         OPC_RecordChild2, // #2 = physreg input EFLAGS
/*56055*/         OPC_SwitchType /*3 cases */, 15,  MVT::i8,// ->56073
/*56058*/           OPC_EmitConvertToTarget, 1,
/*56060*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*56063*/           OPC_MorphNodeTo, TARGET_VAL(X86::SBB8ri), 0|OPFL_GlueInput,
                        2/*#VTs*/, MVT::i8, MVT::i32, 2/*#Ops*/, 0, 3, 
                    // Src: (X86sbb_flag:i8:i32 GR8:i8:$src1, (imm:i8):$src2, EFLAGS:i32) - Complexity = 6
                    // Dst: (SBB8ri:i8:i32 GR8:i8:$src1, (imm:i8):$src2)
                  /*SwitchType*/ 15,  MVT::i16,// ->56090
/*56075*/           OPC_EmitConvertToTarget, 1,
/*56077*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*56080*/           OPC_MorphNodeTo, TARGET_VAL(X86::SBB16ri), 0|OPFL_GlueInput,
                        2/*#VTs*/, MVT::i16, MVT::i32, 2/*#Ops*/, 0, 3, 
                    // Src: (X86sbb_flag:i16:i32 GR16:i16:$src1, (imm:i16):$src2, EFLAGS:i32) - Complexity = 6
                    // Dst: (SBB16ri:i16:i32 GR16:i16:$src1, (imm:i16):$src2)
                  /*SwitchType*/ 15,  MVT::i32,// ->56107
/*56092*/           OPC_EmitConvertToTarget, 1,
/*56094*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*56097*/           OPC_MorphNodeTo, TARGET_VAL(X86::SBB32ri), 0|OPFL_GlueInput,
                        2/*#VTs*/, MVT::i32, MVT::i32, 2/*#Ops*/, 0, 3, 
                    // Src: (X86sbb_flag:i32:i32 GR32:i32:$src1, (imm:i32):$src2, EFLAGS:i32) - Complexity = 6
                    // Dst: (SBB32ri:i32:i32 GR32:i32:$src1, (imm:i32):$src2)
                  0, // EndSwitchType
/*56108*/       0, /*End of Scope*/
/*56109*/     /*Scope*/ 63, /*->56173*/
/*56110*/       OPC_RecordChild2, // #2 = physreg input EFLAGS
/*56111*/       OPC_SwitchType /*4 cases */, 13,  MVT::i8,// ->56127
/*56114*/         OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*56117*/         OPC_MorphNodeTo, TARGET_VAL(X86::SBB8rr), 0|OPFL_GlueInput,
                      2/*#VTs*/, MVT::i8, MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86sbb_flag:i8:i32 GR8:i8:$src1, GR8:i8:$src2, EFLAGS:i32) - Complexity = 3
                  // Dst: (SBB8rr:i8:i32 GR8:i8:$src1, GR8:i8:$src2)
                /*SwitchType*/ 13,  MVT::i16,// ->56142
/*56129*/         OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*56132*/         OPC_MorphNodeTo, TARGET_VAL(X86::SBB16rr), 0|OPFL_GlueInput,
                      2/*#VTs*/, MVT::i16, MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86sbb_flag:i16:i32 GR16:i16:$src1, GR16:i16:$src2, EFLAGS:i32) - Complexity = 3
                  // Dst: (SBB16rr:i16:i32 GR16:i16:$src1, GR16:i16:$src2)
                /*SwitchType*/ 13,  MVT::i32,// ->56157
/*56144*/         OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*56147*/         OPC_MorphNodeTo, TARGET_VAL(X86::SBB32rr), 0|OPFL_GlueInput,
                      2/*#VTs*/, MVT::i32, MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86sbb_flag:i32:i32 GR32:i32:$src1, GR32:i32:$src2, EFLAGS:i32) - Complexity = 3
                  // Dst: (SBB32rr:i32:i32 GR32:i32:$src1, GR32:i32:$src2)
                /*SwitchType*/ 13,  MVT::i64,// ->56172
/*56159*/         OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*56162*/         OPC_MorphNodeTo, TARGET_VAL(X86::SBB64rr), 0|OPFL_GlueInput,
                      2/*#VTs*/, MVT::i64, MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86sbb_flag:i64:i32 GR64:i64:$src1, GR64:i64:$src2, EFLAGS:i32) - Complexity = 3
                  // Dst: (SBB64rr:i64:i32 GR64:i64:$src1, GR64:i64:$src2)
                0, // EndSwitchType
/*56173*/     0, /*End of Scope*/
/*56174*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 101,  TARGET_VAL(X86ISD::ANDN),// ->56279
/*56178*/   OPC_RecordChild0, // #0 = $src1
/*56179*/   OPC_Scope, 65, /*->56246*/ // 2 children in Scope
/*56181*/     OPC_MoveChild, 1,
/*56183*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*56186*/     OPC_RecordMemRef,
/*56187*/     OPC_RecordNode, // #1 = 'ld' chained node
/*56188*/     OPC_CheckFoldableChainNode,
/*56189*/     OPC_RecordChild1, // #2 = $src2
/*56190*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*56192*/     OPC_Scope, 25, /*->56219*/ // 2 children in Scope
/*56194*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*56196*/       OPC_MoveParent,
/*56197*/       OPC_CheckType, MVT::i32,
/*56199*/       OPC_CheckPatternPredicate, 22, // (Subtarget->hasBMI())
/*56201*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*56204*/       OPC_EmitMergeInputChains1_1,
/*56205*/       OPC_MorphNodeTo, TARGET_VAL(X86::ANDN32rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2/*#VTs*/, MVT::i32, MVT::i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (X86andn_flag:i32:i32 GR32:i32:$src1, (ld:i32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>) - Complexity = 25
                // Dst: (ANDN32rm:i32:i32 GR32:i32:$src1, addr:iPTR:$src2)
/*56219*/     /*Scope*/ 25, /*->56245*/
/*56220*/       OPC_CheckPredicate, 3, // Predicate_load
/*56222*/       OPC_MoveParent,
/*56223*/       OPC_CheckType, MVT::i64,
/*56225*/       OPC_CheckPatternPredicate, 22, // (Subtarget->hasBMI())
/*56227*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*56230*/       OPC_EmitMergeInputChains1_1,
/*56231*/       OPC_MorphNodeTo, TARGET_VAL(X86::ANDN64rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2/*#VTs*/, MVT::i64, MVT::i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (X86andn_flag:i64:i32 GR64:i64:$src1, (ld:i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                // Dst: (ANDN64rm:i64:i32 GR64:i64:$src1, addr:iPTR:$src2)
/*56245*/     0, /*End of Scope*/
/*56246*/   /*Scope*/ 31, /*->56278*/
/*56247*/     OPC_RecordChild1, // #1 = $src2
/*56248*/     OPC_SwitchType /*2 cases */, 12,  MVT::i32,// ->56263
/*56251*/       OPC_CheckPatternPredicate, 22, // (Subtarget->hasBMI())
/*56253*/       OPC_MorphNodeTo, TARGET_VAL(X86::ANDN32rr), 0,
                    2/*#VTs*/, MVT::i32, MVT::i32, 2/*#Ops*/, 0, 1, 
                // Src: (X86andn_flag:i32:i32 GR32:i32:$src1, GR32:i32:$src2) - Complexity = 3
                // Dst: (ANDN32rr:i32:i32 GR32:i32:$src1, GR32:i32:$src2)
              /*SwitchType*/ 12,  MVT::i64,// ->56277
/*56265*/       OPC_CheckPatternPredicate, 22, // (Subtarget->hasBMI())
/*56267*/       OPC_MorphNodeTo, TARGET_VAL(X86::ANDN64rr), 0,
                    2/*#VTs*/, MVT::i64, MVT::i32, 2/*#Ops*/, 0, 1, 
                // Src: (X86andn_flag:i64:i32 GR64:i64:$src1, GR64:i64:$src2) - Complexity = 3
                // Dst: (ANDN64rr:i64:i32 GR64:i64:$src1, GR64:i64:$src2)
              0, // EndSwitchType
/*56278*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 26|128,3/*410*/,  TARGET_VAL(ISD::FP_TO_SINT),// ->56693
/*56283*/   OPC_Scope, 64|128,1/*192*/, /*->56478*/ // 4 children in Scope
/*56286*/     OPC_MoveChild, 0,
/*56288*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*56291*/     OPC_RecordMemRef,
/*56292*/     OPC_RecordNode, // #0 = 'ld' chained node
/*56293*/     OPC_RecordChild1, // #1 = $src
/*56294*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*56296*/     OPC_CheckPredicate, 3, // Predicate_load
/*56298*/     OPC_SwitchType /*2 cases */, 87,  MVT::f32,// ->56388
/*56301*/       OPC_MoveParent,
/*56302*/       OPC_SwitchType /*2 cases */, 40,  MVT::i32,// ->56345
/*56305*/         OPC_Scope, 18, /*->56325*/ // 2 children in Scope
/*56307*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*56309*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*56312*/           OPC_EmitMergeInputChains1_0,
/*56313*/           OPC_MorphNodeTo, TARGET_VAL(X86::VCVTTSS2SIrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (fp_to_sint:i32 (ld:f32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VCVTTSS2SIrm:i32 addr:iPTR:$src)
/*56325*/         /*Scope*/ 18, /*->56344*/
/*56326*/           OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*56328*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*56331*/           OPC_EmitMergeInputChains1_0,
/*56332*/           OPC_MorphNodeTo, TARGET_VAL(X86::CVTTSS2SIrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (fp_to_sint:i32 (ld:f32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (CVTTSS2SIrm:i32 addr:iPTR:$src)
/*56344*/         0, /*End of Scope*/
                /*SwitchType*/ 40,  MVT::i64,// ->56387
/*56347*/         OPC_Scope, 18, /*->56367*/ // 2 children in Scope
/*56349*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*56351*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*56354*/           OPC_EmitMergeInputChains1_0,
/*56355*/           OPC_MorphNodeTo, TARGET_VAL(X86::VCVTTSS2SI64rm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (fp_to_sint:i64 (ld:f32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VCVTTSS2SI64rm:i64 addr:iPTR:$src)
/*56367*/         /*Scope*/ 18, /*->56386*/
/*56368*/           OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*56370*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*56373*/           OPC_EmitMergeInputChains1_0,
/*56374*/           OPC_MorphNodeTo, TARGET_VAL(X86::CVTTSS2SI64rm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (fp_to_sint:i64 (ld:f32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (CVTTSS2SI64rm:i64 addr:iPTR:$src)
/*56386*/         0, /*End of Scope*/
                0, // EndSwitchType
              /*SwitchType*/ 87,  MVT::f64,// ->56477
/*56390*/       OPC_MoveParent,
/*56391*/       OPC_SwitchType /*2 cases */, 40,  MVT::i32,// ->56434
/*56394*/         OPC_Scope, 18, /*->56414*/ // 2 children in Scope
/*56396*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*56398*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*56401*/           OPC_EmitMergeInputChains1_0,
/*56402*/           OPC_MorphNodeTo, TARGET_VAL(X86::VCVTTSD2SIrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (fp_to_sint:i32 (ld:f64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VCVTTSD2SIrm:i32 addr:iPTR:$src)
/*56414*/         /*Scope*/ 18, /*->56433*/
/*56415*/           OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*56417*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*56420*/           OPC_EmitMergeInputChains1_0,
/*56421*/           OPC_MorphNodeTo, TARGET_VAL(X86::CVTTSD2SIrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (fp_to_sint:i32 (ld:f64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (CVTTSD2SIrm:i32 addr:iPTR:$src)
/*56433*/         0, /*End of Scope*/
                /*SwitchType*/ 40,  MVT::i64,// ->56476
/*56436*/         OPC_Scope, 18, /*->56456*/ // 2 children in Scope
/*56438*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*56440*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*56443*/           OPC_EmitMergeInputChains1_0,
/*56444*/           OPC_MorphNodeTo, TARGET_VAL(X86::VCVTTSD2SI64rm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (fp_to_sint:i64 (ld:f64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VCVTTSD2SI64rm:i64 addr:iPTR:$src)
/*56456*/         /*Scope*/ 18, /*->56475*/
/*56457*/           OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*56459*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*56462*/           OPC_EmitMergeInputChains1_0,
/*56463*/           OPC_MorphNodeTo, TARGET_VAL(X86::CVTTSD2SI64rm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (fp_to_sint:i64 (ld:f64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (CVTTSD2SI64rm:i64 addr:iPTR:$src)
/*56475*/         0, /*End of Scope*/
                0, // EndSwitchType
              0, // EndSwitchType
/*56478*/   /*Scope*/ 117, /*->56596*/
/*56479*/     OPC_RecordChild0, // #0 = $src
/*56480*/     OPC_Scope, 56, /*->56538*/ // 2 children in Scope
/*56482*/       OPC_CheckChild0Type, MVT::f32,
/*56484*/       OPC_SwitchType /*2 cases */, 24,  MVT::i32,// ->56511
/*56487*/         OPC_Scope, 10, /*->56499*/ // 2 children in Scope
/*56489*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*56491*/           OPC_MorphNodeTo, TARGET_VAL(X86::VCVTTSS2SIrr), 0,
                        1/*#VTs*/, MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (fp_to_sint:i32 FR32:f32:$src) - Complexity = 3
                    // Dst: (VCVTTSS2SIrr:i32 FR32:f32:$src)
/*56499*/         /*Scope*/ 10, /*->56510*/
/*56500*/           OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*56502*/           OPC_MorphNodeTo, TARGET_VAL(X86::CVTTSS2SIrr), 0,
                        1/*#VTs*/, MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (fp_to_sint:i32 FR32:f32:$src) - Complexity = 3
                    // Dst: (CVTTSS2SIrr:i32 FR32:f32:$src)
/*56510*/         0, /*End of Scope*/
                /*SwitchType*/ 24,  MVT::i64,// ->56537
/*56513*/         OPC_Scope, 10, /*->56525*/ // 2 children in Scope
/*56515*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*56517*/           OPC_MorphNodeTo, TARGET_VAL(X86::VCVTTSS2SI64rr), 0,
                        1/*#VTs*/, MVT::i64, 1/*#Ops*/, 0, 
                    // Src: (fp_to_sint:i64 FR32:f32:$src) - Complexity = 3
                    // Dst: (VCVTTSS2SI64rr:i64 FR32:f32:$src)
/*56525*/         /*Scope*/ 10, /*->56536*/
/*56526*/           OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*56528*/           OPC_MorphNodeTo, TARGET_VAL(X86::CVTTSS2SI64rr), 0,
                        1/*#VTs*/, MVT::i64, 1/*#Ops*/, 0, 
                    // Src: (fp_to_sint:i64 FR32:f32:$src) - Complexity = 3
                    // Dst: (CVTTSS2SI64rr:i64 FR32:f32:$src)
/*56536*/         0, /*End of Scope*/
                0, // EndSwitchType
/*56538*/     /*Scope*/ 56, /*->56595*/
/*56539*/       OPC_CheckChild0Type, MVT::f64,
/*56541*/       OPC_SwitchType /*2 cases */, 24,  MVT::i32,// ->56568
/*56544*/         OPC_Scope, 10, /*->56556*/ // 2 children in Scope
/*56546*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*56548*/           OPC_MorphNodeTo, TARGET_VAL(X86::VCVTTSD2SIrr), 0,
                        1/*#VTs*/, MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (fp_to_sint:i32 FR64:f64:$src) - Complexity = 3
                    // Dst: (VCVTTSD2SIrr:i32 FR64:f64:$src)
/*56556*/         /*Scope*/ 10, /*->56567*/
/*56557*/           OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*56559*/           OPC_MorphNodeTo, TARGET_VAL(X86::CVTTSD2SIrr), 0,
                        1/*#VTs*/, MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (fp_to_sint:i32 FR64:f64:$src) - Complexity = 3
                    // Dst: (CVTTSD2SIrr:i32 FR64:f64:$src)
/*56567*/         0, /*End of Scope*/
                /*SwitchType*/ 24,  MVT::i64,// ->56594
/*56570*/         OPC_Scope, 10, /*->56582*/ // 2 children in Scope
/*56572*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*56574*/           OPC_MorphNodeTo, TARGET_VAL(X86::VCVTTSD2SI64rr), 0,
                        1/*#VTs*/, MVT::i64, 1/*#Ops*/, 0, 
                    // Src: (fp_to_sint:i64 FR64:f64:$src) - Complexity = 3
                    // Dst: (VCVTTSD2SI64rr:i64 FR64:f64:$src)
/*56582*/         /*Scope*/ 10, /*->56593*/
/*56583*/           OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*56585*/           OPC_MorphNodeTo, TARGET_VAL(X86::CVTTSD2SI64rr), 0,
                        1/*#VTs*/, MVT::i64, 1/*#Ops*/, 0, 
                    // Src: (fp_to_sint:i64 FR64:f64:$src) - Complexity = 3
                    // Dst: (CVTTSD2SI64rr:i64 FR64:f64:$src)
/*56593*/         0, /*End of Scope*/
                0, // EndSwitchType
/*56595*/     0, /*End of Scope*/
/*56596*/   /*Scope*/ 35, /*->56632*/
/*56597*/     OPC_MoveChild, 0,
/*56599*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*56602*/     OPC_RecordMemRef,
/*56603*/     OPC_RecordNode, // #0 = 'ld' chained node
/*56604*/     OPC_RecordChild1, // #1 = $src
/*56605*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*56607*/     OPC_CheckPredicate, 3, // Predicate_load
/*56609*/     OPC_CheckPredicate, 23, // Predicate_memop
/*56611*/     OPC_CheckType, MVT::v4f64,
/*56613*/     OPC_MoveParent,
/*56614*/     OPC_CheckType, MVT::v4i32,
/*56616*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*56619*/     OPC_EmitMergeInputChains1_0,
/*56620*/     OPC_MorphNodeTo, TARGET_VAL(X86::VCVTPD2DQYrm), 0|OPFL_Chain|OPFL_MemRefs,
                  1/*#VTs*/, MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
              // Src: (fp_to_sint:v4i32 (ld:v4f64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
              // Dst: (VCVTPD2DQYrm:v4i32 addr:iPTR:$src)
/*56632*/   /*Scope*/ 59, /*->56692*/
/*56633*/     OPC_RecordChild0, // #0 = $src
/*56634*/     OPC_SwitchType /*2 cases */, 40,  MVT::v4i32,// ->56677
/*56637*/       OPC_Scope, 26, /*->56665*/ // 2 children in Scope
/*56639*/         OPC_CheckChild0Type, MVT::v4f32,
/*56641*/         OPC_Scope, 10, /*->56653*/ // 2 children in Scope
/*56643*/           OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*56645*/           OPC_MorphNodeTo, TARGET_VAL(X86::CVTTPS2DQrr), 0,
                        1/*#VTs*/, MVT::v4i32, 1/*#Ops*/, 0, 
                    // Src: (fp_to_sint:v4i32 VR128:v4f32:$src) - Complexity = 3
                    // Dst: (CVTTPS2DQrr:v4i32 VR128:v4f32:$src)
/*56653*/         /*Scope*/ 10, /*->56664*/
/*56654*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*56656*/           OPC_MorphNodeTo, TARGET_VAL(X86::VCVTTPS2DQrr), 0,
                        1/*#VTs*/, MVT::v4i32, 1/*#Ops*/, 0, 
                    // Src: (fp_to_sint:v4i32 VR128:v4f32:$src) - Complexity = 3
                    // Dst: (VCVTTPS2DQrr:v4i32 VR128:v4f32:$src)
/*56664*/         0, /*End of Scope*/
/*56665*/       /*Scope*/ 10, /*->56676*/
/*56666*/         OPC_CheckChild0Type, MVT::v4f64,
/*56668*/         OPC_MorphNodeTo, TARGET_VAL(X86::VCVTPD2DQYrr), 0,
                      1/*#VTs*/, MVT::v4i32, 1/*#Ops*/, 0, 
                  // Src: (fp_to_sint:v4i32 VR256:v4f64:$src) - Complexity = 3
                  // Dst: (VCVTPD2DQYrr:v4i32 VR256:v4f64:$src)
/*56676*/       0, /*End of Scope*/
              /*SwitchType*/ 12,  MVT::v8i32,// ->56691
/*56679*/       OPC_CheckChild0Type, MVT::v8f32,
/*56681*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*56683*/       OPC_MorphNodeTo, TARGET_VAL(X86::VCVTTPS2DQYrr), 0,
                    1/*#VTs*/, MVT::v8i32, 1/*#Ops*/, 0, 
                // Src: (fp_to_sint:v8i32 VR256:v8f32:$src) - Complexity = 3
                // Dst: (VCVTTPS2DQYrr:v8i32 VR256:v8f32:$src)
              0, // EndSwitchType
/*56692*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 55|128,1/*183*/,  TARGET_VAL(X86ISD::UCOMI),// ->56880
/*56697*/   OPC_RecordChild0, // #0 = $src1
/*56698*/   OPC_Scope, 89, /*->56789*/ // 2 children in Scope
/*56700*/     OPC_CheckChild0Type, MVT::v4f32,
/*56702*/     OPC_Scope, 56, /*->56760*/ // 2 children in Scope
/*56704*/       OPC_MoveChild, 1,
/*56706*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*56709*/       OPC_RecordMemRef,
/*56710*/       OPC_RecordNode, // #1 = 'ld' chained node
/*56711*/       OPC_CheckFoldableChainNode,
/*56712*/       OPC_RecordChild1, // #2 = $src2
/*56713*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*56715*/       OPC_CheckPredicate, 3, // Predicate_load
/*56717*/       OPC_MoveParent,
/*56718*/       OPC_Scope, 19, /*->56739*/ // 2 children in Scope
/*56720*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*56722*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*56725*/         OPC_EmitMergeInputChains1_1,
/*56726*/         OPC_MorphNodeTo, TARGET_VAL(X86::Int_VUCOMISSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (X86ucomi:i32 VR128:v4f32:$src1, (ld:v4f32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (Int_VUCOMISSrm:i32 VR128:v4f32:$src1, addr:iPTR:$src2)
/*56739*/       /*Scope*/ 19, /*->56759*/
/*56740*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*56742*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*56745*/         OPC_EmitMergeInputChains1_1,
/*56746*/         OPC_MorphNodeTo, TARGET_VAL(X86::Int_UCOMISSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (X86ucomi:i32 VR128:v4f32:$src1, (ld:v4f32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (Int_UCOMISSrm:i32 VR128:v4f32:$src1, addr:iPTR:$src2)
/*56759*/       0, /*End of Scope*/
/*56760*/     /*Scope*/ 27, /*->56788*/
/*56761*/       OPC_RecordChild1, // #1 = $src2
/*56762*/       OPC_Scope, 11, /*->56775*/ // 2 children in Scope
/*56764*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*56766*/         OPC_MorphNodeTo, TARGET_VAL(X86::Int_VUCOMISSrr), 0,
                      1/*#VTs*/, MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86ucomi:i32 VR128:v4f32:$src1, VR128:v4f32:$src2) - Complexity = 3
                  // Dst: (Int_VUCOMISSrr:i32 VR128:v4f32:$src1, VR128:v4f32:$src2)
/*56775*/       /*Scope*/ 11, /*->56787*/
/*56776*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*56778*/         OPC_MorphNodeTo, TARGET_VAL(X86::Int_UCOMISSrr), 0,
                      1/*#VTs*/, MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86ucomi:i32 VR128:v4f32:$src1, VR128:v4f32:$src2) - Complexity = 3
                  // Dst: (Int_UCOMISSrr:i32 VR128:v4f32:$src1, VR128:v4f32:$src2)
/*56787*/       0, /*End of Scope*/
/*56788*/     0, /*End of Scope*/
/*56789*/   /*Scope*/ 89, /*->56879*/
/*56790*/     OPC_CheckChild0Type, MVT::v2f64,
/*56792*/     OPC_Scope, 56, /*->56850*/ // 2 children in Scope
/*56794*/       OPC_MoveChild, 1,
/*56796*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*56799*/       OPC_RecordMemRef,
/*56800*/       OPC_RecordNode, // #1 = 'ld' chained node
/*56801*/       OPC_CheckFoldableChainNode,
/*56802*/       OPC_RecordChild1, // #2 = $src2
/*56803*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*56805*/       OPC_CheckPredicate, 3, // Predicate_load
/*56807*/       OPC_MoveParent,
/*56808*/       OPC_Scope, 19, /*->56829*/ // 2 children in Scope
/*56810*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*56812*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*56815*/         OPC_EmitMergeInputChains1_1,
/*56816*/         OPC_MorphNodeTo, TARGET_VAL(X86::Int_VUCOMISDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (X86ucomi:i32 VR128:v2f64:$src1, (ld:v2f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (Int_VUCOMISDrm:i32 VR128:v2f64:$src1, addr:iPTR:$src2)
/*56829*/       /*Scope*/ 19, /*->56849*/
/*56830*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*56832*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*56835*/         OPC_EmitMergeInputChains1_1,
/*56836*/         OPC_MorphNodeTo, TARGET_VAL(X86::Int_UCOMISDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (X86ucomi:i32 VR128:v2f64:$src1, (ld:v2f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (Int_UCOMISDrm:i32 VR128:v2f64:$src1, addr:iPTR:$src2)
/*56849*/       0, /*End of Scope*/
/*56850*/     /*Scope*/ 27, /*->56878*/
/*56851*/       OPC_RecordChild1, // #1 = $src2
/*56852*/       OPC_Scope, 11, /*->56865*/ // 2 children in Scope
/*56854*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*56856*/         OPC_MorphNodeTo, TARGET_VAL(X86::Int_VUCOMISDrr), 0,
                      1/*#VTs*/, MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86ucomi:i32 VR128:v2f64:$src1, VR128:v2f64:$src2) - Complexity = 3
                  // Dst: (Int_VUCOMISDrr:i32 VR128:v2f64:$src1, VR128:v2f64:$src2)
/*56865*/       /*Scope*/ 11, /*->56877*/
/*56866*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*56868*/         OPC_MorphNodeTo, TARGET_VAL(X86::Int_UCOMISDrr), 0,
                      1/*#VTs*/, MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86ucomi:i32 VR128:v2f64:$src1, VR128:v2f64:$src2) - Complexity = 3
                  // Dst: (Int_UCOMISDrr:i32 VR128:v2f64:$src1, VR128:v2f64:$src2)
/*56877*/       0, /*End of Scope*/
/*56878*/     0, /*End of Scope*/
/*56879*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 55|128,1/*183*/,  TARGET_VAL(X86ISD::COMI),// ->57067
/*56884*/   OPC_RecordChild0, // #0 = $src1
/*56885*/   OPC_Scope, 89, /*->56976*/ // 2 children in Scope
/*56887*/     OPC_CheckChild0Type, MVT::v4f32,
/*56889*/     OPC_Scope, 56, /*->56947*/ // 2 children in Scope
/*56891*/       OPC_MoveChild, 1,
/*56893*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*56896*/       OPC_RecordMemRef,
/*56897*/       OPC_RecordNode, // #1 = 'ld' chained node
/*56898*/       OPC_CheckFoldableChainNode,
/*56899*/       OPC_RecordChild1, // #2 = $src2
/*56900*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*56902*/       OPC_CheckPredicate, 3, // Predicate_load
/*56904*/       OPC_MoveParent,
/*56905*/       OPC_Scope, 19, /*->56926*/ // 2 children in Scope
/*56907*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*56909*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*56912*/         OPC_EmitMergeInputChains1_1,
/*56913*/         OPC_MorphNodeTo, TARGET_VAL(X86::Int_VCOMISSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (X86comi:i32 VR128:v4f32:$src1, (ld:v4f32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (Int_VCOMISSrm:i32 VR128:v4f32:$src1, addr:iPTR:$src2)
/*56926*/       /*Scope*/ 19, /*->56946*/
/*56927*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*56929*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*56932*/         OPC_EmitMergeInputChains1_1,
/*56933*/         OPC_MorphNodeTo, TARGET_VAL(X86::Int_COMISSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (X86comi:i32 VR128:v4f32:$src1, (ld:v4f32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (Int_COMISSrm:i32 VR128:v4f32:$src1, addr:iPTR:$src2)
/*56946*/       0, /*End of Scope*/
/*56947*/     /*Scope*/ 27, /*->56975*/
/*56948*/       OPC_RecordChild1, // #1 = $src2
/*56949*/       OPC_Scope, 11, /*->56962*/ // 2 children in Scope
/*56951*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*56953*/         OPC_MorphNodeTo, TARGET_VAL(X86::Int_VCOMISSrr), 0,
                      1/*#VTs*/, MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86comi:i32 VR128:v4f32:$src1, VR128:v4f32:$src2) - Complexity = 3
                  // Dst: (Int_VCOMISSrr:i32 VR128:v4f32:$src1, VR128:v4f32:$src2)
/*56962*/       /*Scope*/ 11, /*->56974*/
/*56963*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*56965*/         OPC_MorphNodeTo, TARGET_VAL(X86::Int_COMISSrr), 0,
                      1/*#VTs*/, MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86comi:i32 VR128:v4f32:$src1, VR128:v4f32:$src2) - Complexity = 3
                  // Dst: (Int_COMISSrr:i32 VR128:v4f32:$src1, VR128:v4f32:$src2)
/*56974*/       0, /*End of Scope*/
/*56975*/     0, /*End of Scope*/
/*56976*/   /*Scope*/ 89, /*->57066*/
/*56977*/     OPC_CheckChild0Type, MVT::v2f64,
/*56979*/     OPC_Scope, 56, /*->57037*/ // 2 children in Scope
/*56981*/       OPC_MoveChild, 1,
/*56983*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*56986*/       OPC_RecordMemRef,
/*56987*/       OPC_RecordNode, // #1 = 'ld' chained node
/*56988*/       OPC_CheckFoldableChainNode,
/*56989*/       OPC_RecordChild1, // #2 = $src2
/*56990*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*56992*/       OPC_CheckPredicate, 3, // Predicate_load
/*56994*/       OPC_MoveParent,
/*56995*/       OPC_Scope, 19, /*->57016*/ // 2 children in Scope
/*56997*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*56999*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*57002*/         OPC_EmitMergeInputChains1_1,
/*57003*/         OPC_MorphNodeTo, TARGET_VAL(X86::Int_VCOMISDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (X86comi:i32 VR128:v2f64:$src1, (ld:v2f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (Int_VCOMISDrm:i32 VR128:v2f64:$src1, addr:iPTR:$src2)
/*57016*/       /*Scope*/ 19, /*->57036*/
/*57017*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*57019*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*57022*/         OPC_EmitMergeInputChains1_1,
/*57023*/         OPC_MorphNodeTo, TARGET_VAL(X86::Int_COMISDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (X86comi:i32 VR128:v2f64:$src1, (ld:v2f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (Int_COMISDrm:i32 VR128:v2f64:$src1, addr:iPTR:$src2)
/*57036*/       0, /*End of Scope*/
/*57037*/     /*Scope*/ 27, /*->57065*/
/*57038*/       OPC_RecordChild1, // #1 = $src2
/*57039*/       OPC_Scope, 11, /*->57052*/ // 2 children in Scope
/*57041*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*57043*/         OPC_MorphNodeTo, TARGET_VAL(X86::Int_VCOMISDrr), 0,
                      1/*#VTs*/, MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86comi:i32 VR128:v2f64:$src1, VR128:v2f64:$src2) - Complexity = 3
                  // Dst: (Int_VCOMISDrr:i32 VR128:v2f64:$src1, VR128:v2f64:$src2)
/*57052*/       /*Scope*/ 11, /*->57064*/
/*57053*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*57055*/         OPC_MorphNodeTo, TARGET_VAL(X86::Int_COMISDrr), 0,
                      1/*#VTs*/, MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86comi:i32 VR128:v2f64:$src1, VR128:v2f64:$src2) - Complexity = 3
                  // Dst: (Int_COMISDrr:i32 VR128:v2f64:$src1, VR128:v2f64:$src2)
/*57064*/       0, /*End of Scope*/
/*57065*/     0, /*End of Scope*/
/*57066*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 21|128,1/*149*/,  TARGET_VAL(X86ISD::PTEST),// ->57220
/*57071*/   OPC_RecordChild0, // #0 = $src1
/*57072*/   OPC_Scope, 91, /*->57165*/ // 2 children in Scope
/*57074*/     OPC_CheckChild0Type, MVT::v4f32,
/*57076*/     OPC_Scope, 58, /*->57136*/ // 2 children in Scope
/*57078*/       OPC_MoveChild, 1,
/*57080*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*57083*/       OPC_RecordMemRef,
/*57084*/       OPC_RecordNode, // #1 = 'ld' chained node
/*57085*/       OPC_CheckFoldableChainNode,
/*57086*/       OPC_RecordChild1, // #2 = $src2
/*57087*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*57089*/       OPC_CheckPredicate, 3, // Predicate_load
/*57091*/       OPC_CheckPredicate, 23, // Predicate_memop
/*57093*/       OPC_MoveParent,
/*57094*/       OPC_Scope, 19, /*->57115*/ // 2 children in Scope
/*57096*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*57098*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*57101*/         OPC_EmitMergeInputChains1_1,
/*57102*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPTESTrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (X86ptest:i32 VR128:v4f32:$src1, (ld:v4f32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                  // Dst: (VPTESTrm:i32 VR128:v4f32:$src1, addr:iPTR:$src2)
/*57115*/       /*Scope*/ 19, /*->57135*/
/*57116*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*57118*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*57121*/         OPC_EmitMergeInputChains1_1,
/*57122*/         OPC_MorphNodeTo, TARGET_VAL(X86::PTESTrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (X86ptest:i32 VR128:v4f32:$src1, (ld:v4f32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                  // Dst: (PTESTrm:i32 VR128:v4f32:$src1, addr:iPTR:$src2)
/*57135*/       0, /*End of Scope*/
/*57136*/     /*Scope*/ 27, /*->57164*/
/*57137*/       OPC_RecordChild1, // #1 = $src2
/*57138*/       OPC_Scope, 11, /*->57151*/ // 2 children in Scope
/*57140*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*57142*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPTESTrr), 0,
                      1/*#VTs*/, MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86ptest:i32 VR128:v4f32:$src1, VR128:v4f32:$src2) - Complexity = 3
                  // Dst: (VPTESTrr:i32 VR128:v4f32:$src1, VR128:v4f32:$src2)
/*57151*/       /*Scope*/ 11, /*->57163*/
/*57152*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*57154*/         OPC_MorphNodeTo, TARGET_VAL(X86::PTESTrr), 0,
                      1/*#VTs*/, MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86ptest:i32 VR128:v4f32:$src1, VR128:v4f32:$src2) - Complexity = 3
                  // Dst: (PTESTrr:i32 VR128:v4f32:$src1, VR128:v4f32:$src2)
/*57163*/       0, /*End of Scope*/
/*57164*/     0, /*End of Scope*/
/*57165*/   /*Scope*/ 53, /*->57219*/
/*57166*/     OPC_CheckChild0Type, MVT::v4i64,
/*57168*/     OPC_Scope, 35, /*->57205*/ // 2 children in Scope
/*57170*/       OPC_MoveChild, 1,
/*57172*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*57175*/       OPC_RecordMemRef,
/*57176*/       OPC_RecordNode, // #1 = 'ld' chained node
/*57177*/       OPC_CheckFoldableChainNode,
/*57178*/       OPC_RecordChild1, // #2 = $src2
/*57179*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*57181*/       OPC_CheckPredicate, 3, // Predicate_load
/*57183*/       OPC_CheckPredicate, 23, // Predicate_memop
/*57185*/       OPC_MoveParent,
/*57186*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*57188*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*57191*/       OPC_EmitMergeInputChains1_1,
/*57192*/       OPC_MorphNodeTo, TARGET_VAL(X86::VPTESTYrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (X86ptest:i32 VR256:v4i64:$src1, (ld:v4i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                // Dst: (VPTESTYrm:i32 VR256:v4i64:$src1, addr:iPTR:$src2)
/*57205*/     /*Scope*/ 12, /*->57218*/
/*57206*/       OPC_RecordChild1, // #1 = $src2
/*57207*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*57209*/       OPC_MorphNodeTo, TARGET_VAL(X86::VPTESTYrr), 0,
                    1/*#VTs*/, MVT::i32, 2/*#Ops*/, 0, 1, 
                // Src: (X86ptest:i32 VR256:v4i64:$src1, VR256:v4i64:$src2) - Complexity = 3
                // Dst: (VPTESTYrr:i32 VR256:v4i64:$src1, VR256:v4i64:$src2)
/*57218*/     0, /*End of Scope*/
/*57219*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 91|128,1/*219*/,  TARGET_VAL(X86ISD::TESTP),// ->57443
/*57224*/   OPC_RecordChild0, // #0 = $src1
/*57225*/   OPC_Scope, 53, /*->57280*/ // 4 children in Scope
/*57227*/     OPC_CheckChild0Type, MVT::v4f32,
/*57229*/     OPC_Scope, 35, /*->57266*/ // 2 children in Scope
/*57231*/       OPC_MoveChild, 1,
/*57233*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*57236*/       OPC_RecordMemRef,
/*57237*/       OPC_RecordNode, // #1 = 'ld' chained node
/*57238*/       OPC_CheckFoldableChainNode,
/*57239*/       OPC_RecordChild1, // #2 = $src2
/*57240*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*57242*/       OPC_CheckPredicate, 3, // Predicate_load
/*57244*/       OPC_CheckPredicate, 23, // Predicate_memop
/*57246*/       OPC_MoveParent,
/*57247*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*57249*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*57252*/       OPC_EmitMergeInputChains1_1,
/*57253*/       OPC_MorphNodeTo, TARGET_VAL(X86::VTESTPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (X86testp:i32 VR128:v4f32:$src1, (ld:v4f32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                // Dst: (VTESTPSrm:i32 VR128:v4f32:$src1, addr:iPTR:$src2)
/*57266*/     /*Scope*/ 12, /*->57279*/
/*57267*/       OPC_RecordChild1, // #1 = $src2
/*57268*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*57270*/       OPC_MorphNodeTo, TARGET_VAL(X86::VTESTPSrr), 0,
                    1/*#VTs*/, MVT::i32, 2/*#Ops*/, 0, 1, 
                // Src: (X86testp:i32 VR128:v4f32:$src1, VR128:v4f32:$src2) - Complexity = 3
                // Dst: (VTESTPSrr:i32 VR128:v4f32:$src1, VR128:v4f32:$src2)
/*57279*/     0, /*End of Scope*/
/*57280*/   /*Scope*/ 53, /*->57334*/
/*57281*/     OPC_CheckChild0Type, MVT::v8f32,
/*57283*/     OPC_Scope, 35, /*->57320*/ // 2 children in Scope
/*57285*/       OPC_MoveChild, 1,
/*57287*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*57290*/       OPC_RecordMemRef,
/*57291*/       OPC_RecordNode, // #1 = 'ld' chained node
/*57292*/       OPC_CheckFoldableChainNode,
/*57293*/       OPC_RecordChild1, // #2 = $src2
/*57294*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*57296*/       OPC_CheckPredicate, 3, // Predicate_load
/*57298*/       OPC_CheckPredicate, 23, // Predicate_memop
/*57300*/       OPC_MoveParent,
/*57301*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*57303*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*57306*/       OPC_EmitMergeInputChains1_1,
/*57307*/       OPC_MorphNodeTo, TARGET_VAL(X86::VTESTPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (X86testp:i32 VR256:v8f32:$src1, (ld:v8f32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                // Dst: (VTESTPSYrm:i32 VR256:v8f32:$src1, addr:iPTR:$src2)
/*57320*/     /*Scope*/ 12, /*->57333*/
/*57321*/       OPC_RecordChild1, // #1 = $src2
/*57322*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*57324*/       OPC_MorphNodeTo, TARGET_VAL(X86::VTESTPSYrr), 0,
                    1/*#VTs*/, MVT::i32, 2/*#Ops*/, 0, 1, 
                // Src: (X86testp:i32 VR256:v8f32:$src1, VR256:v8f32:$src2) - Complexity = 3
                // Dst: (VTESTPSYrr:i32 VR256:v8f32:$src1, VR256:v8f32:$src2)
/*57333*/     0, /*End of Scope*/
/*57334*/   /*Scope*/ 53, /*->57388*/
/*57335*/     OPC_CheckChild0Type, MVT::v2f64,
/*57337*/     OPC_Scope, 35, /*->57374*/ // 2 children in Scope
/*57339*/       OPC_MoveChild, 1,
/*57341*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*57344*/       OPC_RecordMemRef,
/*57345*/       OPC_RecordNode, // #1 = 'ld' chained node
/*57346*/       OPC_CheckFoldableChainNode,
/*57347*/       OPC_RecordChild1, // #2 = $src2
/*57348*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*57350*/       OPC_CheckPredicate, 3, // Predicate_load
/*57352*/       OPC_CheckPredicate, 23, // Predicate_memop
/*57354*/       OPC_MoveParent,
/*57355*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*57357*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*57360*/       OPC_EmitMergeInputChains1_1,
/*57361*/       OPC_MorphNodeTo, TARGET_VAL(X86::VTESTPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (X86testp:i32 VR128:v2f64:$src1, (ld:v2f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                // Dst: (VTESTPDrm:i32 VR128:v2f64:$src1, addr:iPTR:$src2)
/*57374*/     /*Scope*/ 12, /*->57387*/
/*57375*/       OPC_RecordChild1, // #1 = $src2
/*57376*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*57378*/       OPC_MorphNodeTo, TARGET_VAL(X86::VTESTPDrr), 0,
                    1/*#VTs*/, MVT::i32, 2/*#Ops*/, 0, 1, 
                // Src: (X86testp:i32 VR128:v2f64:$src1, VR128:v2f64:$src2) - Complexity = 3
                // Dst: (VTESTPDrr:i32 VR128:v2f64:$src1, VR128:v2f64:$src2)
/*57387*/     0, /*End of Scope*/
/*57388*/   /*Scope*/ 53, /*->57442*/
/*57389*/     OPC_CheckChild0Type, MVT::v4f64,
/*57391*/     OPC_Scope, 35, /*->57428*/ // 2 children in Scope
/*57393*/       OPC_MoveChild, 1,
/*57395*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*57398*/       OPC_RecordMemRef,
/*57399*/       OPC_RecordNode, // #1 = 'ld' chained node
/*57400*/       OPC_CheckFoldableChainNode,
/*57401*/       OPC_RecordChild1, // #2 = $src2
/*57402*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*57404*/       OPC_CheckPredicate, 3, // Predicate_load
/*57406*/       OPC_CheckPredicate, 23, // Predicate_memop
/*57408*/       OPC_MoveParent,
/*57409*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*57411*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*57414*/       OPC_EmitMergeInputChains1_1,
/*57415*/       OPC_MorphNodeTo, TARGET_VAL(X86::VTESTPDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (X86testp:i32 VR256:v4f64:$src1, (ld:v4f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                // Dst: (VTESTPDYrm:i32 VR256:v4f64:$src1, addr:iPTR:$src2)
/*57428*/     /*Scope*/ 12, /*->57441*/
/*57429*/       OPC_RecordChild1, // #1 = $src2
/*57430*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*57432*/       OPC_MorphNodeTo, TARGET_VAL(X86::VTESTPDYrr), 0,
                    1/*#VTs*/, MVT::i32, 2/*#Ops*/, 0, 1, 
                // Src: (X86testp:i32 VR256:v4f64:$src1, VR256:v4f64:$src2) - Complexity = 3
                // Dst: (VTESTPDYrr:i32 VR256:v4f64:$src1, VR256:v4f64:$src2)
/*57441*/     0, /*End of Scope*/
/*57442*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 5|128,1/*133*/,  TARGET_VAL(ISD::CTPOP),// ->57580
/*57447*/   OPC_Scope, 87, /*->57536*/ // 2 children in Scope
/*57449*/     OPC_MoveChild, 0,
/*57451*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*57454*/     OPC_RecordMemRef,
/*57455*/     OPC_RecordNode, // #0 = 'ld' chained node
/*57456*/     OPC_RecordChild1, // #1 = $src
/*57457*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*57459*/     OPC_Scope, 24, /*->57485*/ // 3 children in Scope
/*57461*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*57463*/       OPC_MoveParent,
/*57464*/       OPC_CheckType, MVT::i16,
/*57466*/       OPC_CheckPatternPredicate, 23, // (Subtarget->hasPOPCNT())
/*57468*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*57471*/       OPC_EmitMergeInputChains1_0,
/*57472*/       OPC_MorphNodeTo, TARGET_VAL(X86::POPCNT16rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2/*#VTs*/, MVT::i16, MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (ctpop:i16 (ld:i16 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>) - Complexity = 25
                // Dst: (POPCNT16rm:i16:i32 addr:iPTR:$src)
/*57485*/     /*Scope*/ 24, /*->57510*/
/*57486*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*57488*/       OPC_MoveParent,
/*57489*/       OPC_CheckType, MVT::i32,
/*57491*/       OPC_CheckPatternPredicate, 23, // (Subtarget->hasPOPCNT())
/*57493*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*57496*/       OPC_EmitMergeInputChains1_0,
/*57497*/       OPC_MorphNodeTo, TARGET_VAL(X86::POPCNT32rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2/*#VTs*/, MVT::i32, MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (ctpop:i32 (ld:i32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>) - Complexity = 25
                // Dst: (POPCNT32rm:i32:i32 addr:iPTR:$src)
/*57510*/     /*Scope*/ 24, /*->57535*/
/*57511*/       OPC_CheckPredicate, 3, // Predicate_load
/*57513*/       OPC_MoveParent,
/*57514*/       OPC_CheckType, MVT::i64,
/*57516*/       OPC_CheckPatternPredicate, 23, // (Subtarget->hasPOPCNT())
/*57518*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*57521*/       OPC_EmitMergeInputChains1_0,
/*57522*/       OPC_MorphNodeTo, TARGET_VAL(X86::POPCNT64rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2/*#VTs*/, MVT::i64, MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (ctpop:i64 (ld:i64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                // Dst: (POPCNT64rm:i64:i32 addr:iPTR:$src)
/*57535*/     0, /*End of Scope*/
/*57536*/   /*Scope*/ 42, /*->57579*/
/*57537*/     OPC_RecordChild0, // #0 = $src
/*57538*/     OPC_SwitchType /*3 cases */, 11,  MVT::i16,// ->57552
/*57541*/       OPC_CheckPatternPredicate, 23, // (Subtarget->hasPOPCNT())
/*57543*/       OPC_MorphNodeTo, TARGET_VAL(X86::POPCNT16rr), 0,
                    2/*#VTs*/, MVT::i16, MVT::i32, 1/*#Ops*/, 0, 
                // Src: (ctpop:i16 GR16:i16:$src) - Complexity = 3
                // Dst: (POPCNT16rr:i16:i32 GR16:i16:$src)
              /*SwitchType*/ 11,  MVT::i32,// ->57565
/*57554*/       OPC_CheckPatternPredicate, 23, // (Subtarget->hasPOPCNT())
/*57556*/       OPC_MorphNodeTo, TARGET_VAL(X86::POPCNT32rr), 0,
                    2/*#VTs*/, MVT::i32, MVT::i32, 1/*#Ops*/, 0, 
                // Src: (ctpop:i32 GR32:i32:$src) - Complexity = 3
                // Dst: (POPCNT32rr:i32:i32 GR32:i32:$src)
              /*SwitchType*/ 11,  MVT::i64,// ->57578
/*57567*/       OPC_CheckPatternPredicate, 23, // (Subtarget->hasPOPCNT())
/*57569*/       OPC_MorphNodeTo, TARGET_VAL(X86::POPCNT64rr), 0,
                    2/*#VTs*/, MVT::i64, MVT::i32, 1/*#Ops*/, 0, 
                // Src: (ctpop:i64 GR64:i64:$src) - Complexity = 3
                // Dst: (POPCNT64rr:i64:i32 GR64:i64:$src)
              0, // EndSwitchType
/*57579*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 5|128,4/*517*/,  TARGET_VAL(ISD::SCALAR_TO_VECTOR),// ->58101
/*57584*/   OPC_Scope, 35, /*->57621*/ // 6 children in Scope
/*57586*/     OPC_MoveChild, 0,
/*57588*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*57591*/     OPC_RecordMemRef,
/*57592*/     OPC_RecordNode, // #0 = 'ld' chained node
/*57593*/     OPC_RecordChild1, // #1 = $src
/*57594*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*57596*/     OPC_CheckPredicate, 7, // Predicate_loadi32
/*57598*/     OPC_CheckType, MVT::i32,
/*57600*/     OPC_MoveParent,
/*57601*/     OPC_CheckType, MVT::x86mmx,
/*57603*/     OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*57605*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*57608*/     OPC_EmitMergeInputChains1_0,
/*57609*/     OPC_MorphNodeTo, TARGET_VAL(X86::MMX_MOVD64rm), 0|OPFL_Chain|OPFL_MemRefs,
                  1/*#VTs*/, MVT::x86mmx, 5/*#Ops*/, 2, 3, 4, 5, 6, 
              // Src: (scalar_to_vector:x86mmx (ld:i32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>) - Complexity = 25
              // Dst: (MMX_MOVD64rm:x86mmx addr:iPTR:$src)
/*57621*/   /*Scope*/ 15, /*->57637*/
/*57622*/     OPC_RecordChild0, // #0 = $src
/*57623*/     OPC_CheckChild0Type, MVT::i32,
/*57625*/     OPC_CheckType, MVT::x86mmx,
/*57627*/     OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*57629*/     OPC_MorphNodeTo, TARGET_VAL(X86::MMX_MOVD64rr), 0,
                  1/*#VTs*/, MVT::x86mmx, 1/*#Ops*/, 0, 
              // Src: (scalar_to_vector:x86mmx GR32:i32:$src) - Complexity = 3
              // Dst: (MMX_MOVD64rr:x86mmx GR32:i32:$src)
/*57637*/   /*Scope*/ 1|128,1/*129*/, /*->57768*/
/*57639*/     OPC_MoveChild, 0,
/*57641*/     OPC_SwitchOpcode /*2 cases */, 101,  TARGET_VAL(ISD::LOAD),// ->57746
/*57645*/       OPC_RecordMemRef,
/*57646*/       OPC_RecordNode, // #0 = 'ld' chained node
/*57647*/       OPC_RecordChild1, // #1 = $src
/*57648*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*57650*/       OPC_SwitchType /*2 cases */, 45,  MVT::i32,// ->57698
/*57653*/         OPC_CheckPredicate, 7, // Predicate_loadi32
/*57655*/         OPC_MoveParent,
/*57656*/         OPC_CheckType, MVT::v4i32,
/*57658*/         OPC_Scope, 18, /*->57678*/ // 2 children in Scope
/*57660*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*57662*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*57665*/           OPC_EmitMergeInputChains1_0,
/*57666*/           OPC_MorphNodeTo, TARGET_VAL(X86::VMOVDI2PDIrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (scalar_to_vector:v4i32 (ld:i32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>) - Complexity = 25
                    // Dst: (VMOVDI2PDIrm:v4i32 addr:iPTR:$src)
/*57678*/         /*Scope*/ 18, /*->57697*/
/*57679*/           OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*57681*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*57684*/           OPC_EmitMergeInputChains1_0,
/*57685*/           OPC_MorphNodeTo, TARGET_VAL(X86::MOVDI2PDIrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (scalar_to_vector:v4i32 (ld:i32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>) - Complexity = 25
                    // Dst: (MOVDI2PDIrm:v4i32 addr:iPTR:$src)
/*57697*/         0, /*End of Scope*/
                /*SwitchType*/ 45,  MVT::i64,// ->57745
/*57700*/         OPC_CheckPredicate, 3, // Predicate_load
/*57702*/         OPC_MoveParent,
/*57703*/         OPC_CheckType, MVT::v2i64,
/*57705*/         OPC_Scope, 18, /*->57725*/ // 2 children in Scope
/*57707*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*57709*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*57712*/           OPC_EmitMergeInputChains1_0,
/*57713*/           OPC_MorphNodeTo, TARGET_VAL(X86::VMOVQI2PQIrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (scalar_to_vector:v2i64 (ld:i64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VMOVQI2PQIrm:v2i64 addr:iPTR:$src)
/*57725*/         /*Scope*/ 18, /*->57744*/
/*57726*/           OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*57728*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*57731*/           OPC_EmitMergeInputChains1_0,
/*57732*/           OPC_MorphNodeTo, TARGET_VAL(X86::MOVQI2PQIrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (scalar_to_vector:v2i64 (ld:i64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (MOVQI2PQIrm:v2i64 addr:iPTR:$src)
/*57744*/         0, /*End of Scope*/
                0, // EndSwitchType
              /*SwitchOpcode*/ 18,  TARGET_VAL(ISD::BITCAST),// ->57767
/*57749*/       OPC_RecordChild0, // #0 = $src
/*57750*/       OPC_CheckChild0Type, MVT::x86mmx,
/*57752*/       OPC_CheckType, MVT::i64,
/*57754*/       OPC_MoveParent,
/*57755*/       OPC_CheckType, MVT::v2i64,
/*57757*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*57759*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_MOVQ2DQrr), 0,
                    1/*#VTs*/, MVT::v2i64, 1/*#Ops*/, 0, 
                // Src: (scalar_to_vector:v2i64 (bitconvert:i64 VR64:x86mmx:$src)) - Complexity = 6
                // Dst: (MMX_MOVQ2DQrr:v2i64 VR64:x86mmx:$src)
              0, // EndSwitchOpcode
/*57768*/   /*Scope*/ 59, /*->57828*/
/*57769*/     OPC_RecordChild0, // #0 = $src
/*57770*/     OPC_SwitchType /*2 cases */, 26,  MVT::v4i32,// ->57799
/*57773*/       OPC_CheckChild0Type, MVT::i32,
/*57775*/       OPC_Scope, 10, /*->57787*/ // 2 children in Scope
/*57777*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*57779*/         OPC_MorphNodeTo, TARGET_VAL(X86::VMOVDI2PDIrr), 0,
                      1/*#VTs*/, MVT::v4i32, 1/*#Ops*/, 0, 
                  // Src: (scalar_to_vector:v4i32 GR32:i32:$src) - Complexity = 3
                  // Dst: (VMOVDI2PDIrr:v4i32 GR32:i32:$src)
/*57787*/       /*Scope*/ 10, /*->57798*/
/*57788*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*57790*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOVDI2PDIrr), 0,
                      1/*#VTs*/, MVT::v4i32, 1/*#Ops*/, 0, 
                  // Src: (scalar_to_vector:v4i32 GR32:i32:$src) - Complexity = 3
                  // Dst: (MOVDI2PDIrr:v4i32 GR32:i32:$src)
/*57798*/       0, /*End of Scope*/
              /*SwitchType*/ 26,  MVT::v2i64,// ->57827
/*57801*/       OPC_CheckChild0Type, MVT::i64,
/*57803*/       OPC_Scope, 10, /*->57815*/ // 2 children in Scope
/*57805*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*57807*/         OPC_MorphNodeTo, TARGET_VAL(X86::VMOV64toPQIrr), 0,
                      1/*#VTs*/, MVT::v2i64, 1/*#Ops*/, 0, 
                  // Src: (scalar_to_vector:v2i64 GR64:i64:$src) - Complexity = 3
                  // Dst: (VMOV64toPQIrr:v2i64 GR64:i64:$src)
/*57815*/       /*Scope*/ 10, /*->57826*/
/*57816*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*57818*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOV64toPQIrr), 0,
                      1/*#VTs*/, MVT::v2i64, 1/*#Ops*/, 0, 
                  // Src: (scalar_to_vector:v2i64 GR64:i64:$src) - Complexity = 3
                  // Dst: (MOV64toPQIrr:v2i64 GR64:i64:$src)
/*57826*/       0, /*End of Scope*/
              0, // EndSwitchType
/*57828*/   /*Scope*/ 40|128,1/*168*/, /*->57998*/
/*57830*/     OPC_MoveChild, 0,
/*57832*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*57835*/     OPC_RecordMemRef,
/*57836*/     OPC_RecordNode, // #0 = 'ld' chained node
/*57837*/     OPC_RecordChild1, // #1 = $src
/*57838*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*57840*/     OPC_CheckPredicate, 3, // Predicate_load
/*57842*/     OPC_SwitchType /*2 cases */, 75,  MVT::f32,// ->57920
/*57845*/       OPC_MoveParent,
/*57846*/       OPC_CheckType, MVT::v4f32,
/*57848*/       OPC_Scope, 34, /*->57884*/ // 2 children in Scope
/*57850*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*57852*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*57855*/         OPC_EmitMergeInputChains1_0,
/*57856*/         OPC_EmitInteger, MVT::i32, 0, 
/*57859*/         OPC_EmitNode, TARGET_VAL(X86::MOVSSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::f32, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #8 
/*57871*/         OPC_EmitInteger, MVT::i32, X86::sub_ss,
/*57874*/         OPC_MorphNodeTo, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain,
                      1/*#VTs*/, MVT::v4f32, 3/*#Ops*/, 7, 8, 9, 
                  // Src: (scalar_to_vector:v4f32 (ld:f32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 45
                  // Dst: (SUBREG_TO_REG:v4f32 0:i32, (MOVSSrm:f32 addr:iPTR:$src), sub_ss:i32)
/*57884*/       /*Scope*/ 34, /*->57919*/
/*57885*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*57887*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*57890*/         OPC_EmitMergeInputChains1_0,
/*57891*/         OPC_EmitInteger, MVT::i32, 0, 
/*57894*/         OPC_EmitNode, TARGET_VAL(X86::VMOVSSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::f32, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #8 
/*57906*/         OPC_EmitInteger, MVT::i32, X86::sub_ss,
/*57909*/         OPC_MorphNodeTo, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain,
                      1/*#VTs*/, MVT::v4f32, 3/*#Ops*/, 7, 8, 9, 
                  // Src: (scalar_to_vector:v4f32 (ld:f32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 45
                  // Dst: (SUBREG_TO_REG:v4f32 0:i32, (VMOVSSrm:f32 addr:iPTR:$src), sub_ss:i32)
/*57919*/       0, /*End of Scope*/
              /*SwitchType*/ 75,  MVT::f64,// ->57997
/*57922*/       OPC_MoveParent,
/*57923*/       OPC_CheckType, MVT::v2f64,
/*57925*/       OPC_Scope, 34, /*->57961*/ // 2 children in Scope
/*57927*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*57929*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*57932*/         OPC_EmitMergeInputChains1_0,
/*57933*/         OPC_EmitInteger, MVT::i64, 0, 
/*57936*/         OPC_EmitNode, TARGET_VAL(X86::MOVSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::f64, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #8 
/*57948*/         OPC_EmitInteger, MVT::i32, X86::sub_sd,
/*57951*/         OPC_MorphNodeTo, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain,
                      1/*#VTs*/, MVT::v2f64, 3/*#Ops*/, 7, 8, 9, 
                  // Src: (scalar_to_vector:v2f64 (ld:f64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 45
                  // Dst: (SUBREG_TO_REG:v2f64 0:i64, (MOVSDrm:f64 addr:iPTR:$src), sub_sd:i32)
/*57961*/       /*Scope*/ 34, /*->57996*/
/*57962*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*57964*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*57967*/         OPC_EmitMergeInputChains1_0,
/*57968*/         OPC_EmitInteger, MVT::i64, 0, 
/*57971*/         OPC_EmitNode, TARGET_VAL(X86::VMOVSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::f64, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #8 
/*57983*/         OPC_EmitInteger, MVT::i32, X86::sub_sd,
/*57986*/         OPC_MorphNodeTo, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain,
                      1/*#VTs*/, MVT::v2f64, 3/*#Ops*/, 7, 8, 9, 
                  // Src: (scalar_to_vector:v2f64 (ld:f64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 45
                  // Dst: (SUBREG_TO_REG:v2f64 0:i64, (VMOVSDrm:f64 addr:iPTR:$src), sub_sd:i32)
/*57996*/       0, /*End of Scope*/
              0, // EndSwitchType
/*57998*/   /*Scope*/ 101, /*->58100*/
/*57999*/     OPC_RecordChild0, // #0 = $src
/*58000*/     OPC_Scope, 48, /*->58050*/ // 2 children in Scope
/*58002*/       OPC_CheckChild0Type, MVT::f32,
/*58004*/       OPC_SwitchType /*2 cases */, 20,  MVT::v4f32,// ->58027
/*58007*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      1/*#VTs*/, MVT::v4f32, 0/*#Ops*/,  // Results = #1 
/*58014*/         OPC_EmitInteger, MVT::i32, X86::sub_ss,
/*58017*/         OPC_MorphNodeTo, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      1/*#VTs*/, MVT::v4f32, 3/*#Ops*/, 1, 0, 2, 
                  // Src: (scalar_to_vector:v4f32 FR32:f32:$src) - Complexity = 3
                  // Dst: (INSERT_SUBREG:v4f32 (IMPLICIT_DEF:v4f32), FR32:f32:$src, sub_ss:i32)
                /*SwitchType*/ 20,  MVT::v8f32,// ->58049
/*58029*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      1/*#VTs*/, MVT::v8f32, 0/*#Ops*/,  // Results = #1 
/*58036*/         OPC_EmitInteger, MVT::i32, X86::sub_ss,
/*58039*/         OPC_MorphNodeTo, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      1/*#VTs*/, MVT::v8f32, 3/*#Ops*/, 1, 0, 2, 
                  // Src: (scalar_to_vector:v8f32 FR32:f32:$src) - Complexity = 3
                  // Dst: (INSERT_SUBREG:v8f32 (IMPLICIT_DEF:v8f32), FR32:f32:$src, sub_ss:i32)
                0, // EndSwitchType
/*58050*/     /*Scope*/ 48, /*->58099*/
/*58051*/       OPC_CheckChild0Type, MVT::f64,
/*58053*/       OPC_SwitchType /*2 cases */, 20,  MVT::v2f64,// ->58076
/*58056*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      1/*#VTs*/, MVT::v2f64, 0/*#Ops*/,  // Results = #1 
/*58063*/         OPC_EmitInteger, MVT::i32, X86::sub_sd,
/*58066*/         OPC_MorphNodeTo, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      1/*#VTs*/, MVT::v2f64, 3/*#Ops*/, 1, 0, 2, 
                  // Src: (scalar_to_vector:v2f64 FR64:f64:$src) - Complexity = 3
                  // Dst: (INSERT_SUBREG:v2f64 (IMPLICIT_DEF:v2f64), FR64:f64:$src, sub_sd:i32)
                /*SwitchType*/ 20,  MVT::v4f64,// ->58098
/*58078*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      1/*#VTs*/, MVT::v4f64, 0/*#Ops*/,  // Results = #1 
/*58085*/         OPC_EmitInteger, MVT::i32, X86::sub_sd,
/*58088*/         OPC_MorphNodeTo, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      1/*#VTs*/, MVT::v4f64, 3/*#Ops*/, 1, 0, 2, 
                  // Src: (scalar_to_vector:v4f64 FR64:f64:$src) - Complexity = 3
                  // Dst: (INSERT_SUBREG:v4f64 (IMPLICIT_DEF:v4f64), FR64:f64:$src, sub_sd:i32)
                0, // EndSwitchType
/*58099*/     0, /*End of Scope*/
/*58100*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 42,  TARGET_VAL(X86ISD::MOVDQ2Q),// ->58146
/*58104*/   OPC_Scope, 29, /*->58135*/ // 2 children in Scope
/*58106*/     OPC_MoveChild, 0,
/*58108*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*58111*/     OPC_RecordMemRef,
/*58112*/     OPC_RecordNode, // #0 = 'ld' chained node
/*58113*/     OPC_RecordChild1, // #1 = $src
/*58114*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*58116*/     OPC_CheckPredicate, 3, // Predicate_load
/*58118*/     OPC_MoveParent,
/*58119*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*58122*/     OPC_EmitMergeInputChains1_0,
/*58123*/     OPC_MorphNodeTo, TARGET_VAL(X86::MMX_MOVQ64rm), 0|OPFL_Chain|OPFL_MemRefs,
                  1/*#VTs*/, MVT::x86mmx, 5/*#Ops*/, 2, 3, 4, 5, 6, 
              // Src: (MMX_X86movdq2q:x86mmx (ld:v2i64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
              // Dst: (MMX_MOVQ64rm:x86mmx addr:iPTR:$src)
/*58135*/   /*Scope*/ 9, /*->58145*/
/*58136*/     OPC_RecordChild0, // #0 = $src
/*58137*/     OPC_MorphNodeTo, TARGET_VAL(X86::MMX_MOVDQ2Qrr), 0,
                  1/*#VTs*/, MVT::x86mmx, 1/*#Ops*/, 0, 
              // Src: (MMX_X86movdq2q:x86mmx VR128:v2i64:$src) - Complexity = 3
              // Dst: (MMX_MOVDQ2Qrr:x86mmx VR128:v2i64:$src)
/*58145*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 63|128,13/*1727*/,  TARGET_VAL(ISD::ADD),// ->59877
/*58150*/   OPC_Scope, 110, /*->58262*/ // 11 children in Scope
/*58152*/     OPC_RecordChild0, // #0 = $src1
/*58153*/     OPC_MoveChild, 1,
/*58155*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*58158*/     OPC_RecordMemRef,
/*58159*/     OPC_RecordNode, // #1 = 'ld' chained node
/*58160*/     OPC_CheckFoldableChainNode,
/*58161*/     OPC_RecordChild1, // #2 = $src2
/*58162*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*58164*/     OPC_Scope, 23, /*->58189*/ // 4 children in Scope
/*58166*/       OPC_CheckPredicate, 3, // Predicate_load
/*58168*/       OPC_MoveParent,
/*58169*/       OPC_CheckType, MVT::i8,
/*58171*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*58174*/       OPC_EmitMergeInputChains1_1,
/*58175*/       OPC_MorphNodeTo, TARGET_VAL(X86::ADD8rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2/*#VTs*/, MVT::i8, MVT::i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (add:i8 GR8:i8:$src1, (ld:i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                // Dst: (ADD8rm:i8:i32 GR8:i8:$src1, addr:iPTR:$src2)
/*58189*/     /*Scope*/ 23, /*->58213*/
/*58190*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*58192*/       OPC_MoveParent,
/*58193*/       OPC_CheckType, MVT::i16,
/*58195*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*58198*/       OPC_EmitMergeInputChains1_1,
/*58199*/       OPC_MorphNodeTo, TARGET_VAL(X86::ADD16rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2/*#VTs*/, MVT::i16, MVT::i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (add:i16 GR16:i16:$src1, (ld:i16 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>) - Complexity = 25
                // Dst: (ADD16rm:i16:i32 GR16:i16:$src1, addr:iPTR:$src2)
/*58213*/     /*Scope*/ 23, /*->58237*/
/*58214*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*58216*/       OPC_MoveParent,
/*58217*/       OPC_CheckType, MVT::i32,
/*58219*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*58222*/       OPC_EmitMergeInputChains1_1,
/*58223*/       OPC_MorphNodeTo, TARGET_VAL(X86::ADD32rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2/*#VTs*/, MVT::i32, MVT::i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (add:i32 GR32:i32:$src1, (ld:i32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>) - Complexity = 25
                // Dst: (ADD32rm:i32:i32 GR32:i32:$src1, addr:iPTR:$src2)
/*58237*/     /*Scope*/ 23, /*->58261*/
/*58238*/       OPC_CheckPredicate, 3, // Predicate_load
/*58240*/       OPC_MoveParent,
/*58241*/       OPC_CheckType, MVT::i64,
/*58243*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*58246*/       OPC_EmitMergeInputChains1_1,
/*58247*/       OPC_MorphNodeTo, TARGET_VAL(X86::ADD64rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2/*#VTs*/, MVT::i64, MVT::i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (add:i64 GR64:i64:$src1, (ld:i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                // Dst: (ADD64rm:i64:i32 GR64:i64:$src1, addr:iPTR:$src2)
/*58261*/     0, /*End of Scope*/
/*58262*/   /*Scope*/ 65|128,1/*193*/, /*->58457*/
/*58264*/     OPC_MoveChild, 0,
/*58266*/     OPC_SwitchOpcode /*2 cases */, 108,  TARGET_VAL(ISD::LOAD),// ->58378
/*58270*/       OPC_RecordMemRef,
/*58271*/       OPC_RecordNode, // #0 = 'ld' chained node
/*58272*/       OPC_CheckFoldableChainNode,
/*58273*/       OPC_RecordChild1, // #1 = $src2
/*58274*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*58276*/       OPC_Scope, 24, /*->58302*/ // 4 children in Scope
/*58278*/         OPC_CheckPredicate, 3, // Predicate_load
/*58280*/         OPC_MoveParent,
/*58281*/         OPC_RecordChild1, // #2 = $src1
/*58282*/         OPC_CheckType, MVT::i8,
/*58284*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*58287*/         OPC_EmitMergeInputChains1_0,
/*58288*/         OPC_MorphNodeTo, TARGET_VAL(X86::ADD8rm), 0|OPFL_Chain|OPFL_MemRefs,
                      2/*#VTs*/, MVT::i8, MVT::i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (add:i8 (ld:i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, GR8:i8:$src1) - Complexity = 25
                  // Dst: (ADD8rm:i8:i32 GR8:i8:$src1, addr:iPTR:$src2)
/*58302*/       /*Scope*/ 24, /*->58327*/
/*58303*/         OPC_CheckPredicate, 6, // Predicate_loadi16
/*58305*/         OPC_MoveParent,
/*58306*/         OPC_RecordChild1, // #2 = $src1
/*58307*/         OPC_CheckType, MVT::i16,
/*58309*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*58312*/         OPC_EmitMergeInputChains1_0,
/*58313*/         OPC_MorphNodeTo, TARGET_VAL(X86::ADD16rm), 0|OPFL_Chain|OPFL_MemRefs,
                      2/*#VTs*/, MVT::i16, MVT::i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (add:i16 (ld:i16 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>, GR16:i16:$src1) - Complexity = 25
                  // Dst: (ADD16rm:i16:i32 GR16:i16:$src1, addr:iPTR:$src2)
/*58327*/       /*Scope*/ 24, /*->58352*/
/*58328*/         OPC_CheckPredicate, 7, // Predicate_loadi32
/*58330*/         OPC_MoveParent,
/*58331*/         OPC_RecordChild1, // #2 = $src1
/*58332*/         OPC_CheckType, MVT::i32,
/*58334*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*58337*/         OPC_EmitMergeInputChains1_0,
/*58338*/         OPC_MorphNodeTo, TARGET_VAL(X86::ADD32rm), 0|OPFL_Chain|OPFL_MemRefs,
                      2/*#VTs*/, MVT::i32, MVT::i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (add:i32 (ld:i32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>, GR32:i32:$src1) - Complexity = 25
                  // Dst: (ADD32rm:i32:i32 GR32:i32:$src1, addr:iPTR:$src2)
/*58352*/       /*Scope*/ 24, /*->58377*/
/*58353*/         OPC_CheckPredicate, 3, // Predicate_load
/*58355*/         OPC_MoveParent,
/*58356*/         OPC_RecordChild1, // #2 = $src1
/*58357*/         OPC_CheckType, MVT::i64,
/*58359*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*58362*/         OPC_EmitMergeInputChains1_0,
/*58363*/         OPC_MorphNodeTo, TARGET_VAL(X86::ADD64rm), 0|OPFL_Chain|OPFL_MemRefs,
                      2/*#VTs*/, MVT::i64, MVT::i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (add:i64 (ld:i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, GR64:i64:$src1) - Complexity = 25
                  // Dst: (ADD64rm:i64:i32 GR64:i64:$src1, addr:iPTR:$src2)
/*58377*/       0, /*End of Scope*/
              /*SwitchOpcode*/ 75,  TARGET_VAL(ISD::AND),// ->58456
/*58381*/       OPC_MoveChild, 0,
/*58383*/       OPC_CheckOpcode, TARGET_VAL(X86ISD::SETCC_CARRY),
/*58386*/       OPC_MoveChild, 0,
/*58388*/       OPC_CheckInteger, 2, 
/*58390*/       OPC_MoveParent,
/*58391*/       OPC_RecordChild1, // #0 = physreg input EFLAGS
/*58392*/       OPC_MoveParent,
/*58393*/       OPC_MoveChild, 1,
/*58395*/       OPC_CheckInteger, 1, 
/*58397*/       OPC_MoveParent,
/*58398*/       OPC_MoveParent,
/*58399*/       OPC_RecordChild1, // #1 = $op
/*58400*/       OPC_SwitchType /*3 cases */, 16,  MVT::i8,// ->58419
/*58403*/         OPC_EmitInteger, MVT::i8, 0, 
/*58406*/         OPC_EmitCopyToReg, 0, X86::EFLAGS,
/*58409*/         OPC_MorphNodeTo, TARGET_VAL(X86::ADC8ri), 0|OPFL_GlueInput,
                      2/*#VTs*/, MVT::i8, MVT::i32, 2/*#Ops*/, 1, 2, 
                  // Src: (add:i8 (and:i8 (X86setcc_c:i8 2:i8, EFLAGS:i32), 1:i8), GR8:i8:$op) - Complexity = 19
                  // Dst: (ADC8ri:i8:i32 GR8:i8:$op, 0:i8)
                /*SwitchType*/ 16,  MVT::i32,// ->58437
/*58421*/         OPC_EmitInteger, MVT::i32, 0, 
/*58424*/         OPC_EmitCopyToReg, 0, X86::EFLAGS,
/*58427*/         OPC_MorphNodeTo, TARGET_VAL(X86::ADC32ri8), 0|OPFL_GlueInput,
                      2/*#VTs*/, MVT::i32, MVT::i32, 2/*#Ops*/, 1, 2, 
                  // Src: (add:i32 (and:i32 (X86setcc_c:i32 2:i8, EFLAGS:i32), 1:i32), GR32:i32:$op) - Complexity = 19
                  // Dst: (ADC32ri8:i32:i32 GR32:i32:$op, 0:i32)
                /*SwitchType*/ 16,  MVT::i64,// ->58455
/*58439*/         OPC_EmitInteger, MVT::i64, 0, 
/*58442*/         OPC_EmitCopyToReg, 0, X86::EFLAGS,
/*58445*/         OPC_MorphNodeTo, TARGET_VAL(X86::ADC64ri8), 0|OPFL_GlueInput,
                      2/*#VTs*/, MVT::i64, MVT::i32, 2/*#Ops*/, 1, 2, 
                  // Src: (add:i64 (and:i64 (X86setcc_c:i64 2:i8, EFLAGS:i32), 1:i64), GR64:i64:$op) - Complexity = 19
                  // Dst: (ADC64ri8:i64:i32 GR64:i64:$op, 0:i64)
                0, // EndSwitchType
              0, // EndSwitchOpcode
/*58457*/   /*Scope*/ 80, /*->58538*/
/*58458*/     OPC_RecordChild0, // #0 = $op
/*58459*/     OPC_MoveChild, 1,
/*58461*/     OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/*58464*/     OPC_MoveChild, 0,
/*58466*/     OPC_CheckOpcode, TARGET_VAL(X86ISD::SETCC_CARRY),
/*58469*/     OPC_MoveChild, 0,
/*58471*/     OPC_CheckInteger, 2, 
/*58473*/     OPC_MoveParent,
/*58474*/     OPC_RecordChild1, // #1 = physreg input EFLAGS
/*58475*/     OPC_MoveParent,
/*58476*/     OPC_MoveChild, 1,
/*58478*/     OPC_CheckInteger, 1, 
/*58480*/     OPC_MoveParent,
/*58481*/     OPC_MoveParent,
/*58482*/     OPC_SwitchType /*3 cases */, 16,  MVT::i8,// ->58501
/*58485*/       OPC_EmitInteger, MVT::i8, 0, 
/*58488*/       OPC_EmitCopyToReg, 1, X86::EFLAGS,
/*58491*/       OPC_MorphNodeTo, TARGET_VAL(X86::ADC8ri), 0|OPFL_GlueInput,
                    2/*#VTs*/, MVT::i8, MVT::i32, 2/*#Ops*/, 0, 2, 
                // Src: (add:i8 GR8:i8:$op, (and:i8 (X86setcc_c:i8 2:i8, EFLAGS:i32), 1:i8)) - Complexity = 19
                // Dst: (ADC8ri:i8:i32 GR8:i8:$op, 0:i8)
              /*SwitchType*/ 16,  MVT::i32,// ->58519
/*58503*/       OPC_EmitInteger, MVT::i32, 0, 
/*58506*/       OPC_EmitCopyToReg, 1, X86::EFLAGS,
/*58509*/       OPC_MorphNodeTo, TARGET_VAL(X86::ADC32ri8), 0|OPFL_GlueInput,
                    2/*#VTs*/, MVT::i32, MVT::i32, 2/*#Ops*/, 0, 2, 
                // Src: (add:i32 GR32:i32:$op, (and:i32 (X86setcc_c:i32 2:i8, EFLAGS:i32), 1:i32)) - Complexity = 19
                // Dst: (ADC32ri8:i32:i32 GR32:i32:$op, 0:i32)
              /*SwitchType*/ 16,  MVT::i64,// ->58537
/*58521*/       OPC_EmitInteger, MVT::i64, 0, 
/*58524*/       OPC_EmitCopyToReg, 1, X86::EFLAGS,
/*58527*/       OPC_MorphNodeTo, TARGET_VAL(X86::ADC64ri8), 0|OPFL_GlueInput,
                    2/*#VTs*/, MVT::i64, MVT::i32, 2/*#Ops*/, 0, 2, 
                // Src: (add:i64 GR64:i64:$op, (and:i64 (X86setcc_c:i64 2:i8, EFLAGS:i32), 1:i64)) - Complexity = 19
                // Dst: (ADC64ri8:i64:i32 GR64:i64:$op, 0:i64)
              0, // EndSwitchType
/*58538*/   /*Scope*/ 60, /*->58599*/
/*58539*/     OPC_RecordNode, // #0 = $src
/*58540*/     OPC_SwitchType /*2 cases */, 38,  MVT::i32,// ->58581
/*58543*/       OPC_Scope, 17, /*->58562*/ // 2 children in Scope
/*58545*/         OPC_CheckPatternPredicate, 3, // (!Subtarget->is64Bit())
/*58547*/         OPC_CheckComplexPat, /*CP*/3, /*#*/0, // SelectLEAAddr:$src #1 #2 #3 #4 #5
/*58550*/         OPC_MorphNodeTo, TARGET_VAL(X86::LEA32r), 0,
                      1/*#VTs*/, MVT::i32, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                  // Src: lea32addr:i32:$src - Complexity = 18
                  // Dst: (LEA32r:i32 lea32addr:i32:$src)
/*58562*/       /*Scope*/ 17, /*->58580*/
/*58563*/         OPC_CheckPatternPredicate, 4, // (Subtarget->is64Bit())
/*58565*/         OPC_CheckComplexPat, /*CP*/3, /*#*/0, // SelectLEAAddr:$src #1 #2 #3 #4 #5
/*58568*/         OPC_MorphNodeTo, TARGET_VAL(X86::LEA64_32r), 0,
                      1/*#VTs*/, MVT::i32, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                  // Src: lea32addr:i32:$src - Complexity = 18
                  // Dst: (LEA64_32r:i32 lea32addr:i32:$src)
/*58580*/       0, /*End of Scope*/
              /*SwitchType*/ 15,  MVT::i64,// ->58598
/*58583*/       OPC_CheckComplexPat, /*CP*/4, /*#*/0, // SelectLEAAddr:$src #1 #2 #3 #4 #5
/*58586*/       OPC_MorphNodeTo, TARGET_VAL(X86::LEA64r), 0,
                    1/*#VTs*/, MVT::i64, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                // Src: lea64addr:i64:$src - Complexity = 18
                // Dst: (LEA64r:i64 lea64addr:i64:$src)
              0, // EndSwitchType
/*58599*/   /*Scope*/ 113, /*->58713*/
/*58600*/     OPC_RecordChild0, // #0 = $src1
/*58601*/     OPC_MoveChild, 1,
/*58603*/     OPC_CheckOpcode, TARGET_VAL(X86ISD::Wrapper),
/*58606*/     OPC_RecordChild0, // #1 = $src2
/*58607*/     OPC_MoveChild, 0,
/*58609*/     OPC_SwitchOpcode /*6 cases */, 14,  TARGET_VAL(ISD::TargetConstantPool),// ->58627
/*58613*/       OPC_MoveParent,
/*58614*/       OPC_MoveParent,
/*58615*/       OPC_CheckType, MVT::i32,
/*58617*/       OPC_MorphNodeTo, TARGET_VAL(X86::ADD32ri), 0,
                    2/*#VTs*/, MVT::i32, MVT::i32, 2/*#Ops*/, 0, 1, 
                // Src: (add:i32 GR32:i32:$src1, (X86Wrapper:i32 (tconstpool:i32):$src2)) - Complexity = 9
                // Dst: (ADD32ri:i32:i32 GR32:i32:$src1, (tconstpool:i32):$src2)
              /*SwitchOpcode*/ 14,  TARGET_VAL(ISD::TargetJumpTable),// ->58644
/*58630*/       OPC_MoveParent,
/*58631*/       OPC_MoveParent,
/*58632*/       OPC_CheckType, MVT::i32,
/*58634*/       OPC_MorphNodeTo, TARGET_VAL(X86::ADD32ri), 0,
                    2/*#VTs*/, MVT::i32, MVT::i32, 2/*#Ops*/, 0, 1, 
                // Src: (add:i32 GR32:i32:$src1, (X86Wrapper:i32 (tjumptable:i32):$src2)) - Complexity = 9
                // Dst: (ADD32ri:i32:i32 GR32:i32:$src1, (tjumptable:i32):$src2)
              /*SwitchOpcode*/ 14,  TARGET_VAL(ISD::TargetGlobalAddress),// ->58661
/*58647*/       OPC_MoveParent,
/*58648*/       OPC_MoveParent,
/*58649*/       OPC_CheckType, MVT::i32,
/*58651*/       OPC_MorphNodeTo, TARGET_VAL(X86::ADD32ri), 0,
                    2/*#VTs*/, MVT::i32, MVT::i32, 2/*#Ops*/, 0, 1, 
                // Src: (add:i32 GR32:i32:$src1, (X86Wrapper:i32 (tglobaladdr:i32):$src2)) - Complexity = 9
                // Dst: (ADD32ri:i32:i32 GR32:i32:$src1, (tglobaladdr:i32):$src2)
              /*SwitchOpcode*/ 14,  TARGET_VAL(ISD::TargetExternalSymbol),// ->58678
/*58664*/       OPC_MoveParent,
/*58665*/       OPC_MoveParent,
/*58666*/       OPC_CheckType, MVT::i32,
/*58668*/       OPC_MorphNodeTo, TARGET_VAL(X86::ADD32ri), 0,
                    2/*#VTs*/, MVT::i32, MVT::i32, 2/*#Ops*/, 0, 1, 
                // Src: (add:i32 GR32:i32:$src1, (X86Wrapper:i32 (texternalsym:i32):$src2)) - Complexity = 9
                // Dst: (ADD32ri:i32:i32 GR32:i32:$src1, (texternalsym:i32):$src2)
              /*SwitchOpcode*/ 14,  TARGET_VAL(ISD::TargetBlockAddress),// ->58695
/*58681*/       OPC_MoveParent,
/*58682*/       OPC_MoveParent,
/*58683*/       OPC_CheckType, MVT::i32,
/*58685*/       OPC_MorphNodeTo, TARGET_VAL(X86::ADD32ri), 0,
                    2/*#VTs*/, MVT::i32, MVT::i32, 2/*#Ops*/, 0, 1, 
                // Src: (add:i32 GR32:i32:$src1, (X86Wrapper:i32 (tblockaddress:i32):$src2)) - Complexity = 9
                // Dst: (ADD32ri:i32:i32 GR32:i32:$src1, (tblockaddress:i32):$src2)
              /*SwitchOpcode*/ 14,  TARGET_VAL(ISD::TargetGlobalTLSAddress),// ->58712
/*58698*/       OPC_MoveParent,
/*58699*/       OPC_MoveParent,
/*58700*/       OPC_CheckType, MVT::i64,
/*58702*/       OPC_MorphNodeTo, TARGET_VAL(X86::ADD64ri32), 0,
                    2/*#VTs*/, MVT::i64, MVT::i32, 2/*#Ops*/, 0, 1, 
                // Src: (add:i64 GR64:i64:$src1, (X86Wrapper:i64 (tglobaltlsaddr:i64):$dst)) - Complexity = 9
                // Dst: (ADD64ri32:i64:i32 GR64:i64:$src1, (tglobaltlsaddr:i64):$dst)
              0, // EndSwitchOpcode
/*58713*/   /*Scope*/ 118, /*->58832*/
/*58714*/     OPC_MoveChild, 0,
/*58716*/     OPC_CheckOpcode, TARGET_VAL(X86ISD::Wrapper),
/*58719*/     OPC_RecordChild0, // #0 = $src2
/*58720*/     OPC_MoveChild, 0,
/*58722*/     OPC_SwitchOpcode /*6 cases */, 15,  TARGET_VAL(ISD::TargetConstantPool),// ->58741
/*58726*/       OPC_MoveParent,
/*58727*/       OPC_MoveParent,
/*58728*/       OPC_RecordChild1, // #1 = $src1
/*58729*/       OPC_CheckType, MVT::i32,
/*58731*/       OPC_MorphNodeTo, TARGET_VAL(X86::ADD32ri), 0,
                    2/*#VTs*/, MVT::i32, MVT::i32, 2/*#Ops*/, 1, 0, 
                // Src: (add:i32 (X86Wrapper:i32 (tconstpool:i32):$src2), GR32:i32:$src1) - Complexity = 9
                // Dst: (ADD32ri:i32:i32 GR32:i32:$src1, (tconstpool:i32):$src2)
              /*SwitchOpcode*/ 15,  TARGET_VAL(ISD::TargetJumpTable),// ->58759
/*58744*/       OPC_MoveParent,
/*58745*/       OPC_MoveParent,
/*58746*/       OPC_RecordChild1, // #1 = $src1
/*58747*/       OPC_CheckType, MVT::i32,
/*58749*/       OPC_MorphNodeTo, TARGET_VAL(X86::ADD32ri), 0,
                    2/*#VTs*/, MVT::i32, MVT::i32, 2/*#Ops*/, 1, 0, 
                // Src: (add:i32 (X86Wrapper:i32 (tjumptable:i32):$src2), GR32:i32:$src1) - Complexity = 9
                // Dst: (ADD32ri:i32:i32 GR32:i32:$src1, (tjumptable:i32):$src2)
              /*SwitchOpcode*/ 15,  TARGET_VAL(ISD::TargetGlobalAddress),// ->58777
/*58762*/       OPC_MoveParent,
/*58763*/       OPC_MoveParent,
/*58764*/       OPC_RecordChild1, // #1 = $src1
/*58765*/       OPC_CheckType, MVT::i32,
/*58767*/       OPC_MorphNodeTo, TARGET_VAL(X86::ADD32ri), 0,
                    2/*#VTs*/, MVT::i32, MVT::i32, 2/*#Ops*/, 1, 0, 
                // Src: (add:i32 (X86Wrapper:i32 (tglobaladdr:i32):$src2), GR32:i32:$src1) - Complexity = 9
                // Dst: (ADD32ri:i32:i32 GR32:i32:$src1, (tglobaladdr:i32):$src2)
              /*SwitchOpcode*/ 15,  TARGET_VAL(ISD::TargetExternalSymbol),// ->58795
/*58780*/       OPC_MoveParent,
/*58781*/       OPC_MoveParent,
/*58782*/       OPC_RecordChild1, // #1 = $src1
/*58783*/       OPC_CheckType, MVT::i32,
/*58785*/       OPC_MorphNodeTo, TARGET_VAL(X86::ADD32ri), 0,
                    2/*#VTs*/, MVT::i32, MVT::i32, 2/*#Ops*/, 1, 0, 
                // Src: (add:i32 (X86Wrapper:i32 (texternalsym:i32):$src2), GR32:i32:$src1) - Complexity = 9
                // Dst: (ADD32ri:i32:i32 GR32:i32:$src1, (texternalsym:i32):$src2)
              /*SwitchOpcode*/ 15,  TARGET_VAL(ISD::TargetBlockAddress),// ->58813
/*58798*/       OPC_MoveParent,
/*58799*/       OPC_MoveParent,
/*58800*/       OPC_RecordChild1, // #1 = $src1
/*58801*/       OPC_CheckType, MVT::i32,
/*58803*/       OPC_MorphNodeTo, TARGET_VAL(X86::ADD32ri), 0,
                    2/*#VTs*/, MVT::i32, MVT::i32, 2/*#Ops*/, 1, 0, 
                // Src: (add:i32 (X86Wrapper:i32 (tblockaddress:i32):$src2), GR32:i32:$src1) - Complexity = 9
                // Dst: (ADD32ri:i32:i32 GR32:i32:$src1, (tblockaddress:i32):$src2)
              /*SwitchOpcode*/ 15,  TARGET_VAL(ISD::TargetGlobalTLSAddress),// ->58831
/*58816*/       OPC_MoveParent,
/*58817*/       OPC_MoveParent,
/*58818*/       OPC_RecordChild1, // #1 = $src1
/*58819*/       OPC_CheckType, MVT::i64,
/*58821*/       OPC_MorphNodeTo, TARGET_VAL(X86::ADD64ri32), 0,
                    2/*#VTs*/, MVT::i64, MVT::i32, 2/*#Ops*/, 1, 0, 
                // Src: (add:i64 (X86Wrapper:i64 (tglobaltlsaddr:i64):$dst), GR64:i64:$src1) - Complexity = 9
                // Dst: (ADD64ri32:i64:i32 GR64:i64:$src1, (tglobaltlsaddr:i64):$dst)
              0, // EndSwitchOpcode
/*58832*/   /*Scope*/ 0|128,5/*640*/, /*->59474*/
/*58834*/     OPC_RecordChild0, // #0 = $src
/*58835*/     OPC_Scope, 36|128,2/*292*/, /*->59130*/ // 3 children in Scope
/*58838*/       OPC_MoveChild, 1,
/*58840*/       OPC_Scope, 83, /*->58925*/ // 4 children in Scope
/*58842*/         OPC_CheckInteger, 1, 
/*58844*/         OPC_MoveParent,
/*58845*/         OPC_SwitchType /*4 cases */, 26,  MVT::i16,// ->58874
/*58848*/           OPC_Scope, 11, /*->58861*/ // 2 children in Scope
/*58850*/             OPC_CheckPatternPredicate, 3, // (!Subtarget->is64Bit())
/*58852*/             OPC_MorphNodeTo, TARGET_VAL(X86::INC16r), 0,
                          2/*#VTs*/, MVT::i16, MVT::i32, 1/*#Ops*/, 0, 
                      // Src: (add:i16 GR16:i16:$src, 1:i16) - Complexity = 8
                      // Dst: (INC16r:i16:i32 GR16:i16:$src)
/*58861*/           /*Scope*/ 11, /*->58873*/
/*58862*/             OPC_CheckPatternPredicate, 4, // (Subtarget->is64Bit())
/*58864*/             OPC_MorphNodeTo, TARGET_VAL(X86::INC64_16r), 0,
                          2/*#VTs*/, MVT::i16, MVT::i32, 1/*#Ops*/, 0, 
                      // Src: (add:i16 GR16:i16:$src, 1:i16) - Complexity = 8
                      // Dst: (INC64_16r:i16:i32 GR16:i16:$src)
/*58873*/           0, /*End of Scope*/
                  /*SwitchType*/ 26,  MVT::i32,// ->58902
/*58876*/           OPC_Scope, 11, /*->58889*/ // 2 children in Scope
/*58878*/             OPC_CheckPatternPredicate, 3, // (!Subtarget->is64Bit())
/*58880*/             OPC_MorphNodeTo, TARGET_VAL(X86::INC32r), 0,
                          2/*#VTs*/, MVT::i32, MVT::i32, 1/*#Ops*/, 0, 
                      // Src: (add:i32 GR32:i32:$src, 1:i32) - Complexity = 8
                      // Dst: (INC32r:i32:i32 GR32:i32:$src)
/*58889*/           /*Scope*/ 11, /*->58901*/
/*58890*/             OPC_CheckPatternPredicate, 4, // (Subtarget->is64Bit())
/*58892*/             OPC_MorphNodeTo, TARGET_VAL(X86::INC64_32r), 0,
                          2/*#VTs*/, MVT::i32, MVT::i32, 1/*#Ops*/, 0, 
                      // Src: (add:i32 GR32:i32:$src, 1:i32) - Complexity = 8
                      // Dst: (INC64_32r:i32:i32 GR32:i32:$src)
/*58901*/           0, /*End of Scope*/
                  /*SwitchType*/ 9,  MVT::i64,// ->58913
/*58904*/           OPC_MorphNodeTo, TARGET_VAL(X86::INC64r), 0,
                        2/*#VTs*/, MVT::i64, MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (add:i64 GR64:i64:$src, 1:i64) - Complexity = 8
                    // Dst: (INC64r:i64:i32 GR64:i64:$src)
                  /*SwitchType*/ 9,  MVT::i8,// ->58924
/*58915*/           OPC_MorphNodeTo, TARGET_VAL(X86::INC8r), 0,
                        2/*#VTs*/, MVT::i8, MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (add:i8 GR8:i8:$src, 1:i8) - Complexity = 8
                    // Dst: (INC8r:i8:i32 GR8:i8:$src)
                  0, // EndSwitchType
/*58925*/       /*Scope*/ 92, /*->59018*/
/*58926*/         OPC_CheckInteger, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/*58937*/         OPC_MoveParent,
/*58938*/         OPC_SwitchType /*4 cases */, 26,  MVT::i16,// ->58967
/*58941*/           OPC_Scope, 11, /*->58954*/ // 2 children in Scope
/*58943*/             OPC_CheckPatternPredicate, 3, // (!Subtarget->is64Bit())
/*58945*/             OPC_MorphNodeTo, TARGET_VAL(X86::DEC16r), 0,
                          2/*#VTs*/, MVT::i16, MVT::i32, 1/*#Ops*/, 0, 
                      // Src: (add:i16 GR16:i16:$src, -1:i16) - Complexity = 8
                      // Dst: (DEC16r:i16:i32 GR16:i16:$src)
/*58954*/           /*Scope*/ 11, /*->58966*/
/*58955*/             OPC_CheckPatternPredicate, 4, // (Subtarget->is64Bit())
/*58957*/             OPC_MorphNodeTo, TARGET_VAL(X86::DEC64_16r), 0,
                          2/*#VTs*/, MVT::i16, MVT::i32, 1/*#Ops*/, 0, 
                      // Src: (add:i16 GR16:i16:$src, -1:i16) - Complexity = 8
                      // Dst: (DEC64_16r:i16:i32 GR16:i16:$src)
/*58966*/           0, /*End of Scope*/
                  /*SwitchType*/ 26,  MVT::i32,// ->58995
/*58969*/           OPC_Scope, 11, /*->58982*/ // 2 children in Scope
/*58971*/             OPC_CheckPatternPredicate, 3, // (!Subtarget->is64Bit())
/*58973*/             OPC_MorphNodeTo, TARGET_VAL(X86::DEC32r), 0,
                          2/*#VTs*/, MVT::i32, MVT::i32, 1/*#Ops*/, 0, 
                      // Src: (add:i32 GR32:i32:$src, -1:i32) - Complexity = 8
                      // Dst: (DEC32r:i32:i32 GR32:i32:$src)
/*58982*/           /*Scope*/ 11, /*->58994*/
/*58983*/             OPC_CheckPatternPredicate, 4, // (Subtarget->is64Bit())
/*58985*/             OPC_MorphNodeTo, TARGET_VAL(X86::DEC64_32r), 0,
                          2/*#VTs*/, MVT::i32, MVT::i32, 1/*#Ops*/, 0, 
                      // Src: (add:i32 GR32:i32:$src, -1:i32) - Complexity = 8
                      // Dst: (DEC64_32r:i32:i32 GR32:i32:$src)
/*58994*/           0, /*End of Scope*/
                  /*SwitchType*/ 9,  MVT::i64,// ->59006
/*58997*/           OPC_MorphNodeTo, TARGET_VAL(X86::DEC64r), 0,
                        2/*#VTs*/, MVT::i64, MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (add:i64 GR64:i64:$src, -1:i64) - Complexity = 8
                    // Dst: (DEC64r:i64:i32 GR64:i64:$src)
                  /*SwitchType*/ 9,  MVT::i8,// ->59017
/*59008*/           OPC_MorphNodeTo, TARGET_VAL(X86::DEC8r), 0,
                        2/*#VTs*/, MVT::i8, MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (add:i8 GR8:i8:$src, -1:i8) - Complexity = 8
                    // Dst: (DEC8r:i8:i32 GR8:i8:$src)
                  0, // EndSwitchType
/*59018*/       /*Scope*/ 78, /*->59097*/
/*59019*/         OPC_CheckInteger, 0|128,1/*128*/, 
/*59022*/         OPC_MoveParent,
/*59023*/         OPC_SwitchType /*3 cases */, 22,  MVT::i16,// ->59048
/*59026*/           OPC_EmitInteger, MVT::i16, 0|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551488*/, 
/*59038*/           OPC_MorphNodeTo, TARGET_VAL(X86::SUB16ri8), 0,
                        2/*#VTs*/, MVT::i16, MVT::i32, 2/*#Ops*/, 0, 1, 
                    // Src: (add:i16 GR16:i16:$src1, 128:i16) - Complexity = 8
                    // Dst: (SUB16ri8:i16:i32 GR16:i16:$src1, -128:i16)
                  /*SwitchType*/ 22,  MVT::i32,// ->59072
/*59050*/           OPC_EmitInteger, MVT::i32, 0|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551488*/, 
/*59062*/           OPC_MorphNodeTo, TARGET_VAL(X86::SUB32ri8), 0,
                        2/*#VTs*/, MVT::i32, MVT::i32, 2/*#Ops*/, 0, 1, 
                    // Src: (add:i32 GR32:i32:$src1, 128:i32) - Complexity = 8
                    // Dst: (SUB32ri8:i32:i32 GR32:i32:$src1, -128:i32)
                  /*SwitchType*/ 22,  MVT::i64,// ->59096
/*59074*/           OPC_EmitInteger, MVT::i64, 0|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551488*/, 
/*59086*/           OPC_MorphNodeTo, TARGET_VAL(X86::SUB64ri8), 0,
                        2/*#VTs*/, MVT::i64, MVT::i32, 2/*#Ops*/, 0, 1, 
                    // Src: (add:i64 GR64:i64:$src1, 128:i64) - Complexity = 8
                    // Dst: (SUB64ri8:i64:i32 GR64:i64:$src1, -128:i64)
                  0, // EndSwitchType
/*59097*/       /*Scope*/ 31, /*->59129*/
/*59098*/         OPC_CheckInteger, 0|128,0|128,0|128,0|128,8/*2147483648*/, 
/*59104*/         OPC_MoveParent,
/*59105*/         OPC_CheckType, MVT::i64,
/*59107*/         OPC_EmitInteger, MVT::i64, 0|128,0|128,0|128,0|128,120|128,127|128,127|128,127|128,127|128,1/*18446744071562067968*/, 
/*59119*/         OPC_MorphNodeTo, TARGET_VAL(X86::SUB64ri32), 0,
                      2/*#VTs*/, MVT::i64, MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (add:i64 GR64:i64:$src1, 2147483648:i64) - Complexity = 8
                  // Dst: (SUB64ri32:i64:i32 GR64:i64:$src1, -2147483648:i64)
/*59129*/       0, /*End of Scope*/
/*59130*/     /*Scope*/ 53|128,1/*181*/, /*->59313*/
/*59132*/       OPC_RecordChild1, // #1 = $src2
/*59133*/       OPC_Scope, 125, /*->59260*/ // 5 children in Scope
/*59135*/         OPC_MoveChild, 1,
/*59137*/         OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*59140*/         OPC_Scope, 17, /*->59159*/ // 5 children in Scope
/*59142*/           OPC_CheckPredicate, 8, // Predicate_i16immSExt8
/*59144*/           OPC_MoveParent,
/*59145*/           OPC_CheckType, MVT::i16,
/*59147*/           OPC_EmitConvertToTarget, 1,
/*59149*/           OPC_MorphNodeTo, TARGET_VAL(X86::ADD16ri8), 0,
                        2/*#VTs*/, MVT::i16, MVT::i32, 2/*#Ops*/, 0, 2, 
                    // Src: (add:i16 GR16:i16:$src1, (imm:i16)<<P:Predicate_i16immSExt8>>:$src2) - Complexity = 7
                    // Dst: (ADD16ri8:i16:i32 GR16:i16:$src1, (imm:i16)<<P:Predicate_i16immSExt8>>:$src2)
/*59159*/         /*Scope*/ 17, /*->59177*/
/*59160*/           OPC_CheckPredicate, 9, // Predicate_i32immSExt8
/*59162*/           OPC_MoveParent,
/*59163*/           OPC_CheckType, MVT::i32,
/*59165*/           OPC_EmitConvertToTarget, 1,
/*59167*/           OPC_MorphNodeTo, TARGET_VAL(X86::ADD32ri8), 0,
                        2/*#VTs*/, MVT::i32, MVT::i32, 2/*#Ops*/, 0, 2, 
                    // Src: (add:i32 GR32:i32:$src1, (imm:i32)<<P:Predicate_i32immSExt8>>:$src2) - Complexity = 7
                    // Dst: (ADD32ri8:i32:i32 GR32:i32:$src1, (imm:i32)<<P:Predicate_i32immSExt8>>:$src2)
/*59177*/         /*Scope*/ 17, /*->59195*/
/*59178*/           OPC_CheckPredicate, 10, // Predicate_i64immSExt8
/*59180*/           OPC_MoveParent,
/*59181*/           OPC_CheckType, MVT::i64,
/*59183*/           OPC_EmitConvertToTarget, 1,
/*59185*/           OPC_MorphNodeTo, TARGET_VAL(X86::ADD64ri8), 0,
                        2/*#VTs*/, MVT::i64, MVT::i32, 2/*#Ops*/, 0, 2, 
                    // Src: (add:i64 GR64:i64:$src1, (imm:i64)<<P:Predicate_i64immSExt8>>:$src2) - Complexity = 7
                    // Dst: (ADD64ri8:i64:i32 GR64:i64:$src1, (imm:i64)<<P:Predicate_i64immSExt8>>:$src2)
/*59195*/         /*Scope*/ 17, /*->59213*/
/*59196*/           OPC_CheckPredicate, 11, // Predicate_i64immSExt32
/*59198*/           OPC_MoveParent,
/*59199*/           OPC_CheckType, MVT::i64,
/*59201*/           OPC_EmitConvertToTarget, 1,
/*59203*/           OPC_MorphNodeTo, TARGET_VAL(X86::ADD64ri32), 0,
                        2/*#VTs*/, MVT::i64, MVT::i32, 2/*#Ops*/, 0, 2, 
                    // Src: (add:i64 GR64:i64:$src1, (imm:i64)<<P:Predicate_i64immSExt32>>:$src2) - Complexity = 7
                    // Dst: (ADD64ri32:i64:i32 GR64:i64:$src1, (imm:i64)<<P:Predicate_i64immSExt32>>:$src2)
/*59213*/         /*Scope*/ 45, /*->59259*/
/*59214*/           OPC_MoveParent,
/*59215*/           OPC_SwitchType /*3 cases */, 12,  MVT::i8,// ->59230
/*59218*/             OPC_EmitConvertToTarget, 1,
/*59220*/             OPC_MorphNodeTo, TARGET_VAL(X86::ADD8ri), 0,
                          2/*#VTs*/, MVT::i8, MVT::i32, 2/*#Ops*/, 0, 2, 
                      // Src: (add:i8 GR8:i8:$src1, (imm:i8):$src2) - Complexity = 6
                      // Dst: (ADD8ri:i8:i32 GR8:i8:$src1, (imm:i8):$src2)
                    /*SwitchType*/ 12,  MVT::i16,// ->59244
/*59232*/             OPC_EmitConvertToTarget, 1,
/*59234*/             OPC_MorphNodeTo, TARGET_VAL(X86::ADD16ri), 0,
                          2/*#VTs*/, MVT::i16, MVT::i32, 2/*#Ops*/, 0, 2, 
                      // Src: (add:i16 GR16:i16:$src1, (imm:i16):$src2) - Complexity = 6
                      // Dst: (ADD16ri:i16:i32 GR16:i16:$src1, (imm:i16):$src2)
                    /*SwitchType*/ 12,  MVT::i32,// ->59258
/*59246*/             OPC_EmitConvertToTarget, 1,
/*59248*/             OPC_MorphNodeTo, TARGET_VAL(X86::ADD32ri), 0,
                          2/*#VTs*/, MVT::i32, MVT::i32, 2/*#Ops*/, 0, 2, 
                      // Src: (add:i32 GR32:i32:$src1, (imm:i32):$src2) - Complexity = 6
                      // Dst: (ADD32ri:i32:i32 GR32:i32:$src1, (imm:i32):$src2)
                    0, // EndSwitchType
/*59259*/         0, /*End of Scope*/
/*59260*/       /*Scope*/ 12, /*->59273*/
/*59261*/         OPC_CheckType, MVT::i8,
/*59263*/         OPC_MorphNodeTo, TARGET_VAL(X86::ADD8rr), 0,
                      2/*#VTs*/, MVT::i8, MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (add:i8 GR8:i8:$src1, GR8:i8:$src2) - Complexity = 3
                  // Dst: (ADD8rr:i8:i32 GR8:i8:$src1, GR8:i8:$src2)
/*59273*/       /*Scope*/ 12, /*->59286*/
/*59274*/         OPC_CheckType, MVT::i16,
/*59276*/         OPC_MorphNodeTo, TARGET_VAL(X86::ADD16rr), 0,
                      2/*#VTs*/, MVT::i16, MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (add:i16 GR16:i16:$src1, GR16:i16:$src2) - Complexity = 3
                  // Dst: (ADD16rr:i16:i32 GR16:i16:$src1, GR16:i16:$src2)
/*59286*/       /*Scope*/ 12, /*->59299*/
/*59287*/         OPC_CheckType, MVT::i32,
/*59289*/         OPC_MorphNodeTo, TARGET_VAL(X86::ADD32rr), 0,
                      2/*#VTs*/, MVT::i32, MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (add:i32 GR32:i32:$src1, GR32:i32:$src2) - Complexity = 3
                  // Dst: (ADD32rr:i32:i32 GR32:i32:$src1, GR32:i32:$src2)
/*59299*/       /*Scope*/ 12, /*->59312*/
/*59300*/         OPC_CheckType, MVT::i64,
/*59302*/         OPC_MorphNodeTo, TARGET_VAL(X86::ADD64rr), 0,
                      2/*#VTs*/, MVT::i64, MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (add:i64 GR64:i64:$src1, GR64:i64:$src2) - Complexity = 3
                  // Dst: (ADD64rr:i64:i32 GR64:i64:$src1, GR64:i64:$src2)
/*59312*/       0, /*End of Scope*/
/*59313*/     /*Scope*/ 30|128,1/*158*/, /*->59473*/
/*59315*/       OPC_MoveChild, 1,
/*59317*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*59320*/       OPC_MoveChild, 0,
/*59322*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*59325*/       OPC_RecordMemRef,
/*59326*/       OPC_RecordNode, // #1 = 'ld' chained node
/*59327*/       OPC_CheckFoldableChainNode,
/*59328*/       OPC_RecordChild1, // #2 = $src2
/*59329*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*59331*/       OPC_CheckPredicate, 3, // Predicate_load
/*59333*/       OPC_CheckPredicate, 23, // Predicate_memop
/*59335*/       OPC_CheckType, MVT::v2i64,
/*59337*/       OPC_MoveParent,
/*59338*/       OPC_MoveParent,
/*59339*/       OPC_SwitchType /*3 cases */, 42,  MVT::v16i8,// ->59384
/*59342*/         OPC_Scope, 19, /*->59363*/ // 2 children in Scope
/*59344*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*59346*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*59349*/           OPC_EmitMergeInputChains1_1,
/*59350*/           OPC_MorphNodeTo, TARGET_VAL(X86::VPADDBrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (add:v16i8 VR128:v16i8:$src1, (bitconvert:v16i8 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 28
                    // Dst: (VPADDBrm:v16i8 VR128:v16i8:$src1, addr:iPTR:$src2)
/*59363*/         /*Scope*/ 19, /*->59383*/
/*59364*/           OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*59366*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*59369*/           OPC_EmitMergeInputChains1_1,
/*59370*/           OPC_MorphNodeTo, TARGET_VAL(X86::PADDBrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (add:v16i8 VR128:v16i8:$src1, (bitconvert:v16i8 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 28
                    // Dst: (PADDBrm:v16i8 VR128:v16i8:$src1, addr:iPTR:$src2)
/*59383*/         0, /*End of Scope*/
                /*SwitchType*/ 42,  MVT::v8i16,// ->59428
/*59386*/         OPC_Scope, 19, /*->59407*/ // 2 children in Scope
/*59388*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*59390*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*59393*/           OPC_EmitMergeInputChains1_1,
/*59394*/           OPC_MorphNodeTo, TARGET_VAL(X86::VPADDWrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (add:v8i16 VR128:v8i16:$src1, (bitconvert:v8i16 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 28
                    // Dst: (VPADDWrm:v8i16 VR128:v8i16:$src1, addr:iPTR:$src2)
/*59407*/         /*Scope*/ 19, /*->59427*/
/*59408*/           OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*59410*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*59413*/           OPC_EmitMergeInputChains1_1,
/*59414*/           OPC_MorphNodeTo, TARGET_VAL(X86::PADDWrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (add:v8i16 VR128:v8i16:$src1, (bitconvert:v8i16 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 28
                    // Dst: (PADDWrm:v8i16 VR128:v8i16:$src1, addr:iPTR:$src2)
/*59427*/         0, /*End of Scope*/
                /*SwitchType*/ 42,  MVT::v4i32,// ->59472
/*59430*/         OPC_Scope, 19, /*->59451*/ // 2 children in Scope
/*59432*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*59434*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*59437*/           OPC_EmitMergeInputChains1_1,
/*59438*/           OPC_MorphNodeTo, TARGET_VAL(X86::VPADDDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (add:v4i32 VR128:v4i32:$src1, (bitconvert:v4i32 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 28
                    // Dst: (VPADDDrm:v4i32 VR128:v4i32:$src1, addr:iPTR:$src2)
/*59451*/         /*Scope*/ 19, /*->59471*/
/*59452*/           OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*59454*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*59457*/           OPC_EmitMergeInputChains1_1,
/*59458*/           OPC_MorphNodeTo, TARGET_VAL(X86::PADDDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (add:v4i32 VR128:v4i32:$src1, (bitconvert:v4i32 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 28
                    // Dst: (PADDDrm:v4i32 VR128:v4i32:$src1, addr:iPTR:$src2)
/*59471*/         0, /*End of Scope*/
                0, // EndSwitchType
/*59473*/     0, /*End of Scope*/
/*59474*/   /*Scope*/ 31|128,1/*159*/, /*->59635*/
/*59476*/     OPC_MoveChild, 0,
/*59478*/     OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*59481*/     OPC_MoveChild, 0,
/*59483*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*59486*/     OPC_RecordMemRef,
/*59487*/     OPC_RecordNode, // #0 = 'ld' chained node
/*59488*/     OPC_CheckFoldableChainNode,
/*59489*/     OPC_RecordChild1, // #1 = $src2
/*59490*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*59492*/     OPC_CheckPredicate, 3, // Predicate_load
/*59494*/     OPC_CheckPredicate, 23, // Predicate_memop
/*59496*/     OPC_CheckType, MVT::v2i64,
/*59498*/     OPC_MoveParent,
/*59499*/     OPC_MoveParent,
/*59500*/     OPC_RecordChild1, // #2 = $src1
/*59501*/     OPC_SwitchType /*3 cases */, 42,  MVT::v16i8,// ->59546
/*59504*/       OPC_Scope, 19, /*->59525*/ // 2 children in Scope
/*59506*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*59508*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*59511*/         OPC_EmitMergeInputChains1_0,
/*59512*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPADDBrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v16i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (add:v16i8 (bitconvert:v16i8 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>), VR128:v16i8:$src1) - Complexity = 28
                  // Dst: (VPADDBrm:v16i8 VR128:v16i8:$src1, addr:iPTR:$src2)
/*59525*/       /*Scope*/ 19, /*->59545*/
/*59526*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*59528*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*59531*/         OPC_EmitMergeInputChains1_0,
/*59532*/         OPC_MorphNodeTo, TARGET_VAL(X86::PADDBrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v16i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (add:v16i8 (bitconvert:v16i8 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>), VR128:v16i8:$src1) - Complexity = 28
                  // Dst: (PADDBrm:v16i8 VR128:v16i8:$src1, addr:iPTR:$src2)
/*59545*/       0, /*End of Scope*/
              /*SwitchType*/ 42,  MVT::v8i16,// ->59590
/*59548*/       OPC_Scope, 19, /*->59569*/ // 2 children in Scope
/*59550*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*59552*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*59555*/         OPC_EmitMergeInputChains1_0,
/*59556*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPADDWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v8i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (add:v8i16 (bitconvert:v8i16 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>), VR128:v8i16:$src1) - Complexity = 28
                  // Dst: (VPADDWrm:v8i16 VR128:v8i16:$src1, addr:iPTR:$src2)
/*59569*/       /*Scope*/ 19, /*->59589*/
/*59570*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*59572*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*59575*/         OPC_EmitMergeInputChains1_0,
/*59576*/         OPC_MorphNodeTo, TARGET_VAL(X86::PADDWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v8i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (add:v8i16 (bitconvert:v8i16 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>), VR128:v8i16:$src1) - Complexity = 28
                  // Dst: (PADDWrm:v8i16 VR128:v8i16:$src1, addr:iPTR:$src2)
/*59589*/       0, /*End of Scope*/
              /*SwitchType*/ 42,  MVT::v4i32,// ->59634
/*59592*/       OPC_Scope, 19, /*->59613*/ // 2 children in Scope
/*59594*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*59596*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*59599*/         OPC_EmitMergeInputChains1_0,
/*59600*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPADDDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (add:v4i32 (bitconvert:v4i32 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>), VR128:v4i32:$src1) - Complexity = 28
                  // Dst: (VPADDDrm:v4i32 VR128:v4i32:$src1, addr:iPTR:$src2)
/*59613*/       /*Scope*/ 19, /*->59633*/
/*59614*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*59616*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*59619*/         OPC_EmitMergeInputChains1_0,
/*59620*/         OPC_MorphNodeTo, TARGET_VAL(X86::PADDDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (add:v4i32 (bitconvert:v4i32 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>), VR128:v4i32:$src1) - Complexity = 28
                  // Dst: (PADDDrm:v4i32 VR128:v4i32:$src1, addr:iPTR:$src2)
/*59633*/       0, /*End of Scope*/
              0, // EndSwitchType
/*59635*/   /*Scope*/ 61, /*->59697*/
/*59636*/     OPC_RecordChild0, // #0 = $src1
/*59637*/     OPC_MoveChild, 1,
/*59639*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*59642*/     OPC_RecordMemRef,
/*59643*/     OPC_RecordNode, // #1 = 'ld' chained node
/*59644*/     OPC_CheckFoldableChainNode,
/*59645*/     OPC_RecordChild1, // #2 = $src2
/*59646*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*59648*/     OPC_CheckPredicate, 3, // Predicate_load
/*59650*/     OPC_CheckPredicate, 23, // Predicate_memop
/*59652*/     OPC_MoveParent,
/*59653*/     OPC_CheckType, MVT::v2i64,
/*59655*/     OPC_Scope, 19, /*->59676*/ // 2 children in Scope
/*59657*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*59659*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*59662*/       OPC_EmitMergeInputChains1_1,
/*59663*/       OPC_MorphNodeTo, TARGET_VAL(X86::VPADDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (add:v2i64 VR128:v2i64:$src1, (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                // Dst: (VPADDQrm:v2i64 VR128:v2i64:$src1, addr:iPTR:$src2)
/*59676*/     /*Scope*/ 19, /*->59696*/
/*59677*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*59679*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*59682*/       OPC_EmitMergeInputChains1_1,
/*59683*/       OPC_MorphNodeTo, TARGET_VAL(X86::PADDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (add:v2i64 VR128:v2i64:$src1, (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                // Dst: (PADDQrm:v2i64 VR128:v2i64:$src1, addr:iPTR:$src2)
/*59696*/     0, /*End of Scope*/
/*59697*/   /*Scope*/ 61, /*->59759*/
/*59698*/     OPC_MoveChild, 0,
/*59700*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*59703*/     OPC_RecordMemRef,
/*59704*/     OPC_RecordNode, // #0 = 'ld' chained node
/*59705*/     OPC_CheckFoldableChainNode,
/*59706*/     OPC_RecordChild1, // #1 = $src2
/*59707*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*59709*/     OPC_CheckPredicate, 3, // Predicate_load
/*59711*/     OPC_CheckPredicate, 23, // Predicate_memop
/*59713*/     OPC_MoveParent,
/*59714*/     OPC_RecordChild1, // #2 = $src1
/*59715*/     OPC_CheckType, MVT::v2i64,
/*59717*/     OPC_Scope, 19, /*->59738*/ // 2 children in Scope
/*59719*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*59721*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*59724*/       OPC_EmitMergeInputChains1_0,
/*59725*/       OPC_MorphNodeTo, TARGET_VAL(X86::VPADDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v2i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                // Src: (add:v2i64 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, VR128:v2i64:$src1) - Complexity = 25
                // Dst: (VPADDQrm:v2i64 VR128:v2i64:$src1, addr:iPTR:$src2)
/*59738*/     /*Scope*/ 19, /*->59758*/
/*59739*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*59741*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*59744*/       OPC_EmitMergeInputChains1_0,
/*59745*/       OPC_MorphNodeTo, TARGET_VAL(X86::PADDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v2i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                // Src: (add:v2i64 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, VR128:v2i64:$src1) - Complexity = 25
                // Dst: (PADDQrm:v2i64 VR128:v2i64:$src1, addr:iPTR:$src2)
/*59758*/     0, /*End of Scope*/
/*59759*/   /*Scope*/ 116, /*->59876*/
/*59760*/     OPC_RecordChild0, // #0 = $src1
/*59761*/     OPC_RecordChild1, // #1 = $src2
/*59762*/     OPC_SwitchType /*4 cases */, 26,  MVT::v16i8,// ->59791
/*59765*/       OPC_Scope, 11, /*->59778*/ // 2 children in Scope
/*59767*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*59769*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPADDBrr), 0,
                      1/*#VTs*/, MVT::v16i8, 2/*#Ops*/, 0, 1, 
                  // Src: (add:v16i8 VR128:v16i8:$src1, VR128:v16i8:$src2) - Complexity = 3
                  // Dst: (VPADDBrr:v16i8 VR128:v16i8:$src1, VR128:v16i8:$src2)
/*59778*/       /*Scope*/ 11, /*->59790*/
/*59779*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*59781*/         OPC_MorphNodeTo, TARGET_VAL(X86::PADDBrr), 0,
                      1/*#VTs*/, MVT::v16i8, 2/*#Ops*/, 0, 1, 
                  // Src: (add:v16i8 VR128:v16i8:$src1, VR128:v16i8:$src2) - Complexity = 3
                  // Dst: (PADDBrr:v16i8 VR128:v16i8:$src1, VR128:v16i8:$src2)
/*59790*/       0, /*End of Scope*/
              /*SwitchType*/ 26,  MVT::v8i16,// ->59819
/*59793*/       OPC_Scope, 11, /*->59806*/ // 2 children in Scope
/*59795*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*59797*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPADDWrr), 0,
                      1/*#VTs*/, MVT::v8i16, 2/*#Ops*/, 0, 1, 
                  // Src: (add:v8i16 VR128:v8i16:$src1, VR128:v8i16:$src2) - Complexity = 3
                  // Dst: (VPADDWrr:v8i16 VR128:v8i16:$src1, VR128:v8i16:$src2)
/*59806*/       /*Scope*/ 11, /*->59818*/
/*59807*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*59809*/         OPC_MorphNodeTo, TARGET_VAL(X86::PADDWrr), 0,
                      1/*#VTs*/, MVT::v8i16, 2/*#Ops*/, 0, 1, 
                  // Src: (add:v8i16 VR128:v8i16:$src1, VR128:v8i16:$src2) - Complexity = 3
                  // Dst: (PADDWrr:v8i16 VR128:v8i16:$src1, VR128:v8i16:$src2)
/*59818*/       0, /*End of Scope*/
              /*SwitchType*/ 26,  MVT::v4i32,// ->59847
/*59821*/       OPC_Scope, 11, /*->59834*/ // 2 children in Scope
/*59823*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*59825*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPADDDrr), 0,
                      1/*#VTs*/, MVT::v4i32, 2/*#Ops*/, 0, 1, 
                  // Src: (add:v4i32 VR128:v4i32:$src1, VR128:v4i32:$src2) - Complexity = 3
                  // Dst: (VPADDDrr:v4i32 VR128:v4i32:$src1, VR128:v4i32:$src2)
/*59834*/       /*Scope*/ 11, /*->59846*/
/*59835*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*59837*/         OPC_MorphNodeTo, TARGET_VAL(X86::PADDDrr), 0,
                      1/*#VTs*/, MVT::v4i32, 2/*#Ops*/, 0, 1, 
                  // Src: (add:v4i32 VR128:v4i32:$src1, VR128:v4i32:$src2) - Complexity = 3
                  // Dst: (PADDDrr:v4i32 VR128:v4i32:$src1, VR128:v4i32:$src2)
/*59846*/       0, /*End of Scope*/
              /*SwitchType*/ 26,  MVT::v2i64,// ->59875
/*59849*/       OPC_Scope, 11, /*->59862*/ // 2 children in Scope
/*59851*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*59853*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPADDQrr), 0,
                      1/*#VTs*/, MVT::v2i64, 2/*#Ops*/, 0, 1, 
                  // Src: (add:v2i64 VR128:v2i64:$src1, VR128:v2i64:$src2) - Complexity = 3
                  // Dst: (VPADDQrr:v2i64 VR128:v2i64:$src1, VR128:v2i64:$src2)
/*59862*/       /*Scope*/ 11, /*->59874*/
/*59863*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*59865*/         OPC_MorphNodeTo, TARGET_VAL(X86::PADDQrr), 0,
                      1/*#VTs*/, MVT::v2i64, 2/*#Ops*/, 0, 1, 
                  // Src: (add:v2i64 VR128:v2i64:$src1, VR128:v2i64:$src2) - Complexity = 3
                  // Dst: (PADDQrr:v2i64 VR128:v2i64:$src1, VR128:v2i64:$src2)
/*59874*/       0, /*End of Scope*/
              0, // EndSwitchType
/*59876*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 6|128,7/*902*/,  TARGET_VAL(ISD::SUB),// ->60783
/*59881*/   OPC_Scope, 61|128,1/*189*/, /*->60073*/ // 5 children in Scope
/*59884*/     OPC_RecordChild0, // #0 = $src1
/*59885*/     OPC_MoveChild, 1,
/*59887*/     OPC_SwitchOpcode /*2 cases */, 104,  TARGET_VAL(ISD::LOAD),// ->59995
/*59891*/       OPC_RecordMemRef,
/*59892*/       OPC_RecordNode, // #1 = 'ld' chained node
/*59893*/       OPC_CheckFoldableChainNode,
/*59894*/       OPC_RecordChild1, // #2 = $src2
/*59895*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*59897*/       OPC_Scope, 23, /*->59922*/ // 4 children in Scope
/*59899*/         OPC_CheckPredicate, 3, // Predicate_load
/*59901*/         OPC_MoveParent,
/*59902*/         OPC_CheckType, MVT::i8,
/*59904*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*59907*/         OPC_EmitMergeInputChains1_1,
/*59908*/         OPC_MorphNodeTo, TARGET_VAL(X86::SUB8rm), 0|OPFL_Chain|OPFL_MemRefs,
                      2/*#VTs*/, MVT::i8, MVT::i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (sub:i8 GR8:i8:$src1, (ld:i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (SUB8rm:i8:i32 GR8:i8:$src1, addr:iPTR:$src2)
/*59922*/       /*Scope*/ 23, /*->59946*/
/*59923*/         OPC_CheckPredicate, 6, // Predicate_loadi16
/*59925*/         OPC_MoveParent,
/*59926*/         OPC_CheckType, MVT::i16,
/*59928*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*59931*/         OPC_EmitMergeInputChains1_1,
/*59932*/         OPC_MorphNodeTo, TARGET_VAL(X86::SUB16rm), 0|OPFL_Chain|OPFL_MemRefs,
                      2/*#VTs*/, MVT::i16, MVT::i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (sub:i16 GR16:i16:$src1, (ld:i16 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>) - Complexity = 25
                  // Dst: (SUB16rm:i16:i32 GR16:i16:$src1, addr:iPTR:$src2)
/*59946*/       /*Scope*/ 23, /*->59970*/
/*59947*/         OPC_CheckPredicate, 7, // Predicate_loadi32
/*59949*/         OPC_MoveParent,
/*59950*/         OPC_CheckType, MVT::i32,
/*59952*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*59955*/         OPC_EmitMergeInputChains1_1,
/*59956*/         OPC_MorphNodeTo, TARGET_VAL(X86::SUB32rm), 0|OPFL_Chain|OPFL_MemRefs,
                      2/*#VTs*/, MVT::i32, MVT::i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (sub:i32 GR32:i32:$src1, (ld:i32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>) - Complexity = 25
                  // Dst: (SUB32rm:i32:i32 GR32:i32:$src1, addr:iPTR:$src2)
/*59970*/       /*Scope*/ 23, /*->59994*/
/*59971*/         OPC_CheckPredicate, 3, // Predicate_load
/*59973*/         OPC_MoveParent,
/*59974*/         OPC_CheckType, MVT::i64,
/*59976*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*59979*/         OPC_EmitMergeInputChains1_1,
/*59980*/         OPC_MorphNodeTo, TARGET_VAL(X86::SUB64rm), 0|OPFL_Chain|OPFL_MemRefs,
                      2/*#VTs*/, MVT::i64, MVT::i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (sub:i64 GR64:i64:$src1, (ld:i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (SUB64rm:i64:i32 GR64:i64:$src1, addr:iPTR:$src2)
/*59994*/       0, /*End of Scope*/
              /*SwitchOpcode*/ 74,  TARGET_VAL(ISD::AND),// ->60072
/*59998*/       OPC_MoveChild, 0,
/*60000*/       OPC_CheckOpcode, TARGET_VAL(X86ISD::SETCC_CARRY),
/*60003*/       OPC_MoveChild, 0,
/*60005*/       OPC_CheckInteger, 2, 
/*60007*/       OPC_MoveParent,
/*60008*/       OPC_RecordChild1, // #1 = physreg input EFLAGS
/*60009*/       OPC_MoveParent,
/*60010*/       OPC_MoveChild, 1,
/*60012*/       OPC_CheckInteger, 1, 
/*60014*/       OPC_MoveParent,
/*60015*/       OPC_MoveParent,
/*60016*/       OPC_SwitchType /*3 cases */, 16,  MVT::i8,// ->60035
/*60019*/         OPC_EmitInteger, MVT::i8, 0, 
/*60022*/         OPC_EmitCopyToReg, 1, X86::EFLAGS,
/*60025*/         OPC_MorphNodeTo, TARGET_VAL(X86::SBB8ri), 0|OPFL_GlueInput,
                      2/*#VTs*/, MVT::i8, MVT::i32, 2/*#Ops*/, 0, 2, 
                  // Src: (sub:i8 GR8:i8:$op, (and:i8 (X86setcc_c:i8 2:i8, EFLAGS:i32), 1:i8)) - Complexity = 19
                  // Dst: (SBB8ri:i8:i32 GR8:i8:$op, 0:i8)
                /*SwitchType*/ 16,  MVT::i32,// ->60053
/*60037*/         OPC_EmitInteger, MVT::i32, 0, 
/*60040*/         OPC_EmitCopyToReg, 1, X86::EFLAGS,
/*60043*/         OPC_MorphNodeTo, TARGET_VAL(X86::SBB32ri8), 0|OPFL_GlueInput,
                      2/*#VTs*/, MVT::i32, MVT::i32, 2/*#Ops*/, 0, 2, 
                  // Src: (sub:i32 GR32:i32:$op, (and:i32 (X86setcc_c:i32 2:i8, EFLAGS:i32), 1:i32)) - Complexity = 19
                  // Dst: (SBB32ri8:i32:i32 GR32:i32:$op, 0:i32)
                /*SwitchType*/ 16,  MVT::i64,// ->60071
/*60055*/         OPC_EmitInteger, MVT::i64, 0, 
/*60058*/         OPC_EmitCopyToReg, 1, X86::EFLAGS,
/*60061*/         OPC_MorphNodeTo, TARGET_VAL(X86::SBB64ri8), 0|OPFL_GlueInput,
                      2/*#VTs*/, MVT::i64, MVT::i32, 2/*#Ops*/, 0, 2, 
                  // Src: (sub:i64 GR64:i64:$op, (and:i64 (X86setcc_c:i64 2:i8, EFLAGS:i32), 1:i64)) - Complexity = 19
                  // Dst: (SBB64ri8:i64:i32 GR64:i64:$op, 0:i64)
                0, // EndSwitchType
              0, // EndSwitchOpcode
/*60073*/   /*Scope*/ 60, /*->60134*/
/*60074*/     OPC_RecordNode, // #0 = $src
/*60075*/     OPC_SwitchType /*2 cases */, 38,  MVT::i32,// ->60116
/*60078*/       OPC_Scope, 17, /*->60097*/ // 2 children in Scope
/*60080*/         OPC_CheckPatternPredicate, 3, // (!Subtarget->is64Bit())
/*60082*/         OPC_CheckComplexPat, /*CP*/3, /*#*/0, // SelectLEAAddr:$src #1 #2 #3 #4 #5
/*60085*/         OPC_MorphNodeTo, TARGET_VAL(X86::LEA32r), 0,
                      1/*#VTs*/, MVT::i32, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                  // Src: lea32addr:i32:$src - Complexity = 18
                  // Dst: (LEA32r:i32 lea32addr:i32:$src)
/*60097*/       /*Scope*/ 17, /*->60115*/
/*60098*/         OPC_CheckPatternPredicate, 4, // (Subtarget->is64Bit())
/*60100*/         OPC_CheckComplexPat, /*CP*/3, /*#*/0, // SelectLEAAddr:$src #1 #2 #3 #4 #5
/*60103*/         OPC_MorphNodeTo, TARGET_VAL(X86::LEA64_32r), 0,
                      1/*#VTs*/, MVT::i32, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                  // Src: lea32addr:i32:$src - Complexity = 18
                  // Dst: (LEA64_32r:i32 lea32addr:i32:$src)
/*60115*/       0, /*End of Scope*/
              /*SwitchType*/ 15,  MVT::i64,// ->60133
/*60118*/       OPC_CheckComplexPat, /*CP*/4, /*#*/0, // SelectLEAAddr:$src #1 #2 #3 #4 #5
/*60121*/       OPC_MorphNodeTo, TARGET_VAL(X86::LEA64r), 0,
                    1/*#VTs*/, MVT::i64, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                // Src: lea64addr:i64:$src - Complexity = 18
                // Dst: (LEA64r:i64 lea64addr:i64:$src)
              0, // EndSwitchType
/*60134*/   /*Scope*/ 69, /*->60204*/
/*60135*/     OPC_RecordChild0, // #0 = $op
/*60136*/     OPC_MoveChild, 1,
/*60138*/     OPC_CheckOpcode, TARGET_VAL(X86ISD::SETCC_CARRY),
/*60141*/     OPC_MoveChild, 0,
/*60143*/     OPC_CheckInteger, 2, 
/*60145*/     OPC_MoveParent,
/*60146*/     OPC_RecordChild1, // #1 = physreg input EFLAGS
/*60147*/     OPC_MoveParent,
/*60148*/     OPC_SwitchType /*3 cases */, 16,  MVT::i8,// ->60167
/*60151*/       OPC_EmitInteger, MVT::i8, 0, 
/*60154*/       OPC_EmitCopyToReg, 1, X86::EFLAGS,
/*60157*/       OPC_MorphNodeTo, TARGET_VAL(X86::ADC8ri), 0|OPFL_GlueInput,
                    2/*#VTs*/, MVT::i8, MVT::i32, 2/*#Ops*/, 0, 2, 
                // Src: (sub:i8 GR8:i8:$op, (X86setcc_c:i8 2:i8, EFLAGS:i32)) - Complexity = 11
                // Dst: (ADC8ri:i8:i32 GR8:i8:$op, 0:i8)
              /*SwitchType*/ 16,  MVT::i32,// ->60185
/*60169*/       OPC_EmitInteger, MVT::i32, 0, 
/*60172*/       OPC_EmitCopyToReg, 1, X86::EFLAGS,
/*60175*/       OPC_MorphNodeTo, TARGET_VAL(X86::ADC32ri8), 0|OPFL_GlueInput,
                    2/*#VTs*/, MVT::i32, MVT::i32, 2/*#Ops*/, 0, 2, 
                // Src: (sub:i32 GR32:i32:$op, (X86setcc_c:i32 2:i8, EFLAGS:i32)) - Complexity = 11
                // Dst: (ADC32ri8:i32:i32 GR32:i32:$op, 0:i32)
              /*SwitchType*/ 16,  MVT::i64,// ->60203
/*60187*/       OPC_EmitInteger, MVT::i64, 0, 
/*60190*/       OPC_EmitCopyToReg, 1, X86::EFLAGS,
/*60193*/       OPC_MorphNodeTo, TARGET_VAL(X86::ADC64ri8), 0|OPFL_GlueInput,
                    2/*#VTs*/, MVT::i64, MVT::i32, 2/*#Ops*/, 0, 2, 
                // Src: (sub:i64 GR64:i64:$op, (X86setcc_c:i64 2:i8, EFLAGS:i32)) - Complexity = 11
                // Dst: (ADC64ri8:i64:i32 GR64:i64:$op, 0:i64)
              0, // EndSwitchType
/*60204*/   /*Scope*/ 52, /*->60257*/
/*60205*/     OPC_MoveChild, 0,
/*60207*/     OPC_CheckInteger, 0, 
/*60209*/     OPC_MoveParent,
/*60210*/     OPC_RecordChild1, // #0 = $src1
/*60211*/     OPC_SwitchType /*4 cases */, 9,  MVT::i8,// ->60223
/*60214*/       OPC_MorphNodeTo, TARGET_VAL(X86::NEG8r), 0,
                    2/*#VTs*/, MVT::i8, MVT::i32, 1/*#Ops*/, 0, 
                // Src: (sub:i8 0:i8, GR8:i8:$src1) - Complexity = 8
                // Dst: (NEG8r:i8:i32 GR8:i8:$src1)
              /*SwitchType*/ 9,  MVT::i16,// ->60234
/*60225*/       OPC_MorphNodeTo, TARGET_VAL(X86::NEG16r), 0,
                    2/*#VTs*/, MVT::i16, MVT::i32, 1/*#Ops*/, 0, 
                // Src: (sub:i16 0:i16, GR16:i16:$src1) - Complexity = 8
                // Dst: (NEG16r:i16:i32 GR16:i16:$src1)
              /*SwitchType*/ 9,  MVT::i32,// ->60245
/*60236*/       OPC_MorphNodeTo, TARGET_VAL(X86::NEG32r), 0,
                    2/*#VTs*/, MVT::i32, MVT::i32, 1/*#Ops*/, 0, 
                // Src: (sub:i32 0:i32, GR32:i32:$src1) - Complexity = 8
                // Dst: (NEG32r:i32:i32 GR32:i32:$src1)
              /*SwitchType*/ 9,  MVT::i64,// ->60256
/*60247*/       OPC_MorphNodeTo, TARGET_VAL(X86::NEG64r), 0,
                    2/*#VTs*/, MVT::i64, MVT::i32, 1/*#Ops*/, 0, 
                // Src: (sub:i64 0:i64, GR64:i64:$src1) - Complexity = 8
                // Dst: (NEG64r:i64:i32 GR64:i64:$src1)
              0, // EndSwitchType
/*60257*/   /*Scope*/ 11|128,4/*523*/, /*->60782*/
/*60259*/     OPC_RecordChild0, // #0 = $src1
/*60260*/     OPC_Scope, 53|128,1/*181*/, /*->60444*/ // 3 children in Scope
/*60263*/       OPC_RecordChild1, // #1 = $src2
/*60264*/       OPC_Scope, 125, /*->60391*/ // 5 children in Scope
/*60266*/         OPC_MoveChild, 1,
/*60268*/         OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*60271*/         OPC_Scope, 17, /*->60290*/ // 5 children in Scope
/*60273*/           OPC_CheckPredicate, 8, // Predicate_i16immSExt8
/*60275*/           OPC_MoveParent,
/*60276*/           OPC_CheckType, MVT::i16,
/*60278*/           OPC_EmitConvertToTarget, 1,
/*60280*/           OPC_MorphNodeTo, TARGET_VAL(X86::SUB16ri8), 0,
                        2/*#VTs*/, MVT::i16, MVT::i32, 2/*#Ops*/, 0, 2, 
                    // Src: (sub:i16 GR16:i16:$src1, (imm:i16)<<P:Predicate_i16immSExt8>>:$src2) - Complexity = 7
                    // Dst: (SUB16ri8:i16:i32 GR16:i16:$src1, (imm:i16)<<P:Predicate_i16immSExt8>>:$src2)
/*60290*/         /*Scope*/ 17, /*->60308*/
/*60291*/           OPC_CheckPredicate, 9, // Predicate_i32immSExt8
/*60293*/           OPC_MoveParent,
/*60294*/           OPC_CheckType, MVT::i32,
/*60296*/           OPC_EmitConvertToTarget, 1,
/*60298*/           OPC_MorphNodeTo, TARGET_VAL(X86::SUB32ri8), 0,
                        2/*#VTs*/, MVT::i32, MVT::i32, 2/*#Ops*/, 0, 2, 
                    // Src: (sub:i32 GR32:i32:$src1, (imm:i32)<<P:Predicate_i32immSExt8>>:$src2) - Complexity = 7
                    // Dst: (SUB32ri8:i32:i32 GR32:i32:$src1, (imm:i32)<<P:Predicate_i32immSExt8>>:$src2)
/*60308*/         /*Scope*/ 17, /*->60326*/
/*60309*/           OPC_CheckPredicate, 10, // Predicate_i64immSExt8
/*60311*/           OPC_MoveParent,
/*60312*/           OPC_CheckType, MVT::i64,
/*60314*/           OPC_EmitConvertToTarget, 1,
/*60316*/           OPC_MorphNodeTo, TARGET_VAL(X86::SUB64ri8), 0,
                        2/*#VTs*/, MVT::i64, MVT::i32, 2/*#Ops*/, 0, 2, 
                    // Src: (sub:i64 GR64:i64:$src1, (imm:i64)<<P:Predicate_i64immSExt8>>:$src2) - Complexity = 7
                    // Dst: (SUB64ri8:i64:i32 GR64:i64:$src1, (imm:i64)<<P:Predicate_i64immSExt8>>:$src2)
/*60326*/         /*Scope*/ 17, /*->60344*/
/*60327*/           OPC_CheckPredicate, 11, // Predicate_i64immSExt32
/*60329*/           OPC_MoveParent,
/*60330*/           OPC_CheckType, MVT::i64,
/*60332*/           OPC_EmitConvertToTarget, 1,
/*60334*/           OPC_MorphNodeTo, TARGET_VAL(X86::SUB64ri32), 0,
                        2/*#VTs*/, MVT::i64, MVT::i32, 2/*#Ops*/, 0, 2, 
                    // Src: (sub:i64 GR64:i64:$src1, (imm:i64)<<P:Predicate_i64immSExt32>>:$src2) - Complexity = 7
                    // Dst: (SUB64ri32:i64:i32 GR64:i64:$src1, (imm:i64)<<P:Predicate_i64immSExt32>>:$src2)
/*60344*/         /*Scope*/ 45, /*->60390*/
/*60345*/           OPC_MoveParent,
/*60346*/           OPC_SwitchType /*3 cases */, 12,  MVT::i8,// ->60361
/*60349*/             OPC_EmitConvertToTarget, 1,
/*60351*/             OPC_MorphNodeTo, TARGET_VAL(X86::SUB8ri), 0,
                          2/*#VTs*/, MVT::i8, MVT::i32, 2/*#Ops*/, 0, 2, 
                      // Src: (sub:i8 GR8:i8:$src1, (imm:i8):$src2) - Complexity = 6
                      // Dst: (SUB8ri:i8:i32 GR8:i8:$src1, (imm:i8):$src2)
                    /*SwitchType*/ 12,  MVT::i16,// ->60375
/*60363*/             OPC_EmitConvertToTarget, 1,
/*60365*/             OPC_MorphNodeTo, TARGET_VAL(X86::SUB16ri), 0,
                          2/*#VTs*/, MVT::i16, MVT::i32, 2/*#Ops*/, 0, 2, 
                      // Src: (sub:i16 GR16:i16:$src1, (imm:i16):$src2) - Complexity = 6
                      // Dst: (SUB16ri:i16:i32 GR16:i16:$src1, (imm:i16):$src2)
                    /*SwitchType*/ 12,  MVT::i32,// ->60389
/*60377*/             OPC_EmitConvertToTarget, 1,
/*60379*/             OPC_MorphNodeTo, TARGET_VAL(X86::SUB32ri), 0,
                          2/*#VTs*/, MVT::i32, MVT::i32, 2/*#Ops*/, 0, 2, 
                      // Src: (sub:i32 GR32:i32:$src1, (imm:i32):$src2) - Complexity = 6
                      // Dst: (SUB32ri:i32:i32 GR32:i32:$src1, (imm:i32):$src2)
                    0, // EndSwitchType
/*60390*/         0, /*End of Scope*/
/*60391*/       /*Scope*/ 12, /*->60404*/
/*60392*/         OPC_CheckType, MVT::i8,
/*60394*/         OPC_MorphNodeTo, TARGET_VAL(X86::SUB8rr), 0,
                      2/*#VTs*/, MVT::i8, MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (sub:i8 GR8:i8:$src1, GR8:i8:$src2) - Complexity = 3
                  // Dst: (SUB8rr:i8:i32 GR8:i8:$src1, GR8:i8:$src2)
/*60404*/       /*Scope*/ 12, /*->60417*/
/*60405*/         OPC_CheckType, MVT::i16,
/*60407*/         OPC_MorphNodeTo, TARGET_VAL(X86::SUB16rr), 0,
                      2/*#VTs*/, MVT::i16, MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (sub:i16 GR16:i16:$src1, GR16:i16:$src2) - Complexity = 3
                  // Dst: (SUB16rr:i16:i32 GR16:i16:$src1, GR16:i16:$src2)
/*60417*/       /*Scope*/ 12, /*->60430*/
/*60418*/         OPC_CheckType, MVT::i32,
/*60420*/         OPC_MorphNodeTo, TARGET_VAL(X86::SUB32rr), 0,
                      2/*#VTs*/, MVT::i32, MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (sub:i32 GR32:i32:$src1, GR32:i32:$src2) - Complexity = 3
                  // Dst: (SUB32rr:i32:i32 GR32:i32:$src1, GR32:i32:$src2)
/*60430*/       /*Scope*/ 12, /*->60443*/
/*60431*/         OPC_CheckType, MVT::i64,
/*60433*/         OPC_MorphNodeTo, TARGET_VAL(X86::SUB64rr), 0,
                      2/*#VTs*/, MVT::i64, MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (sub:i64 GR64:i64:$src1, GR64:i64:$src2) - Complexity = 3
                  // Dst: (SUB64rr:i64:i32 GR64:i64:$src1, GR64:i64:$src2)
/*60443*/       0, /*End of Scope*/
/*60444*/     /*Scope*/ 91|128,1/*219*/, /*->60665*/
/*60446*/       OPC_MoveChild, 1,
/*60448*/       OPC_SwitchOpcode /*2 cases */, 25|128,1/*153*/,  TARGET_VAL(ISD::BITCAST),// ->60606
/*60453*/         OPC_MoveChild, 0,
/*60455*/         OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*60458*/         OPC_RecordMemRef,
/*60459*/         OPC_RecordNode, // #1 = 'ld' chained node
/*60460*/         OPC_CheckFoldableChainNode,
/*60461*/         OPC_RecordChild1, // #2 = $src2
/*60462*/         OPC_CheckPredicate, 2, // Predicate_unindexedload
/*60464*/         OPC_CheckPredicate, 3, // Predicate_load
/*60466*/         OPC_CheckPredicate, 23, // Predicate_memop
/*60468*/         OPC_CheckType, MVT::v2i64,
/*60470*/         OPC_MoveParent,
/*60471*/         OPC_MoveParent,
/*60472*/         OPC_SwitchType /*3 cases */, 42,  MVT::v16i8,// ->60517
/*60475*/           OPC_Scope, 19, /*->60496*/ // 2 children in Scope
/*60477*/             OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*60479*/             OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*60482*/             OPC_EmitMergeInputChains1_1,
/*60483*/             OPC_MorphNodeTo, TARGET_VAL(X86::VPSUBBrm), 0|OPFL_Chain|OPFL_MemRefs,
                          1/*#VTs*/, MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (sub:v16i8 VR128:v16i8:$src1, (bitconvert:v16i8 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 28
                      // Dst: (VPSUBBrm:v16i8 VR128:v16i8:$src1, addr:iPTR:$src2)
/*60496*/           /*Scope*/ 19, /*->60516*/
/*60497*/             OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*60499*/             OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*60502*/             OPC_EmitMergeInputChains1_1,
/*60503*/             OPC_MorphNodeTo, TARGET_VAL(X86::PSUBBrm), 0|OPFL_Chain|OPFL_MemRefs,
                          1/*#VTs*/, MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (sub:v16i8 VR128:v16i8:$src1, (bitconvert:v16i8 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 28
                      // Dst: (PSUBBrm:v16i8 VR128:v16i8:$src1, addr:iPTR:$src2)
/*60516*/           0, /*End of Scope*/
                  /*SwitchType*/ 42,  MVT::v8i16,// ->60561
/*60519*/           OPC_Scope, 19, /*->60540*/ // 2 children in Scope
/*60521*/             OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*60523*/             OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*60526*/             OPC_EmitMergeInputChains1_1,
/*60527*/             OPC_MorphNodeTo, TARGET_VAL(X86::VPSUBWrm), 0|OPFL_Chain|OPFL_MemRefs,
                          1/*#VTs*/, MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (sub:v8i16 VR128:v8i16:$src1, (bitconvert:v8i16 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 28
                      // Dst: (VPSUBWrm:v8i16 VR128:v8i16:$src1, addr:iPTR:$src2)
/*60540*/           /*Scope*/ 19, /*->60560*/
/*60541*/             OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*60543*/             OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*60546*/             OPC_EmitMergeInputChains1_1,
/*60547*/             OPC_MorphNodeTo, TARGET_VAL(X86::PSUBWrm), 0|OPFL_Chain|OPFL_MemRefs,
                          1/*#VTs*/, MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (sub:v8i16 VR128:v8i16:$src1, (bitconvert:v8i16 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 28
                      // Dst: (PSUBWrm:v8i16 VR128:v8i16:$src1, addr:iPTR:$src2)
/*60560*/           0, /*End of Scope*/
                  /*SwitchType*/ 42,  MVT::v4i32,// ->60605
/*60563*/           OPC_Scope, 19, /*->60584*/ // 2 children in Scope
/*60565*/             OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*60567*/             OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*60570*/             OPC_EmitMergeInputChains1_1,
/*60571*/             OPC_MorphNodeTo, TARGET_VAL(X86::VPSUBDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          1/*#VTs*/, MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (sub:v4i32 VR128:v4i32:$src1, (bitconvert:v4i32 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 28
                      // Dst: (VPSUBDrm:v4i32 VR128:v4i32:$src1, addr:iPTR:$src2)
/*60584*/           /*Scope*/ 19, /*->60604*/
/*60585*/             OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*60587*/             OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*60590*/             OPC_EmitMergeInputChains1_1,
/*60591*/             OPC_MorphNodeTo, TARGET_VAL(X86::PSUBDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          1/*#VTs*/, MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (sub:v4i32 VR128:v4i32:$src1, (bitconvert:v4i32 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 28
                      // Dst: (PSUBDrm:v4i32 VR128:v4i32:$src1, addr:iPTR:$src2)
/*60604*/           0, /*End of Scope*/
                  0, // EndSwitchType
                /*SwitchOpcode*/ 55,  TARGET_VAL(ISD::LOAD),// ->60664
/*60609*/         OPC_RecordMemRef,
/*60610*/         OPC_RecordNode, // #1 = 'ld' chained node
/*60611*/         OPC_CheckFoldableChainNode,
/*60612*/         OPC_RecordChild1, // #2 = $src2
/*60613*/         OPC_CheckPredicate, 2, // Predicate_unindexedload
/*60615*/         OPC_CheckPredicate, 3, // Predicate_load
/*60617*/         OPC_CheckPredicate, 23, // Predicate_memop
/*60619*/         OPC_MoveParent,
/*60620*/         OPC_CheckType, MVT::v2i64,
/*60622*/         OPC_Scope, 19, /*->60643*/ // 2 children in Scope
/*60624*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*60626*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*60629*/           OPC_EmitMergeInputChains1_1,
/*60630*/           OPC_MorphNodeTo, TARGET_VAL(X86::VPSUBQrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (sub:v2i64 VR128:v2i64:$src1, (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                    // Dst: (VPSUBQrm:v2i64 VR128:v2i64:$src1, addr:iPTR:$src2)
/*60643*/         /*Scope*/ 19, /*->60663*/
/*60644*/           OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*60646*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*60649*/           OPC_EmitMergeInputChains1_1,
/*60650*/           OPC_MorphNodeTo, TARGET_VAL(X86::PSUBQrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (sub:v2i64 VR128:v2i64:$src1, (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                    // Dst: (PSUBQrm:v2i64 VR128:v2i64:$src1, addr:iPTR:$src2)
/*60663*/         0, /*End of Scope*/
                0, // EndSwitchOpcode
/*60665*/     /*Scope*/ 115, /*->60781*/
/*60666*/       OPC_RecordChild1, // #1 = $src2
/*60667*/       OPC_SwitchType /*4 cases */, 26,  MVT::v16i8,// ->60696
/*60670*/         OPC_Scope, 11, /*->60683*/ // 2 children in Scope
/*60672*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*60674*/           OPC_MorphNodeTo, TARGET_VAL(X86::VPSUBBrr), 0,
                        1/*#VTs*/, MVT::v16i8, 2/*#Ops*/, 0, 1, 
                    // Src: (sub:v16i8 VR128:v16i8:$src1, VR128:v16i8:$src2) - Complexity = 3
                    // Dst: (VPSUBBrr:v16i8 VR128:v16i8:$src1, VR128:v16i8:$src2)
/*60683*/         /*Scope*/ 11, /*->60695*/
/*60684*/           OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*60686*/           OPC_MorphNodeTo, TARGET_VAL(X86::PSUBBrr), 0,
                        1/*#VTs*/, MVT::v16i8, 2/*#Ops*/, 0, 1, 
                    // Src: (sub:v16i8 VR128:v16i8:$src1, VR128:v16i8:$src2) - Complexity = 3
                    // Dst: (PSUBBrr:v16i8 VR128:v16i8:$src1, VR128:v16i8:$src2)
/*60695*/         0, /*End of Scope*/
                /*SwitchType*/ 26,  MVT::v8i16,// ->60724
/*60698*/         OPC_Scope, 11, /*->60711*/ // 2 children in Scope
/*60700*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*60702*/           OPC_MorphNodeTo, TARGET_VAL(X86::VPSUBWrr), 0,
                        1/*#VTs*/, MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (sub:v8i16 VR128:v8i16:$src1, VR128:v8i16:$src2) - Complexity = 3
                    // Dst: (VPSUBWrr:v8i16 VR128:v8i16:$src1, VR128:v8i16:$src2)
/*60711*/         /*Scope*/ 11, /*->60723*/
/*60712*/           OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*60714*/           OPC_MorphNodeTo, TARGET_VAL(X86::PSUBWrr), 0,
                        1/*#VTs*/, MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (sub:v8i16 VR128:v8i16:$src1, VR128:v8i16:$src2) - Complexity = 3
                    // Dst: (PSUBWrr:v8i16 VR128:v8i16:$src1, VR128:v8i16:$src2)
/*60723*/         0, /*End of Scope*/
                /*SwitchType*/ 26,  MVT::v4i32,// ->60752
/*60726*/         OPC_Scope, 11, /*->60739*/ // 2 children in Scope
/*60728*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*60730*/           OPC_MorphNodeTo, TARGET_VAL(X86::VPSUBDrr), 0,
                        1/*#VTs*/, MVT::v4i32, 2/*#Ops*/, 0, 1, 
                    // Src: (sub:v4i32 VR128:v4i32:$src1, VR128:v4i32:$src2) - Complexity = 3
                    // Dst: (VPSUBDrr:v4i32 VR128:v4i32:$src1, VR128:v4i32:$src2)
/*60739*/         /*Scope*/ 11, /*->60751*/
/*60740*/           OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*60742*/           OPC_MorphNodeTo, TARGET_VAL(X86::PSUBDrr), 0,
                        1/*#VTs*/, MVT::v4i32, 2/*#Ops*/, 0, 1, 
                    // Src: (sub:v4i32 VR128:v4i32:$src1, VR128:v4i32:$src2) - Complexity = 3
                    // Dst: (PSUBDrr:v4i32 VR128:v4i32:$src1, VR128:v4i32:$src2)
/*60751*/         0, /*End of Scope*/
                /*SwitchType*/ 26,  MVT::v2i64,// ->60780
/*60754*/         OPC_Scope, 11, /*->60767*/ // 2 children in Scope
/*60756*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*60758*/           OPC_MorphNodeTo, TARGET_VAL(X86::VPSUBQrr), 0,
                        1/*#VTs*/, MVT::v2i64, 2/*#Ops*/, 0, 1, 
                    // Src: (sub:v2i64 VR128:v2i64:$src1, VR128:v2i64:$src2) - Complexity = 3
                    // Dst: (VPSUBQrr:v2i64 VR128:v2i64:$src1, VR128:v2i64:$src2)
/*60767*/         /*Scope*/ 11, /*->60779*/
/*60768*/           OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*60770*/           OPC_MorphNodeTo, TARGET_VAL(X86::PSUBQrr), 0,
                        1/*#VTs*/, MVT::v2i64, 2/*#Ops*/, 0, 1, 
                    // Src: (sub:v2i64 VR128:v2i64:$src1, VR128:v2i64:$src2) - Complexity = 3
                    // Dst: (PSUBQrr:v2i64 VR128:v2i64:$src1, VR128:v2i64:$src2)
/*60779*/         0, /*End of Scope*/
                0, // EndSwitchType
/*60781*/     0, /*End of Scope*/
/*60782*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 5|128,10/*1285*/,  TARGET_VAL(ISD::OR),// ->62072
/*60787*/   OPC_Scope, 110, /*->60899*/ // 8 children in Scope
/*60789*/     OPC_RecordChild0, // #0 = $src1
/*60790*/     OPC_MoveChild, 1,
/*60792*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*60795*/     OPC_RecordMemRef,
/*60796*/     OPC_RecordNode, // #1 = 'ld' chained node
/*60797*/     OPC_CheckFoldableChainNode,
/*60798*/     OPC_RecordChild1, // #2 = $src2
/*60799*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*60801*/     OPC_Scope, 23, /*->60826*/ // 4 children in Scope
/*60803*/       OPC_CheckPredicate, 3, // Predicate_load
/*60805*/       OPC_MoveParent,
/*60806*/       OPC_CheckType, MVT::i8,
/*60808*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*60811*/       OPC_EmitMergeInputChains1_1,
/*60812*/       OPC_MorphNodeTo, TARGET_VAL(X86::OR8rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2/*#VTs*/, MVT::i8, MVT::i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (or:i8 GR8:i8:$src1, (ld:i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                // Dst: (OR8rm:i8:i32 GR8:i8:$src1, addr:iPTR:$src2)
/*60826*/     /*Scope*/ 23, /*->60850*/
/*60827*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*60829*/       OPC_MoveParent,
/*60830*/       OPC_CheckType, MVT::i16,
/*60832*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*60835*/       OPC_EmitMergeInputChains1_1,
/*60836*/       OPC_MorphNodeTo, TARGET_VAL(X86::OR16rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2/*#VTs*/, MVT::i16, MVT::i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (or:i16 GR16:i16:$src1, (ld:i16 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>) - Complexity = 25
                // Dst: (OR16rm:i16:i32 GR16:i16:$src1, addr:iPTR:$src2)
/*60850*/     /*Scope*/ 23, /*->60874*/
/*60851*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*60853*/       OPC_MoveParent,
/*60854*/       OPC_CheckType, MVT::i32,
/*60856*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*60859*/       OPC_EmitMergeInputChains1_1,
/*60860*/       OPC_MorphNodeTo, TARGET_VAL(X86::OR32rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2/*#VTs*/, MVT::i32, MVT::i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (or:i32 GR32:i32:$src1, (ld:i32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>) - Complexity = 25
                // Dst: (OR32rm:i32:i32 GR32:i32:$src1, addr:iPTR:$src2)
/*60874*/     /*Scope*/ 23, /*->60898*/
/*60875*/       OPC_CheckPredicate, 3, // Predicate_load
/*60877*/       OPC_MoveParent,
/*60878*/       OPC_CheckType, MVT::i64,
/*60880*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*60883*/       OPC_EmitMergeInputChains1_1,
/*60884*/       OPC_MorphNodeTo, TARGET_VAL(X86::OR64rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2/*#VTs*/, MVT::i64, MVT::i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (or:i64 GR64:i64:$src1, (ld:i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                // Dst: (OR64rm:i64:i32 GR64:i64:$src1, addr:iPTR:$src2)
/*60898*/     0, /*End of Scope*/
/*60899*/   /*Scope*/ 113, /*->61013*/
/*60900*/     OPC_MoveChild, 0,
/*60902*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*60905*/     OPC_RecordMemRef,
/*60906*/     OPC_RecordNode, // #0 = 'ld' chained node
/*60907*/     OPC_CheckFoldableChainNode,
/*60908*/     OPC_RecordChild1, // #1 = $src2
/*60909*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*60911*/     OPC_Scope, 24, /*->60937*/ // 4 children in Scope
/*60913*/       OPC_CheckPredicate, 3, // Predicate_load
/*60915*/       OPC_MoveParent,
/*60916*/       OPC_RecordChild1, // #2 = $src1
/*60917*/       OPC_CheckType, MVT::i8,
/*60919*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*60922*/       OPC_EmitMergeInputChains1_0,
/*60923*/       OPC_MorphNodeTo, TARGET_VAL(X86::OR8rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2/*#VTs*/, MVT::i8, MVT::i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                // Src: (or:i8 (ld:i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, GR8:i8:$src1) - Complexity = 25
                // Dst: (OR8rm:i8:i32 GR8:i8:$src1, addr:iPTR:$src2)
/*60937*/     /*Scope*/ 24, /*->60962*/
/*60938*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*60940*/       OPC_MoveParent,
/*60941*/       OPC_RecordChild1, // #2 = $src1
/*60942*/       OPC_CheckType, MVT::i16,
/*60944*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*60947*/       OPC_EmitMergeInputChains1_0,
/*60948*/       OPC_MorphNodeTo, TARGET_VAL(X86::OR16rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2/*#VTs*/, MVT::i16, MVT::i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                // Src: (or:i16 (ld:i16 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>, GR16:i16:$src1) - Complexity = 25
                // Dst: (OR16rm:i16:i32 GR16:i16:$src1, addr:iPTR:$src2)
/*60962*/     /*Scope*/ 24, /*->60987*/
/*60963*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*60965*/       OPC_MoveParent,
/*60966*/       OPC_RecordChild1, // #2 = $src1
/*60967*/       OPC_CheckType, MVT::i32,
/*60969*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*60972*/       OPC_EmitMergeInputChains1_0,
/*60973*/       OPC_MorphNodeTo, TARGET_VAL(X86::OR32rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2/*#VTs*/, MVT::i32, MVT::i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                // Src: (or:i32 (ld:i32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>, GR32:i32:$src1) - Complexity = 25
                // Dst: (OR32rm:i32:i32 GR32:i32:$src1, addr:iPTR:$src2)
/*60987*/     /*Scope*/ 24, /*->61012*/
/*60988*/       OPC_CheckPredicate, 3, // Predicate_load
/*60990*/       OPC_MoveParent,
/*60991*/       OPC_RecordChild1, // #2 = $src1
/*60992*/       OPC_CheckType, MVT::i64,
/*60994*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*60997*/       OPC_EmitMergeInputChains1_0,
/*60998*/       OPC_MorphNodeTo, TARGET_VAL(X86::OR64rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2/*#VTs*/, MVT::i64, MVT::i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                // Src: (or:i64 (ld:i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, GR64:i64:$src1) - Complexity = 25
                // Dst: (OR64rm:i64:i32 GR64:i64:$src1, addr:iPTR:$src2)
/*61012*/     0, /*End of Scope*/
/*61013*/   /*Scope*/ 60, /*->61074*/
/*61014*/     OPC_RecordNode, // #0 = $src
/*61015*/     OPC_SwitchType /*2 cases */, 38,  MVT::i32,// ->61056
/*61018*/       OPC_Scope, 17, /*->61037*/ // 2 children in Scope
/*61020*/         OPC_CheckPatternPredicate, 3, // (!Subtarget->is64Bit())
/*61022*/         OPC_CheckComplexPat, /*CP*/3, /*#*/0, // SelectLEAAddr:$src #1 #2 #3 #4 #5
/*61025*/         OPC_MorphNodeTo, TARGET_VAL(X86::LEA32r), 0,
                      1/*#VTs*/, MVT::i32, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                  // Src: lea32addr:i32:$src - Complexity = 18
                  // Dst: (LEA32r:i32 lea32addr:i32:$src)
/*61037*/       /*Scope*/ 17, /*->61055*/
/*61038*/         OPC_CheckPatternPredicate, 4, // (Subtarget->is64Bit())
/*61040*/         OPC_CheckComplexPat, /*CP*/3, /*#*/0, // SelectLEAAddr:$src #1 #2 #3 #4 #5
/*61043*/         OPC_MorphNodeTo, TARGET_VAL(X86::LEA64_32r), 0,
                      1/*#VTs*/, MVT::i32, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                  // Src: lea32addr:i32:$src - Complexity = 18
                  // Dst: (LEA64_32r:i32 lea32addr:i32:$src)
/*61055*/       0, /*End of Scope*/
              /*SwitchType*/ 15,  MVT::i64,// ->61073
/*61058*/       OPC_CheckComplexPat, /*CP*/4, /*#*/0, // SelectLEAAddr:$src #1 #2 #3 #4 #5
/*61061*/       OPC_MorphNodeTo, TARGET_VAL(X86::LEA64r), 0,
                    1/*#VTs*/, MVT::i64, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                // Src: lea64addr:i64:$src - Complexity = 18
                // Dst: (LEA64r:i64 lea64addr:i64:$src)
              0, // EndSwitchType
/*61074*/   /*Scope*/ 89|128,2/*345*/, /*->61421*/
/*61076*/     OPC_RecordChild0, // #0 = $src1
/*61077*/     OPC_RecordChild1, // #1 = $src2
/*61078*/     OPC_Scope, 121, /*->61201*/ // 7 children in Scope
/*61080*/       OPC_MoveChild, 1,
/*61082*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*61085*/       OPC_Scope, 19, /*->61106*/ // 5 children in Scope
/*61087*/         OPC_CheckPredicate, 8, // Predicate_i16immSExt8
/*61089*/         OPC_MoveParent,
/*61090*/         OPC_CheckPredicate, 25, // Predicate_or_is_add
/*61092*/         OPC_CheckType, MVT::i16,
/*61094*/         OPC_EmitConvertToTarget, 1,
/*61096*/         OPC_MorphNodeTo, TARGET_VAL(X86::ADD16ri8_DB), 0,
                      2/*#VTs*/, MVT::i16, MVT::i32, 2/*#Ops*/, 0, 2, 
                  // Src: (or:i16 GR16:i16:$src1, (imm:i16)<<P:Predicate_i16immSExt8>>:$src2)<<P:Predicate_or_is_add>> - Complexity = 13
                  // Dst: (ADD16ri8_DB:i16:i32 GR16:i16:$src1, (imm:i16):$src2)
/*61106*/       /*Scope*/ 19, /*->61126*/
/*61107*/         OPC_CheckPredicate, 9, // Predicate_i32immSExt8
/*61109*/         OPC_MoveParent,
/*61110*/         OPC_CheckPredicate, 25, // Predicate_or_is_add
/*61112*/         OPC_CheckType, MVT::i32,
/*61114*/         OPC_EmitConvertToTarget, 1,
/*61116*/         OPC_MorphNodeTo, TARGET_VAL(X86::ADD32ri8_DB), 0,
                      2/*#VTs*/, MVT::i32, MVT::i32, 2/*#Ops*/, 0, 2, 
                  // Src: (or:i32 GR32:i32:$src1, (imm:i32)<<P:Predicate_i32immSExt8>>:$src2)<<P:Predicate_or_is_add>> - Complexity = 13
                  // Dst: (ADD32ri8_DB:i32:i32 GR32:i32:$src1, (imm:i32):$src2)
/*61126*/       /*Scope*/ 19, /*->61146*/
/*61127*/         OPC_CheckPredicate, 10, // Predicate_i64immSExt8
/*61129*/         OPC_MoveParent,
/*61130*/         OPC_CheckPredicate, 25, // Predicate_or_is_add
/*61132*/         OPC_CheckType, MVT::i64,
/*61134*/         OPC_EmitConvertToTarget, 1,
/*61136*/         OPC_MorphNodeTo, TARGET_VAL(X86::ADD64ri8_DB), 0,
                      2/*#VTs*/, MVT::i64, MVT::i32, 2/*#Ops*/, 0, 2, 
                  // Src: (or:i64 GR64:i64:$src1, (imm:i64)<<P:Predicate_i64immSExt8>>:$src2)<<P:Predicate_or_is_add>> - Complexity = 13
                  // Dst: (ADD64ri8_DB:i64:i32 GR64:i64:$src1, (imm:i64):$src2)
/*61146*/       /*Scope*/ 19, /*->61166*/
/*61147*/         OPC_CheckPredicate, 11, // Predicate_i64immSExt32
/*61149*/         OPC_MoveParent,
/*61150*/         OPC_CheckPredicate, 25, // Predicate_or_is_add
/*61152*/         OPC_CheckType, MVT::i64,
/*61154*/         OPC_EmitConvertToTarget, 1,
/*61156*/         OPC_MorphNodeTo, TARGET_VAL(X86::ADD64ri32_DB), 0,
                      2/*#VTs*/, MVT::i64, MVT::i32, 2/*#Ops*/, 0, 2, 
                  // Src: (or:i64 GR64:i64:$src1, (imm:i64)<<P:Predicate_i64immSExt32>>:$src2)<<P:Predicate_or_is_add>> - Complexity = 13
                  // Dst: (ADD64ri32_DB:i64:i32 GR64:i64:$src1, (imm:i64):$src2)
/*61166*/       /*Scope*/ 33, /*->61200*/
/*61167*/         OPC_MoveParent,
/*61168*/         OPC_CheckPredicate, 25, // Predicate_or_is_add
/*61170*/         OPC_SwitchType /*2 cases */, 12,  MVT::i16,// ->61185
/*61173*/           OPC_EmitConvertToTarget, 1,
/*61175*/           OPC_MorphNodeTo, TARGET_VAL(X86::ADD16ri_DB), 0,
                        2/*#VTs*/, MVT::i16, MVT::i32, 2/*#Ops*/, 0, 2, 
                    // Src: (or:i16 GR16:i16:$src1, (imm:i16):$src2)<<P:Predicate_or_is_add>> - Complexity = 12
                    // Dst: (ADD16ri_DB:i16:i32 GR16:i16:$src1, (imm:i16):$src2)
                  /*SwitchType*/ 12,  MVT::i32,// ->61199
/*61187*/           OPC_EmitConvertToTarget, 1,
/*61189*/           OPC_MorphNodeTo, TARGET_VAL(X86::ADD32ri_DB), 0,
                        2/*#VTs*/, MVT::i32, MVT::i32, 2/*#Ops*/, 0, 2, 
                    // Src: (or:i32 GR32:i32:$src1, (imm:i32):$src2)<<P:Predicate_or_is_add>> - Complexity = 12
                    // Dst: (ADD32ri_DB:i32:i32 GR32:i32:$src1, (imm:i32):$src2)
                  0, // EndSwitchType
/*61200*/       0, /*End of Scope*/
/*61201*/     /*Scope*/ 40, /*->61242*/
/*61202*/       OPC_CheckPredicate, 25, // Predicate_or_is_add
/*61204*/       OPC_SwitchType /*3 cases */, 10,  MVT::i16,// ->61217
/*61207*/         OPC_MorphNodeTo, TARGET_VAL(X86::ADD16rr_DB), 0,
                      2/*#VTs*/, MVT::i16, MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (or:i16 GR16:i16:$src1, GR16:i16:$src2)<<P:Predicate_or_is_add>> - Complexity = 9
                  // Dst: (ADD16rr_DB:i16:i32 GR16:i16:$src1, GR16:i16:$src2)
                /*SwitchType*/ 10,  MVT::i32,// ->61229
/*61219*/         OPC_MorphNodeTo, TARGET_VAL(X86::ADD32rr_DB), 0,
                      2/*#VTs*/, MVT::i32, MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (or:i32 GR32:i32:$src1, GR32:i32:$src2)<<P:Predicate_or_is_add>> - Complexity = 9
                  // Dst: (ADD32rr_DB:i32:i32 GR32:i32:$src1, GR32:i32:$src2)
                /*SwitchType*/ 10,  MVT::i64,// ->61241
/*61231*/         OPC_MorphNodeTo, TARGET_VAL(X86::ADD64rr_DB), 0,
                      2/*#VTs*/, MVT::i64, MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (or:i64 GR64:i64:$src1, GR64:i64:$src2)<<P:Predicate_or_is_add>> - Complexity = 9
                  // Dst: (ADD64rr_DB:i64:i32 GR64:i64:$src1, GR64:i64:$src2)
                0, // EndSwitchType
/*61242*/     /*Scope*/ 125, /*->61368*/
/*61243*/       OPC_MoveChild, 1,
/*61245*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*61248*/       OPC_Scope, 17, /*->61267*/ // 5 children in Scope
/*61250*/         OPC_CheckPredicate, 8, // Predicate_i16immSExt8
/*61252*/         OPC_MoveParent,
/*61253*/         OPC_CheckType, MVT::i16,
/*61255*/         OPC_EmitConvertToTarget, 1,
/*61257*/         OPC_MorphNodeTo, TARGET_VAL(X86::OR16ri8), 0,
                      2/*#VTs*/, MVT::i16, MVT::i32, 2/*#Ops*/, 0, 2, 
                  // Src: (or:i16 GR16:i16:$src1, (imm:i16)<<P:Predicate_i16immSExt8>>:$src2) - Complexity = 7
                  // Dst: (OR16ri8:i16:i32 GR16:i16:$src1, (imm:i16)<<P:Predicate_i16immSExt8>>:$src2)
/*61267*/       /*Scope*/ 17, /*->61285*/
/*61268*/         OPC_CheckPredicate, 9, // Predicate_i32immSExt8
/*61270*/         OPC_MoveParent,
/*61271*/         OPC_CheckType, MVT::i32,
/*61273*/         OPC_EmitConvertToTarget, 1,
/*61275*/         OPC_MorphNodeTo, TARGET_VAL(X86::OR32ri8), 0,
                      2/*#VTs*/, MVT::i32, MVT::i32, 2/*#Ops*/, 0, 2, 
                  // Src: (or:i32 GR32:i32:$src1, (imm:i32)<<P:Predicate_i32immSExt8>>:$src2) - Complexity = 7
                  // Dst: (OR32ri8:i32:i32 GR32:i32:$src1, (imm:i32)<<P:Predicate_i32immSExt8>>:$src2)
/*61285*/       /*Scope*/ 17, /*->61303*/
/*61286*/         OPC_CheckPredicate, 10, // Predicate_i64immSExt8
/*61288*/         OPC_MoveParent,
/*61289*/         OPC_CheckType, MVT::i64,
/*61291*/         OPC_EmitConvertToTarget, 1,
/*61293*/         OPC_MorphNodeTo, TARGET_VAL(X86::OR64ri8), 0,
                      2/*#VTs*/, MVT::i64, MVT::i32, 2/*#Ops*/, 0, 2, 
                  // Src: (or:i64 GR64:i64:$src1, (imm:i64)<<P:Predicate_i64immSExt8>>:$src2) - Complexity = 7
                  // Dst: (OR64ri8:i64:i32 GR64:i64:$src1, (imm:i64)<<P:Predicate_i64immSExt8>>:$src2)
/*61303*/       /*Scope*/ 17, /*->61321*/
/*61304*/         OPC_CheckPredicate, 11, // Predicate_i64immSExt32
/*61306*/         OPC_MoveParent,
/*61307*/         OPC_CheckType, MVT::i64,
/*61309*/         OPC_EmitConvertToTarget, 1,
/*61311*/         OPC_MorphNodeTo, TARGET_VAL(X86::OR64ri32), 0,
                      2/*#VTs*/, MVT::i64, MVT::i32, 2/*#Ops*/, 0, 2, 
                  // Src: (or:i64 GR64:i64:$src1, (imm:i64)<<P:Predicate_i64immSExt32>>:$src2) - Complexity = 7
                  // Dst: (OR64ri32:i64:i32 GR64:i64:$src1, (imm:i64)<<P:Predicate_i64immSExt32>>:$src2)
/*61321*/       /*Scope*/ 45, /*->61367*/
/*61322*/         OPC_MoveParent,
/*61323*/         OPC_SwitchType /*3 cases */, 12,  MVT::i8,// ->61338
/*61326*/           OPC_EmitConvertToTarget, 1,
/*61328*/           OPC_MorphNodeTo, TARGET_VAL(X86::OR8ri), 0,
                        2/*#VTs*/, MVT::i8, MVT::i32, 2/*#Ops*/, 0, 2, 
                    // Src: (or:i8 GR8:i8:$src1, (imm:i8):$src2) - Complexity = 6
                    // Dst: (OR8ri:i8:i32 GR8:i8:$src1, (imm:i8):$src2)
                  /*SwitchType*/ 12,  MVT::i16,// ->61352
/*61340*/           OPC_EmitConvertToTarget, 1,
/*61342*/           OPC_MorphNodeTo, TARGET_VAL(X86::OR16ri), 0,
                        2/*#VTs*/, MVT::i16, MVT::i32, 2/*#Ops*/, 0, 2, 
                    // Src: (or:i16 GR16:i16:$src1, (imm:i16):$src2) - Complexity = 6
                    // Dst: (OR16ri:i16:i32 GR16:i16:$src1, (imm:i16):$src2)
                  /*SwitchType*/ 12,  MVT::i32,// ->61366
/*61354*/           OPC_EmitConvertToTarget, 1,
/*61356*/           OPC_MorphNodeTo, TARGET_VAL(X86::OR32ri), 0,
                        2/*#VTs*/, MVT::i32, MVT::i32, 2/*#Ops*/, 0, 2, 
                    // Src: (or:i32 GR32:i32:$src1, (imm:i32):$src2) - Complexity = 6
                    // Dst: (OR32ri:i32:i32 GR32:i32:$src1, (imm:i32):$src2)
                  0, // EndSwitchType
/*61367*/       0, /*End of Scope*/
/*61368*/     /*Scope*/ 12, /*->61381*/
/*61369*/       OPC_CheckType, MVT::i8,
/*61371*/       OPC_MorphNodeTo, TARGET_VAL(X86::OR8rr), 0,
                    2/*#VTs*/, MVT::i8, MVT::i32, 2/*#Ops*/, 0, 1, 
                // Src: (or:i8 GR8:i8:$src1, GR8:i8:$src2) - Complexity = 3
                // Dst: (OR8rr:i8:i32 GR8:i8:$src1, GR8:i8:$src2)
/*61381*/     /*Scope*/ 12, /*->61394*/
/*61382*/       OPC_CheckType, MVT::i16,
/*61384*/       OPC_MorphNodeTo, TARGET_VAL(X86::OR16rr), 0,
                    2/*#VTs*/, MVT::i16, MVT::i32, 2/*#Ops*/, 0, 1, 
                // Src: (or:i16 GR16:i16:$src1, GR16:i16:$src2) - Complexity = 3
                // Dst: (OR16rr:i16:i32 GR16:i16:$src1, GR16:i16:$src2)
/*61394*/     /*Scope*/ 12, /*->61407*/
/*61395*/       OPC_CheckType, MVT::i32,
/*61397*/       OPC_MorphNodeTo, TARGET_VAL(X86::OR32rr), 0,
                    2/*#VTs*/, MVT::i32, MVT::i32, 2/*#Ops*/, 0, 1, 
                // Src: (or:i32 GR32:i32:$src1, GR32:i32:$src2) - Complexity = 3
                // Dst: (OR32rr:i32:i32 GR32:i32:$src1, GR32:i32:$src2)
/*61407*/     /*Scope*/ 12, /*->61420*/
/*61408*/       OPC_CheckType, MVT::i64,
/*61410*/       OPC_MorphNodeTo, TARGET_VAL(X86::OR64rr), 0,
                    2/*#VTs*/, MVT::i64, MVT::i32, 2/*#Ops*/, 0, 1, 
                // Src: (or:i64 GR64:i64:$src1, GR64:i64:$src2) - Complexity = 3
                // Dst: (OR64rr:i64:i32 GR64:i64:$src1, GR64:i64:$src2)
/*61420*/     0, /*End of Scope*/
/*61421*/   /*Scope*/ 6|128,3/*390*/, /*->61813*/
/*61423*/     OPC_MoveChild, 0,
/*61425*/     OPC_SwitchOpcode /*2 cases */, 85|128,1/*213*/,  TARGET_VAL(ISD::BITCAST),// ->61643
/*61430*/       OPC_RecordChild0, // #0 = $src1
/*61431*/       OPC_Scope, 40, /*->61473*/ // 4 children in Scope
/*61433*/         OPC_CheckChild0Type, MVT::v8f32,
/*61435*/         OPC_MoveParent,
/*61436*/         OPC_MoveChild, 1,
/*61438*/         OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*61441*/         OPC_RecordMemRef,
/*61442*/         OPC_RecordNode, // #1 = 'ld' chained node
/*61443*/         OPC_CheckFoldableChainNode,
/*61444*/         OPC_RecordChild1, // #2 = $src2
/*61445*/         OPC_CheckPredicate, 2, // Predicate_unindexedload
/*61447*/         OPC_CheckPredicate, 3, // Predicate_load
/*61449*/         OPC_CheckPredicate, 23, // Predicate_memop
/*61451*/         OPC_MoveParent,
/*61452*/         OPC_CheckType, MVT::v4i64,
/*61454*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*61456*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*61459*/         OPC_EmitMergeInputChains1_1,
/*61460*/         OPC_MorphNodeTo, TARGET_VAL(X86::VORPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (or:v4i64 (bitconvert:v4i64 VR256:v8f32:$src1), (ld:v4i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 28
                  // Dst: (VORPSYrm:v4i64 VR256:v8f32:$src1, addr:iPTR:$src2)
/*61473*/       /*Scope*/ 40, /*->61514*/
/*61474*/         OPC_CheckChild0Type, MVT::v4f64,
/*61476*/         OPC_MoveParent,
/*61477*/         OPC_MoveChild, 1,
/*61479*/         OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*61482*/         OPC_RecordMemRef,
/*61483*/         OPC_RecordNode, // #1 = 'ld' chained node
/*61484*/         OPC_CheckFoldableChainNode,
/*61485*/         OPC_RecordChild1, // #2 = $src2
/*61486*/         OPC_CheckPredicate, 2, // Predicate_unindexedload
/*61488*/         OPC_CheckPredicate, 3, // Predicate_load
/*61490*/         OPC_CheckPredicate, 23, // Predicate_memop
/*61492*/         OPC_MoveParent,
/*61493*/         OPC_CheckType, MVT::v4i64,
/*61495*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*61497*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*61500*/         OPC_EmitMergeInputChains1_1,
/*61501*/         OPC_MorphNodeTo, TARGET_VAL(X86::VORPDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (or:v4i64 (bitconvert:v4i64 VR256:v4f64:$src1), (ld:v4i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 28
                  // Dst: (VORPDYrm:v4i64 VR256:v4f64:$src1, addr:iPTR:$src2)
/*61514*/       /*Scope*/ 63, /*->61578*/
/*61515*/         OPC_CheckChild0Type, MVT::v4f32,
/*61517*/         OPC_MoveParent,
/*61518*/         OPC_MoveChild, 1,
/*61520*/         OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*61523*/         OPC_RecordMemRef,
/*61524*/         OPC_RecordNode, // #1 = 'ld' chained node
/*61525*/         OPC_CheckFoldableChainNode,
/*61526*/         OPC_RecordChild1, // #2 = $src2
/*61527*/         OPC_CheckPredicate, 2, // Predicate_unindexedload
/*61529*/         OPC_CheckPredicate, 3, // Predicate_load
/*61531*/         OPC_CheckPredicate, 23, // Predicate_memop
/*61533*/         OPC_MoveParent,
/*61534*/         OPC_CheckType, MVT::v2i64,
/*61536*/         OPC_Scope, 19, /*->61557*/ // 2 children in Scope
/*61538*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*61540*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*61543*/           OPC_EmitMergeInputChains1_1,
/*61544*/           OPC_MorphNodeTo, TARGET_VAL(X86::VORPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (or:v2i64 (bitconvert:v2i64 VR128:v4f32:$src1), (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 28
                    // Dst: (VORPSrm:v2i64 VR128:v4f32:$src1, addr:iPTR:$src2)
/*61557*/         /*Scope*/ 19, /*->61577*/
/*61558*/           OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*61560*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*61563*/           OPC_EmitMergeInputChains1_1,
/*61564*/           OPC_MorphNodeTo, TARGET_VAL(X86::ORPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (or:v2i64 (bitconvert:v2i64 VR128:v4f32:$src1), (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 28
                    // Dst: (ORPSrm:v2i64 VR128:v4f32:$src1, addr:iPTR:$src2)
/*61577*/         0, /*End of Scope*/
/*61578*/       /*Scope*/ 63, /*->61642*/
/*61579*/         OPC_CheckChild0Type, MVT::v2f64,
/*61581*/         OPC_MoveParent,
/*61582*/         OPC_MoveChild, 1,
/*61584*/         OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*61587*/         OPC_RecordMemRef,
/*61588*/         OPC_RecordNode, // #1 = 'ld' chained node
/*61589*/         OPC_CheckFoldableChainNode,
/*61590*/         OPC_RecordChild1, // #2 = $src2
/*61591*/         OPC_CheckPredicate, 2, // Predicate_unindexedload
/*61593*/         OPC_CheckPredicate, 3, // Predicate_load
/*61595*/         OPC_CheckPredicate, 23, // Predicate_memop
/*61597*/         OPC_MoveParent,
/*61598*/         OPC_CheckType, MVT::v2i64,
/*61600*/         OPC_Scope, 19, /*->61621*/ // 2 children in Scope
/*61602*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*61604*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*61607*/           OPC_EmitMergeInputChains1_1,
/*61608*/           OPC_MorphNodeTo, TARGET_VAL(X86::VORPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (or:v2i64 (bitconvert:v2i64 VR128:v2f64:$src1), (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 28
                    // Dst: (VORPDrm:v2i64 VR128:v2f64:$src1, addr:iPTR:$src2)
/*61621*/         /*Scope*/ 19, /*->61641*/
/*61622*/           OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*61624*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*61627*/           OPC_EmitMergeInputChains1_1,
/*61628*/           OPC_MorphNodeTo, TARGET_VAL(X86::ORPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (or:v2i64 (bitconvert:v2i64 VR128:v2f64:$src1), (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 28
                    // Dst: (ORPDrm:v2i64 VR128:v2f64:$src1, addr:iPTR:$src2)
/*61641*/         0, /*End of Scope*/
/*61642*/       0, /*End of Scope*/
              /*SwitchOpcode*/ 37|128,1/*165*/,  TARGET_VAL(ISD::LOAD),// ->61812
/*61647*/       OPC_RecordMemRef,
/*61648*/       OPC_RecordNode, // #0 = 'ld' chained node
/*61649*/       OPC_CheckFoldableChainNode,
/*61650*/       OPC_RecordChild1, // #1 = $src2
/*61651*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*61653*/       OPC_CheckPredicate, 3, // Predicate_load
/*61655*/       OPC_CheckPredicate, 23, // Predicate_memop
/*61657*/       OPC_MoveParent,
/*61658*/       OPC_MoveChild, 1,
/*61660*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*61663*/       OPC_RecordChild0, // #2 = $src1
/*61664*/       OPC_Scope, 24, /*->61690*/ // 4 children in Scope
/*61666*/         OPC_CheckChild0Type, MVT::v8f32,
/*61668*/         OPC_MoveParent,
/*61669*/         OPC_CheckType, MVT::v4i64,
/*61671*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*61673*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*61676*/         OPC_EmitMergeInputChains1_0,
/*61677*/         OPC_MorphNodeTo, TARGET_VAL(X86::VORPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (or:v4i64 (ld:v4i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, (bitconvert:v4i64 VR256:v8f32:$src1)) - Complexity = 28
                  // Dst: (VORPSYrm:v4i64 VR256:v8f32:$src1, addr:iPTR:$src2)
/*61690*/       /*Scope*/ 24, /*->61715*/
/*61691*/         OPC_CheckChild0Type, MVT::v4f64,
/*61693*/         OPC_MoveParent,
/*61694*/         OPC_CheckType, MVT::v4i64,
/*61696*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*61698*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*61701*/         OPC_EmitMergeInputChains1_0,
/*61702*/         OPC_MorphNodeTo, TARGET_VAL(X86::VORPDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (or:v4i64 (ld:v4i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, (bitconvert:v4i64 VR256:v4f64:$src1)) - Complexity = 28
                  // Dst: (VORPDYrm:v4i64 VR256:v4f64:$src1, addr:iPTR:$src2)
/*61715*/       /*Scope*/ 47, /*->61763*/
/*61716*/         OPC_CheckChild0Type, MVT::v4f32,
/*61718*/         OPC_MoveParent,
/*61719*/         OPC_CheckType, MVT::v2i64,
/*61721*/         OPC_Scope, 19, /*->61742*/ // 2 children in Scope
/*61723*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*61725*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*61728*/           OPC_EmitMergeInputChains1_0,
/*61729*/           OPC_MorphNodeTo, TARGET_VAL(X86::VORPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v2i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (or:v2i64 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, (bitconvert:v2i64 VR128:v4f32:$src1)) - Complexity = 28
                    // Dst: (VORPSrm:v2i64 VR128:v4f32:$src1, addr:iPTR:$src2)
/*61742*/         /*Scope*/ 19, /*->61762*/
/*61743*/           OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*61745*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*61748*/           OPC_EmitMergeInputChains1_0,
/*61749*/           OPC_MorphNodeTo, TARGET_VAL(X86::ORPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v2i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (or:v2i64 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, (bitconvert:v2i64 VR128:v4f32:$src1)) - Complexity = 28
                    // Dst: (ORPSrm:v2i64 VR128:v4f32:$src1, addr:iPTR:$src2)
/*61762*/         0, /*End of Scope*/
/*61763*/       /*Scope*/ 47, /*->61811*/
/*61764*/         OPC_CheckChild0Type, MVT::v2f64,
/*61766*/         OPC_MoveParent,
/*61767*/         OPC_CheckType, MVT::v2i64,
/*61769*/         OPC_Scope, 19, /*->61790*/ // 2 children in Scope
/*61771*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*61773*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*61776*/           OPC_EmitMergeInputChains1_0,
/*61777*/           OPC_MorphNodeTo, TARGET_VAL(X86::VORPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v2i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (or:v2i64 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, (bitconvert:v2i64 VR128:v2f64:$src1)) - Complexity = 28
                    // Dst: (VORPDrm:v2i64 VR128:v2f64:$src1, addr:iPTR:$src2)
/*61790*/         /*Scope*/ 19, /*->61810*/
/*61791*/           OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*61793*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*61796*/           OPC_EmitMergeInputChains1_0,
/*61797*/           OPC_MorphNodeTo, TARGET_VAL(X86::ORPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v2i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (or:v2i64 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, (bitconvert:v2i64 VR128:v2f64:$src1)) - Complexity = 28
                    // Dst: (ORPDrm:v2i64 VR128:v2f64:$src1, addr:iPTR:$src2)
/*61810*/         0, /*End of Scope*/
/*61811*/       0, /*End of Scope*/
              0, // EndSwitchOpcode
/*61813*/   /*Scope*/ 61, /*->61875*/
/*61814*/     OPC_RecordChild0, // #0 = $src1
/*61815*/     OPC_MoveChild, 1,
/*61817*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*61820*/     OPC_RecordMemRef,
/*61821*/     OPC_RecordNode, // #1 = 'ld' chained node
/*61822*/     OPC_CheckFoldableChainNode,
/*61823*/     OPC_RecordChild1, // #2 = $src2
/*61824*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*61826*/     OPC_CheckPredicate, 3, // Predicate_load
/*61828*/     OPC_CheckPredicate, 23, // Predicate_memop
/*61830*/     OPC_MoveParent,
/*61831*/     OPC_CheckType, MVT::v2i64,
/*61833*/     OPC_Scope, 19, /*->61854*/ // 2 children in Scope
/*61835*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*61837*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*61840*/       OPC_EmitMergeInputChains1_1,
/*61841*/       OPC_MorphNodeTo, TARGET_VAL(X86::VPORrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (or:v2i64 VR128:v2i64:$src1, (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                // Dst: (VPORrm:v2i64 VR128:v2i64:$src1, addr:iPTR:$src2)
/*61854*/     /*Scope*/ 19, /*->61874*/
/*61855*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*61857*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*61860*/       OPC_EmitMergeInputChains1_1,
/*61861*/       OPC_MorphNodeTo, TARGET_VAL(X86::PORrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (or:v2i64 VR128:v2i64:$src1, (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                // Dst: (PORrm:v2i64 VR128:v2i64:$src1, addr:iPTR:$src2)
/*61874*/     0, /*End of Scope*/
/*61875*/   /*Scope*/ 8|128,1/*136*/, /*->62013*/
/*61877*/     OPC_MoveChild, 0,
/*61879*/     OPC_SwitchOpcode /*2 cases */, 56,  TARGET_VAL(ISD::LOAD),// ->61939
/*61883*/       OPC_RecordMemRef,
/*61884*/       OPC_RecordNode, // #0 = 'ld' chained node
/*61885*/       OPC_CheckFoldableChainNode,
/*61886*/       OPC_RecordChild1, // #1 = $src2
/*61887*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*61889*/       OPC_CheckPredicate, 3, // Predicate_load
/*61891*/       OPC_CheckPredicate, 23, // Predicate_memop
/*61893*/       OPC_MoveParent,
/*61894*/       OPC_RecordChild1, // #2 = $src1
/*61895*/       OPC_CheckType, MVT::v2i64,
/*61897*/       OPC_Scope, 19, /*->61918*/ // 2 children in Scope
/*61899*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*61901*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*61904*/         OPC_EmitMergeInputChains1_0,
/*61905*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPORrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v2i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (or:v2i64 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, VR128:v2i64:$src1) - Complexity = 25
                  // Dst: (VPORrm:v2i64 VR128:v2i64:$src1, addr:iPTR:$src2)
/*61918*/       /*Scope*/ 19, /*->61938*/
/*61919*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*61921*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*61924*/         OPC_EmitMergeInputChains1_0,
/*61925*/         OPC_MorphNodeTo, TARGET_VAL(X86::PORrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v2i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (or:v2i64 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, VR128:v2i64:$src1) - Complexity = 25
                  // Dst: (PORrm:v2i64 VR128:v2i64:$src1, addr:iPTR:$src2)
/*61938*/       0, /*End of Scope*/
              /*SwitchOpcode*/ 70,  TARGET_VAL(ISD::BITCAST),// ->62012
/*61942*/       OPC_RecordChild0, // #0 = $src1
/*61943*/       OPC_Scope, 25, /*->61970*/ // 2 children in Scope
/*61945*/         OPC_CheckChild0Type, MVT::v4f64,
/*61947*/         OPC_MoveParent,
/*61948*/         OPC_MoveChild, 1,
/*61950*/         OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*61953*/         OPC_RecordChild0, // #1 = $src2
/*61954*/         OPC_CheckChild0Type, MVT::v4f64,
/*61956*/         OPC_MoveParent,
/*61957*/         OPC_CheckType, MVT::v4i64,
/*61959*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*61961*/         OPC_MorphNodeTo, TARGET_VAL(X86::VORPDYrr), 0,
                      1/*#VTs*/, MVT::v4i64, 2/*#Ops*/, 0, 1, 
                  // Src: (or:v4i64 (bitconvert:v4i64 VR256:v4f64:$src1), (bitconvert:v4i64 VR256:v4f64:$src2)) - Complexity = 9
                  // Dst: (VORPDYrr:v4i64 VR256:v4f64:$src1, VR256:v4f64:$src2)
/*61970*/       /*Scope*/ 40, /*->62011*/
/*61971*/         OPC_CheckChild0Type, MVT::v2f64,
/*61973*/         OPC_MoveParent,
/*61974*/         OPC_MoveChild, 1,
/*61976*/         OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*61979*/         OPC_RecordChild0, // #1 = $src2
/*61980*/         OPC_CheckChild0Type, MVT::v2f64,
/*61982*/         OPC_MoveParent,
/*61983*/         OPC_CheckType, MVT::v2i64,
/*61985*/         OPC_Scope, 11, /*->61998*/ // 2 children in Scope
/*61987*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*61989*/           OPC_MorphNodeTo, TARGET_VAL(X86::VORPDrr), 0,
                        1/*#VTs*/, MVT::v2i64, 2/*#Ops*/, 0, 1, 
                    // Src: (or:v2i64 (bitconvert:v2i64 VR128:v2f64:$src1), (bitconvert:v2i64 VR128:v2f64:$src2)) - Complexity = 9
                    // Dst: (VORPDrr:v2i64 VR128:v2f64:$src1, VR128:v2f64:$src2)
/*61998*/         /*Scope*/ 11, /*->62010*/
/*61999*/           OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*62001*/           OPC_MorphNodeTo, TARGET_VAL(X86::ORPDrr), 0,
                        1/*#VTs*/, MVT::v2i64, 2/*#Ops*/, 0, 1, 
                    // Src: (or:v2i64 (bitconvert:v2i64 VR128:v2f64:$src1), (bitconvert:v2i64 VR128:v2f64:$src2)) - Complexity = 9
                    // Dst: (ORPDrr:v2i64 VR128:v2f64:$src1, VR128:v2f64:$src2)
/*62010*/         0, /*End of Scope*/
/*62011*/       0, /*End of Scope*/
              0, // EndSwitchOpcode
/*62013*/   /*Scope*/ 57, /*->62071*/
/*62014*/     OPC_RecordChild0, // #0 = $src1
/*62015*/     OPC_RecordChild1, // #1 = $src2
/*62016*/     OPC_SwitchType /*2 cases */, 11,  MVT::v4i64,// ->62030
/*62019*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*62021*/       OPC_MorphNodeTo, TARGET_VAL(X86::VORPSYrr), 0,
                    1/*#VTs*/, MVT::v4i64, 2/*#Ops*/, 0, 1, 
                // Src: (or:v4i64 VR256:v4i64:$src1, VR256:v4i64:$src2) - Complexity = 3
                // Dst: (VORPSYrr:v4i64 VR256:v4i64:$src1, VR256:v4i64:$src2)
              /*SwitchType*/ 38,  MVT::v2i64,// ->62070
/*62032*/       OPC_Scope, 11, /*->62045*/ // 3 children in Scope
/*62034*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*62036*/         OPC_MorphNodeTo, TARGET_VAL(X86::ORPSrr), 0,
                      1/*#VTs*/, MVT::v2i64, 2/*#Ops*/, 0, 1, 
                  // Src: (or:v2i64 VR128:v2i64:$src1, VR128:v2i64:$src2) - Complexity = 3
                  // Dst: (ORPSrr:v2i64 VR128:v2i64:$src1, VR128:v2i64:$src2)
/*62045*/       /*Scope*/ 11, /*->62057*/
/*62046*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*62048*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPORrr), 0,
                      1/*#VTs*/, MVT::v2i64, 2/*#Ops*/, 0, 1, 
                  // Src: (or:v2i64 VR128:v2i64:$src1, VR128:v2i64:$src2) - Complexity = 3
                  // Dst: (VPORrr:v2i64 VR128:v2i64:$src1, VR128:v2i64:$src2)
/*62057*/       /*Scope*/ 11, /*->62069*/
/*62058*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*62060*/         OPC_MorphNodeTo, TARGET_VAL(X86::PORrr), 0,
                      1/*#VTs*/, MVT::v2i64, 2/*#Ops*/, 0, 1, 
                  // Src: (or:v2i64 VR128:v2i64:$src1, VR128:v2i64:$src2) - Complexity = 3
                  // Dst: (PORrr:v2i64 VR128:v2i64:$src1, VR128:v2i64:$src2)
/*62069*/       0, /*End of Scope*/
              0, // EndSwitchType
/*62071*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 98|128,8/*1122*/,  TARGET_VAL(ISD::XOR),// ->63198
/*62076*/   OPC_Scope, 110, /*->62188*/ // 7 children in Scope
/*62078*/     OPC_RecordChild0, // #0 = $src1
/*62079*/     OPC_MoveChild, 1,
/*62081*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*62084*/     OPC_RecordMemRef,
/*62085*/     OPC_RecordNode, // #1 = 'ld' chained node
/*62086*/     OPC_CheckFoldableChainNode,
/*62087*/     OPC_RecordChild1, // #2 = $src2
/*62088*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*62090*/     OPC_Scope, 23, /*->62115*/ // 4 children in Scope
/*62092*/       OPC_CheckPredicate, 3, // Predicate_load
/*62094*/       OPC_MoveParent,
/*62095*/       OPC_CheckType, MVT::i8,
/*62097*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*62100*/       OPC_EmitMergeInputChains1_1,
/*62101*/       OPC_MorphNodeTo, TARGET_VAL(X86::XOR8rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2/*#VTs*/, MVT::i8, MVT::i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (xor:i8 GR8:i8:$src1, (ld:i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                // Dst: (XOR8rm:i8:i32 GR8:i8:$src1, addr:iPTR:$src2)
/*62115*/     /*Scope*/ 23, /*->62139*/
/*62116*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*62118*/       OPC_MoveParent,
/*62119*/       OPC_CheckType, MVT::i16,
/*62121*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*62124*/       OPC_EmitMergeInputChains1_1,
/*62125*/       OPC_MorphNodeTo, TARGET_VAL(X86::XOR16rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2/*#VTs*/, MVT::i16, MVT::i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (xor:i16 GR16:i16:$src1, (ld:i16 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>) - Complexity = 25
                // Dst: (XOR16rm:i16:i32 GR16:i16:$src1, addr:iPTR:$src2)
/*62139*/     /*Scope*/ 23, /*->62163*/
/*62140*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*62142*/       OPC_MoveParent,
/*62143*/       OPC_CheckType, MVT::i32,
/*62145*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*62148*/       OPC_EmitMergeInputChains1_1,
/*62149*/       OPC_MorphNodeTo, TARGET_VAL(X86::XOR32rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2/*#VTs*/, MVT::i32, MVT::i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (xor:i32 GR32:i32:$src1, (ld:i32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>) - Complexity = 25
                // Dst: (XOR32rm:i32:i32 GR32:i32:$src1, addr:iPTR:$src2)
/*62163*/     /*Scope*/ 23, /*->62187*/
/*62164*/       OPC_CheckPredicate, 3, // Predicate_load
/*62166*/       OPC_MoveParent,
/*62167*/       OPC_CheckType, MVT::i64,
/*62169*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*62172*/       OPC_EmitMergeInputChains1_1,
/*62173*/       OPC_MorphNodeTo, TARGET_VAL(X86::XOR64rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2/*#VTs*/, MVT::i64, MVT::i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (xor:i64 GR64:i64:$src1, (ld:i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                // Dst: (XOR64rm:i64:i32 GR64:i64:$src1, addr:iPTR:$src2)
/*62187*/     0, /*End of Scope*/
/*62188*/   /*Scope*/ 113, /*->62302*/
/*62189*/     OPC_MoveChild, 0,
/*62191*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*62194*/     OPC_RecordMemRef,
/*62195*/     OPC_RecordNode, // #0 = 'ld' chained node
/*62196*/     OPC_CheckFoldableChainNode,
/*62197*/     OPC_RecordChild1, // #1 = $src2
/*62198*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*62200*/     OPC_Scope, 24, /*->62226*/ // 4 children in Scope
/*62202*/       OPC_CheckPredicate, 3, // Predicate_load
/*62204*/       OPC_MoveParent,
/*62205*/       OPC_RecordChild1, // #2 = $src1
/*62206*/       OPC_CheckType, MVT::i8,
/*62208*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*62211*/       OPC_EmitMergeInputChains1_0,
/*62212*/       OPC_MorphNodeTo, TARGET_VAL(X86::XOR8rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2/*#VTs*/, MVT::i8, MVT::i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                // Src: (xor:i8 (ld:i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, GR8:i8:$src1) - Complexity = 25
                // Dst: (XOR8rm:i8:i32 GR8:i8:$src1, addr:iPTR:$src2)
/*62226*/     /*Scope*/ 24, /*->62251*/
/*62227*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*62229*/       OPC_MoveParent,
/*62230*/       OPC_RecordChild1, // #2 = $src1
/*62231*/       OPC_CheckType, MVT::i16,
/*62233*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*62236*/       OPC_EmitMergeInputChains1_0,
/*62237*/       OPC_MorphNodeTo, TARGET_VAL(X86::XOR16rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2/*#VTs*/, MVT::i16, MVT::i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                // Src: (xor:i16 (ld:i16 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>, GR16:i16:$src1) - Complexity = 25
                // Dst: (XOR16rm:i16:i32 GR16:i16:$src1, addr:iPTR:$src2)
/*62251*/     /*Scope*/ 24, /*->62276*/
/*62252*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*62254*/       OPC_MoveParent,
/*62255*/       OPC_RecordChild1, // #2 = $src1
/*62256*/       OPC_CheckType, MVT::i32,
/*62258*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*62261*/       OPC_EmitMergeInputChains1_0,
/*62262*/       OPC_MorphNodeTo, TARGET_VAL(X86::XOR32rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2/*#VTs*/, MVT::i32, MVT::i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                // Src: (xor:i32 (ld:i32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>, GR32:i32:$src1) - Complexity = 25
                // Dst: (XOR32rm:i32:i32 GR32:i32:$src1, addr:iPTR:$src2)
/*62276*/     /*Scope*/ 24, /*->62301*/
/*62277*/       OPC_CheckPredicate, 3, // Predicate_load
/*62279*/       OPC_MoveParent,
/*62280*/       OPC_RecordChild1, // #2 = $src1
/*62281*/       OPC_CheckType, MVT::i64,
/*62283*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*62286*/       OPC_EmitMergeInputChains1_0,
/*62287*/       OPC_MorphNodeTo, TARGET_VAL(X86::XOR64rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2/*#VTs*/, MVT::i64, MVT::i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                // Src: (xor:i64 (ld:i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, GR64:i64:$src1) - Complexity = 25
                // Dst: (XOR64rm:i64:i32 GR64:i64:$src1, addr:iPTR:$src2)
/*62301*/     0, /*End of Scope*/
/*62302*/   /*Scope*/ 115|128,1/*243*/, /*->62547*/
/*62304*/     OPC_RecordChild0, // #0 = $src1
/*62305*/     OPC_Scope, 56, /*->62363*/ // 2 children in Scope
/*62307*/       OPC_MoveChild, 1,
/*62309*/       OPC_CheckInteger, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/*62320*/       OPC_MoveParent,
/*62321*/       OPC_SwitchType /*4 cases */, 8,  MVT::i8,// ->62332
/*62324*/         OPC_MorphNodeTo, TARGET_VAL(X86::NOT8r), 0,
                      1/*#VTs*/, MVT::i8, 1/*#Ops*/, 0, 
                  // Src: (xor:i8 GR8:i8:$src1, -1:i8) - Complexity = 23
                  // Dst: (NOT8r:i8 GR8:i8:$src1)
                /*SwitchType*/ 8,  MVT::i16,// ->62342
/*62334*/         OPC_MorphNodeTo, TARGET_VAL(X86::NOT16r), 0,
                      1/*#VTs*/, MVT::i16, 1/*#Ops*/, 0, 
                  // Src: (xor:i16 GR16:i16:$src1, -1:i16) - Complexity = 23
                  // Dst: (NOT16r:i16 GR16:i16:$src1)
                /*SwitchType*/ 8,  MVT::i32,// ->62352
/*62344*/         OPC_MorphNodeTo, TARGET_VAL(X86::NOT32r), 0,
                      1/*#VTs*/, MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (xor:i32 GR32:i32:$src1, -1:i32) - Complexity = 23
                  // Dst: (NOT32r:i32 GR32:i32:$src1)
                /*SwitchType*/ 8,  MVT::i64,// ->62362
/*62354*/         OPC_MorphNodeTo, TARGET_VAL(X86::NOT64r), 0,
                      1/*#VTs*/, MVT::i64, 1/*#Ops*/, 0, 
                  // Src: (xor:i64 GR64:i64:$src1, -1:i64) - Complexity = 23
                  // Dst: (NOT64r:i64 GR64:i64:$src1)
                0, // EndSwitchType
/*62363*/     /*Scope*/ 53|128,1/*181*/, /*->62546*/
/*62365*/       OPC_RecordChild1, // #1 = $src2
/*62366*/       OPC_Scope, 125, /*->62493*/ // 5 children in Scope
/*62368*/         OPC_MoveChild, 1,
/*62370*/         OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*62373*/         OPC_Scope, 17, /*->62392*/ // 5 children in Scope
/*62375*/           OPC_CheckPredicate, 8, // Predicate_i16immSExt8
/*62377*/           OPC_MoveParent,
/*62378*/           OPC_CheckType, MVT::i16,
/*62380*/           OPC_EmitConvertToTarget, 1,
/*62382*/           OPC_MorphNodeTo, TARGET_VAL(X86::XOR16ri8), 0,
                        2/*#VTs*/, MVT::i16, MVT::i32, 2/*#Ops*/, 0, 2, 
                    // Src: (xor:i16 GR16:i16:$src1, (imm:i16)<<P:Predicate_i16immSExt8>>:$src2) - Complexity = 7
                    // Dst: (XOR16ri8:i16:i32 GR16:i16:$src1, (imm:i16)<<P:Predicate_i16immSExt8>>:$src2)
/*62392*/         /*Scope*/ 17, /*->62410*/
/*62393*/           OPC_CheckPredicate, 9, // Predicate_i32immSExt8
/*62395*/           OPC_MoveParent,
/*62396*/           OPC_CheckType, MVT::i32,
/*62398*/           OPC_EmitConvertToTarget, 1,
/*62400*/           OPC_MorphNodeTo, TARGET_VAL(X86::XOR32ri8), 0,
                        2/*#VTs*/, MVT::i32, MVT::i32, 2/*#Ops*/, 0, 2, 
                    // Src: (xor:i32 GR32:i32:$src1, (imm:i32)<<P:Predicate_i32immSExt8>>:$src2) - Complexity = 7
                    // Dst: (XOR32ri8:i32:i32 GR32:i32:$src1, (imm:i32)<<P:Predicate_i32immSExt8>>:$src2)
/*62410*/         /*Scope*/ 17, /*->62428*/
/*62411*/           OPC_CheckPredicate, 10, // Predicate_i64immSExt8
/*62413*/           OPC_MoveParent,
/*62414*/           OPC_CheckType, MVT::i64,
/*62416*/           OPC_EmitConvertToTarget, 1,
/*62418*/           OPC_MorphNodeTo, TARGET_VAL(X86::XOR64ri8), 0,
                        2/*#VTs*/, MVT::i64, MVT::i32, 2/*#Ops*/, 0, 2, 
                    // Src: (xor:i64 GR64:i64:$src1, (imm:i64)<<P:Predicate_i64immSExt8>>:$src2) - Complexity = 7
                    // Dst: (XOR64ri8:i64:i32 GR64:i64:$src1, (imm:i64)<<P:Predicate_i64immSExt8>>:$src2)
/*62428*/         /*Scope*/ 17, /*->62446*/
/*62429*/           OPC_CheckPredicate, 11, // Predicate_i64immSExt32
/*62431*/           OPC_MoveParent,
/*62432*/           OPC_CheckType, MVT::i64,
/*62434*/           OPC_EmitConvertToTarget, 1,
/*62436*/           OPC_MorphNodeTo, TARGET_VAL(X86::XOR64ri32), 0,
                        2/*#VTs*/, MVT::i64, MVT::i32, 2/*#Ops*/, 0, 2, 
                    // Src: (xor:i64 GR64:i64:$src1, (imm:i64)<<P:Predicate_i64immSExt32>>:$src2) - Complexity = 7
                    // Dst: (XOR64ri32:i64:i32 GR64:i64:$src1, (imm:i64)<<P:Predicate_i64immSExt32>>:$src2)
/*62446*/         /*Scope*/ 45, /*->62492*/
/*62447*/           OPC_MoveParent,
/*62448*/           OPC_SwitchType /*3 cases */, 12,  MVT::i8,// ->62463
/*62451*/             OPC_EmitConvertToTarget, 1,
/*62453*/             OPC_MorphNodeTo, TARGET_VAL(X86::XOR8ri), 0,
                          2/*#VTs*/, MVT::i8, MVT::i32, 2/*#Ops*/, 0, 2, 
                      // Src: (xor:i8 GR8:i8:$src1, (imm:i8):$src2) - Complexity = 6
                      // Dst: (XOR8ri:i8:i32 GR8:i8:$src1, (imm:i8):$src2)
                    /*SwitchType*/ 12,  MVT::i16,// ->62477
/*62465*/             OPC_EmitConvertToTarget, 1,
/*62467*/             OPC_MorphNodeTo, TARGET_VAL(X86::XOR16ri), 0,
                          2/*#VTs*/, MVT::i16, MVT::i32, 2/*#Ops*/, 0, 2, 
                      // Src: (xor:i16 GR16:i16:$src1, (imm:i16):$src2) - Complexity = 6
                      // Dst: (XOR16ri:i16:i32 GR16:i16:$src1, (imm:i16):$src2)
                    /*SwitchType*/ 12,  MVT::i32,// ->62491
/*62479*/             OPC_EmitConvertToTarget, 1,
/*62481*/             OPC_MorphNodeTo, TARGET_VAL(X86::XOR32ri), 0,
                          2/*#VTs*/, MVT::i32, MVT::i32, 2/*#Ops*/, 0, 2, 
                      // Src: (xor:i32 GR32:i32:$src1, (imm:i32):$src2) - Complexity = 6
                      // Dst: (XOR32ri:i32:i32 GR32:i32:$src1, (imm:i32):$src2)
                    0, // EndSwitchType
/*62492*/         0, /*End of Scope*/
/*62493*/       /*Scope*/ 12, /*->62506*/
/*62494*/         OPC_CheckType, MVT::i8,
/*62496*/         OPC_MorphNodeTo, TARGET_VAL(X86::XOR8rr), 0,
                      2/*#VTs*/, MVT::i8, MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (xor:i8 GR8:i8:$src1, GR8:i8:$src2) - Complexity = 3
                  // Dst: (XOR8rr:i8:i32 GR8:i8:$src1, GR8:i8:$src2)
/*62506*/       /*Scope*/ 12, /*->62519*/
/*62507*/         OPC_CheckType, MVT::i16,
/*62509*/         OPC_MorphNodeTo, TARGET_VAL(X86::XOR16rr), 0,
                      2/*#VTs*/, MVT::i16, MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (xor:i16 GR16:i16:$src1, GR16:i16:$src2) - Complexity = 3
                  // Dst: (XOR16rr:i16:i32 GR16:i16:$src1, GR16:i16:$src2)
/*62519*/       /*Scope*/ 12, /*->62532*/
/*62520*/         OPC_CheckType, MVT::i32,
/*62522*/         OPC_MorphNodeTo, TARGET_VAL(X86::XOR32rr), 0,
                      2/*#VTs*/, MVT::i32, MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (xor:i32 GR32:i32:$src1, GR32:i32:$src2) - Complexity = 3
                  // Dst: (XOR32rr:i32:i32 GR32:i32:$src1, GR32:i32:$src2)
/*62532*/       /*Scope*/ 12, /*->62545*/
/*62533*/         OPC_CheckType, MVT::i64,
/*62535*/         OPC_MorphNodeTo, TARGET_VAL(X86::XOR64rr), 0,
                      2/*#VTs*/, MVT::i64, MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (xor:i64 GR64:i64:$src1, GR64:i64:$src2) - Complexity = 3
                  // Dst: (XOR64rr:i64:i32 GR64:i64:$src1, GR64:i64:$src2)
/*62545*/       0, /*End of Scope*/
/*62546*/     0, /*End of Scope*/
/*62547*/   /*Scope*/ 6|128,3/*390*/, /*->62939*/
/*62549*/     OPC_MoveChild, 0,
/*62551*/     OPC_SwitchOpcode /*2 cases */, 85|128,1/*213*/,  TARGET_VAL(ISD::BITCAST),// ->62769
/*62556*/       OPC_RecordChild0, // #0 = $src1
/*62557*/       OPC_Scope, 40, /*->62599*/ // 4 children in Scope
/*62559*/         OPC_CheckChild0Type, MVT::v8f32,
/*62561*/         OPC_MoveParent,
/*62562*/         OPC_MoveChild, 1,
/*62564*/         OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*62567*/         OPC_RecordMemRef,
/*62568*/         OPC_RecordNode, // #1 = 'ld' chained node
/*62569*/         OPC_CheckFoldableChainNode,
/*62570*/         OPC_RecordChild1, // #2 = $src2
/*62571*/         OPC_CheckPredicate, 2, // Predicate_unindexedload
/*62573*/         OPC_CheckPredicate, 3, // Predicate_load
/*62575*/         OPC_CheckPredicate, 23, // Predicate_memop
/*62577*/         OPC_MoveParent,
/*62578*/         OPC_CheckType, MVT::v4i64,
/*62580*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*62582*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*62585*/         OPC_EmitMergeInputChains1_1,
/*62586*/         OPC_MorphNodeTo, TARGET_VAL(X86::VXORPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (xor:v4i64 (bitconvert:v4i64 VR256:v8f32:$src1), (ld:v4i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 28
                  // Dst: (VXORPSYrm:v4i64 VR256:v8f32:$src1, addr:iPTR:$src2)
/*62599*/       /*Scope*/ 40, /*->62640*/
/*62600*/         OPC_CheckChild0Type, MVT::v4f64,
/*62602*/         OPC_MoveParent,
/*62603*/         OPC_MoveChild, 1,
/*62605*/         OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*62608*/         OPC_RecordMemRef,
/*62609*/         OPC_RecordNode, // #1 = 'ld' chained node
/*62610*/         OPC_CheckFoldableChainNode,
/*62611*/         OPC_RecordChild1, // #2 = $src2
/*62612*/         OPC_CheckPredicate, 2, // Predicate_unindexedload
/*62614*/         OPC_CheckPredicate, 3, // Predicate_load
/*62616*/         OPC_CheckPredicate, 23, // Predicate_memop
/*62618*/         OPC_MoveParent,
/*62619*/         OPC_CheckType, MVT::v4i64,
/*62621*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*62623*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*62626*/         OPC_EmitMergeInputChains1_1,
/*62627*/         OPC_MorphNodeTo, TARGET_VAL(X86::VXORPDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (xor:v4i64 (bitconvert:v4i64 VR256:v4f64:$src1), (ld:v4i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 28
                  // Dst: (VXORPDYrm:v4i64 VR256:v4f64:$src1, addr:iPTR:$src2)
/*62640*/       /*Scope*/ 63, /*->62704*/
/*62641*/         OPC_CheckChild0Type, MVT::v4f32,
/*62643*/         OPC_MoveParent,
/*62644*/         OPC_MoveChild, 1,
/*62646*/         OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*62649*/         OPC_RecordMemRef,
/*62650*/         OPC_RecordNode, // #1 = 'ld' chained node
/*62651*/         OPC_CheckFoldableChainNode,
/*62652*/         OPC_RecordChild1, // #2 = $src2
/*62653*/         OPC_CheckPredicate, 2, // Predicate_unindexedload
/*62655*/         OPC_CheckPredicate, 3, // Predicate_load
/*62657*/         OPC_CheckPredicate, 23, // Predicate_memop
/*62659*/         OPC_MoveParent,
/*62660*/         OPC_CheckType, MVT::v2i64,
/*62662*/         OPC_Scope, 19, /*->62683*/ // 2 children in Scope
/*62664*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*62666*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*62669*/           OPC_EmitMergeInputChains1_1,
/*62670*/           OPC_MorphNodeTo, TARGET_VAL(X86::VXORPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (xor:v2i64 (bitconvert:v2i64 VR128:v4f32:$src1), (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 28
                    // Dst: (VXORPSrm:v2i64 VR128:v4f32:$src1, addr:iPTR:$src2)
/*62683*/         /*Scope*/ 19, /*->62703*/
/*62684*/           OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*62686*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*62689*/           OPC_EmitMergeInputChains1_1,
/*62690*/           OPC_MorphNodeTo, TARGET_VAL(X86::XORPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (xor:v2i64 (bitconvert:v2i64 VR128:v4f32:$src1), (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 28
                    // Dst: (XORPSrm:v2i64 VR128:v4f32:$src1, addr:iPTR:$src2)
/*62703*/         0, /*End of Scope*/
/*62704*/       /*Scope*/ 63, /*->62768*/
/*62705*/         OPC_CheckChild0Type, MVT::v2f64,
/*62707*/         OPC_MoveParent,
/*62708*/         OPC_MoveChild, 1,
/*62710*/         OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*62713*/         OPC_RecordMemRef,
/*62714*/         OPC_RecordNode, // #1 = 'ld' chained node
/*62715*/         OPC_CheckFoldableChainNode,
/*62716*/         OPC_RecordChild1, // #2 = $src2
/*62717*/         OPC_CheckPredicate, 2, // Predicate_unindexedload
/*62719*/         OPC_CheckPredicate, 3, // Predicate_load
/*62721*/         OPC_CheckPredicate, 23, // Predicate_memop
/*62723*/         OPC_MoveParent,
/*62724*/         OPC_CheckType, MVT::v2i64,
/*62726*/         OPC_Scope, 19, /*->62747*/ // 2 children in Scope
/*62728*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*62730*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*62733*/           OPC_EmitMergeInputChains1_1,
/*62734*/           OPC_MorphNodeTo, TARGET_VAL(X86::VXORPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (xor:v2i64 (bitconvert:v2i64 VR128:v2f64:$src1), (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 28
                    // Dst: (VXORPDrm:v2i64 VR128:v2f64:$src1, addr:iPTR:$src2)
/*62747*/         /*Scope*/ 19, /*->62767*/
/*62748*/           OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*62750*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*62753*/           OPC_EmitMergeInputChains1_1,
/*62754*/           OPC_MorphNodeTo, TARGET_VAL(X86::XORPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (xor:v2i64 (bitconvert:v2i64 VR128:v2f64:$src1), (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 28
                    // Dst: (XORPDrm:v2i64 VR128:v2f64:$src1, addr:iPTR:$src2)
/*62767*/         0, /*End of Scope*/
/*62768*/       0, /*End of Scope*/
              /*SwitchOpcode*/ 37|128,1/*165*/,  TARGET_VAL(ISD::LOAD),// ->62938
/*62773*/       OPC_RecordMemRef,
/*62774*/       OPC_RecordNode, // #0 = 'ld' chained node
/*62775*/       OPC_CheckFoldableChainNode,
/*62776*/       OPC_RecordChild1, // #1 = $src2
/*62777*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*62779*/       OPC_CheckPredicate, 3, // Predicate_load
/*62781*/       OPC_CheckPredicate, 23, // Predicate_memop
/*62783*/       OPC_MoveParent,
/*62784*/       OPC_MoveChild, 1,
/*62786*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*62789*/       OPC_RecordChild0, // #2 = $src1
/*62790*/       OPC_Scope, 24, /*->62816*/ // 4 children in Scope
/*62792*/         OPC_CheckChild0Type, MVT::v8f32,
/*62794*/         OPC_MoveParent,
/*62795*/         OPC_CheckType, MVT::v4i64,
/*62797*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*62799*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*62802*/         OPC_EmitMergeInputChains1_0,
/*62803*/         OPC_MorphNodeTo, TARGET_VAL(X86::VXORPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (xor:v4i64 (ld:v4i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, (bitconvert:v4i64 VR256:v8f32:$src1)) - Complexity = 28
                  // Dst: (VXORPSYrm:v4i64 VR256:v8f32:$src1, addr:iPTR:$src2)
/*62816*/       /*Scope*/ 24, /*->62841*/
/*62817*/         OPC_CheckChild0Type, MVT::v4f64,
/*62819*/         OPC_MoveParent,
/*62820*/         OPC_CheckType, MVT::v4i64,
/*62822*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*62824*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*62827*/         OPC_EmitMergeInputChains1_0,
/*62828*/         OPC_MorphNodeTo, TARGET_VAL(X86::VXORPDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (xor:v4i64 (ld:v4i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, (bitconvert:v4i64 VR256:v4f64:$src1)) - Complexity = 28
                  // Dst: (VXORPDYrm:v4i64 VR256:v4f64:$src1, addr:iPTR:$src2)
/*62841*/       /*Scope*/ 47, /*->62889*/
/*62842*/         OPC_CheckChild0Type, MVT::v4f32,
/*62844*/         OPC_MoveParent,
/*62845*/         OPC_CheckType, MVT::v2i64,
/*62847*/         OPC_Scope, 19, /*->62868*/ // 2 children in Scope
/*62849*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*62851*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*62854*/           OPC_EmitMergeInputChains1_0,
/*62855*/           OPC_MorphNodeTo, TARGET_VAL(X86::VXORPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v2i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (xor:v2i64 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, (bitconvert:v2i64 VR128:v4f32:$src1)) - Complexity = 28
                    // Dst: (VXORPSrm:v2i64 VR128:v4f32:$src1, addr:iPTR:$src2)
/*62868*/         /*Scope*/ 19, /*->62888*/
/*62869*/           OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*62871*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*62874*/           OPC_EmitMergeInputChains1_0,
/*62875*/           OPC_MorphNodeTo, TARGET_VAL(X86::XORPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v2i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (xor:v2i64 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, (bitconvert:v2i64 VR128:v4f32:$src1)) - Complexity = 28
                    // Dst: (XORPSrm:v2i64 VR128:v4f32:$src1, addr:iPTR:$src2)
/*62888*/         0, /*End of Scope*/
/*62889*/       /*Scope*/ 47, /*->62937*/
/*62890*/         OPC_CheckChild0Type, MVT::v2f64,
/*62892*/         OPC_MoveParent,
/*62893*/         OPC_CheckType, MVT::v2i64,
/*62895*/         OPC_Scope, 19, /*->62916*/ // 2 children in Scope
/*62897*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*62899*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*62902*/           OPC_EmitMergeInputChains1_0,
/*62903*/           OPC_MorphNodeTo, TARGET_VAL(X86::VXORPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v2i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (xor:v2i64 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, (bitconvert:v2i64 VR128:v2f64:$src1)) - Complexity = 28
                    // Dst: (VXORPDrm:v2i64 VR128:v2f64:$src1, addr:iPTR:$src2)
/*62916*/         /*Scope*/ 19, /*->62936*/
/*62917*/           OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*62919*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*62922*/           OPC_EmitMergeInputChains1_0,
/*62923*/           OPC_MorphNodeTo, TARGET_VAL(X86::XORPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v2i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (xor:v2i64 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, (bitconvert:v2i64 VR128:v2f64:$src1)) - Complexity = 28
                    // Dst: (XORPDrm:v2i64 VR128:v2f64:$src1, addr:iPTR:$src2)
/*62936*/         0, /*End of Scope*/
/*62937*/       0, /*End of Scope*/
              0, // EndSwitchOpcode
/*62939*/   /*Scope*/ 61, /*->63001*/
/*62940*/     OPC_RecordChild0, // #0 = $src1
/*62941*/     OPC_MoveChild, 1,
/*62943*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*62946*/     OPC_RecordMemRef,
/*62947*/     OPC_RecordNode, // #1 = 'ld' chained node
/*62948*/     OPC_CheckFoldableChainNode,
/*62949*/     OPC_RecordChild1, // #2 = $src2
/*62950*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*62952*/     OPC_CheckPredicate, 3, // Predicate_load
/*62954*/     OPC_CheckPredicate, 23, // Predicate_memop
/*62956*/     OPC_MoveParent,
/*62957*/     OPC_CheckType, MVT::v2i64,
/*62959*/     OPC_Scope, 19, /*->62980*/ // 2 children in Scope
/*62961*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*62963*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*62966*/       OPC_EmitMergeInputChains1_1,
/*62967*/       OPC_MorphNodeTo, TARGET_VAL(X86::VPXORrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (xor:v2i64 VR128:v2i64:$src1, (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                // Dst: (VPXORrm:v2i64 VR128:v2i64:$src1, addr:iPTR:$src2)
/*62980*/     /*Scope*/ 19, /*->63000*/
/*62981*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*62983*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*62986*/       OPC_EmitMergeInputChains1_1,
/*62987*/       OPC_MorphNodeTo, TARGET_VAL(X86::PXORrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (xor:v2i64 VR128:v2i64:$src1, (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                // Dst: (PXORrm:v2i64 VR128:v2i64:$src1, addr:iPTR:$src2)
/*63000*/     0, /*End of Scope*/
/*63001*/   /*Scope*/ 8|128,1/*136*/, /*->63139*/
/*63003*/     OPC_MoveChild, 0,
/*63005*/     OPC_SwitchOpcode /*2 cases */, 56,  TARGET_VAL(ISD::LOAD),// ->63065
/*63009*/       OPC_RecordMemRef,
/*63010*/       OPC_RecordNode, // #0 = 'ld' chained node
/*63011*/       OPC_CheckFoldableChainNode,
/*63012*/       OPC_RecordChild1, // #1 = $src2
/*63013*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*63015*/       OPC_CheckPredicate, 3, // Predicate_load
/*63017*/       OPC_CheckPredicate, 23, // Predicate_memop
/*63019*/       OPC_MoveParent,
/*63020*/       OPC_RecordChild1, // #2 = $src1
/*63021*/       OPC_CheckType, MVT::v2i64,
/*63023*/       OPC_Scope, 19, /*->63044*/ // 2 children in Scope
/*63025*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*63027*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*63030*/         OPC_EmitMergeInputChains1_0,
/*63031*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPXORrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v2i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (xor:v2i64 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, VR128:v2i64:$src1) - Complexity = 25
                  // Dst: (VPXORrm:v2i64 VR128:v2i64:$src1, addr:iPTR:$src2)
/*63044*/       /*Scope*/ 19, /*->63064*/
/*63045*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*63047*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*63050*/         OPC_EmitMergeInputChains1_0,
/*63051*/         OPC_MorphNodeTo, TARGET_VAL(X86::PXORrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v2i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (xor:v2i64 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, VR128:v2i64:$src1) - Complexity = 25
                  // Dst: (PXORrm:v2i64 VR128:v2i64:$src1, addr:iPTR:$src2)
/*63064*/       0, /*End of Scope*/
              /*SwitchOpcode*/ 70,  TARGET_VAL(ISD::BITCAST),// ->63138
/*63068*/       OPC_RecordChild0, // #0 = $src1
/*63069*/       OPC_Scope, 25, /*->63096*/ // 2 children in Scope
/*63071*/         OPC_CheckChild0Type, MVT::v4f64,
/*63073*/         OPC_MoveParent,
/*63074*/         OPC_MoveChild, 1,
/*63076*/         OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*63079*/         OPC_RecordChild0, // #1 = $src2
/*63080*/         OPC_CheckChild0Type, MVT::v4f64,
/*63082*/         OPC_MoveParent,
/*63083*/         OPC_CheckType, MVT::v4i64,
/*63085*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*63087*/         OPC_MorphNodeTo, TARGET_VAL(X86::VXORPDYrr), 0,
                      1/*#VTs*/, MVT::v4i64, 2/*#Ops*/, 0, 1, 
                  // Src: (xor:v4i64 (bitconvert:v4i64 VR256:v4f64:$src1), (bitconvert:v4i64 VR256:v4f64:$src2)) - Complexity = 9
                  // Dst: (VXORPDYrr:v4i64 VR256:v4f64:$src1, VR256:v4f64:$src2)
/*63096*/       /*Scope*/ 40, /*->63137*/
/*63097*/         OPC_CheckChild0Type, MVT::v2f64,
/*63099*/         OPC_MoveParent,
/*63100*/         OPC_MoveChild, 1,
/*63102*/         OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*63105*/         OPC_RecordChild0, // #1 = $src2
/*63106*/         OPC_CheckChild0Type, MVT::v2f64,
/*63108*/         OPC_MoveParent,
/*63109*/         OPC_CheckType, MVT::v2i64,
/*63111*/         OPC_Scope, 11, /*->63124*/ // 2 children in Scope
/*63113*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*63115*/           OPC_MorphNodeTo, TARGET_VAL(X86::VXORPDrr), 0,
                        1/*#VTs*/, MVT::v2i64, 2/*#Ops*/, 0, 1, 
                    // Src: (xor:v2i64 (bitconvert:v2i64 VR128:v2f64:$src1), (bitconvert:v2i64 VR128:v2f64:$src2)) - Complexity = 9
                    // Dst: (VXORPDrr:v2i64 VR128:v2f64:$src1, VR128:v2f64:$src2)
/*63124*/         /*Scope*/ 11, /*->63136*/
/*63125*/           OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*63127*/           OPC_MorphNodeTo, TARGET_VAL(X86::XORPDrr), 0,
                        1/*#VTs*/, MVT::v2i64, 2/*#Ops*/, 0, 1, 
                    // Src: (xor:v2i64 (bitconvert:v2i64 VR128:v2f64:$src1), (bitconvert:v2i64 VR128:v2f64:$src2)) - Complexity = 9
                    // Dst: (XORPDrr:v2i64 VR128:v2f64:$src1, VR128:v2f64:$src2)
/*63136*/         0, /*End of Scope*/
/*63137*/       0, /*End of Scope*/
              0, // EndSwitchOpcode
/*63139*/   /*Scope*/ 57, /*->63197*/
/*63140*/     OPC_RecordChild0, // #0 = $src1
/*63141*/     OPC_RecordChild1, // #1 = $src2
/*63142*/     OPC_SwitchType /*2 cases */, 11,  MVT::v4i64,// ->63156
/*63145*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*63147*/       OPC_MorphNodeTo, TARGET_VAL(X86::VXORPSYrr), 0,
                    1/*#VTs*/, MVT::v4i64, 2/*#Ops*/, 0, 1, 
                // Src: (xor:v4i64 VR256:v4i64:$src1, VR256:v4i64:$src2) - Complexity = 3
                // Dst: (VXORPSYrr:v4i64 VR256:v4i64:$src1, VR256:v4i64:$src2)
              /*SwitchType*/ 38,  MVT::v2i64,// ->63196
/*63158*/       OPC_Scope, 11, /*->63171*/ // 3 children in Scope
/*63160*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*63162*/         OPC_MorphNodeTo, TARGET_VAL(X86::XORPSrr), 0,
                      1/*#VTs*/, MVT::v2i64, 2/*#Ops*/, 0, 1, 
                  // Src: (xor:v2i64 VR128:v2i64:$src1, VR128:v2i64:$src2) - Complexity = 3
                  // Dst: (XORPSrr:v2i64 VR128:v2i64:$src1, VR128:v2i64:$src2)
/*63171*/       /*Scope*/ 11, /*->63183*/
/*63172*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*63174*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPXORrr), 0,
                      1/*#VTs*/, MVT::v2i64, 2/*#Ops*/, 0, 1, 
                  // Src: (xor:v2i64 VR128:v2i64:$src1, VR128:v2i64:$src2) - Complexity = 3
                  // Dst: (VPXORrr:v2i64 VR128:v2i64:$src1, VR128:v2i64:$src2)
/*63183*/       /*Scope*/ 11, /*->63195*/
/*63184*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*63186*/         OPC_MorphNodeTo, TARGET_VAL(X86::PXORrr), 0,
                      1/*#VTs*/, MVT::v2i64, 2/*#Ops*/, 0, 1, 
                  // Src: (xor:v2i64 VR128:v2i64:$src1, VR128:v2i64:$src2) - Complexity = 3
                  // Dst: (PXORrr:v2i64 VR128:v2i64:$src1, VR128:v2i64:$src2)
/*63195*/       0, /*End of Scope*/
              0, // EndSwitchType
/*63197*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 65|128,12/*1601*/,  TARGET_VAL(ISD::AND),// ->64803
/*63202*/   OPC_Scope, 110, /*->63314*/ // 13 children in Scope
/*63204*/     OPC_RecordChild0, // #0 = $src1
/*63205*/     OPC_MoveChild, 1,
/*63207*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*63210*/     OPC_RecordMemRef,
/*63211*/     OPC_RecordNode, // #1 = 'ld' chained node
/*63212*/     OPC_CheckFoldableChainNode,
/*63213*/     OPC_RecordChild1, // #2 = $src2
/*63214*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*63216*/     OPC_Scope, 23, /*->63241*/ // 4 children in Scope
/*63218*/       OPC_CheckPredicate, 3, // Predicate_load
/*63220*/       OPC_MoveParent,
/*63221*/       OPC_CheckType, MVT::i8,
/*63223*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*63226*/       OPC_EmitMergeInputChains1_1,
/*63227*/       OPC_MorphNodeTo, TARGET_VAL(X86::AND8rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2/*#VTs*/, MVT::i8, MVT::i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (and:i8 GR8:i8:$src1, (ld:i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                // Dst: (AND8rm:i8:i32 GR8:i8:$src1, addr:iPTR:$src2)
/*63241*/     /*Scope*/ 23, /*->63265*/
/*63242*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*63244*/       OPC_MoveParent,
/*63245*/       OPC_CheckType, MVT::i16,
/*63247*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*63250*/       OPC_EmitMergeInputChains1_1,
/*63251*/       OPC_MorphNodeTo, TARGET_VAL(X86::AND16rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2/*#VTs*/, MVT::i16, MVT::i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (and:i16 GR16:i16:$src1, (ld:i16 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>) - Complexity = 25
                // Dst: (AND16rm:i16:i32 GR16:i16:$src1, addr:iPTR:$src2)
/*63265*/     /*Scope*/ 23, /*->63289*/
/*63266*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*63268*/       OPC_MoveParent,
/*63269*/       OPC_CheckType, MVT::i32,
/*63271*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*63274*/       OPC_EmitMergeInputChains1_1,
/*63275*/       OPC_MorphNodeTo, TARGET_VAL(X86::AND32rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2/*#VTs*/, MVT::i32, MVT::i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (and:i32 GR32:i32:$src1, (ld:i32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>) - Complexity = 25
                // Dst: (AND32rm:i32:i32 GR32:i32:$src1, addr:iPTR:$src2)
/*63289*/     /*Scope*/ 23, /*->63313*/
/*63290*/       OPC_CheckPredicate, 3, // Predicate_load
/*63292*/       OPC_MoveParent,
/*63293*/       OPC_CheckType, MVT::i64,
/*63295*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*63298*/       OPC_EmitMergeInputChains1_1,
/*63299*/       OPC_MorphNodeTo, TARGET_VAL(X86::AND64rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2/*#VTs*/, MVT::i64, MVT::i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (and:i64 GR64:i64:$src1, (ld:i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                // Dst: (AND64rm:i64:i32 GR64:i64:$src1, addr:iPTR:$src2)
/*63313*/     0, /*End of Scope*/
/*63314*/   /*Scope*/ 113, /*->63428*/
/*63315*/     OPC_MoveChild, 0,
/*63317*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*63320*/     OPC_RecordMemRef,
/*63321*/     OPC_RecordNode, // #0 = 'ld' chained node
/*63322*/     OPC_CheckFoldableChainNode,
/*63323*/     OPC_RecordChild1, // #1 = $src2
/*63324*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*63326*/     OPC_Scope, 24, /*->63352*/ // 4 children in Scope
/*63328*/       OPC_CheckPredicate, 3, // Predicate_load
/*63330*/       OPC_MoveParent,
/*63331*/       OPC_RecordChild1, // #2 = $src1
/*63332*/       OPC_CheckType, MVT::i8,
/*63334*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*63337*/       OPC_EmitMergeInputChains1_0,
/*63338*/       OPC_MorphNodeTo, TARGET_VAL(X86::AND8rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2/*#VTs*/, MVT::i8, MVT::i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                // Src: (and:i8 (ld:i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, GR8:i8:$src1) - Complexity = 25
                // Dst: (AND8rm:i8:i32 GR8:i8:$src1, addr:iPTR:$src2)
/*63352*/     /*Scope*/ 24, /*->63377*/
/*63353*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*63355*/       OPC_MoveParent,
/*63356*/       OPC_RecordChild1, // #2 = $src1
/*63357*/       OPC_CheckType, MVT::i16,
/*63359*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*63362*/       OPC_EmitMergeInputChains1_0,
/*63363*/       OPC_MorphNodeTo, TARGET_VAL(X86::AND16rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2/*#VTs*/, MVT::i16, MVT::i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                // Src: (and:i16 (ld:i16 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>, GR16:i16:$src1) - Complexity = 25
                // Dst: (AND16rm:i16:i32 GR16:i16:$src1, addr:iPTR:$src2)
/*63377*/     /*Scope*/ 24, /*->63402*/
/*63378*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*63380*/       OPC_MoveParent,
/*63381*/       OPC_RecordChild1, // #2 = $src1
/*63382*/       OPC_CheckType, MVT::i32,
/*63384*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*63387*/       OPC_EmitMergeInputChains1_0,
/*63388*/       OPC_MorphNodeTo, TARGET_VAL(X86::AND32rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2/*#VTs*/, MVT::i32, MVT::i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                // Src: (and:i32 (ld:i32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>, GR32:i32:$src1) - Complexity = 25
                // Dst: (AND32rm:i32:i32 GR32:i32:$src1, addr:iPTR:$src2)
/*63402*/     /*Scope*/ 24, /*->63427*/
/*63403*/       OPC_CheckPredicate, 3, // Predicate_load
/*63405*/       OPC_MoveParent,
/*63406*/       OPC_RecordChild1, // #2 = $src1
/*63407*/       OPC_CheckType, MVT::i64,
/*63409*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*63412*/       OPC_EmitMergeInputChains1_0,
/*63413*/       OPC_MorphNodeTo, TARGET_VAL(X86::AND64rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2/*#VTs*/, MVT::i64, MVT::i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                // Src: (and:i64 (ld:i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, GR64:i64:$src1) - Complexity = 25
                // Dst: (AND64rm:i64:i32 GR64:i64:$src1, addr:iPTR:$src2)
/*63427*/     0, /*End of Scope*/
/*63428*/   /*Scope*/ 17|128,1/*145*/, /*->63575*/
/*63430*/     OPC_CheckAndImm, 127|128,1/*255*/, 
/*63433*/     OPC_MoveChild, 0,
/*63435*/     OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
/*63438*/     OPC_RecordChild0, // #0 = $src
/*63439*/     OPC_MoveChild, 1,
/*63441*/     OPC_CheckInteger, 8, 
/*63443*/     OPC_CheckType, MVT::i8,
/*63445*/     OPC_MoveParent,
/*63446*/     OPC_CheckPredicate, 14, // Predicate_srl_su
/*63448*/     OPC_MoveParent,
/*63449*/     OPC_SwitchType /*2 cases */, 72,  MVT::i32,// ->63524
/*63452*/       OPC_Scope, 34, /*->63488*/ // 2 children in Scope
/*63454*/         OPC_CheckPatternPredicate, 3, // (!Subtarget->is64Bit())
/*63456*/         OPC_EmitInteger, MVT::i32, X86::GR32_ABCDRegClassID,
/*63459*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      1/*#VTs*/, MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2 
/*63468*/         OPC_EmitInteger, MVT::i32, X86::sub_8bit_hi,
/*63471*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      1/*#VTs*/, MVT::i8, 2/*#Ops*/, 2, 3,  // Results = #4 
/*63480*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOVZX32rr8), 0,
                      1/*#VTs*/, MVT::i32, 1/*#Ops*/, 4, 
                  // Src: (and:i32 (srl:i32 GR32:i32:$src, 8:i8)<<P:Predicate_srl_su>>, 255:i32) - Complexity = 17
                  // Dst: (MOVZX32rr8:i32 (EXTRACT_SUBREG:i8 (COPY_TO_REGCLASS:i32 GR32:i32:$src, GR32_ABCD:i32), sub_8bit_hi:i32))
/*63488*/       /*Scope*/ 34, /*->63523*/
/*63489*/         OPC_CheckPatternPredicate, 4, // (Subtarget->is64Bit())
/*63491*/         OPC_EmitInteger, MVT::i32, X86::GR32_ABCDRegClassID,
/*63494*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      1/*#VTs*/, MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2 
/*63503*/         OPC_EmitInteger, MVT::i32, X86::sub_8bit_hi,
/*63506*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      1/*#VTs*/, MVT::i8, 2/*#Ops*/, 2, 3,  // Results = #4 
/*63515*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOVZX32_NOREXrr8), 0,
                      1/*#VTs*/, MVT::i32, 1/*#Ops*/, 4, 
                  // Src: (and:i32 (srl:i32 GR32:i32:$src, 8:i8)<<P:Predicate_srl_su>>, 255:i32) - Complexity = 17
                  // Dst: (MOVZX32_NOREXrr8:i32 (EXTRACT_SUBREG:i8 (COPY_TO_REGCLASS:i32 GR32:i32:$src, GR32_ABCD:i32), sub_8bit_hi:i32))
/*63523*/       0, /*End of Scope*/
              /*SwitchType*/ 48,  MVT::i64,// ->63574
/*63526*/       OPC_EmitInteger, MVT::i64, 0, 
/*63529*/       OPC_EmitInteger, MVT::i32, X86::GR64_ABCDRegClassID,
/*63532*/       OPC_EmitNode, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    1/*#VTs*/, MVT::i64, 2/*#Ops*/, 0, 2,  // Results = #3 
/*63541*/       OPC_EmitInteger, MVT::i32, X86::sub_8bit_hi,
/*63544*/       OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                    1/*#VTs*/, MVT::i8, 2/*#Ops*/, 3, 4,  // Results = #5 
/*63553*/       OPC_EmitNode, TARGET_VAL(X86::MOVZX32_NOREXrr8), 0,
                    1/*#VTs*/, MVT::i32, 1/*#Ops*/, 5,  // Results = #6 
/*63561*/       OPC_EmitInteger, MVT::i32, X86::sub_32bit,
/*63564*/       OPC_MorphNodeTo, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                    1/*#VTs*/, MVT::i64, 3/*#Ops*/, 1, 6, 7, 
                // Src: (and:i64 (srl:i64 GR64:i64:$src, 8:i8)<<P:Predicate_srl_su>>, 255:i64) - Complexity = 17
                // Dst: (SUBREG_TO_REG:i64 0:i64, (MOVZX32_NOREXrr8:i32 (EXTRACT_SUBREG:i8 (COPY_TO_REGCLASS:i64 GR64:i64:$src, GR64_ABCD:i64), sub_8bit_hi:i32)), sub_32bit:i32)
              0, // EndSwitchType
/*63575*/   /*Scope*/ 29, /*->63605*/
/*63576*/     OPC_MoveChild, 0,
/*63578*/     OPC_CheckOpcode, TARGET_VAL(X86ISD::SETCC_CARRY),
/*63581*/     OPC_MoveChild, 0,
/*63583*/     OPC_CheckInteger, 2, 
/*63585*/     OPC_MoveParent,
/*63586*/     OPC_RecordChild1, // #0 = physreg input EFLAGS
/*63587*/     OPC_MoveParent,
/*63588*/     OPC_MoveChild, 1,
/*63590*/     OPC_CheckInteger, 1, 
/*63592*/     OPC_MoveParent,
/*63593*/     OPC_CheckType, MVT::i8,
/*63595*/     OPC_EmitCopyToReg, 0, X86::EFLAGS,
/*63598*/     OPC_MorphNodeTo, TARGET_VAL(X86::SETBr), 0|OPFL_GlueInput,
                  1/*#VTs*/, MVT::i8, 0/*#Ops*/, 
              // Src: (and:i8 (X86setcc_c:i8 2:i8, EFLAGS:i32), 1:i8) - Complexity = 16
              // Dst: (SETBr:i8)
/*63605*/   /*Scope*/ 27, /*->63633*/
/*63606*/     OPC_CheckAndImm, 127|128,127|128,3/*65535*/, 
/*63610*/     OPC_RecordChild0, // #0 = $src1
/*63611*/     OPC_CheckType, MVT::i32,
/*63613*/     OPC_EmitInteger, MVT::i32, X86::sub_16bit,
/*63616*/     OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                  1/*#VTs*/, MVT::i16, 2/*#Ops*/, 0, 1,  // Results = #2 
/*63625*/     OPC_MorphNodeTo, TARGET_VAL(X86::MOVZX32rr16), 0,
                  1/*#VTs*/, MVT::i32, 1/*#Ops*/, 2, 
              // Src: (and:i32 GR32:i32:$src1, 65535:i32) - Complexity = 8
              // Dst: (MOVZX32rr16:i32 (EXTRACT_SUBREG:i16 GR32:i32:$src1, sub_16bit:i32))
/*63633*/   /*Scope*/ 29, /*->63663*/
/*63634*/     OPC_CheckAndImm, 127|128,127|128,127|128,127|128,15/*4294967295*/, 
/*63640*/     OPC_RecordChild0, // #0 = $src
/*63641*/     OPC_CheckType, MVT::i64,
/*63643*/     OPC_EmitInteger, MVT::i32, X86::sub_32bit,
/*63646*/     OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                  1/*#VTs*/, MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2 
/*63655*/     OPC_MorphNodeTo, TARGET_VAL(X86::MOVZX64rr32), 0,
                  1/*#VTs*/, MVT::i64, 1/*#Ops*/, 2, 
              // Src: (and:i64 GR64:i64:$src, 4294967295:i64) - Complexity = 8
              // Dst: (MOVZX64rr32:i64 (EXTRACT_SUBREG:i32 GR64:i64:$src, sub_32bit:i32))
/*63663*/   /*Scope*/ 27, /*->63691*/
/*63664*/     OPC_CheckAndImm, 127|128,127|128,3/*65535*/, 
/*63668*/     OPC_RecordChild0, // #0 = $src
/*63669*/     OPC_CheckType, MVT::i64,
/*63671*/     OPC_EmitInteger, MVT::i32, X86::sub_16bit,
/*63674*/     OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                  1/*#VTs*/, MVT::i16, 2/*#Ops*/, 0, 1,  // Results = #2 
/*63683*/     OPC_MorphNodeTo, TARGET_VAL(X86::MOVZX64rr16), 0,
                  1/*#VTs*/, MVT::i64, 1/*#Ops*/, 2, 
              // Src: (and:i64 GR64:i64:$src, 65535:i64) - Complexity = 8
              // Dst: (MOVZX64rr16:i64 (EXTRACT_SUBREG:i16 GR64:i64:$src, sub_16bit:i32))
/*63691*/   /*Scope*/ 48|128,1/*176*/, /*->63869*/
/*63693*/     OPC_CheckAndImm, 127|128,1/*255*/, 
/*63696*/     OPC_RecordChild0, // #0 = $src
/*63697*/     OPC_SwitchType /*3 cases */, 20,  MVT::i64,// ->63720
/*63700*/       OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*63703*/       OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                    1/*#VTs*/, MVT::i8, 2/*#Ops*/, 0, 1,  // Results = #2 
/*63712*/       OPC_MorphNodeTo, TARGET_VAL(X86::MOVZX64rr8), 0,
                    1/*#VTs*/, MVT::i64, 1/*#Ops*/, 2, 
                // Src: (and:i64 GR64:i64:$src, 255:i64) - Complexity = 8
                // Dst: (MOVZX64rr8:i64 (EXTRACT_SUBREG:i8 GR64:i64:$src, sub_8bit:i32))
              /*SwitchType*/ 60,  MVT::i32,// ->63782
/*63722*/       OPC_Scope, 22, /*->63746*/ // 2 children in Scope
/*63724*/         OPC_CheckPatternPredicate, 4, // (Subtarget->is64Bit())
/*63726*/         OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*63729*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      1/*#VTs*/, MVT::i8, 2/*#Ops*/, 0, 1,  // Results = #2 
/*63738*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOVZX32rr8), 0,
                      1/*#VTs*/, MVT::i32, 1/*#Ops*/, 2, 
                  // Src: (and:i32 GR32:i32:$src1, 255:i32) - Complexity = 8
                  // Dst: (MOVZX32rr8:i32 (EXTRACT_SUBREG:i8 GR32:i32:$src1, sub_8bit:i32))
/*63746*/       /*Scope*/ 34, /*->63781*/
/*63747*/         OPC_CheckPatternPredicate, 3, // (!Subtarget->is64Bit())
/*63749*/         OPC_EmitInteger, MVT::i32, X86::GR32_ABCDRegClassID,
/*63752*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      1/*#VTs*/, MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2 
/*63761*/         OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*63764*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      1/*#VTs*/, MVT::i8, 2/*#Ops*/, 2, 3,  // Results = #4 
/*63773*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOVZX32rr8), 0,
                      1/*#VTs*/, MVT::i32, 1/*#Ops*/, 4, 
                  // Src: (and:i32 GR32:i32:$src1, 255:i32) - Complexity = 8
                  // Dst: (MOVZX32rr8:i32 (EXTRACT_SUBREG:i8 (COPY_TO_REGCLASS:i32 GR32:i32:$src1, GR32_ABCD:i32), sub_8bit:i32))
/*63781*/       0, /*End of Scope*/
              /*SwitchType*/ 84,  MVT::i16,// ->63868
/*63784*/       OPC_Scope, 34, /*->63820*/ // 2 children in Scope
/*63786*/         OPC_CheckPatternPredicate, 4, // (Subtarget->is64Bit())
/*63788*/         OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*63791*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      1/*#VTs*/, MVT::i8, 2/*#Ops*/, 0, 1,  // Results = #2 
/*63800*/         OPC_EmitNode, TARGET_VAL(X86::MOVZX32rr8), 0,
                      1/*#VTs*/, MVT::i32, 1/*#Ops*/, 2,  // Results = #3 
/*63808*/         OPC_EmitInteger, MVT::i32, X86::sub_16bit,
/*63811*/         OPC_MorphNodeTo, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      1/*#VTs*/, MVT::i16, 2/*#Ops*/, 3, 4, 
                  // Src: (and:i16 GR16:i16:$src1, 255:i16) - Complexity = 8
                  // Dst: (EXTRACT_SUBREG:i16 (MOVZX32rr8:i32 (EXTRACT_SUBREG:i8 GR16:i16:$src1, sub_8bit:i32)), sub_16bit:i32)
/*63820*/       /*Scope*/ 46, /*->63867*/
/*63821*/         OPC_CheckPatternPredicate, 3, // (!Subtarget->is64Bit())
/*63823*/         OPC_EmitInteger, MVT::i32, X86::GR16_ABCDRegClassID,
/*63826*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      1/*#VTs*/, MVT::i16, 2/*#Ops*/, 0, 1,  // Results = #2 
/*63835*/         OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*63838*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      1/*#VTs*/, MVT::i8, 2/*#Ops*/, 2, 3,  // Results = #4 
/*63847*/         OPC_EmitNode, TARGET_VAL(X86::MOVZX32rr8), 0,
                      1/*#VTs*/, MVT::i32, 1/*#Ops*/, 4,  // Results = #5 
/*63855*/         OPC_EmitInteger, MVT::i32, X86::sub_16bit,
/*63858*/         OPC_MorphNodeTo, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      1/*#VTs*/, MVT::i16, 2/*#Ops*/, 5, 6, 
                  // Src: (and:i16 GR16:i16:$src1, 255:i16) - Complexity = 8
                  // Dst: (EXTRACT_SUBREG:i16 (MOVZX32rr8:i32 (EXTRACT_SUBREG:i8 (COPY_TO_REGCLASS:i16 GR16:i16:$src1, GR16_ABCD:i16), sub_8bit:i32)), sub_16bit:i32)
/*63867*/       0, /*End of Scope*/
              0, // EndSwitchType
/*63869*/   /*Scope*/ 25|128,2/*281*/, /*->64152*/
/*63871*/     OPC_RecordChild0, // #0 = $src1
/*63872*/     OPC_RecordChild1, // #1 = $src2
/*63873*/     OPC_Scope, 95|128,1/*223*/, /*->64099*/ // 5 children in Scope
/*63876*/       OPC_MoveChild, 1,
/*63878*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*63881*/       OPC_Scope, 17, /*->63900*/ // 7 children in Scope
/*63883*/         OPC_CheckPredicate, 8, // Predicate_i16immSExt8
/*63885*/         OPC_MoveParent,
/*63886*/         OPC_CheckType, MVT::i16,
/*63888*/         OPC_EmitConvertToTarget, 1,
/*63890*/         OPC_MorphNodeTo, TARGET_VAL(X86::AND16ri8), 0,
                      2/*#VTs*/, MVT::i16, MVT::i32, 2/*#Ops*/, 0, 2, 
                  // Src: (and:i16 GR16:i16:$src1, (imm:i16)<<P:Predicate_i16immSExt8>>:$src2) - Complexity = 7
                  // Dst: (AND16ri8:i16:i32 GR16:i16:$src1, (imm:i16)<<P:Predicate_i16immSExt8>>:$src2)
/*63900*/       /*Scope*/ 17, /*->63918*/
/*63901*/         OPC_CheckPredicate, 9, // Predicate_i32immSExt8
/*63903*/         OPC_MoveParent,
/*63904*/         OPC_CheckType, MVT::i32,
/*63906*/         OPC_EmitConvertToTarget, 1,
/*63908*/         OPC_MorphNodeTo, TARGET_VAL(X86::AND32ri8), 0,
                      2/*#VTs*/, MVT::i32, MVT::i32, 2/*#Ops*/, 0, 2, 
                  // Src: (and:i32 GR32:i32:$src1, (imm:i32)<<P:Predicate_i32immSExt8>>:$src2) - Complexity = 7
                  // Dst: (AND32ri8:i32:i32 GR32:i32:$src1, (imm:i32)<<P:Predicate_i32immSExt8>>:$src2)
/*63918*/       /*Scope*/ 17, /*->63936*/
/*63919*/         OPC_CheckPredicate, 10, // Predicate_i64immSExt8
/*63921*/         OPC_MoveParent,
/*63922*/         OPC_CheckType, MVT::i64,
/*63924*/         OPC_EmitConvertToTarget, 1,
/*63926*/         OPC_MorphNodeTo, TARGET_VAL(X86::AND64ri8), 0,
                      2/*#VTs*/, MVT::i64, MVT::i32, 2/*#Ops*/, 0, 2, 
                  // Src: (and:i64 GR64:i64:$src1, (imm:i64)<<P:Predicate_i64immSExt8>>:$src2) - Complexity = 7
                  // Dst: (AND64ri8:i64:i32 GR64:i64:$src1, (imm:i64)<<P:Predicate_i64immSExt8>>:$src2)
/*63936*/       /*Scope*/ 17, /*->63954*/
/*63937*/         OPC_CheckPredicate, 11, // Predicate_i64immSExt32
/*63939*/         OPC_MoveParent,
/*63940*/         OPC_CheckType, MVT::i64,
/*63942*/         OPC_EmitConvertToTarget, 1,
/*63944*/         OPC_MorphNodeTo, TARGET_VAL(X86::AND64ri32), 0,
                      2/*#VTs*/, MVT::i64, MVT::i32, 2/*#Ops*/, 0, 2, 
                  // Src: (and:i64 GR64:i64:$src1, (imm:i64)<<P:Predicate_i64immSExt32>>:$src2) - Complexity = 7
                  // Dst: (AND64ri32:i64:i32 GR64:i64:$src1, (imm:i64)<<P:Predicate_i64immSExt32>>:$src2)
/*63954*/       /*Scope*/ 48, /*->64003*/
/*63955*/         OPC_CheckPredicate, 26, // Predicate_i64immZExt32SExt8
/*63957*/         OPC_MoveParent,
/*63958*/         OPC_CheckType, MVT::i64,
/*63960*/         OPC_EmitInteger, MVT::i64, 0, 
/*63963*/         OPC_EmitInteger, MVT::i32, X86::sub_32bit,
/*63966*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      1/*#VTs*/, MVT::i32, 2/*#Ops*/, 0, 3,  // Results = #4 
/*63975*/         OPC_EmitConvertToTarget, 1,
/*63977*/         OPC_EmitNodeXForm, 1, 5, // GetLo8XForm
/*63980*/         OPC_EmitNode, TARGET_VAL(X86::AND32ri8), 0,
                      2/*#VTs*/, MVT::i32, MVT::i32, 2/*#Ops*/, 4, 6,  // Results = #7 #8 
/*63990*/         OPC_EmitInteger, MVT::i32, X86::sub_32bit,
/*63993*/         OPC_MorphNodeTo, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                      1/*#VTs*/, MVT::i64, 3/*#Ops*/, 2, 7, 9, 
                  // Src: (and:i64 GR64:i64:$src, (imm:i64)<<P:Predicate_i64immZExt32SExt8>>:$imm) - Complexity = 7
                  // Dst: (SUBREG_TO_REG:i64 0:i64, (AND32ri8:i32:i32 (EXTRACT_SUBREG:i32 GR64:i64:$src, sub_32bit:i32), (GetLo8XForm:i32 (imm:i64):$imm)), sub_32bit:i32)
/*64003*/       /*Scope*/ 48, /*->64052*/
/*64004*/         OPC_CheckPredicate, 27, // Predicate_i64immZExt32
/*64006*/         OPC_MoveParent,
/*64007*/         OPC_CheckType, MVT::i64,
/*64009*/         OPC_EmitInteger, MVT::i64, 0, 
/*64012*/         OPC_EmitInteger, MVT::i32, X86::sub_32bit,
/*64015*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      1/*#VTs*/, MVT::i32, 2/*#Ops*/, 0, 3,  // Results = #4 
/*64024*/         OPC_EmitConvertToTarget, 1,
/*64026*/         OPC_EmitNodeXForm, 2, 5, // GetLo32XForm
/*64029*/         OPC_EmitNode, TARGET_VAL(X86::AND32ri), 0,
                      2/*#VTs*/, MVT::i32, MVT::i32, 2/*#Ops*/, 4, 6,  // Results = #7 #8 
/*64039*/         OPC_EmitInteger, MVT::i32, X86::sub_32bit,
/*64042*/         OPC_MorphNodeTo, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                      1/*#VTs*/, MVT::i64, 3/*#Ops*/, 2, 7, 9, 
                  // Src: (and:i64 GR64:i64:$src, (imm:i64)<<P:Predicate_i64immZExt32>>:$imm) - Complexity = 7
                  // Dst: (SUBREG_TO_REG:i64 0:i64, (AND32ri:i32:i32 (EXTRACT_SUBREG:i32 GR64:i64:$src, sub_32bit:i32), (GetLo32XForm:i32 (imm:i64):$imm)), sub_32bit:i32)
/*64052*/       /*Scope*/ 45, /*->64098*/
/*64053*/         OPC_MoveParent,
/*64054*/         OPC_SwitchType /*3 cases */, 12,  MVT::i8,// ->64069
/*64057*/           OPC_EmitConvertToTarget, 1,
/*64059*/           OPC_MorphNodeTo, TARGET_VAL(X86::AND8ri), 0,
                        2/*#VTs*/, MVT::i8, MVT::i32, 2/*#Ops*/, 0, 2, 
                    // Src: (and:i8 GR8:i8:$src1, (imm:i8):$src2) - Complexity = 6
                    // Dst: (AND8ri:i8:i32 GR8:i8:$src1, (imm:i8):$src2)
                  /*SwitchType*/ 12,  MVT::i16,// ->64083
/*64071*/           OPC_EmitConvertToTarget, 1,
/*64073*/           OPC_MorphNodeTo, TARGET_VAL(X86::AND16ri), 0,
                        2/*#VTs*/, MVT::i16, MVT::i32, 2/*#Ops*/, 0, 2, 
                    // Src: (and:i16 GR16:i16:$src1, (imm:i16):$src2) - Complexity = 6
                    // Dst: (AND16ri:i16:i32 GR16:i16:$src1, (imm:i16):$src2)
                  /*SwitchType*/ 12,  MVT::i32,// ->64097
/*64085*/           OPC_EmitConvertToTarget, 1,
/*64087*/           OPC_MorphNodeTo, TARGET_VAL(X86::AND32ri), 0,
                        2/*#VTs*/, MVT::i32, MVT::i32, 2/*#Ops*/, 0, 2, 
                    // Src: (and:i32 GR32:i32:$src1, (imm:i32):$src2) - Complexity = 6
                    // Dst: (AND32ri:i32:i32 GR32:i32:$src1, (imm:i32):$src2)
                  0, // EndSwitchType
/*64098*/       0, /*End of Scope*/
/*64099*/     /*Scope*/ 12, /*->64112*/
/*64100*/       OPC_CheckType, MVT::i8,
/*64102*/       OPC_MorphNodeTo, TARGET_VAL(X86::AND8rr), 0,
                    2/*#VTs*/, MVT::i8, MVT::i32, 2/*#Ops*/, 0, 1, 
                // Src: (and:i8 GR8:i8:$src1, GR8:i8:$src2) - Complexity = 3
                // Dst: (AND8rr:i8:i32 GR8:i8:$src1, GR8:i8:$src2)
/*64112*/     /*Scope*/ 12, /*->64125*/
/*64113*/       OPC_CheckType, MVT::i16,
/*64115*/       OPC_MorphNodeTo, TARGET_VAL(X86::AND16rr), 0,
                    2/*#VTs*/, MVT::i16, MVT::i32, 2/*#Ops*/, 0, 1, 
                // Src: (and:i16 GR16:i16:$src1, GR16:i16:$src2) - Complexity = 3
                // Dst: (AND16rr:i16:i32 GR16:i16:$src1, GR16:i16:$src2)
/*64125*/     /*Scope*/ 12, /*->64138*/
/*64126*/       OPC_CheckType, MVT::i32,
/*64128*/       OPC_MorphNodeTo, TARGET_VAL(X86::AND32rr), 0,
                    2/*#VTs*/, MVT::i32, MVT::i32, 2/*#Ops*/, 0, 1, 
                // Src: (and:i32 GR32:i32:$src1, GR32:i32:$src2) - Complexity = 3
                // Dst: (AND32rr:i32:i32 GR32:i32:$src1, GR32:i32:$src2)
/*64138*/     /*Scope*/ 12, /*->64151*/
/*64139*/       OPC_CheckType, MVT::i64,
/*64141*/       OPC_MorphNodeTo, TARGET_VAL(X86::AND64rr), 0,
                    2/*#VTs*/, MVT::i64, MVT::i32, 2/*#Ops*/, 0, 1, 
                // Src: (and:i64 GR64:i64:$src1, GR64:i64:$src2) - Complexity = 3
                // Dst: (AND64rr:i64:i32 GR64:i64:$src1, GR64:i64:$src2)
/*64151*/     0, /*End of Scope*/
/*64152*/   /*Scope*/ 6|128,3/*390*/, /*->64544*/
/*64154*/     OPC_MoveChild, 0,
/*64156*/     OPC_SwitchOpcode /*2 cases */, 85|128,1/*213*/,  TARGET_VAL(ISD::BITCAST),// ->64374
/*64161*/       OPC_RecordChild0, // #0 = $src1
/*64162*/       OPC_Scope, 40, /*->64204*/ // 4 children in Scope
/*64164*/         OPC_CheckChild0Type, MVT::v8f32,
/*64166*/         OPC_MoveParent,
/*64167*/         OPC_MoveChild, 1,
/*64169*/         OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*64172*/         OPC_RecordMemRef,
/*64173*/         OPC_RecordNode, // #1 = 'ld' chained node
/*64174*/         OPC_CheckFoldableChainNode,
/*64175*/         OPC_RecordChild1, // #2 = $src2
/*64176*/         OPC_CheckPredicate, 2, // Predicate_unindexedload
/*64178*/         OPC_CheckPredicate, 3, // Predicate_load
/*64180*/         OPC_CheckPredicate, 23, // Predicate_memop
/*64182*/         OPC_MoveParent,
/*64183*/         OPC_CheckType, MVT::v4i64,
/*64185*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*64187*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*64190*/         OPC_EmitMergeInputChains1_1,
/*64191*/         OPC_MorphNodeTo, TARGET_VAL(X86::VANDPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (and:v4i64 (bitconvert:v4i64 VR256:v8f32:$src1), (ld:v4i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 28
                  // Dst: (VANDPSYrm:v4i64 VR256:v8f32:$src1, addr:iPTR:$src2)
/*64204*/       /*Scope*/ 40, /*->64245*/
/*64205*/         OPC_CheckChild0Type, MVT::v4f64,
/*64207*/         OPC_MoveParent,
/*64208*/         OPC_MoveChild, 1,
/*64210*/         OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*64213*/         OPC_RecordMemRef,
/*64214*/         OPC_RecordNode, // #1 = 'ld' chained node
/*64215*/         OPC_CheckFoldableChainNode,
/*64216*/         OPC_RecordChild1, // #2 = $src2
/*64217*/         OPC_CheckPredicate, 2, // Predicate_unindexedload
/*64219*/         OPC_CheckPredicate, 3, // Predicate_load
/*64221*/         OPC_CheckPredicate, 23, // Predicate_memop
/*64223*/         OPC_MoveParent,
/*64224*/         OPC_CheckType, MVT::v4i64,
/*64226*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*64228*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*64231*/         OPC_EmitMergeInputChains1_1,
/*64232*/         OPC_MorphNodeTo, TARGET_VAL(X86::VANDPDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (and:v4i64 (bitconvert:v4i64 VR256:v4f64:$src1), (ld:v4i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 28
                  // Dst: (VANDPDYrm:v4i64 VR256:v4f64:$src1, addr:iPTR:$src2)
/*64245*/       /*Scope*/ 63, /*->64309*/
/*64246*/         OPC_CheckChild0Type, MVT::v4f32,
/*64248*/         OPC_MoveParent,
/*64249*/         OPC_MoveChild, 1,
/*64251*/         OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*64254*/         OPC_RecordMemRef,
/*64255*/         OPC_RecordNode, // #1 = 'ld' chained node
/*64256*/         OPC_CheckFoldableChainNode,
/*64257*/         OPC_RecordChild1, // #2 = $src2
/*64258*/         OPC_CheckPredicate, 2, // Predicate_unindexedload
/*64260*/         OPC_CheckPredicate, 3, // Predicate_load
/*64262*/         OPC_CheckPredicate, 23, // Predicate_memop
/*64264*/         OPC_MoveParent,
/*64265*/         OPC_CheckType, MVT::v2i64,
/*64267*/         OPC_Scope, 19, /*->64288*/ // 2 children in Scope
/*64269*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*64271*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*64274*/           OPC_EmitMergeInputChains1_1,
/*64275*/           OPC_MorphNodeTo, TARGET_VAL(X86::VANDPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (and:v2i64 (bitconvert:v2i64 VR128:v4f32:$src1), (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 28
                    // Dst: (VANDPSrm:v2i64 VR128:v4f32:$src1, addr:iPTR:$src2)
/*64288*/         /*Scope*/ 19, /*->64308*/
/*64289*/           OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*64291*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*64294*/           OPC_EmitMergeInputChains1_1,
/*64295*/           OPC_MorphNodeTo, TARGET_VAL(X86::ANDPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (and:v2i64 (bitconvert:v2i64 VR128:v4f32:$src1), (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 28
                    // Dst: (ANDPSrm:v2i64 VR128:v4f32:$src1, addr:iPTR:$src2)
/*64308*/         0, /*End of Scope*/
/*64309*/       /*Scope*/ 63, /*->64373*/
/*64310*/         OPC_CheckChild0Type, MVT::v2f64,
/*64312*/         OPC_MoveParent,
/*64313*/         OPC_MoveChild, 1,
/*64315*/         OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*64318*/         OPC_RecordMemRef,
/*64319*/         OPC_RecordNode, // #1 = 'ld' chained node
/*64320*/         OPC_CheckFoldableChainNode,
/*64321*/         OPC_RecordChild1, // #2 = $src2
/*64322*/         OPC_CheckPredicate, 2, // Predicate_unindexedload
/*64324*/         OPC_CheckPredicate, 3, // Predicate_load
/*64326*/         OPC_CheckPredicate, 23, // Predicate_memop
/*64328*/         OPC_MoveParent,
/*64329*/         OPC_CheckType, MVT::v2i64,
/*64331*/         OPC_Scope, 19, /*->64352*/ // 2 children in Scope
/*64333*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*64335*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*64338*/           OPC_EmitMergeInputChains1_1,
/*64339*/           OPC_MorphNodeTo, TARGET_VAL(X86::VANDPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (and:v2i64 (bitconvert:v2i64 VR128:v2f64:$src1), (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 28
                    // Dst: (VANDPDrm:v2i64 VR128:v2f64:$src1, addr:iPTR:$src2)
/*64352*/         /*Scope*/ 19, /*->64372*/
/*64353*/           OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*64355*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*64358*/           OPC_EmitMergeInputChains1_1,
/*64359*/           OPC_MorphNodeTo, TARGET_VAL(X86::ANDPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (and:v2i64 (bitconvert:v2i64 VR128:v2f64:$src1), (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 28
                    // Dst: (ANDPDrm:v2i64 VR128:v2f64:$src1, addr:iPTR:$src2)
/*64372*/         0, /*End of Scope*/
/*64373*/       0, /*End of Scope*/
              /*SwitchOpcode*/ 37|128,1/*165*/,  TARGET_VAL(ISD::LOAD),// ->64543
/*64378*/       OPC_RecordMemRef,
/*64379*/       OPC_RecordNode, // #0 = 'ld' chained node
/*64380*/       OPC_CheckFoldableChainNode,
/*64381*/       OPC_RecordChild1, // #1 = $src2
/*64382*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*64384*/       OPC_CheckPredicate, 3, // Predicate_load
/*64386*/       OPC_CheckPredicate, 23, // Predicate_memop
/*64388*/       OPC_MoveParent,
/*64389*/       OPC_MoveChild, 1,
/*64391*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*64394*/       OPC_RecordChild0, // #2 = $src1
/*64395*/       OPC_Scope, 24, /*->64421*/ // 4 children in Scope
/*64397*/         OPC_CheckChild0Type, MVT::v8f32,
/*64399*/         OPC_MoveParent,
/*64400*/         OPC_CheckType, MVT::v4i64,
/*64402*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*64404*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*64407*/         OPC_EmitMergeInputChains1_0,
/*64408*/         OPC_MorphNodeTo, TARGET_VAL(X86::VANDPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (and:v4i64 (ld:v4i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, (bitconvert:v4i64 VR256:v8f32:$src1)) - Complexity = 28
                  // Dst: (VANDPSYrm:v4i64 VR256:v8f32:$src1, addr:iPTR:$src2)
/*64421*/       /*Scope*/ 24, /*->64446*/
/*64422*/         OPC_CheckChild0Type, MVT::v4f64,
/*64424*/         OPC_MoveParent,
/*64425*/         OPC_CheckType, MVT::v4i64,
/*64427*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*64429*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*64432*/         OPC_EmitMergeInputChains1_0,
/*64433*/         OPC_MorphNodeTo, TARGET_VAL(X86::VANDPDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (and:v4i64 (ld:v4i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, (bitconvert:v4i64 VR256:v4f64:$src1)) - Complexity = 28
                  // Dst: (VANDPDYrm:v4i64 VR256:v4f64:$src1, addr:iPTR:$src2)
/*64446*/       /*Scope*/ 47, /*->64494*/
/*64447*/         OPC_CheckChild0Type, MVT::v4f32,
/*64449*/         OPC_MoveParent,
/*64450*/         OPC_CheckType, MVT::v2i64,
/*64452*/         OPC_Scope, 19, /*->64473*/ // 2 children in Scope
/*64454*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*64456*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*64459*/           OPC_EmitMergeInputChains1_0,
/*64460*/           OPC_MorphNodeTo, TARGET_VAL(X86::VANDPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v2i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (and:v2i64 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, (bitconvert:v2i64 VR128:v4f32:$src1)) - Complexity = 28
                    // Dst: (VANDPSrm:v2i64 VR128:v4f32:$src1, addr:iPTR:$src2)
/*64473*/         /*Scope*/ 19, /*->64493*/
/*64474*/           OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*64476*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*64479*/           OPC_EmitMergeInputChains1_0,
/*64480*/           OPC_MorphNodeTo, TARGET_VAL(X86::ANDPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v2i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (and:v2i64 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, (bitconvert:v2i64 VR128:v4f32:$src1)) - Complexity = 28
                    // Dst: (ANDPSrm:v2i64 VR128:v4f32:$src1, addr:iPTR:$src2)
/*64493*/         0, /*End of Scope*/
/*64494*/       /*Scope*/ 47, /*->64542*/
/*64495*/         OPC_CheckChild0Type, MVT::v2f64,
/*64497*/         OPC_MoveParent,
/*64498*/         OPC_CheckType, MVT::v2i64,
/*64500*/         OPC_Scope, 19, /*->64521*/ // 2 children in Scope
/*64502*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*64504*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*64507*/           OPC_EmitMergeInputChains1_0,
/*64508*/           OPC_MorphNodeTo, TARGET_VAL(X86::VANDPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v2i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (and:v2i64 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, (bitconvert:v2i64 VR128:v2f64:$src1)) - Complexity = 28
                    // Dst: (VANDPDrm:v2i64 VR128:v2f64:$src1, addr:iPTR:$src2)
/*64521*/         /*Scope*/ 19, /*->64541*/
/*64522*/           OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*64524*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*64527*/           OPC_EmitMergeInputChains1_0,
/*64528*/           OPC_MorphNodeTo, TARGET_VAL(X86::ANDPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v2i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (and:v2i64 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, (bitconvert:v2i64 VR128:v2f64:$src1)) - Complexity = 28
                    // Dst: (ANDPDrm:v2i64 VR128:v2f64:$src1, addr:iPTR:$src2)
/*64541*/         0, /*End of Scope*/
/*64542*/       0, /*End of Scope*/
              0, // EndSwitchOpcode
/*64544*/   /*Scope*/ 61, /*->64606*/
/*64545*/     OPC_RecordChild0, // #0 = $src1
/*64546*/     OPC_MoveChild, 1,
/*64548*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*64551*/     OPC_RecordMemRef,
/*64552*/     OPC_RecordNode, // #1 = 'ld' chained node
/*64553*/     OPC_CheckFoldableChainNode,
/*64554*/     OPC_RecordChild1, // #2 = $src2
/*64555*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*64557*/     OPC_CheckPredicate, 3, // Predicate_load
/*64559*/     OPC_CheckPredicate, 23, // Predicate_memop
/*64561*/     OPC_MoveParent,
/*64562*/     OPC_CheckType, MVT::v2i64,
/*64564*/     OPC_Scope, 19, /*->64585*/ // 2 children in Scope
/*64566*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*64568*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*64571*/       OPC_EmitMergeInputChains1_1,
/*64572*/       OPC_MorphNodeTo, TARGET_VAL(X86::VPANDrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (and:v2i64 VR128:v2i64:$src1, (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                // Dst: (VPANDrm:v2i64 VR128:v2i64:$src1, addr:iPTR:$src2)
/*64585*/     /*Scope*/ 19, /*->64605*/
/*64586*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*64588*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*64591*/       OPC_EmitMergeInputChains1_1,
/*64592*/       OPC_MorphNodeTo, TARGET_VAL(X86::PANDrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (and:v2i64 VR128:v2i64:$src1, (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                // Dst: (PANDrm:v2i64 VR128:v2i64:$src1, addr:iPTR:$src2)
/*64605*/     0, /*End of Scope*/
/*64606*/   /*Scope*/ 8|128,1/*136*/, /*->64744*/
/*64608*/     OPC_MoveChild, 0,
/*64610*/     OPC_SwitchOpcode /*2 cases */, 56,  TARGET_VAL(ISD::LOAD),// ->64670
/*64614*/       OPC_RecordMemRef,
/*64615*/       OPC_RecordNode, // #0 = 'ld' chained node
/*64616*/       OPC_CheckFoldableChainNode,
/*64617*/       OPC_RecordChild1, // #1 = $src2
/*64618*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*64620*/       OPC_CheckPredicate, 3, // Predicate_load
/*64622*/       OPC_CheckPredicate, 23, // Predicate_memop
/*64624*/       OPC_MoveParent,
/*64625*/       OPC_RecordChild1, // #2 = $src1
/*64626*/       OPC_CheckType, MVT::v2i64,
/*64628*/       OPC_Scope, 19, /*->64649*/ // 2 children in Scope
/*64630*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*64632*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*64635*/         OPC_EmitMergeInputChains1_0,
/*64636*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPANDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v2i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (and:v2i64 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, VR128:v2i64:$src1) - Complexity = 25
                  // Dst: (VPANDrm:v2i64 VR128:v2i64:$src1, addr:iPTR:$src2)
/*64649*/       /*Scope*/ 19, /*->64669*/
/*64650*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*64652*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*64655*/         OPC_EmitMergeInputChains1_0,
/*64656*/         OPC_MorphNodeTo, TARGET_VAL(X86::PANDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v2i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (and:v2i64 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, VR128:v2i64:$src1) - Complexity = 25
                  // Dst: (PANDrm:v2i64 VR128:v2i64:$src1, addr:iPTR:$src2)
/*64669*/       0, /*End of Scope*/
              /*SwitchOpcode*/ 70,  TARGET_VAL(ISD::BITCAST),// ->64743
/*64673*/       OPC_RecordChild0, // #0 = $src1
/*64674*/       OPC_Scope, 25, /*->64701*/ // 2 children in Scope
/*64676*/         OPC_CheckChild0Type, MVT::v4f64,
/*64678*/         OPC_MoveParent,
/*64679*/         OPC_MoveChild, 1,
/*64681*/         OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*64684*/         OPC_RecordChild0, // #1 = $src2
/*64685*/         OPC_CheckChild0Type, MVT::v4f64,
/*64687*/         OPC_MoveParent,
/*64688*/         OPC_CheckType, MVT::v4i64,
/*64690*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*64692*/         OPC_MorphNodeTo, TARGET_VAL(X86::VANDPDYrr), 0,
                      1/*#VTs*/, MVT::v4i64, 2/*#Ops*/, 0, 1, 
                  // Src: (and:v4i64 (bitconvert:v4i64 VR256:v4f64:$src1), (bitconvert:v4i64 VR256:v4f64:$src2)) - Complexity = 9
                  // Dst: (VANDPDYrr:v4i64 VR256:v4f64:$src1, VR256:v4f64:$src2)
/*64701*/       /*Scope*/ 40, /*->64742*/
/*64702*/         OPC_CheckChild0Type, MVT::v2f64,
/*64704*/         OPC_MoveParent,
/*64705*/         OPC_MoveChild, 1,
/*64707*/         OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*64710*/         OPC_RecordChild0, // #1 = $src2
/*64711*/         OPC_CheckChild0Type, MVT::v2f64,
/*64713*/         OPC_MoveParent,
/*64714*/         OPC_CheckType, MVT::v2i64,
/*64716*/         OPC_Scope, 11, /*->64729*/ // 2 children in Scope
/*64718*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*64720*/           OPC_MorphNodeTo, TARGET_VAL(X86::VANDPDrr), 0,
                        1/*#VTs*/, MVT::v2i64, 2/*#Ops*/, 0, 1, 
                    // Src: (and:v2i64 (bitconvert:v2i64 VR128:v2f64:$src1), (bitconvert:v2i64 VR128:v2f64:$src2)) - Complexity = 9
                    // Dst: (VANDPDrr:v2i64 VR128:v2f64:$src1, VR128:v2f64:$src2)
/*64729*/         /*Scope*/ 11, /*->64741*/
/*64730*/           OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*64732*/           OPC_MorphNodeTo, TARGET_VAL(X86::ANDPDrr), 0,
                        1/*#VTs*/, MVT::v2i64, 2/*#Ops*/, 0, 1, 
                    // Src: (and:v2i64 (bitconvert:v2i64 VR128:v2f64:$src1), (bitconvert:v2i64 VR128:v2f64:$src2)) - Complexity = 9
                    // Dst: (ANDPDrr:v2i64 VR128:v2f64:$src1, VR128:v2f64:$src2)
/*64741*/         0, /*End of Scope*/
/*64742*/       0, /*End of Scope*/
              0, // EndSwitchOpcode
/*64744*/   /*Scope*/ 57, /*->64802*/
/*64745*/     OPC_RecordChild0, // #0 = $src1
/*64746*/     OPC_RecordChild1, // #1 = $src2
/*64747*/     OPC_SwitchType /*2 cases */, 11,  MVT::v4i64,// ->64761
/*64750*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*64752*/       OPC_MorphNodeTo, TARGET_VAL(X86::VANDPSYrr), 0,
                    1/*#VTs*/, MVT::v4i64, 2/*#Ops*/, 0, 1, 
                // Src: (and:v4i64 VR256:v4i64:$src1, VR256:v4i64:$src2) - Complexity = 3
                // Dst: (VANDPSYrr:v4i64 VR256:v4i64:$src1, VR256:v4i64:$src2)
              /*SwitchType*/ 38,  MVT::v2i64,// ->64801
/*64763*/       OPC_Scope, 11, /*->64776*/ // 3 children in Scope
/*64765*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*64767*/         OPC_MorphNodeTo, TARGET_VAL(X86::ANDPSrr), 0,
                      1/*#VTs*/, MVT::v2i64, 2/*#Ops*/, 0, 1, 
                  // Src: (and:v2i64 VR128:v2i64:$src1, VR128:v2i64:$src2) - Complexity = 3
                  // Dst: (ANDPSrr:v2i64 VR128:v2i64:$src1, VR128:v2i64:$src2)
/*64776*/       /*Scope*/ 11, /*->64788*/
/*64777*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*64779*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPANDrr), 0,
                      1/*#VTs*/, MVT::v2i64, 2/*#Ops*/, 0, 1, 
                  // Src: (and:v2i64 VR128:v2i64:$src1, VR128:v2i64:$src2) - Complexity = 3
                  // Dst: (VPANDrr:v2i64 VR128:v2i64:$src1, VR128:v2i64:$src2)
/*64788*/       /*Scope*/ 11, /*->64800*/
/*64789*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*64791*/         OPC_MorphNodeTo, TARGET_VAL(X86::PANDrr), 0,
                      1/*#VTs*/, MVT::v2i64, 2/*#Ops*/, 0, 1, 
                  // Src: (and:v2i64 VR128:v2i64:$src1, VR128:v2i64:$src2) - Complexity = 3
                  // Dst: (PANDrr:v2i64 VR128:v2i64:$src1, VR128:v2i64:$src2)
/*64800*/       0, /*End of Scope*/
              0, // EndSwitchType
/*64802*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 35|128,13/*1699*/,  TARGET_VAL(ISD::LOAD),// ->66506
/*64807*/   OPC_RecordMemRef,
/*64808*/   OPC_RecordNode,   // #0 = 'ld' chained node
/*64809*/   OPC_Scope, 66|128,5/*706*/, /*->65518*/ // 3 children in Scope
/*64812*/     OPC_RecordChild1, // #1 = $src
/*64813*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*64815*/     OPC_Scope, 20, /*->64837*/ // 13 children in Scope
/*64817*/       OPC_CheckPredicate, 3, // Predicate_load
/*64819*/       OPC_CheckType, MVT::i8,
/*64821*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*64824*/       OPC_EmitMergeInputChains1_0,
/*64825*/       OPC_MorphNodeTo, TARGET_VAL(X86::MOV8rm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i8, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (ld:i8 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 22
                // Dst: (MOV8rm:i8 addr:iPTR:$src)
/*64837*/     /*Scope*/ 20, /*->64858*/
/*64838*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*64840*/       OPC_CheckType, MVT::i16,
/*64842*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*64845*/       OPC_EmitMergeInputChains1_0,
/*64846*/       OPC_MorphNodeTo, TARGET_VAL(X86::MOV16rm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (ld:i16 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>> - Complexity = 22
                // Dst: (MOV16rm:i16 addr:iPTR:$src)
/*64858*/     /*Scope*/ 20, /*->64879*/
/*64859*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*64861*/       OPC_CheckType, MVT::i32,
/*64863*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*64866*/       OPC_EmitMergeInputChains1_0,
/*64867*/       OPC_MorphNodeTo, TARGET_VAL(X86::MOV32rm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (ld:i32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>> - Complexity = 22
                // Dst: (MOV32rm:i32 addr:iPTR:$src)
/*64879*/     /*Scope*/ 20, /*->64900*/
/*64880*/       OPC_CheckPredicate, 3, // Predicate_load
/*64882*/       OPC_CheckType, MVT::i64,
/*64884*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*64887*/       OPC_EmitMergeInputChains1_0,
/*64888*/       OPC_MorphNodeTo, TARGET_VAL(X86::MOV64rm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (ld:i64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 22
                // Dst: (MOV64rm:i64 addr:iPTR:$src)
/*64900*/     /*Scope*/ 44, /*->64945*/
/*64901*/       OPC_CheckPredicate, 28, // Predicate_sextload
/*64903*/       OPC_CheckType, MVT::i32,
/*64905*/       OPC_Scope, 18, /*->64925*/ // 2 children in Scope
/*64907*/         OPC_CheckPredicate, 29, // Predicate_sextloadi8
/*64909*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*64912*/         OPC_EmitMergeInputChains1_0,
/*64913*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOVSX32rm8), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (ld:i32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi8>> - Complexity = 22
                  // Dst: (MOVSX32rm8:i32 addr:iPTR:$src)
/*64925*/       /*Scope*/ 18, /*->64944*/
/*64926*/         OPC_CheckPredicate, 30, // Predicate_sextloadi16
/*64928*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*64931*/         OPC_EmitMergeInputChains1_0,
/*64932*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOVSX32rm16), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (ld:i32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi16>> - Complexity = 22
                  // Dst: (MOVSX32rm16:i32 addr:iPTR:$src)
/*64944*/       0, /*End of Scope*/
/*64945*/     /*Scope*/ 44, /*->64990*/
/*64946*/       OPC_CheckPredicate, 31, // Predicate_zextload
/*64948*/       OPC_CheckType, MVT::i32,
/*64950*/       OPC_Scope, 18, /*->64970*/ // 2 children in Scope
/*64952*/         OPC_CheckPredicate, 32, // Predicate_zextloadi8
/*64954*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*64957*/         OPC_EmitMergeInputChains1_0,
/*64958*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOVZX32rm8), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (ld:i32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi8>> - Complexity = 22
                  // Dst: (MOVZX32rm8:i32 addr:iPTR:$src)
/*64970*/       /*Scope*/ 18, /*->64989*/
/*64971*/         OPC_CheckPredicate, 33, // Predicate_zextloadi16
/*64973*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*64976*/         OPC_EmitMergeInputChains1_0,
/*64977*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOVZX32rm16), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (ld:i32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi16>> - Complexity = 22
                  // Dst: (MOVZX32rm16:i32 addr:iPTR:$src)
/*64989*/       0, /*End of Scope*/
/*64990*/     /*Scope*/ 63, /*->65054*/
/*64991*/       OPC_CheckPredicate, 28, // Predicate_sextload
/*64993*/       OPC_CheckType, MVT::i64,
/*64995*/       OPC_Scope, 18, /*->65015*/ // 3 children in Scope
/*64997*/         OPC_CheckPredicate, 29, // Predicate_sextloadi8
/*64999*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*65002*/         OPC_EmitMergeInputChains1_0,
/*65003*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOVSX64rm8), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (ld:i64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi8>> - Complexity = 22
                  // Dst: (MOVSX64rm8:i64 addr:iPTR:$src)
/*65015*/       /*Scope*/ 18, /*->65034*/
/*65016*/         OPC_CheckPredicate, 30, // Predicate_sextloadi16
/*65018*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*65021*/         OPC_EmitMergeInputChains1_0,
/*65022*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOVSX64rm16), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (ld:i64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi16>> - Complexity = 22
                  // Dst: (MOVSX64rm16:i64 addr:iPTR:$src)
/*65034*/       /*Scope*/ 18, /*->65053*/
/*65035*/         OPC_CheckPredicate, 34, // Predicate_sextloadi32
/*65037*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*65040*/         OPC_EmitMergeInputChains1_0,
/*65041*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOVSX64rm32), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (ld:i64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi32>> - Complexity = 22
                  // Dst: (MOVSX64rm32:i64 addr:iPTR:$src)
/*65053*/       0, /*End of Scope*/
/*65054*/     /*Scope*/ 63, /*->65118*/
/*65055*/       OPC_CheckPredicate, 31, // Predicate_zextload
/*65057*/       OPC_CheckType, MVT::i64,
/*65059*/       OPC_Scope, 18, /*->65079*/ // 3 children in Scope
/*65061*/         OPC_CheckPredicate, 32, // Predicate_zextloadi8
/*65063*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*65066*/         OPC_EmitMergeInputChains1_0,
/*65067*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOVZX64rm8), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (ld:i64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi8>> - Complexity = 22
                  // Dst: (MOVZX64rm8:i64 addr:iPTR:$src)
/*65079*/       /*Scope*/ 18, /*->65098*/
/*65080*/         OPC_CheckPredicate, 33, // Predicate_zextloadi16
/*65082*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*65085*/         OPC_EmitMergeInputChains1_0,
/*65086*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOVZX64rm16), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (ld:i64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi16>> - Complexity = 22
                  // Dst: (MOVZX64rm16:i64 addr:iPTR:$src)
/*65098*/       /*Scope*/ 18, /*->65117*/
/*65099*/         OPC_CheckPredicate, 35, // Predicate_zextloadi32
/*65101*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*65104*/         OPC_EmitMergeInputChains1_0,
/*65105*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOVZX64rm32), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (ld:i64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi32>> - Complexity = 22
                  // Dst: (MOVZX64rm32:i64 addr:iPTR:$src)
/*65117*/       0, /*End of Scope*/
/*65118*/     /*Scope*/ 22, /*->65141*/
/*65119*/       OPC_CheckPredicate, 3, // Predicate_load
/*65121*/       OPC_CheckType, MVT::x86mmx,
/*65123*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*65125*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*65128*/       OPC_EmitMergeInputChains1_0,
/*65129*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_MOVQ64rm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::x86mmx, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (ld:x86mmx addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 22
                // Dst: (MMX_MOVQ64rm:x86mmx addr:iPTR:$src)
/*65141*/     /*Scope*/ 78, /*->65220*/
/*65142*/       OPC_CheckPredicate, 31, // Predicate_zextload
/*65144*/       OPC_CheckPredicate, 36, // Predicate_zextloadi1
/*65146*/       OPC_SwitchType /*4 cases */, 16,  MVT::i8,// ->65165
/*65149*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*65152*/         OPC_EmitMergeInputChains1_0,
/*65153*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOV8rm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::i8, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (ld:i8 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi1>> - Complexity = 22
                  // Dst: (MOV8rm:i8 addr:iPTR:$src)
                /*SwitchType*/ 16,  MVT::i16,// ->65183
/*65167*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*65170*/         OPC_EmitMergeInputChains1_0,
/*65171*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOVZX16rm8), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (ld:i16 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi1>> - Complexity = 22
                  // Dst: (MOVZX16rm8:i16 addr:iPTR:$src)
                /*SwitchType*/ 16,  MVT::i32,// ->65201
/*65185*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*65188*/         OPC_EmitMergeInputChains1_0,
/*65189*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOVZX32rm8), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (ld:i32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi1>> - Complexity = 22
                  // Dst: (MOVZX32rm8:i32 addr:iPTR:$src)
                /*SwitchType*/ 16,  MVT::i64,// ->65219
/*65203*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*65206*/         OPC_EmitMergeInputChains1_0,
/*65207*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOVZX64rm8), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (ld:i64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi1>> - Complexity = 22
                  // Dst: (MOVZX64rm8:i64 addr:iPTR:$src)
                0, // EndSwitchType
/*65220*/     /*Scope*/ 97|128,1/*225*/, /*->65447*/
/*65222*/       OPC_CheckPredicate, 37, // Predicate_extload
/*65224*/       OPC_Scope, 58, /*->65284*/ // 7 children in Scope
/*65226*/         OPC_CheckPredicate, 38, // Predicate_extloadi1
/*65228*/         OPC_SwitchType /*3 cases */, 16,  MVT::i8,// ->65247
/*65231*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*65234*/           OPC_EmitMergeInputChains1_0,
/*65235*/           OPC_MorphNodeTo, TARGET_VAL(X86::MOV8rm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::i8, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:i8 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi1>> - Complexity = 22
                    // Dst: (MOV8rm:i8 addr:iPTR:$src)
                  /*SwitchType*/ 16,  MVT::i16,// ->65265
/*65249*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*65252*/           OPC_EmitMergeInputChains1_0,
/*65253*/           OPC_MorphNodeTo, TARGET_VAL(X86::MOVZX16rm8), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:i16 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi1>> - Complexity = 22
                    // Dst: (MOVZX16rm8:i16 addr:iPTR:$src)
                  /*SwitchType*/ 16,  MVT::i32,// ->65283
/*65267*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*65270*/           OPC_EmitMergeInputChains1_0,
/*65271*/           OPC_MorphNodeTo, TARGET_VAL(X86::MOVZX32rm8), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:i32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi1>> - Complexity = 22
                    // Dst: (MOVZX32rm8:i32 addr:iPTR:$src)
                  0, // EndSwitchType
/*65284*/       /*Scope*/ 40, /*->65325*/
/*65285*/         OPC_CheckPredicate, 39, // Predicate_extloadi8
/*65287*/         OPC_SwitchType /*2 cases */, 16,  MVT::i16,// ->65306
/*65290*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*65293*/           OPC_EmitMergeInputChains1_0,
/*65294*/           OPC_MorphNodeTo, TARGET_VAL(X86::MOVZX16rm8), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:i16 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi8>> - Complexity = 22
                    // Dst: (MOVZX16rm8:i16 addr:iPTR:$src)
                  /*SwitchType*/ 16,  MVT::i32,// ->65324
/*65308*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*65311*/           OPC_EmitMergeInputChains1_0,
/*65312*/           OPC_MorphNodeTo, TARGET_VAL(X86::MOVZX32rm8), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:i32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi8>> - Complexity = 22
                    // Dst: (MOVZX32rm8:i32 addr:iPTR:$src)
                  0, // EndSwitchType
/*65325*/       /*Scope*/ 20, /*->65346*/
/*65326*/         OPC_CheckPredicate, 40, // Predicate_extloadi16
/*65328*/         OPC_CheckType, MVT::i32,
/*65330*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*65333*/         OPC_EmitMergeInputChains1_0,
/*65334*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOVZX32rm16), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (ld:i32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi16>> - Complexity = 22
                  // Dst: (MOVZX32rm16:i32 addr:iPTR:$src)
/*65346*/       /*Scope*/ 20, /*->65367*/
/*65347*/         OPC_CheckPredicate, 38, // Predicate_extloadi1
/*65349*/         OPC_CheckType, MVT::i64,
/*65351*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*65354*/         OPC_EmitMergeInputChains1_0,
/*65355*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOVZX64rm8), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (ld:i64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi1>> - Complexity = 22
                  // Dst: (MOVZX64rm8:i64 addr:iPTR:$src)
/*65367*/       /*Scope*/ 20, /*->65388*/
/*65368*/         OPC_CheckPredicate, 39, // Predicate_extloadi8
/*65370*/         OPC_CheckType, MVT::i64,
/*65372*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*65375*/         OPC_EmitMergeInputChains1_0,
/*65376*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOVZX64rm8), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (ld:i64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi8>> - Complexity = 22
                  // Dst: (MOVZX64rm8:i64 addr:iPTR:$src)
/*65388*/       /*Scope*/ 20, /*->65409*/
/*65389*/         OPC_CheckPredicate, 40, // Predicate_extloadi16
/*65391*/         OPC_CheckType, MVT::i64,
/*65393*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*65396*/         OPC_EmitMergeInputChains1_0,
/*65397*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOVZX64rm16), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (ld:i64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi16>> - Complexity = 22
                  // Dst: (MOVZX64rm16:i64 addr:iPTR:$src)
/*65409*/       /*Scope*/ 36, /*->65446*/
/*65410*/         OPC_CheckPredicate, 41, // Predicate_extloadi32
/*65412*/         OPC_CheckType, MVT::i64,
/*65414*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*65417*/         OPC_EmitMergeInputChains1_0,
/*65418*/         OPC_EmitInteger, MVT::i64, 0, 
/*65421*/         OPC_EmitNode, TARGET_VAL(X86::MOV32rm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #8 
/*65433*/         OPC_EmitInteger, MVT::i32, X86::sub_32bit,
/*65436*/         OPC_MorphNodeTo, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain,
                      1/*#VTs*/, MVT::i64, 3/*#Ops*/, 7, 8, 9, 
                  // Src: (ld:i64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi32>> - Complexity = 22
                  // Dst: (SUBREG_TO_REG:i64 0:i64, (MOV32rm:i32 addr:iPTR:$src), sub_32bit:i32)
/*65446*/       0, /*End of Scope*/
/*65447*/     /*Scope*/ 34, /*->65482*/
/*65448*/       OPC_CheckPredicate, 28, // Predicate_sextload
/*65450*/       OPC_CheckPredicate, 29, // Predicate_sextloadi8
/*65452*/       OPC_CheckType, MVT::i16,
/*65454*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*65457*/       OPC_EmitMergeInputChains1_0,
/*65458*/       OPC_EmitNode, TARGET_VAL(X86::MOVSX32rm8), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #7 
/*65470*/       OPC_EmitInteger, MVT::i32, X86::sub_16bit,
/*65473*/       OPC_MorphNodeTo, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0|OPFL_Chain,
                    1/*#VTs*/, MVT::i16, 2/*#Ops*/, 7, 8, 
                // Src: (ld:i16 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi8>> - Complexity = 22
                // Dst: (EXTRACT_SUBREG:i16 (MOVSX32rm8:i32 addr:iPTR:$src), sub_16bit:i32)
/*65482*/     /*Scope*/ 34, /*->65517*/
/*65483*/       OPC_CheckPredicate, 31, // Predicate_zextload
/*65485*/       OPC_CheckPredicate, 32, // Predicate_zextloadi8
/*65487*/       OPC_CheckType, MVT::i16,
/*65489*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*65492*/       OPC_EmitMergeInputChains1_0,
/*65493*/       OPC_EmitNode, TARGET_VAL(X86::MOVZX32rm8), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #7 
/*65505*/       OPC_EmitInteger, MVT::i32, X86::sub_16bit,
/*65508*/       OPC_MorphNodeTo, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0|OPFL_Chain,
                    1/*#VTs*/, MVT::i16, 2/*#Ops*/, 7, 8, 
                // Src: (ld:i16 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi8>> - Complexity = 22
                // Dst: (EXTRACT_SUBREG:i16 (MOVZX32rm8:i32 addr:iPTR:$src), sub_16bit:i32)
/*65517*/     0, /*End of Scope*/
/*65518*/   /*Scope*/ 30, /*->65549*/
/*65519*/     OPC_MoveChild, 1,
/*65521*/     OPC_CheckOpcode, TARGET_VAL(X86ISD::Wrapper),
/*65524*/     OPC_RecordChild0, // #1 = $dst
/*65525*/     OPC_MoveChild, 0,
/*65527*/     OPC_CheckOpcode, TARGET_VAL(ISD::TargetGlobalTLSAddress),
/*65530*/     OPC_MoveParent,
/*65531*/     OPC_CheckType, MVT::i64,
/*65533*/     OPC_MoveParent,
/*65534*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*65536*/     OPC_CheckPredicate, 3, // Predicate_load
/*65538*/     OPC_CheckType, MVT::i64,
/*65540*/     OPC_EmitMergeInputChains1_0,
/*65541*/     OPC_MorphNodeTo, TARGET_VAL(X86::MOV64rm), 0|OPFL_Chain|OPFL_MemRefs,
                  1/*#VTs*/, MVT::i64, 1/*#Ops*/, 1, 
              // Src: (ld:i64 (X86Wrapper:i64 (tglobaltlsaddr:i64):$dst))<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 10
              // Dst: (MOV64rm:i64 (tglobaltlsaddr:i64):$dst)
/*65549*/   /*Scope*/ 58|128,7/*954*/, /*->66505*/
/*65551*/     OPC_RecordChild1, // #1 = $src
/*65552*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*65554*/     OPC_Scope, 103, /*->65659*/ // 5 children in Scope
/*65556*/       OPC_CheckPredicate, 3, // Predicate_load
/*65558*/       OPC_SwitchType /*3 cases */, 59,  MVT::f64,// ->65620
/*65561*/         OPC_Scope, 18, /*->65581*/ // 3 children in Scope
/*65563*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*65565*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*65568*/           OPC_EmitMergeInputChains1_0,
/*65569*/           OPC_MorphNodeTo, TARGET_VAL(X86::VMOVSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:f64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 42
                    // Dst: (VMOVSDrm:f64 addr:iPTR:$src)
/*65581*/         /*Scope*/ 18, /*->65600*/
/*65582*/           OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*65584*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*65587*/           OPC_EmitMergeInputChains1_0,
/*65588*/           OPC_MorphNodeTo, TARGET_VAL(X86::MOVSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:f64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 42
                    // Dst: (MOVSDrm:f64 addr:iPTR:$src)
/*65600*/         /*Scope*/ 18, /*->65619*/
/*65601*/           OPC_CheckPatternPredicate, 9, // (!Subtarget->hasXMMInt())
/*65603*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*65606*/           OPC_EmitMergeInputChains1_0,
/*65607*/           OPC_MorphNodeTo, TARGET_VAL(X86::LD_Fp64m), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:f64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 22
                    // Dst: (LD_Fp64m:f64 addr:iPTR:$src)
/*65619*/         0, /*End of Scope*/
                /*SwitchType*/ 18,  MVT::f32,// ->65640
/*65622*/         OPC_CheckPatternPredicate, 8, // (!Subtarget->hasXMM())
/*65624*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*65627*/         OPC_EmitMergeInputChains1_0,
/*65628*/         OPC_MorphNodeTo, TARGET_VAL(X86::LD_Fp32m), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (ld:f32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 22
                  // Dst: (LD_Fp32m:f32 addr:iPTR:$src)
                /*SwitchType*/ 16,  MVT::f80,// ->65658
/*65642*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*65645*/         OPC_EmitMergeInputChains1_0,
/*65646*/         OPC_MorphNodeTo, TARGET_VAL(X86::LD_Fp80m), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::f80, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (ld:f80 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 22
                  // Dst: (LD_Fp80m:f80 addr:iPTR:$src)
                0, // EndSwitchType
/*65659*/     /*Scope*/ 68, /*->65728*/
/*65660*/       OPC_CheckPredicate, 37, // Predicate_extload
/*65662*/       OPC_SwitchType /*2 cases */, 20,  MVT::f64,// ->65685
/*65665*/         OPC_CheckPredicate, 42, // Predicate_extloadf32
/*65667*/         OPC_CheckPatternPredicate, 9, // (!Subtarget->hasXMMInt())
/*65669*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*65672*/         OPC_EmitMergeInputChains1_0,
/*65673*/         OPC_MorphNodeTo, TARGET_VAL(X86::LD_Fp32m64), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (ld:f64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadf32>> - Complexity = 22
                  // Dst: (LD_Fp32m64:f64 addr:iPTR:$src)
                /*SwitchType*/ 40,  MVT::f80,// ->65727
/*65687*/         OPC_Scope, 18, /*->65707*/ // 2 children in Scope
/*65689*/           OPC_CheckPredicate, 43, // Predicate_extloadf64
/*65691*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*65694*/           OPC_EmitMergeInputChains1_0,
/*65695*/           OPC_MorphNodeTo, TARGET_VAL(X86::LD_Fp64m80), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::f80, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:f80 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadf64>> - Complexity = 22
                    // Dst: (LD_Fp64m80:f80 addr:iPTR:$src)
/*65707*/         /*Scope*/ 18, /*->65726*/
/*65708*/           OPC_CheckPredicate, 42, // Predicate_extloadf32
/*65710*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*65713*/           OPC_EmitMergeInputChains1_0,
/*65714*/           OPC_MorphNodeTo, TARGET_VAL(X86::LD_Fp32m80), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::f80, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:f80 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadf32>> - Complexity = 22
                    // Dst: (LD_Fp32m80:f80 addr:iPTR:$src)
/*65726*/         0, /*End of Scope*/
                0, // EndSwitchType
/*65728*/     /*Scope*/ 5|128,1/*133*/, /*->65863*/
/*65730*/       OPC_CheckPredicate, 3, // Predicate_load
/*65732*/       OPC_SwitchType /*2 cases */, 83,  MVT::f32,// ->65818
/*65735*/         OPC_Scope, 18, /*->65755*/ // 3 children in Scope
/*65737*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*65739*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*65742*/           OPC_EmitMergeInputChains1_0,
/*65743*/           OPC_MorphNodeTo, TARGET_VAL(X86::VMOVSSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:f32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 22
                    // Dst: (VMOVSSrm:f32 addr:iPTR:$src)
/*65755*/         /*Scope*/ 40, /*->65796*/
/*65756*/           OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*65758*/           OPC_Scope, 16, /*->65776*/ // 2 children in Scope
/*65760*/             OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*65763*/             OPC_EmitMergeInputChains1_0,
/*65764*/             OPC_MorphNodeTo, TARGET_VAL(X86::MOVSSrm), 0|OPFL_Chain|OPFL_MemRefs,
                          1/*#VTs*/, MVT::f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (ld:f32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 22
                      // Dst: (MOVSSrm:f32 addr:iPTR:$src)
/*65776*/           /*Scope*/ 18, /*->65795*/
/*65777*/             OPC_CheckPredicate, 44, // Predicate_alignedload
/*65779*/             OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*65782*/             OPC_EmitMergeInputChains1_0,
/*65783*/             OPC_MorphNodeTo, TARGET_VAL(X86::FsMOVAPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                          1/*#VTs*/, MVT::f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (ld:f32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_alignedload>> - Complexity = 22
                      // Dst: (FsMOVAPSrm:f32 addr:iPTR:$src)
/*65795*/           0, /*End of Scope*/
/*65796*/         /*Scope*/ 20, /*->65817*/
/*65797*/           OPC_CheckPredicate, 44, // Predicate_alignedload
/*65799*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*65801*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*65804*/           OPC_EmitMergeInputChains1_0,
/*65805*/           OPC_MorphNodeTo, TARGET_VAL(X86::FsVMOVAPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:f32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_alignedload>> - Complexity = 22
                    // Dst: (FsVMOVAPSrm:f32 addr:iPTR:$src)
/*65817*/         0, /*End of Scope*/
                /*SwitchType*/ 42,  MVT::f64,// ->65862
/*65820*/         OPC_CheckPredicate, 44, // Predicate_alignedload
/*65822*/         OPC_Scope, 18, /*->65842*/ // 2 children in Scope
/*65824*/           OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*65826*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*65829*/           OPC_EmitMergeInputChains1_0,
/*65830*/           OPC_MorphNodeTo, TARGET_VAL(X86::FsMOVAPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:f64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_alignedload>> - Complexity = 22
                    // Dst: (FsMOVAPDrm:f64 addr:iPTR:$src)
/*65842*/         /*Scope*/ 18, /*->65861*/
/*65843*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*65845*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*65848*/           OPC_EmitMergeInputChains1_0,
/*65849*/           OPC_MorphNodeTo, TARGET_VAL(X86::FsVMOVAPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:f64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_alignedload>> - Complexity = 22
                    // Dst: (FsVMOVAPDrm:f64 addr:iPTR:$src)
/*65861*/         0, /*End of Scope*/
                0, // EndSwitchType
/*65863*/     /*Scope*/ 119, /*->65983*/
/*65864*/       OPC_CheckPredicate, 37, // Predicate_extload
/*65866*/       OPC_CheckPredicate, 42, // Predicate_extloadf32
/*65868*/       OPC_CheckType, MVT::f64,
/*65870*/       OPC_Scope, 18, /*->65890*/ // 4 children in Scope
/*65872*/         OPC_CheckPatternPredicate, 24, // (Subtarget->hasSSE2()) && (OptForSize)
/*65874*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*65877*/         OPC_EmitMergeInputChains1_0,
/*65878*/         OPC_MorphNodeTo, TARGET_VAL(X86::CVTSS2SDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (ld:f64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadf32>> - Complexity = 22
                  // Dst: (CVTSS2SDrm:f64 addr:iPTR:$src)
/*65890*/       /*Scope*/ 26, /*->65917*/
/*65891*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*65893*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*65896*/         OPC_EmitMergeInputChains1_0,
/*65897*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      1/*#VTs*/, MVT::f32, 0/*#Ops*/,  // Results = #7 
/*65904*/         OPC_MorphNodeTo, TARGET_VAL(X86::VCVTSS2SDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::f64, 6/*#Ops*/, 7, 2, 3, 4, 5, 6, 
                  // Src: (ld:f64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadf32>> - Complexity = 22
                  // Dst: (VCVTSS2SDrm:f64 (IMPLICIT_DEF:f32), addr:iPTR:$src)
/*65917*/       /*Scope*/ 29, /*->65947*/
/*65918*/         OPC_CheckPatternPredicate, 25, // (Subtarget->hasSSE2()) && (!OptForSize)
/*65920*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*65923*/         OPC_EmitMergeInputChains1_0,
/*65924*/         OPC_EmitNode, TARGET_VAL(X86::MOVSSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::f32, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #7 
/*65936*/         OPC_EmitNode, TARGET_VAL(X86::CVTSS2SDrr), 0,
                      1/*#VTs*/, MVT::f64, 1/*#Ops*/, 7,  // Results = #8 
/*65944*/         OPC_CompleteMatch, 1, 8, 
                  // Src: (ld:f64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadf32>> - Complexity = 22
                  // Dst: (CVTSS2SDrr:f64 (MOVSSrm:f32 addr:iPTR:$src))
/*65947*/       /*Scope*/ 34, /*->65982*/
/*65948*/         OPC_CheckPatternPredicate, 26, // (Subtarget->hasAVX()) && (!OptForSize)
/*65950*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*65953*/         OPC_EmitMergeInputChains1_0,
/*65954*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      1/*#VTs*/, MVT::f32, 0/*#Ops*/,  // Results = #7 
/*65961*/         OPC_EmitNode, TARGET_VAL(X86::MOVSSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::f32, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #8 
/*65973*/         OPC_MorphNodeTo, TARGET_VAL(X86::VCVTSS2SDrr), 0|OPFL_Chain,
                      1/*#VTs*/, MVT::f64, 2/*#Ops*/, 7, 8, 
                  // Src: (ld:f64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadf32>> - Complexity = 22
                  // Dst: (VCVTSS2SDrr:f64 (IMPLICIT_DEF:f32), (MOVSSrm:f32 addr:iPTR:$src))
/*65982*/       0, /*End of Scope*/
/*65983*/     /*Scope*/ 7|128,4/*519*/, /*->66504*/
/*65985*/       OPC_CheckPredicate, 3, // Predicate_load
/*65987*/       OPC_SwitchType /*8 cases */, 85,  MVT::v4i32,// ->66075
/*65990*/         OPC_Scope, 20, /*->66012*/ // 2 children in Scope
/*65992*/           OPC_CheckPredicate, 44, // Predicate_alignedload
/*65994*/           OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*65996*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*65999*/           OPC_EmitMergeInputChains1_0,
/*66000*/           OPC_MorphNodeTo, TARGET_VAL(X86::MOVAPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:v4i32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_alignedload>> - Complexity = 22
                    // Dst: (MOVAPSrm:v4i32 addr:iPTR:$src)
/*66012*/         /*Scope*/ 61, /*->66074*/
/*66013*/           OPC_Scope, 18, /*->66033*/ // 3 children in Scope
/*66015*/             OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*66017*/             OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*66020*/             OPC_EmitMergeInputChains1_0,
/*66021*/             OPC_MorphNodeTo, TARGET_VAL(X86::MOVUPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                          1/*#VTs*/, MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (ld:v4i32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 22
                      // Dst: (MOVUPSrm:v4i32 addr:iPTR:$src)
/*66033*/           /*Scope*/ 20, /*->66054*/
/*66034*/             OPC_CheckPredicate, 44, // Predicate_alignedload
/*66036*/             OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*66038*/             OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*66041*/             OPC_EmitMergeInputChains1_0,
/*66042*/             OPC_MorphNodeTo, TARGET_VAL(X86::VMOVAPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                          1/*#VTs*/, MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (ld:v4i32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_alignedload>> - Complexity = 22
                      // Dst: (VMOVAPSrm:v4i32 addr:iPTR:$src)
/*66054*/           /*Scope*/ 18, /*->66073*/
/*66055*/             OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*66057*/             OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*66060*/             OPC_EmitMergeInputChains1_0,
/*66061*/             OPC_MorphNodeTo, TARGET_VAL(X86::VMOVUPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                          1/*#VTs*/, MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (ld:v4i32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 22
                      // Dst: (VMOVUPSrm:v4i32 addr:iPTR:$src)
/*66073*/           0, /*End of Scope*/
/*66074*/         0, /*End of Scope*/
                /*SwitchType*/ 82,  MVT::v2i64,// ->66159
/*66077*/         OPC_Scope, 20, /*->66099*/ // 4 children in Scope
/*66079*/           OPC_CheckPredicate, 44, // Predicate_alignedload
/*66081*/           OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*66083*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*66086*/           OPC_EmitMergeInputChains1_0,
/*66087*/           OPC_MorphNodeTo, TARGET_VAL(X86::MOVAPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:v2i64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_alignedload>> - Complexity = 22
                    // Dst: (MOVAPSrm:v2i64 addr:iPTR:$src)
/*66099*/         /*Scope*/ 18, /*->66118*/
/*66100*/           OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*66102*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*66105*/           OPC_EmitMergeInputChains1_0,
/*66106*/           OPC_MorphNodeTo, TARGET_VAL(X86::MOVUPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:v2i64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 22
                    // Dst: (MOVUPSrm:v2i64 addr:iPTR:$src)
/*66118*/         /*Scope*/ 20, /*->66139*/
/*66119*/           OPC_CheckPredicate, 44, // Predicate_alignedload
/*66121*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*66123*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*66126*/           OPC_EmitMergeInputChains1_0,
/*66127*/           OPC_MorphNodeTo, TARGET_VAL(X86::VMOVAPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:v2i64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_alignedload>> - Complexity = 22
                    // Dst: (VMOVAPSrm:v2i64 addr:iPTR:$src)
/*66139*/         /*Scope*/ 18, /*->66158*/
/*66140*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*66142*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*66145*/           OPC_EmitMergeInputChains1_0,
/*66146*/           OPC_MorphNodeTo, TARGET_VAL(X86::VMOVUPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:v2i64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 22
                    // Dst: (VMOVUPSrm:v2i64 addr:iPTR:$src)
/*66158*/         0, /*End of Scope*/
                /*SwitchType*/ 42,  MVT::v4i64,// ->66203
/*66161*/         OPC_Scope, 20, /*->66183*/ // 2 children in Scope
/*66163*/           OPC_CheckPredicate, 45, // Predicate_alignedload256
/*66165*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*66167*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*66170*/           OPC_EmitMergeInputChains1_0,
/*66171*/           OPC_MorphNodeTo, TARGET_VAL(X86::VMOVAPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:v4i64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_alignedload256>> - Complexity = 22
                    // Dst: (VMOVAPSYrm:v4i64 addr:iPTR:$src)
/*66183*/         /*Scope*/ 18, /*->66202*/
/*66184*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*66186*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*66189*/           OPC_EmitMergeInputChains1_0,
/*66190*/           OPC_MorphNodeTo, TARGET_VAL(X86::VMOVUPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:v4i64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 22
                    // Dst: (VMOVUPSYrm:v4i64 addr:iPTR:$src)
/*66202*/         0, /*End of Scope*/
                /*SwitchType*/ 42,  MVT::v8i32,// ->66247
/*66205*/         OPC_Scope, 20, /*->66227*/ // 2 children in Scope
/*66207*/           OPC_CheckPredicate, 45, // Predicate_alignedload256
/*66209*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*66211*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*66214*/           OPC_EmitMergeInputChains1_0,
/*66215*/           OPC_MorphNodeTo, TARGET_VAL(X86::VMOVAPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v8i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:v8i32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_alignedload256>> - Complexity = 22
                    // Dst: (VMOVAPSYrm:v8i32 addr:iPTR:$src)
/*66227*/         /*Scope*/ 18, /*->66246*/
/*66228*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*66230*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*66233*/           OPC_EmitMergeInputChains1_0,
/*66234*/           OPC_MorphNodeTo, TARGET_VAL(X86::VMOVUPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v8i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:v8i32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 22
                    // Dst: (VMOVUPSYrm:v8i32 addr:iPTR:$src)
/*66246*/         0, /*End of Scope*/
                /*SwitchType*/ 82,  MVT::v4f32,// ->66331
/*66249*/         OPC_Scope, 20, /*->66271*/ // 4 children in Scope
/*66251*/           OPC_CheckPredicate, 44, // Predicate_alignedload
/*66253*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*66255*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*66258*/           OPC_EmitMergeInputChains1_0,
/*66259*/           OPC_MorphNodeTo, TARGET_VAL(X86::VMOVAPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v4f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:v4f32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_alignedload>> - Complexity = 22
                    // Dst: (VMOVAPSrm:v4f32 addr:iPTR:$src)
/*66271*/         /*Scope*/ 18, /*->66290*/
/*66272*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*66274*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*66277*/           OPC_EmitMergeInputChains1_0,
/*66278*/           OPC_MorphNodeTo, TARGET_VAL(X86::VMOVUPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v4f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:v4f32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 22
                    // Dst: (VMOVUPSrm:v4f32 addr:iPTR:$src)
/*66290*/         /*Scope*/ 20, /*->66311*/
/*66291*/           OPC_CheckPredicate, 44, // Predicate_alignedload
/*66293*/           OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*66295*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*66298*/           OPC_EmitMergeInputChains1_0,
/*66299*/           OPC_MorphNodeTo, TARGET_VAL(X86::MOVAPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v4f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:v4f32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_alignedload>> - Complexity = 22
                    // Dst: (MOVAPSrm:v4f32 addr:iPTR:$src)
/*66311*/         /*Scope*/ 18, /*->66330*/
/*66312*/           OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*66314*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*66317*/           OPC_EmitMergeInputChains1_0,
/*66318*/           OPC_MorphNodeTo, TARGET_VAL(X86::MOVUPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v4f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:v4f32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 22
                    // Dst: (MOVUPSrm:v4f32 addr:iPTR:$src)
/*66330*/         0, /*End of Scope*/
                /*SwitchType*/ 82,  MVT::v2f64,// ->66415
/*66333*/         OPC_Scope, 20, /*->66355*/ // 4 children in Scope
/*66335*/           OPC_CheckPredicate, 44, // Predicate_alignedload
/*66337*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*66339*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*66342*/           OPC_EmitMergeInputChains1_0,
/*66343*/           OPC_MorphNodeTo, TARGET_VAL(X86::VMOVAPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v2f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:v2f64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_alignedload>> - Complexity = 22
                    // Dst: (VMOVAPDrm:v2f64 addr:iPTR:$src)
/*66355*/         /*Scope*/ 18, /*->66374*/
/*66356*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*66358*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*66361*/           OPC_EmitMergeInputChains1_0,
/*66362*/           OPC_MorphNodeTo, TARGET_VAL(X86::VMOVUPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v2f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:v2f64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 22
                    // Dst: (VMOVUPDrm:v2f64 addr:iPTR:$src)
/*66374*/         /*Scope*/ 20, /*->66395*/
/*66375*/           OPC_CheckPredicate, 44, // Predicate_alignedload
/*66377*/           OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*66379*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*66382*/           OPC_EmitMergeInputChains1_0,
/*66383*/           OPC_MorphNodeTo, TARGET_VAL(X86::MOVAPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v2f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:v2f64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_alignedload>> - Complexity = 22
                    // Dst: (MOVAPDrm:v2f64 addr:iPTR:$src)
/*66395*/         /*Scope*/ 18, /*->66414*/
/*66396*/           OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*66398*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*66401*/           OPC_EmitMergeInputChains1_0,
/*66402*/           OPC_MorphNodeTo, TARGET_VAL(X86::MOVUPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v2f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:v2f64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 22
                    // Dst: (MOVUPDrm:v2f64 addr:iPTR:$src)
/*66414*/         0, /*End of Scope*/
                /*SwitchType*/ 42,  MVT::v8f32,// ->66459
/*66417*/         OPC_Scope, 20, /*->66439*/ // 2 children in Scope
/*66419*/           OPC_CheckPredicate, 45, // Predicate_alignedload256
/*66421*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*66423*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*66426*/           OPC_EmitMergeInputChains1_0,
/*66427*/           OPC_MorphNodeTo, TARGET_VAL(X86::VMOVAPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v8f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:v8f32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_alignedload256>> - Complexity = 22
                    // Dst: (VMOVAPSYrm:v8f32 addr:iPTR:$src)
/*66439*/         /*Scope*/ 18, /*->66458*/
/*66440*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*66442*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*66445*/           OPC_EmitMergeInputChains1_0,
/*66446*/           OPC_MorphNodeTo, TARGET_VAL(X86::VMOVUPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v8f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:v8f32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 22
                    // Dst: (VMOVUPSYrm:v8f32 addr:iPTR:$src)
/*66458*/         0, /*End of Scope*/
                /*SwitchType*/ 42,  MVT::v4f64,// ->66503
/*66461*/         OPC_Scope, 20, /*->66483*/ // 2 children in Scope
/*66463*/           OPC_CheckPredicate, 45, // Predicate_alignedload256
/*66465*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*66467*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*66470*/           OPC_EmitMergeInputChains1_0,
/*66471*/           OPC_MorphNodeTo, TARGET_VAL(X86::VMOVAPDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v4f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:v4f64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_alignedload256>> - Complexity = 22
                    // Dst: (VMOVAPDYrm:v4f64 addr:iPTR:$src)
/*66483*/         /*Scope*/ 18, /*->66502*/
/*66484*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*66486*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*66489*/           OPC_EmitMergeInputChains1_0,
/*66490*/           OPC_MorphNodeTo, TARGET_VAL(X86::VMOVUPDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v4f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:v4f64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 22
                    // Dst: (VMOVUPDYrm:v4f64 addr:iPTR:$src)
/*66502*/         0, /*End of Scope*/
                0, // EndSwitchType
/*66504*/     0, /*End of Scope*/
/*66505*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 90,  TARGET_VAL(ISD::ATOMIC_SWAP),// ->66599
/*66509*/   OPC_RecordMemRef,
/*66510*/   OPC_RecordNode,   // #0 = 'atomic_swap' chained node
/*66511*/   OPC_RecordChild1, // #1 = $ptr
/*66512*/   OPC_RecordChild2, // #2 = $val
/*66513*/   OPC_SwitchType /*4 cases */, 19,  MVT::i8,// ->66535
/*66516*/     OPC_CheckPredicate, 46, // Predicate_atomic_swap_8
/*66518*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$ptr #3 #4 #5 #6 #7
/*66521*/     OPC_EmitMergeInputChains1_0,
/*66522*/     OPC_MorphNodeTo, TARGET_VAL(X86::XCHG8rm), 0|OPFL_Chain|OPFL_MemRefs,
                  1/*#VTs*/, MVT::i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
              // Src: (atomic_swap:i8 addr:iPTR:$ptr, GR8:i8:$val)<<P:Predicate_atomic_swap_8>> - Complexity = 22
              // Dst: (XCHG8rm:i8 GR8:i8:$val, addr:iPTR:$ptr)
            /*SwitchType*/ 19,  MVT::i16,// ->66556
/*66537*/     OPC_CheckPredicate, 47, // Predicate_atomic_swap_16
/*66539*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$ptr #3 #4 #5 #6 #7
/*66542*/     OPC_EmitMergeInputChains1_0,
/*66543*/     OPC_MorphNodeTo, TARGET_VAL(X86::XCHG16rm), 0|OPFL_Chain|OPFL_MemRefs,
                  1/*#VTs*/, MVT::i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
              // Src: (atomic_swap:i16 addr:iPTR:$ptr, GR16:i16:$val)<<P:Predicate_atomic_swap_16>> - Complexity = 22
              // Dst: (XCHG16rm:i16 GR16:i16:$val, addr:iPTR:$ptr)
            /*SwitchType*/ 19,  MVT::i32,// ->66577
/*66558*/     OPC_CheckPredicate, 48, // Predicate_atomic_swap_32
/*66560*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$ptr #3 #4 #5 #6 #7
/*66563*/     OPC_EmitMergeInputChains1_0,
/*66564*/     OPC_MorphNodeTo, TARGET_VAL(X86::XCHG32rm), 0|OPFL_Chain|OPFL_MemRefs,
                  1/*#VTs*/, MVT::i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
              // Src: (atomic_swap:i32 addr:iPTR:$ptr, GR32:i32:$val)<<P:Predicate_atomic_swap_32>> - Complexity = 22
              // Dst: (XCHG32rm:i32 GR32:i32:$val, addr:iPTR:$ptr)
            /*SwitchType*/ 19,  MVT::i64,// ->66598
/*66579*/     OPC_CheckPredicate, 49, // Predicate_atomic_swap_64
/*66581*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$ptr #3 #4 #5 #6 #7
/*66584*/     OPC_EmitMergeInputChains1_0,
/*66585*/     OPC_MorphNodeTo, TARGET_VAL(X86::XCHG64rm), 0|OPFL_Chain|OPFL_MemRefs,
                  1/*#VTs*/, MVT::i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
              // Src: (atomic_swap:i64 addr:iPTR:$ptr, GR64:i64:$val)<<P:Predicate_atomic_swap_64>> - Complexity = 22
              // Dst: (XCHG64rm:i64 GR64:i64:$val, addr:iPTR:$ptr)
            0, // EndSwitchType
          /*SwitchOpcode*/ 94,  TARGET_VAL(ISD::ATOMIC_LOAD_ADD),// ->66696
/*66602*/   OPC_RecordMemRef,
/*66603*/   OPC_RecordNode,   // #0 = 'atomic_load_add' chained node
/*66604*/   OPC_RecordChild1, // #1 = $ptr
/*66605*/   OPC_RecordChild2, // #2 = $val
/*66606*/   OPC_SwitchType /*4 cases */, 20,  MVT::i8,// ->66629
/*66609*/     OPC_CheckPredicate, 50, // Predicate_atomic_load_add_8
/*66611*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$ptr #3 #4 #5 #6 #7
/*66614*/     OPC_EmitMergeInputChains1_0,
/*66615*/     OPC_MorphNodeTo, TARGET_VAL(X86::LXADD8), 0|OPFL_Chain|OPFL_MemRefs,
                  2/*#VTs*/, MVT::i8, MVT::i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
              // Src: (atomic_load_add:i8 addr:iPTR:$ptr, GR8:i8:$val)<<P:Predicate_atomic_load_add_8>> - Complexity = 22
              // Dst: (LXADD8:i8:i32 GR8:i8:$val, addr:iPTR:$ptr)
            /*SwitchType*/ 20,  MVT::i16,// ->66651
/*66631*/     OPC_CheckPredicate, 51, // Predicate_atomic_load_add_16
/*66633*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$ptr #3 #4 #5 #6 #7
/*66636*/     OPC_EmitMergeInputChains1_0,
/*66637*/     OPC_MorphNodeTo, TARGET_VAL(X86::LXADD16), 0|OPFL_Chain|OPFL_MemRefs,
                  2/*#VTs*/, MVT::i16, MVT::i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
              // Src: (atomic_load_add:i16 addr:iPTR:$ptr, GR16:i16:$val)<<P:Predicate_atomic_load_add_16>> - Complexity = 22
              // Dst: (LXADD16:i16:i32 GR16:i16:$val, addr:iPTR:$ptr)
            /*SwitchType*/ 20,  MVT::i32,// ->66673
/*66653*/     OPC_CheckPredicate, 52, // Predicate_atomic_load_add_32
/*66655*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$ptr #3 #4 #5 #6 #7
/*66658*/     OPC_EmitMergeInputChains1_0,
/*66659*/     OPC_MorphNodeTo, TARGET_VAL(X86::LXADD32), 0|OPFL_Chain|OPFL_MemRefs,
                  2/*#VTs*/, MVT::i32, MVT::i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
              // Src: (atomic_load_add:i32 addr:iPTR:$ptr, GR32:i32:$val)<<P:Predicate_atomic_load_add_32>> - Complexity = 22
              // Dst: (LXADD32:i32:i32 GR32:i32:$val, addr:iPTR:$ptr)
            /*SwitchType*/ 20,  MVT::i64,// ->66695
/*66675*/     OPC_CheckPredicate, 53, // Predicate_atomic_load_add_64
/*66677*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$ptr #3 #4 #5 #6 #7
/*66680*/     OPC_EmitMergeInputChains1_0,
/*66681*/     OPC_MorphNodeTo, TARGET_VAL(X86::LXADD64), 0|OPFL_Chain|OPFL_MemRefs,
                  2/*#VTs*/, MVT::i64, MVT::i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
              // Src: (atomic_load_add:i64 addr:iPTR:$ptr, GR64:i64:$val)<<P:Predicate_atomic_load_add_64>> - Complexity = 22
              // Dst: (LXADD64:i64:i32 GR64:i64:$val, addr:iPTR:$ptr)
            0, // EndSwitchType
          /*SwitchOpcode*/ 85,  TARGET_VAL(ISD::ATOMIC_LOAD),// ->66784
/*66699*/   OPC_RecordMemRef,
/*66700*/   OPC_RecordNode,   // #0 = 'atomic_load' chained node
/*66701*/   OPC_RecordChild1, // #1 = $src
/*66702*/   OPC_SwitchType /*4 cases */, 18,  MVT::i8,// ->66723
/*66705*/     OPC_CheckPredicate, 54, // Predicate_atomic_load_8
/*66707*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*66710*/     OPC_EmitMergeInputChains1_0,
/*66711*/     OPC_MorphNodeTo, TARGET_VAL(X86::ACQUIRE_MOV8rm), 0|OPFL_Chain|OPFL_MemRefs,
                  1/*#VTs*/, MVT::i8, 5/*#Ops*/, 2, 3, 4, 5, 6, 
              // Src: (atomic_load:i8 addr:iPTR:$src)<<P:Predicate_atomic_load_8>> - Complexity = 22
              // Dst: (ACQUIRE_MOV8rm:i8 addr:iPTR:$src)
            /*SwitchType*/ 18,  MVT::i16,// ->66743
/*66725*/     OPC_CheckPredicate, 55, // Predicate_atomic_load_16
/*66727*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*66730*/     OPC_EmitMergeInputChains1_0,
/*66731*/     OPC_MorphNodeTo, TARGET_VAL(X86::ACQUIRE_MOV16rm), 0|OPFL_Chain|OPFL_MemRefs,
                  1/*#VTs*/, MVT::i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
              // Src: (atomic_load:i16 addr:iPTR:$src)<<P:Predicate_atomic_load_16>> - Complexity = 22
              // Dst: (ACQUIRE_MOV16rm:i16 addr:iPTR:$src)
            /*SwitchType*/ 18,  MVT::i32,// ->66763
/*66745*/     OPC_CheckPredicate, 56, // Predicate_atomic_load_32
/*66747*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*66750*/     OPC_EmitMergeInputChains1_0,
/*66751*/     OPC_MorphNodeTo, TARGET_VAL(X86::ACQUIRE_MOV32rm), 0|OPFL_Chain|OPFL_MemRefs,
                  1/*#VTs*/, MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
              // Src: (atomic_load:i32 addr:iPTR:$src)<<P:Predicate_atomic_load_32>> - Complexity = 22
              // Dst: (ACQUIRE_MOV32rm:i32 addr:iPTR:$src)
            /*SwitchType*/ 18,  MVT::i64,// ->66783
/*66765*/     OPC_CheckPredicate, 57, // Predicate_atomic_load_64
/*66767*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*66770*/     OPC_EmitMergeInputChains1_0,
/*66771*/     OPC_MorphNodeTo, TARGET_VAL(X86::ACQUIRE_MOV64rm), 0|OPFL_Chain|OPFL_MemRefs,
                  1/*#VTs*/, MVT::i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
              // Src: (atomic_load:i64 addr:iPTR:$src)<<P:Predicate_atomic_load_64>> - Complexity = 22
              // Dst: (ACQUIRE_MOV64rm:i64 addr:iPTR:$src)
            0, // EndSwitchType
          /*SwitchOpcode*/ 94,  TARGET_VAL(ISD::ATOMIC_LOAD_AND),// ->66881
/*66787*/   OPC_RecordMemRef,
/*66788*/   OPC_RecordNode,   // #0 = 'atomic_load_and' chained node
/*66789*/   OPC_RecordChild1, // #1 = $ptr
/*66790*/   OPC_RecordChild2, // #2 = $val
/*66791*/   OPC_SwitchType /*4 cases */, 20,  MVT::i8,// ->66814
/*66794*/     OPC_CheckPredicate, 58, // Predicate_atomic_load_and_8
/*66796*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$ptr #3 #4 #5 #6 #7
/*66799*/     OPC_EmitMergeInputChains1_0,
/*66800*/     OPC_MorphNodeTo, TARGET_VAL(X86::ATOMAND8), 0|OPFL_Chain|OPFL_MemRefs,
                  2/*#VTs*/, MVT::i8, MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
              // Src: (atomic_load_and:i8 addr:iPTR:$ptr, GR8:i8:$val)<<P:Predicate_atomic_load_and_8>> - Complexity = 22
              // Dst: (ATOMAND8:i8:i32 addr:iPTR:$ptr, GR8:i8:$val)
            /*SwitchType*/ 20,  MVT::i16,// ->66836
/*66816*/     OPC_CheckPredicate, 59, // Predicate_atomic_load_and_16
/*66818*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$ptr #3 #4 #5 #6 #7
/*66821*/     OPC_EmitMergeInputChains1_0,
/*66822*/     OPC_MorphNodeTo, TARGET_VAL(X86::ATOMAND16), 0|OPFL_Chain|OPFL_MemRefs,
                  2/*#VTs*/, MVT::i16, MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
              // Src: (atomic_load_and:i16 addr:iPTR:$ptr, GR16:i16:$val)<<P:Predicate_atomic_load_and_16>> - Complexity = 22
              // Dst: (ATOMAND16:i16:i32 addr:iPTR:$ptr, GR16:i16:$val)
            /*SwitchType*/ 20,  MVT::i32,// ->66858
/*66838*/     OPC_CheckPredicate, 60, // Predicate_atomic_load_and_32
/*66840*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$ptr #3 #4 #5 #6 #7
/*66843*/     OPC_EmitMergeInputChains1_0,
/*66844*/     OPC_MorphNodeTo, TARGET_VAL(X86::ATOMAND32), 0|OPFL_Chain|OPFL_MemRefs,
                  2/*#VTs*/, MVT::i32, MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
              // Src: (atomic_load_and:i32 addr:iPTR:$ptr, GR32:i32:$val)<<P:Predicate_atomic_load_and_32>> - Complexity = 22
              // Dst: (ATOMAND32:i32:i32 addr:iPTR:$ptr, GR32:i32:$val)
            /*SwitchType*/ 20,  MVT::i64,// ->66880
/*66860*/     OPC_CheckPredicate, 61, // Predicate_atomic_load_and_64
/*66862*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$ptr #3 #4 #5 #6 #7
/*66865*/     OPC_EmitMergeInputChains1_0,
/*66866*/     OPC_MorphNodeTo, TARGET_VAL(X86::ATOMAND64), 0|OPFL_Chain|OPFL_MemRefs,
                  2/*#VTs*/, MVT::i64, MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
              // Src: (atomic_load_and:i64 addr:iPTR:$ptr, GR64:i64:$val)<<P:Predicate_atomic_load_and_64>> - Complexity = 22
              // Dst: (ATOMAND64:i64:i32 addr:iPTR:$ptr, GR64:i64:$val)
            0, // EndSwitchType
          /*SwitchOpcode*/ 94,  TARGET_VAL(ISD::ATOMIC_LOAD_OR),// ->66978
/*66884*/   OPC_RecordMemRef,
/*66885*/   OPC_RecordNode,   // #0 = 'atomic_load_or' chained node
/*66886*/   OPC_RecordChild1, // #1 = $ptr
/*66887*/   OPC_RecordChild2, // #2 = $val
/*66888*/   OPC_SwitchType /*4 cases */, 20,  MVT::i8,// ->66911
/*66891*/     OPC_CheckPredicate, 62, // Predicate_atomic_load_or_8
/*66893*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$ptr #3 #4 #5 #6 #7
/*66896*/     OPC_EmitMergeInputChains1_0,
/*66897*/     OPC_MorphNodeTo, TARGET_VAL(X86::ATOMOR8), 0|OPFL_Chain|OPFL_MemRefs,
                  2/*#VTs*/, MVT::i8, MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
              // Src: (atomic_load_or:i8 addr:iPTR:$ptr, GR8:i8:$val)<<P:Predicate_atomic_load_or_8>> - Complexity = 22
              // Dst: (ATOMOR8:i8:i32 addr:iPTR:$ptr, GR8:i8:$val)
            /*SwitchType*/ 20,  MVT::i16,// ->66933
/*66913*/     OPC_CheckPredicate, 63, // Predicate_atomic_load_or_16
/*66915*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$ptr #3 #4 #5 #6 #7
/*66918*/     OPC_EmitMergeInputChains1_0,
/*66919*/     OPC_MorphNodeTo, TARGET_VAL(X86::ATOMOR16), 0|OPFL_Chain|OPFL_MemRefs,
                  2/*#VTs*/, MVT::i16, MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
              // Src: (atomic_load_or:i16 addr:iPTR:$ptr, GR16:i16:$val)<<P:Predicate_atomic_load_or_16>> - Complexity = 22
              // Dst: (ATOMOR16:i16:i32 addr:iPTR:$ptr, GR16:i16:$val)
            /*SwitchType*/ 20,  MVT::i32,// ->66955
/*66935*/     OPC_CheckPredicate, 64, // Predicate_atomic_load_or_32
/*66937*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$ptr #3 #4 #5 #6 #7
/*66940*/     OPC_EmitMergeInputChains1_0,
/*66941*/     OPC_MorphNodeTo, TARGET_VAL(X86::ATOMOR32), 0|OPFL_Chain|OPFL_MemRefs,
                  2/*#VTs*/, MVT::i32, MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
              // Src: (atomic_load_or:i32 addr:iPTR:$ptr, GR32:i32:$val)<<P:Predicate_atomic_load_or_32>> - Complexity = 22
              // Dst: (ATOMOR32:i32:i32 addr:iPTR:$ptr, GR32:i32:$val)
            /*SwitchType*/ 20,  MVT::i64,// ->66977
/*66957*/     OPC_CheckPredicate, 65, // Predicate_atomic_load_or_64
/*66959*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$ptr #3 #4 #5 #6 #7
/*66962*/     OPC_EmitMergeInputChains1_0,
/*66963*/     OPC_MorphNodeTo, TARGET_VAL(X86::ATOMOR64), 0|OPFL_Chain|OPFL_MemRefs,
                  2/*#VTs*/, MVT::i64, MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
              // Src: (atomic_load_or:i64 addr:iPTR:$ptr, GR64:i64:$val)<<P:Predicate_atomic_load_or_64>> - Complexity = 22
              // Dst: (ATOMOR64:i64:i32 addr:iPTR:$ptr, GR64:i64:$val)
            0, // EndSwitchType
          /*SwitchOpcode*/ 94,  TARGET_VAL(ISD::ATOMIC_LOAD_XOR),// ->67075
/*66981*/   OPC_RecordMemRef,
/*66982*/   OPC_RecordNode,   // #0 = 'atomic_load_xor' chained node
/*66983*/   OPC_RecordChild1, // #1 = $ptr
/*66984*/   OPC_RecordChild2, // #2 = $val
/*66985*/   OPC_SwitchType /*4 cases */, 20,  MVT::i8,// ->67008
/*66988*/     OPC_CheckPredicate, 66, // Predicate_atomic_load_xor_8
/*66990*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$ptr #3 #4 #5 #6 #7
/*66993*/     OPC_EmitMergeInputChains1_0,
/*66994*/     OPC_MorphNodeTo, TARGET_VAL(X86::ATOMXOR8), 0|OPFL_Chain|OPFL_MemRefs,
                  2/*#VTs*/, MVT::i8, MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
              // Src: (atomic_load_xor:i8 addr:iPTR:$ptr, GR8:i8:$val)<<P:Predicate_atomic_load_xor_8>> - Complexity = 22
              // Dst: (ATOMXOR8:i8:i32 addr:iPTR:$ptr, GR8:i8:$val)
            /*SwitchType*/ 20,  MVT::i16,// ->67030
/*67010*/     OPC_CheckPredicate, 67, // Predicate_atomic_load_xor_16
/*67012*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$ptr #3 #4 #5 #6 #7
/*67015*/     OPC_EmitMergeInputChains1_0,
/*67016*/     OPC_MorphNodeTo, TARGET_VAL(X86::ATOMXOR16), 0|OPFL_Chain|OPFL_MemRefs,
                  2/*#VTs*/, MVT::i16, MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
              // Src: (atomic_load_xor:i16 addr:iPTR:$ptr, GR16:i16:$val)<<P:Predicate_atomic_load_xor_16>> - Complexity = 22
              // Dst: (ATOMXOR16:i16:i32 addr:iPTR:$ptr, GR16:i16:$val)
            /*SwitchType*/ 20,  MVT::i32,// ->67052
/*67032*/     OPC_CheckPredicate, 68, // Predicate_atomic_load_xor_32
/*67034*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$ptr #3 #4 #5 #6 #7
/*67037*/     OPC_EmitMergeInputChains1_0,
/*67038*/     OPC_MorphNodeTo, TARGET_VAL(X86::ATOMXOR32), 0|OPFL_Chain|OPFL_MemRefs,
                  2/*#VTs*/, MVT::i32, MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
              // Src: (atomic_load_xor:i32 addr:iPTR:$ptr, GR32:i32:$val)<<P:Predicate_atomic_load_xor_32>> - Complexity = 22
              // Dst: (ATOMXOR32:i32:i32 addr:iPTR:$ptr, GR32:i32:$val)
            /*SwitchType*/ 20,  MVT::i64,// ->67074
/*67054*/     OPC_CheckPredicate, 69, // Predicate_atomic_load_xor_64
/*67056*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$ptr #3 #4 #5 #6 #7
/*67059*/     OPC_EmitMergeInputChains1_0,
/*67060*/     OPC_MorphNodeTo, TARGET_VAL(X86::ATOMXOR64), 0|OPFL_Chain|OPFL_MemRefs,
                  2/*#VTs*/, MVT::i64, MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
              // Src: (atomic_load_xor:i64 addr:iPTR:$ptr, GR64:i64:$val)<<P:Predicate_atomic_load_xor_64>> - Complexity = 22
              // Dst: (ATOMXOR64:i64:i32 addr:iPTR:$ptr, GR64:i64:$val)
            0, // EndSwitchType
          /*SwitchOpcode*/ 94,  TARGET_VAL(ISD::ATOMIC_LOAD_NAND),// ->67172
/*67078*/   OPC_RecordMemRef,
/*67079*/   OPC_RecordNode,   // #0 = 'atomic_load_nand' chained node
/*67080*/   OPC_RecordChild1, // #1 = $ptr
/*67081*/   OPC_RecordChild2, // #2 = $val
/*67082*/   OPC_SwitchType /*4 cases */, 20,  MVT::i8,// ->67105
/*67085*/     OPC_CheckPredicate, 70, // Predicate_atomic_load_nand_8
/*67087*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$ptr #3 #4 #5 #6 #7
/*67090*/     OPC_EmitMergeInputChains1_0,
/*67091*/     OPC_MorphNodeTo, TARGET_VAL(X86::ATOMNAND8), 0|OPFL_Chain|OPFL_MemRefs,
                  2/*#VTs*/, MVT::i8, MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
              // Src: (atomic_load_nand:i8 addr:iPTR:$ptr, GR8:i8:$val)<<P:Predicate_atomic_load_nand_8>> - Complexity = 22
              // Dst: (ATOMNAND8:i8:i32 addr:iPTR:$ptr, GR8:i8:$val)
            /*SwitchType*/ 20,  MVT::i16,// ->67127
/*67107*/     OPC_CheckPredicate, 71, // Predicate_atomic_load_nand_16
/*67109*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$ptr #3 #4 #5 #6 #7
/*67112*/     OPC_EmitMergeInputChains1_0,
/*67113*/     OPC_MorphNodeTo, TARGET_VAL(X86::ATOMNAND16), 0|OPFL_Chain|OPFL_MemRefs,
                  2/*#VTs*/, MVT::i16, MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
              // Src: (atomic_load_nand:i16 addr:iPTR:$ptr, GR16:i16:$val)<<P:Predicate_atomic_load_nand_16>> - Complexity = 22
              // Dst: (ATOMNAND16:i16:i32 addr:iPTR:$ptr, GR16:i16:$val)
            /*SwitchType*/ 20,  MVT::i32,// ->67149
/*67129*/     OPC_CheckPredicate, 72, // Predicate_atomic_load_nand_32
/*67131*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$ptr #3 #4 #5 #6 #7
/*67134*/     OPC_EmitMergeInputChains1_0,
/*67135*/     OPC_MorphNodeTo, TARGET_VAL(X86::ATOMNAND32), 0|OPFL_Chain|OPFL_MemRefs,
                  2/*#VTs*/, MVT::i32, MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
              // Src: (atomic_load_nand:i32 addr:iPTR:$ptr, GR32:i32:$val)<<P:Predicate_atomic_load_nand_32>> - Complexity = 22
              // Dst: (ATOMNAND32:i32:i32 addr:iPTR:$ptr, GR32:i32:$val)
            /*SwitchType*/ 20,  MVT::i64,// ->67171
/*67151*/     OPC_CheckPredicate, 73, // Predicate_atomic_load_nand_64
/*67153*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$ptr #3 #4 #5 #6 #7
/*67156*/     OPC_EmitMergeInputChains1_0,
/*67157*/     OPC_MorphNodeTo, TARGET_VAL(X86::ATOMNAND64), 0|OPFL_Chain|OPFL_MemRefs,
                  2/*#VTs*/, MVT::i64, MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
              // Src: (atomic_load_nand:i64 addr:iPTR:$ptr, GR64:i64:$val)<<P:Predicate_atomic_load_nand_64>> - Complexity = 22
              // Dst: (ATOMNAND64:i64:i32 addr:iPTR:$ptr, GR64:i64:$val)
            0, // EndSwitchType
          /*SwitchOpcode*/ 72,  TARGET_VAL(ISD::ATOMIC_LOAD_MIN),// ->67247
/*67175*/   OPC_RecordMemRef,
/*67176*/   OPC_RecordNode,   // #0 = 'atomic_load_min' chained node
/*67177*/   OPC_RecordChild1, // #1 = $ptr
/*67178*/   OPC_RecordChild2, // #2 = $val
/*67179*/   OPC_SwitchType /*3 cases */, 20,  MVT::i16,// ->67202
/*67182*/     OPC_CheckPredicate, 74, // Predicate_atomic_load_min_16
/*67184*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$ptr #3 #4 #5 #6 #7
/*67187*/     OPC_EmitMergeInputChains1_0,
/*67188*/     OPC_MorphNodeTo, TARGET_VAL(X86::ATOMMIN16), 0|OPFL_Chain|OPFL_MemRefs,
                  2/*#VTs*/, MVT::i16, MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
              // Src: (atomic_load_min:i16 addr:iPTR:$ptr, GR16:i16:$val)<<P:Predicate_atomic_load_min_16>> - Complexity = 22
              // Dst: (ATOMMIN16:i16:i32 addr:iPTR:$ptr, GR16:i16:$val)
            /*SwitchType*/ 20,  MVT::i32,// ->67224
/*67204*/     OPC_CheckPredicate, 75, // Predicate_atomic_load_min_32
/*67206*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$ptr #3 #4 #5 #6 #7
/*67209*/     OPC_EmitMergeInputChains1_0,
/*67210*/     OPC_MorphNodeTo, TARGET_VAL(X86::ATOMMIN32), 0|OPFL_Chain|OPFL_MemRefs,
                  2/*#VTs*/, MVT::i32, MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
              // Src: (atomic_load_min:i32 addr:iPTR:$ptr, GR32:i32:$val)<<P:Predicate_atomic_load_min_32>> - Complexity = 22
              // Dst: (ATOMMIN32:i32:i32 addr:iPTR:$ptr, GR32:i32:$val)
            /*SwitchType*/ 20,  MVT::i64,// ->67246
/*67226*/     OPC_CheckPredicate, 76, // Predicate_atomic_load_min_64
/*67228*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$ptr #3 #4 #5 #6 #7
/*67231*/     OPC_EmitMergeInputChains1_0,
/*67232*/     OPC_MorphNodeTo, TARGET_VAL(X86::ATOMMIN64), 0|OPFL_Chain|OPFL_MemRefs,
                  2/*#VTs*/, MVT::i64, MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
              // Src: (atomic_load_min:i64 addr:iPTR:$ptr, GR64:i64:$val)<<P:Predicate_atomic_load_min_64>> - Complexity = 22
              // Dst: (ATOMMIN64:i64:i32 addr:iPTR:$ptr, GR64:i64:$val)
            0, // EndSwitchType
          /*SwitchOpcode*/ 72,  TARGET_VAL(ISD::ATOMIC_LOAD_MAX),// ->67322
/*67250*/   OPC_RecordMemRef,
/*67251*/   OPC_RecordNode,   // #0 = 'atomic_load_max' chained node
/*67252*/   OPC_RecordChild1, // #1 = $ptr
/*67253*/   OPC_RecordChild2, // #2 = $val
/*67254*/   OPC_SwitchType /*3 cases */, 20,  MVT::i16,// ->67277
/*67257*/     OPC_CheckPredicate, 77, // Predicate_atomic_load_max_16
/*67259*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$ptr #3 #4 #5 #6 #7
/*67262*/     OPC_EmitMergeInputChains1_0,
/*67263*/     OPC_MorphNodeTo, TARGET_VAL(X86::ATOMMAX16), 0|OPFL_Chain|OPFL_MemRefs,
                  2/*#VTs*/, MVT::i16, MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
              // Src: (atomic_load_max:i16 addr:iPTR:$ptr, GR16:i16:$val)<<P:Predicate_atomic_load_max_16>> - Complexity = 22
              // Dst: (ATOMMAX16:i16:i32 addr:iPTR:$ptr, GR16:i16:$val)
            /*SwitchType*/ 20,  MVT::i32,// ->67299
/*67279*/     OPC_CheckPredicate, 78, // Predicate_atomic_load_max_32
/*67281*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$ptr #3 #4 #5 #6 #7
/*67284*/     OPC_EmitMergeInputChains1_0,
/*67285*/     OPC_MorphNodeTo, TARGET_VAL(X86::ATOMMAX32), 0|OPFL_Chain|OPFL_MemRefs,
                  2/*#VTs*/, MVT::i32, MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
              // Src: (atomic_load_max:i32 addr:iPTR:$ptr, GR32:i32:$val)<<P:Predicate_atomic_load_max_32>> - Complexity = 22
              // Dst: (ATOMMAX32:i32:i32 addr:iPTR:$ptr, GR32:i32:$val)
            /*SwitchType*/ 20,  MVT::i64,// ->67321
/*67301*/     OPC_CheckPredicate, 79, // Predicate_atomic_load_max_64
/*67303*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$ptr #3 #4 #5 #6 #7
/*67306*/     OPC_EmitMergeInputChains1_0,
/*67307*/     OPC_MorphNodeTo, TARGET_VAL(X86::ATOMMAX64), 0|OPFL_Chain|OPFL_MemRefs,
                  2/*#VTs*/, MVT::i64, MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
              // Src: (atomic_load_max:i64 addr:iPTR:$ptr, GR64:i64:$val)<<P:Predicate_atomic_load_max_64>> - Complexity = 22
              // Dst: (ATOMMAX64:i64:i32 addr:iPTR:$ptr, GR64:i64:$val)
            0, // EndSwitchType
          /*SwitchOpcode*/ 72,  TARGET_VAL(ISD::ATOMIC_LOAD_UMIN),// ->67397
/*67325*/   OPC_RecordMemRef,
/*67326*/   OPC_RecordNode,   // #0 = 'atomic_load_umin' chained node
/*67327*/   OPC_RecordChild1, // #1 = $ptr
/*67328*/   OPC_RecordChild2, // #2 = $val
/*67329*/   OPC_SwitchType /*3 cases */, 20,  MVT::i16,// ->67352
/*67332*/     OPC_CheckPredicate, 80, // Predicate_atomic_load_umin_16
/*67334*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$ptr #3 #4 #5 #6 #7
/*67337*/     OPC_EmitMergeInputChains1_0,
/*67338*/     OPC_MorphNodeTo, TARGET_VAL(X86::ATOMUMIN16), 0|OPFL_Chain|OPFL_MemRefs,
                  2/*#VTs*/, MVT::i16, MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
              // Src: (atomic_load_umin:i16 addr:iPTR:$ptr, GR16:i16:$val)<<P:Predicate_atomic_load_umin_16>> - Complexity = 22
              // Dst: (ATOMUMIN16:i16:i32 addr:iPTR:$ptr, GR16:i16:$val)
            /*SwitchType*/ 20,  MVT::i32,// ->67374
/*67354*/     OPC_CheckPredicate, 81, // Predicate_atomic_load_umin_32
/*67356*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$ptr #3 #4 #5 #6 #7
/*67359*/     OPC_EmitMergeInputChains1_0,
/*67360*/     OPC_MorphNodeTo, TARGET_VAL(X86::ATOMUMIN32), 0|OPFL_Chain|OPFL_MemRefs,
                  2/*#VTs*/, MVT::i32, MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
              // Src: (atomic_load_umin:i32 addr:iPTR:$ptr, GR32:i32:$val)<<P:Predicate_atomic_load_umin_32>> - Complexity = 22
              // Dst: (ATOMUMIN32:i32:i32 addr:iPTR:$ptr, GR32:i32:$val)
            /*SwitchType*/ 20,  MVT::i64,// ->67396
/*67376*/     OPC_CheckPredicate, 82, // Predicate_atomic_load_umin_64
/*67378*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$ptr #3 #4 #5 #6 #7
/*67381*/     OPC_EmitMergeInputChains1_0,
/*67382*/     OPC_MorphNodeTo, TARGET_VAL(X86::ATOMUMIN64), 0|OPFL_Chain|OPFL_MemRefs,
                  2/*#VTs*/, MVT::i64, MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
              // Src: (atomic_load_umin:i64 addr:iPTR:$ptr, GR64:i64:$val)<<P:Predicate_atomic_load_umin_64>> - Complexity = 22
              // Dst: (ATOMUMIN64:i64:i32 addr:iPTR:$ptr, GR64:i64:$val)
            0, // EndSwitchType
          /*SwitchOpcode*/ 72,  TARGET_VAL(ISD::ATOMIC_LOAD_UMAX),// ->67472
/*67400*/   OPC_RecordMemRef,
/*67401*/   OPC_RecordNode,   // #0 = 'atomic_load_umax' chained node
/*67402*/   OPC_RecordChild1, // #1 = $ptr
/*67403*/   OPC_RecordChild2, // #2 = $val
/*67404*/   OPC_SwitchType /*3 cases */, 20,  MVT::i16,// ->67427
/*67407*/     OPC_CheckPredicate, 83, // Predicate_atomic_load_umax_16
/*67409*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$ptr #3 #4 #5 #6 #7
/*67412*/     OPC_EmitMergeInputChains1_0,
/*67413*/     OPC_MorphNodeTo, TARGET_VAL(X86::ATOMUMAX16), 0|OPFL_Chain|OPFL_MemRefs,
                  2/*#VTs*/, MVT::i16, MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
              // Src: (atomic_load_umax:i16 addr:iPTR:$ptr, GR16:i16:$val)<<P:Predicate_atomic_load_umax_16>> - Complexity = 22
              // Dst: (ATOMUMAX16:i16:i32 addr:iPTR:$ptr, GR16:i16:$val)
            /*SwitchType*/ 20,  MVT::i32,// ->67449
/*67429*/     OPC_CheckPredicate, 84, // Predicate_atomic_load_umax_32
/*67431*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$ptr #3 #4 #5 #6 #7
/*67434*/     OPC_EmitMergeInputChains1_0,
/*67435*/     OPC_MorphNodeTo, TARGET_VAL(X86::ATOMUMAX32), 0|OPFL_Chain|OPFL_MemRefs,
                  2/*#VTs*/, MVT::i32, MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
              // Src: (atomic_load_umax:i32 addr:iPTR:$ptr, GR32:i32:$val)<<P:Predicate_atomic_load_umax_32>> - Complexity = 22
              // Dst: (ATOMUMAX32:i32:i32 addr:iPTR:$ptr, GR32:i32:$val)
            /*SwitchType*/ 20,  MVT::i64,// ->67471
/*67451*/     OPC_CheckPredicate, 85, // Predicate_atomic_load_umax_64
/*67453*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$ptr #3 #4 #5 #6 #7
/*67456*/     OPC_EmitMergeInputChains1_0,
/*67457*/     OPC_MorphNodeTo, TARGET_VAL(X86::ATOMUMAX64), 0|OPFL_Chain|OPFL_MemRefs,
                  2/*#VTs*/, MVT::i64, MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
              // Src: (atomic_load_umax:i64 addr:iPTR:$ptr, GR64:i64:$val)<<P:Predicate_atomic_load_umax_64>> - Complexity = 22
              // Dst: (ATOMUMAX64:i64:i32 addr:iPTR:$ptr, GR64:i64:$val)
            0, // EndSwitchType
          /*SwitchOpcode*/ 60,  TARGET_VAL(X86ISD::MUL_IMM),// ->67535
/*67475*/   OPC_RecordNode,   // #0 = $src
/*67476*/   OPC_SwitchType /*2 cases */, 38,  MVT::i32,// ->67517
/*67479*/     OPC_Scope, 17, /*->67498*/ // 2 children in Scope
/*67481*/       OPC_CheckPatternPredicate, 3, // (!Subtarget->is64Bit())
/*67483*/       OPC_CheckComplexPat, /*CP*/3, /*#*/0, // SelectLEAAddr:$src #1 #2 #3 #4 #5
/*67486*/       OPC_MorphNodeTo, TARGET_VAL(X86::LEA32r), 0,
                    1/*#VTs*/, MVT::i32, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                // Src: lea32addr:i32:$src - Complexity = 18
                // Dst: (LEA32r:i32 lea32addr:i32:$src)
/*67498*/     /*Scope*/ 17, /*->67516*/
/*67499*/       OPC_CheckPatternPredicate, 4, // (Subtarget->is64Bit())
/*67501*/       OPC_CheckComplexPat, /*CP*/3, /*#*/0, // SelectLEAAddr:$src #1 #2 #3 #4 #5
/*67504*/       OPC_MorphNodeTo, TARGET_VAL(X86::LEA64_32r), 0,
                    1/*#VTs*/, MVT::i32, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                // Src: lea32addr:i32:$src - Complexity = 18
                // Dst: (LEA64_32r:i32 lea32addr:i32:$src)
/*67516*/     0, /*End of Scope*/
            /*SwitchType*/ 15,  MVT::i64,// ->67534
/*67519*/     OPC_CheckComplexPat, /*CP*/4, /*#*/0, // SelectLEAAddr:$src #1 #2 #3 #4 #5
/*67522*/     OPC_MorphNodeTo, TARGET_VAL(X86::LEA64r), 0,
                  1/*#VTs*/, MVT::i64, 5/*#Ops*/, 1, 2, 3, 4, 5, 
              // Src: lea64addr:i64:$src - Complexity = 18
              // Dst: (LEA64r:i64 lea64addr:i64:$src)
            0, // EndSwitchType
          /*SwitchOpcode*/ 75|128,2/*331*/,  TARGET_VAL(ISD::SHL),// ->67870
/*67539*/   OPC_Scope, 60, /*->67601*/ // 2 children in Scope
/*67541*/     OPC_RecordNode, // #0 = $src
/*67542*/     OPC_SwitchType /*2 cases */, 38,  MVT::i32,// ->67583
/*67545*/       OPC_Scope, 17, /*->67564*/ // 2 children in Scope
/*67547*/         OPC_CheckPatternPredicate, 3, // (!Subtarget->is64Bit())
/*67549*/         OPC_CheckComplexPat, /*CP*/3, /*#*/0, // SelectLEAAddr:$src #1 #2 #3 #4 #5
/*67552*/         OPC_MorphNodeTo, TARGET_VAL(X86::LEA32r), 0,
                      1/*#VTs*/, MVT::i32, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                  // Src: lea32addr:i32:$src - Complexity = 18
                  // Dst: (LEA32r:i32 lea32addr:i32:$src)
/*67564*/       /*Scope*/ 17, /*->67582*/
/*67565*/         OPC_CheckPatternPredicate, 4, // (Subtarget->is64Bit())
/*67567*/         OPC_CheckComplexPat, /*CP*/3, /*#*/0, // SelectLEAAddr:$src #1 #2 #3 #4 #5
/*67570*/         OPC_MorphNodeTo, TARGET_VAL(X86::LEA64_32r), 0,
                      1/*#VTs*/, MVT::i32, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                  // Src: lea32addr:i32:$src - Complexity = 18
                  // Dst: (LEA64_32r:i32 lea32addr:i32:$src)
/*67582*/       0, /*End of Scope*/
              /*SwitchType*/ 15,  MVT::i64,// ->67600
/*67585*/       OPC_CheckComplexPat, /*CP*/4, /*#*/0, // SelectLEAAddr:$src #1 #2 #3 #4 #5
/*67588*/       OPC_MorphNodeTo, TARGET_VAL(X86::LEA64r), 0,
                    1/*#VTs*/, MVT::i64, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                // Src: lea64addr:i64:$src - Complexity = 18
                // Dst: (LEA64r:i64 lea64addr:i64:$src)
              0, // EndSwitchType
/*67601*/   /*Scope*/ 10|128,2/*266*/, /*->67869*/
/*67603*/     OPC_RecordChild0, // #0 = $src1
/*67604*/     OPC_Scope, 0|128,1/*128*/, /*->67735*/ // 2 children in Scope
/*67607*/       OPC_MoveChild, 1,
/*67609*/       OPC_CheckType, MVT::i8,
/*67611*/       OPC_Scope, 48, /*->67661*/ // 3 children in Scope
/*67613*/         OPC_CheckAndImm, 31, 
/*67615*/         OPC_RecordChild0, // #1 = physreg input CL
/*67616*/         OPC_MoveParent,
/*67617*/         OPC_SwitchType /*3 cases */, 12,  MVT::i8,// ->67632
/*67620*/           OPC_EmitCopyToReg, 1, X86::CL,
/*67623*/           OPC_MorphNodeTo, TARGET_VAL(X86::SHL8rCL), 0|OPFL_GlueInput,
                        2/*#VTs*/, MVT::i8, MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (shl:i8 GR8:i8:$src1, (and:i8 CL:i8, 31:i8)) - Complexity = 11
                    // Dst: (SHL8rCL:i8:i32 GR8:i8:$src1)
                  /*SwitchType*/ 12,  MVT::i16,// ->67646
/*67634*/           OPC_EmitCopyToReg, 1, X86::CL,
/*67637*/           OPC_MorphNodeTo, TARGET_VAL(X86::SHL16rCL), 0|OPFL_GlueInput,
                        2/*#VTs*/, MVT::i16, MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (shl:i16 GR16:i16:$src1, (and:i8 CL:i8, 31:i8)) - Complexity = 11
                    // Dst: (SHL16rCL:i16:i32 GR16:i16:$src1)
                  /*SwitchType*/ 12,  MVT::i32,// ->67660
/*67648*/           OPC_EmitCopyToReg, 1, X86::CL,
/*67651*/           OPC_MorphNodeTo, TARGET_VAL(X86::SHL32rCL), 0|OPFL_GlueInput,
                        2/*#VTs*/, MVT::i32, MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (shl:i32 GR32:i32:$src1, (and:i8 CL:i8, 31:i8)) - Complexity = 11
                    // Dst: (SHL32rCL:i32:i32 GR32:i32:$src1)
                  0, // EndSwitchType
/*67661*/       /*Scope*/ 18, /*->67680*/
/*67662*/         OPC_CheckAndImm, 63, 
/*67664*/         OPC_RecordChild0, // #1 = physreg input CL
/*67665*/         OPC_MoveParent,
/*67666*/         OPC_CheckType, MVT::i64,
/*67668*/         OPC_EmitCopyToReg, 1, X86::CL,
/*67671*/         OPC_MorphNodeTo, TARGET_VAL(X86::SHL64rCL), 0|OPFL_GlueInput,
                      2/*#VTs*/, MVT::i64, MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (shl:i64 GR64:i64:$src1, (and:i8 CL:i8, 63:i8)) - Complexity = 11
                  // Dst: (SHL64rCL:i64:i32 GR64:i64:$src1)
/*67680*/       /*Scope*/ 53, /*->67734*/
/*67681*/         OPC_CheckInteger, 1, 
/*67683*/         OPC_MoveParent,
/*67684*/         OPC_SwitchType /*4 cases */, 10,  MVT::i8,// ->67697
/*67687*/           OPC_MorphNodeTo, TARGET_VAL(X86::ADD8rr), 0,
                        2/*#VTs*/, MVT::i8, MVT::i32, 2/*#Ops*/, 0, 0, 
                    // Src: (shl:i8 GR8:i8:$src1, 1:i8) - Complexity = 8
                    // Dst: (ADD8rr:i8:i32 GR8:i8:$src1, GR8:i8:$src1)
                  /*SwitchType*/ 10,  MVT::i16,// ->67709
/*67699*/           OPC_MorphNodeTo, TARGET_VAL(X86::ADD16rr), 0,
                        2/*#VTs*/, MVT::i16, MVT::i32, 2/*#Ops*/, 0, 0, 
                    // Src: (shl:i16 GR16:i16:$src1, 1:i8) - Complexity = 8
                    // Dst: (ADD16rr:i16:i32 GR16:i16:$src1, GR16:i16:$src1)
                  /*SwitchType*/ 10,  MVT::i32,// ->67721
/*67711*/           OPC_MorphNodeTo, TARGET_VAL(X86::ADD32rr), 0,
                        2/*#VTs*/, MVT::i32, MVT::i32, 2/*#Ops*/, 0, 0, 
                    // Src: (shl:i32 GR32:i32:$src1, 1:i8) - Complexity = 8
                    // Dst: (ADD32rr:i32:i32 GR32:i32:$src1, GR32:i32:$src1)
                  /*SwitchType*/ 10,  MVT::i64,// ->67733
/*67723*/           OPC_MorphNodeTo, TARGET_VAL(X86::ADD64rr), 0,
                        2/*#VTs*/, MVT::i64, MVT::i32, 2/*#Ops*/, 0, 0, 
                    // Src: (shl:i64 GR64:i64:$src1, 1:i8) - Complexity = 8
                    // Dst: (ADD64rr:i64:i32 GR64:i64:$src1, GR64:i64:$src1)
                  0, // EndSwitchType
/*67734*/       0, /*End of Scope*/
/*67735*/     /*Scope*/ 3|128,1/*131*/, /*->67868*/
/*67737*/       OPC_RecordChild1, // #1 = $src2
/*67738*/       OPC_Scope, 66, /*->67806*/ // 2 children in Scope
/*67740*/         OPC_MoveChild, 1,
/*67742*/         OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*67745*/         OPC_CheckType, MVT::i8,
/*67747*/         OPC_MoveParent,
/*67748*/         OPC_SwitchType /*4 cases */, 12,  MVT::i8,// ->67763
/*67751*/           OPC_EmitConvertToTarget, 1,
/*67753*/           OPC_MorphNodeTo, TARGET_VAL(X86::SHL8ri), 0,
                        2/*#VTs*/, MVT::i8, MVT::i32, 2/*#Ops*/, 0, 2, 
                    // Src: (shl:i8 GR8:i8:$src1, (imm:i8):$src2) - Complexity = 6
                    // Dst: (SHL8ri:i8:i32 GR8:i8:$src1, (imm:i8):$src2)
                  /*SwitchType*/ 12,  MVT::i16,// ->67777
/*67765*/           OPC_EmitConvertToTarget, 1,
/*67767*/           OPC_MorphNodeTo, TARGET_VAL(X86::SHL16ri), 0,
                        2/*#VTs*/, MVT::i16, MVT::i32, 2/*#Ops*/, 0, 2, 
                    // Src: (shl:i16 GR16:i16:$src1, (imm:i8):$src2) - Complexity = 6
                    // Dst: (SHL16ri:i16:i32 GR16:i16:$src1, (imm:i8):$src2)
                  /*SwitchType*/ 12,  MVT::i32,// ->67791
/*67779*/           OPC_EmitConvertToTarget, 1,
/*67781*/           OPC_MorphNodeTo, TARGET_VAL(X86::SHL32ri), 0,
                        2/*#VTs*/, MVT::i32, MVT::i32, 2/*#Ops*/, 0, 2, 
                    // Src: (shl:i32 GR32:i32:$src1, (imm:i8):$src2) - Complexity = 6
                    // Dst: (SHL32ri:i32:i32 GR32:i32:$src1, (imm:i8):$src2)
                  /*SwitchType*/ 12,  MVT::i64,// ->67805
/*67793*/           OPC_EmitConvertToTarget, 1,
/*67795*/           OPC_MorphNodeTo, TARGET_VAL(X86::SHL64ri), 0,
                        2/*#VTs*/, MVT::i64, MVT::i32, 2/*#Ops*/, 0, 2, 
                    // Src: (shl:i64 GR64:i64:$src1, (imm:i8):$src2) - Complexity = 6
                    // Dst: (SHL64ri:i64:i32 GR64:i64:$src1, (imm:i8):$src2)
                  0, // EndSwitchType
/*67806*/       /*Scope*/ 60, /*->67867*/
/*67807*/         OPC_CheckChild1Type, MVT::i8,
/*67809*/         OPC_SwitchType /*4 cases */, 12,  MVT::i8,// ->67824
/*67812*/           OPC_EmitCopyToReg, 1, X86::CL,
/*67815*/           OPC_MorphNodeTo, TARGET_VAL(X86::SHL8rCL), 0|OPFL_GlueInput,
                        2/*#VTs*/, MVT::i8, MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (shl:i8 GR8:i8:$src1, CL:i8) - Complexity = 3
                    // Dst: (SHL8rCL:i8:i32 GR8:i8:$src1)
                  /*SwitchType*/ 12,  MVT::i16,// ->67838
/*67826*/           OPC_EmitCopyToReg, 1, X86::CL,
/*67829*/           OPC_MorphNodeTo, TARGET_VAL(X86::SHL16rCL), 0|OPFL_GlueInput,
                        2/*#VTs*/, MVT::i16, MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (shl:i16 GR16:i16:$src1, CL:i8) - Complexity = 3
                    // Dst: (SHL16rCL:i16:i32 GR16:i16:$src1)
                  /*SwitchType*/ 12,  MVT::i32,// ->67852
/*67840*/           OPC_EmitCopyToReg, 1, X86::CL,
/*67843*/           OPC_MorphNodeTo, TARGET_VAL(X86::SHL32rCL), 0|OPFL_GlueInput,
                        2/*#VTs*/, MVT::i32, MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (shl:i32 GR32:i32:$src1, CL:i8) - Complexity = 3
                    // Dst: (SHL32rCL:i32:i32 GR32:i32:$src1)
                  /*SwitchType*/ 12,  MVT::i64,// ->67866
/*67854*/           OPC_EmitCopyToReg, 1, X86::CL,
/*67857*/           OPC_MorphNodeTo, TARGET_VAL(X86::SHL64rCL), 0|OPFL_GlueInput,
                        2/*#VTs*/, MVT::i64, MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (shl:i64 GR64:i64:$src1, CL:i8) - Complexity = 3
                    // Dst: (SHL64rCL:i64:i32 GR64:i64:$src1)
                  0, // EndSwitchType
/*67867*/       0, /*End of Scope*/
/*67868*/     0, /*End of Scope*/
/*67869*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 60,  TARGET_VAL(ISD::FrameIndex),// ->67933
/*67873*/   OPC_RecordNode,   // #0 = $src
/*67874*/   OPC_SwitchType /*2 cases */, 38,  MVT::i32,// ->67915
/*67877*/     OPC_Scope, 17, /*->67896*/ // 2 children in Scope
/*67879*/       OPC_CheckPatternPredicate, 3, // (!Subtarget->is64Bit())
/*67881*/       OPC_CheckComplexPat, /*CP*/3, /*#*/0, // SelectLEAAddr:$src #1 #2 #3 #4 #5
/*67884*/       OPC_MorphNodeTo, TARGET_VAL(X86::LEA32r), 0,
                    1/*#VTs*/, MVT::i32, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                // Src: lea32addr:i32:$src - Complexity = 18
                // Dst: (LEA32r:i32 lea32addr:i32:$src)
/*67896*/     /*Scope*/ 17, /*->67914*/
/*67897*/       OPC_CheckPatternPredicate, 4, // (Subtarget->is64Bit())
/*67899*/       OPC_CheckComplexPat, /*CP*/3, /*#*/0, // SelectLEAAddr:$src #1 #2 #3 #4 #5
/*67902*/       OPC_MorphNodeTo, TARGET_VAL(X86::LEA64_32r), 0,
                    1/*#VTs*/, MVT::i32, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                // Src: lea32addr:i32:$src - Complexity = 18
                // Dst: (LEA64_32r:i32 lea32addr:i32:$src)
/*67914*/     0, /*End of Scope*/
            /*SwitchType*/ 15,  MVT::i64,// ->67932
/*67917*/     OPC_CheckComplexPat, /*CP*/4, /*#*/0, // SelectLEAAddr:$src #1 #2 #3 #4 #5
/*67920*/     OPC_MorphNodeTo, TARGET_VAL(X86::LEA64r), 0,
                  1/*#VTs*/, MVT::i64, 5/*#Ops*/, 1, 2, 3, 4, 5, 
              // Src: lea64addr:i64:$src - Complexity = 18
              // Dst: (LEA64r:i64 lea64addr:i64:$src)
            0, // EndSwitchType
          /*SwitchOpcode*/ 18,  TARGET_VAL(X86ISD::WrapperRIP),// ->67954
/*67936*/   OPC_RecordNode,   // #0 = $src
/*67937*/   OPC_CheckType, MVT::i64,
/*67939*/   OPC_CheckComplexPat, /*CP*/4, /*#*/0, // SelectLEAAddr:$src #1 #2 #3 #4 #5
/*67942*/   OPC_MorphNodeTo, TARGET_VAL(X86::LEA64r), 0,
                1/*#VTs*/, MVT::i64, 5/*#Ops*/, 1, 2, 3, 4, 5, 
            // Src: lea64addr:i64:$src - Complexity = 18
            // Dst: (LEA64r:i64 lea64addr:i64:$src)
          /*SwitchOpcode*/ 82|128,3/*466*/,  TARGET_VAL(ISD::SRL),// ->68424
/*67958*/   OPC_Scope, 97, /*->68057*/ // 2 children in Scope
/*67960*/     OPC_MoveChild, 0,
/*67962*/     OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/*67965*/     OPC_RecordChild0, // #0 = $src
/*67966*/     OPC_MoveChild, 1,
/*67968*/     OPC_CheckInteger, 0|128,126|128,3/*65280*/, 
/*67972*/     OPC_MoveParent,
/*67973*/     OPC_CheckPredicate, 21, // Predicate_and_su
/*67975*/     OPC_MoveParent,
/*67976*/     OPC_MoveChild, 1,
/*67978*/     OPC_CheckInteger, 8, 
/*67980*/     OPC_CheckType, MVT::i8,
/*67982*/     OPC_MoveParent,
/*67983*/     OPC_CheckType, MVT::i32,
/*67985*/     OPC_Scope, 34, /*->68021*/ // 2 children in Scope
/*67987*/       OPC_CheckPatternPredicate, 3, // (!Subtarget->is64Bit())
/*67989*/       OPC_EmitInteger, MVT::i32, X86::GR32_ABCDRegClassID,
/*67992*/       OPC_EmitNode, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    1/*#VTs*/, MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2 
/*68001*/       OPC_EmitInteger, MVT::i32, X86::sub_8bit_hi,
/*68004*/       OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                    1/*#VTs*/, MVT::i8, 2/*#Ops*/, 2, 3,  // Results = #4 
/*68013*/       OPC_MorphNodeTo, TARGET_VAL(X86::MOVZX32rr8), 0,
                    1/*#VTs*/, MVT::i32, 1/*#Ops*/, 4, 
                // Src: (srl:i32 (and:i32 GR32:i32:$src, 65280:i32)<<P:Predicate_and_su>>, 8:i8) - Complexity = 17
                // Dst: (MOVZX32rr8:i32 (EXTRACT_SUBREG:i8 (COPY_TO_REGCLASS:i32 GR32:i32:$src, GR32_ABCD:i32), sub_8bit_hi:i32))
/*68021*/     /*Scope*/ 34, /*->68056*/
/*68022*/       OPC_CheckPatternPredicate, 4, // (Subtarget->is64Bit())
/*68024*/       OPC_EmitInteger, MVT::i32, X86::GR32_ABCDRegClassID,
/*68027*/       OPC_EmitNode, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    1/*#VTs*/, MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2 
/*68036*/       OPC_EmitInteger, MVT::i32, X86::sub_8bit_hi,
/*68039*/       OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                    1/*#VTs*/, MVT::i8, 2/*#Ops*/, 2, 3,  // Results = #4 
/*68048*/       OPC_MorphNodeTo, TARGET_VAL(X86::MOVZX32_NOREXrr8), 0,
                    1/*#VTs*/, MVT::i32, 1/*#Ops*/, 4, 
                // Src: (srl:i32 (and:i32 GR32:i32:$src, 65280:i32)<<P:Predicate_and_su>>, 8:i8) - Complexity = 17
                // Dst: (MOVZX32_NOREXrr8:i32 (EXTRACT_SUBREG:i8 (COPY_TO_REGCLASS:i32 GR32:i32:$src, GR32_ABCD:i32), sub_8bit_hi:i32))
/*68056*/     0, /*End of Scope*/
/*68057*/   /*Scope*/ 108|128,2/*364*/, /*->68423*/
/*68059*/     OPC_RecordChild0, // #0 = $src1
/*68060*/     OPC_Scope, 98|128,1/*226*/, /*->68289*/ // 2 children in Scope
/*68063*/       OPC_MoveChild, 1,
/*68065*/       OPC_CheckType, MVT::i8,
/*68067*/       OPC_Scope, 48, /*->68117*/ // 4 children in Scope
/*68069*/         OPC_CheckAndImm, 31, 
/*68071*/         OPC_RecordChild0, // #1 = physreg input CL
/*68072*/         OPC_MoveParent,
/*68073*/         OPC_SwitchType /*3 cases */, 12,  MVT::i8,// ->68088
/*68076*/           OPC_EmitCopyToReg, 1, X86::CL,
/*68079*/           OPC_MorphNodeTo, TARGET_VAL(X86::SHR8rCL), 0|OPFL_GlueInput,
                        2/*#VTs*/, MVT::i8, MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (srl:i8 GR8:i8:$src1, (and:i8 CL:i8, 31:i8)) - Complexity = 11
                    // Dst: (SHR8rCL:i8:i32 GR8:i8:$src1)
                  /*SwitchType*/ 12,  MVT::i16,// ->68102
/*68090*/           OPC_EmitCopyToReg, 1, X86::CL,
/*68093*/           OPC_MorphNodeTo, TARGET_VAL(X86::SHR16rCL), 0|OPFL_GlueInput,
                        2/*#VTs*/, MVT::i16, MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (srl:i16 GR16:i16:$src1, (and:i8 CL:i8, 31:i8)) - Complexity = 11
                    // Dst: (SHR16rCL:i16:i32 GR16:i16:$src1)
                  /*SwitchType*/ 12,  MVT::i32,// ->68116
/*68104*/           OPC_EmitCopyToReg, 1, X86::CL,
/*68107*/           OPC_MorphNodeTo, TARGET_VAL(X86::SHR32rCL), 0|OPFL_GlueInput,
                        2/*#VTs*/, MVT::i32, MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (srl:i32 GR32:i32:$src1, (and:i8 CL:i8, 31:i8)) - Complexity = 11
                    // Dst: (SHR32rCL:i32:i32 GR32:i32:$src1)
                  0, // EndSwitchType
/*68117*/       /*Scope*/ 18, /*->68136*/
/*68118*/         OPC_CheckAndImm, 63, 
/*68120*/         OPC_RecordChild0, // #1 = physreg input CL
/*68121*/         OPC_MoveParent,
/*68122*/         OPC_CheckType, MVT::i64,
/*68124*/         OPC_EmitCopyToReg, 1, X86::CL,
/*68127*/         OPC_MorphNodeTo, TARGET_VAL(X86::SHR64rCL), 0|OPFL_GlueInput,
                      2/*#VTs*/, MVT::i64, MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (srl:i64 GR64:i64:$src1, (and:i8 CL:i8, 63:i8)) - Complexity = 11
                  // Dst: (SHR64rCL:i64:i32 GR64:i64:$src1)
/*68136*/       /*Scope*/ 49, /*->68186*/
/*68137*/         OPC_CheckInteger, 1, 
/*68139*/         OPC_MoveParent,
/*68140*/         OPC_SwitchType /*4 cases */, 9,  MVT::i8,// ->68152
/*68143*/           OPC_MorphNodeTo, TARGET_VAL(X86::SHR8r1), 0,
                        2/*#VTs*/, MVT::i8, MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (srl:i8 GR8:i8:$src1, 1:i8) - Complexity = 8
                    // Dst: (SHR8r1:i8:i32 GR8:i8:$src1)
                  /*SwitchType*/ 9,  MVT::i16,// ->68163
/*68154*/           OPC_MorphNodeTo, TARGET_VAL(X86::SHR16r1), 0,
                        2/*#VTs*/, MVT::i16, MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (srl:i16 GR16:i16:$src1, 1:i8) - Complexity = 8
                    // Dst: (SHR16r1:i16:i32 GR16:i16:$src1)
                  /*SwitchType*/ 9,  MVT::i32,// ->68174
/*68165*/           OPC_MorphNodeTo, TARGET_VAL(X86::SHR32r1), 0,
                        2/*#VTs*/, MVT::i32, MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (srl:i32 GR32:i32:$src1, 1:i8) - Complexity = 8
                    // Dst: (SHR32r1:i32:i32 GR32:i32:$src1)
                  /*SwitchType*/ 9,  MVT::i64,// ->68185
/*68176*/           OPC_MorphNodeTo, TARGET_VAL(X86::SHR64r1), 0,
                        2/*#VTs*/, MVT::i64, MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (srl:i64 GR64:i64:$src1, 1:i8) - Complexity = 8
                    // Dst: (SHR64r1:i64:i32 GR64:i64:$src1)
                  0, // EndSwitchType
/*68186*/       /*Scope*/ 101, /*->68288*/
/*68187*/         OPC_CheckInteger, 8, 
/*68189*/         OPC_MoveParent,
/*68190*/         OPC_CheckType, MVT::i16,
/*68192*/         OPC_Scope, 46, /*->68240*/ // 2 children in Scope
/*68194*/           OPC_CheckPatternPredicate, 3, // (!Subtarget->is64Bit())
/*68196*/           OPC_EmitInteger, MVT::i32, X86::GR16_ABCDRegClassID,
/*68199*/           OPC_EmitNode, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        1/*#VTs*/, MVT::i16, 2/*#Ops*/, 0, 1,  // Results = #2 
/*68208*/           OPC_EmitInteger, MVT::i32, X86::sub_8bit_hi,
/*68211*/           OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        1/*#VTs*/, MVT::i8, 2/*#Ops*/, 2, 3,  // Results = #4 
/*68220*/           OPC_EmitNode, TARGET_VAL(X86::MOVZX32rr8), 0,
                        1/*#VTs*/, MVT::i32, 1/*#Ops*/, 4,  // Results = #5 
/*68228*/           OPC_EmitInteger, MVT::i32, X86::sub_16bit,
/*68231*/           OPC_MorphNodeTo, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        1/*#VTs*/, MVT::i16, 2/*#Ops*/, 5, 6, 
                    // Src: (srl:i16 GR16:i16:$src, 8:i8) - Complexity = 8
                    // Dst: (EXTRACT_SUBREG:i16 (MOVZX32rr8:i32 (EXTRACT_SUBREG:i8 (COPY_TO_REGCLASS:i16 GR16:i16:$src, GR16_ABCD:i16), sub_8bit_hi:i32)), sub_16bit:i32)
/*68240*/         /*Scope*/ 46, /*->68287*/
/*68241*/           OPC_CheckPatternPredicate, 4, // (Subtarget->is64Bit())
/*68243*/           OPC_EmitInteger, MVT::i32, X86::GR16_ABCDRegClassID,
/*68246*/           OPC_EmitNode, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        1/*#VTs*/, MVT::i16, 2/*#Ops*/, 0, 1,  // Results = #2 
/*68255*/           OPC_EmitInteger, MVT::i32, X86::sub_8bit_hi,
/*68258*/           OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        1/*#VTs*/, MVT::i8, 2/*#Ops*/, 2, 3,  // Results = #4 
/*68267*/           OPC_EmitNode, TARGET_VAL(X86::MOVZX32_NOREXrr8), 0,
                        1/*#VTs*/, MVT::i32, 1/*#Ops*/, 4,  // Results = #5 
/*68275*/           OPC_EmitInteger, MVT::i32, X86::sub_16bit,
/*68278*/           OPC_MorphNodeTo, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        1/*#VTs*/, MVT::i16, 2/*#Ops*/, 5, 6, 
                    // Src: (srl:i16 GR16:i16:$src, 8:i8) - Complexity = 8
                    // Dst: (EXTRACT_SUBREG:i16 (MOVZX32_NOREXrr8:i32 (EXTRACT_SUBREG:i8 (COPY_TO_REGCLASS:i16 GR16:i16:$src, GR16_ABCD:i16), sub_8bit_hi:i32)), sub_16bit:i32)
/*68287*/         0, /*End of Scope*/
/*68288*/       0, /*End of Scope*/
/*68289*/     /*Scope*/ 3|128,1/*131*/, /*->68422*/
/*68291*/       OPC_RecordChild1, // #1 = $src2
/*68292*/       OPC_Scope, 66, /*->68360*/ // 2 children in Scope
/*68294*/         OPC_MoveChild, 1,
/*68296*/         OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*68299*/         OPC_CheckType, MVT::i8,
/*68301*/         OPC_MoveParent,
/*68302*/         OPC_SwitchType /*4 cases */, 12,  MVT::i8,// ->68317
/*68305*/           OPC_EmitConvertToTarget, 1,
/*68307*/           OPC_MorphNodeTo, TARGET_VAL(X86::SHR8ri), 0,
                        2/*#VTs*/, MVT::i8, MVT::i32, 2/*#Ops*/, 0, 2, 
                    // Src: (srl:i8 GR8:i8:$src1, (imm:i8):$src2) - Complexity = 6
                    // Dst: (SHR8ri:i8:i32 GR8:i8:$src1, (imm:i8):$src2)
                  /*SwitchType*/ 12,  MVT::i16,// ->68331
/*68319*/           OPC_EmitConvertToTarget, 1,
/*68321*/           OPC_MorphNodeTo, TARGET_VAL(X86::SHR16ri), 0,
                        2/*#VTs*/, MVT::i16, MVT::i32, 2/*#Ops*/, 0, 2, 
                    // Src: (srl:i16 GR16:i16:$src1, (imm:i8):$src2) - Complexity = 6
                    // Dst: (SHR16ri:i16:i32 GR16:i16:$src1, (imm:i8):$src2)
                  /*SwitchType*/ 12,  MVT::i32,// ->68345
/*68333*/           OPC_EmitConvertToTarget, 1,
/*68335*/           OPC_MorphNodeTo, TARGET_VAL(X86::SHR32ri), 0,
                        2/*#VTs*/, MVT::i32, MVT::i32, 2/*#Ops*/, 0, 2, 
                    // Src: (srl:i32 GR32:i32:$src1, (imm:i8):$src2) - Complexity = 6
                    // Dst: (SHR32ri:i32:i32 GR32:i32:$src1, (imm:i8):$src2)
                  /*SwitchType*/ 12,  MVT::i64,// ->68359
/*68347*/           OPC_EmitConvertToTarget, 1,
/*68349*/           OPC_MorphNodeTo, TARGET_VAL(X86::SHR64ri), 0,
                        2/*#VTs*/, MVT::i64, MVT::i32, 2/*#Ops*/, 0, 2, 
                    // Src: (srl:i64 GR64:i64:$src1, (imm:i8):$src2) - Complexity = 6
                    // Dst: (SHR64ri:i64:i32 GR64:i64:$src1, (imm:i8):$src2)
                  0, // EndSwitchType
/*68360*/       /*Scope*/ 60, /*->68421*/
/*68361*/         OPC_CheckChild1Type, MVT::i8,
/*68363*/         OPC_SwitchType /*4 cases */, 12,  MVT::i8,// ->68378
/*68366*/           OPC_EmitCopyToReg, 1, X86::CL,
/*68369*/           OPC_MorphNodeTo, TARGET_VAL(X86::SHR8rCL), 0|OPFL_GlueInput,
                        2/*#VTs*/, MVT::i8, MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (srl:i8 GR8:i8:$src1, CL:i8) - Complexity = 3
                    // Dst: (SHR8rCL:i8:i32 GR8:i8:$src1)
                  /*SwitchType*/ 12,  MVT::i16,// ->68392
/*68380*/           OPC_EmitCopyToReg, 1, X86::CL,
/*68383*/           OPC_MorphNodeTo, TARGET_VAL(X86::SHR16rCL), 0|OPFL_GlueInput,
                        2/*#VTs*/, MVT::i16, MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (srl:i16 GR16:i16:$src1, CL:i8) - Complexity = 3
                    // Dst: (SHR16rCL:i16:i32 GR16:i16:$src1)
                  /*SwitchType*/ 12,  MVT::i32,// ->68406
/*68394*/           OPC_EmitCopyToReg, 1, X86::CL,
/*68397*/           OPC_MorphNodeTo, TARGET_VAL(X86::SHR32rCL), 0|OPFL_GlueInput,
                        2/*#VTs*/, MVT::i32, MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (srl:i32 GR32:i32:$src1, CL:i8) - Complexity = 3
                    // Dst: (SHR32rCL:i32:i32 GR32:i32:$src1)
                  /*SwitchType*/ 12,  MVT::i64,// ->68420
/*68408*/           OPC_EmitCopyToReg, 1, X86::CL,
/*68411*/           OPC_MorphNodeTo, TARGET_VAL(X86::SHR64rCL), 0|OPFL_GlueInput,
                        2/*#VTs*/, MVT::i64, MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (srl:i64 GR64:i64:$src1, CL:i8) - Complexity = 3
                    // Dst: (SHR64rCL:i64:i32 GR64:i64:$src1)
                  0, // EndSwitchType
/*68421*/       0, /*End of Scope*/
/*68422*/     0, /*End of Scope*/
/*68423*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 120|128,1/*248*/,  TARGET_VAL(ISD::TRUNCATE),// ->68676
/*68428*/   OPC_Scope, 79, /*->68509*/ // 2 children in Scope
/*68430*/     OPC_MoveChild, 0,
/*68432*/     OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
/*68435*/     OPC_RecordChild0, // #0 = $src
/*68436*/     OPC_MoveChild, 1,
/*68438*/     OPC_CheckInteger, 8, 
/*68440*/     OPC_CheckType, MVT::i8,
/*68442*/     OPC_MoveParent,
/*68443*/     OPC_CheckPredicate, 14, // Predicate_srl_su
/*68445*/     OPC_SwitchType /*2 cases */, 29,  MVT::i16,// ->68477
/*68448*/       OPC_MoveParent,
/*68449*/       OPC_CheckType, MVT::i8,
/*68451*/       OPC_CheckPatternPredicate, 3, // (!Subtarget->is64Bit())
/*68453*/       OPC_EmitInteger, MVT::i32, X86::GR16_ABCDRegClassID,
/*68456*/       OPC_EmitNode, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    1/*#VTs*/, MVT::i16, 2/*#Ops*/, 0, 1,  // Results = #2 
/*68465*/       OPC_EmitInteger, MVT::i32, X86::sub_8bit_hi,
/*68468*/       OPC_MorphNodeTo, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                    1/*#VTs*/, MVT::i8, 2/*#Ops*/, 2, 3, 
                // Src: (trunc:i8 (srl:i16 GR16:i16:$src, 8:i8)<<P:Predicate_srl_su>>) - Complexity = 12
                // Dst: (EXTRACT_SUBREG:i8 (COPY_TO_REGCLASS:i16 GR16:i16:$src, GR16_ABCD:i16), sub_8bit_hi:i32)
              /*SwitchType*/ 29,  MVT::i32,// ->68508
/*68479*/       OPC_MoveParent,
/*68480*/       OPC_CheckType, MVT::i8,
/*68482*/       OPC_CheckPatternPredicate, 3, // (!Subtarget->is64Bit())
/*68484*/       OPC_EmitInteger, MVT::i32, X86::GR32_ABCDRegClassID,
/*68487*/       OPC_EmitNode, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    1/*#VTs*/, MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2 
/*68496*/       OPC_EmitInteger, MVT::i32, X86::sub_8bit_hi,
/*68499*/       OPC_MorphNodeTo, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                    1/*#VTs*/, MVT::i8, 2/*#Ops*/, 2, 3, 
                // Src: (trunc:i8 (srl:i32 GR32:i32:$src, 8:i8)<<P:Predicate_srl_su>>) - Complexity = 12
                // Dst: (EXTRACT_SUBREG:i8 (COPY_TO_REGCLASS:i32 GR32:i32:$src, GR32_ABCD:i32), sub_8bit_hi:i32)
              0, // EndSwitchType
/*68509*/   /*Scope*/ 36|128,1/*164*/, /*->68675*/
/*68511*/     OPC_RecordChild0, // #0 = $src
/*68512*/     OPC_Scope, 64, /*->68578*/ // 3 children in Scope
/*68514*/       OPC_CheckChild0Type, MVT::i32,
/*68516*/       OPC_SwitchType /*2 cases */, 12,  MVT::i16,// ->68531
/*68519*/         OPC_EmitInteger, MVT::i32, X86::sub_16bit,
/*68522*/         OPC_MorphNodeTo, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      1/*#VTs*/, MVT::i16, 2/*#Ops*/, 0, 1, 
                  // Src: (trunc:i16 GR32:i32:$src) - Complexity = 3
                  // Dst: (EXTRACT_SUBREG:i16 GR32:i32:$src, sub_16bit:i32)
                /*SwitchType*/ 44,  MVT::i8,// ->68577
/*68533*/         OPC_Scope, 14, /*->68549*/ // 2 children in Scope
/*68535*/           OPC_CheckPatternPredicate, 4, // (Subtarget->is64Bit())
/*68537*/           OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*68540*/           OPC_MorphNodeTo, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        1/*#VTs*/, MVT::i8, 2/*#Ops*/, 0, 1, 
                    // Src: (trunc:i8 GR32:i32:$src) - Complexity = 3
                    // Dst: (EXTRACT_SUBREG:i8 GR32:i32:$src, sub_8bit:i32)
/*68549*/         /*Scope*/ 26, /*->68576*/
/*68550*/           OPC_CheckPatternPredicate, 3, // (!Subtarget->is64Bit())
/*68552*/           OPC_EmitInteger, MVT::i32, X86::GR32_ABCDRegClassID,
/*68555*/           OPC_EmitNode, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        1/*#VTs*/, MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2 
/*68564*/           OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*68567*/           OPC_MorphNodeTo, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        1/*#VTs*/, MVT::i8, 2/*#Ops*/, 2, 3, 
                    // Src: (trunc:i8 GR32:i32:$src) - Complexity = 3
                    // Dst: (EXTRACT_SUBREG:i8 (COPY_TO_REGCLASS:i32 GR32:i32:$src, GR32_ABCD:i32), sub_8bit:i32)
/*68576*/         0, /*End of Scope*/
                0, // EndSwitchType
/*68578*/     /*Scope*/ 46, /*->68625*/
/*68579*/       OPC_CheckChild0Type, MVT::i64,
/*68581*/       OPC_SwitchType /*3 cases */, 12,  MVT::i32,// ->68596
/*68584*/         OPC_EmitInteger, MVT::i32, X86::sub_32bit,
/*68587*/         OPC_MorphNodeTo, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      1/*#VTs*/, MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (trunc:i32 GR64:i64:$src) - Complexity = 3
                  // Dst: (EXTRACT_SUBREG:i32 GR64:i64:$src, sub_32bit:i32)
                /*SwitchType*/ 12,  MVT::i16,// ->68610
/*68598*/         OPC_EmitInteger, MVT::i32, X86::sub_16bit,
/*68601*/         OPC_MorphNodeTo, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      1/*#VTs*/, MVT::i16, 2/*#Ops*/, 0, 1, 
                  // Src: (trunc:i16 GR64:i64:$src) - Complexity = 3
                  // Dst: (EXTRACT_SUBREG:i16 GR64:i64:$src, sub_16bit:i32)
                /*SwitchType*/ 12,  MVT::i8,// ->68624
/*68612*/         OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*68615*/         OPC_MorphNodeTo, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      1/*#VTs*/, MVT::i8, 2/*#Ops*/, 0, 1, 
                  // Src: (trunc:i8 GR64:i64:$src) - Complexity = 3
                  // Dst: (EXTRACT_SUBREG:i8 GR64:i64:$src, sub_8bit:i32)
                0, // EndSwitchType
/*68625*/     /*Scope*/ 48, /*->68674*/
/*68626*/       OPC_CheckChild0Type, MVT::i16,
/*68628*/       OPC_CheckType, MVT::i8,
/*68630*/       OPC_Scope, 14, /*->68646*/ // 2 children in Scope
/*68632*/         OPC_CheckPatternPredicate, 4, // (Subtarget->is64Bit())
/*68634*/         OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*68637*/         OPC_MorphNodeTo, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      1/*#VTs*/, MVT::i8, 2/*#Ops*/, 0, 1, 
                  // Src: (trunc:i8 GR16:i16:$src) - Complexity = 3
                  // Dst: (EXTRACT_SUBREG:i8 GR16:i16:$src, sub_8bit:i32)
/*68646*/       /*Scope*/ 26, /*->68673*/
/*68647*/         OPC_CheckPatternPredicate, 3, // (!Subtarget->is64Bit())
/*68649*/         OPC_EmitInteger, MVT::i32, X86::GR16_ABCDRegClassID,
/*68652*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      1/*#VTs*/, MVT::i16, 2/*#Ops*/, 0, 1,  // Results = #2 
/*68661*/         OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*68664*/         OPC_MorphNodeTo, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      1/*#VTs*/, MVT::i8, 2/*#Ops*/, 2, 3, 
                  // Src: (trunc:i8 GR16:i16:$src) - Complexity = 3
                  // Dst: (EXTRACT_SUBREG:i8 (COPY_TO_REGCLASS:i16 GR16:i16:$src, GR16_ABCD:i16), sub_8bit:i32)
/*68673*/       0, /*End of Scope*/
/*68674*/     0, /*End of Scope*/
/*68675*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 7|128,2/*263*/,  TARGET_VAL(ISD::ZERO_EXTEND),// ->68943
/*68680*/   OPC_Scope, 16|128,1/*144*/, /*->68827*/ // 2 children in Scope
/*68683*/     OPC_MoveChild, 0,
/*68685*/     OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
/*68688*/     OPC_RecordChild0, // #0 = $src
/*68689*/     OPC_MoveChild, 1,
/*68691*/     OPC_CheckInteger, 8, 
/*68693*/     OPC_CheckType, MVT::i8,
/*68695*/     OPC_MoveParent,
/*68696*/     OPC_CheckPredicate, 14, // Predicate_srl_su
/*68698*/     OPC_CheckType, MVT::i16,
/*68700*/     OPC_MoveParent,
/*68701*/     OPC_SwitchType /*2 cases */, 72,  MVT::i32,// ->68776
/*68704*/       OPC_Scope, 34, /*->68740*/ // 2 children in Scope
/*68706*/         OPC_CheckPatternPredicate, 3, // (!Subtarget->is64Bit())
/*68708*/         OPC_EmitInteger, MVT::i32, X86::GR16_ABCDRegClassID,
/*68711*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      1/*#VTs*/, MVT::i16, 2/*#Ops*/, 0, 1,  // Results = #2 
/*68720*/         OPC_EmitInteger, MVT::i32, X86::sub_8bit_hi,
/*68723*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      1/*#VTs*/, MVT::i8, 2/*#Ops*/, 2, 3,  // Results = #4 
/*68732*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOVZX32rr8), 0,
                      1/*#VTs*/, MVT::i32, 1/*#Ops*/, 4, 
                  // Src: (zext:i32 (srl:i16 GR16:i16:$src, 8:i8)<<P:Predicate_srl_su>>) - Complexity = 12
                  // Dst: (MOVZX32rr8:i32 (EXTRACT_SUBREG:i8 (COPY_TO_REGCLASS:i16 GR16:i16:$src, GR16_ABCD:i16), sub_8bit_hi:i32))
/*68740*/       /*Scope*/ 34, /*->68775*/
/*68741*/         OPC_CheckPatternPredicate, 4, // (Subtarget->is64Bit())
/*68743*/         OPC_EmitInteger, MVT::i32, X86::GR16_ABCDRegClassID,
/*68746*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      1/*#VTs*/, MVT::i16, 2/*#Ops*/, 0, 1,  // Results = #2 
/*68755*/         OPC_EmitInteger, MVT::i32, X86::sub_8bit_hi,
/*68758*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      1/*#VTs*/, MVT::i8, 2/*#Ops*/, 2, 3,  // Results = #4 
/*68767*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOVZX32_NOREXrr8), 0,
                      1/*#VTs*/, MVT::i32, 1/*#Ops*/, 4, 
                  // Src: (zext:i32 (srl:i16 GR16:i16:$src, 8:i8)<<P:Predicate_srl_su>>) - Complexity = 12
                  // Dst: (MOVZX32_NOREXrr8:i32 (EXTRACT_SUBREG:i8 (COPY_TO_REGCLASS:i16 GR16:i16:$src, GR16_ABCD:i16), sub_8bit_hi:i32))
/*68775*/       0, /*End of Scope*/
              /*SwitchType*/ 48,  MVT::i64,// ->68826
/*68778*/       OPC_EmitInteger, MVT::i64, 0, 
/*68781*/       OPC_EmitInteger, MVT::i32, X86::GR16_ABCDRegClassID,
/*68784*/       OPC_EmitNode, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    1/*#VTs*/, MVT::i16, 2/*#Ops*/, 0, 2,  // Results = #3 
/*68793*/       OPC_EmitInteger, MVT::i32, X86::sub_8bit_hi,
/*68796*/       OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                    1/*#VTs*/, MVT::i8, 2/*#Ops*/, 3, 4,  // Results = #5 
/*68805*/       OPC_EmitNode, TARGET_VAL(X86::MOVZX32_NOREXrr8), 0,
                    1/*#VTs*/, MVT::i32, 1/*#Ops*/, 5,  // Results = #6 
/*68813*/       OPC_EmitInteger, MVT::i32, X86::sub_32bit,
/*68816*/       OPC_MorphNodeTo, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                    1/*#VTs*/, MVT::i64, 3/*#Ops*/, 1, 6, 7, 
                // Src: (zext:i64 (srl:i16 GR16:i16:$src, 8:i8)<<P:Predicate_srl_su>>) - Complexity = 12
                // Dst: (SUBREG_TO_REG:i64 0:i64, (MOVZX32_NOREXrr8:i32 (EXTRACT_SUBREG:i8 (COPY_TO_REGCLASS:i16 GR16:i16:$src, GR16_ABCD:i16), sub_8bit_hi:i32)), sub_32bit:i32)
              0, // EndSwitchType
/*68827*/   /*Scope*/ 114, /*->68942*/
/*68828*/     OPC_RecordChild0, // #0 = $src
/*68829*/     OPC_Scope, 25, /*->68856*/ // 4 children in Scope
/*68831*/       OPC_MoveChild, 0,
/*68833*/       OPC_CheckPredicate, 86, // Predicate_def32
/*68835*/       OPC_CheckType, MVT::i32,
/*68837*/       OPC_MoveParent,
/*68838*/       OPC_CheckType, MVT::i64,
/*68840*/       OPC_EmitInteger, MVT::i64, 0, 
/*68843*/       OPC_EmitInteger, MVT::i32, X86::sub_32bit,
/*68846*/       OPC_MorphNodeTo, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                    1/*#VTs*/, MVT::i64, 3/*#Ops*/, 1, 0, 2, 
                // Src: (zext:i64 GR32:i32<<P:Predicate_def32>>:$src) - Complexity = 4
                // Dst: (SUBREG_TO_REG:i64 0:i64, GR32:i32:$src, sub_32bit:i32)
/*68856*/     /*Scope*/ 46, /*->68903*/
/*68857*/       OPC_CheckChild0Type, MVT::i8,
/*68859*/       OPC_SwitchType /*3 cases */, 8,  MVT::i32,// ->68870
/*68862*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOVZX32rr8), 0,
                      1/*#VTs*/, MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (zext:i32 GR8:i8:$src) - Complexity = 3
                  // Dst: (MOVZX32rr8:i32 GR8:i8:$src)
                /*SwitchType*/ 8,  MVT::i64,// ->68880
/*68872*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOVZX64rr8), 0,
                      1/*#VTs*/, MVT::i64, 1/*#Ops*/, 0, 
                  // Src: (zext:i64 GR8:i8:$src) - Complexity = 3
                  // Dst: (MOVZX64rr8:i64 GR8:i8:$src)
                /*SwitchType*/ 20,  MVT::i16,// ->68902
/*68882*/         OPC_EmitNode, TARGET_VAL(X86::MOVZX32rr8), 0,
                      1/*#VTs*/, MVT::i32, 1/*#Ops*/, 0,  // Results = #1 
/*68890*/         OPC_EmitInteger, MVT::i32, X86::sub_16bit,
/*68893*/         OPC_MorphNodeTo, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      1/*#VTs*/, MVT::i16, 2/*#Ops*/, 1, 2, 
                  // Src: (zext:i16 GR8:i8:$src) - Complexity = 3
                  // Dst: (EXTRACT_SUBREG:i16 (MOVZX32rr8:i32 GR8:i8:$src), sub_16bit:i32)
                0, // EndSwitchType
/*68903*/     /*Scope*/ 24, /*->68928*/
/*68904*/       OPC_CheckChild0Type, MVT::i16,
/*68906*/       OPC_SwitchType /*2 cases */, 8,  MVT::i32,// ->68917
/*68909*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOVZX32rr16), 0,
                      1/*#VTs*/, MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (zext:i32 GR16:i16:$src) - Complexity = 3
                  // Dst: (MOVZX32rr16:i32 GR16:i16:$src)
                /*SwitchType*/ 8,  MVT::i64,// ->68927
/*68919*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOVZX64rr16), 0,
                      1/*#VTs*/, MVT::i64, 1/*#Ops*/, 0, 
                  // Src: (zext:i64 GR16:i16:$src) - Complexity = 3
                  // Dst: (MOVZX64rr16:i64 GR16:i16:$src)
                0, // EndSwitchType
/*68928*/     /*Scope*/ 12, /*->68941*/
/*68929*/       OPC_CheckChild0Type, MVT::i32,
/*68931*/       OPC_CheckType, MVT::i64,
/*68933*/       OPC_MorphNodeTo, TARGET_VAL(X86::MOVZX64rr32), 0,
                    1/*#VTs*/, MVT::i64, 1/*#Ops*/, 0, 
                // Src: (zext:i64 GR32:i32:$src) - Complexity = 3
                // Dst: (MOVZX64rr32:i64 GR32:i32:$src)
/*68941*/     0, /*End of Scope*/
/*68942*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 75|128,2/*331*/,  TARGET_VAL(ISD::ANY_EXTEND),// ->69278
/*68947*/   OPC_Scope, 90|128,1/*218*/, /*->69168*/ // 2 children in Scope
/*68950*/     OPC_MoveChild, 0,
/*68952*/     OPC_SwitchOpcode /*2 cases */, 11|128,1/*139*/,  TARGET_VAL(ISD::SRL),// ->69096
/*68957*/       OPC_RecordChild0, // #0 = $src
/*68958*/       OPC_MoveChild, 1,
/*68960*/       OPC_CheckInteger, 8, 
/*68962*/       OPC_CheckType, MVT::i8,
/*68964*/       OPC_MoveParent,
/*68965*/       OPC_CheckPredicate, 14, // Predicate_srl_su
/*68967*/       OPC_CheckType, MVT::i16,
/*68969*/       OPC_MoveParent,
/*68970*/       OPC_SwitchType /*2 cases */, 72,  MVT::i32,// ->69045
/*68973*/         OPC_Scope, 34, /*->69009*/ // 2 children in Scope
/*68975*/           OPC_CheckPatternPredicate, 3, // (!Subtarget->is64Bit())
/*68977*/           OPC_EmitInteger, MVT::i32, X86::GR16_ABCDRegClassID,
/*68980*/           OPC_EmitNode, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        1/*#VTs*/, MVT::i16, 2/*#Ops*/, 0, 1,  // Results = #2 
/*68989*/           OPC_EmitInteger, MVT::i32, X86::sub_8bit_hi,
/*68992*/           OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        1/*#VTs*/, MVT::i8, 2/*#Ops*/, 2, 3,  // Results = #4 
/*69001*/           OPC_MorphNodeTo, TARGET_VAL(X86::MOVZX32rr8), 0,
                        1/*#VTs*/, MVT::i32, 1/*#Ops*/, 4, 
                    // Src: (anyext:i32 (srl:i16 GR16:i16:$src, 8:i8)<<P:Predicate_srl_su>>) - Complexity = 12
                    // Dst: (MOVZX32rr8:i32 (EXTRACT_SUBREG:i8 (COPY_TO_REGCLASS:i16 GR16:i16:$src, GR16_ABCD:i16), sub_8bit_hi:i32))
/*69009*/         /*Scope*/ 34, /*->69044*/
/*69010*/           OPC_CheckPatternPredicate, 4, // (Subtarget->is64Bit())
/*69012*/           OPC_EmitInteger, MVT::i32, X86::GR16_ABCDRegClassID,
/*69015*/           OPC_EmitNode, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        1/*#VTs*/, MVT::i16, 2/*#Ops*/, 0, 1,  // Results = #2 
/*69024*/           OPC_EmitInteger, MVT::i32, X86::sub_8bit_hi,
/*69027*/           OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        1/*#VTs*/, MVT::i8, 2/*#Ops*/, 2, 3,  // Results = #4 
/*69036*/           OPC_MorphNodeTo, TARGET_VAL(X86::MOVZX32_NOREXrr8), 0,
                        1/*#VTs*/, MVT::i32, 1/*#Ops*/, 4, 
                    // Src: (anyext:i32 (srl:i16 GR16:i16:$src, 8:i8)<<P:Predicate_srl_su>>) - Complexity = 12
                    // Dst: (MOVZX32_NOREXrr8:i32 (EXTRACT_SUBREG:i8 (COPY_TO_REGCLASS:i16 GR16:i16:$src, GR16_ABCD:i16), sub_8bit_hi:i32))
/*69044*/         0, /*End of Scope*/
                /*SwitchType*/ 48,  MVT::i64,// ->69095
/*69047*/         OPC_EmitInteger, MVT::i64, 0, 
/*69050*/         OPC_EmitInteger, MVT::i32, X86::GR16_ABCDRegClassID,
/*69053*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      1/*#VTs*/, MVT::i16, 2/*#Ops*/, 0, 2,  // Results = #3 
/*69062*/         OPC_EmitInteger, MVT::i32, X86::sub_8bit_hi,
/*69065*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      1/*#VTs*/, MVT::i8, 2/*#Ops*/, 3, 4,  // Results = #5 
/*69074*/         OPC_EmitNode, TARGET_VAL(X86::MOVZX32_NOREXrr8), 0,
                      1/*#VTs*/, MVT::i32, 1/*#Ops*/, 5,  // Results = #6 
/*69082*/         OPC_EmitInteger, MVT::i32, X86::sub_32bit,
/*69085*/         OPC_MorphNodeTo, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                      1/*#VTs*/, MVT::i64, 3/*#Ops*/, 1, 6, 7, 
                  // Src: (anyext:i64 (srl:i16 GR16:i16:$src, 8:i8)<<P:Predicate_srl_su>>) - Complexity = 12
                  // Dst: (SUBREG_TO_REG:i64 0:i64, (MOVZX32_NOREXrr8:i32 (EXTRACT_SUBREG:i8 (COPY_TO_REGCLASS:i16 GR16:i16:$src, GR16_ABCD:i16), sub_8bit_hi:i32)), sub_32bit:i32)
                0, // EndSwitchType
              /*SwitchOpcode*/ 68,  TARGET_VAL(X86ISD::SETCC_CARRY),// ->69167
/*69099*/       OPC_MoveChild, 0,
/*69101*/       OPC_CheckInteger, 2, 
/*69103*/       OPC_MoveParent,
/*69104*/       OPC_RecordChild1, // #0 = physreg input EFLAGS
/*69105*/       OPC_SwitchType /*2 cases */, 42,  MVT::i8,// ->69150
/*69108*/         OPC_MoveParent,
/*69109*/         OPC_SwitchType /*3 cases */, 11,  MVT::i16,// ->69123
/*69112*/           OPC_EmitCopyToReg, 0, X86::EFLAGS,
/*69115*/           OPC_MorphNodeTo, TARGET_VAL(X86::SETB_C16r), 0|OPFL_GlueInput,
                        2/*#VTs*/, MVT::i16, MVT::i32, 0/*#Ops*/, 
                    // Src: (anyext:i16 (X86setcc_c:i8 2:i8, EFLAGS:i32)) - Complexity = 11
                    // Dst: (SETB_C16r:i16:i32)
                  /*SwitchType*/ 11,  MVT::i32,// ->69136
/*69125*/           OPC_EmitCopyToReg, 0, X86::EFLAGS,
/*69128*/           OPC_MorphNodeTo, TARGET_VAL(X86::SETB_C32r), 0|OPFL_GlueInput,
                        2/*#VTs*/, MVT::i32, MVT::i32, 0/*#Ops*/, 
                    // Src: (anyext:i32 (X86setcc_c:i8 2:i8, EFLAGS:i32)) - Complexity = 11
                    // Dst: (SETB_C32r:i32:i32)
                  /*SwitchType*/ 11,  MVT::i64,// ->69149
/*69138*/           OPC_EmitCopyToReg, 0, X86::EFLAGS,
/*69141*/           OPC_MorphNodeTo, TARGET_VAL(X86::SETB_C64r), 0|OPFL_GlueInput,
                        2/*#VTs*/, MVT::i64, MVT::i32, 0/*#Ops*/, 
                    // Src: (anyext:i64 (X86setcc_c:i8 2:i8, EFLAGS:i32)) - Complexity = 11
                    // Dst: (SETB_C64r:i64:i32)
                  0, // EndSwitchType
                /*SwitchType*/ 14,  MVT::i16,// ->69166
/*69152*/         OPC_MoveParent,
/*69153*/         OPC_CheckType, MVT::i32,
/*69155*/         OPC_EmitCopyToReg, 0, X86::EFLAGS,
/*69158*/         OPC_MorphNodeTo, TARGET_VAL(X86::SETB_C32r), 0|OPFL_GlueInput,
                      2/*#VTs*/, MVT::i32, MVT::i32, 0/*#Ops*/, 
                  // Src: (anyext:i32 (X86setcc_c:i16 2:i8, EFLAGS:i32)) - Complexity = 11
                  // Dst: (SETB_C32r:i32:i32)
                0, // EndSwitchType
              0, // EndSwitchOpcode
/*69168*/   /*Scope*/ 108, /*->69277*/
/*69169*/     OPC_RecordChild0, // #0 = $src
/*69170*/     OPC_Scope, 20, /*->69192*/ // 3 children in Scope
/*69172*/       OPC_CheckChild0Type, MVT::i32,
/*69174*/       OPC_CheckType, MVT::i64,
/*69176*/       OPC_EmitInteger, MVT::i64, 0, 
/*69179*/       OPC_EmitInteger, MVT::i32, X86::sub_32bit,
/*69182*/       OPC_MorphNodeTo, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                    1/*#VTs*/, MVT::i64, 3/*#Ops*/, 1, 0, 2, 
                // Src: (anyext:i64 GR32:i32:$src) - Complexity = 3
                // Dst: (SUBREG_TO_REG:i64 0:i64, GR32:i32:$src, sub_32bit:i32)
/*69192*/     /*Scope*/ 46, /*->69239*/
/*69193*/       OPC_CheckChild0Type, MVT::i8,
/*69195*/       OPC_SwitchType /*3 cases */, 8,  MVT::i32,// ->69206
/*69198*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOVZX32rr8), 0,
                      1/*#VTs*/, MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (anyext:i32 GR8:i8:$src) - Complexity = 3
                  // Dst: (MOVZX32rr8:i32 GR8:i8:$src)
                /*SwitchType*/ 8,  MVT::i64,// ->69216
/*69208*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOVZX64rr8), 0,
                      1/*#VTs*/, MVT::i64, 1/*#Ops*/, 0, 
                  // Src: (anyext:i64 GR8:i8:$src) - Complexity = 3
                  // Dst: (MOVZX64rr8:i64 GR8:i8:$src)
                /*SwitchType*/ 20,  MVT::i16,// ->69238
/*69218*/         OPC_EmitNode, TARGET_VAL(X86::MOVZX32rr8), 0,
                      1/*#VTs*/, MVT::i32, 1/*#Ops*/, 0,  // Results = #1 
/*69226*/         OPC_EmitInteger, MVT::i32, X86::sub_16bit,
/*69229*/         OPC_MorphNodeTo, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      1/*#VTs*/, MVT::i16, 2/*#Ops*/, 1, 2, 
                  // Src: (anyext:i16 GR8:i8:$src) - Complexity = 3
                  // Dst: (EXTRACT_SUBREG:i16 (MOVZX32rr8:i32 GR8:i8:$src), sub_16bit:i32)
                0, // EndSwitchType
/*69239*/     /*Scope*/ 36, /*->69276*/
/*69240*/       OPC_CheckChild0Type, MVT::i16,
/*69242*/       OPC_SwitchType /*2 cases */, 8,  MVT::i64,// ->69253
/*69245*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOVZX64rr16), 0,
                      1/*#VTs*/, MVT::i64, 1/*#Ops*/, 0, 
                  // Src: (anyext:i64 GR16:i16:$src) - Complexity = 3
                  // Dst: (MOVZX64rr16:i64 GR16:i16:$src)
                /*SwitchType*/ 20,  MVT::i32,// ->69275
/*69255*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      1/*#VTs*/, MVT::i32, 0/*#Ops*/,  // Results = #1 
/*69262*/         OPC_EmitInteger, MVT::i32, X86::sub_16bit,
/*69265*/         OPC_MorphNodeTo, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      1/*#VTs*/, MVT::i32, 3/*#Ops*/, 1, 0, 2, 
                  // Src: (anyext:i32 GR16:i16:$src) - Complexity = 3
                  // Dst: (INSERT_SUBREG:i32 (IMPLICIT_DEF:i32), GR16:i16:$src, sub_16bit:i32)
                0, // EndSwitchType
/*69276*/     0, /*End of Scope*/
/*69277*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 120|128,6/*888*/,  TARGET_VAL(ISD::BITCAST),// ->70170
/*69282*/   OPC_Scope, 28, /*->69312*/ // 6 children in Scope
/*69284*/     OPC_MoveChild, 0,
/*69286*/     OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*69289*/     OPC_RecordChild0, // #0 = $src
/*69290*/     OPC_CheckChild0Type, MVT::v2i64,
/*69292*/     OPC_MoveChild, 1,
/*69294*/     OPC_CheckInteger, 0, 
/*69296*/     OPC_MoveParent,
/*69297*/     OPC_CheckType, MVT::i64,
/*69299*/     OPC_MoveParent,
/*69300*/     OPC_CheckType, MVT::x86mmx,
/*69302*/     OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*69304*/     OPC_MorphNodeTo, TARGET_VAL(X86::MMX_MOVDQ2Qrr), 0,
                  1/*#VTs*/, MVT::x86mmx, 1/*#Ops*/, 0, 
              // Src: (bitconvert:x86mmx (vector_extract:i64 VR128:v2i64:$src, 0:iPTR)) - Complexity = 11
              // Dst: (MMX_MOVDQ2Qrr:x86mmx VR128:v2i64:$src)
/*69312*/   /*Scope*/ 127, /*->69440*/
/*69313*/     OPC_RecordChild0, // #0 = $src
/*69314*/     OPC_Scope, 40, /*->69356*/ // 4 children in Scope
/*69316*/       OPC_CheckChild0Type, MVT::f64,
/*69318*/       OPC_SwitchType /*2 cases */, 24,  MVT::i64,// ->69345
/*69321*/         OPC_Scope, 10, /*->69333*/ // 2 children in Scope
/*69323*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*69325*/           OPC_MorphNodeTo, TARGET_VAL(X86::VMOVSDto64rr), 0,
                        1/*#VTs*/, MVT::i64, 1/*#Ops*/, 0, 
                    // Src: (bitconvert:i64 FR64:f64:$src) - Complexity = 3
                    // Dst: (VMOVSDto64rr:i64 FR64:f64:$src)
/*69333*/         /*Scope*/ 10, /*->69344*/
/*69334*/           OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*69336*/           OPC_MorphNodeTo, TARGET_VAL(X86::MOVSDto64rr), 0,
                        1/*#VTs*/, MVT::i64, 1/*#Ops*/, 0, 
                    // Src: (bitconvert:i64 FR64:f64:$src) - Complexity = 3
                    // Dst: (MOVSDto64rr:i64 FR64:f64:$src)
/*69344*/         0, /*End of Scope*/
                /*SwitchType*/ 8,  MVT::x86mmx,// ->69355
/*69347*/         OPC_MorphNodeTo, TARGET_VAL(X86::MMX_MOVFR642Qrr), 0,
                      1/*#VTs*/, MVT::x86mmx, 1/*#Ops*/, 0, 
                  // Src: (bitconvert:x86mmx FR64:f64:$src) - Complexity = 3
                  // Dst: (MMX_MOVFR642Qrr:x86mmx FR64:f64:$src)
                0, // EndSwitchType
/*69356*/     /*Scope*/ 28, /*->69385*/
/*69357*/       OPC_CheckChild0Type, MVT::f32,
/*69359*/       OPC_CheckType, MVT::i32,
/*69361*/       OPC_Scope, 10, /*->69373*/ // 2 children in Scope
/*69363*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*69365*/         OPC_MorphNodeTo, TARGET_VAL(X86::VMOVSS2DIrr), 0,
                      1/*#VTs*/, MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (bitconvert:i32 FR32:f32:$src) - Complexity = 3
                  // Dst: (VMOVSS2DIrr:i32 FR32:f32:$src)
/*69373*/       /*Scope*/ 10, /*->69384*/
/*69374*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*69376*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOVSS2DIrr), 0,
                      1/*#VTs*/, MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (bitconvert:i32 FR32:f32:$src) - Complexity = 3
                  // Dst: (MOVSS2DIrr:i32 FR32:f32:$src)
/*69384*/       0, /*End of Scope*/
/*69385*/     /*Scope*/ 26, /*->69412*/
/*69386*/       OPC_CheckChild0Type, MVT::x86mmx,
/*69388*/       OPC_CheckType, MVT::i64,
/*69390*/       OPC_Scope, 10, /*->69402*/ // 2 children in Scope
/*69392*/         OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*69394*/         OPC_MorphNodeTo, TARGET_VAL(X86::MMX_MOVD64from64rr), 0,
                      1/*#VTs*/, MVT::i64, 1/*#Ops*/, 0, 
                  // Src: (bitconvert:i64 VR64:x86mmx:$src) - Complexity = 3
                  // Dst: (MMX_MOVD64from64rr:i64 VR64:x86mmx:$src)
/*69402*/       /*Scope*/ 8, /*->69411*/
/*69403*/         OPC_MorphNodeTo, TARGET_VAL(X86::MMX_MOVD64from64rr), 0,
                      1/*#VTs*/, MVT::i64, 1/*#Ops*/, 0, 
                  // Src: (bitconvert:i64 VR64:x86mmx:$src) - Complexity = 3
                  // Dst: (MMX_MOVD64from64rr:i64 VR64:x86mmx:$src)
/*69411*/       0, /*End of Scope*/
/*69412*/     /*Scope*/ 26, /*->69439*/
/*69413*/       OPC_CheckChild0Type, MVT::i64,
/*69415*/       OPC_CheckType, MVT::x86mmx,
/*69417*/       OPC_Scope, 10, /*->69429*/ // 2 children in Scope
/*69419*/         OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*69421*/         OPC_MorphNodeTo, TARGET_VAL(X86::MMX_MOVD64rrv164), 0,
                      1/*#VTs*/, MVT::x86mmx, 1/*#Ops*/, 0, 
                  // Src: (bitconvert:x86mmx GR64:i64:$src) - Complexity = 3
                  // Dst: (MMX_MOVD64rrv164:x86mmx GR64:i64:$src)
/*69429*/       /*Scope*/ 8, /*->69438*/
/*69430*/         OPC_MorphNodeTo, TARGET_VAL(X86::MMX_MOVD64to64rr), 0,
                      1/*#VTs*/, MVT::x86mmx, 1/*#Ops*/, 0, 
                  // Src: (bitconvert:x86mmx GR64:i64:$src) - Complexity = 3
                  // Dst: (MMX_MOVD64to64rr:x86mmx GR64:i64:$src)
/*69438*/       0, /*End of Scope*/
/*69439*/     0, /*End of Scope*/
/*69440*/   /*Scope*/ 106, /*->69547*/
/*69441*/     OPC_MoveChild, 0,
/*69443*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*69446*/     OPC_RecordMemRef,
/*69447*/     OPC_RecordNode, // #0 = 'ld' chained node
/*69448*/     OPC_RecordChild1, // #1 = $src
/*69449*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*69451*/     OPC_SwitchType /*2 cases */, 45,  MVT::i32,// ->69499
/*69454*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*69456*/       OPC_MoveParent,
/*69457*/       OPC_CheckType, MVT::f32,
/*69459*/       OPC_Scope, 18, /*->69479*/ // 2 children in Scope
/*69461*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*69463*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*69466*/         OPC_EmitMergeInputChains1_0,
/*69467*/         OPC_MorphNodeTo, TARGET_VAL(X86::VMOVDI2SSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (bitconvert:f32 (ld:i32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>) - Complexity = 25
                  // Dst: (VMOVDI2SSrm:f32 addr:iPTR:$src)
/*69479*/       /*Scope*/ 18, /*->69498*/
/*69480*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*69482*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*69485*/         OPC_EmitMergeInputChains1_0,
/*69486*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOVDI2SSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (bitconvert:f32 (ld:i32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>) - Complexity = 25
                  // Dst: (MOVDI2SSrm:f32 addr:iPTR:$src)
/*69498*/       0, /*End of Scope*/
              /*SwitchType*/ 45,  MVT::i64,// ->69546
/*69501*/       OPC_CheckPredicate, 3, // Predicate_load
/*69503*/       OPC_MoveParent,
/*69504*/       OPC_CheckType, MVT::f64,
/*69506*/       OPC_Scope, 18, /*->69526*/ // 2 children in Scope
/*69508*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*69510*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*69513*/         OPC_EmitMergeInputChains1_0,
/*69514*/         OPC_MorphNodeTo, TARGET_VAL(X86::VMOV64toSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (bitconvert:f64 (ld:i64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (VMOV64toSDrm:f64 addr:iPTR:$src)
/*69526*/       /*Scope*/ 18, /*->69545*/
/*69527*/         OPC_CheckPatternPredicate, 16, // (Subtarget->hasSSE3())
/*69529*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*69532*/         OPC_EmitMergeInputChains1_0,
/*69533*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOV64toSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (bitconvert:f64 (ld:i64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (MOV64toSDrm:f64 addr:iPTR:$src)
/*69545*/       0, /*End of Scope*/
              0, // EndSwitchType
/*69547*/   /*Scope*/ 73, /*->69621*/
/*69548*/     OPC_RecordChild0, // #0 = $src
/*69549*/     OPC_SwitchType /*2 cases */, 40,  MVT::f64,// ->69592
/*69552*/       OPC_Scope, 26, /*->69580*/ // 2 children in Scope
/*69554*/         OPC_CheckChild0Type, MVT::i64,
/*69556*/         OPC_Scope, 10, /*->69568*/ // 2 children in Scope
/*69558*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*69560*/           OPC_MorphNodeTo, TARGET_VAL(X86::VMOV64toSDrr), 0,
                        1/*#VTs*/, MVT::f64, 1/*#Ops*/, 0, 
                    // Src: (bitconvert:f64 GR64:i64:$src) - Complexity = 3
                    // Dst: (VMOV64toSDrr:f64 GR64:i64:$src)
/*69568*/         /*Scope*/ 10, /*->69579*/
/*69569*/           OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*69571*/           OPC_MorphNodeTo, TARGET_VAL(X86::MOV64toSDrr), 0,
                        1/*#VTs*/, MVT::f64, 1/*#Ops*/, 0, 
                    // Src: (bitconvert:f64 GR64:i64:$src) - Complexity = 3
                    // Dst: (MOV64toSDrr:f64 GR64:i64:$src)
/*69579*/         0, /*End of Scope*/
/*69580*/       /*Scope*/ 10, /*->69591*/
/*69581*/         OPC_CheckChild0Type, MVT::x86mmx,
/*69583*/         OPC_MorphNodeTo, TARGET_VAL(X86::MMX_MOVQ2FR64rr), 0,
                      1/*#VTs*/, MVT::f64, 1/*#Ops*/, 0, 
                  // Src: (bitconvert:f64 VR64:x86mmx:$src) - Complexity = 3
                  // Dst: (MMX_MOVQ2FR64rr:f64 VR64:x86mmx:$src)
/*69591*/       0, /*End of Scope*/
              /*SwitchType*/ 26,  MVT::f32,// ->69620
/*69594*/       OPC_CheckChild0Type, MVT::i32,
/*69596*/       OPC_Scope, 10, /*->69608*/ // 2 children in Scope
/*69598*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*69600*/         OPC_MorphNodeTo, TARGET_VAL(X86::VMOVDI2SSrr), 0,
                      1/*#VTs*/, MVT::f32, 1/*#Ops*/, 0, 
                  // Src: (bitconvert:f32 GR32:i32:$src) - Complexity = 3
                  // Dst: (VMOVDI2SSrr:f32 GR32:i32:$src)
/*69608*/       /*Scope*/ 10, /*->69619*/
/*69609*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*69611*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOVDI2SSrr), 0,
                      1/*#VTs*/, MVT::f32, 1/*#Ops*/, 0, 
                  // Src: (bitconvert:f32 GR32:i32:$src) - Complexity = 3
                  // Dst: (MOVDI2SSrr:f32 GR32:i32:$src)
/*69619*/       0, /*End of Scope*/
              0, // EndSwitchType
/*69621*/   /*Scope*/ 62, /*->69684*/
/*69622*/     OPC_MoveChild, 0,
/*69624*/     OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*69627*/     OPC_CheckPredicate, 87, // Predicate_immAllZerosV
/*69629*/     OPC_CheckType, MVT::v8f32,
/*69631*/     OPC_MoveParent,
/*69632*/     OPC_SwitchType /*2 cases */, 23,  MVT::v8i32,// ->69658
/*69635*/       OPC_EmitInteger, MVT::i32, 0, 
/*69638*/       OPC_EmitNode, TARGET_VAL(X86::V_SET0), 0,
                    1/*#VTs*/, MVT::v16i8, 0/*#Ops*/,  // Results = #1 
/*69645*/       OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*69648*/       OPC_MorphNodeTo, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                    1/*#VTs*/, MVT::v8i32, 3/*#Ops*/, 0, 1, 2, 
                // Src: (bitconvert:v8i32 (build_vector:v8f32)<<P:Predicate_immAllZerosV>>) - Complexity = 7
                // Dst: (SUBREG_TO_REG:v8i32 0:i32, (V_SET0:v16i8), sub_xmm:i32)
              /*SwitchType*/ 23,  MVT::v4i64,// ->69683
/*69660*/       OPC_EmitInteger, MVT::i64, 0, 
/*69663*/       OPC_EmitNode, TARGET_VAL(X86::V_SET0), 0,
                    1/*#VTs*/, MVT::v16i8, 0/*#Ops*/,  // Results = #1 
/*69670*/       OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*69673*/       OPC_MorphNodeTo, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                    1/*#VTs*/, MVT::v4i64, 3/*#Ops*/, 0, 1, 2, 
                // Src: (bitconvert:v4i64 (build_vector:v8f32)<<P:Predicate_immAllZerosV>>) - Complexity = 7
                // Dst: (SUBREG_TO_REG:v4i64 0:i64, (V_SET0:v16i8), sub_xmm:i32)
              0, // EndSwitchType
/*69684*/   /*Scope*/ 99|128,3/*483*/, /*->70169*/
/*69686*/     OPC_RecordChild0, // #0 = $src
/*69687*/     OPC_Scope, 39, /*->69728*/ // 12 children in Scope
/*69689*/       OPC_CheckChild0Type, MVT::v4i32,
/*69691*/       OPC_SwitchType /*5 cases */, 5,  MVT::v2i64,// ->69699
/*69694*/         OPC_CheckPatternPredicate, 27, // (Subtarget->hasXMMInt())
/*69696*/         OPC_CompleteMatch, 1, 0, 
                  // Src: (bitconvert:v2i64 VR128:v4i32:$src) - Complexity = 3
                  // Dst: VR128:v2i64:$src
                /*SwitchType*/ 5,  MVT::v8i16,// ->69706
/*69701*/         OPC_CheckPatternPredicate, 27, // (Subtarget->hasXMMInt())
/*69703*/         OPC_CompleteMatch, 1, 0, 
                  // Src: (bitconvert:v8i16 VR128:v4i32:$src) - Complexity = 3
                  // Dst: VR128:v8i16:$src
                /*SwitchType*/ 5,  MVT::v16i8,// ->69713
/*69708*/         OPC_CheckPatternPredicate, 27, // (Subtarget->hasXMMInt())
/*69710*/         OPC_CompleteMatch, 1, 0, 
                  // Src: (bitconvert:v16i8 VR128:v4i32:$src) - Complexity = 3
                  // Dst: VR128:v16i8:$src
                /*SwitchType*/ 5,  MVT::v4f32,// ->69720
/*69715*/         OPC_CheckPatternPredicate, 27, // (Subtarget->hasXMMInt())
/*69717*/         OPC_CompleteMatch, 1, 0, 
                  // Src: (bitconvert:v4f32 VR128:v4i32:$src) - Complexity = 3
                  // Dst: VR128:v4f32:$src
                /*SwitchType*/ 5,  MVT::v2f64,// ->69727
/*69722*/         OPC_CheckPatternPredicate, 27, // (Subtarget->hasXMMInt())
/*69724*/         OPC_CompleteMatch, 1, 0, 
                  // Src: (bitconvert:v2f64 VR128:v4i32:$src) - Complexity = 3
                  // Dst: VR128:v2f64:$src
                0, // EndSwitchType
/*69728*/     /*Scope*/ 39, /*->69768*/
/*69729*/       OPC_CheckChild0Type, MVT::v8i16,
/*69731*/       OPC_SwitchType /*5 cases */, 5,  MVT::v2i64,// ->69739
/*69734*/         OPC_CheckPatternPredicate, 27, // (Subtarget->hasXMMInt())
/*69736*/         OPC_CompleteMatch, 1, 0, 
                  // Src: (bitconvert:v2i64 VR128:v8i16:$src) - Complexity = 3
                  // Dst: VR128:v2i64:$src
                /*SwitchType*/ 5,  MVT::v4i32,// ->69746
/*69741*/         OPC_CheckPatternPredicate, 27, // (Subtarget->hasXMMInt())
/*69743*/         OPC_CompleteMatch, 1, 0, 
                  // Src: (bitconvert:v4i32 VR128:v8i16:$src) - Complexity = 3
                  // Dst: VR128:v4i32:$src
                /*SwitchType*/ 5,  MVT::v16i8,// ->69753
/*69748*/         OPC_CheckPatternPredicate, 27, // (Subtarget->hasXMMInt())
/*69750*/         OPC_CompleteMatch, 1, 0, 
                  // Src: (bitconvert:v16i8 VR128:v8i16:$src) - Complexity = 3
                  // Dst: VR128:v16i8:$src
                /*SwitchType*/ 5,  MVT::v4f32,// ->69760
/*69755*/         OPC_CheckPatternPredicate, 27, // (Subtarget->hasXMMInt())
/*69757*/         OPC_CompleteMatch, 1, 0, 
                  // Src: (bitconvert:v4f32 VR128:v8i16:$src) - Complexity = 3
                  // Dst: VR128:v4f32:$src
                /*SwitchType*/ 5,  MVT::v2f64,// ->69767
/*69762*/         OPC_CheckPatternPredicate, 27, // (Subtarget->hasXMMInt())
/*69764*/         OPC_CompleteMatch, 1, 0, 
                  // Src: (bitconvert:v2f64 VR128:v8i16:$src) - Complexity = 3
                  // Dst: VR128:v2f64:$src
                0, // EndSwitchType
/*69768*/     /*Scope*/ 39, /*->69808*/
/*69769*/       OPC_CheckChild0Type, MVT::v16i8,
/*69771*/       OPC_SwitchType /*5 cases */, 5,  MVT::v2i64,// ->69779
/*69774*/         OPC_CheckPatternPredicate, 27, // (Subtarget->hasXMMInt())
/*69776*/         OPC_CompleteMatch, 1, 0, 
                  // Src: (bitconvert:v2i64 VR128:v16i8:$src) - Complexity = 3
                  // Dst: VR128:v2i64:$src
                /*SwitchType*/ 5,  MVT::v4i32,// ->69786
/*69781*/         OPC_CheckPatternPredicate, 27, // (Subtarget->hasXMMInt())
/*69783*/         OPC_CompleteMatch, 1, 0, 
                  // Src: (bitconvert:v4i32 VR128:v16i8:$src) - Complexity = 3
                  // Dst: VR128:v4i32:$src
                /*SwitchType*/ 5,  MVT::v8i16,// ->69793
/*69788*/         OPC_CheckPatternPredicate, 27, // (Subtarget->hasXMMInt())
/*69790*/         OPC_CompleteMatch, 1, 0, 
                  // Src: (bitconvert:v8i16 VR128:v16i8:$src) - Complexity = 3
                  // Dst: VR128:v8i16:$src
                /*SwitchType*/ 5,  MVT::v4f32,// ->69800
/*69795*/         OPC_CheckPatternPredicate, 27, // (Subtarget->hasXMMInt())
/*69797*/         OPC_CompleteMatch, 1, 0, 
                  // Src: (bitconvert:v4f32 VR128:v16i8:$src) - Complexity = 3
                  // Dst: VR128:v4f32:$src
                /*SwitchType*/ 5,  MVT::v2f64,// ->69807
/*69802*/         OPC_CheckPatternPredicate, 27, // (Subtarget->hasXMMInt())
/*69804*/         OPC_CompleteMatch, 1, 0, 
                  // Src: (bitconvert:v2f64 VR128:v16i8:$src) - Complexity = 3
                  // Dst: VR128:v2f64:$src
                0, // EndSwitchType
/*69808*/     /*Scope*/ 39, /*->69848*/
/*69809*/       OPC_CheckChild0Type, MVT::v2f64,
/*69811*/       OPC_SwitchType /*5 cases */, 5,  MVT::v2i64,// ->69819
/*69814*/         OPC_CheckPatternPredicate, 27, // (Subtarget->hasXMMInt())
/*69816*/         OPC_CompleteMatch, 1, 0, 
                  // Src: (bitconvert:v2i64 VR128:v2f64:$src) - Complexity = 3
                  // Dst: VR128:v2i64:$src
                /*SwitchType*/ 5,  MVT::v4i32,// ->69826
/*69821*/         OPC_CheckPatternPredicate, 27, // (Subtarget->hasXMMInt())
/*69823*/         OPC_CompleteMatch, 1, 0, 
                  // Src: (bitconvert:v4i32 VR128:v2f64:$src) - Complexity = 3
                  // Dst: VR128:v4i32:$src
                /*SwitchType*/ 5,  MVT::v8i16,// ->69833
/*69828*/         OPC_CheckPatternPredicate, 27, // (Subtarget->hasXMMInt())
/*69830*/         OPC_CompleteMatch, 1, 0, 
                  // Src: (bitconvert:v8i16 VR128:v2f64:$src) - Complexity = 3
                  // Dst: VR128:v8i16:$src
                /*SwitchType*/ 5,  MVT::v16i8,// ->69840
/*69835*/         OPC_CheckPatternPredicate, 27, // (Subtarget->hasXMMInt())
/*69837*/         OPC_CompleteMatch, 1, 0, 
                  // Src: (bitconvert:v16i8 VR128:v2f64:$src) - Complexity = 3
                  // Dst: VR128:v16i8:$src
                /*SwitchType*/ 5,  MVT::v4f32,// ->69847
/*69842*/         OPC_CheckPatternPredicate, 27, // (Subtarget->hasXMMInt())
/*69844*/         OPC_CompleteMatch, 1, 0, 
                  // Src: (bitconvert:v4f32 VR128:v2f64:$src) - Complexity = 3
                  // Dst: VR128:v4f32:$src
                0, // EndSwitchType
/*69848*/     /*Scope*/ 39, /*->69888*/
/*69849*/       OPC_CheckChild0Type, MVT::v4f32,
/*69851*/       OPC_SwitchType /*5 cases */, 5,  MVT::v2i64,// ->69859
/*69854*/         OPC_CheckPatternPredicate, 27, // (Subtarget->hasXMMInt())
/*69856*/         OPC_CompleteMatch, 1, 0, 
                  // Src: (bitconvert:v2i64 VR128:v4f32:$src) - Complexity = 3
                  // Dst: VR128:v2i64:$src
                /*SwitchType*/ 5,  MVT::v4i32,// ->69866
/*69861*/         OPC_CheckPatternPredicate, 27, // (Subtarget->hasXMMInt())
/*69863*/         OPC_CompleteMatch, 1, 0, 
                  // Src: (bitconvert:v4i32 VR128:v4f32:$src) - Complexity = 3
                  // Dst: VR128:v4i32:$src
                /*SwitchType*/ 5,  MVT::v8i16,// ->69873
/*69868*/         OPC_CheckPatternPredicate, 27, // (Subtarget->hasXMMInt())
/*69870*/         OPC_CompleteMatch, 1, 0, 
                  // Src: (bitconvert:v8i16 VR128:v4f32:$src) - Complexity = 3
                  // Dst: VR128:v8i16:$src
                /*SwitchType*/ 5,  MVT::v16i8,// ->69880
/*69875*/         OPC_CheckPatternPredicate, 27, // (Subtarget->hasXMMInt())
/*69877*/         OPC_CompleteMatch, 1, 0, 
                  // Src: (bitconvert:v16i8 VR128:v4f32:$src) - Complexity = 3
                  // Dst: VR128:v16i8:$src
                /*SwitchType*/ 5,  MVT::v2f64,// ->69887
/*69882*/         OPC_CheckPatternPredicate, 27, // (Subtarget->hasXMMInt())
/*69884*/         OPC_CompleteMatch, 1, 0, 
                  // Src: (bitconvert:v2f64 VR128:v4f32:$src) - Complexity = 3
                  // Dst: VR128:v2f64:$src
                0, // EndSwitchType
/*69888*/     /*Scope*/ 39, /*->69928*/
/*69889*/       OPC_CheckChild0Type, MVT::v2i64,
/*69891*/       OPC_SwitchType /*5 cases */, 5,  MVT::v4i32,// ->69899
/*69894*/         OPC_CheckPatternPredicate, 27, // (Subtarget->hasXMMInt())
/*69896*/         OPC_CompleteMatch, 1, 0, 
                  // Src: (bitconvert:v4i32 VR128:v2i64:$src) - Complexity = 3
                  // Dst: VR128:v4i32:$src
                /*SwitchType*/ 5,  MVT::v8i16,// ->69906
/*69901*/         OPC_CheckPatternPredicate, 27, // (Subtarget->hasXMMInt())
/*69903*/         OPC_CompleteMatch, 1, 0, 
                  // Src: (bitconvert:v8i16 VR128:v2i64:$src) - Complexity = 3
                  // Dst: VR128:v8i16:$src
                /*SwitchType*/ 5,  MVT::v16i8,// ->69913
/*69908*/         OPC_CheckPatternPredicate, 27, // (Subtarget->hasXMMInt())
/*69910*/         OPC_CompleteMatch, 1, 0, 
                  // Src: (bitconvert:v16i8 VR128:v2i64:$src) - Complexity = 3
                  // Dst: VR128:v16i8:$src
                /*SwitchType*/ 5,  MVT::v4f32,// ->69920
/*69915*/         OPC_CheckPatternPredicate, 27, // (Subtarget->hasXMMInt())
/*69917*/         OPC_CompleteMatch, 1, 0, 
                  // Src: (bitconvert:v4f32 VR128:v2i64:$src) - Complexity = 3
                  // Dst: VR128:v4f32:$src
                /*SwitchType*/ 5,  MVT::v2f64,// ->69927
/*69922*/         OPC_CheckPatternPredicate, 27, // (Subtarget->hasXMMInt())
/*69924*/         OPC_CompleteMatch, 1, 0, 
                  // Src: (bitconvert:v2f64 VR128:v2i64:$src) - Complexity = 3
                  // Dst: VR128:v2f64:$src
                0, // EndSwitchType
/*69928*/     /*Scope*/ 39, /*->69968*/
/*69929*/       OPC_CheckChild0Type, MVT::v8f32,
/*69931*/       OPC_SwitchType /*5 cases */, 5,  MVT::v4i64,// ->69939
/*69934*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*69936*/         OPC_CompleteMatch, 1, 0, 
                  // Src: (bitconvert:v4i64 VR256:v8f32:$src) - Complexity = 3
                  // Dst: VR256:v4i64:$src
                /*SwitchType*/ 5,  MVT::v32i8,// ->69946
/*69941*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*69943*/         OPC_CompleteMatch, 1, 0, 
                  // Src: (bitconvert:v32i8 VR256:v8f32:$src) - Complexity = 3
                  // Dst: VR256:v32i8:$src
                /*SwitchType*/ 5,  MVT::v8i32,// ->69953
/*69948*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*69950*/         OPC_CompleteMatch, 1, 0, 
                  // Src: (bitconvert:v8i32 VR256:v8f32:$src) - Complexity = 3
                  // Dst: VR256:v8i32:$src
                /*SwitchType*/ 5,  MVT::v16i16,// ->69960
/*69955*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*69957*/         OPC_CompleteMatch, 1, 0, 
                  // Src: (bitconvert:v16i16 VR256:v8f32:$src) - Complexity = 3
                  // Dst: VR256:v16i16:$src
                /*SwitchType*/ 5,  MVT::v4f64,// ->69967
/*69962*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*69964*/         OPC_CompleteMatch, 1, 0, 
                  // Src: (bitconvert:v4f64 VR256:v8f32:$src) - Complexity = 3
                  // Dst: VR256:v4f64:$src
                0, // EndSwitchType
/*69968*/     /*Scope*/ 39, /*->70008*/
/*69969*/       OPC_CheckChild0Type, MVT::v8i32,
/*69971*/       OPC_SwitchType /*5 cases */, 5,  MVT::v4i64,// ->69979
/*69974*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*69976*/         OPC_CompleteMatch, 1, 0, 
                  // Src: (bitconvert:v4i64 VR256:v8i32:$src) - Complexity = 3
                  // Dst: VR256:v4i64:$src
                /*SwitchType*/ 5,  MVT::v32i8,// ->69986
/*69981*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*69983*/         OPC_CompleteMatch, 1, 0, 
                  // Src: (bitconvert:v32i8 VR256:v8i32:$src) - Complexity = 3
                  // Dst: VR256:v32i8:$src
                /*SwitchType*/ 5,  MVT::v16i16,// ->69993
/*69988*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*69990*/         OPC_CompleteMatch, 1, 0, 
                  // Src: (bitconvert:v16i16 VR256:v8i32:$src) - Complexity = 3
                  // Dst: VR256:v16i16:$src
                /*SwitchType*/ 5,  MVT::v4f64,// ->70000
/*69995*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*69997*/         OPC_CompleteMatch, 1, 0, 
                  // Src: (bitconvert:v4f64 VR256:v8i32:$src) - Complexity = 3
                  // Dst: VR256:v4f64:$src
                /*SwitchType*/ 5,  MVT::v8f32,// ->70007
/*70002*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*70004*/         OPC_CompleteMatch, 1, 0, 
                  // Src: (bitconvert:v8f32 VR256:v8i32:$src) - Complexity = 3
                  // Dst: VR256:v8f32:$src
                0, // EndSwitchType
/*70008*/     /*Scope*/ 39, /*->70048*/
/*70009*/       OPC_CheckChild0Type, MVT::v4f64,
/*70011*/       OPC_SwitchType /*5 cases */, 5,  MVT::v4i64,// ->70019
/*70014*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*70016*/         OPC_CompleteMatch, 1, 0, 
                  // Src: (bitconvert:v4i64 VR256:v4f64:$src) - Complexity = 3
                  // Dst: VR256:v4i64:$src
                /*SwitchType*/ 5,  MVT::v32i8,// ->70026
/*70021*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*70023*/         OPC_CompleteMatch, 1, 0, 
                  // Src: (bitconvert:v32i8 VR256:v4f64:$src) - Complexity = 3
                  // Dst: VR256:v32i8:$src
                /*SwitchType*/ 5,  MVT::v8i32,// ->70033
/*70028*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*70030*/         OPC_CompleteMatch, 1, 0, 
                  // Src: (bitconvert:v8i32 VR256:v4f64:$src) - Complexity = 3
                  // Dst: VR256:v8i32:$src
                /*SwitchType*/ 5,  MVT::v16i16,// ->70040
/*70035*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*70037*/         OPC_CompleteMatch, 1, 0, 
                  // Src: (bitconvert:v16i16 VR256:v4f64:$src) - Complexity = 3
                  // Dst: VR256:v16i16:$src
                /*SwitchType*/ 5,  MVT::v8f32,// ->70047
/*70042*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*70044*/         OPC_CompleteMatch, 1, 0, 
                  // Src: (bitconvert:v8f32 VR256:v4f64:$src) - Complexity = 3
                  // Dst: VR256:v8f32:$src
                0, // EndSwitchType
/*70048*/     /*Scope*/ 39, /*->70088*/
/*70049*/       OPC_CheckChild0Type, MVT::v32i8,
/*70051*/       OPC_SwitchType /*5 cases */, 5,  MVT::v4i64,// ->70059
/*70054*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*70056*/         OPC_CompleteMatch, 1, 0, 
                  // Src: (bitconvert:v4i64 VR256:v32i8:$src) - Complexity = 3
                  // Dst: VR256:v4i64:$src
                /*SwitchType*/ 5,  MVT::v8i32,// ->70066
/*70061*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*70063*/         OPC_CompleteMatch, 1, 0, 
                  // Src: (bitconvert:v8i32 VR256:v32i8:$src) - Complexity = 3
                  // Dst: VR256:v8i32:$src
                /*SwitchType*/ 5,  MVT::v16i16,// ->70073
/*70068*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*70070*/         OPC_CompleteMatch, 1, 0, 
                  // Src: (bitconvert:v16i16 VR256:v32i8:$src) - Complexity = 3
                  // Dst: VR256:v16i16:$src
                /*SwitchType*/ 5,  MVT::v4f64,// ->70080
/*70075*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*70077*/         OPC_CompleteMatch, 1, 0, 
                  // Src: (bitconvert:v4f64 VR256:v32i8:$src) - Complexity = 3
                  // Dst: VR256:v4f64:$src
                /*SwitchType*/ 5,  MVT::v8f32,// ->70087
/*70082*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*70084*/         OPC_CompleteMatch, 1, 0, 
                  // Src: (bitconvert:v8f32 VR256:v32i8:$src) - Complexity = 3
                  // Dst: VR256:v8f32:$src
                0, // EndSwitchType
/*70088*/     /*Scope*/ 39, /*->70128*/
/*70089*/       OPC_CheckChild0Type, MVT::v16i16,
/*70091*/       OPC_SwitchType /*5 cases */, 5,  MVT::v4i64,// ->70099
/*70094*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*70096*/         OPC_CompleteMatch, 1, 0, 
                  // Src: (bitconvert:v4i64 VR256:v16i16:$src) - Complexity = 3
                  // Dst: VR256:v4i64:$src
                /*SwitchType*/ 5,  MVT::v32i8,// ->70106
/*70101*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*70103*/         OPC_CompleteMatch, 1, 0, 
                  // Src: (bitconvert:v32i8 VR256:v16i16:$src) - Complexity = 3
                  // Dst: VR256:v32i8:$src
                /*SwitchType*/ 5,  MVT::v8i32,// ->70113
/*70108*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*70110*/         OPC_CompleteMatch, 1, 0, 
                  // Src: (bitconvert:v8i32 VR256:v16i16:$src) - Complexity = 3
                  // Dst: VR256:v8i32:$src
                /*SwitchType*/ 5,  MVT::v4f64,// ->70120
/*70115*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*70117*/         OPC_CompleteMatch, 1, 0, 
                  // Src: (bitconvert:v4f64 VR256:v16i16:$src) - Complexity = 3
                  // Dst: VR256:v4f64:$src
                /*SwitchType*/ 5,  MVT::v8f32,// ->70127
/*70122*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*70124*/         OPC_CompleteMatch, 1, 0, 
                  // Src: (bitconvert:v8f32 VR256:v16i16:$src) - Complexity = 3
                  // Dst: VR256:v8f32:$src
                0, // EndSwitchType
/*70128*/     /*Scope*/ 39, /*->70168*/
/*70129*/       OPC_CheckChild0Type, MVT::v4i64,
/*70131*/       OPC_SwitchType /*5 cases */, 5,  MVT::v32i8,// ->70139
/*70134*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*70136*/         OPC_CompleteMatch, 1, 0, 
                  // Src: (bitconvert:v32i8 VR256:v4i64:$src) - Complexity = 3
                  // Dst: VR256:v32i8:$src
                /*SwitchType*/ 5,  MVT::v8i32,// ->70146
/*70141*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*70143*/         OPC_CompleteMatch, 1, 0, 
                  // Src: (bitconvert:v8i32 VR256:v4i64:$src) - Complexity = 3
                  // Dst: VR256:v8i32:$src
                /*SwitchType*/ 5,  MVT::v16i16,// ->70153
/*70148*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*70150*/         OPC_CompleteMatch, 1, 0, 
                  // Src: (bitconvert:v16i16 VR256:v4i64:$src) - Complexity = 3
                  // Dst: VR256:v16i16:$src
                /*SwitchType*/ 5,  MVT::v4f64,// ->70160
/*70155*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*70157*/         OPC_CompleteMatch, 1, 0, 
                  // Src: (bitconvert:v4f64 VR256:v4i64:$src) - Complexity = 3
                  // Dst: VR256:v4f64:$src
                /*SwitchType*/ 5,  MVT::v8f32,// ->70167
/*70162*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*70164*/         OPC_CompleteMatch, 1, 0, 
                  // Src: (bitconvert:v8f32 VR256:v4i64:$src) - Complexity = 3
                  // Dst: VR256:v8f32:$src
                0, // EndSwitchType
/*70168*/     0, /*End of Scope*/
/*70169*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 19|128,1/*147*/,  TARGET_VAL(ISD::SIGN_EXTEND),// ->70321
/*70174*/   OPC_Scope, 55, /*->70231*/ // 2 children in Scope
/*70176*/     OPC_MoveChild, 0,
/*70178*/     OPC_CheckOpcode, TARGET_VAL(X86ISD::SETCC_CARRY),
/*70181*/     OPC_MoveChild, 0,
/*70183*/     OPC_CheckInteger, 2, 
/*70185*/     OPC_MoveParent,
/*70186*/     OPC_RecordChild1, // #0 = physreg input EFLAGS
/*70187*/     OPC_CheckType, MVT::i8,
/*70189*/     OPC_MoveParent,
/*70190*/     OPC_SwitchType /*3 cases */, 11,  MVT::i16,// ->70204
/*70193*/       OPC_EmitCopyToReg, 0, X86::EFLAGS,
/*70196*/       OPC_MorphNodeTo, TARGET_VAL(X86::SETB_C16r), 0|OPFL_GlueInput,
                    2/*#VTs*/, MVT::i16, MVT::i32, 0/*#Ops*/, 
                // Src: (sext:i16 (X86setcc_c:i8 2:i8, EFLAGS:i32)) - Complexity = 11
                // Dst: (SETB_C16r:i16:i32)
              /*SwitchType*/ 11,  MVT::i32,// ->70217
/*70206*/       OPC_EmitCopyToReg, 0, X86::EFLAGS,
/*70209*/       OPC_MorphNodeTo, TARGET_VAL(X86::SETB_C32r), 0|OPFL_GlueInput,
                    2/*#VTs*/, MVT::i32, MVT::i32, 0/*#Ops*/, 
                // Src: (sext:i32 (X86setcc_c:i8 2:i8, EFLAGS:i32)) - Complexity = 11
                // Dst: (SETB_C32r:i32:i32)
              /*SwitchType*/ 11,  MVT::i64,// ->70230
/*70219*/       OPC_EmitCopyToReg, 0, X86::EFLAGS,
/*70222*/       OPC_MorphNodeTo, TARGET_VAL(X86::SETB_C64r), 0|OPFL_GlueInput,
                    2/*#VTs*/, MVT::i64, MVT::i32, 0/*#Ops*/, 
                // Src: (sext:i64 (X86setcc_c:i8 2:i8, EFLAGS:i32)) - Complexity = 11
                // Dst: (SETB_C64r:i64:i32)
              0, // EndSwitchType
/*70231*/   /*Scope*/ 88, /*->70320*/
/*70232*/     OPC_RecordChild0, // #0 = $src
/*70233*/     OPC_Scope, 46, /*->70281*/ // 3 children in Scope
/*70235*/       OPC_CheckChild0Type, MVT::i8,
/*70237*/       OPC_SwitchType /*3 cases */, 8,  MVT::i32,// ->70248
/*70240*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOVSX32rr8), 0,
                      1/*#VTs*/, MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (sext:i32 GR8:i8:$src) - Complexity = 3
                  // Dst: (MOVSX32rr8:i32 GR8:i8:$src)
                /*SwitchType*/ 8,  MVT::i64,// ->70258
/*70250*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOVSX64rr8), 0,
                      1/*#VTs*/, MVT::i64, 1/*#Ops*/, 0, 
                  // Src: (sext:i64 GR8:i8:$src) - Complexity = 3
                  // Dst: (MOVSX64rr8:i64 GR8:i8:$src)
                /*SwitchType*/ 20,  MVT::i16,// ->70280
/*70260*/         OPC_EmitNode, TARGET_VAL(X86::MOVSX32rr8), 0,
                      1/*#VTs*/, MVT::i32, 1/*#Ops*/, 0,  // Results = #1 
/*70268*/         OPC_EmitInteger, MVT::i32, X86::sub_16bit,
/*70271*/         OPC_MorphNodeTo, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      1/*#VTs*/, MVT::i16, 2/*#Ops*/, 1, 2, 
                  // Src: (sext:i16 GR8:i8:$src) - Complexity = 3
                  // Dst: (EXTRACT_SUBREG:i16 (MOVSX32rr8:i32 GR8:i8:$src), sub_16bit:i32)
                0, // EndSwitchType
/*70281*/     /*Scope*/ 24, /*->70306*/
/*70282*/       OPC_CheckChild0Type, MVT::i16,
/*70284*/       OPC_SwitchType /*2 cases */, 8,  MVT::i32,// ->70295
/*70287*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOVSX32rr16), 0,
                      1/*#VTs*/, MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (sext:i32 GR16:i16:$src) - Complexity = 3
                  // Dst: (MOVSX32rr16:i32 GR16:i16:$src)
                /*SwitchType*/ 8,  MVT::i64,// ->70305
/*70297*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOVSX64rr16), 0,
                      1/*#VTs*/, MVT::i64, 1/*#Ops*/, 0, 
                  // Src: (sext:i64 GR16:i16:$src) - Complexity = 3
                  // Dst: (MOVSX64rr16:i64 GR16:i16:$src)
                0, // EndSwitchType
/*70306*/     /*Scope*/ 12, /*->70319*/
/*70307*/       OPC_CheckChild0Type, MVT::i32,
/*70309*/       OPC_CheckType, MVT::i64,
/*70311*/       OPC_MorphNodeTo, TARGET_VAL(X86::MOVSX64rr32), 0,
                    1/*#VTs*/, MVT::i64, 1/*#Ops*/, 0, 
                // Src: (sext:i64 GR32:i32:$src) - Complexity = 3
                // Dst: (MOVSX64rr32:i64 GR32:i32:$src)
/*70319*/     0, /*End of Scope*/
/*70320*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 5|128,2/*261*/,  TARGET_VAL(ISD::SRA),// ->70586
/*70325*/   OPC_RecordChild0, // #0 = $src1
/*70326*/   OPC_Scope, 124, /*->70452*/ // 2 children in Scope
/*70328*/     OPC_MoveChild, 1,
/*70330*/     OPC_CheckType, MVT::i8,
/*70332*/     OPC_Scope, 48, /*->70382*/ // 3 children in Scope
/*70334*/       OPC_CheckAndImm, 31, 
/*70336*/       OPC_RecordChild0, // #1 = physreg input CL
/*70337*/       OPC_MoveParent,
/*70338*/       OPC_SwitchType /*3 cases */, 12,  MVT::i8,// ->70353
/*70341*/         OPC_EmitCopyToReg, 1, X86::CL,
/*70344*/         OPC_MorphNodeTo, TARGET_VAL(X86::SAR8rCL), 0|OPFL_GlueInput,
                      2/*#VTs*/, MVT::i8, MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (sra:i8 GR8:i8:$src1, (and:i8 CL:i8, 31:i8)) - Complexity = 11
                  // Dst: (SAR8rCL:i8:i32 GR8:i8:$src1)
                /*SwitchType*/ 12,  MVT::i16,// ->70367
/*70355*/         OPC_EmitCopyToReg, 1, X86::CL,
/*70358*/         OPC_MorphNodeTo, TARGET_VAL(X86::SAR16rCL), 0|OPFL_GlueInput,
                      2/*#VTs*/, MVT::i16, MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (sra:i16 GR16:i16:$src1, (and:i8 CL:i8, 31:i8)) - Complexity = 11
                  // Dst: (SAR16rCL:i16:i32 GR16:i16:$src1)
                /*SwitchType*/ 12,  MVT::i32,// ->70381
/*70369*/         OPC_EmitCopyToReg, 1, X86::CL,
/*70372*/         OPC_MorphNodeTo, TARGET_VAL(X86::SAR32rCL), 0|OPFL_GlueInput,
                      2/*#VTs*/, MVT::i32, MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (sra:i32 GR32:i32:$src1, (and:i8 CL:i8, 31:i8)) - Complexity = 11
                  // Dst: (SAR32rCL:i32:i32 GR32:i32:$src1)
                0, // EndSwitchType
/*70382*/     /*Scope*/ 18, /*->70401*/
/*70383*/       OPC_CheckAndImm, 63, 
/*70385*/       OPC_RecordChild0, // #1 = physreg input CL
/*70386*/       OPC_MoveParent,
/*70387*/       OPC_CheckType, MVT::i64,
/*70389*/       OPC_EmitCopyToReg, 1, X86::CL,
/*70392*/       OPC_MorphNodeTo, TARGET_VAL(X86::SAR64rCL), 0|OPFL_GlueInput,
                    2/*#VTs*/, MVT::i64, MVT::i32, 1/*#Ops*/, 0, 
                // Src: (sra:i64 GR64:i64:$src1, (and:i8 CL:i8, 63:i8)) - Complexity = 11
                // Dst: (SAR64rCL:i64:i32 GR64:i64:$src1)
/*70401*/     /*Scope*/ 49, /*->70451*/
/*70402*/       OPC_CheckInteger, 1, 
/*70404*/       OPC_MoveParent,
/*70405*/       OPC_SwitchType /*4 cases */, 9,  MVT::i8,// ->70417
/*70408*/         OPC_MorphNodeTo, TARGET_VAL(X86::SAR8r1), 0,
                      2/*#VTs*/, MVT::i8, MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (sra:i8 GR8:i8:$src1, 1:i8) - Complexity = 8
                  // Dst: (SAR8r1:i8:i32 GR8:i8:$src1)
                /*SwitchType*/ 9,  MVT::i16,// ->70428
/*70419*/         OPC_MorphNodeTo, TARGET_VAL(X86::SAR16r1), 0,
                      2/*#VTs*/, MVT::i16, MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (sra:i16 GR16:i16:$src1, 1:i8) - Complexity = 8
                  // Dst: (SAR16r1:i16:i32 GR16:i16:$src1)
                /*SwitchType*/ 9,  MVT::i32,// ->70439
/*70430*/         OPC_MorphNodeTo, TARGET_VAL(X86::SAR32r1), 0,
                      2/*#VTs*/, MVT::i32, MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (sra:i32 GR32:i32:$src1, 1:i8) - Complexity = 8
                  // Dst: (SAR32r1:i32:i32 GR32:i32:$src1)
                /*SwitchType*/ 9,  MVT::i64,// ->70450
/*70441*/         OPC_MorphNodeTo, TARGET_VAL(X86::SAR64r1), 0,
                      2/*#VTs*/, MVT::i64, MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (sra:i64 GR64:i64:$src1, 1:i8) - Complexity = 8
                  // Dst: (SAR64r1:i64:i32 GR64:i64:$src1)
                0, // EndSwitchType
/*70451*/     0, /*End of Scope*/
/*70452*/   /*Scope*/ 3|128,1/*131*/, /*->70585*/
/*70454*/     OPC_RecordChild1, // #1 = $src2
/*70455*/     OPC_Scope, 66, /*->70523*/ // 2 children in Scope
/*70457*/       OPC_MoveChild, 1,
/*70459*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*70462*/       OPC_CheckType, MVT::i8,
/*70464*/       OPC_MoveParent,
/*70465*/       OPC_SwitchType /*4 cases */, 12,  MVT::i8,// ->70480
/*70468*/         OPC_EmitConvertToTarget, 1,
/*70470*/         OPC_MorphNodeTo, TARGET_VAL(X86::SAR8ri), 0,
                      2/*#VTs*/, MVT::i8, MVT::i32, 2/*#Ops*/, 0, 2, 
                  // Src: (sra:i8 GR8:i8:$src1, (imm:i8):$src2) - Complexity = 6
                  // Dst: (SAR8ri:i8:i32 GR8:i8:$src1, (imm:i8):$src2)
                /*SwitchType*/ 12,  MVT::i16,// ->70494
/*70482*/         OPC_EmitConvertToTarget, 1,
/*70484*/         OPC_MorphNodeTo, TARGET_VAL(X86::SAR16ri), 0,
                      2/*#VTs*/, MVT::i16, MVT::i32, 2/*#Ops*/, 0, 2, 
                  // Src: (sra:i16 GR16:i16:$src1, (imm:i8):$src2) - Complexity = 6
                  // Dst: (SAR16ri:i16:i32 GR16:i16:$src1, (imm:i8):$src2)
                /*SwitchType*/ 12,  MVT::i32,// ->70508
/*70496*/         OPC_EmitConvertToTarget, 1,
/*70498*/         OPC_MorphNodeTo, TARGET_VAL(X86::SAR32ri), 0,
                      2/*#VTs*/, MVT::i32, MVT::i32, 2/*#Ops*/, 0, 2, 
                  // Src: (sra:i32 GR32:i32:$src1, (imm:i8):$src2) - Complexity = 6
                  // Dst: (SAR32ri:i32:i32 GR32:i32:$src1, (imm:i8):$src2)
                /*SwitchType*/ 12,  MVT::i64,// ->70522
/*70510*/         OPC_EmitConvertToTarget, 1,
/*70512*/         OPC_MorphNodeTo, TARGET_VAL(X86::SAR64ri), 0,
                      2/*#VTs*/, MVT::i64, MVT::i32, 2/*#Ops*/, 0, 2, 
                  // Src: (sra:i64 GR64:i64:$src1, (imm:i8):$src2) - Complexity = 6
                  // Dst: (SAR64ri:i64:i32 GR64:i64:$src1, (imm:i8):$src2)
                0, // EndSwitchType
/*70523*/     /*Scope*/ 60, /*->70584*/
/*70524*/       OPC_CheckChild1Type, MVT::i8,
/*70526*/       OPC_SwitchType /*4 cases */, 12,  MVT::i8,// ->70541
/*70529*/         OPC_EmitCopyToReg, 1, X86::CL,
/*70532*/         OPC_MorphNodeTo, TARGET_VAL(X86::SAR8rCL), 0|OPFL_GlueInput,
                      2/*#VTs*/, MVT::i8, MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (sra:i8 GR8:i8:$src1, CL:i8) - Complexity = 3
                  // Dst: (SAR8rCL:i8:i32 GR8:i8:$src1)
                /*SwitchType*/ 12,  MVT::i16,// ->70555
/*70543*/         OPC_EmitCopyToReg, 1, X86::CL,
/*70546*/         OPC_MorphNodeTo, TARGET_VAL(X86::SAR16rCL), 0|OPFL_GlueInput,
                      2/*#VTs*/, MVT::i16, MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (sra:i16 GR16:i16:$src1, CL:i8) - Complexity = 3
                  // Dst: (SAR16rCL:i16:i32 GR16:i16:$src1)
                /*SwitchType*/ 12,  MVT::i32,// ->70569
/*70557*/         OPC_EmitCopyToReg, 1, X86::CL,
/*70560*/         OPC_MorphNodeTo, TARGET_VAL(X86::SAR32rCL), 0|OPFL_GlueInput,
                      2/*#VTs*/, MVT::i32, MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (sra:i32 GR32:i32:$src1, CL:i8) - Complexity = 3
                  // Dst: (SAR32rCL:i32:i32 GR32:i32:$src1)
                /*SwitchType*/ 12,  MVT::i64,// ->70583
/*70571*/         OPC_EmitCopyToReg, 1, X86::CL,
/*70574*/         OPC_MorphNodeTo, TARGET_VAL(X86::SAR64rCL), 0|OPFL_GlueInput,
                      2/*#VTs*/, MVT::i64, MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (sra:i64 GR64:i64:$src1, CL:i8) - Complexity = 3
                  // Dst: (SAR64rCL:i64:i32 GR64:i64:$src1)
                0, // EndSwitchType
/*70584*/     0, /*End of Scope*/
/*70585*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 0|128,2/*256*/,  TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),// ->70846
/*70590*/   OPC_Scope, 50, /*->70642*/ // 2 children in Scope
/*70592*/     OPC_MoveChild, 0,
/*70594*/     OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*70597*/     OPC_RecordChild0, // #0 = $src1
/*70598*/     OPC_CheckChild0Type, MVT::v4f32,
/*70600*/     OPC_CheckType, MVT::v4i32,
/*70602*/     OPC_MoveParent,
/*70603*/     OPC_RecordChild1, // #1 = $src2
/*70604*/     OPC_MoveChild, 1,
/*70606*/     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*70609*/     OPC_MoveParent,
/*70610*/     OPC_CheckType, MVT::i32,
/*70612*/     OPC_Scope, 13, /*->70627*/ // 2 children in Scope
/*70614*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*70616*/       OPC_EmitConvertToTarget, 1,
/*70618*/       OPC_MorphNodeTo, TARGET_VAL(X86::VEXTRACTPSrr), 0,
                    1/*#VTs*/, MVT::i32, 2/*#Ops*/, 0, 2, 
                // Src: (extractelt:i32 (bitconvert:v4i32 VR128:v4f32:$src1), (imm:iPTR):$src2) - Complexity = 9
                // Dst: (VEXTRACTPSrr:i32 VR128:v4f32:$src1, (imm:i32):$src2)
/*70627*/     /*Scope*/ 13, /*->70641*/
/*70628*/       OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*70630*/       OPC_EmitConvertToTarget, 1,
/*70632*/       OPC_MorphNodeTo, TARGET_VAL(X86::EXTRACTPSrr), 0,
                    1/*#VTs*/, MVT::i32, 2/*#Ops*/, 0, 2, 
                // Src: (extractelt:i32 (bitconvert:v4i32 VR128:v4f32:$src1), (imm:iPTR):$src2) - Complexity = 9
                // Dst: (EXTRACTPSrr:i32 VR128:v4f32:$src1, (imm:i32):$src2)
/*70641*/     0, /*End of Scope*/
/*70642*/   /*Scope*/ 73|128,1/*201*/, /*->70845*/
/*70644*/     OPC_RecordChild0, // #0 = $src
/*70645*/     OPC_Scope, 76, /*->70723*/ // 4 children in Scope
/*70647*/       OPC_CheckChild0Type, MVT::v4i32,
/*70649*/       OPC_Scope, 31, /*->70682*/ // 2 children in Scope
/*70651*/         OPC_MoveChild, 1,
/*70653*/         OPC_CheckInteger, 0, 
/*70655*/         OPC_MoveParent,
/*70656*/         OPC_CheckType, MVT::i32,
/*70658*/         OPC_Scope, 10, /*->70670*/ // 2 children in Scope
/*70660*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*70662*/           OPC_MorphNodeTo, TARGET_VAL(X86::VMOVPDI2DIrr), 0,
                        1/*#VTs*/, MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (vector_extract:i32 VR128:v4i32:$src, 0:iPTR) - Complexity = 8
                    // Dst: (VMOVPDI2DIrr:i32 VR128:v4i32:$src)
/*70670*/         /*Scope*/ 10, /*->70681*/
/*70671*/           OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*70673*/           OPC_MorphNodeTo, TARGET_VAL(X86::MOVPDI2DIrr), 0,
                        1/*#VTs*/, MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (vector_extract:i32 VR128:v4i32:$src, 0:iPTR) - Complexity = 8
                    // Dst: (MOVPDI2DIrr:i32 VR128:v4i32:$src)
/*70681*/         0, /*End of Scope*/
/*70682*/       /*Scope*/ 39, /*->70722*/
/*70683*/         OPC_RecordChild1, // #1 = $src2
/*70684*/         OPC_MoveChild, 1,
/*70686*/         OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*70689*/         OPC_MoveParent,
/*70690*/         OPC_CheckType, MVT::i32,
/*70692*/         OPC_Scope, 13, /*->70707*/ // 2 children in Scope
/*70694*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*70696*/           OPC_EmitConvertToTarget, 1,
/*70698*/           OPC_MorphNodeTo, TARGET_VAL(X86::VPEXTRDrr), 0,
                        1/*#VTs*/, MVT::i32, 2/*#Ops*/, 0, 2, 
                    // Src: (extractelt:i32 VR128:v4i32:$src1, (imm:iPTR):$src2) - Complexity = 6
                    // Dst: (VPEXTRDrr:i32 VR128:v4i32:$src1, (imm:i32):$src2)
/*70707*/         /*Scope*/ 13, /*->70721*/
/*70708*/           OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*70710*/           OPC_EmitConvertToTarget, 1,
/*70712*/           OPC_MorphNodeTo, TARGET_VAL(X86::PEXTRDrr), 0,
                        1/*#VTs*/, MVT::i32, 2/*#Ops*/, 0, 2, 
                    // Src: (extractelt:i32 VR128:v4i32:$src1, (imm:iPTR):$src2) - Complexity = 6
                    // Dst: (PEXTRDrr:i32 VR128:v4i32:$src1, (imm:i32):$src2)
/*70721*/         0, /*End of Scope*/
/*70722*/       0, /*End of Scope*/
/*70723*/     /*Scope*/ 76, /*->70800*/
/*70724*/       OPC_CheckChild0Type, MVT::v2i64,
/*70726*/       OPC_Scope, 31, /*->70759*/ // 2 children in Scope
/*70728*/         OPC_MoveChild, 1,
/*70730*/         OPC_CheckInteger, 0, 
/*70732*/         OPC_MoveParent,
/*70733*/         OPC_CheckType, MVT::i64,
/*70735*/         OPC_Scope, 10, /*->70747*/ // 2 children in Scope
/*70737*/           OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX()) && (Subtarget->is64Bit())
/*70739*/           OPC_MorphNodeTo, TARGET_VAL(X86::VMOVPQIto64rr), 0,
                        1/*#VTs*/, MVT::i64, 1/*#Ops*/, 0, 
                    // Src: (vector_extract:i64 VR128:v2i64:$src, 0:iPTR) - Complexity = 8
                    // Dst: (VMOVPQIto64rr:i64 VR128:v2i64:$src)
/*70747*/         /*Scope*/ 10, /*->70758*/
/*70748*/           OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*70750*/           OPC_MorphNodeTo, TARGET_VAL(X86::MOVPQIto64rr), 0,
                        1/*#VTs*/, MVT::i64, 1/*#Ops*/, 0, 
                    // Src: (vector_extract:i64 VR128:v2i64:$src, 0:iPTR) - Complexity = 8
                    // Dst: (MOVPQIto64rr:i64 VR128:v2i64:$src)
/*70758*/         0, /*End of Scope*/
/*70759*/       /*Scope*/ 39, /*->70799*/
/*70760*/         OPC_RecordChild1, // #1 = $src2
/*70761*/         OPC_MoveChild, 1,
/*70763*/         OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*70766*/         OPC_MoveParent,
/*70767*/         OPC_CheckType, MVT::i64,
/*70769*/         OPC_Scope, 13, /*->70784*/ // 2 children in Scope
/*70771*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*70773*/           OPC_EmitConvertToTarget, 1,
/*70775*/           OPC_MorphNodeTo, TARGET_VAL(X86::VPEXTRQrr), 0,
                        1/*#VTs*/, MVT::i64, 2/*#Ops*/, 0, 2, 
                    // Src: (extractelt:i64 VR128:v2i64:$src1, (imm:iPTR):$src2) - Complexity = 6
                    // Dst: (VPEXTRQrr:i64 VR128:v2i64:$src1, (imm:i32):$src2)
/*70784*/         /*Scope*/ 13, /*->70798*/
/*70785*/           OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*70787*/           OPC_EmitConvertToTarget, 1,
/*70789*/           OPC_MorphNodeTo, TARGET_VAL(X86::PEXTRQrr), 0,
                        1/*#VTs*/, MVT::i64, 2/*#Ops*/, 0, 2, 
                    // Src: (extractelt:i64 VR128:v2i64:$src1, (imm:iPTR):$src2) - Complexity = 6
                    // Dst: (PEXTRQrr:i64 VR128:v2i64:$src1, (imm:i32):$src2)
/*70798*/         0, /*End of Scope*/
/*70799*/       0, /*End of Scope*/
/*70800*/     /*Scope*/ 21, /*->70822*/
/*70801*/       OPC_CheckChild0Type, MVT::v4f32,
/*70803*/       OPC_MoveChild, 1,
/*70805*/       OPC_CheckInteger, 0, 
/*70807*/       OPC_MoveParent,
/*70808*/       OPC_CheckType, MVT::f32,
/*70810*/       OPC_EmitInteger, MVT::i32, X86::sub_ss,
/*70813*/       OPC_MorphNodeTo, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                    1/*#VTs*/, MVT::f32, 2/*#Ops*/, 0, 1, 
                // Src: (vector_extract:f32 VR128:v4f32:$src, 0:iPTR) - Complexity = 8
                // Dst: (EXTRACT_SUBREG:f32 VR128:v4f32:$src, sub_ss:i32)
/*70822*/     /*Scope*/ 21, /*->70844*/
/*70823*/       OPC_CheckChild0Type, MVT::v2f64,
/*70825*/       OPC_MoveChild, 1,
/*70827*/       OPC_CheckInteger, 0, 
/*70829*/       OPC_MoveParent,
/*70830*/       OPC_CheckType, MVT::f64,
/*70832*/       OPC_EmitInteger, MVT::i32, X86::sub_sd,
/*70835*/       OPC_MorphNodeTo, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                    1/*#VTs*/, MVT::f64, 2/*#Ops*/, 0, 1, 
                // Src: (vector_extract:f64 VR128:v2f64:$src, 0:iPTR) - Complexity = 8
                // Dst: (EXTRACT_SUBREG:f64 VR128:v2f64:$src, sub_sd:i32)
/*70844*/     0, /*End of Scope*/
/*70845*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 116|128,1/*244*/,  TARGET_VAL(X86ISD::SETCC),// ->71094
/*70850*/   OPC_MoveChild, 0,
/*70852*/   OPC_Scope, 14, /*->70868*/ // 16 children in Scope
/*70854*/     OPC_CheckInteger, 13, 
/*70856*/     OPC_MoveParent,
/*70857*/     OPC_RecordChild1, // #0 = physreg input EFLAGS
/*70858*/     OPC_EmitCopyToReg, 0, X86::EFLAGS,
/*70861*/     OPC_MorphNodeTo, TARGET_VAL(X86::SETOr), 0|OPFL_GlueInput,
                  1/*#VTs*/, MVT::i8, 0/*#Ops*/, 
              // Src: (X86setcc:i8 13:i8, EFLAGS:i32) - Complexity = 8
              // Dst: (SETOr:i8)
/*70868*/   /*Scope*/ 14, /*->70883*/
/*70869*/     OPC_CheckInteger, 10, 
/*70871*/     OPC_MoveParent,
/*70872*/     OPC_RecordChild1, // #0 = physreg input EFLAGS
/*70873*/     OPC_EmitCopyToReg, 0, X86::EFLAGS,
/*70876*/     OPC_MorphNodeTo, TARGET_VAL(X86::SETNOr), 0|OPFL_GlueInput,
                  1/*#VTs*/, MVT::i8, 0/*#Ops*/, 
              // Src: (X86setcc:i8 10:i8, EFLAGS:i32) - Complexity = 8
              // Dst: (SETNOr:i8)
/*70883*/   /*Scope*/ 14, /*->70898*/
/*70884*/     OPC_CheckInteger, 2, 
/*70886*/     OPC_MoveParent,
/*70887*/     OPC_RecordChild1, // #0 = physreg input EFLAGS
/*70888*/     OPC_EmitCopyToReg, 0, X86::EFLAGS,
/*70891*/     OPC_MorphNodeTo, TARGET_VAL(X86::SETBr), 0|OPFL_GlueInput,
                  1/*#VTs*/, MVT::i8, 0/*#Ops*/, 
              // Src: (X86setcc:i8 2:i8, EFLAGS:i32) - Complexity = 8
              // Dst: (SETBr:i8)
/*70898*/   /*Scope*/ 14, /*->70913*/
/*70899*/     OPC_CheckInteger, 1, 
/*70901*/     OPC_MoveParent,
/*70902*/     OPC_RecordChild1, // #0 = physreg input EFLAGS
/*70903*/     OPC_EmitCopyToReg, 0, X86::EFLAGS,
/*70906*/     OPC_MorphNodeTo, TARGET_VAL(X86::SETAEr), 0|OPFL_GlueInput,
                  1/*#VTs*/, MVT::i8, 0/*#Ops*/, 
              // Src: (X86setcc:i8 1:i8, EFLAGS:i32) - Complexity = 8
              // Dst: (SETAEr:i8)
/*70913*/   /*Scope*/ 14, /*->70928*/
/*70914*/     OPC_CheckInteger, 4, 
/*70916*/     OPC_MoveParent,
/*70917*/     OPC_RecordChild1, // #0 = physreg input EFLAGS
/*70918*/     OPC_EmitCopyToReg, 0, X86::EFLAGS,
/*70921*/     OPC_MorphNodeTo, TARGET_VAL(X86::SETEr), 0|OPFL_GlueInput,
                  1/*#VTs*/, MVT::i8, 0/*#Ops*/, 
              // Src: (X86setcc:i8 4:i8, EFLAGS:i32) - Complexity = 8
              // Dst: (SETEr:i8)
/*70928*/   /*Scope*/ 14, /*->70943*/
/*70929*/     OPC_CheckInteger, 9, 
/*70931*/     OPC_MoveParent,
/*70932*/     OPC_RecordChild1, // #0 = physreg input EFLAGS
/*70933*/     OPC_EmitCopyToReg, 0, X86::EFLAGS,
/*70936*/     OPC_MorphNodeTo, TARGET_VAL(X86::SETNEr), 0|OPFL_GlueInput,
                  1/*#VTs*/, MVT::i8, 0/*#Ops*/, 
              // Src: (X86setcc:i8 9:i8, EFLAGS:i32) - Complexity = 8
              // Dst: (SETNEr:i8)
/*70943*/   /*Scope*/ 14, /*->70958*/
/*70944*/     OPC_CheckInteger, 3, 
/*70946*/     OPC_MoveParent,
/*70947*/     OPC_RecordChild1, // #0 = physreg input EFLAGS
/*70948*/     OPC_EmitCopyToReg, 0, X86::EFLAGS,
/*70951*/     OPC_MorphNodeTo, TARGET_VAL(X86::SETBEr), 0|OPFL_GlueInput,
                  1/*#VTs*/, MVT::i8, 0/*#Ops*/, 
              // Src: (X86setcc:i8 3:i8, EFLAGS:i32) - Complexity = 8
              // Dst: (SETBEr:i8)
/*70958*/   /*Scope*/ 14, /*->70973*/
/*70959*/     OPC_CheckInteger, 0, 
/*70961*/     OPC_MoveParent,
/*70962*/     OPC_RecordChild1, // #0 = physreg input EFLAGS
/*70963*/     OPC_EmitCopyToReg, 0, X86::EFLAGS,
/*70966*/     OPC_MorphNodeTo, TARGET_VAL(X86::SETAr), 0|OPFL_GlueInput,
                  1/*#VTs*/, MVT::i8, 0/*#Ops*/, 
              // Src: (X86setcc:i8 0:i8, EFLAGS:i32) - Complexity = 8
              // Dst: (SETAr:i8)
/*70973*/   /*Scope*/ 14, /*->70988*/
/*70974*/     OPC_CheckInteger, 15, 
/*70976*/     OPC_MoveParent,
/*70977*/     OPC_RecordChild1, // #0 = physreg input EFLAGS
/*70978*/     OPC_EmitCopyToReg, 0, X86::EFLAGS,
/*70981*/     OPC_MorphNodeTo, TARGET_VAL(X86::SETSr), 0|OPFL_GlueInput,
                  1/*#VTs*/, MVT::i8, 0/*#Ops*/, 
              // Src: (X86setcc:i8 15:i8, EFLAGS:i32) - Complexity = 8
              // Dst: (SETSr:i8)
/*70988*/   /*Scope*/ 14, /*->71003*/
/*70989*/     OPC_CheckInteger, 12, 
/*70991*/     OPC_MoveParent,
/*70992*/     OPC_RecordChild1, // #0 = physreg input EFLAGS
/*70993*/     OPC_EmitCopyToReg, 0, X86::EFLAGS,
/*70996*/     OPC_MorphNodeTo, TARGET_VAL(X86::SETNSr), 0|OPFL_GlueInput,
                  1/*#VTs*/, MVT::i8, 0/*#Ops*/, 
              // Src: (X86setcc:i8 12:i8, EFLAGS:i32) - Complexity = 8
              // Dst: (SETNSr:i8)
/*71003*/   /*Scope*/ 14, /*->71018*/
/*71004*/     OPC_CheckInteger, 14, 
/*71006*/     OPC_MoveParent,
/*71007*/     OPC_RecordChild1, // #0 = physreg input EFLAGS
/*71008*/     OPC_EmitCopyToReg, 0, X86::EFLAGS,
/*71011*/     OPC_MorphNodeTo, TARGET_VAL(X86::SETPr), 0|OPFL_GlueInput,
                  1/*#VTs*/, MVT::i8, 0/*#Ops*/, 
              // Src: (X86setcc:i8 14:i8, EFLAGS:i32) - Complexity = 8
              // Dst: (SETPr:i8)
/*71018*/   /*Scope*/ 14, /*->71033*/
/*71019*/     OPC_CheckInteger, 11, 
/*71021*/     OPC_MoveParent,
/*71022*/     OPC_RecordChild1, // #0 = physreg input EFLAGS
/*71023*/     OPC_EmitCopyToReg, 0, X86::EFLAGS,
/*71026*/     OPC_MorphNodeTo, TARGET_VAL(X86::SETNPr), 0|OPFL_GlueInput,
                  1/*#VTs*/, MVT::i8, 0/*#Ops*/, 
              // Src: (X86setcc:i8 11:i8, EFLAGS:i32) - Complexity = 8
              // Dst: (SETNPr:i8)
/*71033*/   /*Scope*/ 14, /*->71048*/
/*71034*/     OPC_CheckInteger, 7, 
/*71036*/     OPC_MoveParent,
/*71037*/     OPC_RecordChild1, // #0 = physreg input EFLAGS
/*71038*/     OPC_EmitCopyToReg, 0, X86::EFLAGS,
/*71041*/     OPC_MorphNodeTo, TARGET_VAL(X86::SETLr), 0|OPFL_GlueInput,
                  1/*#VTs*/, MVT::i8, 0/*#Ops*/, 
              // Src: (X86setcc:i8 7:i8, EFLAGS:i32) - Complexity = 8
              // Dst: (SETLr:i8)
/*71048*/   /*Scope*/ 14, /*->71063*/
/*71049*/     OPC_CheckInteger, 6, 
/*71051*/     OPC_MoveParent,
/*71052*/     OPC_RecordChild1, // #0 = physreg input EFLAGS
/*71053*/     OPC_EmitCopyToReg, 0, X86::EFLAGS,
/*71056*/     OPC_MorphNodeTo, TARGET_VAL(X86::SETGEr), 0|OPFL_GlueInput,
                  1/*#VTs*/, MVT::i8, 0/*#Ops*/, 
              // Src: (X86setcc:i8 6:i8, EFLAGS:i32) - Complexity = 8
              // Dst: (SETGEr:i8)
/*71063*/   /*Scope*/ 14, /*->71078*/
/*71064*/     OPC_CheckInteger, 8, 
/*71066*/     OPC_MoveParent,
/*71067*/     OPC_RecordChild1, // #0 = physreg input EFLAGS
/*71068*/     OPC_EmitCopyToReg, 0, X86::EFLAGS,
/*71071*/     OPC_MorphNodeTo, TARGET_VAL(X86::SETLEr), 0|OPFL_GlueInput,
                  1/*#VTs*/, MVT::i8, 0/*#Ops*/, 
              // Src: (X86setcc:i8 8:i8, EFLAGS:i32) - Complexity = 8
              // Dst: (SETLEr:i8)
/*71078*/   /*Scope*/ 14, /*->71093*/
/*71079*/     OPC_CheckInteger, 5, 
/*71081*/     OPC_MoveParent,
/*71082*/     OPC_RecordChild1, // #0 = physreg input EFLAGS
/*71083*/     OPC_EmitCopyToReg, 0, X86::EFLAGS,
/*71086*/     OPC_MorphNodeTo, TARGET_VAL(X86::SETGr), 0|OPFL_GlueInput,
                  1/*#VTs*/, MVT::i8, 0/*#Ops*/, 
              // Src: (X86setcc:i8 5:i8, EFLAGS:i32) - Complexity = 8
              // Dst: (SETGr:i8)
/*71093*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 62|128,1/*190*/,  TARGET_VAL(ISD::ROTL),// ->71288
/*71098*/   OPC_RecordChild0, // #0 = $src1
/*71099*/   OPC_Scope, 53, /*->71154*/ // 2 children in Scope
/*71101*/     OPC_MoveChild, 1,
/*71103*/     OPC_CheckInteger, 1, 
/*71105*/     OPC_CheckType, MVT::i8,
/*71107*/     OPC_MoveParent,
/*71108*/     OPC_SwitchType /*4 cases */, 9,  MVT::i8,// ->71120
/*71111*/       OPC_MorphNodeTo, TARGET_VAL(X86::ROL8r1), 0,
                    2/*#VTs*/, MVT::i8, MVT::i32, 1/*#Ops*/, 0, 
                // Src: (rotl:i8 GR8:i8:$src1, 1:i8) - Complexity = 8
                // Dst: (ROL8r1:i8:i32 GR8:i8:$src1)
              /*SwitchType*/ 9,  MVT::i16,// ->71131
/*71122*/       OPC_MorphNodeTo, TARGET_VAL(X86::ROL16r1), 0,
                    2/*#VTs*/, MVT::i16, MVT::i32, 1/*#Ops*/, 0, 
                // Src: (rotl:i16 GR16:i16:$src1, 1:i8) - Complexity = 8
                // Dst: (ROL16r1:i16:i32 GR16:i16:$src1)
              /*SwitchType*/ 9,  MVT::i32,// ->71142
/*71133*/       OPC_MorphNodeTo, TARGET_VAL(X86::ROL32r1), 0,
                    2/*#VTs*/, MVT::i32, MVT::i32, 1/*#Ops*/, 0, 
                // Src: (rotl:i32 GR32:i32:$src1, 1:i8) - Complexity = 8
                // Dst: (ROL32r1:i32:i32 GR32:i32:$src1)
              /*SwitchType*/ 9,  MVT::i64,// ->71153
/*71144*/       OPC_MorphNodeTo, TARGET_VAL(X86::ROL64r1), 0,
                    2/*#VTs*/, MVT::i64, MVT::i32, 1/*#Ops*/, 0, 
                // Src: (rotl:i64 GR64:i64:$src1, 1:i8) - Complexity = 8
                // Dst: (ROL64r1:i64:i32 GR64:i64:$src1)
              0, // EndSwitchType
/*71154*/   /*Scope*/ 3|128,1/*131*/, /*->71287*/
/*71156*/     OPC_RecordChild1, // #1 = $src2
/*71157*/     OPC_Scope, 66, /*->71225*/ // 2 children in Scope
/*71159*/       OPC_MoveChild, 1,
/*71161*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*71164*/       OPC_CheckType, MVT::i8,
/*71166*/       OPC_MoveParent,
/*71167*/       OPC_SwitchType /*4 cases */, 12,  MVT::i8,// ->71182
/*71170*/         OPC_EmitConvertToTarget, 1,
/*71172*/         OPC_MorphNodeTo, TARGET_VAL(X86::ROL8ri), 0,
                      2/*#VTs*/, MVT::i8, MVT::i32, 2/*#Ops*/, 0, 2, 
                  // Src: (rotl:i8 GR8:i8:$src1, (imm:i8):$src2) - Complexity = 6
                  // Dst: (ROL8ri:i8:i32 GR8:i8:$src1, (imm:i8):$src2)
                /*SwitchType*/ 12,  MVT::i16,// ->71196
/*71184*/         OPC_EmitConvertToTarget, 1,
/*71186*/         OPC_MorphNodeTo, TARGET_VAL(X86::ROL16ri), 0,
                      2/*#VTs*/, MVT::i16, MVT::i32, 2/*#Ops*/, 0, 2, 
                  // Src: (rotl:i16 GR16:i16:$src1, (imm:i8):$src2) - Complexity = 6
                  // Dst: (ROL16ri:i16:i32 GR16:i16:$src1, (imm:i8):$src2)
                /*SwitchType*/ 12,  MVT::i32,// ->71210
/*71198*/         OPC_EmitConvertToTarget, 1,
/*71200*/         OPC_MorphNodeTo, TARGET_VAL(X86::ROL32ri), 0,
                      2/*#VTs*/, MVT::i32, MVT::i32, 2/*#Ops*/, 0, 2, 
                  // Src: (rotl:i32 GR32:i32:$src1, (imm:i8):$src2) - Complexity = 6
                  // Dst: (ROL32ri:i32:i32 GR32:i32:$src1, (imm:i8):$src2)
                /*SwitchType*/ 12,  MVT::i64,// ->71224
/*71212*/         OPC_EmitConvertToTarget, 1,
/*71214*/         OPC_MorphNodeTo, TARGET_VAL(X86::ROL64ri), 0,
                      2/*#VTs*/, MVT::i64, MVT::i32, 2/*#Ops*/, 0, 2, 
                  // Src: (rotl:i64 GR64:i64:$src1, (imm:i8):$src2) - Complexity = 6
                  // Dst: (ROL64ri:i64:i32 GR64:i64:$src1, (imm:i8):$src2)
                0, // EndSwitchType
/*71225*/     /*Scope*/ 60, /*->71286*/
/*71226*/       OPC_CheckChild1Type, MVT::i8,
/*71228*/       OPC_SwitchType /*4 cases */, 12,  MVT::i8,// ->71243
/*71231*/         OPC_EmitCopyToReg, 1, X86::CL,
/*71234*/         OPC_MorphNodeTo, TARGET_VAL(X86::ROL8rCL), 0|OPFL_GlueInput,
                      2/*#VTs*/, MVT::i8, MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (rotl:i8 GR8:i8:$src1, CL:i8) - Complexity = 3
                  // Dst: (ROL8rCL:i8:i32 GR8:i8:$src1)
                /*SwitchType*/ 12,  MVT::i16,// ->71257
/*71245*/         OPC_EmitCopyToReg, 1, X86::CL,
/*71248*/         OPC_MorphNodeTo, TARGET_VAL(X86::ROL16rCL), 0|OPFL_GlueInput,
                      2/*#VTs*/, MVT::i16, MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (rotl:i16 GR16:i16:$src1, CL:i8) - Complexity = 3
                  // Dst: (ROL16rCL:i16:i32 GR16:i16:$src1)
                /*SwitchType*/ 12,  MVT::i32,// ->71271
/*71259*/         OPC_EmitCopyToReg, 1, X86::CL,
/*71262*/         OPC_MorphNodeTo, TARGET_VAL(X86::ROL32rCL), 0|OPFL_GlueInput,
                      2/*#VTs*/, MVT::i32, MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (rotl:i32 GR32:i32:$src1, CL:i8) - Complexity = 3
                  // Dst: (ROL32rCL:i32:i32 GR32:i32:$src1)
                /*SwitchType*/ 12,  MVT::i64,// ->71285
/*71273*/         OPC_EmitCopyToReg, 1, X86::CL,
/*71276*/         OPC_MorphNodeTo, TARGET_VAL(X86::ROL64rCL), 0|OPFL_GlueInput,
                      2/*#VTs*/, MVT::i64, MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (rotl:i64 GR64:i64:$src1, CL:i8) - Complexity = 3
                  // Dst: (ROL64rCL:i64:i32 GR64:i64:$src1)
                0, // EndSwitchType
/*71286*/     0, /*End of Scope*/
/*71287*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 62|128,1/*190*/,  TARGET_VAL(ISD::ROTR),// ->71482
/*71292*/   OPC_RecordChild0, // #0 = $src1
/*71293*/   OPC_Scope, 53, /*->71348*/ // 2 children in Scope
/*71295*/     OPC_MoveChild, 1,
/*71297*/     OPC_CheckInteger, 1, 
/*71299*/     OPC_CheckType, MVT::i8,
/*71301*/     OPC_MoveParent,
/*71302*/     OPC_SwitchType /*4 cases */, 9,  MVT::i8,// ->71314
/*71305*/       OPC_MorphNodeTo, TARGET_VAL(X86::ROR8r1), 0,
                    2/*#VTs*/, MVT::i8, MVT::i32, 1/*#Ops*/, 0, 
                // Src: (rotr:i8 GR8:i8:$src1, 1:i8) - Complexity = 8
                // Dst: (ROR8r1:i8:i32 GR8:i8:$src1)
              /*SwitchType*/ 9,  MVT::i16,// ->71325
/*71316*/       OPC_MorphNodeTo, TARGET_VAL(X86::ROR16r1), 0,
                    2/*#VTs*/, MVT::i16, MVT::i32, 1/*#Ops*/, 0, 
                // Src: (rotr:i16 GR16:i16:$src1, 1:i8) - Complexity = 8
                // Dst: (ROR16r1:i16:i32 GR16:i16:$src1)
              /*SwitchType*/ 9,  MVT::i32,// ->71336
/*71327*/       OPC_MorphNodeTo, TARGET_VAL(X86::ROR32r1), 0,
                    2/*#VTs*/, MVT::i32, MVT::i32, 1/*#Ops*/, 0, 
                // Src: (rotr:i32 GR32:i32:$src1, 1:i8) - Complexity = 8
                // Dst: (ROR32r1:i32:i32 GR32:i32:$src1)
              /*SwitchType*/ 9,  MVT::i64,// ->71347
/*71338*/       OPC_MorphNodeTo, TARGET_VAL(X86::ROR64r1), 0,
                    2/*#VTs*/, MVT::i64, MVT::i32, 1/*#Ops*/, 0, 
                // Src: (rotr:i64 GR64:i64:$src1, 1:i8) - Complexity = 8
                // Dst: (ROR64r1:i64:i32 GR64:i64:$src1)
              0, // EndSwitchType
/*71348*/   /*Scope*/ 3|128,1/*131*/, /*->71481*/
/*71350*/     OPC_RecordChild1, // #1 = $src2
/*71351*/     OPC_Scope, 66, /*->71419*/ // 2 children in Scope
/*71353*/       OPC_MoveChild, 1,
/*71355*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*71358*/       OPC_CheckType, MVT::i8,
/*71360*/       OPC_MoveParent,
/*71361*/       OPC_SwitchType /*4 cases */, 12,  MVT::i8,// ->71376
/*71364*/         OPC_EmitConvertToTarget, 1,
/*71366*/         OPC_MorphNodeTo, TARGET_VAL(X86::ROR8ri), 0,
                      2/*#VTs*/, MVT::i8, MVT::i32, 2/*#Ops*/, 0, 2, 
                  // Src: (rotr:i8 GR8:i8:$src1, (imm:i8):$src2) - Complexity = 6
                  // Dst: (ROR8ri:i8:i32 GR8:i8:$src1, (imm:i8):$src2)
                /*SwitchType*/ 12,  MVT::i16,// ->71390
/*71378*/         OPC_EmitConvertToTarget, 1,
/*71380*/         OPC_MorphNodeTo, TARGET_VAL(X86::ROR16ri), 0,
                      2/*#VTs*/, MVT::i16, MVT::i32, 2/*#Ops*/, 0, 2, 
                  // Src: (rotr:i16 GR16:i16:$src1, (imm:i8):$src2) - Complexity = 6
                  // Dst: (ROR16ri:i16:i32 GR16:i16:$src1, (imm:i8):$src2)
                /*SwitchType*/ 12,  MVT::i32,// ->71404
/*71392*/         OPC_EmitConvertToTarget, 1,
/*71394*/         OPC_MorphNodeTo, TARGET_VAL(X86::ROR32ri), 0,
                      2/*#VTs*/, MVT::i32, MVT::i32, 2/*#Ops*/, 0, 2, 
                  // Src: (rotr:i32 GR32:i32:$src1, (imm:i8):$src2) - Complexity = 6
                  // Dst: (ROR32ri:i32:i32 GR32:i32:$src1, (imm:i8):$src2)
                /*SwitchType*/ 12,  MVT::i64,// ->71418
/*71406*/         OPC_EmitConvertToTarget, 1,
/*71408*/         OPC_MorphNodeTo, TARGET_VAL(X86::ROR64ri), 0,
                      2/*#VTs*/, MVT::i64, MVT::i32, 2/*#Ops*/, 0, 2, 
                  // Src: (rotr:i64 GR64:i64:$src1, (imm:i8):$src2) - Complexity = 6
                  // Dst: (ROR64ri:i64:i32 GR64:i64:$src1, (imm:i8):$src2)
                0, // EndSwitchType
/*71419*/     /*Scope*/ 60, /*->71480*/
/*71420*/       OPC_CheckChild1Type, MVT::i8,
/*71422*/       OPC_SwitchType /*4 cases */, 12,  MVT::i8,// ->71437
/*71425*/         OPC_EmitCopyToReg, 1, X86::CL,
/*71428*/         OPC_MorphNodeTo, TARGET_VAL(X86::ROR8rCL), 0|OPFL_GlueInput,
                      2/*#VTs*/, MVT::i8, MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (rotr:i8 GR8:i8:$src1, CL:i8) - Complexity = 3
                  // Dst: (ROR8rCL:i8:i32 GR8:i8:$src1)
                /*SwitchType*/ 12,  MVT::i16,// ->71451
/*71439*/         OPC_EmitCopyToReg, 1, X86::CL,
/*71442*/         OPC_MorphNodeTo, TARGET_VAL(X86::ROR16rCL), 0|OPFL_GlueInput,
                      2/*#VTs*/, MVT::i16, MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (rotr:i16 GR16:i16:$src1, CL:i8) - Complexity = 3
                  // Dst: (ROR16rCL:i16:i32 GR16:i16:$src1)
                /*SwitchType*/ 12,  MVT::i32,// ->71465
/*71453*/         OPC_EmitCopyToReg, 1, X86::CL,
/*71456*/         OPC_MorphNodeTo, TARGET_VAL(X86::ROR32rCL), 0|OPFL_GlueInput,
                      2/*#VTs*/, MVT::i32, MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (rotr:i32 GR32:i32:$src1, CL:i8) - Complexity = 3
                  // Dst: (ROR32rCL:i32:i32 GR32:i32:$src1)
                /*SwitchType*/ 12,  MVT::i64,// ->71479
/*71467*/         OPC_EmitCopyToReg, 1, X86::CL,
/*71470*/         OPC_MorphNodeTo, TARGET_VAL(X86::ROR64rCL), 0|OPFL_GlueInput,
                      2/*#VTs*/, MVT::i64, MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (rotr:i64 GR64:i64:$src1, CL:i8) - Complexity = 3
                  // Dst: (ROR64rCL:i64:i32 GR64:i64:$src1)
                0, // EndSwitchType
/*71480*/     0, /*End of Scope*/
/*71481*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 60,  TARGET_VAL(X86ISD::SETCC_CARRY),// ->71545
/*71485*/   OPC_MoveChild, 0,
/*71487*/   OPC_CheckInteger, 2, 
/*71489*/   OPC_MoveParent,
/*71490*/   OPC_RecordChild1, // #0 = physreg input EFLAGS
/*71491*/   OPC_SwitchType /*4 cases */, 11,  MVT::i8,// ->71505
/*71494*/     OPC_EmitCopyToReg, 0, X86::EFLAGS,
/*71497*/     OPC_MorphNodeTo, TARGET_VAL(X86::SETB_C8r), 0|OPFL_GlueInput,
                  2/*#VTs*/, MVT::i8, MVT::i32, 0/*#Ops*/, 
              // Src: (X86setcc_c:i8 2:i8, EFLAGS:i32) - Complexity = 8
              // Dst: (SETB_C8r:i8:i32)
            /*SwitchType*/ 11,  MVT::i16,// ->71518
/*71507*/     OPC_EmitCopyToReg, 0, X86::EFLAGS,
/*71510*/     OPC_MorphNodeTo, TARGET_VAL(X86::SETB_C16r), 0|OPFL_GlueInput,
                  2/*#VTs*/, MVT::i16, MVT::i32, 0/*#Ops*/, 
              // Src: (X86setcc_c:i16 2:i8, EFLAGS:i32) - Complexity = 8
              // Dst: (SETB_C16r:i16:i32)
            /*SwitchType*/ 11,  MVT::i32,// ->71531
/*71520*/     OPC_EmitCopyToReg, 0, X86::EFLAGS,
/*71523*/     OPC_MorphNodeTo, TARGET_VAL(X86::SETB_C32r), 0|OPFL_GlueInput,
                  2/*#VTs*/, MVT::i32, MVT::i32, 0/*#Ops*/, 
              // Src: (X86setcc_c:i32 2:i8, EFLAGS:i32) - Complexity = 8
              // Dst: (SETB_C32r:i32:i32)
            /*SwitchType*/ 11,  MVT::i64,// ->71544
/*71533*/     OPC_EmitCopyToReg, 0, X86::EFLAGS,
/*71536*/     OPC_MorphNodeTo, TARGET_VAL(X86::SETB_C64r), 0|OPFL_GlueInput,
                  2/*#VTs*/, MVT::i64, MVT::i32, 0/*#Ops*/, 
              // Src: (X86setcc_c:i64 2:i8, EFLAGS:i32) - Complexity = 8
              // Dst: (SETB_C64r:i64:i32)
            0, // EndSwitchType
          /*SwitchOpcode*/ 111,  TARGET_VAL(X86ISD::SHLD),// ->71659
/*71548*/   OPC_RecordChild0, // #0 = $src1
/*71549*/   OPC_RecordChild1, // #1 = $src2
/*71550*/   OPC_RecordChild2, // #2 = $src3
/*71551*/   OPC_Scope, 55, /*->71608*/ // 2 children in Scope
/*71553*/     OPC_MoveChild, 2,
/*71555*/     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*71558*/     OPC_CheckType, MVT::i8,
/*71560*/     OPC_MoveParent,
/*71561*/     OPC_SwitchType /*3 cases */, 13,  MVT::i16,// ->71577
/*71564*/       OPC_EmitConvertToTarget, 2,
/*71566*/       OPC_MorphNodeTo, TARGET_VAL(X86::SHLD16rri8), 0,
                    2/*#VTs*/, MVT::i16, MVT::i32, 3/*#Ops*/, 0, 1, 3, 
                // Src: (X86shld:i16 GR16:i16:$src1, GR16:i16:$src2, (imm:i8):$src3) - Complexity = 6
                // Dst: (SHLD16rri8:i16:i32 GR16:i16:$src1, GR16:i16:$src2, (imm:i8):$src3)
              /*SwitchType*/ 13,  MVT::i32,// ->71592
/*71579*/       OPC_EmitConvertToTarget, 2,
/*71581*/       OPC_MorphNodeTo, TARGET_VAL(X86::SHLD32rri8), 0,
                    2/*#VTs*/, MVT::i32, MVT::i32, 3/*#Ops*/, 0, 1, 3, 
                // Src: (X86shld:i32 GR32:i32:$src1, GR32:i32:$src2, (imm:i8):$src3) - Complexity = 6
                // Dst: (SHLD32rri8:i32:i32 GR32:i32:$src1, GR32:i32:$src2, (imm:i8):$src3)
              /*SwitchType*/ 13,  MVT::i64,// ->71607
/*71594*/       OPC_EmitConvertToTarget, 2,
/*71596*/       OPC_MorphNodeTo, TARGET_VAL(X86::SHLD64rri8), 0,
                    2/*#VTs*/, MVT::i64, MVT::i32, 3/*#Ops*/, 0, 1, 3, 
                // Src: (X86shld:i64 GR64:i64:$src1, GR64:i64:$src2, (imm:i8):$src3) - Complexity = 6
                // Dst: (SHLD64rri8:i64:i32 GR64:i64:$src1, GR64:i64:$src2, (imm:i8):$src3)
              0, // EndSwitchType
/*71608*/   /*Scope*/ 49, /*->71658*/
/*71609*/     OPC_CheckChild2Type, MVT::i8,
/*71611*/     OPC_SwitchType /*3 cases */, 13,  MVT::i16,// ->71627
/*71614*/       OPC_EmitCopyToReg, 2, X86::CL,
/*71617*/       OPC_MorphNodeTo, TARGET_VAL(X86::SHLD16rrCL), 0|OPFL_GlueInput,
                    2/*#VTs*/, MVT::i16, MVT::i32, 2/*#Ops*/, 0, 1, 
                // Src: (X86shld:i16 GR16:i16:$src1, GR16:i16:$src2, CL:i8) - Complexity = 3
                // Dst: (SHLD16rrCL:i16:i32 GR16:i16:$src1, GR16:i16:$src2)
              /*SwitchType*/ 13,  MVT::i32,// ->71642
/*71629*/       OPC_EmitCopyToReg, 2, X86::CL,
/*71632*/       OPC_MorphNodeTo, TARGET_VAL(X86::SHLD32rrCL), 0|OPFL_GlueInput,
                    2/*#VTs*/, MVT::i32, MVT::i32, 2/*#Ops*/, 0, 1, 
                // Src: (X86shld:i32 GR32:i32:$src1, GR32:i32:$src2, CL:i8) - Complexity = 3
                // Dst: (SHLD32rrCL:i32:i32 GR32:i32:$src1, GR32:i32:$src2)
              /*SwitchType*/ 13,  MVT::i64,// ->71657
/*71644*/       OPC_EmitCopyToReg, 2, X86::CL,
/*71647*/       OPC_MorphNodeTo, TARGET_VAL(X86::SHLD64rrCL), 0|OPFL_GlueInput,
                    2/*#VTs*/, MVT::i64, MVT::i32, 2/*#Ops*/, 0, 1, 
                // Src: (X86shld:i64 GR64:i64:$src1, GR64:i64:$src2, CL:i8) - Complexity = 3
                // Dst: (SHLD64rrCL:i64:i32 GR64:i64:$src1, GR64:i64:$src2)
              0, // EndSwitchType
/*71658*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 111,  TARGET_VAL(X86ISD::SHRD),// ->71773
/*71662*/   OPC_RecordChild0, // #0 = $src1
/*71663*/   OPC_RecordChild1, // #1 = $src2
/*71664*/   OPC_RecordChild2, // #2 = $src3
/*71665*/   OPC_Scope, 55, /*->71722*/ // 2 children in Scope
/*71667*/     OPC_MoveChild, 2,
/*71669*/     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*71672*/     OPC_CheckType, MVT::i8,
/*71674*/     OPC_MoveParent,
/*71675*/     OPC_SwitchType /*3 cases */, 13,  MVT::i16,// ->71691
/*71678*/       OPC_EmitConvertToTarget, 2,
/*71680*/       OPC_MorphNodeTo, TARGET_VAL(X86::SHRD16rri8), 0,
                    2/*#VTs*/, MVT::i16, MVT::i32, 3/*#Ops*/, 0, 1, 3, 
                // Src: (X86shrd:i16 GR16:i16:$src1, GR16:i16:$src2, (imm:i8):$src3) - Complexity = 6
                // Dst: (SHRD16rri8:i16:i32 GR16:i16:$src1, GR16:i16:$src2, (imm:i8):$src3)
              /*SwitchType*/ 13,  MVT::i32,// ->71706
/*71693*/       OPC_EmitConvertToTarget, 2,
/*71695*/       OPC_MorphNodeTo, TARGET_VAL(X86::SHRD32rri8), 0,
                    2/*#VTs*/, MVT::i32, MVT::i32, 3/*#Ops*/, 0, 1, 3, 
                // Src: (X86shrd:i32 GR32:i32:$src1, GR32:i32:$src2, (imm:i8):$src3) - Complexity = 6
                // Dst: (SHRD32rri8:i32:i32 GR32:i32:$src1, GR32:i32:$src2, (imm:i8):$src3)
              /*SwitchType*/ 13,  MVT::i64,// ->71721
/*71708*/       OPC_EmitConvertToTarget, 2,
/*71710*/       OPC_MorphNodeTo, TARGET_VAL(X86::SHRD64rri8), 0,
                    2/*#VTs*/, MVT::i64, MVT::i32, 3/*#Ops*/, 0, 1, 3, 
                // Src: (X86shrd:i64 GR64:i64:$src1, GR64:i64:$src2, (imm:i8):$src3) - Complexity = 6
                // Dst: (SHRD64rri8:i64:i32 GR64:i64:$src1, GR64:i64:$src2, (imm:i8):$src3)
              0, // EndSwitchType
/*71722*/   /*Scope*/ 49, /*->71772*/
/*71723*/     OPC_CheckChild2Type, MVT::i8,
/*71725*/     OPC_SwitchType /*3 cases */, 13,  MVT::i16,// ->71741
/*71728*/       OPC_EmitCopyToReg, 2, X86::CL,
/*71731*/       OPC_MorphNodeTo, TARGET_VAL(X86::SHRD16rrCL), 0|OPFL_GlueInput,
                    2/*#VTs*/, MVT::i16, MVT::i32, 2/*#Ops*/, 0, 1, 
                // Src: (X86shrd:i16 GR16:i16:$src1, GR16:i16:$src2, CL:i8) - Complexity = 3
                // Dst: (SHRD16rrCL:i16:i32 GR16:i16:$src1, GR16:i16:$src2)
              /*SwitchType*/ 13,  MVT::i32,// ->71756
/*71743*/       OPC_EmitCopyToReg, 2, X86::CL,
/*71746*/       OPC_MorphNodeTo, TARGET_VAL(X86::SHRD32rrCL), 0|OPFL_GlueInput,
                    2/*#VTs*/, MVT::i32, MVT::i32, 2/*#Ops*/, 0, 1, 
                // Src: (X86shrd:i32 GR32:i32:$src1, GR32:i32:$src2, CL:i8) - Complexity = 3
                // Dst: (SHRD32rrCL:i32:i32 GR32:i32:$src1, GR32:i32:$src2)
              /*SwitchType*/ 13,  MVT::i64,// ->71771
/*71758*/       OPC_EmitCopyToReg, 2, X86::CL,
/*71761*/       OPC_MorphNodeTo, TARGET_VAL(X86::SHRD64rrCL), 0|OPFL_GlueInput,
                    2/*#VTs*/, MVT::i64, MVT::i32, 2/*#Ops*/, 0, 1, 
                // Src: (X86shrd:i64 GR64:i64:$src1, GR64:i64:$src2, CL:i8) - Complexity = 3
                // Dst: (SHRD64rrCL:i64:i32 GR64:i64:$src1, GR64:i64:$src2)
              0, // EndSwitchType
/*71772*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 40,  TARGET_VAL(X86ISD::PEXTRW),// ->71816
/*71776*/   OPC_RecordChild0, // #0 = $src1
/*71777*/   OPC_CheckChild0Type, MVT::v8i16,
/*71779*/   OPC_RecordChild1, // #1 = $src2
/*71780*/   OPC_MoveChild, 1,
/*71782*/   OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*71785*/   OPC_MoveParent,
/*71786*/   OPC_Scope, 13, /*->71801*/ // 2 children in Scope
/*71788*/     OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*71790*/     OPC_EmitConvertToTarget, 1,
/*71792*/     OPC_MorphNodeTo, TARGET_VAL(X86::VPEXTRWri), 0,
                  1/*#VTs*/, MVT::i32, 2/*#Ops*/, 0, 2, 
              // Src: (X86pextrw:i32 VR128:v8i16:$src1, (imm:iPTR):$src2) - Complexity = 6
              // Dst: (VPEXTRWri:i32 VR128:v8i16:$src1, (imm:i32):$src2)
/*71801*/   /*Scope*/ 13, /*->71815*/
/*71802*/     OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*71804*/     OPC_EmitConvertToTarget, 1,
/*71806*/     OPC_MorphNodeTo, TARGET_VAL(X86::PEXTRWri), 0,
                  1/*#VTs*/, MVT::i32, 2/*#Ops*/, 0, 2, 
              // Src: (X86pextrw:i32 VR128:v8i16:$src1, (imm:iPTR):$src2) - Complexity = 6
              // Dst: (PEXTRWri:i32 VR128:v8i16:$src1, (imm:i32):$src2)
/*71815*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 40,  TARGET_VAL(X86ISD::PEXTRB),// ->71859
/*71819*/   OPC_RecordChild0, // #0 = $src1
/*71820*/   OPC_CheckChild0Type, MVT::v16i8,
/*71822*/   OPC_RecordChild1, // #1 = $src2
/*71823*/   OPC_MoveChild, 1,
/*71825*/   OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*71828*/   OPC_MoveParent,
/*71829*/   OPC_Scope, 13, /*->71844*/ // 2 children in Scope
/*71831*/     OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*71833*/     OPC_EmitConvertToTarget, 1,
/*71835*/     OPC_MorphNodeTo, TARGET_VAL(X86::VPEXTRBrr), 0,
                  1/*#VTs*/, MVT::i32, 2/*#Ops*/, 0, 2, 
              // Src: (X86pextrb:i32 VR128:v16i8:$src1, (imm:iPTR):$src2) - Complexity = 6
              // Dst: (VPEXTRBrr:i32 VR128:v16i8:$src1, (imm:i32):$src2)
/*71844*/   /*Scope*/ 13, /*->71858*/
/*71845*/     OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*71847*/     OPC_EmitConvertToTarget, 1,
/*71849*/     OPC_MorphNodeTo, TARGET_VAL(X86::PEXTRBrr), 0,
                  1/*#VTs*/, MVT::i32, 2/*#Ops*/, 0, 2, 
              // Src: (X86pextrb:i32 VR128:v16i8:$src1, (imm:iPTR):$src2) - Complexity = 6
              // Dst: (PEXTRBrr:i32 VR128:v16i8:$src1, (imm:i32):$src2)
/*71858*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 0|128,1/*128*/,  TARGET_VAL(ISD::Constant),// ->71991
/*71863*/   OPC_Scope, 44, /*->71909*/ // 2 children in Scope
/*71865*/     OPC_CheckInteger, 0, 
/*71867*/     OPC_SwitchType /*4 cases */, 8,  MVT::i64,// ->71878
/*71870*/       OPC_MorphNodeTo, TARGET_VAL(X86::MOV64r0), 0,
                    2/*#VTs*/, MVT::i64, MVT::i32, 0/*#Ops*/, 
                // Src: 0:i64 - Complexity = 6
                // Dst: (MOV64r0:i64:i32)
              /*SwitchType*/ 8,  MVT::i8,// ->71888
/*71880*/       OPC_MorphNodeTo, TARGET_VAL(X86::MOV8r0), 0,
                    2/*#VTs*/, MVT::i8, MVT::i32, 0/*#Ops*/, 
                // Src: 0:i8 - Complexity = 5
                // Dst: (MOV8r0:i8:i32)
              /*SwitchType*/ 8,  MVT::i16,// ->71898
/*71890*/       OPC_MorphNodeTo, TARGET_VAL(X86::MOV16r0), 0,
                    2/*#VTs*/, MVT::i16, MVT::i32, 0/*#Ops*/, 
                // Src: 0:i16 - Complexity = 5
                // Dst: (MOV16r0:i16:i32)
              /*SwitchType*/ 8,  MVT::i32,// ->71908
/*71900*/       OPC_MorphNodeTo, TARGET_VAL(X86::MOV32r0), 0,
                    2/*#VTs*/, MVT::i32, MVT::i32, 0/*#Ops*/, 
                // Src: 0:i32 - Complexity = 5
                // Dst: (MOV32r0:i32:i32)
              0, // EndSwitchType
/*71909*/   /*Scope*/ 80, /*->71990*/
/*71910*/     OPC_RecordNode, // #0 = $src
/*71911*/     OPC_SwitchType /*4 cases */, 39,  MVT::i64,// ->71953
/*71914*/       OPC_Scope, 12, /*->71928*/ // 3 children in Scope
/*71916*/         OPC_CheckPredicate, 27, // Predicate_i64immZExt32
/*71918*/         OPC_EmitConvertToTarget, 0,
/*71920*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOV64ri64i32), 0,
                      1/*#VTs*/, MVT::i64, 1/*#Ops*/, 1, 
                  // Src: (imm:i64)<<P:Predicate_i64immZExt32>>:$src - Complexity = 5
                  // Dst: (MOV64ri64i32:i64 (imm:i64):$src)
/*71928*/       /*Scope*/ 12, /*->71941*/
/*71929*/         OPC_CheckPredicate, 11, // Predicate_i64immSExt32
/*71931*/         OPC_EmitConvertToTarget, 0,
/*71933*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOV64ri32), 0,
                      1/*#VTs*/, MVT::i64, 1/*#Ops*/, 1, 
                  // Src: (imm:i64)<<P:Predicate_i64immSExt32>>:$src - Complexity = 4
                  // Dst: (MOV64ri32:i64 (imm:i64):$src)
/*71941*/       /*Scope*/ 10, /*->71952*/
/*71942*/         OPC_EmitConvertToTarget, 0,
/*71944*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOV64ri), 0,
                      1/*#VTs*/, MVT::i64, 1/*#Ops*/, 1, 
                  // Src: (imm:i64):$src - Complexity = 3
                  // Dst: (MOV64ri:i64 (imm:i64):$src)
/*71952*/       0, /*End of Scope*/
              /*SwitchType*/ 10,  MVT::i8,// ->71965
/*71955*/       OPC_EmitConvertToTarget, 0,
/*71957*/       OPC_MorphNodeTo, TARGET_VAL(X86::MOV8ri), 0,
                    1/*#VTs*/, MVT::i8, 1/*#Ops*/, 1, 
                // Src: (imm:i8):$src - Complexity = 3
                // Dst: (MOV8ri:i8 (imm:i8):$src)
              /*SwitchType*/ 10,  MVT::i16,// ->71977
/*71967*/       OPC_EmitConvertToTarget, 0,
/*71969*/       OPC_MorphNodeTo, TARGET_VAL(X86::MOV16ri), 0,
                    1/*#VTs*/, MVT::i16, 1/*#Ops*/, 1, 
                // Src: (imm:i16):$src - Complexity = 3
                // Dst: (MOV16ri:i16 (imm:i16):$src)
              /*SwitchType*/ 10,  MVT::i32,// ->71989
/*71979*/       OPC_EmitConvertToTarget, 0,
/*71981*/       OPC_MorphNodeTo, TARGET_VAL(X86::MOV32ri), 0,
                    1/*#VTs*/, MVT::i32, 1/*#Ops*/, 1, 
                // Src: (imm:i32):$src - Complexity = 3
                // Dst: (MOV32ri:i32 (imm:i32):$src)
              0, // EndSwitchType
/*71990*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 40|128,2/*296*/,  TARGET_VAL(X86ISD::Wrapper),// ->72291
/*71995*/   OPC_RecordChild0, // #0 = $dst
/*71996*/   OPC_MoveChild, 0,
/*71998*/   OPC_SwitchOpcode /*6 cases */, 50,  TARGET_VAL(ISD::TargetConstantPool),// ->72052
/*72002*/     OPC_MoveParent,
/*72003*/     OPC_SwitchType /*2 cases */, 8,  MVT::i32,// ->72014
/*72006*/       OPC_MorphNodeTo, TARGET_VAL(X86::MOV32ri), 0,
                    1/*#VTs*/, MVT::i32, 1/*#Ops*/, 0, 
                // Src: (X86Wrapper:i32 (tconstpool:i32):$dst) - Complexity = 6
                // Dst: (MOV32ri:i32 (tconstpool:i32):$dst)
              /*SwitchType*/ 35,  MVT::i64,// ->72051
/*72016*/       OPC_Scope, 10, /*->72028*/ // 3 children in Scope
/*72018*/         OPC_CheckPatternPredicate, 29, // (TM.getCodeModel() != CodeModel::Small &&TM.getCodeModel() != CodeModel::Kernel)
/*72020*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOV64ri), 0,
                      1/*#VTs*/, MVT::i64, 1/*#Ops*/, 0, 
                  // Src: (X86Wrapper:i64 (tconstpool:i64):$dst) - Complexity = 6
                  // Dst: (MOV64ri:i64 (tconstpool:i64):$dst)
/*72028*/       /*Scope*/ 10, /*->72039*/
/*72029*/         OPC_CheckPatternPredicate, 30, // (TM.getCodeModel() == CodeModel::Small)
/*72031*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOV64ri64i32), 0,
                      1/*#VTs*/, MVT::i64, 1/*#Ops*/, 0, 
                  // Src: (X86Wrapper:i64 (tconstpool:i64):$dst) - Complexity = 6
                  // Dst: (MOV64ri64i32:i64 (tconstpool:i64):$dst)
/*72039*/       /*Scope*/ 10, /*->72050*/
/*72040*/         OPC_CheckPatternPredicate, 31, // (TM.getCodeModel() == CodeModel::Kernel)
/*72042*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOV64ri32), 0,
                      1/*#VTs*/, MVT::i64, 1/*#Ops*/, 0, 
                  // Src: (X86Wrapper:i64 (tconstpool:i64):$dst) - Complexity = 6
                  // Dst: (MOV64ri32:i64 (tconstpool:i64):$dst)
/*72050*/       0, /*End of Scope*/
              0, // EndSwitchType
            /*SwitchOpcode*/ 50,  TARGET_VAL(ISD::TargetJumpTable),// ->72105
/*72055*/     OPC_MoveParent,
/*72056*/     OPC_SwitchType /*2 cases */, 8,  MVT::i32,// ->72067
/*72059*/       OPC_MorphNodeTo, TARGET_VAL(X86::MOV32ri), 0,
                    1/*#VTs*/, MVT::i32, 1/*#Ops*/, 0, 
                // Src: (X86Wrapper:i32 (tjumptable:i32):$dst) - Complexity = 6
                // Dst: (MOV32ri:i32 (tjumptable:i32):$dst)
              /*SwitchType*/ 35,  MVT::i64,// ->72104
/*72069*/       OPC_Scope, 10, /*->72081*/ // 3 children in Scope
/*72071*/         OPC_CheckPatternPredicate, 29, // (TM.getCodeModel() != CodeModel::Small &&TM.getCodeModel() != CodeModel::Kernel)
/*72073*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOV64ri), 0,
                      1/*#VTs*/, MVT::i64, 1/*#Ops*/, 0, 
                  // Src: (X86Wrapper:i64 (tjumptable:i64):$dst) - Complexity = 6
                  // Dst: (MOV64ri:i64 (tjumptable:i64):$dst)
/*72081*/       /*Scope*/ 10, /*->72092*/
/*72082*/         OPC_CheckPatternPredicate, 30, // (TM.getCodeModel() == CodeModel::Small)
/*72084*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOV64ri64i32), 0,
                      1/*#VTs*/, MVT::i64, 1/*#Ops*/, 0, 
                  // Src: (X86Wrapper:i64 (tjumptable:i64):$dst) - Complexity = 6
                  // Dst: (MOV64ri64i32:i64 (tjumptable:i64):$dst)
/*72092*/       /*Scope*/ 10, /*->72103*/
/*72093*/         OPC_CheckPatternPredicate, 31, // (TM.getCodeModel() == CodeModel::Kernel)
/*72095*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOV64ri32), 0,
                      1/*#VTs*/, MVT::i64, 1/*#Ops*/, 0, 
                  // Src: (X86Wrapper:i64 (tjumptable:i64):$dst) - Complexity = 6
                  // Dst: (MOV64ri32:i64 (tjumptable:i64):$dst)
/*72103*/       0, /*End of Scope*/
              0, // EndSwitchType
            /*SwitchOpcode*/ 23,  TARGET_VAL(ISD::TargetGlobalTLSAddress),// ->72131
/*72108*/     OPC_MoveParent,
/*72109*/     OPC_SwitchType /*2 cases */, 8,  MVT::i32,// ->72120
/*72112*/       OPC_MorphNodeTo, TARGET_VAL(X86::MOV32ri), 0,
                    1/*#VTs*/, MVT::i32, 1/*#Ops*/, 0, 
                // Src: (X86Wrapper:i32 (tglobaltlsaddr:i32):$dst) - Complexity = 6
                // Dst: (MOV32ri:i32 (tglobaltlsaddr:i32):$dst)
              /*SwitchType*/ 8,  MVT::i64,// ->72130
/*72122*/       OPC_MorphNodeTo, TARGET_VAL(X86::MOV64ri), 0,
                    1/*#VTs*/, MVT::i64, 1/*#Ops*/, 0, 
                // Src: (X86Wrapper:i64 (tglobaltlsaddr:i64):$dst) - Complexity = 6
                // Dst: (MOV64ri:i64 (tglobaltlsaddr:i64):$dst)
              0, // EndSwitchType
            /*SwitchOpcode*/ 50,  TARGET_VAL(ISD::TargetGlobalAddress),// ->72184
/*72134*/     OPC_MoveParent,
/*72135*/     OPC_SwitchType /*2 cases */, 8,  MVT::i32,// ->72146
/*72138*/       OPC_MorphNodeTo, TARGET_VAL(X86::MOV32ri), 0,
                    1/*#VTs*/, MVT::i32, 1/*#Ops*/, 0, 
                // Src: (X86Wrapper:i32 (tglobaladdr:i32):$dst) - Complexity = 6
                // Dst: (MOV32ri:i32 (tglobaladdr:i32):$dst)
              /*SwitchType*/ 35,  MVT::i64,// ->72183
/*72148*/       OPC_Scope, 10, /*->72160*/ // 3 children in Scope
/*72150*/         OPC_CheckPatternPredicate, 29, // (TM.getCodeModel() != CodeModel::Small &&TM.getCodeModel() != CodeModel::Kernel)
/*72152*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOV64ri), 0,
                      1/*#VTs*/, MVT::i64, 1/*#Ops*/, 0, 
                  // Src: (X86Wrapper:i64 (tglobaladdr:i64):$dst) - Complexity = 6
                  // Dst: (MOV64ri:i64 (tglobaladdr:i64):$dst)
/*72160*/       /*Scope*/ 10, /*->72171*/
/*72161*/         OPC_CheckPatternPredicate, 30, // (TM.getCodeModel() == CodeModel::Small)
/*72163*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOV64ri64i32), 0,
                      1/*#VTs*/, MVT::i64, 1/*#Ops*/, 0, 
                  // Src: (X86Wrapper:i64 (tglobaladdr:i64):$dst) - Complexity = 6
                  // Dst: (MOV64ri64i32:i64 (tglobaladdr:i64):$dst)
/*72171*/       /*Scope*/ 10, /*->72182*/
/*72172*/         OPC_CheckPatternPredicate, 31, // (TM.getCodeModel() == CodeModel::Kernel)
/*72174*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOV64ri32), 0,
                      1/*#VTs*/, MVT::i64, 1/*#Ops*/, 0, 
                  // Src: (X86Wrapper:i64 (tglobaladdr:i64):$dst) - Complexity = 6
                  // Dst: (MOV64ri32:i64 (tglobaladdr:i64):$dst)
/*72182*/       0, /*End of Scope*/
              0, // EndSwitchType
            /*SwitchOpcode*/ 50,  TARGET_VAL(ISD::TargetExternalSymbol),// ->72237
/*72187*/     OPC_MoveParent,
/*72188*/     OPC_SwitchType /*2 cases */, 8,  MVT::i32,// ->72199
/*72191*/       OPC_MorphNodeTo, TARGET_VAL(X86::MOV32ri), 0,
                    1/*#VTs*/, MVT::i32, 1/*#Ops*/, 0, 
                // Src: (X86Wrapper:i32 (texternalsym:i32):$dst) - Complexity = 6
                // Dst: (MOV32ri:i32 (texternalsym:i32):$dst)
              /*SwitchType*/ 35,  MVT::i64,// ->72236
/*72201*/       OPC_Scope, 10, /*->72213*/ // 3 children in Scope
/*72203*/         OPC_CheckPatternPredicate, 29, // (TM.getCodeModel() != CodeModel::Small &&TM.getCodeModel() != CodeModel::Kernel)
/*72205*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOV64ri), 0,
                      1/*#VTs*/, MVT::i64, 1/*#Ops*/, 0, 
                  // Src: (X86Wrapper:i64 (texternalsym:i64):$dst) - Complexity = 6
                  // Dst: (MOV64ri:i64 (texternalsym:i64):$dst)
/*72213*/       /*Scope*/ 10, /*->72224*/
/*72214*/         OPC_CheckPatternPredicate, 30, // (TM.getCodeModel() == CodeModel::Small)
/*72216*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOV64ri64i32), 0,
                      1/*#VTs*/, MVT::i64, 1/*#Ops*/, 0, 
                  // Src: (X86Wrapper:i64 (texternalsym:i64):$dst) - Complexity = 6
                  // Dst: (MOV64ri64i32:i64 (texternalsym:i64):$dst)
/*72224*/       /*Scope*/ 10, /*->72235*/
/*72225*/         OPC_CheckPatternPredicate, 31, // (TM.getCodeModel() == CodeModel::Kernel)
/*72227*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOV64ri32), 0,
                      1/*#VTs*/, MVT::i64, 1/*#Ops*/, 0, 
                  // Src: (X86Wrapper:i64 (texternalsym:i64):$dst) - Complexity = 6
                  // Dst: (MOV64ri32:i64 (texternalsym:i64):$dst)
/*72235*/       0, /*End of Scope*/
              0, // EndSwitchType
            /*SwitchOpcode*/ 50,  TARGET_VAL(ISD::TargetBlockAddress),// ->72290
/*72240*/     OPC_MoveParent,
/*72241*/     OPC_SwitchType /*2 cases */, 8,  MVT::i32,// ->72252
/*72244*/       OPC_MorphNodeTo, TARGET_VAL(X86::MOV32ri), 0,
                    1/*#VTs*/, MVT::i32, 1/*#Ops*/, 0, 
                // Src: (X86Wrapper:i32 (tblockaddress:i32):$dst) - Complexity = 6
                // Dst: (MOV32ri:i32 (tblockaddress:i32):$dst)
              /*SwitchType*/ 35,  MVT::i64,// ->72289
/*72254*/       OPC_Scope, 10, /*->72266*/ // 3 children in Scope
/*72256*/         OPC_CheckPatternPredicate, 29, // (TM.getCodeModel() != CodeModel::Small &&TM.getCodeModel() != CodeModel::Kernel)
/*72258*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOV64ri), 0,
                      1/*#VTs*/, MVT::i64, 1/*#Ops*/, 0, 
                  // Src: (X86Wrapper:i64 (tblockaddress:i64):$dst) - Complexity = 6
                  // Dst: (MOV64ri:i64 (tblockaddress:i64):$dst)
/*72266*/       /*Scope*/ 10, /*->72277*/
/*72267*/         OPC_CheckPatternPredicate, 30, // (TM.getCodeModel() == CodeModel::Small)
/*72269*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOV64ri64i32), 0,
                      1/*#VTs*/, MVT::i64, 1/*#Ops*/, 0, 
                  // Src: (X86Wrapper:i64 (tblockaddress:i64):$dst) - Complexity = 6
                  // Dst: (MOV64ri64i32:i64 (tblockaddress:i64):$dst)
/*72277*/       /*Scope*/ 10, /*->72288*/
/*72278*/         OPC_CheckPatternPredicate, 31, // (TM.getCodeModel() == CodeModel::Kernel)
/*72280*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOV64ri32), 0,
                      1/*#VTs*/, MVT::i64, 1/*#Ops*/, 0, 
                  // Src: (X86Wrapper:i64 (tblockaddress:i64):$dst) - Complexity = 6
                  // Dst: (MOV64ri32:i64 (tblockaddress:i64):$dst)
/*72288*/       0, /*End of Scope*/
              0, // EndSwitchType
            0, // EndSwitchOpcode
          /*SwitchOpcode*/ 89,  TARGET_VAL(X86ISD::INC),// ->72383
/*72294*/   OPC_RecordChild0, // #0 = $src1
/*72295*/   OPC_SwitchType /*4 cases */, 28,  MVT::i16,// ->72326
/*72298*/     OPC_CheckChild0Type, MVT::i16,
/*72300*/     OPC_Scope, 11, /*->72313*/ // 2 children in Scope
/*72302*/       OPC_CheckPatternPredicate, 3, // (!Subtarget->is64Bit())
/*72304*/       OPC_MorphNodeTo, TARGET_VAL(X86::INC16r), 0,
                    2/*#VTs*/, MVT::i16, MVT::i32, 1/*#Ops*/, 0, 
                // Src: (X86inc_flag:i16:i32 GR16:i16:$src1) - Complexity = 3
                // Dst: (INC16r:i16:i32 GR16:i16:$src1)
/*72313*/     /*Scope*/ 11, /*->72325*/
/*72314*/       OPC_CheckPatternPredicate, 4, // (Subtarget->is64Bit())
/*72316*/       OPC_MorphNodeTo, TARGET_VAL(X86::INC64_16r), 0,
                    2/*#VTs*/, MVT::i16, MVT::i32, 1/*#Ops*/, 0, 
                // Src: (X86inc_flag:i16:i32 GR16:i16:$src1) - Complexity = 3
                // Dst: (INC64_16r:i16:i32 GR16:i16:$src1)
/*72325*/     0, /*End of Scope*/
            /*SwitchType*/ 28,  MVT::i32,// ->72356
/*72328*/     OPC_CheckChild0Type, MVT::i32,
/*72330*/     OPC_Scope, 11, /*->72343*/ // 2 children in Scope
/*72332*/       OPC_CheckPatternPredicate, 3, // (!Subtarget->is64Bit())
/*72334*/       OPC_MorphNodeTo, TARGET_VAL(X86::INC32r), 0,
                    2/*#VTs*/, MVT::i32, MVT::i32, 1/*#Ops*/, 0, 
                // Src: (X86inc_flag:i32:i32 GR32:i32:$src1) - Complexity = 3
                // Dst: (INC32r:i32:i32 GR32:i32:$src1)
/*72343*/     /*Scope*/ 11, /*->72355*/
/*72344*/       OPC_CheckPatternPredicate, 4, // (Subtarget->is64Bit())
/*72346*/       OPC_MorphNodeTo, TARGET_VAL(X86::INC64_32r), 0,
                    2/*#VTs*/, MVT::i32, MVT::i32, 1/*#Ops*/, 0, 
                // Src: (X86inc_flag:i32:i32 GR32:i32:$src1) - Complexity = 3
                // Dst: (INC64_32r:i32:i32 GR32:i32:$src1)
/*72355*/     0, /*End of Scope*/
            /*SwitchType*/ 11,  MVT::i64,// ->72369
/*72358*/     OPC_CheckChild0Type, MVT::i64,
/*72360*/     OPC_MorphNodeTo, TARGET_VAL(X86::INC64r), 0,
                  2/*#VTs*/, MVT::i64, MVT::i32, 1/*#Ops*/, 0, 
              // Src: (X86inc_flag:i64:i32 GR64:i64:$src1) - Complexity = 3
              // Dst: (INC64r:i64:i32 GR64:i64:$src1)
            /*SwitchType*/ 11,  MVT::i8,// ->72382
/*72371*/     OPC_CheckChild0Type, MVT::i8,
/*72373*/     OPC_MorphNodeTo, TARGET_VAL(X86::INC8r), 0,
                  2/*#VTs*/, MVT::i8, MVT::i32, 1/*#Ops*/, 0, 
              // Src: (X86inc_flag:i8:i32 GR8:i8:$src1) - Complexity = 3
              // Dst: (INC8r:i8:i32 GR8:i8:$src1)
            0, // EndSwitchType
          /*SwitchOpcode*/ 89,  TARGET_VAL(X86ISD::DEC),// ->72475
/*72386*/   OPC_RecordChild0, // #0 = $src1
/*72387*/   OPC_SwitchType /*4 cases */, 28,  MVT::i16,// ->72418
/*72390*/     OPC_CheckChild0Type, MVT::i16,
/*72392*/     OPC_Scope, 11, /*->72405*/ // 2 children in Scope
/*72394*/       OPC_CheckPatternPredicate, 3, // (!Subtarget->is64Bit())
/*72396*/       OPC_MorphNodeTo, TARGET_VAL(X86::DEC16r), 0,
                    2/*#VTs*/, MVT::i16, MVT::i32, 1/*#Ops*/, 0, 
                // Src: (X86dec_flag:i16:i32 GR16:i16:$src1) - Complexity = 3
                // Dst: (DEC16r:i16:i32 GR16:i16:$src1)
/*72405*/     /*Scope*/ 11, /*->72417*/
/*72406*/       OPC_CheckPatternPredicate, 4, // (Subtarget->is64Bit())
/*72408*/       OPC_MorphNodeTo, TARGET_VAL(X86::DEC64_16r), 0,
                    2/*#VTs*/, MVT::i16, MVT::i32, 1/*#Ops*/, 0, 
                // Src: (X86dec_flag:i16:i32 GR16:i16:$src1) - Complexity = 3
                // Dst: (DEC64_16r:i16:i32 GR16:i16:$src1)
/*72417*/     0, /*End of Scope*/
            /*SwitchType*/ 28,  MVT::i32,// ->72448
/*72420*/     OPC_CheckChild0Type, MVT::i32,
/*72422*/     OPC_Scope, 11, /*->72435*/ // 2 children in Scope
/*72424*/       OPC_CheckPatternPredicate, 3, // (!Subtarget->is64Bit())
/*72426*/       OPC_MorphNodeTo, TARGET_VAL(X86::DEC32r), 0,
                    2/*#VTs*/, MVT::i32, MVT::i32, 1/*#Ops*/, 0, 
                // Src: (X86dec_flag:i32:i32 GR32:i32:$src1) - Complexity = 3
                // Dst: (DEC32r:i32:i32 GR32:i32:$src1)
/*72435*/     /*Scope*/ 11, /*->72447*/
/*72436*/       OPC_CheckPatternPredicate, 4, // (Subtarget->is64Bit())
/*72438*/       OPC_MorphNodeTo, TARGET_VAL(X86::DEC64_32r), 0,
                    2/*#VTs*/, MVT::i32, MVT::i32, 1/*#Ops*/, 0, 
                // Src: (X86dec_flag:i32:i32 GR32:i32:$src1) - Complexity = 3
                // Dst: (DEC64_32r:i32:i32 GR32:i32:$src1)
/*72447*/     0, /*End of Scope*/
            /*SwitchType*/ 11,  MVT::i64,// ->72461
/*72450*/     OPC_CheckChild0Type, MVT::i64,
/*72452*/     OPC_MorphNodeTo, TARGET_VAL(X86::DEC64r), 0,
                  2/*#VTs*/, MVT::i64, MVT::i32, 1/*#Ops*/, 0, 
              // Src: (X86dec_flag:i64:i32 GR64:i64:$src1) - Complexity = 3
              // Dst: (DEC64r:i64:i32 GR64:i64:$src1)
            /*SwitchType*/ 11,  MVT::i8,// ->72474
/*72463*/     OPC_CheckChild0Type, MVT::i8,
/*72465*/     OPC_MorphNodeTo, TARGET_VAL(X86::DEC8r), 0,
                  2/*#VTs*/, MVT::i8, MVT::i32, 1/*#Ops*/, 0, 
              // Src: (X86dec_flag:i8:i32 GR8:i8:$src1) - Complexity = 3
              // Dst: (DEC8r:i8:i32 GR8:i8:$src1)
            0, // EndSwitchType
          /*SwitchOpcode*/ 2|128,2/*258*/,  TARGET_VAL(ISD::SIGN_EXTEND_INREG),// ->72737
/*72479*/   OPC_RecordChild0, // #0 = $src
/*72480*/   OPC_MoveChild, 1,
/*72482*/   OPC_Scope, 49, /*->72533*/ // 3 children in Scope
/*72484*/     OPC_CheckValueType, MVT::i16,
/*72486*/     OPC_MoveParent,
/*72487*/     OPC_SwitchType /*2 cases */, 20,  MVT::i32,// ->72510
/*72490*/       OPC_EmitInteger, MVT::i32, X86::sub_16bit,
/*72493*/       OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                    1/*#VTs*/, MVT::i16, 2/*#Ops*/, 0, 1,  // Results = #2 
/*72502*/       OPC_MorphNodeTo, TARGET_VAL(X86::MOVSX32rr16), 0,
                    1/*#VTs*/, MVT::i32, 1/*#Ops*/, 2, 
                // Src: (sext_inreg:i32 GR32:i32:$src, i16:Other) - Complexity = 3
                // Dst: (MOVSX32rr16:i32 (EXTRACT_SUBREG:i16 GR32:i32:$src, sub_16bit:i32))
              /*SwitchType*/ 20,  MVT::i64,// ->72532
/*72512*/       OPC_EmitInteger, MVT::i32, X86::sub_16bit,
/*72515*/       OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                    1/*#VTs*/, MVT::i16, 2/*#Ops*/, 0, 1,  // Results = #2 
/*72524*/       OPC_MorphNodeTo, TARGET_VAL(X86::MOVSX64rr16), 0,
                    1/*#VTs*/, MVT::i64, 1/*#Ops*/, 2, 
                // Src: (sext_inreg:i64 GR64:i64:$src, i16:Other) - Complexity = 3
                // Dst: (MOVSX64rr16:i64 (EXTRACT_SUBREG:i16 GR64:i64:$src, sub_16bit:i32))
              0, // EndSwitchType
/*72533*/   /*Scope*/ 25, /*->72559*/
/*72534*/     OPC_CheckValueType, MVT::i32,
/*72536*/     OPC_MoveParent,
/*72537*/     OPC_CheckType, MVT::i64,
/*72539*/     OPC_EmitInteger, MVT::i32, X86::sub_32bit,
/*72542*/     OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                  1/*#VTs*/, MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2 
/*72551*/     OPC_MorphNodeTo, TARGET_VAL(X86::MOVSX64rr32), 0,
                  1/*#VTs*/, MVT::i64, 1/*#Ops*/, 2, 
              // Src: (sext_inreg:i64 GR64:i64:$src, i32:Other) - Complexity = 3
              // Dst: (MOVSX64rr32:i64 (EXTRACT_SUBREG:i32 GR64:i64:$src, sub_32bit:i32))
/*72559*/   /*Scope*/ 47|128,1/*175*/, /*->72736*/
/*72561*/     OPC_CheckValueType, MVT::i8,
/*72563*/     OPC_MoveParent,
/*72564*/     OPC_SwitchType /*3 cases */, 20,  MVT::i64,// ->72587
/*72567*/       OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*72570*/       OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                    1/*#VTs*/, MVT::i8, 2/*#Ops*/, 0, 1,  // Results = #2 
/*72579*/       OPC_MorphNodeTo, TARGET_VAL(X86::MOVSX64rr8), 0,
                    1/*#VTs*/, MVT::i64, 1/*#Ops*/, 2, 
                // Src: (sext_inreg:i64 GR64:i64:$src, i8:Other) - Complexity = 3
                // Dst: (MOVSX64rr8:i64 (EXTRACT_SUBREG:i8 GR64:i64:$src, sub_8bit:i32))
              /*SwitchType*/ 60,  MVT::i32,// ->72649
/*72589*/       OPC_Scope, 22, /*->72613*/ // 2 children in Scope
/*72591*/         OPC_CheckPatternPredicate, 4, // (Subtarget->is64Bit())
/*72593*/         OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*72596*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      1/*#VTs*/, MVT::i8, 2/*#Ops*/, 0, 1,  // Results = #2 
/*72605*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOVSX32rr8), 0,
                      1/*#VTs*/, MVT::i32, 1/*#Ops*/, 2, 
                  // Src: (sext_inreg:i32 GR32:i32:$src, i8:Other) - Complexity = 3
                  // Dst: (MOVSX32rr8:i32 (EXTRACT_SUBREG:i8 GR32:i32:$src, sub_8bit:i32))
/*72613*/       /*Scope*/ 34, /*->72648*/
/*72614*/         OPC_CheckPatternPredicate, 3, // (!Subtarget->is64Bit())
/*72616*/         OPC_EmitInteger, MVT::i32, X86::GR32_ABCDRegClassID,
/*72619*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      1/*#VTs*/, MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2 
/*72628*/         OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*72631*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      1/*#VTs*/, MVT::i8, 2/*#Ops*/, 2, 3,  // Results = #4 
/*72640*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOVSX32rr8), 0,
                      1/*#VTs*/, MVT::i32, 1/*#Ops*/, 4, 
                  // Src: (sext_inreg:i32 GR32:i32:$src, i8:Other) - Complexity = 3
                  // Dst: (MOVSX32rr8:i32 (EXTRACT_SUBREG:i8 (COPY_TO_REGCLASS:i32 GR32:i32:$src, GR32_ABCD:i32), sub_8bit:i32))
/*72648*/       0, /*End of Scope*/
              /*SwitchType*/ 84,  MVT::i16,// ->72735
/*72651*/       OPC_Scope, 34, /*->72687*/ // 2 children in Scope
/*72653*/         OPC_CheckPatternPredicate, 4, // (Subtarget->is64Bit())
/*72655*/         OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*72658*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      1/*#VTs*/, MVT::i8, 2/*#Ops*/, 0, 1,  // Results = #2 
/*72667*/         OPC_EmitNode, TARGET_VAL(X86::MOVSX32rr8), 0,
                      1/*#VTs*/, MVT::i32, 1/*#Ops*/, 2,  // Results = #3 
/*72675*/         OPC_EmitInteger, MVT::i32, X86::sub_16bit,
/*72678*/         OPC_MorphNodeTo, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      1/*#VTs*/, MVT::i16, 2/*#Ops*/, 3, 4, 
                  // Src: (sext_inreg:i16 GR16:i16:$src, i8:Other) - Complexity = 3
                  // Dst: (EXTRACT_SUBREG:i16 (MOVSX32rr8:i32 (EXTRACT_SUBREG:i8 GR16:i16:$src, sub_8bit:i32)), sub_16bit:i32)
/*72687*/       /*Scope*/ 46, /*->72734*/
/*72688*/         OPC_CheckPatternPredicate, 3, // (!Subtarget->is64Bit())
/*72690*/         OPC_EmitInteger, MVT::i32, X86::GR16_ABCDRegClassID,
/*72693*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      1/*#VTs*/, MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2 
/*72702*/         OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*72705*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      1/*#VTs*/, MVT::i8, 2/*#Ops*/, 2, 3,  // Results = #4 
/*72714*/         OPC_EmitNode, TARGET_VAL(X86::MOVSX32rr8), 0,
                      1/*#VTs*/, MVT::i32, 1/*#Ops*/, 4,  // Results = #5 
/*72722*/         OPC_EmitInteger, MVT::i32, X86::sub_16bit,
/*72725*/         OPC_MorphNodeTo, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      1/*#VTs*/, MVT::i16, 2/*#Ops*/, 5, 6, 
                  // Src: (sext_inreg:i16 GR16:i16:$src, i8:Other) - Complexity = 3
                  // Dst: (EXTRACT_SUBREG:i16 (MOVSX32rr8:i32 (EXTRACT_SUBREG:i8 (COPY_TO_REGCLASS:i32 GR16:i16:$src, GR16_ABCD:i16), sub_8bit:i32)), sub_16bit:i32)
/*72734*/       0, /*End of Scope*/
              0, // EndSwitchType
/*72736*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 23|128,2/*279*/,  TARGET_VAL(X86ISD::FGETSIGNx86),// ->73020
/*72741*/   OPC_RecordChild0, // #0 = $src
/*72742*/   OPC_Scope, 8|128,1/*136*/, /*->72881*/ // 2 children in Scope
/*72745*/     OPC_CheckChild0Type, MVT::f32,
/*72747*/     OPC_SwitchType /*2 cases */, 64,  MVT::i32,// ->72814
/*72750*/       OPC_Scope, 30, /*->72782*/ // 2 children in Scope
/*72752*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*72754*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      1/*#VTs*/, MVT::v4f32, 0/*#Ops*/,  // Results = #1 
/*72761*/         OPC_EmitInteger, MVT::i32, X86::sub_ss,
/*72764*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      1/*#VTs*/, MVT::v4f32, 3/*#Ops*/, 1, 0, 2,  // Results = #3 
/*72774*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOVMSKPSrr32), 0,
                      1/*#VTs*/, MVT::i32, 1/*#Ops*/, 3, 
                  // Src: (X86fgetsign:i32 FR32:f32:$src) - Complexity = 3
                  // Dst: (MOVMSKPSrr32:i32 (INSERT_SUBREG:v4f32 (IMPLICIT_DEF:v4f32), FR32:f32:$src, sub_ss:i32))
/*72782*/       /*Scope*/ 30, /*->72813*/
/*72783*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*72785*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      1/*#VTs*/, MVT::v4f32, 0/*#Ops*/,  // Results = #1 
/*72792*/         OPC_EmitInteger, MVT::i32, X86::sub_ss,
/*72795*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      1/*#VTs*/, MVT::v4f32, 3/*#Ops*/, 1, 0, 2,  // Results = #3 
/*72805*/         OPC_MorphNodeTo, TARGET_VAL(X86::VMOVMSKPSrr32), 0,
                      1/*#VTs*/, MVT::i32, 1/*#Ops*/, 3, 
                  // Src: (X86fgetsign:i32 FR32:f32:$src) - Complexity = 3
                  // Dst: (VMOVMSKPSrr32:i32 (INSERT_SUBREG:v4f32 (IMPLICIT_DEF:v4f32), FR32:f32:$src, sub_ss:i32))
/*72813*/       0, /*End of Scope*/
              /*SwitchType*/ 64,  MVT::i64,// ->72880
/*72816*/       OPC_Scope, 30, /*->72848*/ // 2 children in Scope
/*72818*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*72820*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      1/*#VTs*/, MVT::v4f32, 0/*#Ops*/,  // Results = #1 
/*72827*/         OPC_EmitInteger, MVT::i32, X86::sub_ss,
/*72830*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      1/*#VTs*/, MVT::v4f32, 3/*#Ops*/, 1, 0, 2,  // Results = #3 
/*72840*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOVMSKPSrr64), 0,
                      1/*#VTs*/, MVT::i64, 1/*#Ops*/, 3, 
                  // Src: (X86fgetsign:i64 FR32:f32:$src) - Complexity = 3
                  // Dst: (MOVMSKPSrr64:i64 (INSERT_SUBREG:v4f32 (IMPLICIT_DEF:v4f32), FR32:f32:$src, sub_ss:i32))
/*72848*/       /*Scope*/ 30, /*->72879*/
/*72849*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*72851*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      1/*#VTs*/, MVT::v4f32, 0/*#Ops*/,  // Results = #1 
/*72858*/         OPC_EmitInteger, MVT::i32, X86::sub_ss,
/*72861*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      1/*#VTs*/, MVT::v4f32, 3/*#Ops*/, 1, 0, 2,  // Results = #3 
/*72871*/         OPC_MorphNodeTo, TARGET_VAL(X86::VMOVMSKPSrr64), 0,
                      1/*#VTs*/, MVT::i64, 1/*#Ops*/, 3, 
                  // Src: (X86fgetsign:i64 FR32:f32:$src) - Complexity = 3
                  // Dst: (VMOVMSKPSrr64:i64 (INSERT_SUBREG:v4f32 (IMPLICIT_DEF:v4f32), FR32:f32:$src, sub_ss:i32))
/*72879*/       0, /*End of Scope*/
              0, // EndSwitchType
/*72881*/   /*Scope*/ 8|128,1/*136*/, /*->73019*/
/*72883*/     OPC_CheckChild0Type, MVT::f64,
/*72885*/     OPC_SwitchType /*2 cases */, 64,  MVT::i32,// ->72952
/*72888*/       OPC_Scope, 30, /*->72920*/ // 2 children in Scope
/*72890*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*72892*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      1/*#VTs*/, MVT::v2f64, 0/*#Ops*/,  // Results = #1 
/*72899*/         OPC_EmitInteger, MVT::i32, X86::sub_sd,
/*72902*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      1/*#VTs*/, MVT::v2f64, 3/*#Ops*/, 1, 0, 2,  // Results = #3 
/*72912*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOVMSKPDrr32), 0,
                      1/*#VTs*/, MVT::i32, 1/*#Ops*/, 3, 
                  // Src: (X86fgetsign:i32 FR64:f64:$src) - Complexity = 3
                  // Dst: (MOVMSKPDrr32:i32 (INSERT_SUBREG:v2f64 (IMPLICIT_DEF:v2f64), FR64:f64:$src, sub_sd:i32))
/*72920*/       /*Scope*/ 30, /*->72951*/
/*72921*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*72923*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      1/*#VTs*/, MVT::v2f64, 0/*#Ops*/,  // Results = #1 
/*72930*/         OPC_EmitInteger, MVT::i32, X86::sub_sd,
/*72933*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      1/*#VTs*/, MVT::v2f64, 3/*#Ops*/, 1, 0, 2,  // Results = #3 
/*72943*/         OPC_MorphNodeTo, TARGET_VAL(X86::VMOVMSKPDrr32), 0,
                      1/*#VTs*/, MVT::i32, 1/*#Ops*/, 3, 
                  // Src: (X86fgetsign:i32 FR64:f64:$src) - Complexity = 3
                  // Dst: (VMOVMSKPDrr32:i32 (INSERT_SUBREG:v2f64 (IMPLICIT_DEF:v2f64), FR64:f64:$src, sub_sd:i32))
/*72951*/       0, /*End of Scope*/
              /*SwitchType*/ 64,  MVT::i64,// ->73018
/*72954*/       OPC_Scope, 30, /*->72986*/ // 2 children in Scope
/*72956*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*72958*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      1/*#VTs*/, MVT::v2f64, 0/*#Ops*/,  // Results = #1 
/*72965*/         OPC_EmitInteger, MVT::i32, X86::sub_sd,
/*72968*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      1/*#VTs*/, MVT::v2f64, 3/*#Ops*/, 1, 0, 2,  // Results = #3 
/*72978*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOVMSKPDrr64), 0,
                      1/*#VTs*/, MVT::i64, 1/*#Ops*/, 3, 
                  // Src: (X86fgetsign:i64 FR64:f64:$src) - Complexity = 3
                  // Dst: (MOVMSKPDrr64:i64 (INSERT_SUBREG:v2f64 (IMPLICIT_DEF:v2f64), FR64:f64:$src, sub_sd:i32))
/*72986*/       /*Scope*/ 30, /*->73017*/
/*72987*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*72989*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      1/*#VTs*/, MVT::v2f64, 0/*#Ops*/,  // Results = #1 
/*72996*/         OPC_EmitInteger, MVT::i32, X86::sub_sd,
/*72999*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      1/*#VTs*/, MVT::v2f64, 3/*#Ops*/, 1, 0, 2,  // Results = #3 
/*73009*/         OPC_MorphNodeTo, TARGET_VAL(X86::VMOVMSKPDrr64), 0,
                      1/*#VTs*/, MVT::i64, 1/*#Ops*/, 3, 
                  // Src: (X86fgetsign:i64 FR64:f64:$src) - Complexity = 3
                  // Dst: (VMOVMSKPDrr64:i64 (INSERT_SUBREG:v2f64 (IMPLICIT_DEF:v2f64), FR64:f64:$src, sub_sd:i32))
/*73017*/       0, /*End of Scope*/
              0, // EndSwitchType
/*73019*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 36,  TARGET_VAL(X86ISD::SEG_ALLOCA),// ->73059
/*73023*/   OPC_RecordNode,   // #0 = 'X86SegAlloca' chained node
/*73024*/   OPC_RecordChild1, // #1 = $size
/*73025*/   OPC_SwitchType /*2 cases */, 14,  MVT::i32,// ->73042
/*73028*/     OPC_CheckChild1Type, MVT::i32,
/*73030*/     OPC_CheckPatternPredicate, 3, // (!Subtarget->is64Bit())
/*73032*/     OPC_EmitMergeInputChains1_0,
/*73033*/     OPC_MorphNodeTo, TARGET_VAL(X86::SEG_ALLOCA_32), 0|OPFL_Chain,
                  2/*#VTs*/, MVT::i32, MVT::i32, 1/*#Ops*/, 1, 
              // Src: (X86SegAlloca:i32 GR32:i32:$size) - Complexity = 3
              // Dst: (SEG_ALLOCA_32:i32:i32 GR32:i32:$size)
            /*SwitchType*/ 14,  MVT::i64,// ->73058
/*73044*/     OPC_CheckChild1Type, MVT::i64,
/*73046*/     OPC_CheckPatternPredicate, 4, // (Subtarget->is64Bit())
/*73048*/     OPC_EmitMergeInputChains1_0,
/*73049*/     OPC_MorphNodeTo, TARGET_VAL(X86::SEG_ALLOCA_64), 0|OPFL_Chain,
                  2/*#VTs*/, MVT::i64, MVT::i64, 1/*#Ops*/, 1, 
              // Src: (X86SegAlloca:i64 GR64:i64:$size) - Complexity = 3
              // Dst: (SEG_ALLOCA_64:i64:i64 GR64:i64:$size)
            0, // EndSwitchType
          /*SwitchOpcode*/ 116,  TARGET_VAL(X86ISD::FSETCCss),// ->73178
/*73062*/   OPC_RecordChild0, // #0 = $src1
/*73063*/   OPC_CheckChild0Type, MVT::f32,
/*73065*/   OPC_Scope, 69, /*->73136*/ // 2 children in Scope
/*73067*/     OPC_MoveChild, 1,
/*73069*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*73072*/     OPC_RecordMemRef,
/*73073*/     OPC_RecordNode, // #1 = 'ld' chained node
/*73074*/     OPC_CheckFoldableChainNode,
/*73075*/     OPC_RecordChild1, // #2 = $src2
/*73076*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*73078*/     OPC_CheckPredicate, 3, // Predicate_load
/*73080*/     OPC_MoveParent,
/*73081*/     OPC_RecordChild2, // #3 = $cc
/*73082*/     OPC_MoveChild, 2,
/*73084*/     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*73087*/     OPC_MoveParent,
/*73088*/     OPC_Scope, 22, /*->73112*/ // 2 children in Scope
/*73090*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*73092*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*73095*/       OPC_EmitMergeInputChains1_1,
/*73096*/       OPC_EmitConvertToTarget, 3,
/*73098*/       OPC_MorphNodeTo, TARGET_VAL(X86::VCMPSSrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                // Src: (X86cmpss:f32 FR32:f32:$src1, (ld:f32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:i8):$cc) - Complexity = 28
                // Dst: (VCMPSSrm:f32 FR32:f32:$src1, addr:iPTR:$src2, (imm:i8):$cc)
/*73112*/     /*Scope*/ 22, /*->73135*/
/*73113*/       OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*73115*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*73118*/       OPC_EmitMergeInputChains1_1,
/*73119*/       OPC_EmitConvertToTarget, 3,
/*73121*/       OPC_MorphNodeTo, TARGET_VAL(X86::CMPSSrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                // Src: (X86cmpss:f32 FR32:f32:$src1, (ld:f32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:i8):$cc) - Complexity = 28
                // Dst: (CMPSSrm:f32 FR32:f32:$src1, addr:iPTR:$src2, (imm:i8):$cc)
/*73135*/     0, /*End of Scope*/
/*73136*/   /*Scope*/ 40, /*->73177*/
/*73137*/     OPC_RecordChild1, // #1 = $src2
/*73138*/     OPC_RecordChild2, // #2 = $cc
/*73139*/     OPC_MoveChild, 2,
/*73141*/     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*73144*/     OPC_MoveParent,
/*73145*/     OPC_Scope, 14, /*->73161*/ // 2 children in Scope
/*73147*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*73149*/       OPC_EmitConvertToTarget, 2,
/*73151*/       OPC_MorphNodeTo, TARGET_VAL(X86::VCMPSSrr), 0,
                    1/*#VTs*/, MVT::f32, 3/*#Ops*/, 0, 1, 3, 
                // Src: (X86cmpss:f32 FR32:f32:$src1, FR32:f32:$src2, (imm:i8):$cc) - Complexity = 6
                // Dst: (VCMPSSrr:f32 FR32:f32:$src1, FR32:f32:$src2, (imm:i8):$cc)
/*73161*/     /*Scope*/ 14, /*->73176*/
/*73162*/       OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*73164*/       OPC_EmitConvertToTarget, 2,
/*73166*/       OPC_MorphNodeTo, TARGET_VAL(X86::CMPSSrr), 0,
                    1/*#VTs*/, MVT::f32, 3/*#Ops*/, 0, 1, 3, 
                // Src: (X86cmpss:f32 FR32:f32:$src1, FR32:f32:$src2, (imm:i8):$cc) - Complexity = 6
                // Dst: (CMPSSrr:f32 FR32:f32:$src1, FR32:f32:$src2, (imm:i8):$cc)
/*73176*/     0, /*End of Scope*/
/*73177*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 116,  TARGET_VAL(X86ISD::FSETCCsd),// ->73297
/*73181*/   OPC_RecordChild0, // #0 = $src1
/*73182*/   OPC_CheckChild0Type, MVT::f64,
/*73184*/   OPC_Scope, 69, /*->73255*/ // 2 children in Scope
/*73186*/     OPC_MoveChild, 1,
/*73188*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*73191*/     OPC_RecordMemRef,
/*73192*/     OPC_RecordNode, // #1 = 'ld' chained node
/*73193*/     OPC_CheckFoldableChainNode,
/*73194*/     OPC_RecordChild1, // #2 = $src2
/*73195*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*73197*/     OPC_CheckPredicate, 3, // Predicate_load
/*73199*/     OPC_MoveParent,
/*73200*/     OPC_RecordChild2, // #3 = $cc
/*73201*/     OPC_MoveChild, 2,
/*73203*/     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*73206*/     OPC_MoveParent,
/*73207*/     OPC_Scope, 22, /*->73231*/ // 2 children in Scope
/*73209*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*73211*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*73214*/       OPC_EmitMergeInputChains1_1,
/*73215*/       OPC_EmitConvertToTarget, 3,
/*73217*/       OPC_MorphNodeTo, TARGET_VAL(X86::VCMPSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                // Src: (X86cmpsd:f64 FR64:f64:$src1, (ld:f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:i8):$cc) - Complexity = 28
                // Dst: (VCMPSDrm:f64 FR64:f64:$src1, addr:iPTR:$src2, (imm:i8):$cc)
/*73231*/     /*Scope*/ 22, /*->73254*/
/*73232*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*73234*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*73237*/       OPC_EmitMergeInputChains1_1,
/*73238*/       OPC_EmitConvertToTarget, 3,
/*73240*/       OPC_MorphNodeTo, TARGET_VAL(X86::CMPSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                // Src: (X86cmpsd:f64 FR64:f64:$src1, (ld:f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:i8):$cc) - Complexity = 28
                // Dst: (CMPSDrm:f64 FR64:f64:$src1, addr:iPTR:$src2, (imm:i8):$cc)
/*73254*/     0, /*End of Scope*/
/*73255*/   /*Scope*/ 40, /*->73296*/
/*73256*/     OPC_RecordChild1, // #1 = $src2
/*73257*/     OPC_RecordChild2, // #2 = $cc
/*73258*/     OPC_MoveChild, 2,
/*73260*/     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*73263*/     OPC_MoveParent,
/*73264*/     OPC_Scope, 14, /*->73280*/ // 2 children in Scope
/*73266*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*73268*/       OPC_EmitConvertToTarget, 2,
/*73270*/       OPC_MorphNodeTo, TARGET_VAL(X86::VCMPSDrr), 0,
                    1/*#VTs*/, MVT::f64, 3/*#Ops*/, 0, 1, 3, 
                // Src: (X86cmpsd:f64 FR64:f64:$src1, FR64:f64:$src2, (imm:i8):$cc) - Complexity = 6
                // Dst: (VCMPSDrr:f64 FR64:f64:$src1, FR64:f64:$src2, (imm:i8):$cc)
/*73280*/     /*Scope*/ 14, /*->73295*/
/*73281*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*73283*/       OPC_EmitConvertToTarget, 2,
/*73285*/       OPC_MorphNodeTo, TARGET_VAL(X86::CMPSDrr), 0,
                    1/*#VTs*/, MVT::f64, 3/*#Ops*/, 0, 1, 3, 
                // Src: (X86cmpsd:f64 FR64:f64:$src1, FR64:f64:$src2, (imm:i8):$cc) - Complexity = 6
                // Dst: (CMPSDrr:f64 FR64:f64:$src1, FR64:f64:$src2, (imm:i8):$cc)
/*73295*/     0, /*End of Scope*/
/*73296*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 5|128,10/*1285*/,  TARGET_VAL(ISD::FADD),// ->74586
/*73301*/   OPC_Scope, 8|128,1/*136*/, /*->73440*/ // 9 children in Scope
/*73304*/     OPC_RecordChild0, // #0 = $src1
/*73305*/     OPC_MoveChild, 1,
/*73307*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*73310*/     OPC_RecordMemRef,
/*73311*/     OPC_RecordNode, // #1 = 'ld' chained node
/*73312*/     OPC_CheckFoldableChainNode,
/*73313*/     OPC_RecordChild1, // #2 = $src2
/*73314*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*73316*/     OPC_Scope, 47, /*->73365*/ // 2 children in Scope
/*73318*/       OPC_CheckPredicate, 3, // Predicate_load
/*73320*/       OPC_MoveParent,
/*73321*/       OPC_SwitchType /*2 cases */, 19,  MVT::f32,// ->73343
/*73324*/         OPC_CheckPatternPredicate, 8, // (!Subtarget->hasXMM())
/*73326*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*73329*/         OPC_EmitMergeInputChains1_1,
/*73330*/         OPC_MorphNodeTo, TARGET_VAL(X86::ADD_Fp32m), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (fadd:f32 RFP32:f32:$src1, (ld:f32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (ADD_Fp32m:f32 RFP32:f32:$src1, addr:iPTR:$src2)
                /*SwitchType*/ 19,  MVT::f64,// ->73364
/*73345*/         OPC_CheckPatternPredicate, 9, // (!Subtarget->hasXMMInt())
/*73347*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*73350*/         OPC_EmitMergeInputChains1_1,
/*73351*/         OPC_MorphNodeTo, TARGET_VAL(X86::ADD_Fp64m), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (fadd:f64 RFP64:f64:$src1, (ld:f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (ADD_Fp64m:f64 RFP64:f64:$src1, addr:iPTR:$src2)
                0, // EndSwitchType
/*73365*/     /*Scope*/ 73, /*->73439*/
/*73366*/       OPC_CheckPredicate, 37, // Predicate_extload
/*73368*/       OPC_Scope, 45, /*->73415*/ // 2 children in Scope
/*73370*/         OPC_CheckPredicate, 42, // Predicate_extloadf32
/*73372*/         OPC_MoveParent,
/*73373*/         OPC_SwitchType /*2 cases */, 19,  MVT::f64,// ->73395
/*73376*/           OPC_CheckPatternPredicate, 9, // (!Subtarget->hasXMMInt())
/*73378*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*73381*/           OPC_EmitMergeInputChains1_1,
/*73382*/           OPC_MorphNodeTo, TARGET_VAL(X86::ADD_Fp64m32), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (fadd:f64 RFP64:f64:$src1, (ld:f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadf32>>) - Complexity = 25
                    // Dst: (ADD_Fp64m32:f64 RFP64:f64:$src1, addr:iPTR:$src2)
                  /*SwitchType*/ 17,  MVT::f80,// ->73414
/*73397*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*73400*/           OPC_EmitMergeInputChains1_1,
/*73401*/           OPC_MorphNodeTo, TARGET_VAL(X86::ADD_Fp80m32), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::f80, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (fadd:f80 RFP80:f80:$src1, (ld:f80 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadf32>>) - Complexity = 25
                    // Dst: (ADD_Fp80m32:f80 RFP80:f80:$src1, addr:iPTR:$src2)
                  0, // EndSwitchType
/*73415*/       /*Scope*/ 22, /*->73438*/
/*73416*/         OPC_CheckPredicate, 43, // Predicate_extloadf64
/*73418*/         OPC_MoveParent,
/*73419*/         OPC_CheckType, MVT::f80,
/*73421*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*73424*/         OPC_EmitMergeInputChains1_1,
/*73425*/         OPC_MorphNodeTo, TARGET_VAL(X86::ADD_Fp80m64), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::f80, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (fadd:f80 RFP80:f80:$src1, (ld:f80 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadf64>>) - Complexity = 25
                  // Dst: (ADD_Fp80m64:f80 RFP80:f80:$src1, addr:iPTR:$src2)
/*73438*/       0, /*End of Scope*/
/*73439*/     0, /*End of Scope*/
/*73440*/   /*Scope*/ 10|128,1/*138*/, /*->73580*/
/*73442*/     OPC_MoveChild, 0,
/*73444*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*73447*/     OPC_RecordMemRef,
/*73448*/     OPC_RecordNode, // #0 = 'ld' chained node
/*73449*/     OPC_CheckFoldableChainNode,
/*73450*/     OPC_RecordChild1, // #1 = $src2
/*73451*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*73453*/     OPC_Scope, 48, /*->73503*/ // 2 children in Scope
/*73455*/       OPC_CheckPredicate, 3, // Predicate_load
/*73457*/       OPC_MoveParent,
/*73458*/       OPC_RecordChild1, // #2 = $src1
/*73459*/       OPC_SwitchType /*2 cases */, 19,  MVT::f32,// ->73481
/*73462*/         OPC_CheckPatternPredicate, 8, // (!Subtarget->hasXMM())
/*73464*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*73467*/         OPC_EmitMergeInputChains1_0,
/*73468*/         OPC_MorphNodeTo, TARGET_VAL(X86::ADD_Fp32m), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (fadd:f32 (ld:f32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, RFP32:f32:$src1) - Complexity = 25
                  // Dst: (ADD_Fp32m:f32 RFP32:f32:$src1, addr:iPTR:$src2)
                /*SwitchType*/ 19,  MVT::f64,// ->73502
/*73483*/         OPC_CheckPatternPredicate, 9, // (!Subtarget->hasXMMInt())
/*73485*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*73488*/         OPC_EmitMergeInputChains1_0,
/*73489*/         OPC_MorphNodeTo, TARGET_VAL(X86::ADD_Fp64m), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (fadd:f64 (ld:f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, RFP64:f64:$src1) - Complexity = 25
                  // Dst: (ADD_Fp64m:f64 RFP64:f64:$src1, addr:iPTR:$src2)
                0, // EndSwitchType
/*73503*/     /*Scope*/ 75, /*->73579*/
/*73504*/       OPC_CheckPredicate, 37, // Predicate_extload
/*73506*/       OPC_Scope, 46, /*->73554*/ // 2 children in Scope
/*73508*/         OPC_CheckPredicate, 42, // Predicate_extloadf32
/*73510*/         OPC_MoveParent,
/*73511*/         OPC_RecordChild1, // #2 = $src1
/*73512*/         OPC_SwitchType /*2 cases */, 19,  MVT::f64,// ->73534
/*73515*/           OPC_CheckPatternPredicate, 9, // (!Subtarget->hasXMMInt())
/*73517*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*73520*/           OPC_EmitMergeInputChains1_0,
/*73521*/           OPC_MorphNodeTo, TARGET_VAL(X86::ADD_Fp64m32), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (fadd:f64 (ld:f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadf32>>, RFP64:f64:$src1) - Complexity = 25
                    // Dst: (ADD_Fp64m32:f64 RFP64:f64:$src1, addr:iPTR:$src2)
                  /*SwitchType*/ 17,  MVT::f80,// ->73553
/*73536*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*73539*/           OPC_EmitMergeInputChains1_0,
/*73540*/           OPC_MorphNodeTo, TARGET_VAL(X86::ADD_Fp80m32), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::f80, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (fadd:f80 (ld:f80 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadf32>>, RFP80:f80:$src1) - Complexity = 25
                    // Dst: (ADD_Fp80m32:f80 RFP80:f80:$src1, addr:iPTR:$src2)
                  0, // EndSwitchType
/*73554*/       /*Scope*/ 23, /*->73578*/
/*73555*/         OPC_CheckPredicate, 43, // Predicate_extloadf64
/*73557*/         OPC_MoveParent,
/*73558*/         OPC_RecordChild1, // #2 = $src1
/*73559*/         OPC_CheckType, MVT::f80,
/*73561*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*73564*/         OPC_EmitMergeInputChains1_0,
/*73565*/         OPC_MorphNodeTo, TARGET_VAL(X86::ADD_Fp80m64), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::f80, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (fadd:f80 (ld:f80 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadf64>>, RFP80:f80:$src1) - Complexity = 25
                  // Dst: (ADD_Fp80m64:f80 RFP80:f80:$src1, addr:iPTR:$src2)
/*73578*/       0, /*End of Scope*/
/*73579*/     0, /*End of Scope*/
/*73580*/   /*Scope*/ 105, /*->73686*/
/*73581*/     OPC_RecordChild0, // #0 = $src1
/*73582*/     OPC_MoveChild, 1,
/*73584*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*73587*/     OPC_RecordMemRef,
/*73588*/     OPC_RecordNode, // #1 = 'ld' chained node
/*73589*/     OPC_CheckFoldableChainNode,
/*73590*/     OPC_RecordChild1, // #2 = $src2
/*73591*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*73593*/     OPC_CheckPredicate, 3, // Predicate_load
/*73595*/     OPC_MoveParent,
/*73596*/     OPC_SwitchType /*2 cases */, 42,  MVT::f32,// ->73641
/*73599*/       OPC_Scope, 19, /*->73620*/ // 2 children in Scope
/*73601*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*73603*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*73606*/         OPC_EmitMergeInputChains1_1,
/*73607*/         OPC_MorphNodeTo, TARGET_VAL(X86::VADDSSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (fadd:f32 FR32:f32:$src1, (ld:f32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (VADDSSrm:f32 FR32:f32:$src1, addr:iPTR:$src2)
/*73620*/       /*Scope*/ 19, /*->73640*/
/*73621*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*73623*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*73626*/         OPC_EmitMergeInputChains1_1,
/*73627*/         OPC_MorphNodeTo, TARGET_VAL(X86::ADDSSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (fadd:f32 FR32:f32:$src1, (ld:f32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (ADDSSrm:f32 FR32:f32:$src1, addr:iPTR:$src2)
/*73640*/       0, /*End of Scope*/
              /*SwitchType*/ 42,  MVT::f64,// ->73685
/*73643*/       OPC_Scope, 19, /*->73664*/ // 2 children in Scope
/*73645*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*73647*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*73650*/         OPC_EmitMergeInputChains1_1,
/*73651*/         OPC_MorphNodeTo, TARGET_VAL(X86::VADDSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (fadd:f64 FR64:f64:$src1, (ld:f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (VADDSDrm:f64 FR64:f64:$src1, addr:iPTR:$src2)
/*73664*/       /*Scope*/ 19, /*->73684*/
/*73665*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*73667*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*73670*/         OPC_EmitMergeInputChains1_1,
/*73671*/         OPC_MorphNodeTo, TARGET_VAL(X86::ADDSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (fadd:f64 FR64:f64:$src1, (ld:f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (ADDSDrm:f64 FR64:f64:$src1, addr:iPTR:$src2)
/*73684*/       0, /*End of Scope*/
              0, // EndSwitchType
/*73686*/   /*Scope*/ 105, /*->73792*/
/*73687*/     OPC_MoveChild, 0,
/*73689*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*73692*/     OPC_RecordMemRef,
/*73693*/     OPC_RecordNode, // #0 = 'ld' chained node
/*73694*/     OPC_CheckFoldableChainNode,
/*73695*/     OPC_RecordChild1, // #1 = $src2
/*73696*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*73698*/     OPC_CheckPredicate, 3, // Predicate_load
/*73700*/     OPC_MoveParent,
/*73701*/     OPC_RecordChild1, // #2 = $src1
/*73702*/     OPC_SwitchType /*2 cases */, 42,  MVT::f32,// ->73747
/*73705*/       OPC_Scope, 19, /*->73726*/ // 2 children in Scope
/*73707*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*73709*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*73712*/         OPC_EmitMergeInputChains1_0,
/*73713*/         OPC_MorphNodeTo, TARGET_VAL(X86::VADDSSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (fadd:f32 (ld:f32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR32:f32:$src1) - Complexity = 25
                  // Dst: (VADDSSrm:f32 FR32:f32:$src1, addr:iPTR:$src2)
/*73726*/       /*Scope*/ 19, /*->73746*/
/*73727*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*73729*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*73732*/         OPC_EmitMergeInputChains1_0,
/*73733*/         OPC_MorphNodeTo, TARGET_VAL(X86::ADDSSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (fadd:f32 (ld:f32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR32:f32:$src1) - Complexity = 25
                  // Dst: (ADDSSrm:f32 FR32:f32:$src1, addr:iPTR:$src2)
/*73746*/       0, /*End of Scope*/
              /*SwitchType*/ 42,  MVT::f64,// ->73791
/*73749*/       OPC_Scope, 19, /*->73770*/ // 2 children in Scope
/*73751*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*73753*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*73756*/         OPC_EmitMergeInputChains1_0,
/*73757*/         OPC_MorphNodeTo, TARGET_VAL(X86::VADDSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (fadd:f64 (ld:f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR64:f64:$src1) - Complexity = 25
                  // Dst: (VADDSDrm:f64 FR64:f64:$src1, addr:iPTR:$src2)
/*73770*/       /*Scope*/ 19, /*->73790*/
/*73771*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*73773*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*73776*/         OPC_EmitMergeInputChains1_0,
/*73777*/         OPC_MorphNodeTo, TARGET_VAL(X86::ADDSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (fadd:f64 (ld:f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR64:f64:$src1) - Complexity = 25
                  // Dst: (ADDSDrm:f64 FR64:f64:$src1, addr:iPTR:$src2)
/*73790*/       0, /*End of Scope*/
              0, // EndSwitchType
/*73792*/   /*Scope*/ 22|128,1/*150*/, /*->73944*/
/*73794*/     OPC_RecordChild0, // #0 = $src1
/*73795*/     OPC_MoveChild, 1,
/*73797*/     OPC_CheckOpcode, TARGET_VAL(X86ISD::FILD),
/*73800*/     OPC_RecordMemRef,
/*73801*/     OPC_RecordNode, // #1 = 'X86fild' chained node
/*73802*/     OPC_CheckFoldableChainNode,
/*73803*/     OPC_RecordChild1, // #2 = $src2
/*73804*/     OPC_MoveChild, 2,
/*73806*/     OPC_Scope, 67, /*->73875*/ // 2 children in Scope
/*73808*/       OPC_CheckValueType, MVT::i16,
/*73810*/       OPC_MoveParent,
/*73811*/       OPC_MoveParent,
/*73812*/       OPC_SwitchType /*3 cases */, 19,  MVT::f32,// ->73834
/*73815*/         OPC_CheckPatternPredicate, 8, // (!Subtarget->hasXMM())
/*73817*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*73820*/         OPC_EmitMergeInputChains1_1,
/*73821*/         OPC_MorphNodeTo, TARGET_VAL(X86::ADD_FpI16m32), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (fadd:f32 RFP32:f32:$src1, (X86fild:f32 addr:iPTR:$src2, i16:Other)) - Complexity = 24
                  // Dst: (ADD_FpI16m32:f32 RFP32:f32:$src1, addr:iPTR:$src2)
                /*SwitchType*/ 19,  MVT::f64,// ->73855
/*73836*/         OPC_CheckPatternPredicate, 9, // (!Subtarget->hasXMMInt())
/*73838*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*73841*/         OPC_EmitMergeInputChains1_1,
/*73842*/         OPC_MorphNodeTo, TARGET_VAL(X86::ADD_FpI16m64), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (fadd:f64 RFP64:f64:$src1, (X86fild:f64 addr:iPTR:$src2, i16:Other)) - Complexity = 24
                  // Dst: (ADD_FpI16m64:f64 RFP64:f64:$src1, addr:iPTR:$src2)
                /*SwitchType*/ 17,  MVT::f80,// ->73874
/*73857*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*73860*/         OPC_EmitMergeInputChains1_1,
/*73861*/         OPC_MorphNodeTo, TARGET_VAL(X86::ADD_FpI16m80), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::f80, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (fadd:f80 RFP80:f80:$src1, (X86fild:f80 addr:iPTR:$src2, i16:Other)) - Complexity = 24
                  // Dst: (ADD_FpI16m80:f80 RFP80:f80:$src1, addr:iPTR:$src2)
                0, // EndSwitchType
/*73875*/     /*Scope*/ 67, /*->73943*/
/*73876*/       OPC_CheckValueType, MVT::i32,
/*73878*/       OPC_MoveParent,
/*73879*/       OPC_MoveParent,
/*73880*/       OPC_SwitchType /*3 cases */, 19,  MVT::f32,// ->73902
/*73883*/         OPC_CheckPatternPredicate, 8, // (!Subtarget->hasXMM())
/*73885*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*73888*/         OPC_EmitMergeInputChains1_1,
/*73889*/         OPC_MorphNodeTo, TARGET_VAL(X86::ADD_FpI32m32), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (fadd:f32 RFP32:f32:$src1, (X86fild:f32 addr:iPTR:$src2, i32:Other)) - Complexity = 24
                  // Dst: (ADD_FpI32m32:f32 RFP32:f32:$src1, addr:iPTR:$src2)
                /*SwitchType*/ 19,  MVT::f64,// ->73923
/*73904*/         OPC_CheckPatternPredicate, 9, // (!Subtarget->hasXMMInt())
/*73906*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*73909*/         OPC_EmitMergeInputChains1_1,
/*73910*/         OPC_MorphNodeTo, TARGET_VAL(X86::ADD_FpI32m64), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (fadd:f64 RFP64:f64:$src1, (X86fild:f64 addr:iPTR:$src2, i32:Other)) - Complexity = 24
                  // Dst: (ADD_FpI32m64:f64 RFP64:f64:$src1, addr:iPTR:$src2)
                /*SwitchType*/ 17,  MVT::f80,// ->73942
/*73925*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*73928*/         OPC_EmitMergeInputChains1_1,
/*73929*/         OPC_MorphNodeTo, TARGET_VAL(X86::ADD_FpI32m80), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::f80, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (fadd:f80 RFP80:f80:$src1, (X86fild:f80 addr:iPTR:$src2, i32:Other)) - Complexity = 24
                  // Dst: (ADD_FpI32m80:f80 RFP80:f80:$src1, addr:iPTR:$src2)
                0, // EndSwitchType
/*73943*/     0, /*End of Scope*/
/*73944*/   /*Scope*/ 23|128,1/*151*/, /*->74097*/
/*73946*/     OPC_MoveChild, 0,
/*73948*/     OPC_CheckOpcode, TARGET_VAL(X86ISD::FILD),
/*73951*/     OPC_RecordMemRef,
/*73952*/     OPC_RecordNode, // #0 = 'X86fild' chained node
/*73953*/     OPC_CheckFoldableChainNode,
/*73954*/     OPC_RecordChild1, // #1 = $src2
/*73955*/     OPC_MoveChild, 2,
/*73957*/     OPC_Scope, 68, /*->74027*/ // 2 children in Scope
/*73959*/       OPC_CheckValueType, MVT::i16,
/*73961*/       OPC_MoveParent,
/*73962*/       OPC_MoveParent,
/*73963*/       OPC_RecordChild1, // #2 = $src1
/*73964*/       OPC_SwitchType /*3 cases */, 19,  MVT::f32,// ->73986
/*73967*/         OPC_CheckPatternPredicate, 8, // (!Subtarget->hasXMM())
/*73969*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*73972*/         OPC_EmitMergeInputChains1_0,
/*73973*/         OPC_MorphNodeTo, TARGET_VAL(X86::ADD_FpI16m32), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (fadd:f32 (X86fild:f32 addr:iPTR:$src2, i16:Other), RFP32:f32:$src1) - Complexity = 24
                  // Dst: (ADD_FpI16m32:f32 RFP32:f32:$src1, addr:iPTR:$src2)
                /*SwitchType*/ 19,  MVT::f64,// ->74007
/*73988*/         OPC_CheckPatternPredicate, 9, // (!Subtarget->hasXMMInt())
/*73990*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*73993*/         OPC_EmitMergeInputChains1_0,
/*73994*/         OPC_MorphNodeTo, TARGET_VAL(X86::ADD_FpI16m64), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (fadd:f64 (X86fild:f64 addr:iPTR:$src2, i16:Other), RFP64:f64:$src1) - Complexity = 24
                  // Dst: (ADD_FpI16m64:f64 RFP64:f64:$src1, addr:iPTR:$src2)
                /*SwitchType*/ 17,  MVT::f80,// ->74026
/*74009*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*74012*/         OPC_EmitMergeInputChains1_0,
/*74013*/         OPC_MorphNodeTo, TARGET_VAL(X86::ADD_FpI16m80), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::f80, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (fadd:f80 (X86fild:f80 addr:iPTR:$src2, i16:Other), RFP80:f80:$src1) - Complexity = 24
                  // Dst: (ADD_FpI16m80:f80 RFP80:f80:$src1, addr:iPTR:$src2)
                0, // EndSwitchType
/*74027*/     /*Scope*/ 68, /*->74096*/
/*74028*/       OPC_CheckValueType, MVT::i32,
/*74030*/       OPC_MoveParent,
/*74031*/       OPC_MoveParent,
/*74032*/       OPC_RecordChild1, // #2 = $src1
/*74033*/       OPC_SwitchType /*3 cases */, 19,  MVT::f32,// ->74055
/*74036*/         OPC_CheckPatternPredicate, 8, // (!Subtarget->hasXMM())
/*74038*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*74041*/         OPC_EmitMergeInputChains1_0,
/*74042*/         OPC_MorphNodeTo, TARGET_VAL(X86::ADD_FpI32m32), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (fadd:f32 (X86fild:f32 addr:iPTR:$src2, i32:Other), RFP32:f32:$src1) - Complexity = 24
                  // Dst: (ADD_FpI32m32:f32 RFP32:f32:$src1, addr:iPTR:$src2)
                /*SwitchType*/ 19,  MVT::f64,// ->74076
/*74057*/         OPC_CheckPatternPredicate, 9, // (!Subtarget->hasXMMInt())
/*74059*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*74062*/         OPC_EmitMergeInputChains1_0,
/*74063*/         OPC_MorphNodeTo, TARGET_VAL(X86::ADD_FpI32m64), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (fadd:f64 (X86fild:f64 addr:iPTR:$src2, i32:Other), RFP64:f64:$src1) - Complexity = 24
                  // Dst: (ADD_FpI32m64:f64 RFP64:f64:$src1, addr:iPTR:$src2)
                /*SwitchType*/ 17,  MVT::f80,// ->74095
/*74078*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*74081*/         OPC_EmitMergeInputChains1_0,
/*74082*/         OPC_MorphNodeTo, TARGET_VAL(X86::ADD_FpI32m80), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::f80, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (fadd:f80 (X86fild:f80 addr:iPTR:$src2, i32:Other), RFP80:f80:$src1) - Complexity = 24
                  // Dst: (ADD_FpI32m80:f80 RFP80:f80:$src1, addr:iPTR:$src2)
                0, // EndSwitchType
/*74096*/     0, /*End of Scope*/
/*74097*/   /*Scope*/ 120|128,1/*248*/, /*->74347*/
/*74099*/     OPC_RecordChild0, // #0 = $src1
/*74100*/     OPC_Scope, 94, /*->74196*/ // 2 children in Scope
/*74102*/       OPC_RecordChild1, // #1 = $src2
/*74103*/       OPC_SwitchType /*3 cases */, 38,  MVT::f32,// ->74144
/*74106*/         OPC_Scope, 11, /*->74119*/ // 3 children in Scope
/*74108*/           OPC_CheckPatternPredicate, 8, // (!Subtarget->hasXMM())
/*74110*/           OPC_MorphNodeTo, TARGET_VAL(X86::ADD_Fp32), 0,
                        1/*#VTs*/, MVT::f32, 2/*#Ops*/, 0, 1, 
                    // Src: (fadd:f32 RFP32:f32:$src1, RFP32:f32:$src2) - Complexity = 3
                    // Dst: (ADD_Fp32:f32 RFP32:f32:$src1, RFP32:f32:$src2)
/*74119*/         /*Scope*/ 11, /*->74131*/
/*74120*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*74122*/           OPC_MorphNodeTo, TARGET_VAL(X86::VADDSSrr), 0,
                        1/*#VTs*/, MVT::f32, 2/*#Ops*/, 0, 1, 
                    // Src: (fadd:f32 FR32:f32:$src1, FR32:f32:$src2) - Complexity = 3
                    // Dst: (VADDSSrr:f32 FR32:f32:$src1, FR32:f32:$src2)
/*74131*/         /*Scope*/ 11, /*->74143*/
/*74132*/           OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*74134*/           OPC_MorphNodeTo, TARGET_VAL(X86::ADDSSrr), 0,
                        1/*#VTs*/, MVT::f32, 2/*#Ops*/, 0, 1, 
                    // Src: (fadd:f32 FR32:f32:$src1, FR32:f32:$src2) - Complexity = 3
                    // Dst: (ADDSSrr:f32 FR32:f32:$src1, FR32:f32:$src2)
/*74143*/         0, /*End of Scope*/
                /*SwitchType*/ 38,  MVT::f64,// ->74184
/*74146*/         OPC_Scope, 11, /*->74159*/ // 3 children in Scope
/*74148*/           OPC_CheckPatternPredicate, 9, // (!Subtarget->hasXMMInt())
/*74150*/           OPC_MorphNodeTo, TARGET_VAL(X86::ADD_Fp64), 0,
                        1/*#VTs*/, MVT::f64, 2/*#Ops*/, 0, 1, 
                    // Src: (fadd:f64 RFP64:f64:$src1, RFP64:f64:$src2) - Complexity = 3
                    // Dst: (ADD_Fp64:f64 RFP64:f64:$src1, RFP64:f64:$src2)
/*74159*/         /*Scope*/ 11, /*->74171*/
/*74160*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*74162*/           OPC_MorphNodeTo, TARGET_VAL(X86::VADDSDrr), 0,
                        1/*#VTs*/, MVT::f64, 2/*#Ops*/, 0, 1, 
                    // Src: (fadd:f64 FR64:f64:$src1, FR64:f64:$src2) - Complexity = 3
                    // Dst: (VADDSDrr:f64 FR64:f64:$src1, FR64:f64:$src2)
/*74171*/         /*Scope*/ 11, /*->74183*/
/*74172*/           OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*74174*/           OPC_MorphNodeTo, TARGET_VAL(X86::ADDSDrr), 0,
                        1/*#VTs*/, MVT::f64, 2/*#Ops*/, 0, 1, 
                    // Src: (fadd:f64 FR64:f64:$src1, FR64:f64:$src2) - Complexity = 3
                    // Dst: (ADDSDrr:f64 FR64:f64:$src1, FR64:f64:$src2)
/*74183*/         0, /*End of Scope*/
                /*SwitchType*/ 9,  MVT::f80,// ->74195
/*74186*/         OPC_MorphNodeTo, TARGET_VAL(X86::ADD_Fp80), 0,
                      1/*#VTs*/, MVT::f80, 2/*#Ops*/, 0, 1, 
                  // Src: (fadd:f80 RFP80:f80:$src1, RFP80:f80:$src2) - Complexity = 3
                  // Dst: (ADD_Fp80:f80 RFP80:f80:$src1, RFP80:f80:$src2)
                0, // EndSwitchType
/*74196*/     /*Scope*/ 20|128,1/*148*/, /*->74346*/
/*74198*/       OPC_MoveChild, 1,
/*74200*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*74203*/       OPC_RecordMemRef,
/*74204*/       OPC_RecordNode, // #1 = 'ld' chained node
/*74205*/       OPC_CheckFoldableChainNode,
/*74206*/       OPC_RecordChild1, // #2 = $src2
/*74207*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*74209*/       OPC_CheckPredicate, 3, // Predicate_load
/*74211*/       OPC_CheckPredicate, 23, // Predicate_memop
/*74213*/       OPC_MoveParent,
/*74214*/       OPC_SwitchType /*4 cases */, 42,  MVT::v4f32,// ->74259
/*74217*/         OPC_Scope, 19, /*->74238*/ // 2 children in Scope
/*74219*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*74221*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*74224*/           OPC_EmitMergeInputChains1_1,
/*74225*/           OPC_MorphNodeTo, TARGET_VAL(X86::VADDPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (fadd:v4f32 VR128:v4f32:$src1, (ld:v4f32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                    // Dst: (VADDPSrm:v4f32 VR128:v4f32:$src1, addr:iPTR:$src2)
/*74238*/         /*Scope*/ 19, /*->74258*/
/*74239*/           OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*74241*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*74244*/           OPC_EmitMergeInputChains1_1,
/*74245*/           OPC_MorphNodeTo, TARGET_VAL(X86::ADDPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (fadd:v4f32 VR128:v4f32:$src1, (ld:v4f32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                    // Dst: (ADDPSrm:v4f32 VR128:v4f32:$src1, addr:iPTR:$src2)
/*74258*/         0, /*End of Scope*/
                /*SwitchType*/ 42,  MVT::v2f64,// ->74303
/*74261*/         OPC_Scope, 19, /*->74282*/ // 2 children in Scope
/*74263*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*74265*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*74268*/           OPC_EmitMergeInputChains1_1,
/*74269*/           OPC_MorphNodeTo, TARGET_VAL(X86::VADDPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (fadd:v2f64 VR128:v2f64:$src1, (ld:v2f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                    // Dst: (VADDPDrm:v2f64 VR128:v2f64:$src1, addr:iPTR:$src2)
/*74282*/         /*Scope*/ 19, /*->74302*/
/*74283*/           OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*74285*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*74288*/           OPC_EmitMergeInputChains1_1,
/*74289*/           OPC_MorphNodeTo, TARGET_VAL(X86::ADDPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (fadd:v2f64 VR128:v2f64:$src1, (ld:v2f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                    // Dst: (ADDPDrm:v2f64 VR128:v2f64:$src1, addr:iPTR:$src2)
/*74302*/         0, /*End of Scope*/
                /*SwitchType*/ 19,  MVT::v8f32,// ->74324
/*74305*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*74307*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*74310*/         OPC_EmitMergeInputChains1_1,
/*74311*/         OPC_MorphNodeTo, TARGET_VAL(X86::VADDPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v8f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (fadd:v8f32 VR256:v8f32:$src1, (ld:v8f32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                  // Dst: (VADDPSYrm:v8f32 VR256:v8f32:$src1, addr:iPTR:$src2)
                /*SwitchType*/ 19,  MVT::v4f64,// ->74345
/*74326*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*74328*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*74331*/         OPC_EmitMergeInputChains1_1,
/*74332*/         OPC_MorphNodeTo, TARGET_VAL(X86::VADDPDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (fadd:v4f64 VR256:v4f64:$src1, (ld:v4f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                  // Dst: (VADDPDYrm:v4f64 VR256:v4f64:$src1, addr:iPTR:$src2)
                0, // EndSwitchType
/*74346*/     0, /*End of Scope*/
/*74347*/   /*Scope*/ 21|128,1/*149*/, /*->74498*/
/*74349*/     OPC_MoveChild, 0,
/*74351*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*74354*/     OPC_RecordMemRef,
/*74355*/     OPC_RecordNode, // #0 = 'ld' chained node
/*74356*/     OPC_CheckFoldableChainNode,
/*74357*/     OPC_RecordChild1, // #1 = $src2
/*74358*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*74360*/     OPC_CheckPredicate, 3, // Predicate_load
/*74362*/     OPC_CheckPredicate, 23, // Predicate_memop
/*74364*/     OPC_MoveParent,
/*74365*/     OPC_RecordChild1, // #2 = $src1
/*74366*/     OPC_SwitchType /*4 cases */, 42,  MVT::v4f32,// ->74411
/*74369*/       OPC_Scope, 19, /*->74390*/ // 2 children in Scope
/*74371*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*74373*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*74376*/         OPC_EmitMergeInputChains1_0,
/*74377*/         OPC_MorphNodeTo, TARGET_VAL(X86::VADDPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (fadd:v4f32 (ld:v4f32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, VR128:v4f32:$src1) - Complexity = 25
                  // Dst: (VADDPSrm:v4f32 VR128:v4f32:$src1, addr:iPTR:$src2)
/*74390*/       /*Scope*/ 19, /*->74410*/
/*74391*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*74393*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*74396*/         OPC_EmitMergeInputChains1_0,
/*74397*/         OPC_MorphNodeTo, TARGET_VAL(X86::ADDPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (fadd:v4f32 (ld:v4f32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, VR128:v4f32:$src1) - Complexity = 25
                  // Dst: (ADDPSrm:v4f32 VR128:v4f32:$src1, addr:iPTR:$src2)
/*74410*/       0, /*End of Scope*/
              /*SwitchType*/ 42,  MVT::v2f64,// ->74455
/*74413*/       OPC_Scope, 19, /*->74434*/ // 2 children in Scope
/*74415*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*74417*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*74420*/         OPC_EmitMergeInputChains1_0,
/*74421*/         OPC_MorphNodeTo, TARGET_VAL(X86::VADDPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v2f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (fadd:v2f64 (ld:v2f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, VR128:v2f64:$src1) - Complexity = 25
                  // Dst: (VADDPDrm:v2f64 VR128:v2f64:$src1, addr:iPTR:$src2)
/*74434*/       /*Scope*/ 19, /*->74454*/
/*74435*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*74437*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*74440*/         OPC_EmitMergeInputChains1_0,
/*74441*/         OPC_MorphNodeTo, TARGET_VAL(X86::ADDPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v2f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (fadd:v2f64 (ld:v2f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, VR128:v2f64:$src1) - Complexity = 25
                  // Dst: (ADDPDrm:v2f64 VR128:v2f64:$src1, addr:iPTR:$src2)
/*74454*/       0, /*End of Scope*/
              /*SwitchType*/ 19,  MVT::v8f32,// ->74476
/*74457*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*74459*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*74462*/       OPC_EmitMergeInputChains1_0,
/*74463*/       OPC_MorphNodeTo, TARGET_VAL(X86::VADDPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v8f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                // Src: (fadd:v8f32 (ld:v8f32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, VR256:v8f32:$src1) - Complexity = 25
                // Dst: (VADDPSYrm:v8f32 VR256:v8f32:$src1, addr:iPTR:$src2)
              /*SwitchType*/ 19,  MVT::v4f64,// ->74497
/*74478*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*74480*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*74483*/       OPC_EmitMergeInputChains1_0,
/*74484*/       OPC_MorphNodeTo, TARGET_VAL(X86::VADDPDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v4f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                // Src: (fadd:v4f64 (ld:v4f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, VR256:v4f64:$src1) - Complexity = 25
                // Dst: (VADDPDYrm:v4f64 VR256:v4f64:$src1, addr:iPTR:$src2)
              0, // EndSwitchType
/*74498*/   /*Scope*/ 86, /*->74585*/
/*74499*/     OPC_RecordChild0, // #0 = $src1
/*74500*/     OPC_RecordChild1, // #1 = $src2
/*74501*/     OPC_SwitchType /*4 cases */, 26,  MVT::v4f32,// ->74530
/*74504*/       OPC_Scope, 11, /*->74517*/ // 2 children in Scope
/*74506*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*74508*/         OPC_MorphNodeTo, TARGET_VAL(X86::VADDPSrr), 0,
                      1/*#VTs*/, MVT::v4f32, 2/*#Ops*/, 0, 1, 
                  // Src: (fadd:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src2) - Complexity = 3
                  // Dst: (VADDPSrr:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src2)
/*74517*/       /*Scope*/ 11, /*->74529*/
/*74518*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*74520*/         OPC_MorphNodeTo, TARGET_VAL(X86::ADDPSrr), 0,
                      1/*#VTs*/, MVT::v4f32, 2/*#Ops*/, 0, 1, 
                  // Src: (fadd:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src2) - Complexity = 3
                  // Dst: (ADDPSrr:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src2)
/*74529*/       0, /*End of Scope*/
              /*SwitchType*/ 26,  MVT::v2f64,// ->74558
/*74532*/       OPC_Scope, 11, /*->74545*/ // 2 children in Scope
/*74534*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*74536*/         OPC_MorphNodeTo, TARGET_VAL(X86::VADDPDrr), 0,
                      1/*#VTs*/, MVT::v2f64, 2/*#Ops*/, 0, 1, 
                  // Src: (fadd:v2f64 VR128:v2f64:$src1, VR128:v2f64:$src2) - Complexity = 3
                  // Dst: (VADDPDrr:v2f64 VR128:v2f64:$src1, VR128:v2f64:$src2)
/*74545*/       /*Scope*/ 11, /*->74557*/
/*74546*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*74548*/         OPC_MorphNodeTo, TARGET_VAL(X86::ADDPDrr), 0,
                      1/*#VTs*/, MVT::v2f64, 2/*#Ops*/, 0, 1, 
                  // Src: (fadd:v2f64 VR128:v2f64:$src1, VR128:v2f64:$src2) - Complexity = 3
                  // Dst: (ADDPDrr:v2f64 VR128:v2f64:$src1, VR128:v2f64:$src2)
/*74557*/       0, /*End of Scope*/
              /*SwitchType*/ 11,  MVT::v8f32,// ->74571
/*74560*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*74562*/       OPC_MorphNodeTo, TARGET_VAL(X86::VADDPSYrr), 0,
                    1/*#VTs*/, MVT::v8f32, 2/*#Ops*/, 0, 1, 
                // Src: (fadd:v8f32 VR256:v8f32:$src1, VR256:v8f32:$src2) - Complexity = 3
                // Dst: (VADDPSYrr:v8f32 VR256:v8f32:$src1, VR256:v8f32:$src2)
              /*SwitchType*/ 11,  MVT::v4f64,// ->74584
/*74573*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*74575*/       OPC_MorphNodeTo, TARGET_VAL(X86::VADDPDYrr), 0,
                    1/*#VTs*/, MVT::v4f64, 2/*#Ops*/, 0, 1, 
                // Src: (fadd:v4f64 VR256:v4f64:$src1, VR256:v4f64:$src2) - Complexity = 3
                // Dst: (VADDPDYrr:v4f64 VR256:v4f64:$src1, VR256:v4f64:$src2)
              0, // EndSwitchType
/*74585*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 44|128,7/*940*/,  TARGET_VAL(ISD::FSUB),// ->75530
/*74590*/   OPC_RecordChild0, // #0 = $src1
/*74591*/   OPC_Scope, 92|128,4/*604*/, /*->75198*/ // 4 children in Scope
/*74594*/     OPC_MoveChild, 1,
/*74596*/     OPC_SwitchOpcode /*2 cases */, 90|128,2/*346*/,  TARGET_VAL(ISD::LOAD),// ->74947
/*74601*/       OPC_RecordMemRef,
/*74602*/       OPC_RecordNode, // #1 = 'ld' chained node
/*74603*/       OPC_CheckFoldableChainNode,
/*74604*/       OPC_RecordChild1, // #2 = $src2
/*74605*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*74607*/       OPC_Scope, 47, /*->74656*/ // 5 children in Scope
/*74609*/         OPC_CheckPredicate, 3, // Predicate_load
/*74611*/         OPC_MoveParent,
/*74612*/         OPC_SwitchType /*2 cases */, 19,  MVT::f32,// ->74634
/*74615*/           OPC_CheckPatternPredicate, 8, // (!Subtarget->hasXMM())
/*74617*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*74620*/           OPC_EmitMergeInputChains1_1,
/*74621*/           OPC_MorphNodeTo, TARGET_VAL(X86::SUB_Fp32m), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (fsub:f32 RFP32:f32:$src1, (ld:f32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (SUB_Fp32m:f32 RFP32:f32:$src1, addr:iPTR:$src2)
                  /*SwitchType*/ 19,  MVT::f64,// ->74655
/*74636*/           OPC_CheckPatternPredicate, 9, // (!Subtarget->hasXMMInt())
/*74638*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*74641*/           OPC_EmitMergeInputChains1_1,
/*74642*/           OPC_MorphNodeTo, TARGET_VAL(X86::SUB_Fp64m), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (fsub:f64 RFP64:f64:$src1, (ld:f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (SUB_Fp64m:f64 RFP64:f64:$src1, addr:iPTR:$src2)
                  0, // EndSwitchType
/*74656*/       /*Scope*/ 73, /*->74730*/
/*74657*/         OPC_CheckPredicate, 37, // Predicate_extload
/*74659*/         OPC_Scope, 45, /*->74706*/ // 2 children in Scope
/*74661*/           OPC_CheckPredicate, 42, // Predicate_extloadf32
/*74663*/           OPC_MoveParent,
/*74664*/           OPC_SwitchType /*2 cases */, 19,  MVT::f64,// ->74686
/*74667*/             OPC_CheckPatternPredicate, 9, // (!Subtarget->hasXMMInt())
/*74669*/             OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*74672*/             OPC_EmitMergeInputChains1_1,
/*74673*/             OPC_MorphNodeTo, TARGET_VAL(X86::SUB_Fp64m32), 0|OPFL_Chain|OPFL_MemRefs,
                          1/*#VTs*/, MVT::f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (fsub:f64 RFP64:f64:$src1, (ld:f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadf32>>) - Complexity = 25
                      // Dst: (SUB_Fp64m32:f64 RFP64:f64:$src1, addr:iPTR:$src2)
                    /*SwitchType*/ 17,  MVT::f80,// ->74705
/*74688*/             OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*74691*/             OPC_EmitMergeInputChains1_1,
/*74692*/             OPC_MorphNodeTo, TARGET_VAL(X86::SUB_Fp80m32), 0|OPFL_Chain|OPFL_MemRefs,
                          1/*#VTs*/, MVT::f80, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (fsub:f80 RFP80:f80:$src1, (ld:f80 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadf32>>) - Complexity = 25
                      // Dst: (SUB_Fp80m32:f80 RFP80:f80:$src1, addr:iPTR:$src2)
                    0, // EndSwitchType
/*74706*/         /*Scope*/ 22, /*->74729*/
/*74707*/           OPC_CheckPredicate, 43, // Predicate_extloadf64
/*74709*/           OPC_MoveParent,
/*74710*/           OPC_CheckType, MVT::f80,
/*74712*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*74715*/           OPC_EmitMergeInputChains1_1,
/*74716*/           OPC_MorphNodeTo, TARGET_VAL(X86::SUB_Fp80m64), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::f80, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (fsub:f80 RFP80:f80:$src1, (ld:f80 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadf64>>) - Complexity = 25
                    // Dst: (SUB_Fp80m64:f80 RFP80:f80:$src1, addr:iPTR:$src2)
/*74729*/         0, /*End of Scope*/
/*74730*/       /*Scope*/ 47, /*->74778*/
/*74731*/         OPC_CheckPredicate, 3, // Predicate_load
/*74733*/         OPC_MoveParent,
/*74734*/         OPC_SwitchType /*2 cases */, 19,  MVT::f32,// ->74756
/*74737*/           OPC_CheckPatternPredicate, 8, // (!Subtarget->hasXMM())
/*74739*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*74742*/           OPC_EmitMergeInputChains1_1,
/*74743*/           OPC_MorphNodeTo, TARGET_VAL(X86::SUBR_Fp32m), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (fsub:f32 RFP32:f32:$src1, (ld:f32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (SUBR_Fp32m:f32 RFP32:f32:$src1, addr:iPTR:$src2)
                  /*SwitchType*/ 19,  MVT::f64,// ->74777
/*74758*/           OPC_CheckPatternPredicate, 9, // (!Subtarget->hasXMMInt())
/*74760*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*74763*/           OPC_EmitMergeInputChains1_1,
/*74764*/           OPC_MorphNodeTo, TARGET_VAL(X86::SUBR_Fp64m), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (fsub:f64 RFP64:f64:$src1, (ld:f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (SUBR_Fp64m:f64 RFP64:f64:$src1, addr:iPTR:$src2)
                  0, // EndSwitchType
/*74778*/       /*Scope*/ 73, /*->74852*/
/*74779*/         OPC_CheckPredicate, 37, // Predicate_extload
/*74781*/         OPC_Scope, 45, /*->74828*/ // 2 children in Scope
/*74783*/           OPC_CheckPredicate, 42, // Predicate_extloadf32
/*74785*/           OPC_MoveParent,
/*74786*/           OPC_SwitchType /*2 cases */, 19,  MVT::f64,// ->74808
/*74789*/             OPC_CheckPatternPredicate, 9, // (!Subtarget->hasXMMInt())
/*74791*/             OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*74794*/             OPC_EmitMergeInputChains1_1,
/*74795*/             OPC_MorphNodeTo, TARGET_VAL(X86::SUBR_Fp64m32), 0|OPFL_Chain|OPFL_MemRefs,
                          1/*#VTs*/, MVT::f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (fsub:f64 RFP64:f64:$src1, (ld:f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadf32>>) - Complexity = 25
                      // Dst: (SUBR_Fp64m32:f64 RFP64:f64:$src1, addr:iPTR:$src2)
                    /*SwitchType*/ 17,  MVT::f80,// ->74827
/*74810*/             OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*74813*/             OPC_EmitMergeInputChains1_1,
/*74814*/             OPC_MorphNodeTo, TARGET_VAL(X86::SUBR_Fp80m32), 0|OPFL_Chain|OPFL_MemRefs,
                          1/*#VTs*/, MVT::f80, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (fsub:f80 RFP80:f80:$src1, (ld:f80 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadf32>>) - Complexity = 25
                      // Dst: (SUBR_Fp80m32:f80 RFP80:f80:$src1, addr:iPTR:$src2)
                    0, // EndSwitchType
/*74828*/         /*Scope*/ 22, /*->74851*/
/*74829*/           OPC_CheckPredicate, 43, // Predicate_extloadf64
/*74831*/           OPC_MoveParent,
/*74832*/           OPC_CheckType, MVT::f80,
/*74834*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*74837*/           OPC_EmitMergeInputChains1_1,
/*74838*/           OPC_MorphNodeTo, TARGET_VAL(X86::SUBR_Fp80m64), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::f80, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (fsub:f80 RFP80:f80:$src1, (ld:f80 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadf64>>) - Complexity = 25
                    // Dst: (SUBR_Fp80m64:f80 RFP80:f80:$src1, addr:iPTR:$src2)
/*74851*/         0, /*End of Scope*/
/*74852*/       /*Scope*/ 93, /*->74946*/
/*74853*/         OPC_CheckPredicate, 3, // Predicate_load
/*74855*/         OPC_MoveParent,
/*74856*/         OPC_SwitchType /*2 cases */, 42,  MVT::f32,// ->74901
/*74859*/           OPC_Scope, 19, /*->74880*/ // 2 children in Scope
/*74861*/             OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*74863*/             OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*74866*/             OPC_EmitMergeInputChains1_1,
/*74867*/             OPC_MorphNodeTo, TARGET_VAL(X86::VSUBSSrm), 0|OPFL_Chain|OPFL_MemRefs,
                          1/*#VTs*/, MVT::f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (fsub:f32 FR32:f32:$src1, (ld:f32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VSUBSSrm:f32 FR32:f32:$src1, addr:iPTR:$src2)
/*74880*/           /*Scope*/ 19, /*->74900*/
/*74881*/             OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*74883*/             OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*74886*/             OPC_EmitMergeInputChains1_1,
/*74887*/             OPC_MorphNodeTo, TARGET_VAL(X86::SUBSSrm), 0|OPFL_Chain|OPFL_MemRefs,
                          1/*#VTs*/, MVT::f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (fsub:f32 FR32:f32:$src1, (ld:f32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (SUBSSrm:f32 FR32:f32:$src1, addr:iPTR:$src2)
/*74900*/           0, /*End of Scope*/
                  /*SwitchType*/ 42,  MVT::f64,// ->74945
/*74903*/           OPC_Scope, 19, /*->74924*/ // 2 children in Scope
/*74905*/             OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*74907*/             OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*74910*/             OPC_EmitMergeInputChains1_1,
/*74911*/             OPC_MorphNodeTo, TARGET_VAL(X86::VSUBSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          1/*#VTs*/, MVT::f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (fsub:f64 FR64:f64:$src1, (ld:f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VSUBSDrm:f64 FR64:f64:$src1, addr:iPTR:$src2)
/*74924*/           /*Scope*/ 19, /*->74944*/
/*74925*/             OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*74927*/             OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*74930*/             OPC_EmitMergeInputChains1_1,
/*74931*/             OPC_MorphNodeTo, TARGET_VAL(X86::SUBSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          1/*#VTs*/, MVT::f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (fsub:f64 FR64:f64:$src1, (ld:f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (SUBSDrm:f64 FR64:f64:$src1, addr:iPTR:$src2)
/*74944*/           0, /*End of Scope*/
                  0, // EndSwitchType
/*74946*/       0, /*End of Scope*/
              /*SwitchOpcode*/ 118|128,1/*246*/,  TARGET_VAL(X86ISD::FILD),// ->75197
/*74951*/       OPC_RecordMemRef,
/*74952*/       OPC_RecordNode, // #1 = 'X86fild' chained node
/*74953*/       OPC_CheckFoldableChainNode,
/*74954*/       OPC_RecordChild1, // #2 = $src2
/*74955*/       OPC_MoveChild, 2,
/*74957*/       OPC_Scope, 118, /*->75077*/ // 2 children in Scope
/*74959*/         OPC_CheckValueType, MVT::i16,
/*74961*/         OPC_MoveParent,
/*74962*/         OPC_MoveParent,
/*74963*/         OPC_SwitchType /*3 cases */, 36,  MVT::f32,// ->75002
/*74966*/           OPC_CheckPatternPredicate, 8, // (!Subtarget->hasXMM())
/*74968*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*74971*/           OPC_EmitMergeInputChains1_1,
/*74972*/           OPC_Scope, 13, /*->74987*/ // 2 children in Scope
/*74974*/             OPC_MorphNodeTo, TARGET_VAL(X86::SUB_FpI16m32), 0|OPFL_Chain|OPFL_MemRefs,
                          1/*#VTs*/, MVT::f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (fsub:f32 RFP32:f32:$src1, (X86fild:f32 addr:iPTR:$src2, i16:Other)) - Complexity = 24
                      // Dst: (SUB_FpI16m32:f32 RFP32:f32:$src1, addr:iPTR:$src2)
/*74987*/           /*Scope*/ 13, /*->75001*/
/*74988*/             OPC_MorphNodeTo, TARGET_VAL(X86::SUBR_FpI16m32), 0|OPFL_Chain|OPFL_MemRefs,
                          1/*#VTs*/, MVT::f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (fsub:f32 RFP32:f32:$src1, (X86fild:f32 addr:iPTR:$src2, i16:Other)) - Complexity = 24
                      // Dst: (SUBR_FpI16m32:f32 RFP32:f32:$src1, addr:iPTR:$src2)
/*75001*/           0, /*End of Scope*/
                  /*SwitchType*/ 36,  MVT::f64,// ->75040
/*75004*/           OPC_CheckPatternPredicate, 9, // (!Subtarget->hasXMMInt())
/*75006*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*75009*/           OPC_EmitMergeInputChains1_1,
/*75010*/           OPC_Scope, 13, /*->75025*/ // 2 children in Scope
/*75012*/             OPC_MorphNodeTo, TARGET_VAL(X86::SUB_FpI16m64), 0|OPFL_Chain|OPFL_MemRefs,
                          1/*#VTs*/, MVT::f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (fsub:f64 RFP64:f64:$src1, (X86fild:f64 addr:iPTR:$src2, i16:Other)) - Complexity = 24
                      // Dst: (SUB_FpI16m64:f64 RFP64:f64:$src1, addr:iPTR:$src2)
/*75025*/           /*Scope*/ 13, /*->75039*/
/*75026*/             OPC_MorphNodeTo, TARGET_VAL(X86::SUBR_FpI16m64), 0|OPFL_Chain|OPFL_MemRefs,
                          1/*#VTs*/, MVT::f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (fsub:f64 RFP64:f64:$src1, (X86fild:f64 addr:iPTR:$src2, i16:Other)) - Complexity = 24
                      // Dst: (SUBR_FpI16m64:f64 RFP64:f64:$src1, addr:iPTR:$src2)
/*75039*/           0, /*End of Scope*/
                  /*SwitchType*/ 34,  MVT::f80,// ->75076
/*75042*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*75045*/           OPC_EmitMergeInputChains1_1,
/*75046*/           OPC_Scope, 13, /*->75061*/ // 2 children in Scope
/*75048*/             OPC_MorphNodeTo, TARGET_VAL(X86::SUB_FpI16m80), 0|OPFL_Chain|OPFL_MemRefs,
                          1/*#VTs*/, MVT::f80, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (fsub:f80 RFP80:f80:$src1, (X86fild:f80 addr:iPTR:$src2, i16:Other)) - Complexity = 24
                      // Dst: (SUB_FpI16m80:f80 RFP80:f80:$src1, addr:iPTR:$src2)
/*75061*/           /*Scope*/ 13, /*->75075*/
/*75062*/             OPC_MorphNodeTo, TARGET_VAL(X86::SUBR_FpI16m80), 0|OPFL_Chain|OPFL_MemRefs,
                          1/*#VTs*/, MVT::f80, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (fsub:f80 RFP80:f80:$src1, (X86fild:f80 addr:iPTR:$src2, i16:Other)) - Complexity = 24
                      // Dst: (SUBR_FpI16m80:f80 RFP80:f80:$src1, addr:iPTR:$src2)
/*75075*/           0, /*End of Scope*/
                  0, // EndSwitchType
/*75077*/       /*Scope*/ 118, /*->75196*/
/*75078*/         OPC_CheckValueType, MVT::i32,
/*75080*/         OPC_MoveParent,
/*75081*/         OPC_MoveParent,
/*75082*/         OPC_SwitchType /*3 cases */, 36,  MVT::f32,// ->75121
/*75085*/           OPC_CheckPatternPredicate, 8, // (!Subtarget->hasXMM())
/*75087*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*75090*/           OPC_EmitMergeInputChains1_1,
/*75091*/           OPC_Scope, 13, /*->75106*/ // 2 children in Scope
/*75093*/             OPC_MorphNodeTo, TARGET_VAL(X86::SUB_FpI32m32), 0|OPFL_Chain|OPFL_MemRefs,
                          1/*#VTs*/, MVT::f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (fsub:f32 RFP32:f32:$src1, (X86fild:f32 addr:iPTR:$src2, i32:Other)) - Complexity = 24
                      // Dst: (SUB_FpI32m32:f32 RFP32:f32:$src1, addr:iPTR:$src2)
/*75106*/           /*Scope*/ 13, /*->75120*/
/*75107*/             OPC_MorphNodeTo, TARGET_VAL(X86::SUBR_FpI32m32), 0|OPFL_Chain|OPFL_MemRefs,
                          1/*#VTs*/, MVT::f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (fsub:f32 RFP32:f32:$src1, (X86fild:f32 addr:iPTR:$src2, i32:Other)) - Complexity = 24
                      // Dst: (SUBR_FpI32m32:f32 RFP32:f32:$src1, addr:iPTR:$src2)
/*75120*/           0, /*End of Scope*/
                  /*SwitchType*/ 36,  MVT::f64,// ->75159
/*75123*/           OPC_CheckPatternPredicate, 9, // (!Subtarget->hasXMMInt())
/*75125*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*75128*/           OPC_EmitMergeInputChains1_1,
/*75129*/           OPC_Scope, 13, /*->75144*/ // 2 children in Scope
/*75131*/             OPC_MorphNodeTo, TARGET_VAL(X86::SUB_FpI32m64), 0|OPFL_Chain|OPFL_MemRefs,
                          1/*#VTs*/, MVT::f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (fsub:f64 RFP64:f64:$src1, (X86fild:f64 addr:iPTR:$src2, i32:Other)) - Complexity = 24
                      // Dst: (SUB_FpI32m64:f64 RFP64:f64:$src1, addr:iPTR:$src2)
/*75144*/           /*Scope*/ 13, /*->75158*/
/*75145*/             OPC_MorphNodeTo, TARGET_VAL(X86::SUBR_FpI32m64), 0|OPFL_Chain|OPFL_MemRefs,
                          1/*#VTs*/, MVT::f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (fsub:f64 RFP64:f64:$src1, (X86fild:f64 addr:iPTR:$src2, i32:Other)) - Complexity = 24
                      // Dst: (SUBR_FpI32m64:f64 RFP64:f64:$src1, addr:iPTR:$src2)
/*75158*/           0, /*End of Scope*/
                  /*SwitchType*/ 34,  MVT::f80,// ->75195
/*75161*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*75164*/           OPC_EmitMergeInputChains1_1,
/*75165*/           OPC_Scope, 13, /*->75180*/ // 2 children in Scope
/*75167*/             OPC_MorphNodeTo, TARGET_VAL(X86::SUB_FpI32m80), 0|OPFL_Chain|OPFL_MemRefs,
                          1/*#VTs*/, MVT::f80, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (fsub:f80 RFP80:f80:$src1, (X86fild:f80 addr:iPTR:$src2, i32:Other)) - Complexity = 24
                      // Dst: (SUB_FpI32m80:f80 RFP80:f80:$src1, addr:iPTR:$src2)
/*75180*/           /*Scope*/ 13, /*->75194*/
/*75181*/             OPC_MorphNodeTo, TARGET_VAL(X86::SUBR_FpI32m80), 0|OPFL_Chain|OPFL_MemRefs,
                          1/*#VTs*/, MVT::f80, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (fsub:f80 RFP80:f80:$src1, (X86fild:f80 addr:iPTR:$src2, i32:Other)) - Complexity = 24
                      // Dst: (SUBR_FpI32m80:f80 RFP80:f80:$src1, addr:iPTR:$src2)
/*75194*/           0, /*End of Scope*/
                  0, // EndSwitchType
/*75196*/       0, /*End of Scope*/
              0, // EndSwitchOpcode
/*75198*/   /*Scope*/ 94, /*->75293*/
/*75199*/     OPC_RecordChild1, // #1 = $src2
/*75200*/     OPC_SwitchType /*3 cases */, 38,  MVT::f32,// ->75241
/*75203*/       OPC_Scope, 11, /*->75216*/ // 3 children in Scope
/*75205*/         OPC_CheckPatternPredicate, 8, // (!Subtarget->hasXMM())
/*75207*/         OPC_MorphNodeTo, TARGET_VAL(X86::SUB_Fp32), 0,
                      1/*#VTs*/, MVT::f32, 2/*#Ops*/, 0, 1, 
                  // Src: (fsub:f32 RFP32:f32:$src1, RFP32:f32:$src2) - Complexity = 3
                  // Dst: (SUB_Fp32:f32 RFP32:f32:$src1, RFP32:f32:$src2)
/*75216*/       /*Scope*/ 11, /*->75228*/
/*75217*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*75219*/         OPC_MorphNodeTo, TARGET_VAL(X86::VSUBSSrr), 0,
                      1/*#VTs*/, MVT::f32, 2/*#Ops*/, 0, 1, 
                  // Src: (fsub:f32 FR32:f32:$src1, FR32:f32:$src2) - Complexity = 3
                  // Dst: (VSUBSSrr:f32 FR32:f32:$src1, FR32:f32:$src2)
/*75228*/       /*Scope*/ 11, /*->75240*/
/*75229*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*75231*/         OPC_MorphNodeTo, TARGET_VAL(X86::SUBSSrr), 0,
                      1/*#VTs*/, MVT::f32, 2/*#Ops*/, 0, 1, 
                  // Src: (fsub:f32 FR32:f32:$src1, FR32:f32:$src2) - Complexity = 3
                  // Dst: (SUBSSrr:f32 FR32:f32:$src1, FR32:f32:$src2)
/*75240*/       0, /*End of Scope*/
              /*SwitchType*/ 38,  MVT::f64,// ->75281
/*75243*/       OPC_Scope, 11, /*->75256*/ // 3 children in Scope
/*75245*/         OPC_CheckPatternPredicate, 9, // (!Subtarget->hasXMMInt())
/*75247*/         OPC_MorphNodeTo, TARGET_VAL(X86::SUB_Fp64), 0,
                      1/*#VTs*/, MVT::f64, 2/*#Ops*/, 0, 1, 
                  // Src: (fsub:f64 RFP64:f64:$src1, RFP64:f64:$src2) - Complexity = 3
                  // Dst: (SUB_Fp64:f64 RFP64:f64:$src1, RFP64:f64:$src2)
/*75256*/       /*Scope*/ 11, /*->75268*/
/*75257*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*75259*/         OPC_MorphNodeTo, TARGET_VAL(X86::VSUBSDrr), 0,
                      1/*#VTs*/, MVT::f64, 2/*#Ops*/, 0, 1, 
                  // Src: (fsub:f64 FR64:f64:$src1, FR64:f64:$src2) - Complexity = 3
                  // Dst: (VSUBSDrr:f64 FR64:f64:$src1, FR64:f64:$src2)
/*75268*/       /*Scope*/ 11, /*->75280*/
/*75269*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*75271*/         OPC_MorphNodeTo, TARGET_VAL(X86::SUBSDrr), 0,
                      1/*#VTs*/, MVT::f64, 2/*#Ops*/, 0, 1, 
                  // Src: (fsub:f64 FR64:f64:$src1, FR64:f64:$src2) - Complexity = 3
                  // Dst: (SUBSDrr:f64 FR64:f64:$src1, FR64:f64:$src2)
/*75280*/       0, /*End of Scope*/
              /*SwitchType*/ 9,  MVT::f80,// ->75292
/*75283*/       OPC_MorphNodeTo, TARGET_VAL(X86::SUB_Fp80), 0,
                    1/*#VTs*/, MVT::f80, 2/*#Ops*/, 0, 1, 
                // Src: (fsub:f80 RFP80:f80:$src1, RFP80:f80:$src2) - Complexity = 3
                // Dst: (SUB_Fp80:f80 RFP80:f80:$src1, RFP80:f80:$src2)
              0, // EndSwitchType
/*75293*/   /*Scope*/ 20|128,1/*148*/, /*->75443*/
/*75295*/     OPC_MoveChild, 1,
/*75297*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*75300*/     OPC_RecordMemRef,
/*75301*/     OPC_RecordNode, // #1 = 'ld' chained node
/*75302*/     OPC_CheckFoldableChainNode,
/*75303*/     OPC_RecordChild1, // #2 = $src2
/*75304*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*75306*/     OPC_CheckPredicate, 3, // Predicate_load
/*75308*/     OPC_CheckPredicate, 23, // Predicate_memop
/*75310*/     OPC_MoveParent,
/*75311*/     OPC_SwitchType /*4 cases */, 42,  MVT::v4f32,// ->75356
/*75314*/       OPC_Scope, 19, /*->75335*/ // 2 children in Scope
/*75316*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*75318*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*75321*/         OPC_EmitMergeInputChains1_1,
/*75322*/         OPC_MorphNodeTo, TARGET_VAL(X86::VSUBPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (fsub:v4f32 VR128:v4f32:$src1, (ld:v4f32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                  // Dst: (VSUBPSrm:v4f32 VR128:v4f32:$src1, addr:iPTR:$src2)
/*75335*/       /*Scope*/ 19, /*->75355*/
/*75336*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*75338*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*75341*/         OPC_EmitMergeInputChains1_1,
/*75342*/         OPC_MorphNodeTo, TARGET_VAL(X86::SUBPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (fsub:v4f32 VR128:v4f32:$src1, (ld:v4f32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                  // Dst: (SUBPSrm:v4f32 VR128:v4f32:$src1, addr:iPTR:$src2)
/*75355*/       0, /*End of Scope*/
              /*SwitchType*/ 42,  MVT::v2f64,// ->75400
/*75358*/       OPC_Scope, 19, /*->75379*/ // 2 children in Scope
/*75360*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*75362*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*75365*/         OPC_EmitMergeInputChains1_1,
/*75366*/         OPC_MorphNodeTo, TARGET_VAL(X86::VSUBPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (fsub:v2f64 VR128:v2f64:$src1, (ld:v2f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                  // Dst: (VSUBPDrm:v2f64 VR128:v2f64:$src1, addr:iPTR:$src2)
/*75379*/       /*Scope*/ 19, /*->75399*/
/*75380*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*75382*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*75385*/         OPC_EmitMergeInputChains1_1,
/*75386*/         OPC_MorphNodeTo, TARGET_VAL(X86::SUBPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (fsub:v2f64 VR128:v2f64:$src1, (ld:v2f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                  // Dst: (SUBPDrm:v2f64 VR128:v2f64:$src1, addr:iPTR:$src2)
/*75399*/       0, /*End of Scope*/
              /*SwitchType*/ 19,  MVT::v8f32,// ->75421
/*75402*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*75404*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*75407*/       OPC_EmitMergeInputChains1_1,
/*75408*/       OPC_MorphNodeTo, TARGET_VAL(X86::VSUBPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v8f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (fsub:v8f32 VR256:v8f32:$src1, (ld:v8f32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                // Dst: (VSUBPSYrm:v8f32 VR256:v8f32:$src1, addr:iPTR:$src2)
              /*SwitchType*/ 19,  MVT::v4f64,// ->75442
/*75423*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*75425*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*75428*/       OPC_EmitMergeInputChains1_1,
/*75429*/       OPC_MorphNodeTo, TARGET_VAL(X86::VSUBPDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v4f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (fsub:v4f64 VR256:v4f64:$src1, (ld:v4f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                // Dst: (VSUBPDYrm:v4f64 VR256:v4f64:$src1, addr:iPTR:$src2)
              0, // EndSwitchType
/*75443*/   /*Scope*/ 85, /*->75529*/
/*75444*/     OPC_RecordChild1, // #1 = $src2
/*75445*/     OPC_SwitchType /*4 cases */, 26,  MVT::v4f32,// ->75474
/*75448*/       OPC_Scope, 11, /*->75461*/ // 2 children in Scope
/*75450*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*75452*/         OPC_MorphNodeTo, TARGET_VAL(X86::VSUBPSrr), 0,
                      1/*#VTs*/, MVT::v4f32, 2/*#Ops*/, 0, 1, 
                  // Src: (fsub:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src2) - Complexity = 3
                  // Dst: (VSUBPSrr:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src2)
/*75461*/       /*Scope*/ 11, /*->75473*/
/*75462*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*75464*/         OPC_MorphNodeTo, TARGET_VAL(X86::SUBPSrr), 0,
                      1/*#VTs*/, MVT::v4f32, 2/*#Ops*/, 0, 1, 
                  // Src: (fsub:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src2) - Complexity = 3
                  // Dst: (SUBPSrr:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src2)
/*75473*/       0, /*End of Scope*/
              /*SwitchType*/ 26,  MVT::v2f64,// ->75502
/*75476*/       OPC_Scope, 11, /*->75489*/ // 2 children in Scope
/*75478*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*75480*/         OPC_MorphNodeTo, TARGET_VAL(X86::VSUBPDrr), 0,
                      1/*#VTs*/, MVT::v2f64, 2/*#Ops*/, 0, 1, 
                  // Src: (fsub:v2f64 VR128:v2f64:$src1, VR128:v2f64:$src2) - Complexity = 3
                  // Dst: (VSUBPDrr:v2f64 VR128:v2f64:$src1, VR128:v2f64:$src2)
/*75489*/       /*Scope*/ 11, /*->75501*/
/*75490*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*75492*/         OPC_MorphNodeTo, TARGET_VAL(X86::SUBPDrr), 0,
                      1/*#VTs*/, MVT::v2f64, 2/*#Ops*/, 0, 1, 
                  // Src: (fsub:v2f64 VR128:v2f64:$src1, VR128:v2f64:$src2) - Complexity = 3
                  // Dst: (SUBPDrr:v2f64 VR128:v2f64:$src1, VR128:v2f64:$src2)
/*75501*/       0, /*End of Scope*/
              /*SwitchType*/ 11,  MVT::v8f32,// ->75515
/*75504*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*75506*/       OPC_MorphNodeTo, TARGET_VAL(X86::VSUBPSYrr), 0,
                    1/*#VTs*/, MVT::v8f32, 2/*#Ops*/, 0, 1, 
                // Src: (fsub:v8f32 VR256:v8f32:$src1, VR256:v8f32:$src2) - Complexity = 3
                // Dst: (VSUBPSYrr:v8f32 VR256:v8f32:$src1, VR256:v8f32:$src2)
              /*SwitchType*/ 11,  MVT::v4f64,// ->75528
/*75517*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*75519*/       OPC_MorphNodeTo, TARGET_VAL(X86::VSUBPDYrr), 0,
                    1/*#VTs*/, MVT::v4f64, 2/*#Ops*/, 0, 1, 
                // Src: (fsub:v4f64 VR256:v4f64:$src1, VR256:v4f64:$src2) - Complexity = 3
                // Dst: (VSUBPDYrr:v4f64 VR256:v4f64:$src1, VR256:v4f64:$src2)
              0, // EndSwitchType
/*75529*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 5|128,10/*1285*/,  TARGET_VAL(ISD::FMUL),// ->76819
/*75534*/   OPC_Scope, 8|128,1/*136*/, /*->75673*/ // 9 children in Scope
/*75537*/     OPC_RecordChild0, // #0 = $src1
/*75538*/     OPC_MoveChild, 1,
/*75540*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*75543*/     OPC_RecordMemRef,
/*75544*/     OPC_RecordNode, // #1 = 'ld' chained node
/*75545*/     OPC_CheckFoldableChainNode,
/*75546*/     OPC_RecordChild1, // #2 = $src2
/*75547*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*75549*/     OPC_Scope, 47, /*->75598*/ // 2 children in Scope
/*75551*/       OPC_CheckPredicate, 3, // Predicate_load
/*75553*/       OPC_MoveParent,
/*75554*/       OPC_SwitchType /*2 cases */, 19,  MVT::f32,// ->75576
/*75557*/         OPC_CheckPatternPredicate, 8, // (!Subtarget->hasXMM())
/*75559*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*75562*/         OPC_EmitMergeInputChains1_1,
/*75563*/         OPC_MorphNodeTo, TARGET_VAL(X86::MUL_Fp32m), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (fmul:f32 RFP32:f32:$src1, (ld:f32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (MUL_Fp32m:f32 RFP32:f32:$src1, addr:iPTR:$src2)
                /*SwitchType*/ 19,  MVT::f64,// ->75597
/*75578*/         OPC_CheckPatternPredicate, 9, // (!Subtarget->hasXMMInt())
/*75580*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*75583*/         OPC_EmitMergeInputChains1_1,
/*75584*/         OPC_MorphNodeTo, TARGET_VAL(X86::MUL_Fp64m), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (fmul:f64 RFP64:f64:$src1, (ld:f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (MUL_Fp64m:f64 RFP64:f64:$src1, addr:iPTR:$src2)
                0, // EndSwitchType
/*75598*/     /*Scope*/ 73, /*->75672*/
/*75599*/       OPC_CheckPredicate, 37, // Predicate_extload
/*75601*/       OPC_Scope, 45, /*->75648*/ // 2 children in Scope
/*75603*/         OPC_CheckPredicate, 42, // Predicate_extloadf32
/*75605*/         OPC_MoveParent,
/*75606*/         OPC_SwitchType /*2 cases */, 19,  MVT::f64,// ->75628
/*75609*/           OPC_CheckPatternPredicate, 9, // (!Subtarget->hasXMMInt())
/*75611*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*75614*/           OPC_EmitMergeInputChains1_1,
/*75615*/           OPC_MorphNodeTo, TARGET_VAL(X86::MUL_Fp64m32), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (fmul:f64 RFP64:f64:$src1, (ld:f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadf32>>) - Complexity = 25
                    // Dst: (MUL_Fp64m32:f64 RFP64:f64:$src1, addr:iPTR:$src2)
                  /*SwitchType*/ 17,  MVT::f80,// ->75647
/*75630*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*75633*/           OPC_EmitMergeInputChains1_1,
/*75634*/           OPC_MorphNodeTo, TARGET_VAL(X86::MUL_Fp80m32), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::f80, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (fmul:f80 RFP80:f80:$src1, (ld:f80 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadf32>>) - Complexity = 25
                    // Dst: (MUL_Fp80m32:f80 RFP80:f80:$src1, addr:iPTR:$src2)
                  0, // EndSwitchType
/*75648*/       /*Scope*/ 22, /*->75671*/
/*75649*/         OPC_CheckPredicate, 43, // Predicate_extloadf64
/*75651*/         OPC_MoveParent,
/*75652*/         OPC_CheckType, MVT::f80,
/*75654*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*75657*/         OPC_EmitMergeInputChains1_1,
/*75658*/         OPC_MorphNodeTo, TARGET_VAL(X86::MUL_Fp80m64), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::f80, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (fmul:f80 RFP80:f80:$src1, (ld:f80 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadf64>>) - Complexity = 25
                  // Dst: (MUL_Fp80m64:f80 RFP80:f80:$src1, addr:iPTR:$src2)
/*75671*/       0, /*End of Scope*/
/*75672*/     0, /*End of Scope*/
/*75673*/   /*Scope*/ 10|128,1/*138*/, /*->75813*/
/*75675*/     OPC_MoveChild, 0,
/*75677*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*75680*/     OPC_RecordMemRef,
/*75681*/     OPC_RecordNode, // #0 = 'ld' chained node
/*75682*/     OPC_CheckFoldableChainNode,
/*75683*/     OPC_RecordChild1, // #1 = $src2
/*75684*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*75686*/     OPC_Scope, 48, /*->75736*/ // 2 children in Scope
/*75688*/       OPC_CheckPredicate, 3, // Predicate_load
/*75690*/       OPC_MoveParent,
/*75691*/       OPC_RecordChild1, // #2 = $src1
/*75692*/       OPC_SwitchType /*2 cases */, 19,  MVT::f32,// ->75714
/*75695*/         OPC_CheckPatternPredicate, 8, // (!Subtarget->hasXMM())
/*75697*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*75700*/         OPC_EmitMergeInputChains1_0,
/*75701*/         OPC_MorphNodeTo, TARGET_VAL(X86::MUL_Fp32m), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (fmul:f32 (ld:f32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, RFP32:f32:$src1) - Complexity = 25
                  // Dst: (MUL_Fp32m:f32 RFP32:f32:$src1, addr:iPTR:$src2)
                /*SwitchType*/ 19,  MVT::f64,// ->75735
/*75716*/         OPC_CheckPatternPredicate, 9, // (!Subtarget->hasXMMInt())
/*75718*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*75721*/         OPC_EmitMergeInputChains1_0,
/*75722*/         OPC_MorphNodeTo, TARGET_VAL(X86::MUL_Fp64m), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (fmul:f64 (ld:f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, RFP64:f64:$src1) - Complexity = 25
                  // Dst: (MUL_Fp64m:f64 RFP64:f64:$src1, addr:iPTR:$src2)
                0, // EndSwitchType
/*75736*/     /*Scope*/ 75, /*->75812*/
/*75737*/       OPC_CheckPredicate, 37, // Predicate_extload
/*75739*/       OPC_Scope, 46, /*->75787*/ // 2 children in Scope
/*75741*/         OPC_CheckPredicate, 42, // Predicate_extloadf32
/*75743*/         OPC_MoveParent,
/*75744*/         OPC_RecordChild1, // #2 = $src1
/*75745*/         OPC_SwitchType /*2 cases */, 19,  MVT::f64,// ->75767
/*75748*/           OPC_CheckPatternPredicate, 9, // (!Subtarget->hasXMMInt())
/*75750*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*75753*/           OPC_EmitMergeInputChains1_0,
/*75754*/           OPC_MorphNodeTo, TARGET_VAL(X86::MUL_Fp64m32), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (fmul:f64 (ld:f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadf32>>, RFP64:f64:$src1) - Complexity = 25
                    // Dst: (MUL_Fp64m32:f64 RFP64:f64:$src1, addr:iPTR:$src2)
                  /*SwitchType*/ 17,  MVT::f80,// ->75786
/*75769*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*75772*/           OPC_EmitMergeInputChains1_0,
/*75773*/           OPC_MorphNodeTo, TARGET_VAL(X86::MUL_Fp80m32), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::f80, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (fmul:f80 (ld:f80 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadf32>>, RFP80:f80:$src1) - Complexity = 25
                    // Dst: (MUL_Fp80m32:f80 RFP80:f80:$src1, addr:iPTR:$src2)
                  0, // EndSwitchType
/*75787*/       /*Scope*/ 23, /*->75811*/
/*75788*/         OPC_CheckPredicate, 43, // Predicate_extloadf64
/*75790*/         OPC_MoveParent,
/*75791*/         OPC_RecordChild1, // #2 = $src1
/*75792*/         OPC_CheckType, MVT::f80,
/*75794*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*75797*/         OPC_EmitMergeInputChains1_0,
/*75798*/         OPC_MorphNodeTo, TARGET_VAL(X86::MUL_Fp80m64), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::f80, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (fmul:f80 (ld:f80 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadf64>>, RFP80:f80:$src1) - Complexity = 25
                  // Dst: (MUL_Fp80m64:f80 RFP80:f80:$src1, addr:iPTR:$src2)
/*75811*/       0, /*End of Scope*/
/*75812*/     0, /*End of Scope*/
/*75813*/   /*Scope*/ 105, /*->75919*/
/*75814*/     OPC_RecordChild0, // #0 = $src1
/*75815*/     OPC_MoveChild, 1,
/*75817*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*75820*/     OPC_RecordMemRef,
/*75821*/     OPC_RecordNode, // #1 = 'ld' chained node
/*75822*/     OPC_CheckFoldableChainNode,
/*75823*/     OPC_RecordChild1, // #2 = $src2
/*75824*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*75826*/     OPC_CheckPredicate, 3, // Predicate_load
/*75828*/     OPC_MoveParent,
/*75829*/     OPC_SwitchType /*2 cases */, 42,  MVT::f32,// ->75874
/*75832*/       OPC_Scope, 19, /*->75853*/ // 2 children in Scope
/*75834*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*75836*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*75839*/         OPC_EmitMergeInputChains1_1,
/*75840*/         OPC_MorphNodeTo, TARGET_VAL(X86::VMULSSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (fmul:f32 FR32:f32:$src1, (ld:f32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (VMULSSrm:f32 FR32:f32:$src1, addr:iPTR:$src2)
/*75853*/       /*Scope*/ 19, /*->75873*/
/*75854*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*75856*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*75859*/         OPC_EmitMergeInputChains1_1,
/*75860*/         OPC_MorphNodeTo, TARGET_VAL(X86::MULSSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (fmul:f32 FR32:f32:$src1, (ld:f32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (MULSSrm:f32 FR32:f32:$src1, addr:iPTR:$src2)
/*75873*/       0, /*End of Scope*/
              /*SwitchType*/ 42,  MVT::f64,// ->75918
/*75876*/       OPC_Scope, 19, /*->75897*/ // 2 children in Scope
/*75878*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*75880*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*75883*/         OPC_EmitMergeInputChains1_1,
/*75884*/         OPC_MorphNodeTo, TARGET_VAL(X86::VMULSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (fmul:f64 FR64:f64:$src1, (ld:f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (VMULSDrm:f64 FR64:f64:$src1, addr:iPTR:$src2)
/*75897*/       /*Scope*/ 19, /*->75917*/
/*75898*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*75900*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*75903*/         OPC_EmitMergeInputChains1_1,
/*75904*/         OPC_MorphNodeTo, TARGET_VAL(X86::MULSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (fmul:f64 FR64:f64:$src1, (ld:f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (MULSDrm:f64 FR64:f64:$src1, addr:iPTR:$src2)
/*75917*/       0, /*End of Scope*/
              0, // EndSwitchType
/*75919*/   /*Scope*/ 105, /*->76025*/
/*75920*/     OPC_MoveChild, 0,
/*75922*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*75925*/     OPC_RecordMemRef,
/*75926*/     OPC_RecordNode, // #0 = 'ld' chained node
/*75927*/     OPC_CheckFoldableChainNode,
/*75928*/     OPC_RecordChild1, // #1 = $src2
/*75929*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*75931*/     OPC_CheckPredicate, 3, // Predicate_load
/*75933*/     OPC_MoveParent,
/*75934*/     OPC_RecordChild1, // #2 = $src1
/*75935*/     OPC_SwitchType /*2 cases */, 42,  MVT::f32,// ->75980
/*75938*/       OPC_Scope, 19, /*->75959*/ // 2 children in Scope
/*75940*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*75942*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*75945*/         OPC_EmitMergeInputChains1_0,
/*75946*/         OPC_MorphNodeTo, TARGET_VAL(X86::VMULSSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (fmul:f32 (ld:f32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR32:f32:$src1) - Complexity = 25
                  // Dst: (VMULSSrm:f32 FR32:f32:$src1, addr:iPTR:$src2)
/*75959*/       /*Scope*/ 19, /*->75979*/
/*75960*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*75962*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*75965*/         OPC_EmitMergeInputChains1_0,
/*75966*/         OPC_MorphNodeTo, TARGET_VAL(X86::MULSSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (fmul:f32 (ld:f32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR32:f32:$src1) - Complexity = 25
                  // Dst: (MULSSrm:f32 FR32:f32:$src1, addr:iPTR:$src2)
/*75979*/       0, /*End of Scope*/
              /*SwitchType*/ 42,  MVT::f64,// ->76024
/*75982*/       OPC_Scope, 19, /*->76003*/ // 2 children in Scope
/*75984*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*75986*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*75989*/         OPC_EmitMergeInputChains1_0,
/*75990*/         OPC_MorphNodeTo, TARGET_VAL(X86::VMULSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (fmul:f64 (ld:f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR64:f64:$src1) - Complexity = 25
                  // Dst: (VMULSDrm:f64 FR64:f64:$src1, addr:iPTR:$src2)
/*76003*/       /*Scope*/ 19, /*->76023*/
/*76004*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*76006*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*76009*/         OPC_EmitMergeInputChains1_0,
/*76010*/         OPC_MorphNodeTo, TARGET_VAL(X86::MULSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (fmul:f64 (ld:f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR64:f64:$src1) - Complexity = 25
                  // Dst: (MULSDrm:f64 FR64:f64:$src1, addr:iPTR:$src2)
/*76023*/       0, /*End of Scope*/
              0, // EndSwitchType
/*76025*/   /*Scope*/ 22|128,1/*150*/, /*->76177*/
/*76027*/     OPC_RecordChild0, // #0 = $src1
/*76028*/     OPC_MoveChild, 1,
/*76030*/     OPC_CheckOpcode, TARGET_VAL(X86ISD::FILD),
/*76033*/     OPC_RecordMemRef,
/*76034*/     OPC_RecordNode, // #1 = 'X86fild' chained node
/*76035*/     OPC_CheckFoldableChainNode,
/*76036*/     OPC_RecordChild1, // #2 = $src2
/*76037*/     OPC_MoveChild, 2,
/*76039*/     OPC_Scope, 67, /*->76108*/ // 2 children in Scope
/*76041*/       OPC_CheckValueType, MVT::i16,
/*76043*/       OPC_MoveParent,
/*76044*/       OPC_MoveParent,
/*76045*/       OPC_SwitchType /*3 cases */, 19,  MVT::f32,// ->76067
/*76048*/         OPC_CheckPatternPredicate, 8, // (!Subtarget->hasXMM())
/*76050*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*76053*/         OPC_EmitMergeInputChains1_1,
/*76054*/         OPC_MorphNodeTo, TARGET_VAL(X86::MUL_FpI16m32), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (fmul:f32 RFP32:f32:$src1, (X86fild:f32 addr:iPTR:$src2, i16:Other)) - Complexity = 24
                  // Dst: (MUL_FpI16m32:f32 RFP32:f32:$src1, addr:iPTR:$src2)
                /*SwitchType*/ 19,  MVT::f64,// ->76088
/*76069*/         OPC_CheckPatternPredicate, 9, // (!Subtarget->hasXMMInt())
/*76071*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*76074*/         OPC_EmitMergeInputChains1_1,
/*76075*/         OPC_MorphNodeTo, TARGET_VAL(X86::MUL_FpI16m64), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (fmul:f64 RFP64:f64:$src1, (X86fild:f64 addr:iPTR:$src2, i16:Other)) - Complexity = 24
                  // Dst: (MUL_FpI16m64:f64 RFP64:f64:$src1, addr:iPTR:$src2)
                /*SwitchType*/ 17,  MVT::f80,// ->76107
/*76090*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*76093*/         OPC_EmitMergeInputChains1_1,
/*76094*/         OPC_MorphNodeTo, TARGET_VAL(X86::MUL_FpI16m80), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::f80, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (fmul:f80 RFP80:f80:$src1, (X86fild:f80 addr:iPTR:$src2, i16:Other)) - Complexity = 24
                  // Dst: (MUL_FpI16m80:f80 RFP80:f80:$src1, addr:iPTR:$src2)
                0, // EndSwitchType
/*76108*/     /*Scope*/ 67, /*->76176*/
/*76109*/       OPC_CheckValueType, MVT::i32,
/*76111*/       OPC_MoveParent,
/*76112*/       OPC_MoveParent,
/*76113*/       OPC_SwitchType /*3 cases */, 19,  MVT::f32,// ->76135
/*76116*/         OPC_CheckPatternPredicate, 8, // (!Subtarget->hasXMM())
/*76118*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*76121*/         OPC_EmitMergeInputChains1_1,
/*76122*/         OPC_MorphNodeTo, TARGET_VAL(X86::MUL_FpI32m32), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (fmul:f32 RFP32:f32:$src1, (X86fild:f32 addr:iPTR:$src2, i32:Other)) - Complexity = 24
                  // Dst: (MUL_FpI32m32:f32 RFP32:f32:$src1, addr:iPTR:$src2)
                /*SwitchType*/ 19,  MVT::f64,// ->76156
/*76137*/         OPC_CheckPatternPredicate, 9, // (!Subtarget->hasXMMInt())
/*76139*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*76142*/         OPC_EmitMergeInputChains1_1,
/*76143*/         OPC_MorphNodeTo, TARGET_VAL(X86::MUL_FpI32m64), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (fmul:f64 RFP64:f64:$src1, (X86fild:f64 addr:iPTR:$src2, i32:Other)) - Complexity = 24
                  // Dst: (MUL_FpI32m64:f64 RFP64:f64:$src1, addr:iPTR:$src2)
                /*SwitchType*/ 17,  MVT::f80,// ->76175
/*76158*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*76161*/         OPC_EmitMergeInputChains1_1,
/*76162*/         OPC_MorphNodeTo, TARGET_VAL(X86::MUL_FpI32m80), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::f80, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (fmul:f80 RFP80:f80:$src1, (X86fild:f80 addr:iPTR:$src2, i32:Other)) - Complexity = 24
                  // Dst: (MUL_FpI32m80:f80 RFP80:f80:$src1, addr:iPTR:$src2)
                0, // EndSwitchType
/*76176*/     0, /*End of Scope*/
/*76177*/   /*Scope*/ 23|128,1/*151*/, /*->76330*/
/*76179*/     OPC_MoveChild, 0,
/*76181*/     OPC_CheckOpcode, TARGET_VAL(X86ISD::FILD),
/*76184*/     OPC_RecordMemRef,
/*76185*/     OPC_RecordNode, // #0 = 'X86fild' chained node
/*76186*/     OPC_CheckFoldableChainNode,
/*76187*/     OPC_RecordChild1, // #1 = $src2
/*76188*/     OPC_MoveChild, 2,
/*76190*/     OPC_Scope, 68, /*->76260*/ // 2 children in Scope
/*76192*/       OPC_CheckValueType, MVT::i16,
/*76194*/       OPC_MoveParent,
/*76195*/       OPC_MoveParent,
/*76196*/       OPC_RecordChild1, // #2 = $src1
/*76197*/       OPC_SwitchType /*3 cases */, 19,  MVT::f32,// ->76219
/*76200*/         OPC_CheckPatternPredicate, 8, // (!Subtarget->hasXMM())
/*76202*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*76205*/         OPC_EmitMergeInputChains1_0,
/*76206*/         OPC_MorphNodeTo, TARGET_VAL(X86::MUL_FpI16m32), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (fmul:f32 (X86fild:f32 addr:iPTR:$src2, i16:Other), RFP32:f32:$src1) - Complexity = 24
                  // Dst: (MUL_FpI16m32:f32 RFP32:f32:$src1, addr:iPTR:$src2)
                /*SwitchType*/ 19,  MVT::f64,// ->76240
/*76221*/         OPC_CheckPatternPredicate, 9, // (!Subtarget->hasXMMInt())
/*76223*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*76226*/         OPC_EmitMergeInputChains1_0,
/*76227*/         OPC_MorphNodeTo, TARGET_VAL(X86::MUL_FpI16m64), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (fmul:f64 (X86fild:f64 addr:iPTR:$src2, i16:Other), RFP64:f64:$src1) - Complexity = 24
                  // Dst: (MUL_FpI16m64:f64 RFP64:f64:$src1, addr:iPTR:$src2)
                /*SwitchType*/ 17,  MVT::f80,// ->76259
/*76242*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*76245*/         OPC_EmitMergeInputChains1_0,
/*76246*/         OPC_MorphNodeTo, TARGET_VAL(X86::MUL_FpI16m80), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::f80, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (fmul:f80 (X86fild:f80 addr:iPTR:$src2, i16:Other), RFP80:f80:$src1) - Complexity = 24
                  // Dst: (MUL_FpI16m80:f80 RFP80:f80:$src1, addr:iPTR:$src2)
                0, // EndSwitchType
/*76260*/     /*Scope*/ 68, /*->76329*/
/*76261*/       OPC_CheckValueType, MVT::i32,
/*76263*/       OPC_MoveParent,
/*76264*/       OPC_MoveParent,
/*76265*/       OPC_RecordChild1, // #2 = $src1
/*76266*/       OPC_SwitchType /*3 cases */, 19,  MVT::f32,// ->76288
/*76269*/         OPC_CheckPatternPredicate, 8, // (!Subtarget->hasXMM())
/*76271*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*76274*/         OPC_EmitMergeInputChains1_0,
/*76275*/         OPC_MorphNodeTo, TARGET_VAL(X86::MUL_FpI32m32), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (fmul:f32 (X86fild:f32 addr:iPTR:$src2, i32:Other), RFP32:f32:$src1) - Complexity = 24
                  // Dst: (MUL_FpI32m32:f32 RFP32:f32:$src1, addr:iPTR:$src2)
                /*SwitchType*/ 19,  MVT::f64,// ->76309
/*76290*/         OPC_CheckPatternPredicate, 9, // (!Subtarget->hasXMMInt())
/*76292*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*76295*/         OPC_EmitMergeInputChains1_0,
/*76296*/         OPC_MorphNodeTo, TARGET_VAL(X86::MUL_FpI32m64), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (fmul:f64 (X86fild:f64 addr:iPTR:$src2, i32:Other), RFP64:f64:$src1) - Complexity = 24
                  // Dst: (MUL_FpI32m64:f64 RFP64:f64:$src1, addr:iPTR:$src2)
                /*SwitchType*/ 17,  MVT::f80,// ->76328
/*76311*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*76314*/         OPC_EmitMergeInputChains1_0,
/*76315*/         OPC_MorphNodeTo, TARGET_VAL(X86::MUL_FpI32m80), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::f80, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (fmul:f80 (X86fild:f80 addr:iPTR:$src2, i32:Other), RFP80:f80:$src1) - Complexity = 24
                  // Dst: (MUL_FpI32m80:f80 RFP80:f80:$src1, addr:iPTR:$src2)
                0, // EndSwitchType
/*76329*/     0, /*End of Scope*/
/*76330*/   /*Scope*/ 120|128,1/*248*/, /*->76580*/
/*76332*/     OPC_RecordChild0, // #0 = $src1
/*76333*/     OPC_Scope, 94, /*->76429*/ // 2 children in Scope
/*76335*/       OPC_RecordChild1, // #1 = $src2
/*76336*/       OPC_SwitchType /*3 cases */, 38,  MVT::f32,// ->76377
/*76339*/         OPC_Scope, 11, /*->76352*/ // 3 children in Scope
/*76341*/           OPC_CheckPatternPredicate, 8, // (!Subtarget->hasXMM())
/*76343*/           OPC_MorphNodeTo, TARGET_VAL(X86::MUL_Fp32), 0,
                        1/*#VTs*/, MVT::f32, 2/*#Ops*/, 0, 1, 
                    // Src: (fmul:f32 RFP32:f32:$src1, RFP32:f32:$src2) - Complexity = 3
                    // Dst: (MUL_Fp32:f32 RFP32:f32:$src1, RFP32:f32:$src2)
/*76352*/         /*Scope*/ 11, /*->76364*/
/*76353*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*76355*/           OPC_MorphNodeTo, TARGET_VAL(X86::VMULSSrr), 0,
                        1/*#VTs*/, MVT::f32, 2/*#Ops*/, 0, 1, 
                    // Src: (fmul:f32 FR32:f32:$src1, FR32:f32:$src2) - Complexity = 3
                    // Dst: (VMULSSrr:f32 FR32:f32:$src1, FR32:f32:$src2)
/*76364*/         /*Scope*/ 11, /*->76376*/
/*76365*/           OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*76367*/           OPC_MorphNodeTo, TARGET_VAL(X86::MULSSrr), 0,
                        1/*#VTs*/, MVT::f32, 2/*#Ops*/, 0, 1, 
                    // Src: (fmul:f32 FR32:f32:$src1, FR32:f32:$src2) - Complexity = 3
                    // Dst: (MULSSrr:f32 FR32:f32:$src1, FR32:f32:$src2)
/*76376*/         0, /*End of Scope*/
                /*SwitchType*/ 38,  MVT::f64,// ->76417
/*76379*/         OPC_Scope, 11, /*->76392*/ // 3 children in Scope
/*76381*/           OPC_CheckPatternPredicate, 9, // (!Subtarget->hasXMMInt())
/*76383*/           OPC_MorphNodeTo, TARGET_VAL(X86::MUL_Fp64), 0,
                        1/*#VTs*/, MVT::f64, 2/*#Ops*/, 0, 1, 
                    // Src: (fmul:f64 RFP64:f64:$src1, RFP64:f64:$src2) - Complexity = 3
                    // Dst: (MUL_Fp64:f64 RFP64:f64:$src1, RFP64:f64:$src2)
/*76392*/         /*Scope*/ 11, /*->76404*/
/*76393*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*76395*/           OPC_MorphNodeTo, TARGET_VAL(X86::VMULSDrr), 0,
                        1/*#VTs*/, MVT::f64, 2/*#Ops*/, 0, 1, 
                    // Src: (fmul:f64 FR64:f64:$src1, FR64:f64:$src2) - Complexity = 3
                    // Dst: (VMULSDrr:f64 FR64:f64:$src1, FR64:f64:$src2)
/*76404*/         /*Scope*/ 11, /*->76416*/
/*76405*/           OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*76407*/           OPC_MorphNodeTo, TARGET_VAL(X86::MULSDrr), 0,
                        1/*#VTs*/, MVT::f64, 2/*#Ops*/, 0, 1, 
                    // Src: (fmul:f64 FR64:f64:$src1, FR64:f64:$src2) - Complexity = 3
                    // Dst: (MULSDrr:f64 FR64:f64:$src1, FR64:f64:$src2)
/*76416*/         0, /*End of Scope*/
                /*SwitchType*/ 9,  MVT::f80,// ->76428
/*76419*/         OPC_MorphNodeTo, TARGET_VAL(X86::MUL_Fp80), 0,
                      1/*#VTs*/, MVT::f80, 2/*#Ops*/, 0, 1, 
                  // Src: (fmul:f80 RFP80:f80:$src1, RFP80:f80:$src2) - Complexity = 3
                  // Dst: (MUL_Fp80:f80 RFP80:f80:$src1, RFP80:f80:$src2)
                0, // EndSwitchType
/*76429*/     /*Scope*/ 20|128,1/*148*/, /*->76579*/
/*76431*/       OPC_MoveChild, 1,
/*76433*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*76436*/       OPC_RecordMemRef,
/*76437*/       OPC_RecordNode, // #1 = 'ld' chained node
/*76438*/       OPC_CheckFoldableChainNode,
/*76439*/       OPC_RecordChild1, // #2 = $src2
/*76440*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*76442*/       OPC_CheckPredicate, 3, // Predicate_load
/*76444*/       OPC_CheckPredicate, 23, // Predicate_memop
/*76446*/       OPC_MoveParent,
/*76447*/       OPC_SwitchType /*4 cases */, 42,  MVT::v4f32,// ->76492
/*76450*/         OPC_Scope, 19, /*->76471*/ // 2 children in Scope
/*76452*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*76454*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*76457*/           OPC_EmitMergeInputChains1_1,
/*76458*/           OPC_MorphNodeTo, TARGET_VAL(X86::VMULPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (fmul:v4f32 VR128:v4f32:$src1, (ld:v4f32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                    // Dst: (VMULPSrm:v4f32 VR128:v4f32:$src1, addr:iPTR:$src2)
/*76471*/         /*Scope*/ 19, /*->76491*/
/*76472*/           OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*76474*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*76477*/           OPC_EmitMergeInputChains1_1,
/*76478*/           OPC_MorphNodeTo, TARGET_VAL(X86::MULPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (fmul:v4f32 VR128:v4f32:$src1, (ld:v4f32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                    // Dst: (MULPSrm:v4f32 VR128:v4f32:$src1, addr:iPTR:$src2)
/*76491*/         0, /*End of Scope*/
                /*SwitchType*/ 42,  MVT::v2f64,// ->76536
/*76494*/         OPC_Scope, 19, /*->76515*/ // 2 children in Scope
/*76496*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*76498*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*76501*/           OPC_EmitMergeInputChains1_1,
/*76502*/           OPC_MorphNodeTo, TARGET_VAL(X86::VMULPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (fmul:v2f64 VR128:v2f64:$src1, (ld:v2f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                    // Dst: (VMULPDrm:v2f64 VR128:v2f64:$src1, addr:iPTR:$src2)
/*76515*/         /*Scope*/ 19, /*->76535*/
/*76516*/           OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*76518*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*76521*/           OPC_EmitMergeInputChains1_1,
/*76522*/           OPC_MorphNodeTo, TARGET_VAL(X86::MULPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (fmul:v2f64 VR128:v2f64:$src1, (ld:v2f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                    // Dst: (MULPDrm:v2f64 VR128:v2f64:$src1, addr:iPTR:$src2)
/*76535*/         0, /*End of Scope*/
                /*SwitchType*/ 19,  MVT::v8f32,// ->76557
/*76538*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*76540*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*76543*/         OPC_EmitMergeInputChains1_1,
/*76544*/         OPC_MorphNodeTo, TARGET_VAL(X86::VMULPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v8f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (fmul:v8f32 VR256:v8f32:$src1, (ld:v8f32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                  // Dst: (VMULPSYrm:v8f32 VR256:v8f32:$src1, addr:iPTR:$src2)
                /*SwitchType*/ 19,  MVT::v4f64,// ->76578
/*76559*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*76561*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*76564*/         OPC_EmitMergeInputChains1_1,
/*76565*/         OPC_MorphNodeTo, TARGET_VAL(X86::VMULPDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (fmul:v4f64 VR256:v4f64:$src1, (ld:v4f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                  // Dst: (VMULPDYrm:v4f64 VR256:v4f64:$src1, addr:iPTR:$src2)
                0, // EndSwitchType
/*76579*/     0, /*End of Scope*/
/*76580*/   /*Scope*/ 21|128,1/*149*/, /*->76731*/
/*76582*/     OPC_MoveChild, 0,
/*76584*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*76587*/     OPC_RecordMemRef,
/*76588*/     OPC_RecordNode, // #0 = 'ld' chained node
/*76589*/     OPC_CheckFoldableChainNode,
/*76590*/     OPC_RecordChild1, // #1 = $src2
/*76591*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*76593*/     OPC_CheckPredicate, 3, // Predicate_load
/*76595*/     OPC_CheckPredicate, 23, // Predicate_memop
/*76597*/     OPC_MoveParent,
/*76598*/     OPC_RecordChild1, // #2 = $src1
/*76599*/     OPC_SwitchType /*4 cases */, 42,  MVT::v4f32,// ->76644
/*76602*/       OPC_Scope, 19, /*->76623*/ // 2 children in Scope
/*76604*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*76606*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*76609*/         OPC_EmitMergeInputChains1_0,
/*76610*/         OPC_MorphNodeTo, TARGET_VAL(X86::VMULPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (fmul:v4f32 (ld:v4f32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, VR128:v4f32:$src1) - Complexity = 25
                  // Dst: (VMULPSrm:v4f32 VR128:v4f32:$src1, addr:iPTR:$src2)
/*76623*/       /*Scope*/ 19, /*->76643*/
/*76624*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*76626*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*76629*/         OPC_EmitMergeInputChains1_0,
/*76630*/         OPC_MorphNodeTo, TARGET_VAL(X86::MULPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (fmul:v4f32 (ld:v4f32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, VR128:v4f32:$src1) - Complexity = 25
                  // Dst: (MULPSrm:v4f32 VR128:v4f32:$src1, addr:iPTR:$src2)
/*76643*/       0, /*End of Scope*/
              /*SwitchType*/ 42,  MVT::v2f64,// ->76688
/*76646*/       OPC_Scope, 19, /*->76667*/ // 2 children in Scope
/*76648*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*76650*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*76653*/         OPC_EmitMergeInputChains1_0,
/*76654*/         OPC_MorphNodeTo, TARGET_VAL(X86::VMULPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v2f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (fmul:v2f64 (ld:v2f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, VR128:v2f64:$src1) - Complexity = 25
                  // Dst: (VMULPDrm:v2f64 VR128:v2f64:$src1, addr:iPTR:$src2)
/*76667*/       /*Scope*/ 19, /*->76687*/
/*76668*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*76670*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*76673*/         OPC_EmitMergeInputChains1_0,
/*76674*/         OPC_MorphNodeTo, TARGET_VAL(X86::MULPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v2f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (fmul:v2f64 (ld:v2f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, VR128:v2f64:$src1) - Complexity = 25
                  // Dst: (MULPDrm:v2f64 VR128:v2f64:$src1, addr:iPTR:$src2)
/*76687*/       0, /*End of Scope*/
              /*SwitchType*/ 19,  MVT::v8f32,// ->76709
/*76690*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*76692*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*76695*/       OPC_EmitMergeInputChains1_0,
/*76696*/       OPC_MorphNodeTo, TARGET_VAL(X86::VMULPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v8f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                // Src: (fmul:v8f32 (ld:v8f32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, VR256:v8f32:$src1) - Complexity = 25
                // Dst: (VMULPSYrm:v8f32 VR256:v8f32:$src1, addr:iPTR:$src2)
              /*SwitchType*/ 19,  MVT::v4f64,// ->76730
/*76711*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*76713*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*76716*/       OPC_EmitMergeInputChains1_0,
/*76717*/       OPC_MorphNodeTo, TARGET_VAL(X86::VMULPDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v4f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                // Src: (fmul:v4f64 (ld:v4f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, VR256:v4f64:$src1) - Complexity = 25
                // Dst: (VMULPDYrm:v4f64 VR256:v4f64:$src1, addr:iPTR:$src2)
              0, // EndSwitchType
/*76731*/   /*Scope*/ 86, /*->76818*/
/*76732*/     OPC_RecordChild0, // #0 = $src1
/*76733*/     OPC_RecordChild1, // #1 = $src2
/*76734*/     OPC_SwitchType /*4 cases */, 26,  MVT::v4f32,// ->76763
/*76737*/       OPC_Scope, 11, /*->76750*/ // 2 children in Scope
/*76739*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*76741*/         OPC_MorphNodeTo, TARGET_VAL(X86::VMULPSrr), 0,
                      1/*#VTs*/, MVT::v4f32, 2/*#Ops*/, 0, 1, 
                  // Src: (fmul:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src2) - Complexity = 3
                  // Dst: (VMULPSrr:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src2)
/*76750*/       /*Scope*/ 11, /*->76762*/
/*76751*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*76753*/         OPC_MorphNodeTo, TARGET_VAL(X86::MULPSrr), 0,
                      1/*#VTs*/, MVT::v4f32, 2/*#Ops*/, 0, 1, 
                  // Src: (fmul:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src2) - Complexity = 3
                  // Dst: (MULPSrr:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src2)
/*76762*/       0, /*End of Scope*/
              /*SwitchType*/ 26,  MVT::v2f64,// ->76791
/*76765*/       OPC_Scope, 11, /*->76778*/ // 2 children in Scope
/*76767*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*76769*/         OPC_MorphNodeTo, TARGET_VAL(X86::VMULPDrr), 0,
                      1/*#VTs*/, MVT::v2f64, 2/*#Ops*/, 0, 1, 
                  // Src: (fmul:v2f64 VR128:v2f64:$src1, VR128:v2f64:$src2) - Complexity = 3
                  // Dst: (VMULPDrr:v2f64 VR128:v2f64:$src1, VR128:v2f64:$src2)
/*76778*/       /*Scope*/ 11, /*->76790*/
/*76779*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*76781*/         OPC_MorphNodeTo, TARGET_VAL(X86::MULPDrr), 0,
                      1/*#VTs*/, MVT::v2f64, 2/*#Ops*/, 0, 1, 
                  // Src: (fmul:v2f64 VR128:v2f64:$src1, VR128:v2f64:$src2) - Complexity = 3
                  // Dst: (MULPDrr:v2f64 VR128:v2f64:$src1, VR128:v2f64:$src2)
/*76790*/       0, /*End of Scope*/
              /*SwitchType*/ 11,  MVT::v8f32,// ->76804
/*76793*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*76795*/       OPC_MorphNodeTo, TARGET_VAL(X86::VMULPSYrr), 0,
                    1/*#VTs*/, MVT::v8f32, 2/*#Ops*/, 0, 1, 
                // Src: (fmul:v8f32 VR256:v8f32:$src1, VR256:v8f32:$src2) - Complexity = 3
                // Dst: (VMULPSYrr:v8f32 VR256:v8f32:$src1, VR256:v8f32:$src2)
              /*SwitchType*/ 11,  MVT::v4f64,// ->76817
/*76806*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*76808*/       OPC_MorphNodeTo, TARGET_VAL(X86::VMULPDYrr), 0,
                    1/*#VTs*/, MVT::v4f64, 2/*#Ops*/, 0, 1, 
                // Src: (fmul:v4f64 VR256:v4f64:$src1, VR256:v4f64:$src2) - Complexity = 3
                // Dst: (VMULPDYrr:v4f64 VR256:v4f64:$src1, VR256:v4f64:$src2)
              0, // EndSwitchType
/*76818*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 44|128,7/*940*/,  TARGET_VAL(ISD::FDIV),// ->77763
/*76823*/   OPC_RecordChild0, // #0 = $src1
/*76824*/   OPC_Scope, 92|128,4/*604*/, /*->77431*/ // 4 children in Scope
/*76827*/     OPC_MoveChild, 1,
/*76829*/     OPC_SwitchOpcode /*2 cases */, 90|128,2/*346*/,  TARGET_VAL(ISD::LOAD),// ->77180
/*76834*/       OPC_RecordMemRef,
/*76835*/       OPC_RecordNode, // #1 = 'ld' chained node
/*76836*/       OPC_CheckFoldableChainNode,
/*76837*/       OPC_RecordChild1, // #2 = $src2
/*76838*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*76840*/       OPC_Scope, 47, /*->76889*/ // 5 children in Scope
/*76842*/         OPC_CheckPredicate, 3, // Predicate_load
/*76844*/         OPC_MoveParent,
/*76845*/         OPC_SwitchType /*2 cases */, 19,  MVT::f32,// ->76867
/*76848*/           OPC_CheckPatternPredicate, 8, // (!Subtarget->hasXMM())
/*76850*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*76853*/           OPC_EmitMergeInputChains1_1,
/*76854*/           OPC_MorphNodeTo, TARGET_VAL(X86::DIV_Fp32m), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (fdiv:f32 RFP32:f32:$src1, (ld:f32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (DIV_Fp32m:f32 RFP32:f32:$src1, addr:iPTR:$src2)
                  /*SwitchType*/ 19,  MVT::f64,// ->76888
/*76869*/           OPC_CheckPatternPredicate, 9, // (!Subtarget->hasXMMInt())
/*76871*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*76874*/           OPC_EmitMergeInputChains1_1,
/*76875*/           OPC_MorphNodeTo, TARGET_VAL(X86::DIV_Fp64m), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (fdiv:f64 RFP64:f64:$src1, (ld:f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (DIV_Fp64m:f64 RFP64:f64:$src1, addr:iPTR:$src2)
                  0, // EndSwitchType
/*76889*/       /*Scope*/ 73, /*->76963*/
/*76890*/         OPC_CheckPredicate, 37, // Predicate_extload
/*76892*/         OPC_Scope, 45, /*->76939*/ // 2 children in Scope
/*76894*/           OPC_CheckPredicate, 42, // Predicate_extloadf32
/*76896*/           OPC_MoveParent,
/*76897*/           OPC_SwitchType /*2 cases */, 19,  MVT::f64,// ->76919
/*76900*/             OPC_CheckPatternPredicate, 9, // (!Subtarget->hasXMMInt())
/*76902*/             OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*76905*/             OPC_EmitMergeInputChains1_1,
/*76906*/             OPC_MorphNodeTo, TARGET_VAL(X86::DIV_Fp64m32), 0|OPFL_Chain|OPFL_MemRefs,
                          1/*#VTs*/, MVT::f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (fdiv:f64 RFP64:f64:$src1, (ld:f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadf32>>) - Complexity = 25
                      // Dst: (DIV_Fp64m32:f64 RFP64:f64:$src1, addr:iPTR:$src2)
                    /*SwitchType*/ 17,  MVT::f80,// ->76938
/*76921*/             OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*76924*/             OPC_EmitMergeInputChains1_1,
/*76925*/             OPC_MorphNodeTo, TARGET_VAL(X86::DIV_Fp80m32), 0|OPFL_Chain|OPFL_MemRefs,
                          1/*#VTs*/, MVT::f80, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (fdiv:f80 RFP80:f80:$src1, (ld:f80 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadf32>>) - Complexity = 25
                      // Dst: (DIV_Fp80m32:f80 RFP80:f80:$src1, addr:iPTR:$src2)
                    0, // EndSwitchType
/*76939*/         /*Scope*/ 22, /*->76962*/
/*76940*/           OPC_CheckPredicate, 43, // Predicate_extloadf64
/*76942*/           OPC_MoveParent,
/*76943*/           OPC_CheckType, MVT::f80,
/*76945*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*76948*/           OPC_EmitMergeInputChains1_1,
/*76949*/           OPC_MorphNodeTo, TARGET_VAL(X86::DIV_Fp80m64), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::f80, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (fdiv:f80 RFP80:f80:$src1, (ld:f80 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadf64>>) - Complexity = 25
                    // Dst: (DIV_Fp80m64:f80 RFP80:f80:$src1, addr:iPTR:$src2)
/*76962*/         0, /*End of Scope*/
/*76963*/       /*Scope*/ 47, /*->77011*/
/*76964*/         OPC_CheckPredicate, 3, // Predicate_load
/*76966*/         OPC_MoveParent,
/*76967*/         OPC_SwitchType /*2 cases */, 19,  MVT::f32,// ->76989
/*76970*/           OPC_CheckPatternPredicate, 8, // (!Subtarget->hasXMM())
/*76972*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*76975*/           OPC_EmitMergeInputChains1_1,
/*76976*/           OPC_MorphNodeTo, TARGET_VAL(X86::DIVR_Fp32m), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (fdiv:f32 RFP32:f32:$src1, (ld:f32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (DIVR_Fp32m:f32 RFP32:f32:$src1, addr:iPTR:$src2)
                  /*SwitchType*/ 19,  MVT::f64,// ->77010
/*76991*/           OPC_CheckPatternPredicate, 9, // (!Subtarget->hasXMMInt())
/*76993*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*76996*/           OPC_EmitMergeInputChains1_1,
/*76997*/           OPC_MorphNodeTo, TARGET_VAL(X86::DIVR_Fp64m), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (fdiv:f64 RFP64:f64:$src1, (ld:f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (DIVR_Fp64m:f64 RFP64:f64:$src1, addr:iPTR:$src2)
                  0, // EndSwitchType
/*77011*/       /*Scope*/ 73, /*->77085*/
/*77012*/         OPC_CheckPredicate, 37, // Predicate_extload
/*77014*/         OPC_Scope, 45, /*->77061*/ // 2 children in Scope
/*77016*/           OPC_CheckPredicate, 42, // Predicate_extloadf32
/*77018*/           OPC_MoveParent,
/*77019*/           OPC_SwitchType /*2 cases */, 19,  MVT::f64,// ->77041
/*77022*/             OPC_CheckPatternPredicate, 9, // (!Subtarget->hasXMMInt())
/*77024*/             OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*77027*/             OPC_EmitMergeInputChains1_1,
/*77028*/             OPC_MorphNodeTo, TARGET_VAL(X86::DIVR_Fp64m32), 0|OPFL_Chain|OPFL_MemRefs,
                          1/*#VTs*/, MVT::f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (fdiv:f64 RFP64:f64:$src1, (ld:f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadf32>>) - Complexity = 25
                      // Dst: (DIVR_Fp64m32:f64 RFP64:f64:$src1, addr:iPTR:$src2)
                    /*SwitchType*/ 17,  MVT::f80,// ->77060
/*77043*/             OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*77046*/             OPC_EmitMergeInputChains1_1,
/*77047*/             OPC_MorphNodeTo, TARGET_VAL(X86::DIVR_Fp80m32), 0|OPFL_Chain|OPFL_MemRefs,
                          1/*#VTs*/, MVT::f80, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (fdiv:f80 RFP80:f80:$src1, (ld:f80 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadf32>>) - Complexity = 25
                      // Dst: (DIVR_Fp80m32:f80 RFP80:f80:$src1, addr:iPTR:$src2)
                    0, // EndSwitchType
/*77061*/         /*Scope*/ 22, /*->77084*/
/*77062*/           OPC_CheckPredicate, 43, // Predicate_extloadf64
/*77064*/           OPC_MoveParent,
/*77065*/           OPC_CheckType, MVT::f80,
/*77067*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*77070*/           OPC_EmitMergeInputChains1_1,
/*77071*/           OPC_MorphNodeTo, TARGET_VAL(X86::DIVR_Fp80m64), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::f80, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (fdiv:f80 RFP80:f80:$src1, (ld:f80 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadf64>>) - Complexity = 25
                    // Dst: (DIVR_Fp80m64:f80 RFP80:f80:$src1, addr:iPTR:$src2)
/*77084*/         0, /*End of Scope*/
/*77085*/       /*Scope*/ 93, /*->77179*/
/*77086*/         OPC_CheckPredicate, 3, // Predicate_load
/*77088*/         OPC_MoveParent,
/*77089*/         OPC_SwitchType /*2 cases */, 42,  MVT::f32,// ->77134
/*77092*/           OPC_Scope, 19, /*->77113*/ // 2 children in Scope
/*77094*/             OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*77096*/             OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*77099*/             OPC_EmitMergeInputChains1_1,
/*77100*/             OPC_MorphNodeTo, TARGET_VAL(X86::VDIVSSrm), 0|OPFL_Chain|OPFL_MemRefs,
                          1/*#VTs*/, MVT::f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (fdiv:f32 FR32:f32:$src1, (ld:f32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VDIVSSrm:f32 FR32:f32:$src1, addr:iPTR:$src2)
/*77113*/           /*Scope*/ 19, /*->77133*/
/*77114*/             OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*77116*/             OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*77119*/             OPC_EmitMergeInputChains1_1,
/*77120*/             OPC_MorphNodeTo, TARGET_VAL(X86::DIVSSrm), 0|OPFL_Chain|OPFL_MemRefs,
                          1/*#VTs*/, MVT::f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (fdiv:f32 FR32:f32:$src1, (ld:f32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (DIVSSrm:f32 FR32:f32:$src1, addr:iPTR:$src2)
/*77133*/           0, /*End of Scope*/
                  /*SwitchType*/ 42,  MVT::f64,// ->77178
/*77136*/           OPC_Scope, 19, /*->77157*/ // 2 children in Scope
/*77138*/             OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*77140*/             OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*77143*/             OPC_EmitMergeInputChains1_1,
/*77144*/             OPC_MorphNodeTo, TARGET_VAL(X86::VDIVSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          1/*#VTs*/, MVT::f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (fdiv:f64 FR64:f64:$src1, (ld:f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VDIVSDrm:f64 FR64:f64:$src1, addr:iPTR:$src2)
/*77157*/           /*Scope*/ 19, /*->77177*/
/*77158*/             OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*77160*/             OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*77163*/             OPC_EmitMergeInputChains1_1,
/*77164*/             OPC_MorphNodeTo, TARGET_VAL(X86::DIVSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          1/*#VTs*/, MVT::f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (fdiv:f64 FR64:f64:$src1, (ld:f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (DIVSDrm:f64 FR64:f64:$src1, addr:iPTR:$src2)
/*77177*/           0, /*End of Scope*/
                  0, // EndSwitchType
/*77179*/       0, /*End of Scope*/
              /*SwitchOpcode*/ 118|128,1/*246*/,  TARGET_VAL(X86ISD::FILD),// ->77430
/*77184*/       OPC_RecordMemRef,
/*77185*/       OPC_RecordNode, // #1 = 'X86fild' chained node
/*77186*/       OPC_CheckFoldableChainNode,
/*77187*/       OPC_RecordChild1, // #2 = $src2
/*77188*/       OPC_MoveChild, 2,
/*77190*/       OPC_Scope, 118, /*->77310*/ // 2 children in Scope
/*77192*/         OPC_CheckValueType, MVT::i16,
/*77194*/         OPC_MoveParent,
/*77195*/         OPC_MoveParent,
/*77196*/         OPC_SwitchType /*3 cases */, 36,  MVT::f32,// ->77235
/*77199*/           OPC_CheckPatternPredicate, 8, // (!Subtarget->hasXMM())
/*77201*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*77204*/           OPC_EmitMergeInputChains1_1,
/*77205*/           OPC_Scope, 13, /*->77220*/ // 2 children in Scope
/*77207*/             OPC_MorphNodeTo, TARGET_VAL(X86::DIV_FpI16m32), 0|OPFL_Chain|OPFL_MemRefs,
                          1/*#VTs*/, MVT::f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (fdiv:f32 RFP32:f32:$src1, (X86fild:f32 addr:iPTR:$src2, i16:Other)) - Complexity = 24
                      // Dst: (DIV_FpI16m32:f32 RFP32:f32:$src1, addr:iPTR:$src2)
/*77220*/           /*Scope*/ 13, /*->77234*/
/*77221*/             OPC_MorphNodeTo, TARGET_VAL(X86::DIVR_FpI16m32), 0|OPFL_Chain|OPFL_MemRefs,
                          1/*#VTs*/, MVT::f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (fdiv:f32 RFP32:f32:$src1, (X86fild:f32 addr:iPTR:$src2, i16:Other)) - Complexity = 24
                      // Dst: (DIVR_FpI16m32:f32 RFP32:f32:$src1, addr:iPTR:$src2)
/*77234*/           0, /*End of Scope*/
                  /*SwitchType*/ 36,  MVT::f64,// ->77273
/*77237*/           OPC_CheckPatternPredicate, 9, // (!Subtarget->hasXMMInt())
/*77239*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*77242*/           OPC_EmitMergeInputChains1_1,
/*77243*/           OPC_Scope, 13, /*->77258*/ // 2 children in Scope
/*77245*/             OPC_MorphNodeTo, TARGET_VAL(X86::DIV_FpI16m64), 0|OPFL_Chain|OPFL_MemRefs,
                          1/*#VTs*/, MVT::f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (fdiv:f64 RFP64:f64:$src1, (X86fild:f64 addr:iPTR:$src2, i16:Other)) - Complexity = 24
                      // Dst: (DIV_FpI16m64:f64 RFP64:f64:$src1, addr:iPTR:$src2)
/*77258*/           /*Scope*/ 13, /*->77272*/
/*77259*/             OPC_MorphNodeTo, TARGET_VAL(X86::DIVR_FpI16m64), 0|OPFL_Chain|OPFL_MemRefs,
                          1/*#VTs*/, MVT::f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (fdiv:f64 RFP64:f64:$src1, (X86fild:f64 addr:iPTR:$src2, i16:Other)) - Complexity = 24
                      // Dst: (DIVR_FpI16m64:f64 RFP64:f64:$src1, addr:iPTR:$src2)
/*77272*/           0, /*End of Scope*/
                  /*SwitchType*/ 34,  MVT::f80,// ->77309
/*77275*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*77278*/           OPC_EmitMergeInputChains1_1,
/*77279*/           OPC_Scope, 13, /*->77294*/ // 2 children in Scope
/*77281*/             OPC_MorphNodeTo, TARGET_VAL(X86::DIV_FpI16m80), 0|OPFL_Chain|OPFL_MemRefs,
                          1/*#VTs*/, MVT::f80, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (fdiv:f80 RFP80:f80:$src1, (X86fild:f80 addr:iPTR:$src2, i16:Other)) - Complexity = 24
                      // Dst: (DIV_FpI16m80:f80 RFP80:f80:$src1, addr:iPTR:$src2)
/*77294*/           /*Scope*/ 13, /*->77308*/
/*77295*/             OPC_MorphNodeTo, TARGET_VAL(X86::DIVR_FpI16m80), 0|OPFL_Chain|OPFL_MemRefs,
                          1/*#VTs*/, MVT::f80, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (fdiv:f80 RFP80:f80:$src1, (X86fild:f80 addr:iPTR:$src2, i16:Other)) - Complexity = 24
                      // Dst: (DIVR_FpI16m80:f80 RFP80:f80:$src1, addr:iPTR:$src2)
/*77308*/           0, /*End of Scope*/
                  0, // EndSwitchType
/*77310*/       /*Scope*/ 118, /*->77429*/
/*77311*/         OPC_CheckValueType, MVT::i32,
/*77313*/         OPC_MoveParent,
/*77314*/         OPC_MoveParent,
/*77315*/         OPC_SwitchType /*3 cases */, 36,  MVT::f32,// ->77354
/*77318*/           OPC_CheckPatternPredicate, 8, // (!Subtarget->hasXMM())
/*77320*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*77323*/           OPC_EmitMergeInputChains1_1,
/*77324*/           OPC_Scope, 13, /*->77339*/ // 2 children in Scope
/*77326*/             OPC_MorphNodeTo, TARGET_VAL(X86::DIV_FpI32m32), 0|OPFL_Chain|OPFL_MemRefs,
                          1/*#VTs*/, MVT::f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (fdiv:f32 RFP32:f32:$src1, (X86fild:f32 addr:iPTR:$src2, i32:Other)) - Complexity = 24
                      // Dst: (DIV_FpI32m32:f32 RFP32:f32:$src1, addr:iPTR:$src2)
/*77339*/           /*Scope*/ 13, /*->77353*/
/*77340*/             OPC_MorphNodeTo, TARGET_VAL(X86::DIVR_FpI32m32), 0|OPFL_Chain|OPFL_MemRefs,
                          1/*#VTs*/, MVT::f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (fdiv:f32 RFP32:f32:$src1, (X86fild:f32 addr:iPTR:$src2, i32:Other)) - Complexity = 24
                      // Dst: (DIVR_FpI32m32:f32 RFP32:f32:$src1, addr:iPTR:$src2)
/*77353*/           0, /*End of Scope*/
                  /*SwitchType*/ 36,  MVT::f64,// ->77392
/*77356*/           OPC_CheckPatternPredicate, 9, // (!Subtarget->hasXMMInt())
/*77358*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*77361*/           OPC_EmitMergeInputChains1_1,
/*77362*/           OPC_Scope, 13, /*->77377*/ // 2 children in Scope
/*77364*/             OPC_MorphNodeTo, TARGET_VAL(X86::DIV_FpI32m64), 0|OPFL_Chain|OPFL_MemRefs,
                          1/*#VTs*/, MVT::f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (fdiv:f64 RFP64:f64:$src1, (X86fild:f64 addr:iPTR:$src2, i32:Other)) - Complexity = 24
                      // Dst: (DIV_FpI32m64:f64 RFP64:f64:$src1, addr:iPTR:$src2)
/*77377*/           /*Scope*/ 13, /*->77391*/
/*77378*/             OPC_MorphNodeTo, TARGET_VAL(X86::DIVR_FpI32m64), 0|OPFL_Chain|OPFL_MemRefs,
                          1/*#VTs*/, MVT::f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (fdiv:f64 RFP64:f64:$src1, (X86fild:f64 addr:iPTR:$src2, i32:Other)) - Complexity = 24
                      // Dst: (DIVR_FpI32m64:f64 RFP64:f64:$src1, addr:iPTR:$src2)
/*77391*/           0, /*End of Scope*/
                  /*SwitchType*/ 34,  MVT::f80,// ->77428
/*77394*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*77397*/           OPC_EmitMergeInputChains1_1,
/*77398*/           OPC_Scope, 13, /*->77413*/ // 2 children in Scope
/*77400*/             OPC_MorphNodeTo, TARGET_VAL(X86::DIV_FpI32m80), 0|OPFL_Chain|OPFL_MemRefs,
                          1/*#VTs*/, MVT::f80, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (fdiv:f80 RFP80:f80:$src1, (X86fild:f80 addr:iPTR:$src2, i32:Other)) - Complexity = 24
                      // Dst: (DIV_FpI32m80:f80 RFP80:f80:$src1, addr:iPTR:$src2)
/*77413*/           /*Scope*/ 13, /*->77427*/
/*77414*/             OPC_MorphNodeTo, TARGET_VAL(X86::DIVR_FpI32m80), 0|OPFL_Chain|OPFL_MemRefs,
                          1/*#VTs*/, MVT::f80, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (fdiv:f80 RFP80:f80:$src1, (X86fild:f80 addr:iPTR:$src2, i32:Other)) - Complexity = 24
                      // Dst: (DIVR_FpI32m80:f80 RFP80:f80:$src1, addr:iPTR:$src2)
/*77427*/           0, /*End of Scope*/
                  0, // EndSwitchType
/*77429*/       0, /*End of Scope*/
              0, // EndSwitchOpcode
/*77431*/   /*Scope*/ 94, /*->77526*/
/*77432*/     OPC_RecordChild1, // #1 = $src2
/*77433*/     OPC_SwitchType /*3 cases */, 38,  MVT::f32,// ->77474
/*77436*/       OPC_Scope, 11, /*->77449*/ // 3 children in Scope
/*77438*/         OPC_CheckPatternPredicate, 8, // (!Subtarget->hasXMM())
/*77440*/         OPC_MorphNodeTo, TARGET_VAL(X86::DIV_Fp32), 0,
                      1/*#VTs*/, MVT::f32, 2/*#Ops*/, 0, 1, 
                  // Src: (fdiv:f32 RFP32:f32:$src1, RFP32:f32:$src2) - Complexity = 3
                  // Dst: (DIV_Fp32:f32 RFP32:f32:$src1, RFP32:f32:$src2)
/*77449*/       /*Scope*/ 11, /*->77461*/
/*77450*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*77452*/         OPC_MorphNodeTo, TARGET_VAL(X86::VDIVSSrr), 0,
                      1/*#VTs*/, MVT::f32, 2/*#Ops*/, 0, 1, 
                  // Src: (fdiv:f32 FR32:f32:$src1, FR32:f32:$src2) - Complexity = 3
                  // Dst: (VDIVSSrr:f32 FR32:f32:$src1, FR32:f32:$src2)
/*77461*/       /*Scope*/ 11, /*->77473*/
/*77462*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*77464*/         OPC_MorphNodeTo, TARGET_VAL(X86::DIVSSrr), 0,
                      1/*#VTs*/, MVT::f32, 2/*#Ops*/, 0, 1, 
                  // Src: (fdiv:f32 FR32:f32:$src1, FR32:f32:$src2) - Complexity = 3
                  // Dst: (DIVSSrr:f32 FR32:f32:$src1, FR32:f32:$src2)
/*77473*/       0, /*End of Scope*/
              /*SwitchType*/ 38,  MVT::f64,// ->77514
/*77476*/       OPC_Scope, 11, /*->77489*/ // 3 children in Scope
/*77478*/         OPC_CheckPatternPredicate, 9, // (!Subtarget->hasXMMInt())
/*77480*/         OPC_MorphNodeTo, TARGET_VAL(X86::DIV_Fp64), 0,
                      1/*#VTs*/, MVT::f64, 2/*#Ops*/, 0, 1, 
                  // Src: (fdiv:f64 RFP64:f64:$src1, RFP64:f64:$src2) - Complexity = 3
                  // Dst: (DIV_Fp64:f64 RFP64:f64:$src1, RFP64:f64:$src2)
/*77489*/       /*Scope*/ 11, /*->77501*/
/*77490*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*77492*/         OPC_MorphNodeTo, TARGET_VAL(X86::VDIVSDrr), 0,
                      1/*#VTs*/, MVT::f64, 2/*#Ops*/, 0, 1, 
                  // Src: (fdiv:f64 FR64:f64:$src1, FR64:f64:$src2) - Complexity = 3
                  // Dst: (VDIVSDrr:f64 FR64:f64:$src1, FR64:f64:$src2)
/*77501*/       /*Scope*/ 11, /*->77513*/
/*77502*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*77504*/         OPC_MorphNodeTo, TARGET_VAL(X86::DIVSDrr), 0,
                      1/*#VTs*/, MVT::f64, 2/*#Ops*/, 0, 1, 
                  // Src: (fdiv:f64 FR64:f64:$src1, FR64:f64:$src2) - Complexity = 3
                  // Dst: (DIVSDrr:f64 FR64:f64:$src1, FR64:f64:$src2)
/*77513*/       0, /*End of Scope*/
              /*SwitchType*/ 9,  MVT::f80,// ->77525
/*77516*/       OPC_MorphNodeTo, TARGET_VAL(X86::DIV_Fp80), 0,
                    1/*#VTs*/, MVT::f80, 2/*#Ops*/, 0, 1, 
                // Src: (fdiv:f80 RFP80:f80:$src1, RFP80:f80:$src2) - Complexity = 3
                // Dst: (DIV_Fp80:f80 RFP80:f80:$src1, RFP80:f80:$src2)
              0, // EndSwitchType
/*77526*/   /*Scope*/ 20|128,1/*148*/, /*->77676*/
/*77528*/     OPC_MoveChild, 1,
/*77530*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*77533*/     OPC_RecordMemRef,
/*77534*/     OPC_RecordNode, // #1 = 'ld' chained node
/*77535*/     OPC_CheckFoldableChainNode,
/*77536*/     OPC_RecordChild1, // #2 = $src2
/*77537*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*77539*/     OPC_CheckPredicate, 3, // Predicate_load
/*77541*/     OPC_CheckPredicate, 23, // Predicate_memop
/*77543*/     OPC_MoveParent,
/*77544*/     OPC_SwitchType /*4 cases */, 42,  MVT::v4f32,// ->77589
/*77547*/       OPC_Scope, 19, /*->77568*/ // 2 children in Scope
/*77549*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*77551*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*77554*/         OPC_EmitMergeInputChains1_1,
/*77555*/         OPC_MorphNodeTo, TARGET_VAL(X86::VDIVPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (fdiv:v4f32 VR128:v4f32:$src1, (ld:v4f32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                  // Dst: (VDIVPSrm:v4f32 VR128:v4f32:$src1, addr:iPTR:$src2)
/*77568*/       /*Scope*/ 19, /*->77588*/
/*77569*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*77571*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*77574*/         OPC_EmitMergeInputChains1_1,
/*77575*/         OPC_MorphNodeTo, TARGET_VAL(X86::DIVPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (fdiv:v4f32 VR128:v4f32:$src1, (ld:v4f32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                  // Dst: (DIVPSrm:v4f32 VR128:v4f32:$src1, addr:iPTR:$src2)
/*77588*/       0, /*End of Scope*/
              /*SwitchType*/ 42,  MVT::v2f64,// ->77633
/*77591*/       OPC_Scope, 19, /*->77612*/ // 2 children in Scope
/*77593*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*77595*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*77598*/         OPC_EmitMergeInputChains1_1,
/*77599*/         OPC_MorphNodeTo, TARGET_VAL(X86::VDIVPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (fdiv:v2f64 VR128:v2f64:$src1, (ld:v2f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                  // Dst: (VDIVPDrm:v2f64 VR128:v2f64:$src1, addr:iPTR:$src2)
/*77612*/       /*Scope*/ 19, /*->77632*/
/*77613*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*77615*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*77618*/         OPC_EmitMergeInputChains1_1,
/*77619*/         OPC_MorphNodeTo, TARGET_VAL(X86::DIVPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (fdiv:v2f64 VR128:v2f64:$src1, (ld:v2f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                  // Dst: (DIVPDrm:v2f64 VR128:v2f64:$src1, addr:iPTR:$src2)
/*77632*/       0, /*End of Scope*/
              /*SwitchType*/ 19,  MVT::v8f32,// ->77654
/*77635*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*77637*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*77640*/       OPC_EmitMergeInputChains1_1,
/*77641*/       OPC_MorphNodeTo, TARGET_VAL(X86::VDIVPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v8f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (fdiv:v8f32 VR256:v8f32:$src1, (ld:v8f32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                // Dst: (VDIVPSYrm:v8f32 VR256:v8f32:$src1, addr:iPTR:$src2)
              /*SwitchType*/ 19,  MVT::v4f64,// ->77675
/*77656*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*77658*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*77661*/       OPC_EmitMergeInputChains1_1,
/*77662*/       OPC_MorphNodeTo, TARGET_VAL(X86::VDIVPDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v4f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (fdiv:v4f64 VR256:v4f64:$src1, (ld:v4f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                // Dst: (VDIVPDYrm:v4f64 VR256:v4f64:$src1, addr:iPTR:$src2)
              0, // EndSwitchType
/*77676*/   /*Scope*/ 85, /*->77762*/
/*77677*/     OPC_RecordChild1, // #1 = $src2
/*77678*/     OPC_SwitchType /*4 cases */, 26,  MVT::v4f32,// ->77707
/*77681*/       OPC_Scope, 11, /*->77694*/ // 2 children in Scope
/*77683*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*77685*/         OPC_MorphNodeTo, TARGET_VAL(X86::VDIVPSrr), 0,
                      1/*#VTs*/, MVT::v4f32, 2/*#Ops*/, 0, 1, 
                  // Src: (fdiv:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src2) - Complexity = 3
                  // Dst: (VDIVPSrr:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src2)
/*77694*/       /*Scope*/ 11, /*->77706*/
/*77695*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*77697*/         OPC_MorphNodeTo, TARGET_VAL(X86::DIVPSrr), 0,
                      1/*#VTs*/, MVT::v4f32, 2/*#Ops*/, 0, 1, 
                  // Src: (fdiv:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src2) - Complexity = 3
                  // Dst: (DIVPSrr:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src2)
/*77706*/       0, /*End of Scope*/
              /*SwitchType*/ 26,  MVT::v2f64,// ->77735
/*77709*/       OPC_Scope, 11, /*->77722*/ // 2 children in Scope
/*77711*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*77713*/         OPC_MorphNodeTo, TARGET_VAL(X86::VDIVPDrr), 0,
                      1/*#VTs*/, MVT::v2f64, 2/*#Ops*/, 0, 1, 
                  // Src: (fdiv:v2f64 VR128:v2f64:$src1, VR128:v2f64:$src2) - Complexity = 3
                  // Dst: (VDIVPDrr:v2f64 VR128:v2f64:$src1, VR128:v2f64:$src2)
/*77722*/       /*Scope*/ 11, /*->77734*/
/*77723*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*77725*/         OPC_MorphNodeTo, TARGET_VAL(X86::DIVPDrr), 0,
                      1/*#VTs*/, MVT::v2f64, 2/*#Ops*/, 0, 1, 
                  // Src: (fdiv:v2f64 VR128:v2f64:$src1, VR128:v2f64:$src2) - Complexity = 3
                  // Dst: (DIVPDrr:v2f64 VR128:v2f64:$src1, VR128:v2f64:$src2)
/*77734*/       0, /*End of Scope*/
              /*SwitchType*/ 11,  MVT::v8f32,// ->77748
/*77737*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*77739*/       OPC_MorphNodeTo, TARGET_VAL(X86::VDIVPSYrr), 0,
                    1/*#VTs*/, MVT::v8f32, 2/*#Ops*/, 0, 1, 
                // Src: (fdiv:v8f32 VR256:v8f32:$src1, VR256:v8f32:$src2) - Complexity = 3
                // Dst: (VDIVPSYrr:v8f32 VR256:v8f32:$src1, VR256:v8f32:$src2)
              /*SwitchType*/ 11,  MVT::v4f64,// ->77761
/*77750*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*77752*/       OPC_MorphNodeTo, TARGET_VAL(X86::VDIVPDYrr), 0,
                    1/*#VTs*/, MVT::v4f64, 2/*#Ops*/, 0, 1, 
                // Src: (fdiv:v4f64 VR256:v4f64:$src1, VR256:v4f64:$src2) - Complexity = 3
                // Dst: (VDIVPDYrr:v4f64 VR256:v4f64:$src1, VR256:v4f64:$src2)
              0, // EndSwitchType
/*77762*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 111|128,3/*495*/,  TARGET_VAL(ISD::SINT_TO_FP),// ->78262
/*77767*/   OPC_Scope, 116|128,1/*244*/, /*->78014*/ // 4 children in Scope
/*77770*/     OPC_MoveChild, 0,
/*77772*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*77775*/     OPC_RecordMemRef,
/*77776*/     OPC_RecordNode, // #0 = 'ld' chained node
/*77777*/     OPC_RecordChild1, // #1 = $src
/*77778*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*77780*/     OPC_SwitchType /*2 cases */, 114,  MVT::i32,// ->77897
/*77783*/       OPC_Scope, 23, /*->77808*/ // 4 children in Scope
/*77785*/         OPC_CheckPredicate, 7, // Predicate_loadi32
/*77787*/         OPC_MoveParent,
/*77788*/         OPC_CheckType, MVT::f32,
/*77790*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*77792*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*77795*/         OPC_EmitMergeInputChains1_0,
/*77796*/         OPC_MorphNodeTo, TARGET_VAL(X86::CVTSI2SSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (sint_to_fp:f32 (ld:i32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>) - Complexity = 25
                  // Dst: (CVTSI2SSrm:f32 addr:iPTR:$src)
/*77808*/       /*Scope*/ 23, /*->77832*/
/*77809*/         OPC_CheckPredicate, 7, // Predicate_loadi32
/*77811*/         OPC_MoveParent,
/*77812*/         OPC_CheckType, MVT::f64,
/*77814*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*77816*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*77819*/         OPC_EmitMergeInputChains1_0,
/*77820*/         OPC_MorphNodeTo, TARGET_VAL(X86::CVTSI2SDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (sint_to_fp:f64 (ld:i32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>) - Complexity = 25
                  // Dst: (CVTSI2SDrm:f64 addr:iPTR:$src)
/*77832*/       /*Scope*/ 31, /*->77864*/
/*77833*/         OPC_CheckPredicate, 7, // Predicate_loadi32
/*77835*/         OPC_MoveParent,
/*77836*/         OPC_CheckType, MVT::f32,
/*77838*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*77840*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*77843*/         OPC_EmitMergeInputChains1_0,
/*77844*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      1/*#VTs*/, MVT::f32, 0/*#Ops*/,  // Results = #7 
/*77851*/         OPC_MorphNodeTo, TARGET_VAL(X86::VCVTSI2SSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::f32, 6/*#Ops*/, 7, 2, 3, 4, 5, 6, 
                  // Src: (sint_to_fp:f32 (ld:i32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>) - Complexity = 25
                  // Dst: (VCVTSI2SSrm:f32 (IMPLICIT_DEF:f32), addr:iPTR:$src)
/*77864*/       /*Scope*/ 31, /*->77896*/
/*77865*/         OPC_CheckPredicate, 7, // Predicate_loadi32
/*77867*/         OPC_MoveParent,
/*77868*/         OPC_CheckType, MVT::f64,
/*77870*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*77872*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*77875*/         OPC_EmitMergeInputChains1_0,
/*77876*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      1/*#VTs*/, MVT::f64, 0/*#Ops*/,  // Results = #7 
/*77883*/         OPC_MorphNodeTo, TARGET_VAL(X86::VCVTSI2SDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::f64, 6/*#Ops*/, 7, 2, 3, 4, 5, 6, 
                  // Src: (sint_to_fp:f64 (ld:i32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>) - Complexity = 25
                  // Dst: (VCVTSI2SDrm:f64 (IMPLICIT_DEF:f64), addr:iPTR:$src)
/*77896*/       0, /*End of Scope*/
              /*SwitchType*/ 114,  MVT::i64,// ->78013
/*77899*/       OPC_Scope, 23, /*->77924*/ // 4 children in Scope
/*77901*/         OPC_CheckPredicate, 3, // Predicate_load
/*77903*/         OPC_MoveParent,
/*77904*/         OPC_CheckType, MVT::f32,
/*77906*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*77908*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*77911*/         OPC_EmitMergeInputChains1_0,
/*77912*/         OPC_MorphNodeTo, TARGET_VAL(X86::CVTSI2SS64rm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (sint_to_fp:f32 (ld:i64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (CVTSI2SS64rm:f32 addr:iPTR:$src)
/*77924*/       /*Scope*/ 23, /*->77948*/
/*77925*/         OPC_CheckPredicate, 3, // Predicate_load
/*77927*/         OPC_MoveParent,
/*77928*/         OPC_CheckType, MVT::f64,
/*77930*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*77932*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*77935*/         OPC_EmitMergeInputChains1_0,
/*77936*/         OPC_MorphNodeTo, TARGET_VAL(X86::CVTSI2SD64rm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (sint_to_fp:f64 (ld:i64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (CVTSI2SD64rm:f64 addr:iPTR:$src)
/*77948*/       /*Scope*/ 31, /*->77980*/
/*77949*/         OPC_CheckPredicate, 3, // Predicate_load
/*77951*/         OPC_MoveParent,
/*77952*/         OPC_CheckType, MVT::f32,
/*77954*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*77956*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*77959*/         OPC_EmitMergeInputChains1_0,
/*77960*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      1/*#VTs*/, MVT::f32, 0/*#Ops*/,  // Results = #7 
/*77967*/         OPC_MorphNodeTo, TARGET_VAL(X86::VCVTSI2SS64rm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::f32, 6/*#Ops*/, 7, 2, 3, 4, 5, 6, 
                  // Src: (sint_to_fp:f32 (ld:i64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (VCVTSI2SS64rm:f32 (IMPLICIT_DEF:f32), addr:iPTR:$src)
/*77980*/       /*Scope*/ 31, /*->78012*/
/*77981*/         OPC_CheckPredicate, 3, // Predicate_load
/*77983*/         OPC_MoveParent,
/*77984*/         OPC_CheckType, MVT::f64,
/*77986*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*77988*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*77991*/         OPC_EmitMergeInputChains1_0,
/*77992*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      1/*#VTs*/, MVT::f64, 0/*#Ops*/,  // Results = #7 
/*77999*/         OPC_MorphNodeTo, TARGET_VAL(X86::VCVTSI2SD64rm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::f64, 6/*#Ops*/, 7, 2, 3, 4, 5, 6, 
                  // Src: (sint_to_fp:f64 (ld:i64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (VCVTSI2SD64rm:f64 (IMPLICIT_DEF:f64), addr:iPTR:$src)
/*78012*/       0, /*End of Scope*/
              0, // EndSwitchType
/*78014*/   /*Scope*/ 21|128,1/*149*/, /*->78165*/
/*78016*/     OPC_RecordChild0, // #0 = $src
/*78017*/     OPC_Scope, 72, /*->78091*/ // 2 children in Scope
/*78019*/       OPC_CheckChild0Type, MVT::i32,
/*78021*/       OPC_SwitchType /*2 cases */, 32,  MVT::f32,// ->78056
/*78024*/         OPC_Scope, 10, /*->78036*/ // 2 children in Scope
/*78026*/           OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*78028*/           OPC_MorphNodeTo, TARGET_VAL(X86::CVTSI2SSrr), 0,
                        1/*#VTs*/, MVT::f32, 1/*#Ops*/, 0, 
                    // Src: (sint_to_fp:f32 GR32:i32:$src) - Complexity = 3
                    // Dst: (CVTSI2SSrr:f32 GR32:i32:$src)
/*78036*/         /*Scope*/ 18, /*->78055*/
/*78037*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*78039*/           OPC_EmitNode, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        1/*#VTs*/, MVT::f32, 0/*#Ops*/,  // Results = #1 
/*78046*/           OPC_MorphNodeTo, TARGET_VAL(X86::VCVTSI2SSrr), 0,
                        1/*#VTs*/, MVT::f32, 2/*#Ops*/, 1, 0, 
                    // Src: (sint_to_fp:f32 GR32:i32:$src) - Complexity = 3
                    // Dst: (VCVTSI2SSrr:f32 (IMPLICIT_DEF:f32), GR32:i32:$src)
/*78055*/         0, /*End of Scope*/
                /*SwitchType*/ 32,  MVT::f64,// ->78090
/*78058*/         OPC_Scope, 10, /*->78070*/ // 2 children in Scope
/*78060*/           OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*78062*/           OPC_MorphNodeTo, TARGET_VAL(X86::CVTSI2SDrr), 0,
                        1/*#VTs*/, MVT::f64, 1/*#Ops*/, 0, 
                    // Src: (sint_to_fp:f64 GR32:i32:$src) - Complexity = 3
                    // Dst: (CVTSI2SDrr:f64 GR32:i32:$src)
/*78070*/         /*Scope*/ 18, /*->78089*/
/*78071*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*78073*/           OPC_EmitNode, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        1/*#VTs*/, MVT::f64, 0/*#Ops*/,  // Results = #1 
/*78080*/           OPC_MorphNodeTo, TARGET_VAL(X86::VCVTSI2SDrr), 0,
                        1/*#VTs*/, MVT::f64, 2/*#Ops*/, 1, 0, 
                    // Src: (sint_to_fp:f64 GR32:i32:$src) - Complexity = 3
                    // Dst: (VCVTSI2SDrr:f64 (IMPLICIT_DEF:f64), GR32:i32:$src)
/*78089*/         0, /*End of Scope*/
                0, // EndSwitchType
/*78091*/     /*Scope*/ 72, /*->78164*/
/*78092*/       OPC_CheckChild0Type, MVT::i64,
/*78094*/       OPC_SwitchType /*2 cases */, 32,  MVT::f32,// ->78129
/*78097*/         OPC_Scope, 10, /*->78109*/ // 2 children in Scope
/*78099*/           OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*78101*/           OPC_MorphNodeTo, TARGET_VAL(X86::CVTSI2SS64rr), 0,
                        1/*#VTs*/, MVT::f32, 1/*#Ops*/, 0, 
                    // Src: (sint_to_fp:f32 GR64:i64:$src) - Complexity = 3
                    // Dst: (CVTSI2SS64rr:f32 GR64:i64:$src)
/*78109*/         /*Scope*/ 18, /*->78128*/
/*78110*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*78112*/           OPC_EmitNode, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        1/*#VTs*/, MVT::f32, 0/*#Ops*/,  // Results = #1 
/*78119*/           OPC_MorphNodeTo, TARGET_VAL(X86::VCVTSI2SS64rr), 0,
                        1/*#VTs*/, MVT::f32, 2/*#Ops*/, 1, 0, 
                    // Src: (sint_to_fp:f32 GR64:i64:$src) - Complexity = 3
                    // Dst: (VCVTSI2SS64rr:f32 (IMPLICIT_DEF:f32), GR64:i64:$src)
/*78128*/         0, /*End of Scope*/
                /*SwitchType*/ 32,  MVT::f64,// ->78163
/*78131*/         OPC_Scope, 10, /*->78143*/ // 2 children in Scope
/*78133*/           OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*78135*/           OPC_MorphNodeTo, TARGET_VAL(X86::CVTSI2SD64rr), 0,
                        1/*#VTs*/, MVT::f64, 1/*#Ops*/, 0, 
                    // Src: (sint_to_fp:f64 GR64:i64:$src) - Complexity = 3
                    // Dst: (CVTSI2SD64rr:f64 GR64:i64:$src)
/*78143*/         /*Scope*/ 18, /*->78162*/
/*78144*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*78146*/           OPC_EmitNode, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        1/*#VTs*/, MVT::f64, 0/*#Ops*/,  // Results = #1 
/*78153*/           OPC_MorphNodeTo, TARGET_VAL(X86::VCVTSI2SD64rr), 0,
                        1/*#VTs*/, MVT::f64, 2/*#Ops*/, 1, 0, 
                    // Src: (sint_to_fp:f64 GR64:i64:$src) - Complexity = 3
                    // Dst: (VCVTSI2SD64rr:f64 (IMPLICIT_DEF:f64), GR64:i64:$src)
/*78162*/         0, /*End of Scope*/
                0, // EndSwitchType
/*78164*/     0, /*End of Scope*/
/*78165*/   /*Scope*/ 35, /*->78201*/
/*78166*/     OPC_MoveChild, 0,
/*78168*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*78171*/     OPC_RecordMemRef,
/*78172*/     OPC_RecordNode, // #0 = 'ld' chained node
/*78173*/     OPC_RecordChild1, // #1 = $src
/*78174*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*78176*/     OPC_CheckPredicate, 3, // Predicate_load
/*78178*/     OPC_CheckPredicate, 23, // Predicate_memop
/*78180*/     OPC_CheckType, MVT::v4i32,
/*78182*/     OPC_MoveParent,
/*78183*/     OPC_CheckType, MVT::v4f64,
/*78185*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*78188*/     OPC_EmitMergeInputChains1_0,
/*78189*/     OPC_MorphNodeTo, TARGET_VAL(X86::VCVTDQ2PDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                  1/*#VTs*/, MVT::v4f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
              // Src: (sint_to_fp:v4f64 (ld:v4i32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
              // Dst: (VCVTDQ2PDYrm:v4f64 addr:iPTR:$src)
/*78201*/   /*Scope*/ 59, /*->78261*/
/*78202*/     OPC_RecordChild0, // #0 = $src
/*78203*/     OPC_Scope, 40, /*->78245*/ // 2 children in Scope
/*78205*/       OPC_CheckChild0Type, MVT::v4i32,
/*78207*/       OPC_SwitchType /*2 cases */, 24,  MVT::v4f32,// ->78234
/*78210*/         OPC_Scope, 10, /*->78222*/ // 2 children in Scope
/*78212*/           OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*78214*/           OPC_MorphNodeTo, TARGET_VAL(X86::Int_CVTDQ2PSrr), 0,
                        1/*#VTs*/, MVT::v4f32, 1/*#Ops*/, 0, 
                    // Src: (sint_to_fp:v4f32 VR128:v4i32:$src) - Complexity = 3
                    // Dst: (Int_CVTDQ2PSrr:v4f32 VR128:v4i32:$src)
/*78222*/         /*Scope*/ 10, /*->78233*/
/*78223*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*78225*/           OPC_MorphNodeTo, TARGET_VAL(X86::Int_VCVTDQ2PSrr), 0,
                        1/*#VTs*/, MVT::v4f32, 1/*#Ops*/, 0, 
                    // Src: (sint_to_fp:v4f32 VR128:v4i32:$src) - Complexity = 3
                    // Dst: (Int_VCVTDQ2PSrr:v4f32 VR128:v4i32:$src)
/*78233*/         0, /*End of Scope*/
                /*SwitchType*/ 8,  MVT::v4f64,// ->78244
/*78236*/         OPC_MorphNodeTo, TARGET_VAL(X86::VCVTDQ2PDYrr), 0,
                      1/*#VTs*/, MVT::v4f64, 1/*#Ops*/, 0, 
                  // Src: (sint_to_fp:v4f64 VR128:v4i32:$src) - Complexity = 3
                  // Dst: (VCVTDQ2PDYrr:v4f64 VR128:v4i32:$src)
                0, // EndSwitchType
/*78245*/     /*Scope*/ 14, /*->78260*/
/*78246*/       OPC_CheckChild0Type, MVT::v8i32,
/*78248*/       OPC_CheckType, MVT::v8f32,
/*78250*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*78252*/       OPC_MorphNodeTo, TARGET_VAL(X86::VCVTDQ2PSYrr), 0,
                    1/*#VTs*/, MVT::v8f32, 1/*#Ops*/, 0, 
                // Src: (sint_to_fp:v8f32 VR256:v8i32:$src) - Complexity = 3
                // Dst: (VCVTDQ2PSYrr:v8f32 VR256:v8i32:$src)
/*78260*/     0, /*End of Scope*/
/*78261*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 44|128,1/*172*/,  TARGET_VAL(ISD::FP_ROUND),// ->78438
/*78266*/   OPC_Scope, 35, /*->78303*/ // 4 children in Scope
/*78268*/     OPC_MoveChild, 0,
/*78270*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*78273*/     OPC_RecordMemRef,
/*78274*/     OPC_RecordNode, // #0 = 'ld' chained node
/*78275*/     OPC_RecordChild1, // #1 = $src
/*78276*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*78278*/     OPC_CheckPredicate, 3, // Predicate_load
/*78280*/     OPC_CheckType, MVT::f64,
/*78282*/     OPC_MoveParent,
/*78283*/     OPC_CheckType, MVT::f32,
/*78285*/     OPC_CheckPatternPredicate, 24, // (Subtarget->hasSSE2()) && (OptForSize)
/*78287*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*78290*/     OPC_EmitMergeInputChains1_0,
/*78291*/     OPC_MorphNodeTo, TARGET_VAL(X86::CVTSD2SSrm), 0|OPFL_Chain|OPFL_MemRefs,
                  1/*#VTs*/, MVT::f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
              // Src: (fround:f32 (ld:f64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
              // Dst: (CVTSD2SSrm:f32 addr:iPTR:$src)
/*78303*/   /*Scope*/ 85, /*->78389*/
/*78304*/     OPC_RecordChild0, // #0 = $src
/*78305*/     OPC_SwitchType /*2 cases */, 64,  MVT::f32,// ->78372
/*78308*/       OPC_Scope, 16, /*->78326*/ // 3 children in Scope
/*78310*/         OPC_CheckChild0Type, MVT::f64,
/*78312*/         OPC_CheckPatternPredicate, 8, // (!Subtarget->hasXMM())
/*78314*/         OPC_EmitInteger, MVT::i32, X86::RFP32RegClassID,
/*78317*/         OPC_MorphNodeTo, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      1/*#VTs*/, MVT::f32, 2/*#Ops*/, 0, 1, 
                  // Src: (fround:f32 RFP64:f64:$src) - Complexity = 3
                  // Dst: (COPY_TO_REGCLASS:f32 RFP64:f64:$src, RFP32:f32)
/*78326*/       /*Scope*/ 16, /*->78343*/
/*78327*/         OPC_CheckChild0Type, MVT::f80,
/*78329*/         OPC_CheckPatternPredicate, 8, // (!Subtarget->hasXMM())
/*78331*/         OPC_EmitInteger, MVT::i32, X86::RFP32RegClassID,
/*78334*/         OPC_MorphNodeTo, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      1/*#VTs*/, MVT::f32, 2/*#Ops*/, 0, 1, 
                  // Src: (fround:f32 RFP80:f80:$src) - Complexity = 3
                  // Dst: (COPY_TO_REGCLASS:f32 RFP80:f80:$src, RFP32:f32)
/*78343*/       /*Scope*/ 27, /*->78371*/
/*78344*/         OPC_CheckChild0Type, MVT::f64,
/*78346*/         OPC_Scope, 11, /*->78359*/ // 2 children in Scope
/*78348*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*78350*/           OPC_MorphNodeTo, TARGET_VAL(X86::VCVTSD2SSrr), 0,
                        1/*#VTs*/, MVT::f32, 2/*#Ops*/, 0, 0, 
                    // Src: (fround:f32 FR64:f64:$src) - Complexity = 3
                    // Dst: (VCVTSD2SSrr:f32 FR64:f64:$src, FR64:f64:$src)
/*78359*/         /*Scope*/ 10, /*->78370*/
/*78360*/           OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*78362*/           OPC_MorphNodeTo, TARGET_VAL(X86::CVTSD2SSrr), 0,
                        1/*#VTs*/, MVT::f32, 1/*#Ops*/, 0, 
                    // Src: (fround:f32 FR64:f64:$src) - Complexity = 3
                    // Dst: (CVTSD2SSrr:f32 FR64:f64:$src)
/*78370*/         0, /*End of Scope*/
/*78371*/       0, /*End of Scope*/
              /*SwitchType*/ 14,  MVT::f64,// ->78388
/*78374*/       OPC_CheckPatternPredicate, 9, // (!Subtarget->hasXMMInt())
/*78376*/       OPC_EmitInteger, MVT::i32, X86::RFP64RegClassID,
/*78379*/       OPC_MorphNodeTo, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    1/*#VTs*/, MVT::f64, 2/*#Ops*/, 0, 1, 
                // Src: (fround:f64 RFP80:f80:$src) - Complexity = 3
                // Dst: (COPY_TO_REGCLASS:f64 RFP80:f80:$src, RFP64:f64)
              0, // EndSwitchType
/*78389*/   /*Scope*/ 33, /*->78423*/
/*78390*/     OPC_MoveChild, 0,
/*78392*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*78395*/     OPC_RecordMemRef,
/*78396*/     OPC_RecordNode, // #0 = 'ld' chained node
/*78397*/     OPC_RecordChild1, // #1 = $src
/*78398*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*78400*/     OPC_CheckPredicate, 3, // Predicate_load
/*78402*/     OPC_CheckType, MVT::v4f64,
/*78404*/     OPC_MoveParent,
/*78405*/     OPC_CheckType, MVT::v4f32,
/*78407*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*78410*/     OPC_EmitMergeInputChains1_0,
/*78411*/     OPC_MorphNodeTo, TARGET_VAL(X86::VCVTPD2PSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                  1/*#VTs*/, MVT::v4f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
              // Src: (fround:v4f32 (ld:v4f64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
              // Dst: (VCVTPD2PSYrm:v4f32 addr:iPTR:$src)
/*78423*/   /*Scope*/ 13, /*->78437*/
/*78424*/     OPC_RecordChild0, // #0 = $src
/*78425*/     OPC_CheckChild0Type, MVT::v4f64,
/*78427*/     OPC_CheckType, MVT::v4f32,
/*78429*/     OPC_MorphNodeTo, TARGET_VAL(X86::VCVTPD2PSYrr), 0,
                  1/*#VTs*/, MVT::v4f32, 1/*#Ops*/, 0, 
              // Src: (fround:v4f32 VR256:v4f64:$src) - Complexity = 3
              // Dst: (VCVTPD2PSYrr:v4f32 VR256:v4f64:$src)
/*78437*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 74|128,1/*202*/,  TARGET_VAL(ISD::FP_EXTEND),// ->78644
/*78442*/   OPC_Scope, 65, /*->78509*/ // 4 children in Scope
/*78444*/     OPC_MoveChild, 0,
/*78446*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*78449*/     OPC_RecordMemRef,
/*78450*/     OPC_RecordNode, // #0 = 'ld' chained node
/*78451*/     OPC_RecordChild1, // #1 = $src
/*78452*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*78454*/     OPC_CheckPredicate, 3, // Predicate_load
/*78456*/     OPC_CheckType, MVT::f32,
/*78458*/     OPC_MoveParent,
/*78459*/     OPC_CheckType, MVT::f64,
/*78461*/     OPC_Scope, 18, /*->78481*/ // 2 children in Scope
/*78463*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*78465*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*78468*/       OPC_EmitMergeInputChains1_0,
/*78469*/       OPC_MorphNodeTo, TARGET_VAL(X86::CVTSS2SDrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (fextend:f64 (ld:f32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                // Dst: (CVTSS2SDrm:f64 addr:iPTR:$src)
/*78481*/     /*Scope*/ 26, /*->78508*/
/*78482*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*78484*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*78487*/       OPC_EmitMergeInputChains1_0,
/*78488*/       OPC_EmitNode, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    1/*#VTs*/, MVT::f32, 0/*#Ops*/,  // Results = #7 
/*78495*/       OPC_MorphNodeTo, TARGET_VAL(X86::VCVTSS2SDrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::f64, 6/*#Ops*/, 7, 2, 3, 4, 5, 6, 
                // Src: (fextend:f64 (ld:f32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                // Dst: (VCVTSS2SDrm:f64 (IMPLICIT_DEF:f32), addr:iPTR:$src)
/*78508*/     0, /*End of Scope*/
/*78509*/   /*Scope*/ 85, /*->78595*/
/*78510*/     OPC_RecordChild0, // #0 = $src
/*78511*/     OPC_Scope, 62, /*->78575*/ // 2 children in Scope
/*78513*/       OPC_CheckChild0Type, MVT::f32,
/*78515*/       OPC_SwitchType /*2 cases */, 40,  MVT::f64,// ->78558
/*78518*/         OPC_Scope, 14, /*->78534*/ // 3 children in Scope
/*78520*/           OPC_CheckPatternPredicate, 8, // (!Subtarget->hasXMM())
/*78522*/           OPC_EmitInteger, MVT::i32, X86::RFP64RegClassID,
/*78525*/           OPC_MorphNodeTo, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        1/*#VTs*/, MVT::f64, 2/*#Ops*/, 0, 1, 
                    // Src: (fextend:f64 RFP32:f32:$src) - Complexity = 3
                    // Dst: (COPY_TO_REGCLASS:f64 RFP32:f32:$src, RFP64:f64)
/*78534*/         /*Scope*/ 11, /*->78546*/
/*78535*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*78537*/           OPC_MorphNodeTo, TARGET_VAL(X86::VCVTSS2SDrr), 0,
                        1/*#VTs*/, MVT::f64, 2/*#Ops*/, 0, 0, 
                    // Src: (fextend:f64 FR32:f32:$src) - Complexity = 3
                    // Dst: (VCVTSS2SDrr:f64 FR32:f32:$src, FR32:f32:$src)
/*78546*/         /*Scope*/ 10, /*->78557*/
/*78547*/           OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*78549*/           OPC_MorphNodeTo, TARGET_VAL(X86::CVTSS2SDrr), 0,
                        1/*#VTs*/, MVT::f64, 1/*#Ops*/, 0, 
                    // Src: (fextend:f64 FR32:f32:$src) - Complexity = 3
                    // Dst: (CVTSS2SDrr:f64 FR32:f32:$src)
/*78557*/         0, /*End of Scope*/
                /*SwitchType*/ 14,  MVT::f80,// ->78574
/*78560*/         OPC_CheckPatternPredicate, 8, // (!Subtarget->hasXMM())
/*78562*/         OPC_EmitInteger, MVT::i32, X86::RFP80RegClassID,
/*78565*/         OPC_MorphNodeTo, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      1/*#VTs*/, MVT::f80, 2/*#Ops*/, 0, 1, 
                  // Src: (fextend:f80 RFP32:f32:$src) - Complexity = 3
                  // Dst: (COPY_TO_REGCLASS:f80 RFP32:f32:$src, RFP80:f80)
                0, // EndSwitchType
/*78575*/     /*Scope*/ 18, /*->78594*/
/*78576*/       OPC_CheckChild0Type, MVT::f64,
/*78578*/       OPC_CheckType, MVT::f80,
/*78580*/       OPC_CheckPatternPredicate, 9, // (!Subtarget->hasXMMInt())
/*78582*/       OPC_EmitInteger, MVT::i32, X86::RFP80RegClassID,
/*78585*/       OPC_MorphNodeTo, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    1/*#VTs*/, MVT::f80, 2/*#Ops*/, 0, 1, 
                // Src: (fextend:f80 RFP64:f64:$src) - Complexity = 3
                // Dst: (COPY_TO_REGCLASS:f80 RFP64:f64:$src, RFP80:f80)
/*78594*/     0, /*End of Scope*/
/*78595*/   /*Scope*/ 33, /*->78629*/
/*78596*/     OPC_MoveChild, 0,
/*78598*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*78601*/     OPC_RecordMemRef,
/*78602*/     OPC_RecordNode, // #0 = 'ld' chained node
/*78603*/     OPC_RecordChild1, // #1 = $src
/*78604*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*78606*/     OPC_CheckPredicate, 3, // Predicate_load
/*78608*/     OPC_CheckType, MVT::v4f32,
/*78610*/     OPC_MoveParent,
/*78611*/     OPC_CheckType, MVT::v4f64,
/*78613*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*78616*/     OPC_EmitMergeInputChains1_0,
/*78617*/     OPC_MorphNodeTo, TARGET_VAL(X86::VCVTPS2PDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                  1/*#VTs*/, MVT::v4f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
              // Src: (fextend:v4f64 (ld:v4f32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
              // Dst: (VCVTPS2PDYrm:v4f64 addr:iPTR:$src)
/*78629*/   /*Scope*/ 13, /*->78643*/
/*78630*/     OPC_RecordChild0, // #0 = $src
/*78631*/     OPC_CheckChild0Type, MVT::v4f32,
/*78633*/     OPC_CheckType, MVT::v4f64,
/*78635*/     OPC_MorphNodeTo, TARGET_VAL(X86::VCVTPS2PDYrr), 0,
                  1/*#VTs*/, MVT::v4f64, 1/*#Ops*/, 0, 
              // Src: (fextend:v4f64 VR128:v4f32:$src) - Complexity = 3
              // Dst: (VCVTPS2PDYrr:v4f64 VR128:v4f32:$src)
/*78643*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 23|128,2/*279*/,  TARGET_VAL(X86ISD::FAND),// ->78927
/*78648*/   OPC_Scope, 107, /*->78757*/ // 3 children in Scope
/*78650*/     OPC_RecordChild0, // #0 = $src1
/*78651*/     OPC_MoveChild, 1,
/*78653*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*78656*/     OPC_RecordMemRef,
/*78657*/     OPC_RecordNode, // #1 = 'ld' chained node
/*78658*/     OPC_CheckFoldableChainNode,
/*78659*/     OPC_RecordChild1, // #2 = $src2
/*78660*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*78662*/     OPC_CheckPredicate, 3, // Predicate_load
/*78664*/     OPC_CheckPredicate, 23, // Predicate_memop
/*78666*/     OPC_MoveParent,
/*78667*/     OPC_SwitchType /*2 cases */, 42,  MVT::f32,// ->78712
/*78670*/       OPC_Scope, 19, /*->78691*/ // 2 children in Scope
/*78672*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*78674*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*78677*/         OPC_EmitMergeInputChains1_1,
/*78678*/         OPC_MorphNodeTo, TARGET_VAL(X86::VFsANDPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (X86fand:f32 FR32:f32:$src1, (ld:f32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                  // Dst: (VFsANDPSrm:f32 FR32:f32:$src1, addr:iPTR:$src2)
/*78691*/       /*Scope*/ 19, /*->78711*/
/*78692*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*78694*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*78697*/         OPC_EmitMergeInputChains1_1,
/*78698*/         OPC_MorphNodeTo, TARGET_VAL(X86::FsANDPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (X86fand:f32 FR32:f32:$src1, (ld:f32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                  // Dst: (FsANDPSrm:f32 FR32:f32:$src1, addr:iPTR:$src2)
/*78711*/       0, /*End of Scope*/
              /*SwitchType*/ 42,  MVT::f64,// ->78756
/*78714*/       OPC_Scope, 19, /*->78735*/ // 2 children in Scope
/*78716*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*78718*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*78721*/         OPC_EmitMergeInputChains1_1,
/*78722*/         OPC_MorphNodeTo, TARGET_VAL(X86::VFsANDPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (X86fand:f64 FR64:f64:$src1, (ld:f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                  // Dst: (VFsANDPDrm:f64 FR64:f64:$src1, addr:iPTR:$src2)
/*78735*/       /*Scope*/ 19, /*->78755*/
/*78736*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*78738*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*78741*/         OPC_EmitMergeInputChains1_1,
/*78742*/         OPC_MorphNodeTo, TARGET_VAL(X86::FsANDPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (X86fand:f64 FR64:f64:$src1, (ld:f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                  // Dst: (FsANDPDrm:f64 FR64:f64:$src1, addr:iPTR:$src2)
/*78755*/       0, /*End of Scope*/
              0, // EndSwitchType
/*78757*/   /*Scope*/ 107, /*->78865*/
/*78758*/     OPC_MoveChild, 0,
/*78760*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*78763*/     OPC_RecordMemRef,
/*78764*/     OPC_RecordNode, // #0 = 'ld' chained node
/*78765*/     OPC_CheckFoldableChainNode,
/*78766*/     OPC_RecordChild1, // #1 = $src2
/*78767*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*78769*/     OPC_CheckPredicate, 3, // Predicate_load
/*78771*/     OPC_CheckPredicate, 23, // Predicate_memop
/*78773*/     OPC_MoveParent,
/*78774*/     OPC_RecordChild1, // #2 = $src1
/*78775*/     OPC_SwitchType /*2 cases */, 42,  MVT::f32,// ->78820
/*78778*/       OPC_Scope, 19, /*->78799*/ // 2 children in Scope
/*78780*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*78782*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*78785*/         OPC_EmitMergeInputChains1_0,
/*78786*/         OPC_MorphNodeTo, TARGET_VAL(X86::VFsANDPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (X86fand:f32 (ld:f32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, FR32:f32:$src1) - Complexity = 25
                  // Dst: (VFsANDPSrm:f32 FR32:f32:$src1, addr:iPTR:$src2)
/*78799*/       /*Scope*/ 19, /*->78819*/
/*78800*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*78802*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*78805*/         OPC_EmitMergeInputChains1_0,
/*78806*/         OPC_MorphNodeTo, TARGET_VAL(X86::FsANDPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (X86fand:f32 (ld:f32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, FR32:f32:$src1) - Complexity = 25
                  // Dst: (FsANDPSrm:f32 FR32:f32:$src1, addr:iPTR:$src2)
/*78819*/       0, /*End of Scope*/
              /*SwitchType*/ 42,  MVT::f64,// ->78864
/*78822*/       OPC_Scope, 19, /*->78843*/ // 2 children in Scope
/*78824*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*78826*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*78829*/         OPC_EmitMergeInputChains1_0,
/*78830*/         OPC_MorphNodeTo, TARGET_VAL(X86::VFsANDPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (X86fand:f64 (ld:f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, FR64:f64:$src1) - Complexity = 25
                  // Dst: (VFsANDPDrm:f64 FR64:f64:$src1, addr:iPTR:$src2)
/*78843*/       /*Scope*/ 19, /*->78863*/
/*78844*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*78846*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*78849*/         OPC_EmitMergeInputChains1_0,
/*78850*/         OPC_MorphNodeTo, TARGET_VAL(X86::FsANDPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (X86fand:f64 (ld:f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, FR64:f64:$src1) - Complexity = 25
                  // Dst: (FsANDPDrm:f64 FR64:f64:$src1, addr:iPTR:$src2)
/*78863*/       0, /*End of Scope*/
              0, // EndSwitchType
/*78865*/   /*Scope*/ 60, /*->78926*/
/*78866*/     OPC_RecordChild0, // #0 = $src1
/*78867*/     OPC_RecordChild1, // #1 = $src2
/*78868*/     OPC_SwitchType /*2 cases */, 26,  MVT::f32,// ->78897
/*78871*/       OPC_Scope, 11, /*->78884*/ // 2 children in Scope
/*78873*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*78875*/         OPC_MorphNodeTo, TARGET_VAL(X86::VFsANDPSrr), 0,
                      1/*#VTs*/, MVT::f32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86fand:f32 FR32:f32:$src1, FR32:f32:$src2) - Complexity = 3
                  // Dst: (VFsANDPSrr:f32 FR32:f32:$src1, FR32:f32:$src2)
/*78884*/       /*Scope*/ 11, /*->78896*/
/*78885*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*78887*/         OPC_MorphNodeTo, TARGET_VAL(X86::FsANDPSrr), 0,
                      1/*#VTs*/, MVT::f32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86fand:f32 FR32:f32:$src1, FR32:f32:$src2) - Complexity = 3
                  // Dst: (FsANDPSrr:f32 FR32:f32:$src1, FR32:f32:$src2)
/*78896*/       0, /*End of Scope*/
              /*SwitchType*/ 26,  MVT::f64,// ->78925
/*78899*/       OPC_Scope, 11, /*->78912*/ // 2 children in Scope
/*78901*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*78903*/         OPC_MorphNodeTo, TARGET_VAL(X86::VFsANDPDrr), 0,
                      1/*#VTs*/, MVT::f64, 2/*#Ops*/, 0, 1, 
                  // Src: (X86fand:f64 FR64:f64:$src1, FR64:f64:$src2) - Complexity = 3
                  // Dst: (VFsANDPDrr:f64 FR64:f64:$src1, FR64:f64:$src2)
/*78912*/       /*Scope*/ 11, /*->78924*/
/*78913*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*78915*/         OPC_MorphNodeTo, TARGET_VAL(X86::FsANDPDrr), 0,
                      1/*#VTs*/, MVT::f64, 2/*#Ops*/, 0, 1, 
                  // Src: (X86fand:f64 FR64:f64:$src1, FR64:f64:$src2) - Complexity = 3
                  // Dst: (FsANDPDrr:f64 FR64:f64:$src1, FR64:f64:$src2)
/*78924*/       0, /*End of Scope*/
              0, // EndSwitchType
/*78926*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 23|128,2/*279*/,  TARGET_VAL(X86ISD::FOR),// ->79210
/*78931*/   OPC_Scope, 107, /*->79040*/ // 3 children in Scope
/*78933*/     OPC_RecordChild0, // #0 = $src1
/*78934*/     OPC_MoveChild, 1,
/*78936*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*78939*/     OPC_RecordMemRef,
/*78940*/     OPC_RecordNode, // #1 = 'ld' chained node
/*78941*/     OPC_CheckFoldableChainNode,
/*78942*/     OPC_RecordChild1, // #2 = $src2
/*78943*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*78945*/     OPC_CheckPredicate, 3, // Predicate_load
/*78947*/     OPC_CheckPredicate, 23, // Predicate_memop
/*78949*/     OPC_MoveParent,
/*78950*/     OPC_SwitchType /*2 cases */, 42,  MVT::f32,// ->78995
/*78953*/       OPC_Scope, 19, /*->78974*/ // 2 children in Scope
/*78955*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*78957*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*78960*/         OPC_EmitMergeInputChains1_1,
/*78961*/         OPC_MorphNodeTo, TARGET_VAL(X86::VFsORPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (X86for:f32 FR32:f32:$src1, (ld:f32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                  // Dst: (VFsORPSrm:f32 FR32:f32:$src1, addr:iPTR:$src2)
/*78974*/       /*Scope*/ 19, /*->78994*/
/*78975*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*78977*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*78980*/         OPC_EmitMergeInputChains1_1,
/*78981*/         OPC_MorphNodeTo, TARGET_VAL(X86::FsORPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (X86for:f32 FR32:f32:$src1, (ld:f32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                  // Dst: (FsORPSrm:f32 FR32:f32:$src1, addr:iPTR:$src2)
/*78994*/       0, /*End of Scope*/
              /*SwitchType*/ 42,  MVT::f64,// ->79039
/*78997*/       OPC_Scope, 19, /*->79018*/ // 2 children in Scope
/*78999*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*79001*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*79004*/         OPC_EmitMergeInputChains1_1,
/*79005*/         OPC_MorphNodeTo, TARGET_VAL(X86::VFsORPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (X86for:f64 FR64:f64:$src1, (ld:f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                  // Dst: (VFsORPDrm:f64 FR64:f64:$src1, addr:iPTR:$src2)
/*79018*/       /*Scope*/ 19, /*->79038*/
/*79019*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*79021*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*79024*/         OPC_EmitMergeInputChains1_1,
/*79025*/         OPC_MorphNodeTo, TARGET_VAL(X86::FsORPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (X86for:f64 FR64:f64:$src1, (ld:f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                  // Dst: (FsORPDrm:f64 FR64:f64:$src1, addr:iPTR:$src2)
/*79038*/       0, /*End of Scope*/
              0, // EndSwitchType
/*79040*/   /*Scope*/ 107, /*->79148*/
/*79041*/     OPC_MoveChild, 0,
/*79043*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*79046*/     OPC_RecordMemRef,
/*79047*/     OPC_RecordNode, // #0 = 'ld' chained node
/*79048*/     OPC_CheckFoldableChainNode,
/*79049*/     OPC_RecordChild1, // #1 = $src2
/*79050*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*79052*/     OPC_CheckPredicate, 3, // Predicate_load
/*79054*/     OPC_CheckPredicate, 23, // Predicate_memop
/*79056*/     OPC_MoveParent,
/*79057*/     OPC_RecordChild1, // #2 = $src1
/*79058*/     OPC_SwitchType /*2 cases */, 42,  MVT::f32,// ->79103
/*79061*/       OPC_Scope, 19, /*->79082*/ // 2 children in Scope
/*79063*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*79065*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*79068*/         OPC_EmitMergeInputChains1_0,
/*79069*/         OPC_MorphNodeTo, TARGET_VAL(X86::VFsORPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (X86for:f32 (ld:f32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, FR32:f32:$src1) - Complexity = 25
                  // Dst: (VFsORPSrm:f32 FR32:f32:$src1, addr:iPTR:$src2)
/*79082*/       /*Scope*/ 19, /*->79102*/
/*79083*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*79085*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*79088*/         OPC_EmitMergeInputChains1_0,
/*79089*/         OPC_MorphNodeTo, TARGET_VAL(X86::FsORPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (X86for:f32 (ld:f32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, FR32:f32:$src1) - Complexity = 25
                  // Dst: (FsORPSrm:f32 FR32:f32:$src1, addr:iPTR:$src2)
/*79102*/       0, /*End of Scope*/
              /*SwitchType*/ 42,  MVT::f64,// ->79147
/*79105*/       OPC_Scope, 19, /*->79126*/ // 2 children in Scope
/*79107*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*79109*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*79112*/         OPC_EmitMergeInputChains1_0,
/*79113*/         OPC_MorphNodeTo, TARGET_VAL(X86::VFsORPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (X86for:f64 (ld:f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, FR64:f64:$src1) - Complexity = 25
                  // Dst: (VFsORPDrm:f64 FR64:f64:$src1, addr:iPTR:$src2)
/*79126*/       /*Scope*/ 19, /*->79146*/
/*79127*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*79129*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*79132*/         OPC_EmitMergeInputChains1_0,
/*79133*/         OPC_MorphNodeTo, TARGET_VAL(X86::FsORPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (X86for:f64 (ld:f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, FR64:f64:$src1) - Complexity = 25
                  // Dst: (FsORPDrm:f64 FR64:f64:$src1, addr:iPTR:$src2)
/*79146*/       0, /*End of Scope*/
              0, // EndSwitchType
/*79148*/   /*Scope*/ 60, /*->79209*/
/*79149*/     OPC_RecordChild0, // #0 = $src1
/*79150*/     OPC_RecordChild1, // #1 = $src2
/*79151*/     OPC_SwitchType /*2 cases */, 26,  MVT::f32,// ->79180
/*79154*/       OPC_Scope, 11, /*->79167*/ // 2 children in Scope
/*79156*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*79158*/         OPC_MorphNodeTo, TARGET_VAL(X86::VFsORPSrr), 0,
                      1/*#VTs*/, MVT::f32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86for:f32 FR32:f32:$src1, FR32:f32:$src2) - Complexity = 3
                  // Dst: (VFsORPSrr:f32 FR32:f32:$src1, FR32:f32:$src2)
/*79167*/       /*Scope*/ 11, /*->79179*/
/*79168*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*79170*/         OPC_MorphNodeTo, TARGET_VAL(X86::FsORPSrr), 0,
                      1/*#VTs*/, MVT::f32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86for:f32 FR32:f32:$src1, FR32:f32:$src2) - Complexity = 3
                  // Dst: (FsORPSrr:f32 FR32:f32:$src1, FR32:f32:$src2)
/*79179*/       0, /*End of Scope*/
              /*SwitchType*/ 26,  MVT::f64,// ->79208
/*79182*/       OPC_Scope, 11, /*->79195*/ // 2 children in Scope
/*79184*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*79186*/         OPC_MorphNodeTo, TARGET_VAL(X86::VFsORPDrr), 0,
                      1/*#VTs*/, MVT::f64, 2/*#Ops*/, 0, 1, 
                  // Src: (X86for:f64 FR64:f64:$src1, FR64:f64:$src2) - Complexity = 3
                  // Dst: (VFsORPDrr:f64 FR64:f64:$src1, FR64:f64:$src2)
/*79195*/       /*Scope*/ 11, /*->79207*/
/*79196*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*79198*/         OPC_MorphNodeTo, TARGET_VAL(X86::FsORPDrr), 0,
                      1/*#VTs*/, MVT::f64, 2/*#Ops*/, 0, 1, 
                  // Src: (X86for:f64 FR64:f64:$src1, FR64:f64:$src2) - Complexity = 3
                  // Dst: (FsORPDrr:f64 FR64:f64:$src1, FR64:f64:$src2)
/*79207*/       0, /*End of Scope*/
              0, // EndSwitchType
/*79209*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 23|128,2/*279*/,  TARGET_VAL(X86ISD::FXOR),// ->79493
/*79214*/   OPC_Scope, 107, /*->79323*/ // 3 children in Scope
/*79216*/     OPC_RecordChild0, // #0 = $src1
/*79217*/     OPC_MoveChild, 1,
/*79219*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*79222*/     OPC_RecordMemRef,
/*79223*/     OPC_RecordNode, // #1 = 'ld' chained node
/*79224*/     OPC_CheckFoldableChainNode,
/*79225*/     OPC_RecordChild1, // #2 = $src2
/*79226*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*79228*/     OPC_CheckPredicate, 3, // Predicate_load
/*79230*/     OPC_CheckPredicate, 23, // Predicate_memop
/*79232*/     OPC_MoveParent,
/*79233*/     OPC_SwitchType /*2 cases */, 42,  MVT::f32,// ->79278
/*79236*/       OPC_Scope, 19, /*->79257*/ // 2 children in Scope
/*79238*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*79240*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*79243*/         OPC_EmitMergeInputChains1_1,
/*79244*/         OPC_MorphNodeTo, TARGET_VAL(X86::VFsXORPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (X86fxor:f32 FR32:f32:$src1, (ld:f32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                  // Dst: (VFsXORPSrm:f32 FR32:f32:$src1, addr:iPTR:$src2)
/*79257*/       /*Scope*/ 19, /*->79277*/
/*79258*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*79260*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*79263*/         OPC_EmitMergeInputChains1_1,
/*79264*/         OPC_MorphNodeTo, TARGET_VAL(X86::FsXORPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (X86fxor:f32 FR32:f32:$src1, (ld:f32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                  // Dst: (FsXORPSrm:f32 FR32:f32:$src1, addr:iPTR:$src2)
/*79277*/       0, /*End of Scope*/
              /*SwitchType*/ 42,  MVT::f64,// ->79322
/*79280*/       OPC_Scope, 19, /*->79301*/ // 2 children in Scope
/*79282*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*79284*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*79287*/         OPC_EmitMergeInputChains1_1,
/*79288*/         OPC_MorphNodeTo, TARGET_VAL(X86::VFsXORPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (X86fxor:f64 FR64:f64:$src1, (ld:f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                  // Dst: (VFsXORPDrm:f64 FR64:f64:$src1, addr:iPTR:$src2)
/*79301*/       /*Scope*/ 19, /*->79321*/
/*79302*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*79304*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*79307*/         OPC_EmitMergeInputChains1_1,
/*79308*/         OPC_MorphNodeTo, TARGET_VAL(X86::FsXORPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (X86fxor:f64 FR64:f64:$src1, (ld:f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                  // Dst: (FsXORPDrm:f64 FR64:f64:$src1, addr:iPTR:$src2)
/*79321*/       0, /*End of Scope*/
              0, // EndSwitchType
/*79323*/   /*Scope*/ 107, /*->79431*/
/*79324*/     OPC_MoveChild, 0,
/*79326*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*79329*/     OPC_RecordMemRef,
/*79330*/     OPC_RecordNode, // #0 = 'ld' chained node
/*79331*/     OPC_CheckFoldableChainNode,
/*79332*/     OPC_RecordChild1, // #1 = $src2
/*79333*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*79335*/     OPC_CheckPredicate, 3, // Predicate_load
/*79337*/     OPC_CheckPredicate, 23, // Predicate_memop
/*79339*/     OPC_MoveParent,
/*79340*/     OPC_RecordChild1, // #2 = $src1
/*79341*/     OPC_SwitchType /*2 cases */, 42,  MVT::f32,// ->79386
/*79344*/       OPC_Scope, 19, /*->79365*/ // 2 children in Scope
/*79346*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*79348*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*79351*/         OPC_EmitMergeInputChains1_0,
/*79352*/         OPC_MorphNodeTo, TARGET_VAL(X86::VFsXORPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (X86fxor:f32 (ld:f32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, FR32:f32:$src1) - Complexity = 25
                  // Dst: (VFsXORPSrm:f32 FR32:f32:$src1, addr:iPTR:$src2)
/*79365*/       /*Scope*/ 19, /*->79385*/
/*79366*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*79368*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*79371*/         OPC_EmitMergeInputChains1_0,
/*79372*/         OPC_MorphNodeTo, TARGET_VAL(X86::FsXORPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (X86fxor:f32 (ld:f32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, FR32:f32:$src1) - Complexity = 25
                  // Dst: (FsXORPSrm:f32 FR32:f32:$src1, addr:iPTR:$src2)
/*79385*/       0, /*End of Scope*/
              /*SwitchType*/ 42,  MVT::f64,// ->79430
/*79388*/       OPC_Scope, 19, /*->79409*/ // 2 children in Scope
/*79390*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*79392*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*79395*/         OPC_EmitMergeInputChains1_0,
/*79396*/         OPC_MorphNodeTo, TARGET_VAL(X86::VFsXORPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (X86fxor:f64 (ld:f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, FR64:f64:$src1) - Complexity = 25
                  // Dst: (VFsXORPDrm:f64 FR64:f64:$src1, addr:iPTR:$src2)
/*79409*/       /*Scope*/ 19, /*->79429*/
/*79410*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*79412*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*79415*/         OPC_EmitMergeInputChains1_0,
/*79416*/         OPC_MorphNodeTo, TARGET_VAL(X86::FsXORPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (X86fxor:f64 (ld:f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, FR64:f64:$src1) - Complexity = 25
                  // Dst: (FsXORPDrm:f64 FR64:f64:$src1, addr:iPTR:$src2)
/*79429*/       0, /*End of Scope*/
              0, // EndSwitchType
/*79431*/   /*Scope*/ 60, /*->79492*/
/*79432*/     OPC_RecordChild0, // #0 = $src1
/*79433*/     OPC_RecordChild1, // #1 = $src2
/*79434*/     OPC_SwitchType /*2 cases */, 26,  MVT::f32,// ->79463
/*79437*/       OPC_Scope, 11, /*->79450*/ // 2 children in Scope
/*79439*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*79441*/         OPC_MorphNodeTo, TARGET_VAL(X86::VFsXORPSrr), 0,
                      1/*#VTs*/, MVT::f32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86fxor:f32 FR32:f32:$src1, FR32:f32:$src2) - Complexity = 3
                  // Dst: (VFsXORPSrr:f32 FR32:f32:$src1, FR32:f32:$src2)
/*79450*/       /*Scope*/ 11, /*->79462*/
/*79451*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*79453*/         OPC_MorphNodeTo, TARGET_VAL(X86::FsXORPSrr), 0,
                      1/*#VTs*/, MVT::f32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86fxor:f32 FR32:f32:$src1, FR32:f32:$src2) - Complexity = 3
                  // Dst: (FsXORPSrr:f32 FR32:f32:$src1, FR32:f32:$src2)
/*79462*/       0, /*End of Scope*/
              /*SwitchType*/ 26,  MVT::f64,// ->79491
/*79465*/       OPC_Scope, 11, /*->79478*/ // 2 children in Scope
/*79467*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*79469*/         OPC_MorphNodeTo, TARGET_VAL(X86::VFsXORPDrr), 0,
                      1/*#VTs*/, MVT::f64, 2/*#Ops*/, 0, 1, 
                  // Src: (X86fxor:f64 FR64:f64:$src1, FR64:f64:$src2) - Complexity = 3
                  // Dst: (VFsXORPDrr:f64 FR64:f64:$src1, FR64:f64:$src2)
/*79478*/       /*Scope*/ 11, /*->79490*/
/*79479*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*79481*/         OPC_MorphNodeTo, TARGET_VAL(X86::FsXORPDrr), 0,
                      1/*#VTs*/, MVT::f64, 2/*#Ops*/, 0, 1, 
                  // Src: (X86fxor:f64 FR64:f64:$src1, FR64:f64:$src2) - Complexity = 3
                  // Dst: (FsXORPDrr:f64 FR64:f64:$src1, FR64:f64:$src2)
/*79490*/       0, /*End of Scope*/
              0, // EndSwitchType
/*79492*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 20|128,3/*404*/,  TARGET_VAL(X86ISD::FMAX),// ->79901
/*79497*/   OPC_RecordChild0, // #0 = $src1
/*79498*/   OPC_Scope, 104, /*->79604*/ // 4 children in Scope
/*79500*/     OPC_MoveChild, 1,
/*79502*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*79505*/     OPC_RecordMemRef,
/*79506*/     OPC_RecordNode, // #1 = 'ld' chained node
/*79507*/     OPC_CheckFoldableChainNode,
/*79508*/     OPC_RecordChild1, // #2 = $src2
/*79509*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*79511*/     OPC_CheckPredicate, 3, // Predicate_load
/*79513*/     OPC_MoveParent,
/*79514*/     OPC_SwitchType /*2 cases */, 42,  MVT::f32,// ->79559
/*79517*/       OPC_Scope, 19, /*->79538*/ // 2 children in Scope
/*79519*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*79521*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*79524*/         OPC_EmitMergeInputChains1_1,
/*79525*/         OPC_MorphNodeTo, TARGET_VAL(X86::VMAXSSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (X86fmax:f32 FR32:f32:$src1, (ld:f32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (VMAXSSrm:f32 FR32:f32:$src1, addr:iPTR:$src2)
/*79538*/       /*Scope*/ 19, /*->79558*/
/*79539*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*79541*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*79544*/         OPC_EmitMergeInputChains1_1,
/*79545*/         OPC_MorphNodeTo, TARGET_VAL(X86::MAXSSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (X86fmax:f32 FR32:f32:$src1, (ld:f32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (MAXSSrm:f32 FR32:f32:$src1, addr:iPTR:$src2)
/*79558*/       0, /*End of Scope*/
              /*SwitchType*/ 42,  MVT::f64,// ->79603
/*79561*/       OPC_Scope, 19, /*->79582*/ // 2 children in Scope
/*79563*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*79565*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*79568*/         OPC_EmitMergeInputChains1_1,
/*79569*/         OPC_MorphNodeTo, TARGET_VAL(X86::VMAXSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (X86fmax:f64 FR64:f64:$src1, (ld:f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (VMAXSDrm:f64 FR64:f64:$src1, addr:iPTR:$src2)
/*79582*/       /*Scope*/ 19, /*->79602*/
/*79583*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*79585*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*79588*/         OPC_EmitMergeInputChains1_1,
/*79589*/         OPC_MorphNodeTo, TARGET_VAL(X86::MAXSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (X86fmax:f64 FR64:f64:$src1, (ld:f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (MAXSDrm:f64 FR64:f64:$src1, addr:iPTR:$src2)
/*79602*/       0, /*End of Scope*/
              0, // EndSwitchType
/*79604*/   /*Scope*/ 59, /*->79664*/
/*79605*/     OPC_RecordChild1, // #1 = $src2
/*79606*/     OPC_SwitchType /*2 cases */, 26,  MVT::f32,// ->79635
/*79609*/       OPC_Scope, 11, /*->79622*/ // 2 children in Scope
/*79611*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*79613*/         OPC_MorphNodeTo, TARGET_VAL(X86::VMAXSSrr), 0,
                      1/*#VTs*/, MVT::f32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86fmax:f32 FR32:f32:$src1, FR32:f32:$src2) - Complexity = 3
                  // Dst: (VMAXSSrr:f32 FR32:f32:$src1, FR32:f32:$src2)
/*79622*/       /*Scope*/ 11, /*->79634*/
/*79623*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*79625*/         OPC_MorphNodeTo, TARGET_VAL(X86::MAXSSrr), 0,
                      1/*#VTs*/, MVT::f32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86fmax:f32 FR32:f32:$src1, FR32:f32:$src2) - Complexity = 3
                  // Dst: (MAXSSrr:f32 FR32:f32:$src1, FR32:f32:$src2)
/*79634*/       0, /*End of Scope*/
              /*SwitchType*/ 26,  MVT::f64,// ->79663
/*79637*/       OPC_Scope, 11, /*->79650*/ // 2 children in Scope
/*79639*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*79641*/         OPC_MorphNodeTo, TARGET_VAL(X86::VMAXSDrr), 0,
                      1/*#VTs*/, MVT::f64, 2/*#Ops*/, 0, 1, 
                  // Src: (X86fmax:f64 FR64:f64:$src1, FR64:f64:$src2) - Complexity = 3
                  // Dst: (VMAXSDrr:f64 FR64:f64:$src1, FR64:f64:$src2)
/*79650*/       /*Scope*/ 11, /*->79662*/
/*79651*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*79653*/         OPC_MorphNodeTo, TARGET_VAL(X86::MAXSDrr), 0,
                      1/*#VTs*/, MVT::f64, 2/*#Ops*/, 0, 1, 
                  // Src: (X86fmax:f64 FR64:f64:$src1, FR64:f64:$src2) - Complexity = 3
                  // Dst: (MAXSDrr:f64 FR64:f64:$src1, FR64:f64:$src2)
/*79662*/       0, /*End of Scope*/
              0, // EndSwitchType
/*79664*/   /*Scope*/ 20|128,1/*148*/, /*->79814*/
/*79666*/     OPC_MoveChild, 1,
/*79668*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*79671*/     OPC_RecordMemRef,
/*79672*/     OPC_RecordNode, // #1 = 'ld' chained node
/*79673*/     OPC_CheckFoldableChainNode,
/*79674*/     OPC_RecordChild1, // #2 = $src2
/*79675*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*79677*/     OPC_CheckPredicate, 3, // Predicate_load
/*79679*/     OPC_CheckPredicate, 23, // Predicate_memop
/*79681*/     OPC_MoveParent,
/*79682*/     OPC_SwitchType /*4 cases */, 42,  MVT::v4f32,// ->79727
/*79685*/       OPC_Scope, 19, /*->79706*/ // 2 children in Scope
/*79687*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*79689*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*79692*/         OPC_EmitMergeInputChains1_1,
/*79693*/         OPC_MorphNodeTo, TARGET_VAL(X86::VMAXPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (X86fmax:v4f32 VR128:v4f32:$src1, (ld:v4f32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                  // Dst: (VMAXPSrm:v4f32 VR128:v4f32:$src1, addr:iPTR:$src2)
/*79706*/       /*Scope*/ 19, /*->79726*/
/*79707*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*79709*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*79712*/         OPC_EmitMergeInputChains1_1,
/*79713*/         OPC_MorphNodeTo, TARGET_VAL(X86::MAXPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (X86fmax:v4f32 VR128:v4f32:$src1, (ld:v4f32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                  // Dst: (MAXPSrm:v4f32 VR128:v4f32:$src1, addr:iPTR:$src2)
/*79726*/       0, /*End of Scope*/
              /*SwitchType*/ 42,  MVT::v2f64,// ->79771
/*79729*/       OPC_Scope, 19, /*->79750*/ // 2 children in Scope
/*79731*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*79733*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*79736*/         OPC_EmitMergeInputChains1_1,
/*79737*/         OPC_MorphNodeTo, TARGET_VAL(X86::VMAXPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (X86fmax:v2f64 VR128:v2f64:$src1, (ld:v2f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                  // Dst: (VMAXPDrm:v2f64 VR128:v2f64:$src1, addr:iPTR:$src2)
/*79750*/       /*Scope*/ 19, /*->79770*/
/*79751*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*79753*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*79756*/         OPC_EmitMergeInputChains1_1,
/*79757*/         OPC_MorphNodeTo, TARGET_VAL(X86::MAXPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (X86fmax:v2f64 VR128:v2f64:$src1, (ld:v2f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                  // Dst: (MAXPDrm:v2f64 VR128:v2f64:$src1, addr:iPTR:$src2)
/*79770*/       0, /*End of Scope*/
              /*SwitchType*/ 19,  MVT::v8f32,// ->79792
/*79773*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*79775*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*79778*/       OPC_EmitMergeInputChains1_1,
/*79779*/       OPC_MorphNodeTo, TARGET_VAL(X86::VMAXPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v8f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (X86fmax:v8f32 VR256:v8f32:$src1, (ld:v8f32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                // Dst: (VMAXPSYrm:v8f32 VR256:v8f32:$src1, addr:iPTR:$src2)
              /*SwitchType*/ 19,  MVT::v4f64,// ->79813
/*79794*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*79796*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*79799*/       OPC_EmitMergeInputChains1_1,
/*79800*/       OPC_MorphNodeTo, TARGET_VAL(X86::VMAXPDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v4f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (X86fmax:v4f64 VR256:v4f64:$src1, (ld:v4f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                // Dst: (VMAXPDYrm:v4f64 VR256:v4f64:$src1, addr:iPTR:$src2)
              0, // EndSwitchType
/*79814*/   /*Scope*/ 85, /*->79900*/
/*79815*/     OPC_RecordChild1, // #1 = $src2
/*79816*/     OPC_SwitchType /*4 cases */, 26,  MVT::v4f32,// ->79845
/*79819*/       OPC_Scope, 11, /*->79832*/ // 2 children in Scope
/*79821*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*79823*/         OPC_MorphNodeTo, TARGET_VAL(X86::VMAXPSrr), 0,
                      1/*#VTs*/, MVT::v4f32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86fmax:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src2) - Complexity = 3
                  // Dst: (VMAXPSrr:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src2)
/*79832*/       /*Scope*/ 11, /*->79844*/
/*79833*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*79835*/         OPC_MorphNodeTo, TARGET_VAL(X86::MAXPSrr), 0,
                      1/*#VTs*/, MVT::v4f32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86fmax:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src2) - Complexity = 3
                  // Dst: (MAXPSrr:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src2)
/*79844*/       0, /*End of Scope*/
              /*SwitchType*/ 26,  MVT::v2f64,// ->79873
/*79847*/       OPC_Scope, 11, /*->79860*/ // 2 children in Scope
/*79849*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*79851*/         OPC_MorphNodeTo, TARGET_VAL(X86::VMAXPDrr), 0,
                      1/*#VTs*/, MVT::v2f64, 2/*#Ops*/, 0, 1, 
                  // Src: (X86fmax:v2f64 VR128:v2f64:$src1, VR128:v2f64:$src2) - Complexity = 3
                  // Dst: (VMAXPDrr:v2f64 VR128:v2f64:$src1, VR128:v2f64:$src2)
/*79860*/       /*Scope*/ 11, /*->79872*/
/*79861*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*79863*/         OPC_MorphNodeTo, TARGET_VAL(X86::MAXPDrr), 0,
                      1/*#VTs*/, MVT::v2f64, 2/*#Ops*/, 0, 1, 
                  // Src: (X86fmax:v2f64 VR128:v2f64:$src1, VR128:v2f64:$src2) - Complexity = 3
                  // Dst: (MAXPDrr:v2f64 VR128:v2f64:$src1, VR128:v2f64:$src2)
/*79872*/       0, /*End of Scope*/
              /*SwitchType*/ 11,  MVT::v8f32,// ->79886
/*79875*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*79877*/       OPC_MorphNodeTo, TARGET_VAL(X86::VMAXPSYrr), 0,
                    1/*#VTs*/, MVT::v8f32, 2/*#Ops*/, 0, 1, 
                // Src: (X86fmax:v8f32 VR256:v8f32:$src1, VR256:v8f32:$src2) - Complexity = 3
                // Dst: (VMAXPSYrr:v8f32 VR256:v8f32:$src1, VR256:v8f32:$src2)
              /*SwitchType*/ 11,  MVT::v4f64,// ->79899
/*79888*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*79890*/       OPC_MorphNodeTo, TARGET_VAL(X86::VMAXPDYrr), 0,
                    1/*#VTs*/, MVT::v4f64, 2/*#Ops*/, 0, 1, 
                // Src: (X86fmax:v4f64 VR256:v4f64:$src1, VR256:v4f64:$src2) - Complexity = 3
                // Dst: (VMAXPDYrr:v4f64 VR256:v4f64:$src1, VR256:v4f64:$src2)
              0, // EndSwitchType
/*79900*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 20|128,3/*404*/,  TARGET_VAL(X86ISD::FMIN),// ->80309
/*79905*/   OPC_RecordChild0, // #0 = $src1
/*79906*/   OPC_Scope, 104, /*->80012*/ // 4 children in Scope
/*79908*/     OPC_MoveChild, 1,
/*79910*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*79913*/     OPC_RecordMemRef,
/*79914*/     OPC_RecordNode, // #1 = 'ld' chained node
/*79915*/     OPC_CheckFoldableChainNode,
/*79916*/     OPC_RecordChild1, // #2 = $src2
/*79917*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*79919*/     OPC_CheckPredicate, 3, // Predicate_load
/*79921*/     OPC_MoveParent,
/*79922*/     OPC_SwitchType /*2 cases */, 42,  MVT::f32,// ->79967
/*79925*/       OPC_Scope, 19, /*->79946*/ // 2 children in Scope
/*79927*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*79929*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*79932*/         OPC_EmitMergeInputChains1_1,
/*79933*/         OPC_MorphNodeTo, TARGET_VAL(X86::VMINSSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (X86fmin:f32 FR32:f32:$src1, (ld:f32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (VMINSSrm:f32 FR32:f32:$src1, addr:iPTR:$src2)
/*79946*/       /*Scope*/ 19, /*->79966*/
/*79947*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*79949*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*79952*/         OPC_EmitMergeInputChains1_1,
/*79953*/         OPC_MorphNodeTo, TARGET_VAL(X86::MINSSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (X86fmin:f32 FR32:f32:$src1, (ld:f32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (MINSSrm:f32 FR32:f32:$src1, addr:iPTR:$src2)
/*79966*/       0, /*End of Scope*/
              /*SwitchType*/ 42,  MVT::f64,// ->80011
/*79969*/       OPC_Scope, 19, /*->79990*/ // 2 children in Scope
/*79971*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*79973*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*79976*/         OPC_EmitMergeInputChains1_1,
/*79977*/         OPC_MorphNodeTo, TARGET_VAL(X86::VMINSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (X86fmin:f64 FR64:f64:$src1, (ld:f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (VMINSDrm:f64 FR64:f64:$src1, addr:iPTR:$src2)
/*79990*/       /*Scope*/ 19, /*->80010*/
/*79991*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*79993*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*79996*/         OPC_EmitMergeInputChains1_1,
/*79997*/         OPC_MorphNodeTo, TARGET_VAL(X86::MINSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (X86fmin:f64 FR64:f64:$src1, (ld:f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (MINSDrm:f64 FR64:f64:$src1, addr:iPTR:$src2)
/*80010*/       0, /*End of Scope*/
              0, // EndSwitchType
/*80012*/   /*Scope*/ 59, /*->80072*/
/*80013*/     OPC_RecordChild1, // #1 = $src2
/*80014*/     OPC_SwitchType /*2 cases */, 26,  MVT::f32,// ->80043
/*80017*/       OPC_Scope, 11, /*->80030*/ // 2 children in Scope
/*80019*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*80021*/         OPC_MorphNodeTo, TARGET_VAL(X86::VMINSSrr), 0,
                      1/*#VTs*/, MVT::f32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86fmin:f32 FR32:f32:$src1, FR32:f32:$src2) - Complexity = 3
                  // Dst: (VMINSSrr:f32 FR32:f32:$src1, FR32:f32:$src2)
/*80030*/       /*Scope*/ 11, /*->80042*/
/*80031*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*80033*/         OPC_MorphNodeTo, TARGET_VAL(X86::MINSSrr), 0,
                      1/*#VTs*/, MVT::f32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86fmin:f32 FR32:f32:$src1, FR32:f32:$src2) - Complexity = 3
                  // Dst: (MINSSrr:f32 FR32:f32:$src1, FR32:f32:$src2)
/*80042*/       0, /*End of Scope*/
              /*SwitchType*/ 26,  MVT::f64,// ->80071
/*80045*/       OPC_Scope, 11, /*->80058*/ // 2 children in Scope
/*80047*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*80049*/         OPC_MorphNodeTo, TARGET_VAL(X86::VMINSDrr), 0,
                      1/*#VTs*/, MVT::f64, 2/*#Ops*/, 0, 1, 
                  // Src: (X86fmin:f64 FR64:f64:$src1, FR64:f64:$src2) - Complexity = 3
                  // Dst: (VMINSDrr:f64 FR64:f64:$src1, FR64:f64:$src2)
/*80058*/       /*Scope*/ 11, /*->80070*/
/*80059*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*80061*/         OPC_MorphNodeTo, TARGET_VAL(X86::MINSDrr), 0,
                      1/*#VTs*/, MVT::f64, 2/*#Ops*/, 0, 1, 
                  // Src: (X86fmin:f64 FR64:f64:$src1, FR64:f64:$src2) - Complexity = 3
                  // Dst: (MINSDrr:f64 FR64:f64:$src1, FR64:f64:$src2)
/*80070*/       0, /*End of Scope*/
              0, // EndSwitchType
/*80072*/   /*Scope*/ 20|128,1/*148*/, /*->80222*/
/*80074*/     OPC_MoveChild, 1,
/*80076*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*80079*/     OPC_RecordMemRef,
/*80080*/     OPC_RecordNode, // #1 = 'ld' chained node
/*80081*/     OPC_CheckFoldableChainNode,
/*80082*/     OPC_RecordChild1, // #2 = $src2
/*80083*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*80085*/     OPC_CheckPredicate, 3, // Predicate_load
/*80087*/     OPC_CheckPredicate, 23, // Predicate_memop
/*80089*/     OPC_MoveParent,
/*80090*/     OPC_SwitchType /*4 cases */, 42,  MVT::v4f32,// ->80135
/*80093*/       OPC_Scope, 19, /*->80114*/ // 2 children in Scope
/*80095*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*80097*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*80100*/         OPC_EmitMergeInputChains1_1,
/*80101*/         OPC_MorphNodeTo, TARGET_VAL(X86::VMINPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (X86fmin:v4f32 VR128:v4f32:$src1, (ld:v4f32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                  // Dst: (VMINPSrm:v4f32 VR128:v4f32:$src1, addr:iPTR:$src2)
/*80114*/       /*Scope*/ 19, /*->80134*/
/*80115*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*80117*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*80120*/         OPC_EmitMergeInputChains1_1,
/*80121*/         OPC_MorphNodeTo, TARGET_VAL(X86::MINPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (X86fmin:v4f32 VR128:v4f32:$src1, (ld:v4f32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                  // Dst: (MINPSrm:v4f32 VR128:v4f32:$src1, addr:iPTR:$src2)
/*80134*/       0, /*End of Scope*/
              /*SwitchType*/ 42,  MVT::v2f64,// ->80179
/*80137*/       OPC_Scope, 19, /*->80158*/ // 2 children in Scope
/*80139*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*80141*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*80144*/         OPC_EmitMergeInputChains1_1,
/*80145*/         OPC_MorphNodeTo, TARGET_VAL(X86::VMINPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (X86fmin:v2f64 VR128:v2f64:$src1, (ld:v2f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                  // Dst: (VMINPDrm:v2f64 VR128:v2f64:$src1, addr:iPTR:$src2)
/*80158*/       /*Scope*/ 19, /*->80178*/
/*80159*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*80161*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*80164*/         OPC_EmitMergeInputChains1_1,
/*80165*/         OPC_MorphNodeTo, TARGET_VAL(X86::MINPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (X86fmin:v2f64 VR128:v2f64:$src1, (ld:v2f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                  // Dst: (MINPDrm:v2f64 VR128:v2f64:$src1, addr:iPTR:$src2)
/*80178*/       0, /*End of Scope*/
              /*SwitchType*/ 19,  MVT::v8f32,// ->80200
/*80181*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*80183*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*80186*/       OPC_EmitMergeInputChains1_1,
/*80187*/       OPC_MorphNodeTo, TARGET_VAL(X86::VMINPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v8f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (X86fmin:v8f32 VR256:v8f32:$src1, (ld:v8f32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                // Dst: (VMINPSYrm:v8f32 VR256:v8f32:$src1, addr:iPTR:$src2)
              /*SwitchType*/ 19,  MVT::v4f64,// ->80221
/*80202*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*80204*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*80207*/       OPC_EmitMergeInputChains1_1,
/*80208*/       OPC_MorphNodeTo, TARGET_VAL(X86::VMINPDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v4f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (X86fmin:v4f64 VR256:v4f64:$src1, (ld:v4f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                // Dst: (VMINPDYrm:v4f64 VR256:v4f64:$src1, addr:iPTR:$src2)
              0, // EndSwitchType
/*80222*/   /*Scope*/ 85, /*->80308*/
/*80223*/     OPC_RecordChild1, // #1 = $src2
/*80224*/     OPC_SwitchType /*4 cases */, 26,  MVT::v4f32,// ->80253
/*80227*/       OPC_Scope, 11, /*->80240*/ // 2 children in Scope
/*80229*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*80231*/         OPC_MorphNodeTo, TARGET_VAL(X86::VMINPSrr), 0,
                      1/*#VTs*/, MVT::v4f32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86fmin:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src2) - Complexity = 3
                  // Dst: (VMINPSrr:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src2)
/*80240*/       /*Scope*/ 11, /*->80252*/
/*80241*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*80243*/         OPC_MorphNodeTo, TARGET_VAL(X86::MINPSrr), 0,
                      1/*#VTs*/, MVT::v4f32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86fmin:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src2) - Complexity = 3
                  // Dst: (MINPSrr:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src2)
/*80252*/       0, /*End of Scope*/
              /*SwitchType*/ 26,  MVT::v2f64,// ->80281
/*80255*/       OPC_Scope, 11, /*->80268*/ // 2 children in Scope
/*80257*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*80259*/         OPC_MorphNodeTo, TARGET_VAL(X86::VMINPDrr), 0,
                      1/*#VTs*/, MVT::v2f64, 2/*#Ops*/, 0, 1, 
                  // Src: (X86fmin:v2f64 VR128:v2f64:$src1, VR128:v2f64:$src2) - Complexity = 3
                  // Dst: (VMINPDrr:v2f64 VR128:v2f64:$src1, VR128:v2f64:$src2)
/*80268*/       /*Scope*/ 11, /*->80280*/
/*80269*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*80271*/         OPC_MorphNodeTo, TARGET_VAL(X86::MINPDrr), 0,
                      1/*#VTs*/, MVT::v2f64, 2/*#Ops*/, 0, 1, 
                  // Src: (X86fmin:v2f64 VR128:v2f64:$src1, VR128:v2f64:$src2) - Complexity = 3
                  // Dst: (MINPDrr:v2f64 VR128:v2f64:$src1, VR128:v2f64:$src2)
/*80280*/       0, /*End of Scope*/
              /*SwitchType*/ 11,  MVT::v8f32,// ->80294
/*80283*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*80285*/       OPC_MorphNodeTo, TARGET_VAL(X86::VMINPSYrr), 0,
                    1/*#VTs*/, MVT::v8f32, 2/*#Ops*/, 0, 1, 
                // Src: (X86fmin:v8f32 VR256:v8f32:$src1, VR256:v8f32:$src2) - Complexity = 3
                // Dst: (VMINPSYrr:v8f32 VR256:v8f32:$src1, VR256:v8f32:$src2)
              /*SwitchType*/ 11,  MVT::v4f64,// ->80307
/*80296*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*80298*/       OPC_MorphNodeTo, TARGET_VAL(X86::VMINPDYrr), 0,
                    1/*#VTs*/, MVT::v4f64, 2/*#Ops*/, 0, 1, 
                // Src: (X86fmin:v4f64 VR256:v4f64:$src1, VR256:v4f64:$src2) - Complexity = 3
                // Dst: (VMINPDYrr:v4f64 VR256:v4f64:$src1, VR256:v4f64:$src2)
              0, // EndSwitchType
/*80308*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 61|128,3/*445*/,  TARGET_VAL(ISD::FSQRT),// ->80758
/*80313*/   OPC_Scope, 115, /*->80430*/ // 4 children in Scope
/*80315*/     OPC_MoveChild, 0,
/*80317*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*80320*/     OPC_RecordMemRef,
/*80321*/     OPC_RecordNode, // #0 = 'ld' chained node
/*80322*/     OPC_RecordChild1, // #1 = $src
/*80323*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*80325*/     OPC_CheckPredicate, 3, // Predicate_load
/*80327*/     OPC_MoveParent,
/*80328*/     OPC_SwitchType /*2 cases */, 48,  MVT::f32,// ->80379
/*80331*/       OPC_Scope, 18, /*->80351*/ // 2 children in Scope
/*80333*/         OPC_CheckPatternPredicate, 32, // (Subtarget->hasSSE1()) && (OptForSize)
/*80335*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*80338*/         OPC_EmitMergeInputChains1_0,
/*80339*/         OPC_MorphNodeTo, TARGET_VAL(X86::SQRTSSm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (fsqrt:f32 (ld:f32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (SQRTSSm:f32 addr:iPTR:$src)
/*80351*/       /*Scope*/ 26, /*->80378*/
/*80352*/         OPC_CheckPatternPredicate, 33, // (Subtarget->hasAVX()) && (OptForSize)
/*80354*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*80357*/         OPC_EmitMergeInputChains1_0,
/*80358*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      1/*#VTs*/, MVT::f32, 0/*#Ops*/,  // Results = #7 
/*80365*/         OPC_MorphNodeTo, TARGET_VAL(X86::VSQRTSSm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::f32, 6/*#Ops*/, 7, 2, 3, 4, 5, 6, 
                  // Src: (fsqrt:f32 (ld:f32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (VSQRTSSm:f32 (IMPLICIT_DEF:f32), addr:iPTR:$src)
/*80378*/       0, /*End of Scope*/
              /*SwitchType*/ 48,  MVT::f64,// ->80429
/*80381*/       OPC_Scope, 18, /*->80401*/ // 2 children in Scope
/*80383*/         OPC_CheckPatternPredicate, 24, // (Subtarget->hasSSE2()) && (OptForSize)
/*80385*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*80388*/         OPC_EmitMergeInputChains1_0,
/*80389*/         OPC_MorphNodeTo, TARGET_VAL(X86::SQRTSDm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (fsqrt:f64 (ld:f64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (SQRTSDm:f64 addr:iPTR:$src)
/*80401*/       /*Scope*/ 26, /*->80428*/
/*80402*/         OPC_CheckPatternPredicate, 33, // (Subtarget->hasAVX()) && (OptForSize)
/*80404*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*80407*/         OPC_EmitMergeInputChains1_0,
/*80408*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      1/*#VTs*/, MVT::f64, 0/*#Ops*/,  // Results = #7 
/*80415*/         OPC_MorphNodeTo, TARGET_VAL(X86::VSQRTSDm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::f64, 6/*#Ops*/, 7, 2, 3, 4, 5, 6, 
                  // Src: (fsqrt:f64 (ld:f64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (VSQRTSDm:f64 (IMPLICIT_DEF:f64), addr:iPTR:$src)
/*80428*/       0, /*End of Scope*/
              0, // EndSwitchType
/*80430*/   /*Scope*/ 103, /*->80534*/
/*80431*/     OPC_RecordChild0, // #0 = $src
/*80432*/     OPC_SwitchType /*3 cases */, 43,  MVT::f32,// ->80478
/*80435*/       OPC_Scope, 10, /*->80447*/ // 3 children in Scope
/*80437*/         OPC_CheckPatternPredicate, 8, // (!Subtarget->hasXMM())
/*80439*/         OPC_MorphNodeTo, TARGET_VAL(X86::SQRT_Fp32), 0,
                      1/*#VTs*/, MVT::f32, 1/*#Ops*/, 0, 
                  // Src: (fsqrt:f32 RFP32:f32:$src) - Complexity = 3
                  // Dst: (SQRT_Fp32:f32 RFP32:f32:$src)
/*80447*/       /*Scope*/ 10, /*->80458*/
/*80448*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*80450*/         OPC_MorphNodeTo, TARGET_VAL(X86::SQRTSSr), 0,
                      1/*#VTs*/, MVT::f32, 1/*#Ops*/, 0, 
                  // Src: (fsqrt:f32 FR32:f32:$src) - Complexity = 3
                  // Dst: (SQRTSSr:f32 FR32:f32:$src)
/*80458*/       /*Scope*/ 18, /*->80477*/
/*80459*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*80461*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      1/*#VTs*/, MVT::f32, 0/*#Ops*/,  // Results = #1 
/*80468*/         OPC_MorphNodeTo, TARGET_VAL(X86::VSQRTSSr), 0,
                      1/*#VTs*/, MVT::f32, 2/*#Ops*/, 1, 0, 
                  // Src: (fsqrt:f32 FR32:f32:$src) - Complexity = 3
                  // Dst: (VSQRTSSr:f32 (IMPLICIT_DEF:f32), FR32:f32:$src)
/*80477*/       0, /*End of Scope*/
              /*SwitchType*/ 43,  MVT::f64,// ->80523
/*80480*/       OPC_Scope, 10, /*->80492*/ // 3 children in Scope
/*80482*/         OPC_CheckPatternPredicate, 9, // (!Subtarget->hasXMMInt())
/*80484*/         OPC_MorphNodeTo, TARGET_VAL(X86::SQRT_Fp64), 0,
                      1/*#VTs*/, MVT::f64, 1/*#Ops*/, 0, 
                  // Src: (fsqrt:f64 RFP64:f64:$src) - Complexity = 3
                  // Dst: (SQRT_Fp64:f64 RFP64:f64:$src)
/*80492*/       /*Scope*/ 10, /*->80503*/
/*80493*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*80495*/         OPC_MorphNodeTo, TARGET_VAL(X86::SQRTSDr), 0,
                      1/*#VTs*/, MVT::f64, 1/*#Ops*/, 0, 
                  // Src: (fsqrt:f64 FR64:f64:$src) - Complexity = 3
                  // Dst: (SQRTSDr:f64 FR64:f64:$src)
/*80503*/       /*Scope*/ 18, /*->80522*/
/*80504*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*80506*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      1/*#VTs*/, MVT::f64, 0/*#Ops*/,  // Results = #1 
/*80513*/         OPC_MorphNodeTo, TARGET_VAL(X86::VSQRTSDr), 0,
                      1/*#VTs*/, MVT::f64, 2/*#Ops*/, 1, 0, 
                  // Src: (fsqrt:f64 FR64:f64:$src) - Complexity = 3
                  // Dst: (VSQRTSDr:f64 (IMPLICIT_DEF:f64), FR64:f64:$src)
/*80522*/       0, /*End of Scope*/
              /*SwitchType*/ 8,  MVT::f80,// ->80533
/*80525*/       OPC_MorphNodeTo, TARGET_VAL(X86::SQRT_Fp80), 0,
                    1/*#VTs*/, MVT::f80, 1/*#Ops*/, 0, 
                // Src: (fsqrt:f80 RFP80:f80:$src) - Complexity = 3
                // Dst: (SQRT_Fp80:f80 RFP80:f80:$src)
              0, // EndSwitchType
/*80534*/   /*Scope*/ 13|128,1/*141*/, /*->80677*/
/*80536*/     OPC_MoveChild, 0,
/*80538*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*80541*/     OPC_RecordMemRef,
/*80542*/     OPC_RecordNode, // #0 = 'ld' chained node
/*80543*/     OPC_RecordChild1, // #1 = $src
/*80544*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*80546*/     OPC_CheckPredicate, 3, // Predicate_load
/*80548*/     OPC_CheckPredicate, 23, // Predicate_memop
/*80550*/     OPC_MoveParent,
/*80551*/     OPC_SwitchType /*4 cases */, 40,  MVT::v4f32,// ->80594
/*80554*/       OPC_Scope, 18, /*->80574*/ // 2 children in Scope
/*80556*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*80558*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*80561*/         OPC_EmitMergeInputChains1_0,
/*80562*/         OPC_MorphNodeTo, TARGET_VAL(X86::VSQRTPSm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (fsqrt:v4f32 (ld:v4f32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                  // Dst: (VSQRTPSm:v4f32 addr:iPTR:$src)
/*80574*/       /*Scope*/ 18, /*->80593*/
/*80575*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*80577*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*80580*/         OPC_EmitMergeInputChains1_0,
/*80581*/         OPC_MorphNodeTo, TARGET_VAL(X86::SQRTPSm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (fsqrt:v4f32 (ld:v4f32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                  // Dst: (SQRTPSm:v4f32 addr:iPTR:$src)
/*80593*/       0, /*End of Scope*/
              /*SwitchType*/ 40,  MVT::v2f64,// ->80636
/*80596*/       OPC_Scope, 18, /*->80616*/ // 2 children in Scope
/*80598*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*80600*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*80603*/         OPC_EmitMergeInputChains1_0,
/*80604*/         OPC_MorphNodeTo, TARGET_VAL(X86::VSQRTPDm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v2f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (fsqrt:v2f64 (ld:v2f64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                  // Dst: (VSQRTPDm:v2f64 addr:iPTR:$src)
/*80616*/       /*Scope*/ 18, /*->80635*/
/*80617*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*80619*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*80622*/         OPC_EmitMergeInputChains1_0,
/*80623*/         OPC_MorphNodeTo, TARGET_VAL(X86::SQRTPDm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v2f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (fsqrt:v2f64 (ld:v2f64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                  // Dst: (SQRTPDm:v2f64 addr:iPTR:$src)
/*80635*/       0, /*End of Scope*/
              /*SwitchType*/ 18,  MVT::v8f32,// ->80656
/*80638*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*80640*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*80643*/       OPC_EmitMergeInputChains1_0,
/*80644*/       OPC_MorphNodeTo, TARGET_VAL(X86::VSQRTPSYm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v8f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (fsqrt:v8f32 (ld:v8f32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                // Dst: (VSQRTPSYm:v8f32 addr:iPTR:$src)
              /*SwitchType*/ 18,  MVT::v4f64,// ->80676
/*80658*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*80660*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*80663*/       OPC_EmitMergeInputChains1_0,
/*80664*/       OPC_MorphNodeTo, TARGET_VAL(X86::VSQRTPDYm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v4f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (fsqrt:v4f64 (ld:v4f64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                // Dst: (VSQRTPDYm:v4f64 addr:iPTR:$src)
              0, // EndSwitchType
/*80677*/   /*Scope*/ 79, /*->80757*/
/*80678*/     OPC_RecordChild0, // #0 = $src
/*80679*/     OPC_SwitchType /*4 cases */, 24,  MVT::v4f32,// ->80706
/*80682*/       OPC_Scope, 10, /*->80694*/ // 2 children in Scope
/*80684*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*80686*/         OPC_MorphNodeTo, TARGET_VAL(X86::VSQRTPSr), 0,
                      1/*#VTs*/, MVT::v4f32, 1/*#Ops*/, 0, 
                  // Src: (fsqrt:v4f32 VR128:v4f32:$src) - Complexity = 3
                  // Dst: (VSQRTPSr:v4f32 VR128:v4f32:$src)
/*80694*/       /*Scope*/ 10, /*->80705*/
/*80695*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*80697*/         OPC_MorphNodeTo, TARGET_VAL(X86::SQRTPSr), 0,
                      1/*#VTs*/, MVT::v4f32, 1/*#Ops*/, 0, 
                  // Src: (fsqrt:v4f32 VR128:v4f32:$src) - Complexity = 3
                  // Dst: (SQRTPSr:v4f32 VR128:v4f32:$src)
/*80705*/       0, /*End of Scope*/
              /*SwitchType*/ 24,  MVT::v2f64,// ->80732
/*80708*/       OPC_Scope, 10, /*->80720*/ // 2 children in Scope
/*80710*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*80712*/         OPC_MorphNodeTo, TARGET_VAL(X86::VSQRTPDr), 0,
                      1/*#VTs*/, MVT::v2f64, 1/*#Ops*/, 0, 
                  // Src: (fsqrt:v2f64 VR128:v2f64:$src) - Complexity = 3
                  // Dst: (VSQRTPDr:v2f64 VR128:v2f64:$src)
/*80720*/       /*Scope*/ 10, /*->80731*/
/*80721*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*80723*/         OPC_MorphNodeTo, TARGET_VAL(X86::SQRTPDr), 0,
                      1/*#VTs*/, MVT::v2f64, 1/*#Ops*/, 0, 
                  // Src: (fsqrt:v2f64 VR128:v2f64:$src) - Complexity = 3
                  // Dst: (SQRTPDr:v2f64 VR128:v2f64:$src)
/*80731*/       0, /*End of Scope*/
              /*SwitchType*/ 10,  MVT::v8f32,// ->80744
/*80734*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*80736*/       OPC_MorphNodeTo, TARGET_VAL(X86::VSQRTPSYr), 0,
                    1/*#VTs*/, MVT::v8f32, 1/*#Ops*/, 0, 
                // Src: (fsqrt:v8f32 VR256:v8f32:$src) - Complexity = 3
                // Dst: (VSQRTPSYr:v8f32 VR256:v8f32:$src)
              /*SwitchType*/ 10,  MVT::v4f64,// ->80756
/*80746*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*80748*/       OPC_MorphNodeTo, TARGET_VAL(X86::VSQRTPDYr), 0,
                    1/*#VTs*/, MVT::v4f64, 1/*#Ops*/, 0, 
                // Src: (fsqrt:v4f64 VR256:v4f64:$src) - Complexity = 3
                // Dst: (VSQRTPDYr:v4f64 VR256:v4f64:$src)
              0, // EndSwitchType
/*80757*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 96|128,1/*224*/,  TARGET_VAL(X86ISD::FRSQRT),// ->80986
/*80762*/   OPC_Scope, 63, /*->80827*/ // 4 children in Scope
/*80764*/     OPC_MoveChild, 0,
/*80766*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*80769*/     OPC_RecordMemRef,
/*80770*/     OPC_RecordNode, // #0 = 'ld' chained node
/*80771*/     OPC_RecordChild1, // #1 = $src
/*80772*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*80774*/     OPC_CheckPredicate, 3, // Predicate_load
/*80776*/     OPC_MoveParent,
/*80777*/     OPC_CheckType, MVT::f32,
/*80779*/     OPC_Scope, 18, /*->80799*/ // 2 children in Scope
/*80781*/       OPC_CheckPatternPredicate, 32, // (Subtarget->hasSSE1()) && (OptForSize)
/*80783*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*80786*/       OPC_EmitMergeInputChains1_0,
/*80787*/       OPC_MorphNodeTo, TARGET_VAL(X86::RSQRTSSm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (X86frsqrt:f32 (ld:f32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                // Dst: (RSQRTSSm:f32 addr:iPTR:$src)
/*80799*/     /*Scope*/ 26, /*->80826*/
/*80800*/       OPC_CheckPatternPredicate, 33, // (Subtarget->hasAVX()) && (OptForSize)
/*80802*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*80805*/       OPC_EmitMergeInputChains1_0,
/*80806*/       OPC_EmitNode, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    1/*#VTs*/, MVT::f32, 0/*#Ops*/,  // Results = #7 
/*80813*/       OPC_MorphNodeTo, TARGET_VAL(X86::VRSQRTSSm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::f32, 6/*#Ops*/, 7, 2, 3, 4, 5, 6, 
                // Src: (X86frsqrt:f32 (ld:f32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                // Dst: (VRSQRTSSm:f32 (IMPLICIT_DEF:f32), addr:iPTR:$src)
/*80826*/     0, /*End of Scope*/
/*80827*/   /*Scope*/ 35, /*->80863*/
/*80828*/     OPC_RecordChild0, // #0 = $src
/*80829*/     OPC_CheckType, MVT::f32,
/*80831*/     OPC_Scope, 10, /*->80843*/ // 2 children in Scope
/*80833*/       OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*80835*/       OPC_MorphNodeTo, TARGET_VAL(X86::RSQRTSSr), 0,
                    1/*#VTs*/, MVT::f32, 1/*#Ops*/, 0, 
                // Src: (X86frsqrt:f32 FR32:f32:$src) - Complexity = 3
                // Dst: (RSQRTSSr:f32 FR32:f32:$src)
/*80843*/     /*Scope*/ 18, /*->80862*/
/*80844*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*80846*/       OPC_EmitNode, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    1/*#VTs*/, MVT::f32, 0/*#Ops*/,  // Results = #1 
/*80853*/       OPC_MorphNodeTo, TARGET_VAL(X86::VRSQRTSSr), 0,
                    1/*#VTs*/, MVT::f32, 2/*#Ops*/, 1, 0, 
                // Src: (X86frsqrt:f32 FR32:f32:$src) - Complexity = 3
                // Dst: (VRSQRTSSr:f32 (IMPLICIT_DEF:f32), FR32:f32:$src)
/*80862*/     0, /*End of Scope*/
/*80863*/   /*Scope*/ 79, /*->80943*/
/*80864*/     OPC_MoveChild, 0,
/*80866*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*80869*/     OPC_RecordMemRef,
/*80870*/     OPC_RecordNode, // #0 = 'ld' chained node
/*80871*/     OPC_RecordChild1, // #1 = $src
/*80872*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*80874*/     OPC_CheckPredicate, 3, // Predicate_load
/*80876*/     OPC_CheckPredicate, 23, // Predicate_memop
/*80878*/     OPC_MoveParent,
/*80879*/     OPC_SwitchType /*2 cases */, 40,  MVT::v4f32,// ->80922
/*80882*/       OPC_Scope, 18, /*->80902*/ // 2 children in Scope
/*80884*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*80886*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*80889*/         OPC_EmitMergeInputChains1_0,
/*80890*/         OPC_MorphNodeTo, TARGET_VAL(X86::VRSQRTPSm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (X86frsqrt:v4f32 (ld:v4f32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                  // Dst: (VRSQRTPSm:v4f32 addr:iPTR:$src)
/*80902*/       /*Scope*/ 18, /*->80921*/
/*80903*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*80905*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*80908*/         OPC_EmitMergeInputChains1_0,
/*80909*/         OPC_MorphNodeTo, TARGET_VAL(X86::RSQRTPSm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (X86frsqrt:v4f32 (ld:v4f32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                  // Dst: (RSQRTPSm:v4f32 addr:iPTR:$src)
/*80921*/       0, /*End of Scope*/
              /*SwitchType*/ 18,  MVT::v8f32,// ->80942
/*80924*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*80926*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*80929*/       OPC_EmitMergeInputChains1_0,
/*80930*/       OPC_MorphNodeTo, TARGET_VAL(X86::VRSQRTPSYm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v8f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (X86frsqrt:v8f32 (ld:v8f32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                // Dst: (VRSQRTPSYm:v8f32 addr:iPTR:$src)
              0, // EndSwitchType
/*80943*/   /*Scope*/ 41, /*->80985*/
/*80944*/     OPC_RecordChild0, // #0 = $src
/*80945*/     OPC_SwitchType /*2 cases */, 24,  MVT::v4f32,// ->80972
/*80948*/       OPC_Scope, 10, /*->80960*/ // 2 children in Scope
/*80950*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*80952*/         OPC_MorphNodeTo, TARGET_VAL(X86::VRSQRTPSr), 0,
                      1/*#VTs*/, MVT::v4f32, 1/*#Ops*/, 0, 
                  // Src: (X86frsqrt:v4f32 VR128:v4f32:$src) - Complexity = 3
                  // Dst: (VRSQRTPSr:v4f32 VR128:v4f32:$src)
/*80960*/       /*Scope*/ 10, /*->80971*/
/*80961*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*80963*/         OPC_MorphNodeTo, TARGET_VAL(X86::RSQRTPSr), 0,
                      1/*#VTs*/, MVT::v4f32, 1/*#Ops*/, 0, 
                  // Src: (X86frsqrt:v4f32 VR128:v4f32:$src) - Complexity = 3
                  // Dst: (RSQRTPSr:v4f32 VR128:v4f32:$src)
/*80971*/       0, /*End of Scope*/
              /*SwitchType*/ 10,  MVT::v8f32,// ->80984
/*80974*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*80976*/       OPC_MorphNodeTo, TARGET_VAL(X86::VRSQRTPSYr), 0,
                    1/*#VTs*/, MVT::v8f32, 1/*#Ops*/, 0, 
                // Src: (X86frsqrt:v8f32 VR256:v8f32:$src) - Complexity = 3
                // Dst: (VRSQRTPSYr:v8f32 VR256:v8f32:$src)
              0, // EndSwitchType
/*80985*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 96|128,1/*224*/,  TARGET_VAL(X86ISD::FRCP),// ->81214
/*80990*/   OPC_Scope, 63, /*->81055*/ // 4 children in Scope
/*80992*/     OPC_MoveChild, 0,
/*80994*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*80997*/     OPC_RecordMemRef,
/*80998*/     OPC_RecordNode, // #0 = 'ld' chained node
/*80999*/     OPC_RecordChild1, // #1 = $src
/*81000*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*81002*/     OPC_CheckPredicate, 3, // Predicate_load
/*81004*/     OPC_MoveParent,
/*81005*/     OPC_CheckType, MVT::f32,
/*81007*/     OPC_Scope, 18, /*->81027*/ // 2 children in Scope
/*81009*/       OPC_CheckPatternPredicate, 32, // (Subtarget->hasSSE1()) && (OptForSize)
/*81011*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*81014*/       OPC_EmitMergeInputChains1_0,
/*81015*/       OPC_MorphNodeTo, TARGET_VAL(X86::RCPSSm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (X86frcp:f32 (ld:f32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                // Dst: (RCPSSm:f32 addr:iPTR:$src)
/*81027*/     /*Scope*/ 26, /*->81054*/
/*81028*/       OPC_CheckPatternPredicate, 33, // (Subtarget->hasAVX()) && (OptForSize)
/*81030*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*81033*/       OPC_EmitMergeInputChains1_0,
/*81034*/       OPC_EmitNode, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    1/*#VTs*/, MVT::f32, 0/*#Ops*/,  // Results = #7 
/*81041*/       OPC_MorphNodeTo, TARGET_VAL(X86::VRCPSSm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::f32, 6/*#Ops*/, 7, 2, 3, 4, 5, 6, 
                // Src: (X86frcp:f32 (ld:f32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                // Dst: (VRCPSSm:f32 (IMPLICIT_DEF:f32), addr:iPTR:$src)
/*81054*/     0, /*End of Scope*/
/*81055*/   /*Scope*/ 35, /*->81091*/
/*81056*/     OPC_RecordChild0, // #0 = $src
/*81057*/     OPC_CheckType, MVT::f32,
/*81059*/     OPC_Scope, 10, /*->81071*/ // 2 children in Scope
/*81061*/       OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*81063*/       OPC_MorphNodeTo, TARGET_VAL(X86::RCPSSr), 0,
                    1/*#VTs*/, MVT::f32, 1/*#Ops*/, 0, 
                // Src: (X86frcp:f32 FR32:f32:$src) - Complexity = 3
                // Dst: (RCPSSr:f32 FR32:f32:$src)
/*81071*/     /*Scope*/ 18, /*->81090*/
/*81072*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*81074*/       OPC_EmitNode, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    1/*#VTs*/, MVT::f32, 0/*#Ops*/,  // Results = #1 
/*81081*/       OPC_MorphNodeTo, TARGET_VAL(X86::VRCPSSr), 0,
                    1/*#VTs*/, MVT::f32, 2/*#Ops*/, 1, 0, 
                // Src: (X86frcp:f32 FR32:f32:$src) - Complexity = 3
                // Dst: (VRCPSSr:f32 (IMPLICIT_DEF:f32), FR32:f32:$src)
/*81090*/     0, /*End of Scope*/
/*81091*/   /*Scope*/ 79, /*->81171*/
/*81092*/     OPC_MoveChild, 0,
/*81094*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*81097*/     OPC_RecordMemRef,
/*81098*/     OPC_RecordNode, // #0 = 'ld' chained node
/*81099*/     OPC_RecordChild1, // #1 = $src
/*81100*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*81102*/     OPC_CheckPredicate, 3, // Predicate_load
/*81104*/     OPC_CheckPredicate, 23, // Predicate_memop
/*81106*/     OPC_MoveParent,
/*81107*/     OPC_SwitchType /*2 cases */, 40,  MVT::v4f32,// ->81150
/*81110*/       OPC_Scope, 18, /*->81130*/ // 2 children in Scope
/*81112*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*81114*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*81117*/         OPC_EmitMergeInputChains1_0,
/*81118*/         OPC_MorphNodeTo, TARGET_VAL(X86::VRCPPSm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (X86frcp:v4f32 (ld:v4f32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                  // Dst: (VRCPPSm:v4f32 addr:iPTR:$src)
/*81130*/       /*Scope*/ 18, /*->81149*/
/*81131*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*81133*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*81136*/         OPC_EmitMergeInputChains1_0,
/*81137*/         OPC_MorphNodeTo, TARGET_VAL(X86::RCPPSm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (X86frcp:v4f32 (ld:v4f32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                  // Dst: (RCPPSm:v4f32 addr:iPTR:$src)
/*81149*/       0, /*End of Scope*/
              /*SwitchType*/ 18,  MVT::v8f32,// ->81170
/*81152*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*81154*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*81157*/       OPC_EmitMergeInputChains1_0,
/*81158*/       OPC_MorphNodeTo, TARGET_VAL(X86::VRCPPSYm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v8f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (X86frcp:v8f32 (ld:v8f32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                // Dst: (VRCPPSYm:v8f32 addr:iPTR:$src)
              0, // EndSwitchType
/*81171*/   /*Scope*/ 41, /*->81213*/
/*81172*/     OPC_RecordChild0, // #0 = $src
/*81173*/     OPC_SwitchType /*2 cases */, 24,  MVT::v4f32,// ->81200
/*81176*/       OPC_Scope, 10, /*->81188*/ // 2 children in Scope
/*81178*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*81180*/         OPC_MorphNodeTo, TARGET_VAL(X86::VRCPPSr), 0,
                      1/*#VTs*/, MVT::v4f32, 1/*#Ops*/, 0, 
                  // Src: (X86frcp:v4f32 VR128:v4f32:$src) - Complexity = 3
                  // Dst: (VRCPPSr:v4f32 VR128:v4f32:$src)
/*81188*/       /*Scope*/ 10, /*->81199*/
/*81189*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*81191*/         OPC_MorphNodeTo, TARGET_VAL(X86::RCPPSr), 0,
                      1/*#VTs*/, MVT::v4f32, 1/*#Ops*/, 0, 
                  // Src: (X86frcp:v4f32 VR128:v4f32:$src) - Complexity = 3
                  // Dst: (RCPPSr:v4f32 VR128:v4f32:$src)
/*81199*/       0, /*End of Scope*/
              /*SwitchType*/ 10,  MVT::v8f32,// ->81212
/*81202*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*81204*/       OPC_MorphNodeTo, TARGET_VAL(X86::VRCPPSYr), 0,
                    1/*#VTs*/, MVT::v8f32, 1/*#Ops*/, 0, 
                // Src: (X86frcp:v8f32 VR256:v8f32:$src) - Complexity = 3
                // Dst: (VRCPPSYr:v8f32 VR256:v8f32:$src)
              0, // EndSwitchType
/*81213*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 71|128,1/*199*/,  TARGET_VAL(X86ISD::FILD),// ->81417
/*81218*/   OPC_RecordMemRef,
/*81219*/   OPC_RecordNode,   // #0 = 'X86fild' chained node
/*81220*/   OPC_RecordChild1, // #1 = $src
/*81221*/   OPC_MoveChild, 2,
/*81223*/   OPC_Scope, 63, /*->81288*/ // 3 children in Scope
/*81225*/     OPC_CheckValueType, MVT::i16,
/*81227*/     OPC_MoveParent,
/*81228*/     OPC_SwitchType /*3 cases */, 18,  MVT::f32,// ->81249
/*81231*/       OPC_CheckPatternPredicate, 8, // (!Subtarget->hasXMM())
/*81233*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*81236*/       OPC_EmitMergeInputChains1_0,
/*81237*/       OPC_MorphNodeTo, TARGET_VAL(X86::ILD_Fp16m32), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (X86fild:f32 addr:iPTR:$src, i16:Other) - Complexity = 21
                // Dst: (ILD_Fp16m32:f32 addr:iPTR:$src)
              /*SwitchType*/ 18,  MVT::f64,// ->81269
/*81251*/       OPC_CheckPatternPredicate, 9, // (!Subtarget->hasXMMInt())
/*81253*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*81256*/       OPC_EmitMergeInputChains1_0,
/*81257*/       OPC_MorphNodeTo, TARGET_VAL(X86::ILD_Fp16m64), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (X86fild:f64 addr:iPTR:$src, i16:Other) - Complexity = 21
                // Dst: (ILD_Fp16m64:f64 addr:iPTR:$src)
              /*SwitchType*/ 16,  MVT::f80,// ->81287
/*81271*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*81274*/       OPC_EmitMergeInputChains1_0,
/*81275*/       OPC_MorphNodeTo, TARGET_VAL(X86::ILD_Fp16m80), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::f80, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (X86fild:f80 addr:iPTR:$src, i16:Other) - Complexity = 21
                // Dst: (ILD_Fp16m80:f80 addr:iPTR:$src)
              0, // EndSwitchType
/*81288*/   /*Scope*/ 63, /*->81352*/
/*81289*/     OPC_CheckValueType, MVT::i32,
/*81291*/     OPC_MoveParent,
/*81292*/     OPC_SwitchType /*3 cases */, 18,  MVT::f32,// ->81313
/*81295*/       OPC_CheckPatternPredicate, 8, // (!Subtarget->hasXMM())
/*81297*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*81300*/       OPC_EmitMergeInputChains1_0,
/*81301*/       OPC_MorphNodeTo, TARGET_VAL(X86::ILD_Fp32m32), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (X86fild:f32 addr:iPTR:$src, i32:Other) - Complexity = 21
                // Dst: (ILD_Fp32m32:f32 addr:iPTR:$src)
              /*SwitchType*/ 18,  MVT::f64,// ->81333
/*81315*/       OPC_CheckPatternPredicate, 9, // (!Subtarget->hasXMMInt())
/*81317*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*81320*/       OPC_EmitMergeInputChains1_0,
/*81321*/       OPC_MorphNodeTo, TARGET_VAL(X86::ILD_Fp32m64), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (X86fild:f64 addr:iPTR:$src, i32:Other) - Complexity = 21
                // Dst: (ILD_Fp32m64:f64 addr:iPTR:$src)
              /*SwitchType*/ 16,  MVT::f80,// ->81351
/*81335*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*81338*/       OPC_EmitMergeInputChains1_0,
/*81339*/       OPC_MorphNodeTo, TARGET_VAL(X86::ILD_Fp32m80), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::f80, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (X86fild:f80 addr:iPTR:$src, i32:Other) - Complexity = 21
                // Dst: (ILD_Fp32m80:f80 addr:iPTR:$src)
              0, // EndSwitchType
/*81352*/   /*Scope*/ 63, /*->81416*/
/*81353*/     OPC_CheckValueType, MVT::i64,
/*81355*/     OPC_MoveParent,
/*81356*/     OPC_SwitchType /*3 cases */, 18,  MVT::f32,// ->81377
/*81359*/       OPC_CheckPatternPredicate, 8, // (!Subtarget->hasXMM())
/*81361*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*81364*/       OPC_EmitMergeInputChains1_0,
/*81365*/       OPC_MorphNodeTo, TARGET_VAL(X86::ILD_Fp64m32), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (X86fild:f32 addr:iPTR:$src, i64:Other) - Complexity = 21
                // Dst: (ILD_Fp64m32:f32 addr:iPTR:$src)
              /*SwitchType*/ 18,  MVT::f64,// ->81397
/*81379*/       OPC_CheckPatternPredicate, 9, // (!Subtarget->hasXMMInt())
/*81381*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*81384*/       OPC_EmitMergeInputChains1_0,
/*81385*/       OPC_MorphNodeTo, TARGET_VAL(X86::ILD_Fp64m64), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (X86fild:f64 addr:iPTR:$src, i64:Other) - Complexity = 21
                // Dst: (ILD_Fp64m64:f64 addr:iPTR:$src)
              /*SwitchType*/ 16,  MVT::f80,// ->81415
/*81399*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*81402*/       OPC_EmitMergeInputChains1_0,
/*81403*/       OPC_MorphNodeTo, TARGET_VAL(X86::ILD_Fp64m80), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::f80, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (X86fild:f80 addr:iPTR:$src, i64:Other) - Complexity = 21
                // Dst: (ILD_Fp64m80:f80 addr:iPTR:$src)
              0, // EndSwitchType
/*81416*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 73,  TARGET_VAL(X86ISD::FLD),// ->81493
/*81420*/   OPC_RecordMemRef,
/*81421*/   OPC_RecordNode,   // #0 = 'X86fld' chained node
/*81422*/   OPC_RecordChild1, // #1 = $src
/*81423*/   OPC_MoveChild, 2,
/*81425*/   OPC_Scope, 21, /*->81448*/ // 3 children in Scope
/*81427*/     OPC_CheckValueType, MVT::f32,
/*81429*/     OPC_MoveParent,
/*81430*/     OPC_CheckType, MVT::f32,
/*81432*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*81435*/     OPC_EmitMergeInputChains1_0,
/*81436*/     OPC_MorphNodeTo, TARGET_VAL(X86::LD_Fp32m), 0|OPFL_Chain|OPFL_MemRefs,
                  1/*#VTs*/, MVT::f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
              // Src: (X86fld:f32 addr:iPTR:$src, f32:Other) - Complexity = 21
              // Dst: (LD_Fp32m:f32 addr:iPTR:$src)
/*81448*/   /*Scope*/ 21, /*->81470*/
/*81449*/     OPC_CheckValueType, MVT::f64,
/*81451*/     OPC_MoveParent,
/*81452*/     OPC_CheckType, MVT::f64,
/*81454*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*81457*/     OPC_EmitMergeInputChains1_0,
/*81458*/     OPC_MorphNodeTo, TARGET_VAL(X86::LD_Fp64m), 0|OPFL_Chain|OPFL_MemRefs,
                  1/*#VTs*/, MVT::f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
              // Src: (X86fld:f64 addr:iPTR:$src, f64:Other) - Complexity = 21
              // Dst: (LD_Fp64m:f64 addr:iPTR:$src)
/*81470*/   /*Scope*/ 21, /*->81492*/
/*81471*/     OPC_CheckValueType, MVT::f80,
/*81473*/     OPC_MoveParent,
/*81474*/     OPC_CheckType, MVT::f80,
/*81476*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*81479*/     OPC_EmitMergeInputChains1_0,
/*81480*/     OPC_MorphNodeTo, TARGET_VAL(X86::LD_Fp80m), 0|OPFL_Chain|OPFL_MemRefs,
                  1/*#VTs*/, MVT::f80, 5/*#Ops*/, 2, 3, 4, 5, 6, 
              // Src: (X86fld:f80 addr:iPTR:$src, f80:Other) - Complexity = 21
              // Dst: (LD_Fp80m:f80 addr:iPTR:$src)
/*81492*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 26,  TARGET_VAL(X86ISD::FILD_FLAG),// ->81522
/*81496*/   OPC_RecordMemRef,
/*81497*/   OPC_RecordNode,   // #0 = 'X86fildflag' chained node
/*81498*/   OPC_RecordChild1, // #1 = $src
/*81499*/   OPC_MoveChild, 2,
/*81501*/   OPC_CheckValueType, MVT::i64,
/*81503*/   OPC_MoveParent,
/*81504*/   OPC_CheckType, MVT::f64,
/*81506*/   OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*81509*/   OPC_EmitMergeInputChains1_0,
/*81510*/   OPC_MorphNodeTo, TARGET_VAL(X86::ILD_Fp64m64), 0|OPFL_Chain|OPFL_GlueOutput|OPFL_MemRefs,
                1/*#VTs*/, MVT::f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
            // Src: (X86fildflag:f64 addr:iPTR:$src, i64:Other) - Complexity = 21
            // Dst: (ILD_Fp64m64:f64 addr:iPTR:$src)
          /*SwitchOpcode*/ 94|128,1/*222*/,  TARGET_VAL(ISD::ConstantFP),// ->81748
/*81526*/   OPC_SwitchType /*3 cases */, 78,  MVT::f32,// ->81607
/*81529*/     OPC_Scope, 11, /*->81542*/ // 5 children in Scope
/*81531*/       OPC_CheckPredicate, 88, // Predicate_fpimm0
/*81533*/       OPC_CheckPatternPredicate, 8, // (!Subtarget->hasXMM())
/*81535*/       OPC_MorphNodeTo, TARGET_VAL(X86::LD_Fp032), 0,
                    1/*#VTs*/, MVT::f32, 0/*#Ops*/, 
                // Src: (fpimm:f32)<<P:Predicate_fpimm0>> - Complexity = 4
                // Dst: (LD_Fp032:f32)
/*81542*/     /*Scope*/ 11, /*->81554*/
/*81543*/       OPC_CheckPredicate, 89, // Predicate_fpimm1
/*81545*/       OPC_CheckPatternPredicate, 8, // (!Subtarget->hasXMM())
/*81547*/       OPC_MorphNodeTo, TARGET_VAL(X86::LD_Fp132), 0,
                    1/*#VTs*/, MVT::f32, 0/*#Ops*/, 
                // Src: (fpimm:f32)<<P:Predicate_fpimm1>> - Complexity = 4
                // Dst: (LD_Fp132:f32)
/*81554*/     /*Scope*/ 11, /*->81566*/
/*81555*/       OPC_CheckPredicate, 90, // Predicate_fp32imm0
/*81557*/       OPC_CheckPatternPredicate, 34, // (Subtarget->hasXMM())
/*81559*/       OPC_MorphNodeTo, TARGET_VAL(X86::FsFLD0SS), 0,
                    1/*#VTs*/, MVT::f32, 0/*#Ops*/, 
                // Src: (fpimm:f32)<<P:Predicate_fp32imm0>> - Complexity = 4
                // Dst: (FsFLD0SS:f32)
/*81566*/     /*Scope*/ 19, /*->81586*/
/*81567*/       OPC_CheckPredicate, 91, // Predicate_fpimmneg0
/*81569*/       OPC_CheckPatternPredicate, 8, // (!Subtarget->hasXMM())
/*81571*/       OPC_EmitNode, TARGET_VAL(X86::LD_Fp032), 0,
                    1/*#VTs*/, MVT::f32, 0/*#Ops*/,  // Results = #0 
/*81578*/       OPC_MorphNodeTo, TARGET_VAL(X86::CHS_Fp32), 0,
                    1/*#VTs*/, MVT::f32, 1/*#Ops*/, 0, 
                // Src: (fpimm:f32)<<P:Predicate_fpimmneg0>> - Complexity = 4
                // Dst: (CHS_Fp32:f32 (LD_Fp032:f32))
/*81586*/     /*Scope*/ 19, /*->81606*/
/*81587*/       OPC_CheckPredicate, 92, // Predicate_fpimmneg1
/*81589*/       OPC_CheckPatternPredicate, 8, // (!Subtarget->hasXMM())
/*81591*/       OPC_EmitNode, TARGET_VAL(X86::LD_Fp132), 0,
                    1/*#VTs*/, MVT::f32, 0/*#Ops*/,  // Results = #0 
/*81598*/       OPC_MorphNodeTo, TARGET_VAL(X86::CHS_Fp32), 0,
                    1/*#VTs*/, MVT::f32, 1/*#Ops*/, 0, 
                // Src: (fpimm:f32)<<P:Predicate_fpimmneg1>> - Complexity = 4
                // Dst: (CHS_Fp32:f32 (LD_Fp132:f32))
/*81606*/     0, /*End of Scope*/
            /*SwitchType*/ 78,  MVT::f64,// ->81687
/*81609*/     OPC_Scope, 11, /*->81622*/ // 5 children in Scope
/*81611*/       OPC_CheckPredicate, 88, // Predicate_fpimm0
/*81613*/       OPC_CheckPatternPredicate, 9, // (!Subtarget->hasXMMInt())
/*81615*/       OPC_MorphNodeTo, TARGET_VAL(X86::LD_Fp064), 0,
                    1/*#VTs*/, MVT::f64, 0/*#Ops*/, 
                // Src: (fpimm:f64)<<P:Predicate_fpimm0>> - Complexity = 4
                // Dst: (LD_Fp064:f64)
/*81622*/     /*Scope*/ 11, /*->81634*/
/*81623*/       OPC_CheckPredicate, 89, // Predicate_fpimm1
/*81625*/       OPC_CheckPatternPredicate, 9, // (!Subtarget->hasXMMInt())
/*81627*/       OPC_MorphNodeTo, TARGET_VAL(X86::LD_Fp164), 0,
                    1/*#VTs*/, MVT::f64, 0/*#Ops*/, 
                // Src: (fpimm:f64)<<P:Predicate_fpimm1>> - Complexity = 4
                // Dst: (LD_Fp164:f64)
/*81634*/     /*Scope*/ 11, /*->81646*/
/*81635*/       OPC_CheckPredicate, 88, // Predicate_fpimm0
/*81637*/       OPC_CheckPatternPredicate, 27, // (Subtarget->hasXMMInt())
/*81639*/       OPC_MorphNodeTo, TARGET_VAL(X86::FsFLD0SD), 0,
                    1/*#VTs*/, MVT::f64, 0/*#Ops*/, 
                // Src: (fpimm:f64)<<P:Predicate_fpimm0>> - Complexity = 4
                // Dst: (FsFLD0SD:f64)
/*81646*/     /*Scope*/ 19, /*->81666*/
/*81647*/       OPC_CheckPredicate, 91, // Predicate_fpimmneg0
/*81649*/       OPC_CheckPatternPredicate, 9, // (!Subtarget->hasXMMInt())
/*81651*/       OPC_EmitNode, TARGET_VAL(X86::LD_Fp064), 0,
                    1/*#VTs*/, MVT::f64, 0/*#Ops*/,  // Results = #0 
/*81658*/       OPC_MorphNodeTo, TARGET_VAL(X86::CHS_Fp64), 0,
                    1/*#VTs*/, MVT::f64, 1/*#Ops*/, 0, 
                // Src: (fpimm:f64)<<P:Predicate_fpimmneg0>> - Complexity = 4
                // Dst: (CHS_Fp64:f64 (LD_Fp064:f64))
/*81666*/     /*Scope*/ 19, /*->81686*/
/*81667*/       OPC_CheckPredicate, 92, // Predicate_fpimmneg1
/*81669*/       OPC_CheckPatternPredicate, 9, // (!Subtarget->hasXMMInt())
/*81671*/       OPC_EmitNode, TARGET_VAL(X86::LD_Fp164), 0,
                    1/*#VTs*/, MVT::f64, 0/*#Ops*/,  // Results = #0 
/*81678*/       OPC_MorphNodeTo, TARGET_VAL(X86::CHS_Fp64), 0,
                    1/*#VTs*/, MVT::f64, 1/*#Ops*/, 0, 
                // Src: (fpimm:f64)<<P:Predicate_fpimmneg1>> - Complexity = 4
                // Dst: (CHS_Fp64:f64 (LD_Fp164:f64))
/*81686*/     0, /*End of Scope*/
            /*SwitchType*/ 58,  MVT::f80,// ->81747
/*81689*/     OPC_Scope, 9, /*->81700*/ // 4 children in Scope
/*81691*/       OPC_CheckPredicate, 88, // Predicate_fpimm0
/*81693*/       OPC_MorphNodeTo, TARGET_VAL(X86::LD_Fp080), 0,
                    1/*#VTs*/, MVT::f80, 0/*#Ops*/, 
                // Src: (fpimm:f80)<<P:Predicate_fpimm0>> - Complexity = 4
                // Dst: (LD_Fp080:f80)
/*81700*/     /*Scope*/ 9, /*->81710*/
/*81701*/       OPC_CheckPredicate, 89, // Predicate_fpimm1
/*81703*/       OPC_MorphNodeTo, TARGET_VAL(X86::LD_Fp180), 0,
                    1/*#VTs*/, MVT::f80, 0/*#Ops*/, 
                // Src: (fpimm:f80)<<P:Predicate_fpimm1>> - Complexity = 4
                // Dst: (LD_Fp180:f80)
/*81710*/     /*Scope*/ 17, /*->81728*/
/*81711*/       OPC_CheckPredicate, 91, // Predicate_fpimmneg0
/*81713*/       OPC_EmitNode, TARGET_VAL(X86::LD_Fp080), 0,
                    1/*#VTs*/, MVT::f80, 0/*#Ops*/,  // Results = #0 
/*81720*/       OPC_MorphNodeTo, TARGET_VAL(X86::CHS_Fp80), 0,
                    1/*#VTs*/, MVT::f80, 1/*#Ops*/, 0, 
                // Src: (fpimm:f80)<<P:Predicate_fpimmneg0>> - Complexity = 4
                // Dst: (CHS_Fp80:f80 (LD_Fp080:f80))
/*81728*/     /*Scope*/ 17, /*->81746*/
/*81729*/       OPC_CheckPredicate, 92, // Predicate_fpimmneg1
/*81731*/       OPC_EmitNode, TARGET_VAL(X86::LD_Fp180), 0,
                    1/*#VTs*/, MVT::f80, 0/*#Ops*/,  // Results = #0 
/*81738*/       OPC_MorphNodeTo, TARGET_VAL(X86::CHS_Fp80), 0,
                    1/*#VTs*/, MVT::f80, 1/*#Ops*/, 0, 
                // Src: (fpimm:f80)<<P:Predicate_fpimmneg1>> - Complexity = 4
                // Dst: (CHS_Fp80:f80 (LD_Fp180:f80))
/*81746*/     0, /*End of Scope*/
            0, // EndSwitchType
          /*SwitchOpcode*/ 37,  TARGET_VAL(ISD::FNEG),// ->81788
/*81751*/   OPC_RecordChild0, // #0 = $src
/*81752*/   OPC_SwitchType /*3 cases */, 10,  MVT::f32,// ->81765
/*81755*/     OPC_CheckPatternPredicate, 8, // (!Subtarget->hasXMM())
/*81757*/     OPC_MorphNodeTo, TARGET_VAL(X86::CHS_Fp32), 0,
                  1/*#VTs*/, MVT::f32, 1/*#Ops*/, 0, 
              // Src: (fneg:f32 RFP32:f32:$src) - Complexity = 3
              // Dst: (CHS_Fp32:f32 RFP32:f32:$src)
            /*SwitchType*/ 10,  MVT::f64,// ->81777
/*81767*/     OPC_CheckPatternPredicate, 9, // (!Subtarget->hasXMMInt())
/*81769*/     OPC_MorphNodeTo, TARGET_VAL(X86::CHS_Fp64), 0,
                  1/*#VTs*/, MVT::f64, 1/*#Ops*/, 0, 
              // Src: (fneg:f64 RFP64:f64:$src) - Complexity = 3
              // Dst: (CHS_Fp64:f64 RFP64:f64:$src)
            /*SwitchType*/ 8,  MVT::f80,// ->81787
/*81779*/     OPC_MorphNodeTo, TARGET_VAL(X86::CHS_Fp80), 0,
                  1/*#VTs*/, MVT::f80, 1/*#Ops*/, 0, 
              // Src: (fneg:f80 RFP80:f80:$src) - Complexity = 3
              // Dst: (CHS_Fp80:f80 RFP80:f80:$src)
            0, // EndSwitchType
          /*SwitchOpcode*/ 37,  TARGET_VAL(ISD::FABS),// ->81828
/*81791*/   OPC_RecordChild0, // #0 = $src
/*81792*/   OPC_SwitchType /*3 cases */, 10,  MVT::f32,// ->81805
/*81795*/     OPC_CheckPatternPredicate, 8, // (!Subtarget->hasXMM())
/*81797*/     OPC_MorphNodeTo, TARGET_VAL(X86::ABS_Fp32), 0,
                  1/*#VTs*/, MVT::f32, 1/*#Ops*/, 0, 
              // Src: (fabs:f32 RFP32:f32:$src) - Complexity = 3
              // Dst: (ABS_Fp32:f32 RFP32:f32:$src)
            /*SwitchType*/ 10,  MVT::f64,// ->81817
/*81807*/     OPC_CheckPatternPredicate, 9, // (!Subtarget->hasXMMInt())
/*81809*/     OPC_MorphNodeTo, TARGET_VAL(X86::ABS_Fp64), 0,
                  1/*#VTs*/, MVT::f64, 1/*#Ops*/, 0, 
              // Src: (fabs:f64 RFP64:f64:$src) - Complexity = 3
              // Dst: (ABS_Fp64:f64 RFP64:f64:$src)
            /*SwitchType*/ 8,  MVT::f80,// ->81827
/*81819*/     OPC_MorphNodeTo, TARGET_VAL(X86::ABS_Fp80), 0,
                  1/*#VTs*/, MVT::f80, 1/*#Ops*/, 0, 
              // Src: (fabs:f80 RFP80:f80:$src) - Complexity = 3
              // Dst: (ABS_Fp80:f80 RFP80:f80:$src)
            0, // EndSwitchType
          /*SwitchOpcode*/ 37,  TARGET_VAL(ISD::FSIN),// ->81868
/*81831*/   OPC_RecordChild0, // #0 = $src
/*81832*/   OPC_SwitchType /*3 cases */, 10,  MVT::f32,// ->81845
/*81835*/     OPC_CheckPatternPredicate, 8, // (!Subtarget->hasXMM())
/*81837*/     OPC_MorphNodeTo, TARGET_VAL(X86::SIN_Fp32), 0,
                  1/*#VTs*/, MVT::f32, 1/*#Ops*/, 0, 
              // Src: (fsin:f32 RFP32:f32:$src) - Complexity = 3
              // Dst: (SIN_Fp32:f32 RFP32:f32:$src)
            /*SwitchType*/ 10,  MVT::f64,// ->81857
/*81847*/     OPC_CheckPatternPredicate, 9, // (!Subtarget->hasXMMInt())
/*81849*/     OPC_MorphNodeTo, TARGET_VAL(X86::SIN_Fp64), 0,
                  1/*#VTs*/, MVT::f64, 1/*#Ops*/, 0, 
              // Src: (fsin:f64 RFP64:f64:$src) - Complexity = 3
              // Dst: (SIN_Fp64:f64 RFP64:f64:$src)
            /*SwitchType*/ 8,  MVT::f80,// ->81867
/*81859*/     OPC_MorphNodeTo, TARGET_VAL(X86::SIN_Fp80), 0,
                  1/*#VTs*/, MVT::f80, 1/*#Ops*/, 0, 
              // Src: (fsin:f80 RFP80:f80:$src) - Complexity = 3
              // Dst: (SIN_Fp80:f80 RFP80:f80:$src)
            0, // EndSwitchType
          /*SwitchOpcode*/ 37,  TARGET_VAL(ISD::FCOS),// ->81908
/*81871*/   OPC_RecordChild0, // #0 = $src
/*81872*/   OPC_SwitchType /*3 cases */, 10,  MVT::f32,// ->81885
/*81875*/     OPC_CheckPatternPredicate, 8, // (!Subtarget->hasXMM())
/*81877*/     OPC_MorphNodeTo, TARGET_VAL(X86::COS_Fp32), 0,
                  1/*#VTs*/, MVT::f32, 1/*#Ops*/, 0, 
              // Src: (fcos:f32 RFP32:f32:$src) - Complexity = 3
              // Dst: (COS_Fp32:f32 RFP32:f32:$src)
            /*SwitchType*/ 10,  MVT::f64,// ->81897
/*81887*/     OPC_CheckPatternPredicate, 9, // (!Subtarget->hasXMMInt())
/*81889*/     OPC_MorphNodeTo, TARGET_VAL(X86::COS_Fp64), 0,
                  1/*#VTs*/, MVT::f64, 1/*#Ops*/, 0, 
              // Src: (fcos:f64 RFP64:f64:$src) - Complexity = 3
              // Dst: (COS_Fp64:f64 RFP64:f64:$src)
            /*SwitchType*/ 8,  MVT::f80,// ->81907
/*81899*/     OPC_MorphNodeTo, TARGET_VAL(X86::COS_Fp80), 0,
                  1/*#VTs*/, MVT::f80, 1/*#Ops*/, 0, 
              // Src: (fcos:f80 RFP80:f80:$src) - Complexity = 3
              // Dst: (COS_Fp80:f80 RFP80:f80:$src)
            0, // EndSwitchType
          /*SwitchOpcode*/ 19|128,26/*3347*/,  TARGET_VAL(ISD::VECTOR_SHUFFLE),// ->85259
/*81912*/   OPC_Scope, 107, /*->82021*/ // 18 children in Scope
/*81914*/     OPC_RecordChild0, // #0 = $src1
/*81915*/     OPC_MoveChild, 1,
/*81917*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*81920*/     OPC_RecordMemRef,
/*81921*/     OPC_RecordNode, // #1 = 'ld' chained node
/*81922*/     OPC_CheckFoldableChainNode,
/*81923*/     OPC_RecordChild1, // #2 = $src2
/*81924*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*81926*/     OPC_CheckPredicate, 3, // Predicate_load
/*81928*/     OPC_MoveParent,
/*81929*/     OPC_CheckPredicate, 12, // Predicate_movlp
/*81931*/     OPC_SwitchType /*2 cases */, 42,  MVT::v4i32,// ->81976
/*81934*/       OPC_Scope, 19, /*->81955*/ // 2 children in Scope
/*81936*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*81938*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*81941*/         OPC_EmitMergeInputChains1_1,
/*81942*/         OPC_MorphNodeTo, TARGET_VAL(X86::VMOVLPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (vector_shuffle:v4i32 VR128:v4i32:$src1, (ld:v4i32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)<<P:Predicate_movlp>> - Complexity = 46
                  // Dst: (VMOVLPSrm:v4i32 VR128:v4i32:$src1, addr:iPTR:$src2)
/*81955*/       /*Scope*/ 19, /*->81975*/
/*81956*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*81958*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*81961*/         OPC_EmitMergeInputChains1_1,
/*81962*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOVLPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (vector_shuffle:v4i32 VR128:v4i32:$src1, (ld:v4i32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)<<P:Predicate_movlp>> - Complexity = 46
                  // Dst: (MOVLPSrm:v4i32 VR128:v4i32:$src1, addr:iPTR:$src2)
/*81975*/       0, /*End of Scope*/
              /*SwitchType*/ 42,  MVT::v2i64,// ->82020
/*81978*/       OPC_Scope, 19, /*->81999*/ // 2 children in Scope
/*81980*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*81982*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*81985*/         OPC_EmitMergeInputChains1_1,
/*81986*/         OPC_MorphNodeTo, TARGET_VAL(X86::VMOVLPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (vector_shuffle:v2i64 VR128:v2i64:$src1, (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)<<P:Predicate_movlp>> - Complexity = 46
                  // Dst: (VMOVLPDrm:v2i64 VR128:v2i64:$src1, addr:iPTR:$src2)
/*81999*/       /*Scope*/ 19, /*->82019*/
/*82000*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*82002*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*82005*/         OPC_EmitMergeInputChains1_1,
/*82006*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOVLPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (vector_shuffle:v2i64 VR128:v2i64:$src1, (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)<<P:Predicate_movlp>> - Complexity = 46
                  // Dst: (MOVLPDrm:v2i64 VR128:v2i64:$src1, addr:iPTR:$src2)
/*82019*/       0, /*End of Scope*/
              0, // EndSwitchType
/*82021*/   /*Scope*/ 83, /*->82105*/
/*82022*/     OPC_RecordNode, // #0 = $src2
/*82023*/     OPC_MoveChild, 0,
/*82025*/     OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*82028*/     OPC_MoveChild, 0,
/*82030*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*82033*/     OPC_RecordMemRef,
/*82034*/     OPC_RecordNode, // #1 = 'ld' chained node
/*82035*/     OPC_CheckFoldableChainNode,
/*82036*/     OPC_RecordChild1, // #2 = $src1
/*82037*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*82039*/     OPC_CheckPredicate, 3, // Predicate_load
/*82041*/     OPC_CheckPredicate, 23, // Predicate_memop
/*82043*/     OPC_CheckType, MVT::v2i64,
/*82045*/     OPC_MoveParent,
/*82046*/     OPC_MoveParent,
/*82047*/     OPC_MoveChild, 1,
/*82049*/     OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
/*82052*/     OPC_MoveParent,
/*82053*/     OPC_CheckPredicate, 93, // Predicate_pshufd
/*82055*/     OPC_CheckType, MVT::v4i32,
/*82057*/     OPC_Scope, 22, /*->82081*/ // 2 children in Scope
/*82059*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*82061*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src1 #3 #4 #5 #6 #7
/*82064*/       OPC_EmitMergeInputChains1_1,
/*82065*/       OPC_EmitNodeXForm, 3, 0, // SHUFFLE_get_shuf_imm
/*82068*/       OPC_MorphNodeTo, TARGET_VAL(X86::VPSHUFDmi), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v4i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                // Src: (vector_shuffle:v4i32 (bitconvert:v4i32 (ld:v2i64 addr:iPTR:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>), (undef:v4i32))<<P:Predicate_pshufd>><<X:SHUFFLE_get_shuf_imm>>:$src2 - Complexity = 37
                // Dst: (VPSHUFDmi:v4i32 addr:iPTR:$src1, (SHUFFLE_get_shuf_imm:i8 (vector_shuffle:v4i32 (bitconvert:v4i32 (ld:v2i64 addr:iPTR:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>), (undef:v4i32)):$src2))
/*82081*/     /*Scope*/ 22, /*->82104*/
/*82082*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*82084*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src1 #3 #4 #5 #6 #7
/*82087*/       OPC_EmitMergeInputChains1_1,
/*82088*/       OPC_EmitNodeXForm, 3, 0, // SHUFFLE_get_shuf_imm
/*82091*/       OPC_MorphNodeTo, TARGET_VAL(X86::PSHUFDmi), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v4i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                // Src: (vector_shuffle:v4i32 (bitconvert:v4i32 (ld:v2i64 addr:iPTR:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>), (undef:v4i32))<<P:Predicate_pshufd>><<X:SHUFFLE_get_shuf_imm>>:$src2 - Complexity = 37
                // Dst: (PSHUFDmi:v4i32 addr:iPTR:$src1, (SHUFFLE_get_shuf_imm:i8 (vector_shuffle:v4i32 (bitconvert:v4i32 (ld:v2i64 addr:iPTR:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>), (undef:v4i32)):$src2))
/*82104*/     0, /*End of Scope*/
/*82105*/   /*Scope*/ 12|128,1/*140*/, /*->82247*/
/*82107*/     OPC_MoveChild, 0,
/*82109*/     OPC_SwitchOpcode /*2 cases */, 69,  TARGET_VAL(ISD::BITCAST),// ->82182
/*82113*/       OPC_MoveChild, 0,
/*82115*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*82118*/       OPC_RecordMemRef,
/*82119*/       OPC_RecordNode, // #0 = 'ld' chained node
/*82120*/       OPC_CheckFoldableChainNode,
/*82121*/       OPC_RecordChild1, // #1 = $src
/*82122*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*82124*/       OPC_CheckPredicate, 3, // Predicate_load
/*82126*/       OPC_CheckPredicate, 23, // Predicate_memop
/*82128*/       OPC_CheckType, MVT::v2i64,
/*82130*/       OPC_MoveParent,
/*82131*/       OPC_MoveParent,
/*82132*/       OPC_MoveChild, 1,
/*82134*/       OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
/*82137*/       OPC_MoveParent,
/*82138*/       OPC_CheckPredicate, 94, // Predicate_movddup
/*82140*/       OPC_CheckType, MVT::v4i32,
/*82142*/       OPC_Scope, 18, /*->82162*/ // 2 children in Scope
/*82144*/         OPC_CheckPatternPredicate, 16, // (Subtarget->hasSSE3())
/*82146*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*82149*/         OPC_EmitMergeInputChains1_0,
/*82150*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOVDDUPrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (vector_shuffle:v4i32 (bitconvert:v4i32 (ld:v2i64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>), (undef:v4i32))<<P:Predicate_movddup>> - Complexity = 37
                  // Dst: (MOVDDUPrm:v4i32 addr:iPTR:$src)
/*82162*/       /*Scope*/ 18, /*->82181*/
/*82163*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*82165*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*82168*/         OPC_EmitMergeInputChains1_0,
/*82169*/         OPC_MorphNodeTo, TARGET_VAL(X86::VMOVDDUPrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (vector_shuffle:v4i32 (bitconvert:v4i32 (ld:v2i64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>), (undef:v4i32))<<P:Predicate_movddup>> - Complexity = 37
                  // Dst: (VMOVDDUPrm:v4i32 addr:iPTR:$src)
/*82181*/       0, /*End of Scope*/
              /*SwitchOpcode*/ 61,  TARGET_VAL(ISD::LOAD),// ->82246
/*82185*/       OPC_RecordMemRef,
/*82186*/       OPC_RecordNode, // #0 = 'ld' chained node
/*82187*/       OPC_CheckFoldableChainNode,
/*82188*/       OPC_RecordChild1, // #1 = $src
/*82189*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*82191*/       OPC_CheckPredicate, 3, // Predicate_load
/*82193*/       OPC_CheckPredicate, 23, // Predicate_memop
/*82195*/       OPC_MoveParent,
/*82196*/       OPC_MoveChild, 1,
/*82198*/       OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
/*82201*/       OPC_MoveParent,
/*82202*/       OPC_CheckPredicate, 94, // Predicate_movddup
/*82204*/       OPC_CheckType, MVT::v2i64,
/*82206*/       OPC_Scope, 18, /*->82226*/ // 2 children in Scope
/*82208*/         OPC_CheckPatternPredicate, 16, // (Subtarget->hasSSE3())
/*82210*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*82213*/         OPC_EmitMergeInputChains1_0,
/*82214*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOVDDUPrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (vector_shuffle:v2i64 (ld:v2i64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, (undef:v2i64))<<P:Predicate_movddup>> - Complexity = 34
                  // Dst: (MOVDDUPrm:v2i64 addr:iPTR:$src)
/*82226*/       /*Scope*/ 18, /*->82245*/
/*82227*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*82229*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*82232*/         OPC_EmitMergeInputChains1_0,
/*82233*/         OPC_MorphNodeTo, TARGET_VAL(X86::VMOVDDUPrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (vector_shuffle:v2i64 (ld:v2i64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, (undef:v2i64))<<P:Predicate_movddup>> - Complexity = 34
                  // Dst: (VMOVDDUPrm:v2i64 addr:iPTR:$src)
/*82245*/       0, /*End of Scope*/
              0, // EndSwitchOpcode
/*82247*/   /*Scope*/ 31|128,2/*287*/, /*->82536*/
/*82249*/     OPC_RecordNode, // #0 = $src2
/*82250*/     OPC_Scope, 70|128,1/*198*/, /*->82451*/ // 2 children in Scope
/*82253*/       OPC_MoveChild, 0,
/*82255*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*82258*/       OPC_MoveChild, 0,
/*82260*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*82263*/       OPC_RecordMemRef,
/*82264*/       OPC_RecordNode, // #1 = 'ld' chained node
/*82265*/       OPC_CheckFoldableChainNode,
/*82266*/       OPC_RecordChild1, // #2 = $src1
/*82267*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*82269*/       OPC_CheckPredicate, 3, // Predicate_load
/*82271*/       OPC_CheckPredicate, 23, // Predicate_memop
/*82273*/       OPC_SwitchType /*2 cases */, 112,  MVT::v2i64,// ->82388
/*82276*/         OPC_MoveParent,
/*82277*/         OPC_MoveParent,
/*82278*/         OPC_MoveChild, 1,
/*82280*/         OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
/*82283*/         OPC_MoveParent,
/*82284*/         OPC_CheckType, MVT::v8i16,
/*82286*/         OPC_Scope, 24, /*->82312*/ // 4 children in Scope
/*82288*/           OPC_CheckPredicate, 95, // Predicate_pshufhw
/*82290*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*82292*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src1 #3 #4 #5 #6 #7
/*82295*/           OPC_EmitMergeInputChains1_1,
/*82296*/           OPC_EmitNodeXForm, 4, 0, // SHUFFLE_get_pshufhw_imm
/*82299*/           OPC_MorphNodeTo, TARGET_VAL(X86::VPSHUFHWmi), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v8i16, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (vector_shuffle:v8i16 (bitconvert:v8i16 (ld:v2i64 addr:iPTR:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>), (undef:v8i16))<<P:Predicate_pshufhw>><<X:SHUFFLE_get_pshufhw_imm>>:$src2 - Complexity = 32
                    // Dst: (VPSHUFHWmi:v8i16 addr:iPTR:$src1, (SHUFFLE_get_pshufhw_imm:i8 (vector_shuffle:v8i16 (bitconvert:v8i16 (ld:v2i64 addr:iPTR:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>), (undef:v8i16)):$src2))
/*82312*/         /*Scope*/ 24, /*->82337*/
/*82313*/           OPC_CheckPredicate, 96, // Predicate_pshuflw
/*82315*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*82317*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src1 #3 #4 #5 #6 #7
/*82320*/           OPC_EmitMergeInputChains1_1,
/*82321*/           OPC_EmitNodeXForm, 5, 0, // SHUFFLE_get_pshuflw_imm
/*82324*/           OPC_MorphNodeTo, TARGET_VAL(X86::VPSHUFLWmi), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v8i16, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (vector_shuffle:v8i16 (bitconvert:v8i16 (ld:v2i64 addr:iPTR:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>), (undef:v8i16))<<P:Predicate_pshuflw>><<X:SHUFFLE_get_pshuflw_imm>>:$src2 - Complexity = 32
                    // Dst: (VPSHUFLWmi:v8i16 addr:iPTR:$src1, (SHUFFLE_get_pshuflw_imm:i8 (vector_shuffle:v8i16 (bitconvert:v8i16 (ld:v2i64 addr:iPTR:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>), (undef:v8i16)):$src2))
/*82337*/         /*Scope*/ 24, /*->82362*/
/*82338*/           OPC_CheckPredicate, 95, // Predicate_pshufhw
/*82340*/           OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*82342*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src1 #3 #4 #5 #6 #7
/*82345*/           OPC_EmitMergeInputChains1_1,
/*82346*/           OPC_EmitNodeXForm, 4, 0, // SHUFFLE_get_pshufhw_imm
/*82349*/           OPC_MorphNodeTo, TARGET_VAL(X86::PSHUFHWmi), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v8i16, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (vector_shuffle:v8i16 (bitconvert:v8i16 (ld:v2i64 addr:iPTR:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>), (undef:v8i16))<<P:Predicate_pshufhw>><<X:SHUFFLE_get_pshufhw_imm>>:$src2 - Complexity = 32
                    // Dst: (PSHUFHWmi:v8i16 addr:iPTR:$src1, (SHUFFLE_get_pshufhw_imm:i8 (vector_shuffle:v8i16 (bitconvert:v8i16 (ld:v2i64 addr:iPTR:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>), (undef:v8i16)):$src2))
/*82362*/         /*Scope*/ 24, /*->82387*/
/*82363*/           OPC_CheckPredicate, 96, // Predicate_pshuflw
/*82365*/           OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*82367*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src1 #3 #4 #5 #6 #7
/*82370*/           OPC_EmitMergeInputChains1_1,
/*82371*/           OPC_EmitNodeXForm, 5, 0, // SHUFFLE_get_pshuflw_imm
/*82374*/           OPC_MorphNodeTo, TARGET_VAL(X86::PSHUFLWmi), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v8i16, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (vector_shuffle:v8i16 (bitconvert:v8i16 (ld:v2i64 addr:iPTR:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>), (undef:v8i16))<<P:Predicate_pshuflw>><<X:SHUFFLE_get_pshuflw_imm>>:$src2 - Complexity = 32
                    // Dst: (PSHUFLWmi:v8i16 addr:iPTR:$src1, (SHUFFLE_get_pshuflw_imm:i8 (vector_shuffle:v8i16 (bitconvert:v8i16 (ld:v2i64 addr:iPTR:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>), (undef:v8i16)):$src2))
/*82387*/         0, /*End of Scope*/
                /*SwitchType*/ 60,  MVT::v4f32,// ->82450
/*82390*/         OPC_MoveParent,
/*82391*/         OPC_MoveParent,
/*82392*/         OPC_MoveChild, 1,
/*82394*/         OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
/*82397*/         OPC_MoveParent,
/*82398*/         OPC_CheckPredicate, 93, // Predicate_pshufd
/*82400*/         OPC_CheckType, MVT::v4i32,
/*82402*/         OPC_Scope, 22, /*->82426*/ // 2 children in Scope
/*82404*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*82406*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src1 #3 #4 #5 #6 #7
/*82409*/           OPC_EmitMergeInputChains1_1,
/*82410*/           OPC_EmitNodeXForm, 3, 0, // SHUFFLE_get_shuf_imm
/*82413*/           OPC_MorphNodeTo, TARGET_VAL(X86::VPSHUFDmi), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v4i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (vector_shuffle:v4i32 (bitconvert:v4i32 (ld:v4f32 addr:iPTR:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>), (undef:v4i32))<<P:Predicate_pshufd>><<X:SHUFFLE_get_shuf_imm>>:$src2 - Complexity = 32
                    // Dst: (VPSHUFDmi:v4i32 addr:iPTR:$src1, (SHUFFLE_get_shuf_imm:i8 VR128:v4i32:$src2))
/*82426*/         /*Scope*/ 22, /*->82449*/
/*82427*/           OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*82429*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src1 #3 #4 #5 #6 #7
/*82432*/           OPC_EmitMergeInputChains1_1,
/*82433*/           OPC_EmitNodeXForm, 3, 0, // SHUFFLE_get_shuf_imm
/*82436*/           OPC_MorphNodeTo, TARGET_VAL(X86::PSHUFDmi), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v4i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (vector_shuffle:v4i32 (bitconvert:v4i32 (ld:v4f32 addr:iPTR:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>), (undef:v4i32))<<P:Predicate_pshufd>><<X:SHUFFLE_get_shuf_imm>>:$src2 - Complexity = 32
                    // Dst: (PSHUFDmi:v4i32 addr:iPTR:$src1, (SHUFFLE_get_shuf_imm:i8 VR128:v4i32:$src2))
/*82449*/         0, /*End of Scope*/
                0, // EndSwitchType
/*82451*/     /*Scope*/ 83, /*->82535*/
/*82452*/       OPC_RecordChild0, // #1 = $src1
/*82453*/       OPC_MoveChild, 1,
/*82455*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*82458*/       OPC_MoveChild, 0,
/*82460*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*82463*/       OPC_RecordMemRef,
/*82464*/       OPC_RecordNode, // #2 = 'ld' chained node
/*82465*/       OPC_CheckFoldableChainNode,
/*82466*/       OPC_RecordChild1, // #3 = $src2
/*82467*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*82469*/       OPC_CheckPredicate, 3, // Predicate_load
/*82471*/       OPC_CheckPredicate, 23, // Predicate_memop
/*82473*/       OPC_CheckType, MVT::v2i64,
/*82475*/       OPC_MoveParent,
/*82476*/       OPC_MoveParent,
/*82477*/       OPC_CheckPredicate, 97, // Predicate_shufp
/*82479*/       OPC_CheckType, MVT::v4i32,
/*82481*/       OPC_Scope, 25, /*->82508*/ // 2 children in Scope
/*82483*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*82485*/         OPC_CheckComplexPat, /*CP*/0, /*#*/3, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*82488*/         OPC_EmitMergeInputChains, 1, 2, 
/*82491*/         OPC_EmitNodeXForm, 3, 0, // SHUFFLE_get_shuf_imm
/*82494*/         OPC_MorphNodeTo, TARGET_VAL(X86::SHUFPSrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4i32, 7/*#Ops*/, 1, 4, 5, 6, 7, 8, 9, 
                  // Src: (vector_shuffle:v4i32 VR128:v4i32:$src1, (bitconvert:v4i32 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>))<<P:Predicate_shufp>><<X:SHUFFLE_get_shuf_imm>>:$src3 - Complexity = 29
                  // Dst: (SHUFPSrmi:v4i32 VR128:v4i32:$src1, addr:iPTR:$src2, (SHUFFLE_get_shuf_imm:i8 VR128:v4i32:$src3))
/*82508*/       /*Scope*/ 25, /*->82534*/
/*82509*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*82511*/         OPC_CheckComplexPat, /*CP*/0, /*#*/3, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*82514*/         OPC_EmitMergeInputChains, 1, 2, 
/*82517*/         OPC_EmitNodeXForm, 3, 0, // SHUFFLE_get_shuf_imm
/*82520*/         OPC_MorphNodeTo, TARGET_VAL(X86::VSHUFPSrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4i32, 7/*#Ops*/, 1, 4, 5, 6, 7, 8, 9, 
                  // Src: (vector_shuffle:v4i32 VR128:v4i32:$src1, (bitconvert:v4i32 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>))<<P:Predicate_shufp>><<X:SHUFFLE_get_shuf_imm>>:$src3 - Complexity = 29
                  // Dst: (VSHUFPSrmi:v4i32 VR128:v4i32:$src1, addr:iPTR:$src2, (SHUFFLE_get_shuf_imm:i8 VR128:v4i32:$src3))
/*82534*/       0, /*End of Scope*/
/*82535*/     0, /*End of Scope*/
/*82536*/   /*Scope*/ 29|128,3/*413*/, /*->82951*/
/*82538*/     OPC_RecordChild0, // #0 = $src1
/*82539*/     OPC_Scope, 8|128,1/*136*/, /*->82678*/ // 3 children in Scope
/*82542*/       OPC_MoveChild, 1,
/*82544*/       OPC_SwitchOpcode /*2 cases */, 59,  TARGET_VAL(ISD::BITCAST),// ->82607
/*82548*/         OPC_MoveChild, 0,
/*82550*/         OPC_CheckOpcode, TARGET_VAL(X86ISD::VZEXT_LOAD),
/*82553*/         OPC_RecordMemRef,
/*82554*/         OPC_RecordNode, // #1 = 'X86vzload' chained node
/*82555*/         OPC_CheckFoldableChainNode,
/*82556*/         OPC_RecordChild1, // #2 = $src2
/*82557*/         OPC_CheckType, MVT::v2i64,
/*82559*/         OPC_MoveParent,
/*82560*/         OPC_MoveParent,
/*82561*/         OPC_CheckPredicate, 98, // Predicate_movlhps
/*82563*/         OPC_CheckType, MVT::v4i32,
/*82565*/         OPC_Scope, 19, /*->82586*/ // 2 children in Scope
/*82567*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*82569*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*82572*/           OPC_EmitMergeInputChains1_1,
/*82573*/           OPC_MorphNodeTo, TARGET_VAL(X86::VMOVHPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (vector_shuffle:v4i32 VR128:v4i32:$src1, (bitconvert:v4i32 (X86vzload:v2i64 addr:iPTR:$src2)))<<P:Predicate_movlhps>> - Complexity = 28
                    // Dst: (VMOVHPSrm:v4i32 VR128:v4i32:$src1, addr:iPTR:$src2)
/*82586*/         /*Scope*/ 19, /*->82606*/
/*82587*/           OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*82589*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*82592*/           OPC_EmitMergeInputChains1_1,
/*82593*/           OPC_MorphNodeTo, TARGET_VAL(X86::MOVHPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (vector_shuffle:v4i32 VR128:v4i32:$src1, (bitconvert:v4i32 (X86vzload:v2i64 addr:iPTR:$src2)))<<P:Predicate_movlhps>> - Complexity = 28
                    // Dst: (MOVHPSrm:v4i32 VR128:v4i32:$src1, addr:iPTR:$src2)
/*82606*/         0, /*End of Scope*/
                /*SwitchOpcode*/ 67,  TARGET_VAL(ISD::UNDEF),// ->82677
/*82610*/         OPC_MoveParent,
/*82611*/         OPC_SwitchType /*2 cases */, 30,  MVT::v2i64,// ->82644
/*82614*/           OPC_Scope, 13, /*->82629*/ // 2 children in Scope
/*82616*/             OPC_CheckPredicate, 94, // Predicate_movddup
/*82618*/             OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*82620*/             OPC_MorphNodeTo, TARGET_VAL(X86::VMOVLHPSrr), 0,
                          1/*#VTs*/, MVT::v2i64, 2/*#Ops*/, 0, 0, 
                      // Src: (vector_shuffle:v2i64 VR128:v2i64:$src, (undef:v2i64))<<P:Predicate_movddup>> - Complexity = 27
                      // Dst: (VMOVLHPSrr:v2i64 VR128:v2i64:$src, VR128:v2i64:$src)
/*82629*/           /*Scope*/ 13, /*->82643*/
/*82630*/             OPC_CheckPredicate, 94, // Predicate_movddup
/*82632*/             OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*82634*/             OPC_MorphNodeTo, TARGET_VAL(X86::MOVLHPSrr), 0,
                          1/*#VTs*/, MVT::v2i64, 2/*#Ops*/, 0, 0, 
                      // Src: (vector_shuffle:v2i64 VR128:v2i64:$src, (undef:v2i64))<<P:Predicate_movddup>> - Complexity = 27
                      // Dst: (MOVLHPSrr:v2i64 VR128:v2i64:$src, VR128:v2i64:$src)
/*82643*/           0, /*End of Scope*/
                  /*SwitchType*/ 30,  MVT::v4i32,// ->82676
/*82646*/           OPC_Scope, 13, /*->82661*/ // 2 children in Scope
/*82648*/             OPC_CheckPredicate, 99, // Predicate_movhlps_undef
/*82650*/             OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*82652*/             OPC_MorphNodeTo, TARGET_VAL(X86::VMOVHLPSrr), 0,
                          1/*#VTs*/, MVT::v4i32, 2/*#Ops*/, 0, 0, 
                      // Src: (vector_shuffle:v4i32 VR128:v4i32:$src1, (undef:v4i32))<<P:Predicate_movhlps_undef>> - Complexity = 27
                      // Dst: (VMOVHLPSrr:v4i32 VR128:v4i32:$src1, VR128:v4i32:$src1)
/*82661*/           /*Scope*/ 13, /*->82675*/
/*82662*/             OPC_CheckPredicate, 99, // Predicate_movhlps_undef
/*82664*/             OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*82666*/             OPC_MorphNodeTo, TARGET_VAL(X86::MOVHLPSrr), 0,
                          1/*#VTs*/, MVT::v4i32, 2/*#Ops*/, 0, 0, 
                      // Src: (vector_shuffle:v4i32 VR128:v4i32:$src1, (undef:v4i32))<<P:Predicate_movhlps_undef>> - Complexity = 27
                      // Dst: (MOVHLPSrr:v4i32 VR128:v4i32:$src1, VR128:v4i32:$src1)
/*82675*/           0, /*End of Scope*/
                  0, // EndSwitchType
                0, // EndSwitchOpcode
/*82678*/     /*Scope*/ 105|128,1/*233*/, /*->82913*/
/*82680*/       OPC_RecordChild1, // #1 = $src2
/*82681*/       OPC_Scope, 15, /*->82698*/ // 8 children in Scope
/*82683*/         OPC_CheckPredicate, 98, // Predicate_movlhps
/*82685*/         OPC_CheckType, MVT::v4i32,
/*82687*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*82689*/         OPC_MorphNodeTo, TARGET_VAL(X86::VMOVLHPSrr), 0,
                      1/*#VTs*/, MVT::v4i32, 2/*#Ops*/, 0, 1, 
                  // Src: (vector_shuffle:v4i32 VR128:v4i32:$src1, VR128:v4i32:$src2)<<P:Predicate_movlhps>> - Complexity = 24
                  // Dst: (VMOVLHPSrr:v4i32 VR128:v4i32:$src1, VR128:v4i32:$src2)
/*82698*/       /*Scope*/ 15, /*->82714*/
/*82699*/         OPC_CheckPredicate, 100, // Predicate_movhlps
/*82701*/         OPC_CheckType, MVT::v4i32,
/*82703*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*82705*/         OPC_MorphNodeTo, TARGET_VAL(X86::VMOVHLPSrr), 0,
                      1/*#VTs*/, MVT::v4i32, 2/*#Ops*/, 0, 1, 
                  // Src: (vector_shuffle:v4i32 VR128:v4i32:$src1, VR128:v4i32:$src2)<<P:Predicate_movhlps>> - Complexity = 24
                  // Dst: (VMOVHLPSrr:v4i32 VR128:v4i32:$src1, VR128:v4i32:$src2)
/*82714*/       /*Scope*/ 15, /*->82730*/
/*82715*/         OPC_CheckPredicate, 98, // Predicate_movlhps
/*82717*/         OPC_CheckType, MVT::v4i32,
/*82719*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*82721*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOVLHPSrr), 0,
                      1/*#VTs*/, MVT::v4i32, 2/*#Ops*/, 0, 1, 
                  // Src: (vector_shuffle:v4i32 VR128:v4i32:$src1, VR128:v4i32:$src2)<<P:Predicate_movlhps>> - Complexity = 24
                  // Dst: (MOVLHPSrr:v4i32 VR128:v4i32:$src1, VR128:v4i32:$src2)
/*82730*/       /*Scope*/ 15, /*->82746*/
/*82731*/         OPC_CheckPredicate, 100, // Predicate_movhlps
/*82733*/         OPC_CheckType, MVT::v4i32,
/*82735*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*82737*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOVHLPSrr), 0,
                      1/*#VTs*/, MVT::v4i32, 2/*#Ops*/, 0, 1, 
                  // Src: (vector_shuffle:v4i32 VR128:v4i32:$src1, VR128:v4i32:$src2)<<P:Predicate_movhlps>> - Complexity = 24
                  // Dst: (MOVHLPSrr:v4i32 VR128:v4i32:$src1, VR128:v4i32:$src2)
/*82746*/       /*Scope*/ 54, /*->82801*/
/*82747*/         OPC_CheckPredicate, 101, // Predicate_movl
/*82749*/         OPC_SwitchType /*2 cases */, 23,  MVT::v4i32,// ->82775
/*82752*/           OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*82754*/           OPC_EmitInteger, MVT::i32, X86::sub_ss,
/*82757*/           OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        1/*#VTs*/, MVT::f32, 2/*#Ops*/, 1, 2,  // Results = #3 
/*82766*/           OPC_MorphNodeTo, TARGET_VAL(X86::MOVSSrr), 0,
                        1/*#VTs*/, MVT::v4i32, 2/*#Ops*/, 0, 3, 
                    // Src: (vector_shuffle:v4i32 VR128:v4i32:$src1, VR128:v4i32:$src2)<<P:Predicate_movl>> - Complexity = 19
                    // Dst: (MOVSSrr:v4i32 VR128:v4i32:$src1, (EXTRACT_SUBREG:f32 VR128:v4i32:$src2, sub_ss:i32))
                  /*SwitchType*/ 23,  MVT::v2i64,// ->82800
/*82777*/           OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*82779*/           OPC_EmitInteger, MVT::i32, X86::sub_sd,
/*82782*/           OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        1/*#VTs*/, MVT::f64, 2/*#Ops*/, 1, 2,  // Results = #3 
/*82791*/           OPC_MorphNodeTo, TARGET_VAL(X86::MOVSDrr), 0,
                        1/*#VTs*/, MVT::v2i64, 2/*#Ops*/, 0, 3, 
                    // Src: (vector_shuffle:v2i64 VR128:v2i64:$src1, VR128:v2i64:$src2)<<P:Predicate_movl>> - Complexity = 19
                    // Dst: (MOVSDrr:v2i64 VR128:v2i64:$src1, (EXTRACT_SUBREG:f64 VR128:v2i64:$src2, sub_sd:i32))
                  0, // EndSwitchType
/*82801*/       /*Scope*/ 27, /*->82829*/
/*82802*/         OPC_CheckPredicate, 12, // Predicate_movlp
/*82804*/         OPC_CheckType, MVT::v4i32,
/*82806*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*82808*/         OPC_EmitInteger, MVT::i32, X86::sub_sd,
/*82811*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      1/*#VTs*/, MVT::f64, 2/*#Ops*/, 1, 2,  // Results = #3 
/*82820*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOVSDrr), 0,
                      1/*#VTs*/, MVT::v4i32, 2/*#Ops*/, 0, 3, 
                  // Src: (vector_shuffle:v4i32 VR128:v4i32:$src1, VR128:v4i32:$src2)<<P:Predicate_movlp>> - Complexity = 19
                  // Dst: (MOVSDrr:v4i32 VR128:v4i32:$src1, (EXTRACT_SUBREG:f64 VR128:v4i32:$src2, sub_sd:i32))
/*82829*/       /*Scope*/ 54, /*->82884*/
/*82830*/         OPC_CheckPredicate, 101, // Predicate_movl
/*82832*/         OPC_SwitchType /*2 cases */, 23,  MVT::v4i32,// ->82858
/*82835*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*82837*/           OPC_EmitInteger, MVT::i32, X86::sub_ss,
/*82840*/           OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        1/*#VTs*/, MVT::f32, 2/*#Ops*/, 1, 2,  // Results = #3 
/*82849*/           OPC_MorphNodeTo, TARGET_VAL(X86::VMOVSSrr), 0,
                        1/*#VTs*/, MVT::v4i32, 2/*#Ops*/, 0, 3, 
                    // Src: (vector_shuffle:v4i32 VR128:v4i32:$src1, VR128:v4i32:$src2)<<P:Predicate_movl>> - Complexity = 19
                    // Dst: (VMOVSSrr:v4i32 VR128:v4i32:$src1, (EXTRACT_SUBREG:f32 VR128:v4i32:$src2, sub_ss:i32))
                  /*SwitchType*/ 23,  MVT::v2i64,// ->82883
/*82860*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*82862*/           OPC_EmitInteger, MVT::i32, X86::sub_sd,
/*82865*/           OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        1/*#VTs*/, MVT::f64, 2/*#Ops*/, 1, 2,  // Results = #3 
/*82874*/           OPC_MorphNodeTo, TARGET_VAL(X86::VMOVSDrr), 0,
                        1/*#VTs*/, MVT::v2i64, 2/*#Ops*/, 0, 3, 
                    // Src: (vector_shuffle:v2i64 VR128:v2i64:$src1, VR128:v2i64:$src2)<<P:Predicate_movl>> - Complexity = 19
                    // Dst: (VMOVSDrr:v2i64 VR128:v2i64:$src1, (EXTRACT_SUBREG:f64 VR128:v2i64:$src2, sub_sd:i32))
                  0, // EndSwitchType
/*82884*/       /*Scope*/ 27, /*->82912*/
/*82885*/         OPC_CheckPredicate, 12, // Predicate_movlp
/*82887*/         OPC_CheckType, MVT::v4i32,
/*82889*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*82891*/         OPC_EmitInteger, MVT::i32, X86::sub_sd,
/*82894*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      1/*#VTs*/, MVT::f64, 2/*#Ops*/, 1, 2,  // Results = #3 
/*82903*/         OPC_MorphNodeTo, TARGET_VAL(X86::VMOVSDrr), 0,
                      1/*#VTs*/, MVT::v4i32, 2/*#Ops*/, 0, 3, 
                  // Src: (vector_shuffle:v4i32 VR128:v4i32:$src1, VR128:v4i32:$src2)<<P:Predicate_movlp>> - Complexity = 19
                  // Dst: (VMOVSDrr:v4i32 VR128:v4i32:$src1, (EXTRACT_SUBREG:f64 VR128:v4i32:$src2, sub_sd:i32))
/*82912*/       0, /*End of Scope*/
/*82913*/     /*Scope*/ 36, /*->82950*/
/*82914*/       OPC_MoveChild, 1,
/*82916*/       OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
/*82919*/       OPC_MoveParent,
/*82920*/       OPC_CheckPredicate, 102, // Predicate_splat_lo
/*82922*/       OPC_CheckType, MVT::v2i64,
/*82924*/       OPC_Scope, 11, /*->82937*/ // 2 children in Scope
/*82926*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*82928*/         OPC_MorphNodeTo, TARGET_VAL(X86::PUNPCKLQDQrr), 0,
                      1/*#VTs*/, MVT::v2i64, 2/*#Ops*/, 0, 0, 
                  // Src: (vector_shuffle:v2i64 VR128:v2i64:$src, (undef:v2i64))<<P:Predicate_splat_lo>> - Complexity = 17
                  // Dst: (PUNPCKLQDQrr:v2i64 VR128:v2i64:$src, VR128:v2i64:$src)
/*82937*/       /*Scope*/ 11, /*->82949*/
/*82938*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*82940*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPUNPCKLQDQrr), 0,
                      1/*#VTs*/, MVT::v2i64, 2/*#Ops*/, 0, 0, 
                  // Src: (vector_shuffle:v2i64 VR128:v2i64:$src, (undef:v2i64))<<P:Predicate_splat_lo>> - Complexity = 17
                  // Dst: (VPUNPCKLQDQrr:v2i64 VR128:v2i64:$src, VR128:v2i64:$src)
/*82949*/       0, /*End of Scope*/
/*82950*/     0, /*End of Scope*/
/*82951*/   /*Scope*/ 115|128,1/*243*/, /*->83196*/
/*82953*/     OPC_RecordNode, // #0 = $src2
/*82954*/     OPC_RecordChild0, // #1 = $src1
/*82955*/     OPC_Scope, 31|128,1/*159*/, /*->83117*/ // 2 children in Scope
/*82958*/       OPC_MoveChild, 1,
/*82960*/       OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
/*82963*/       OPC_MoveParent,
/*82964*/       OPC_Scope, 74, /*->83040*/ // 5 children in Scope
/*82966*/         OPC_CheckPredicate, 93, // Predicate_pshufd
/*82968*/         OPC_SwitchType /*2 cases */, 32,  MVT::v4i32,// ->83003
/*82971*/           OPC_Scope, 14, /*->82987*/ // 2 children in Scope
/*82973*/             OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*82975*/             OPC_EmitNodeXForm, 3, 0, // SHUFFLE_get_shuf_imm
/*82978*/             OPC_MorphNodeTo, TARGET_VAL(X86::VPSHUFDri), 0,
                          1/*#VTs*/, MVT::v4i32, 2/*#Ops*/, 1, 2, 
                      // Src: (vector_shuffle:v4i32 VR128:v4i32:$src1, (undef:v4i32))<<P:Predicate_pshufd>><<X:SHUFFLE_get_shuf_imm>>:$src2 - Complexity = 12
                      // Dst: (VPSHUFDri:v4i32 VR128:v4i32:$src1, (SHUFFLE_get_shuf_imm:i8 (vector_shuffle:v4i32 VR128:v4i32:$src1, (undef:v4i32)):$src2))
/*82987*/           /*Scope*/ 14, /*->83002*/
/*82988*/             OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*82990*/             OPC_EmitNodeXForm, 3, 0, // SHUFFLE_get_shuf_imm
/*82993*/             OPC_MorphNodeTo, TARGET_VAL(X86::PSHUFDri), 0,
                          1/*#VTs*/, MVT::v4i32, 2/*#Ops*/, 1, 2, 
                      // Src: (vector_shuffle:v4i32 VR128:v4i32:$src1, (undef:v4i32))<<P:Predicate_pshufd>><<X:SHUFFLE_get_shuf_imm>>:$src2 - Complexity = 12
                      // Dst: (PSHUFDri:v4i32 VR128:v4i32:$src1, (SHUFFLE_get_shuf_imm:i8 (vector_shuffle:v4i32 VR128:v4i32:$src1, (undef:v4i32)):$src2))
/*83002*/           0, /*End of Scope*/
                  /*SwitchType*/ 34,  MVT::v2i64,// ->83039
/*83005*/           OPC_Scope, 15, /*->83022*/ // 2 children in Scope
/*83007*/             OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*83009*/             OPC_EmitNodeXForm, 3, 0, // SHUFFLE_get_shuf_imm
/*83012*/             OPC_MorphNodeTo, TARGET_VAL(X86::SHUFPDrri), 0,
                          1/*#VTs*/, MVT::v2i64, 3/*#Ops*/, 1, 1, 2, 
                      // Src: (vector_shuffle:v2i64 VR128:v2i64:$src1, (undef:v2i64))<<P:Predicate_pshufd>><<X:SHUFFLE_get_shuf_imm>>:$src3 - Complexity = 7
                      // Dst: (SHUFPDrri:v2i64 VR128:v2i64:$src1, VR128:v2i64:$src1, (SHUFFLE_get_shuf_imm:i8 VR128:v2i64:$src3))
/*83022*/           /*Scope*/ 15, /*->83038*/
/*83023*/             OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*83025*/             OPC_EmitNodeXForm, 3, 0, // SHUFFLE_get_shuf_imm
/*83028*/             OPC_MorphNodeTo, TARGET_VAL(X86::VSHUFPDrri), 0,
                          1/*#VTs*/, MVT::v2i64, 3/*#Ops*/, 1, 1, 2, 
                      // Src: (vector_shuffle:v2i64 VR128:v2i64:$src1, (undef:v2i64))<<P:Predicate_pshufd>><<X:SHUFFLE_get_shuf_imm>>:$src3 - Complexity = 7
                      // Dst: (VSHUFPDrri:v2i64 VR128:v2i64:$src1, VR128:v2i64:$src1, (SHUFFLE_get_shuf_imm:i8 VR128:v2i64:$src3))
/*83038*/           0, /*End of Scope*/
                  0, // EndSwitchType
/*83040*/       /*Scope*/ 18, /*->83059*/
/*83041*/         OPC_CheckPredicate, 95, // Predicate_pshufhw
/*83043*/         OPC_CheckType, MVT::v8i16,
/*83045*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*83047*/         OPC_EmitNodeXForm, 4, 0, // SHUFFLE_get_pshufhw_imm
/*83050*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPSHUFHWri), 0,
                      1/*#VTs*/, MVT::v8i16, 2/*#Ops*/, 1, 2, 
                  // Src: (vector_shuffle:v8i16 VR128:v8i16:$src1, (undef:v8i16))<<P:Predicate_pshufhw>><<X:SHUFFLE_get_pshufhw_imm>>:$src2 - Complexity = 7
                  // Dst: (VPSHUFHWri:v8i16 VR128:v8i16:$src1, (SHUFFLE_get_pshufhw_imm:i8 (vector_shuffle:v8i16 VR128:v8i16:$src1, (undef:v8i16)):$src2))
/*83059*/       /*Scope*/ 18, /*->83078*/
/*83060*/         OPC_CheckPredicate, 96, // Predicate_pshuflw
/*83062*/         OPC_CheckType, MVT::v8i16,
/*83064*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*83066*/         OPC_EmitNodeXForm, 5, 0, // SHUFFLE_get_pshuflw_imm
/*83069*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPSHUFLWri), 0,
                      1/*#VTs*/, MVT::v8i16, 2/*#Ops*/, 1, 2, 
                  // Src: (vector_shuffle:v8i16 VR128:v8i16:$src1, (undef:v8i16))<<P:Predicate_pshuflw>><<X:SHUFFLE_get_pshuflw_imm>>:$src2 - Complexity = 7
                  // Dst: (VPSHUFLWri:v8i16 VR128:v8i16:$src1, (SHUFFLE_get_pshuflw_imm:i8 (vector_shuffle:v8i16 VR128:v8i16:$src1, (undef:v8i16)):$src2))
/*83078*/       /*Scope*/ 18, /*->83097*/
/*83079*/         OPC_CheckPredicate, 95, // Predicate_pshufhw
/*83081*/         OPC_CheckType, MVT::v8i16,
/*83083*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*83085*/         OPC_EmitNodeXForm, 4, 0, // SHUFFLE_get_pshufhw_imm
/*83088*/         OPC_MorphNodeTo, TARGET_VAL(X86::PSHUFHWri), 0,
                      1/*#VTs*/, MVT::v8i16, 2/*#Ops*/, 1, 2, 
                  // Src: (vector_shuffle:v8i16 VR128:v8i16:$src1, (undef:v8i16))<<P:Predicate_pshufhw>><<X:SHUFFLE_get_pshufhw_imm>>:$src2 - Complexity = 7
                  // Dst: (PSHUFHWri:v8i16 VR128:v8i16:$src1, (SHUFFLE_get_pshufhw_imm:i8 (vector_shuffle:v8i16 VR128:v8i16:$src1, (undef:v8i16)):$src2))
/*83097*/       /*Scope*/ 18, /*->83116*/
/*83098*/         OPC_CheckPredicate, 96, // Predicate_pshuflw
/*83100*/         OPC_CheckType, MVT::v8i16,
/*83102*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*83104*/         OPC_EmitNodeXForm, 5, 0, // SHUFFLE_get_pshuflw_imm
/*83107*/         OPC_MorphNodeTo, TARGET_VAL(X86::PSHUFLWri), 0,
                      1/*#VTs*/, MVT::v8i16, 2/*#Ops*/, 1, 2, 
                  // Src: (vector_shuffle:v8i16 VR128:v8i16:$src1, (undef:v8i16))<<P:Predicate_pshuflw>><<X:SHUFFLE_get_pshuflw_imm>>:$src2 - Complexity = 7
                  // Dst: (PSHUFLWri:v8i16 VR128:v8i16:$src1, (SHUFFLE_get_pshuflw_imm:i8 (vector_shuffle:v8i16 VR128:v8i16:$src1, (undef:v8i16)):$src2))
/*83116*/       0, /*End of Scope*/
/*83117*/     /*Scope*/ 77, /*->83195*/
/*83118*/       OPC_RecordChild1, // #2 = $src2
/*83119*/       OPC_CheckPredicate, 97, // Predicate_shufp
/*83121*/       OPC_SwitchType /*2 cases */, 34,  MVT::v4i32,// ->83158
/*83124*/         OPC_Scope, 15, /*->83141*/ // 2 children in Scope
/*83126*/           OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*83128*/           OPC_EmitNodeXForm, 3, 0, // SHUFFLE_get_shuf_imm
/*83131*/           OPC_MorphNodeTo, TARGET_VAL(X86::SHUFPSrri), 0,
                        1/*#VTs*/, MVT::v4i32, 3/*#Ops*/, 1, 2, 3, 
                    // Src: (vector_shuffle:v4i32 VR128:v4i32:$src1, VR128:v4i32:$src2)<<P:Predicate_shufp>><<X:SHUFFLE_get_shuf_imm>>:$src3 - Complexity = 4
                    // Dst: (SHUFPSrri:v4i32 VR128:v4i32:$src1, VR128:v4i32:$src2, (SHUFFLE_get_shuf_imm:i8 VR128:v4i32:$src3))
/*83141*/         /*Scope*/ 15, /*->83157*/
/*83142*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*83144*/           OPC_EmitNodeXForm, 3, 0, // SHUFFLE_get_shuf_imm
/*83147*/           OPC_MorphNodeTo, TARGET_VAL(X86::VSHUFPSrri), 0,
                        1/*#VTs*/, MVT::v4i32, 3/*#Ops*/, 1, 2, 3, 
                    // Src: (vector_shuffle:v4i32 VR128:v4i32:$src1, VR128:v4i32:$src2)<<P:Predicate_shufp>><<X:SHUFFLE_get_shuf_imm>>:$src3 - Complexity = 4
                    // Dst: (VSHUFPSrri:v4i32 VR128:v4i32:$src1, VR128:v4i32:$src2, (SHUFFLE_get_shuf_imm:i8 VR128:v4i32:$src3))
/*83157*/         0, /*End of Scope*/
                /*SwitchType*/ 34,  MVT::v2i64,// ->83194
/*83160*/         OPC_Scope, 15, /*->83177*/ // 2 children in Scope
/*83162*/           OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*83164*/           OPC_EmitNodeXForm, 3, 0, // SHUFFLE_get_shuf_imm
/*83167*/           OPC_MorphNodeTo, TARGET_VAL(X86::SHUFPDrri), 0,
                        1/*#VTs*/, MVT::v2i64, 3/*#Ops*/, 1, 2, 3, 
                    // Src: (vector_shuffle:v2i64 VR128:v2i64:$src1, VR128:v2i64:$src2)<<P:Predicate_shufp>><<X:SHUFFLE_get_shuf_imm>>:$src3 - Complexity = 4
                    // Dst: (SHUFPDrri:v2i64 VR128:v2i64:$src1, VR128:v2i64:$src2, (SHUFFLE_get_shuf_imm:i8 VR128:v2i64:$src3))
/*83177*/         /*Scope*/ 15, /*->83193*/
/*83178*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*83180*/           OPC_EmitNodeXForm, 3, 0, // SHUFFLE_get_shuf_imm
/*83183*/           OPC_MorphNodeTo, TARGET_VAL(X86::VSHUFPDrri), 0,
                        1/*#VTs*/, MVT::v2i64, 3/*#Ops*/, 1, 2, 3, 
                    // Src: (vector_shuffle:v2i64 VR128:v2i64:$src1, VR128:v2i64:$src2)<<P:Predicate_shufp>><<X:SHUFFLE_get_shuf_imm>>:$src3 - Complexity = 4
                    // Dst: (VSHUFPDrri:v2i64 VR128:v2i64:$src1, VR128:v2i64:$src2, (SHUFFLE_get_shuf_imm:i8 VR128:v2i64:$src3))
/*83193*/         0, /*End of Scope*/
                0, // EndSwitchType
/*83195*/     0, /*End of Scope*/
/*83196*/   /*Scope*/ 89|128,2/*345*/, /*->83543*/
/*83198*/     OPC_RecordChild0, // #0 = $src1
/*83199*/     OPC_MoveChild, 1,
/*83201*/     OPC_SwitchOpcode /*3 cases */, 119,  TARGET_VAL(ISD::BITCAST),// ->83324
/*83205*/       OPC_MoveChild, 0,
/*83207*/       OPC_CheckOpcode, TARGET_VAL(ISD::SCALAR_TO_VECTOR),
/*83210*/       OPC_MoveChild, 0,
/*83212*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*83215*/       OPC_RecordMemRef,
/*83216*/       OPC_RecordNode, // #1 = 'ld' chained node
/*83217*/       OPC_CheckFoldableChainNode,
/*83218*/       OPC_RecordChild1, // #2 = $src2
/*83219*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*83221*/       OPC_CheckPredicate, 3, // Predicate_load
/*83223*/       OPC_CheckType, MVT::f64,
/*83225*/       OPC_MoveParent,
/*83226*/       OPC_CheckType, MVT::v2f64,
/*83228*/       OPC_MoveParent,
/*83229*/       OPC_MoveParent,
/*83230*/       OPC_CheckType, MVT::v4f32,
/*83232*/       OPC_Scope, 44, /*->83278*/ // 2 children in Scope
/*83234*/         OPC_CheckPredicate, 12, // Predicate_movlp
/*83236*/         OPC_Scope, 19, /*->83257*/ // 2 children in Scope
/*83238*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*83240*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*83243*/           OPC_EmitMergeInputChains1_1,
/*83244*/           OPC_MorphNodeTo, TARGET_VAL(X86::VMOVLPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (vector_shuffle:v4f32 VR128:v4f32:$src1, (bitconvert:v4f32 (scalar_to_vector:v2f64 (ld:f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)))<<P:Predicate_movlp>> - Complexity = 52
                    // Dst: (VMOVLPSrm:v4f32 VR128:v4f32:$src1, addr:iPTR:$src2)
/*83257*/         /*Scope*/ 19, /*->83277*/
/*83258*/           OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*83260*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*83263*/           OPC_EmitMergeInputChains1_1,
/*83264*/           OPC_MorphNodeTo, TARGET_VAL(X86::MOVLPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (vector_shuffle:v4f32 VR128:v4f32:$src1, (bitconvert:v4f32 (scalar_to_vector:v2f64 (ld:f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)))<<P:Predicate_movlp>> - Complexity = 52
                    // Dst: (MOVLPSrm:v4f32 VR128:v4f32:$src1, addr:iPTR:$src2)
/*83277*/         0, /*End of Scope*/
/*83278*/       /*Scope*/ 44, /*->83323*/
/*83279*/         OPC_CheckPredicate, 98, // Predicate_movlhps
/*83281*/         OPC_Scope, 19, /*->83302*/ // 2 children in Scope
/*83283*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*83285*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*83288*/           OPC_EmitMergeInputChains1_1,
/*83289*/           OPC_MorphNodeTo, TARGET_VAL(X86::VMOVHPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (vector_shuffle:v4f32 VR128:v4f32:$src1, (bitconvert:v4f32 (scalar_to_vector:v2f64 (ld:f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)))<<P:Predicate_movlhps>> - Complexity = 52
                    // Dst: (VMOVHPSrm:v4f32 VR128:v4f32:$src1, addr:iPTR:$src2)
/*83302*/         /*Scope*/ 19, /*->83322*/
/*83303*/           OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*83305*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*83308*/           OPC_EmitMergeInputChains1_1,
/*83309*/           OPC_MorphNodeTo, TARGET_VAL(X86::MOVHPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (vector_shuffle:v4f32 VR128:v4f32:$src1, (bitconvert:v4f32 (scalar_to_vector:v2f64 (ld:f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)))<<P:Predicate_movlhps>> - Complexity = 52
                    // Dst: (MOVHPSrm:v4f32 VR128:v4f32:$src1, addr:iPTR:$src2)
/*83322*/         0, /*End of Scope*/
/*83323*/       0, /*End of Scope*/
              /*SwitchOpcode*/ 111,  TARGET_VAL(ISD::SCALAR_TO_VECTOR),// ->83438
/*83327*/       OPC_MoveChild, 0,
/*83329*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*83332*/       OPC_RecordMemRef,
/*83333*/       OPC_RecordNode, // #1 = 'ld' chained node
/*83334*/       OPC_CheckFoldableChainNode,
/*83335*/       OPC_RecordChild1, // #2 = $src2
/*83336*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*83338*/       OPC_CheckPredicate, 3, // Predicate_load
/*83340*/       OPC_CheckType, MVT::f64,
/*83342*/       OPC_MoveParent,
/*83343*/       OPC_MoveParent,
/*83344*/       OPC_CheckType, MVT::v2f64,
/*83346*/       OPC_Scope, 44, /*->83392*/ // 2 children in Scope
/*83348*/         OPC_CheckPredicate, 12, // Predicate_movlp
/*83350*/         OPC_Scope, 19, /*->83371*/ // 2 children in Scope
/*83352*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*83354*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*83357*/           OPC_EmitMergeInputChains1_1,
/*83358*/           OPC_MorphNodeTo, TARGET_VAL(X86::VMOVLPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (vector_shuffle:v2f64 VR128:v2f64:$src1, (scalar_to_vector:v2f64 (ld:f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>))<<P:Predicate_movlp>> - Complexity = 49
                    // Dst: (VMOVLPDrm:v2f64 VR128:v2f64:$src1, addr:iPTR:$src2)
/*83371*/         /*Scope*/ 19, /*->83391*/
/*83372*/           OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*83374*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*83377*/           OPC_EmitMergeInputChains1_1,
/*83378*/           OPC_MorphNodeTo, TARGET_VAL(X86::MOVLPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (vector_shuffle:v2f64 VR128:v2f64:$src1, (scalar_to_vector:v2f64 (ld:f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>))<<P:Predicate_movlp>> - Complexity = 49
                    // Dst: (MOVLPDrm:v2f64 VR128:v2f64:$src1, addr:iPTR:$src2)
/*83391*/         0, /*End of Scope*/
/*83392*/       /*Scope*/ 44, /*->83437*/
/*83393*/         OPC_CheckPredicate, 98, // Predicate_movlhps
/*83395*/         OPC_Scope, 19, /*->83416*/ // 2 children in Scope
/*83397*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*83399*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*83402*/           OPC_EmitMergeInputChains1_1,
/*83403*/           OPC_MorphNodeTo, TARGET_VAL(X86::VMOVHPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (vector_shuffle:v2f64 VR128:v2f64:$src1, (scalar_to_vector:v2f64 (ld:f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>))<<P:Predicate_movlhps>> - Complexity = 49
                    // Dst: (VMOVHPDrm:v2f64 VR128:v2f64:$src1, addr:iPTR:$src2)
/*83416*/         /*Scope*/ 19, /*->83436*/
/*83417*/           OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*83419*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*83422*/           OPC_EmitMergeInputChains1_1,
/*83423*/           OPC_MorphNodeTo, TARGET_VAL(X86::MOVHPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (vector_shuffle:v2f64 VR128:v2f64:$src1, (scalar_to_vector:v2f64 (ld:f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>))<<P:Predicate_movlhps>> - Complexity = 49
                    // Dst: (MOVHPDrm:v2f64 VR128:v2f64:$src1, addr:iPTR:$src2)
/*83436*/         0, /*End of Scope*/
/*83437*/       0, /*End of Scope*/
              /*SwitchOpcode*/ 101,  TARGET_VAL(ISD::LOAD),// ->83542
/*83441*/       OPC_RecordMemRef,
/*83442*/       OPC_RecordNode, // #1 = 'ld' chained node
/*83443*/       OPC_CheckFoldableChainNode,
/*83444*/       OPC_RecordChild1, // #2 = $src2
/*83445*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*83447*/       OPC_CheckPredicate, 3, // Predicate_load
/*83449*/       OPC_MoveParent,
/*83450*/       OPC_CheckPredicate, 12, // Predicate_movlp
/*83452*/       OPC_SwitchType /*2 cases */, 42,  MVT::v4f32,// ->83497
/*83455*/         OPC_Scope, 19, /*->83476*/ // 2 children in Scope
/*83457*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*83459*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*83462*/           OPC_EmitMergeInputChains1_1,
/*83463*/           OPC_MorphNodeTo, TARGET_VAL(X86::VMOVLPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (vector_shuffle:v4f32 VR128:v4f32:$src1, (ld:v4f32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)<<P:Predicate_movlp>> - Complexity = 46
                    // Dst: (VMOVLPSrm:v4f32 VR128:v4f32:$src1, addr:iPTR:$src2)
/*83476*/         /*Scope*/ 19, /*->83496*/
/*83477*/           OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*83479*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*83482*/           OPC_EmitMergeInputChains1_1,
/*83483*/           OPC_MorphNodeTo, TARGET_VAL(X86::MOVLPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (vector_shuffle:v4f32 VR128:v4f32:$src1, (ld:v4f32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)<<P:Predicate_movlp>> - Complexity = 46
                    // Dst: (MOVLPSrm:v4f32 VR128:v4f32:$src1, addr:iPTR:$src2)
/*83496*/         0, /*End of Scope*/
                /*SwitchType*/ 42,  MVT::v2f64,// ->83541
/*83499*/         OPC_Scope, 19, /*->83520*/ // 2 children in Scope
/*83501*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*83503*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*83506*/           OPC_EmitMergeInputChains1_1,
/*83507*/           OPC_MorphNodeTo, TARGET_VAL(X86::VMOVLPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (vector_shuffle:v2f64 VR128:v2f64:$src1, (ld:v2f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)<<P:Predicate_movlp>> - Complexity = 46
                    // Dst: (VMOVLPDrm:v2f64 VR128:v2f64:$src1, addr:iPTR:$src2)
/*83520*/         /*Scope*/ 19, /*->83540*/
/*83521*/           OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*83523*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*83526*/           OPC_EmitMergeInputChains1_1,
/*83527*/           OPC_MorphNodeTo, TARGET_VAL(X86::MOVLPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (vector_shuffle:v2f64 VR128:v2f64:$src1, (ld:v2f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)<<P:Predicate_movlp>> - Complexity = 46
                    // Dst: (MOVLPDrm:v2f64 VR128:v2f64:$src1, addr:iPTR:$src2)
/*83540*/         0, /*End of Scope*/
                0, // EndSwitchType
              0, // EndSwitchOpcode
/*83543*/   /*Scope*/ 74, /*->83618*/
/*83544*/     OPC_MoveChild, 0,
/*83546*/     OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*83549*/     OPC_MoveChild, 0,
/*83551*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*83554*/     OPC_RecordMemRef,
/*83555*/     OPC_RecordNode, // #0 = 'ld' chained node
/*83556*/     OPC_CheckFoldableChainNode,
/*83557*/     OPC_RecordChild1, // #1 = $src
/*83558*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*83560*/     OPC_CheckPredicate, 3, // Predicate_load
/*83562*/     OPC_CheckPredicate, 23, // Predicate_memop
/*83564*/     OPC_CheckType, MVT::v2f64,
/*83566*/     OPC_MoveParent,
/*83567*/     OPC_MoveParent,
/*83568*/     OPC_MoveChild, 1,
/*83570*/     OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
/*83573*/     OPC_MoveParent,
/*83574*/     OPC_CheckPredicate, 94, // Predicate_movddup
/*83576*/     OPC_CheckType, MVT::v4f32,
/*83578*/     OPC_Scope, 18, /*->83598*/ // 2 children in Scope
/*83580*/       OPC_CheckPatternPredicate, 16, // (Subtarget->hasSSE3())
/*83582*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*83585*/       OPC_EmitMergeInputChains1_0,
/*83586*/       OPC_MorphNodeTo, TARGET_VAL(X86::MOVDDUPrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v4f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (vector_shuffle:v4f32 (bitconvert:v4f32 (ld:v2f64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>), (undef:v4f32))<<P:Predicate_movddup>> - Complexity = 37
                // Dst: (MOVDDUPrm:v4f32 addr:iPTR:$src)
/*83598*/     /*Scope*/ 18, /*->83617*/
/*83599*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*83601*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*83604*/       OPC_EmitMergeInputChains1_0,
/*83605*/       OPC_MorphNodeTo, TARGET_VAL(X86::VMOVDDUPrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v4f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (vector_shuffle:v4f32 (bitconvert:v4f32 (ld:v2f64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>), (undef:v4f32))<<P:Predicate_movddup>> - Complexity = 37
                // Dst: (VMOVDDUPrm:v4f32 addr:iPTR:$src)
/*83617*/     0, /*End of Scope*/
/*83618*/   /*Scope*/ 45|128,2/*301*/, /*->83921*/
/*83620*/     OPC_RecordChild0, // #0 = $src1
/*83621*/     OPC_MoveChild, 1,
/*83623*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*83626*/     OPC_RecordMemRef,
/*83627*/     OPC_RecordNode, // #1 = 'ld' chained node
/*83628*/     OPC_CheckFoldableChainNode,
/*83629*/     OPC_RecordChild1, // #2 = $src2
/*83630*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*83632*/     OPC_CheckPredicate, 3, // Predicate_load
/*83634*/     OPC_CheckPredicate, 23, // Predicate_memop
/*83636*/     OPC_MoveParent,
/*83637*/     OPC_Scope, 46, /*->83685*/ // 6 children in Scope
/*83639*/       OPC_CheckPredicate, 13, // Predicate_unpckh
/*83641*/       OPC_SwitchType /*2 cases */, 19,  MVT::v4f32,// ->83663
/*83644*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*83646*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*83649*/         OPC_EmitMergeInputChains1_1,
/*83650*/         OPC_MorphNodeTo, TARGET_VAL(X86::VUNPCKHPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (vector_shuffle:v4f32 VR128:v4f32:$src1, (ld:v4f32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)<<P:Predicate_unpckh>> - Complexity = 36
                  // Dst: (VUNPCKHPSrm:v4f32 VR128:v4f32:$src1, addr:iPTR:$src2)
                /*SwitchType*/ 19,  MVT::v2f64,// ->83684
/*83665*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*83667*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*83670*/         OPC_EmitMergeInputChains1_1,
/*83671*/         OPC_MorphNodeTo, TARGET_VAL(X86::VUNPCKHPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (vector_shuffle:v2f64 VR128:v2f64:$src1, (ld:v2f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)<<P:Predicate_unpckh>> - Complexity = 36
                  // Dst: (VUNPCKHPDrm:v2f64 VR128:v2f64:$src1, addr:iPTR:$src2)
                0, // EndSwitchType
/*83685*/     /*Scope*/ 46, /*->83732*/
/*83686*/       OPC_CheckPredicate, 103, // Predicate_unpckl
/*83688*/       OPC_SwitchType /*2 cases */, 19,  MVT::v4f32,// ->83710
/*83691*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*83693*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*83696*/         OPC_EmitMergeInputChains1_1,
/*83697*/         OPC_MorphNodeTo, TARGET_VAL(X86::VUNPCKLPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (vector_shuffle:v4f32 VR128:v4f32:$src1, (ld:v4f32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)<<P:Predicate_unpckl>> - Complexity = 36
                  // Dst: (VUNPCKLPSrm:v4f32 VR128:v4f32:$src1, addr:iPTR:$src2)
                /*SwitchType*/ 19,  MVT::v2f64,// ->83731
/*83712*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*83714*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*83717*/         OPC_EmitMergeInputChains1_1,
/*83718*/         OPC_MorphNodeTo, TARGET_VAL(X86::VUNPCKLPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (vector_shuffle:v2f64 VR128:v2f64:$src1, (ld:v2f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)<<P:Predicate_unpckl>> - Complexity = 36
                  // Dst: (VUNPCKLPDrm:v2f64 VR128:v2f64:$src1, addr:iPTR:$src2)
                0, // EndSwitchType
/*83732*/     /*Scope*/ 46, /*->83779*/
/*83733*/       OPC_CheckPredicate, 13, // Predicate_unpckh
/*83735*/       OPC_SwitchType /*2 cases */, 19,  MVT::v8f32,// ->83757
/*83738*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*83740*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*83743*/         OPC_EmitMergeInputChains1_1,
/*83744*/         OPC_MorphNodeTo, TARGET_VAL(X86::VUNPCKHPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v8f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (vector_shuffle:v8f32 VR256:v8f32:$src1, (ld:v8f32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)<<P:Predicate_unpckh>> - Complexity = 36
                  // Dst: (VUNPCKHPSYrm:v8f32 VR256:v8f32:$src1, addr:iPTR:$src2)
                /*SwitchType*/ 19,  MVT::v4f64,// ->83778
/*83759*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*83761*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*83764*/         OPC_EmitMergeInputChains1_1,
/*83765*/         OPC_MorphNodeTo, TARGET_VAL(X86::VUNPCKHPDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (vector_shuffle:v4f64 VR256:v4f64:$src1, (ld:v4f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)<<P:Predicate_unpckh>> - Complexity = 36
                  // Dst: (VUNPCKHPDYrm:v4f64 VR256:v4f64:$src1, addr:iPTR:$src2)
                0, // EndSwitchType
/*83779*/     /*Scope*/ 46, /*->83826*/
/*83780*/       OPC_CheckPredicate, 103, // Predicate_unpckl
/*83782*/       OPC_SwitchType /*2 cases */, 19,  MVT::v8f32,// ->83804
/*83785*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*83787*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*83790*/         OPC_EmitMergeInputChains1_1,
/*83791*/         OPC_MorphNodeTo, TARGET_VAL(X86::VUNPCKLPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v8f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (vector_shuffle:v8f32 VR256:v8f32:$src1, (ld:v8f32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)<<P:Predicate_unpckl>> - Complexity = 36
                  // Dst: (VUNPCKLPSYrm:v8f32 VR256:v8f32:$src1, addr:iPTR:$src2)
                /*SwitchType*/ 19,  MVT::v4f64,// ->83825
/*83806*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*83808*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*83811*/         OPC_EmitMergeInputChains1_1,
/*83812*/         OPC_MorphNodeTo, TARGET_VAL(X86::VUNPCKLPDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (vector_shuffle:v4f64 VR256:v4f64:$src1, (ld:v4f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)<<P:Predicate_unpckl>> - Complexity = 36
                  // Dst: (VUNPCKLPDYrm:v4f64 VR256:v4f64:$src1, addr:iPTR:$src2)
                0, // EndSwitchType
/*83826*/     /*Scope*/ 46, /*->83873*/
/*83827*/       OPC_CheckPredicate, 13, // Predicate_unpckh
/*83829*/       OPC_SwitchType /*2 cases */, 19,  MVT::v4f32,// ->83851
/*83832*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*83834*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*83837*/         OPC_EmitMergeInputChains1_1,
/*83838*/         OPC_MorphNodeTo, TARGET_VAL(X86::UNPCKHPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (vector_shuffle:v4f32 VR128:v4f32:$src1, (ld:v4f32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)<<P:Predicate_unpckh>> - Complexity = 36
                  // Dst: (UNPCKHPSrm:v4f32 VR128:v4f32:$src1, addr:iPTR:$src2)
                /*SwitchType*/ 19,  MVT::v2f64,// ->83872
/*83853*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*83855*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*83858*/         OPC_EmitMergeInputChains1_1,
/*83859*/         OPC_MorphNodeTo, TARGET_VAL(X86::UNPCKHPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (vector_shuffle:v2f64 VR128:v2f64:$src1, (ld:v2f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)<<P:Predicate_unpckh>> - Complexity = 36
                  // Dst: (UNPCKHPDrm:v2f64 VR128:v2f64:$src1, addr:iPTR:$src2)
                0, // EndSwitchType
/*83873*/     /*Scope*/ 46, /*->83920*/
/*83874*/       OPC_CheckPredicate, 103, // Predicate_unpckl
/*83876*/       OPC_SwitchType /*2 cases */, 19,  MVT::v4f32,// ->83898
/*83879*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*83881*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*83884*/         OPC_EmitMergeInputChains1_1,
/*83885*/         OPC_MorphNodeTo, TARGET_VAL(X86::UNPCKLPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (vector_shuffle:v4f32 VR128:v4f32:$src1, (ld:v4f32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)<<P:Predicate_unpckl>> - Complexity = 36
                  // Dst: (UNPCKLPSrm:v4f32 VR128:v4f32:$src1, addr:iPTR:$src2)
                /*SwitchType*/ 19,  MVT::v2f64,// ->83919
/*83900*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*83902*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*83905*/         OPC_EmitMergeInputChains1_1,
/*83906*/         OPC_MorphNodeTo, TARGET_VAL(X86::UNPCKLPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (vector_shuffle:v2f64 VR128:v2f64:$src1, (ld:v2f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)<<P:Predicate_unpckl>> - Complexity = 36
                  // Dst: (UNPCKLPDrm:v2f64 VR128:v2f64:$src1, addr:iPTR:$src2)
                0, // EndSwitchType
/*83920*/     0, /*End of Scope*/
/*83921*/   /*Scope*/ 82|128,1/*210*/, /*->84133*/
/*83923*/     OPC_MoveChild, 0,
/*83925*/     OPC_SwitchOpcode /*3 cases */, 75,  TARGET_VAL(ISD::BITCAST),// ->84004
/*83929*/       OPC_MoveChild, 0,
/*83931*/       OPC_CheckOpcode, TARGET_VAL(ISD::SCALAR_TO_VECTOR),
/*83934*/       OPC_MoveChild, 0,
/*83936*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*83939*/       OPC_RecordMemRef,
/*83940*/       OPC_RecordNode, // #0 = 'ld' chained node
/*83941*/       OPC_CheckFoldableChainNode,
/*83942*/       OPC_RecordChild1, // #1 = $src
/*83943*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*83945*/       OPC_CheckPredicate, 3, // Predicate_load
/*83947*/       OPC_CheckType, MVT::i64,
/*83949*/       OPC_MoveParent,
/*83950*/       OPC_CheckType, MVT::v2i64,
/*83952*/       OPC_MoveParent,
/*83953*/       OPC_MoveParent,
/*83954*/       OPC_MoveChild, 1,
/*83956*/       OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
/*83959*/       OPC_MoveParent,
/*83960*/       OPC_CheckPredicate, 94, // Predicate_movddup
/*83962*/       OPC_CheckType, MVT::v2f64,
/*83964*/       OPC_Scope, 18, /*->83984*/ // 2 children in Scope
/*83966*/         OPC_CheckPatternPredicate, 16, // (Subtarget->hasSSE3())
/*83968*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*83971*/         OPC_EmitMergeInputChains1_0,
/*83972*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOVDDUPrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v2f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (vector_shuffle:v2f64 (bitconvert:v2f64 (scalar_to_vector:v2i64 (ld:i64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (undef:v2f64))<<P:Predicate_movddup>> - Complexity = 35
                  // Dst: (MOVDDUPrm:v2f64 addr:iPTR:$src)
/*83984*/       /*Scope*/ 18, /*->84003*/
/*83985*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*83987*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*83990*/         OPC_EmitMergeInputChains1_0,
/*83991*/         OPC_MorphNodeTo, TARGET_VAL(X86::VMOVDDUPrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v2f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (vector_shuffle:v2f64 (bitconvert:v2f64 (scalar_to_vector:v2i64 (ld:i64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (undef:v2f64))<<P:Predicate_movddup>> - Complexity = 35
                  // Dst: (VMOVDDUPrm:v2f64 addr:iPTR:$src)
/*84003*/       0, /*End of Scope*/
              /*SwitchOpcode*/ 61,  TARGET_VAL(ISD::LOAD),// ->84068
/*84007*/       OPC_RecordMemRef,
/*84008*/       OPC_RecordNode, // #0 = 'ld' chained node
/*84009*/       OPC_CheckFoldableChainNode,
/*84010*/       OPC_RecordChild1, // #1 = $src
/*84011*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*84013*/       OPC_CheckPredicate, 3, // Predicate_load
/*84015*/       OPC_CheckPredicate, 23, // Predicate_memop
/*84017*/       OPC_MoveParent,
/*84018*/       OPC_MoveChild, 1,
/*84020*/       OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
/*84023*/       OPC_MoveParent,
/*84024*/       OPC_CheckPredicate, 94, // Predicate_movddup
/*84026*/       OPC_CheckType, MVT::v2f64,
/*84028*/       OPC_Scope, 18, /*->84048*/ // 2 children in Scope
/*84030*/         OPC_CheckPatternPredicate, 16, // (Subtarget->hasSSE3())
/*84032*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*84035*/         OPC_EmitMergeInputChains1_0,
/*84036*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOVDDUPrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v2f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (vector_shuffle:v2f64 (ld:v2f64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, (undef:v2f64))<<P:Predicate_movddup>> - Complexity = 34
                  // Dst: (MOVDDUPrm:v2f64 addr:iPTR:$src)
/*84048*/       /*Scope*/ 18, /*->84067*/
/*84049*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*84051*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*84054*/         OPC_EmitMergeInputChains1_0,
/*84055*/         OPC_MorphNodeTo, TARGET_VAL(X86::VMOVDDUPrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v2f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (vector_shuffle:v2f64 (ld:v2f64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, (undef:v2f64))<<P:Predicate_movddup>> - Complexity = 34
                  // Dst: (VMOVDDUPrm:v2f64 addr:iPTR:$src)
/*84067*/       0, /*End of Scope*/
              /*SwitchOpcode*/ 61,  TARGET_VAL(ISD::SCALAR_TO_VECTOR),// ->84132
/*84071*/       OPC_MoveChild, 0,
/*84073*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*84076*/       OPC_RecordMemRef,
/*84077*/       OPC_RecordNode, // #0 = 'ld' chained node
/*84078*/       OPC_CheckFoldableChainNode,
/*84079*/       OPC_RecordChild1, // #1 = $src
/*84080*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*84082*/       OPC_CheckPredicate, 3, // Predicate_load
/*84084*/       OPC_CheckType, MVT::f64,
/*84086*/       OPC_MoveParent,
/*84087*/       OPC_MoveParent,
/*84088*/       OPC_MoveChild, 1,
/*84090*/       OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
/*84093*/       OPC_MoveParent,
/*84094*/       OPC_CheckPredicate, 94, // Predicate_movddup
/*84096*/       OPC_CheckType, MVT::v2f64,
/*84098*/       OPC_CheckPatternPredicate, 16, // (Subtarget->hasSSE3())
/*84100*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*84103*/       OPC_EmitMergeInputChains1_0,
/*84104*/       OPC_Scope, 12, /*->84118*/ // 2 children in Scope
/*84106*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOVDDUPrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v2f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (vector_shuffle:v2f64 (scalar_to_vector:v2f64 (ld:f64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (undef:v2f64))<<P:Predicate_movddup>> - Complexity = 32
                  // Dst: (MOVDDUPrm:v2f64 addr:iPTR:$src)
/*84118*/       /*Scope*/ 12, /*->84131*/
/*84119*/         OPC_MorphNodeTo, TARGET_VAL(X86::VMOVDDUPrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v2f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (vector_shuffle:v2f64 (scalar_to_vector:v2f64 (ld:f64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (undef:v2f64))<<P:Predicate_movddup>> - Complexity = 32
                  // Dst: (VMOVDDUPrm:v2f64 addr:iPTR:$src)
/*84131*/       0, /*End of Scope*/
              0, // EndSwitchOpcode
/*84133*/   /*Scope*/ 67, /*->84201*/
/*84134*/     OPC_RecordChild0, // #0 = $src
/*84135*/     OPC_MoveChild, 1,
/*84137*/     OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
/*84140*/     OPC_MoveParent,
/*84141*/     OPC_CheckType, MVT::v4f32,
/*84143*/     OPC_Scope, 13, /*->84158*/ // 4 children in Scope
/*84145*/       OPC_CheckPredicate, 94, // Predicate_movddup
/*84147*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*84149*/       OPC_MorphNodeTo, TARGET_VAL(X86::VMOVLHPSrr), 0,
                    1/*#VTs*/, MVT::v4f32, 2/*#Ops*/, 0, 0, 
                // Src: (vector_shuffle:v4f32 VR128:v4f32:$src, (undef:v4f32))<<P:Predicate_movddup>> - Complexity = 27
                // Dst: (VMOVLHPSrr:v4f32 VR128:v4f32:$src, VR128:v4f32:$src)
/*84158*/     /*Scope*/ 13, /*->84172*/
/*84159*/       OPC_CheckPredicate, 99, // Predicate_movhlps_undef
/*84161*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*84163*/       OPC_MorphNodeTo, TARGET_VAL(X86::VMOVHLPSrr), 0,
                    1/*#VTs*/, MVT::v4f32, 2/*#Ops*/, 0, 0, 
                // Src: (vector_shuffle:v4f32 VR128:v4f32:$src1, (undef:v4f32))<<P:Predicate_movhlps_undef>> - Complexity = 27
                // Dst: (VMOVHLPSrr:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src1)
/*84172*/     /*Scope*/ 13, /*->84186*/
/*84173*/       OPC_CheckPredicate, 94, // Predicate_movddup
/*84175*/       OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*84177*/       OPC_MorphNodeTo, TARGET_VAL(X86::MOVLHPSrr), 0,
                    1/*#VTs*/, MVT::v4f32, 2/*#Ops*/, 0, 0, 
                // Src: (vector_shuffle:v4f32 VR128:v4f32:$src, (undef:v4f32))<<P:Predicate_movddup>> - Complexity = 27
                // Dst: (MOVLHPSrr:v4f32 VR128:v4f32:$src, VR128:v4f32:$src)
/*84186*/     /*Scope*/ 13, /*->84200*/
/*84187*/       OPC_CheckPredicate, 99, // Predicate_movhlps_undef
/*84189*/       OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*84191*/       OPC_MorphNodeTo, TARGET_VAL(X86::MOVHLPSrr), 0,
                    1/*#VTs*/, MVT::v4f32, 2/*#Ops*/, 0, 0, 
                // Src: (vector_shuffle:v4f32 VR128:v4f32:$src1, (undef:v4f32))<<P:Predicate_movhlps_undef>> - Complexity = 27
                // Dst: (MOVHLPSrr:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src1)
/*84200*/     0, /*End of Scope*/
/*84201*/   /*Scope*/ 60|128,1/*188*/, /*->84391*/
/*84203*/     OPC_RecordNode, // #0 = $src3
/*84204*/     OPC_RecordChild0, // #1 = $src1
/*84205*/     OPC_MoveChild, 1,
/*84207*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*84210*/     OPC_RecordMemRef,
/*84211*/     OPC_RecordNode, // #2 = 'ld' chained node
/*84212*/     OPC_CheckFoldableChainNode,
/*84213*/     OPC_RecordChild1, // #3 = $src2
/*84214*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*84216*/     OPC_CheckPredicate, 3, // Predicate_load
/*84218*/     OPC_CheckPredicate, 23, // Predicate_memop
/*84220*/     OPC_MoveParent,
/*84221*/     OPC_CheckPredicate, 97, // Predicate_shufp
/*84223*/     OPC_SwitchType /*4 cases */, 54,  MVT::v4f32,// ->84280
/*84226*/       OPC_Scope, 25, /*->84253*/ // 2 children in Scope
/*84228*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*84230*/         OPC_CheckComplexPat, /*CP*/0, /*#*/3, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*84233*/         OPC_EmitMergeInputChains, 1, 2, 
/*84236*/         OPC_EmitNodeXForm, 3, 0, // SHUFFLE_get_shuf_imm
/*84239*/         OPC_MorphNodeTo, TARGET_VAL(X86::VSHUFPSrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4f32, 7/*#Ops*/, 1, 4, 5, 6, 7, 8, 9, 
                  // Src: (vector_shuffle:v4f32 VR128:v4f32:$src1, (ld:v4f32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)<<P:Predicate_shufp>><<X:SHUFFLE_get_shuf_imm>>:$src3 - Complexity = 26
                  // Dst: (VSHUFPSrmi:v4f32 VR128:v4f32:$src1, addr:iPTR:$src2, (SHUFFLE_get_shuf_imm:i8 (vector_shuffle:v4f32 VR128:v4f32:$src1, (ld:v4f32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>):$src3))
/*84253*/       /*Scope*/ 25, /*->84279*/
/*84254*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*84256*/         OPC_CheckComplexPat, /*CP*/0, /*#*/3, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*84259*/         OPC_EmitMergeInputChains, 1, 2, 
/*84262*/         OPC_EmitNodeXForm, 3, 0, // SHUFFLE_get_shuf_imm
/*84265*/         OPC_MorphNodeTo, TARGET_VAL(X86::SHUFPSrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4f32, 7/*#Ops*/, 1, 4, 5, 6, 7, 8, 9, 
                  // Src: (vector_shuffle:v4f32 VR128:v4f32:$src1, (ld:v4f32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)<<P:Predicate_shufp>><<X:SHUFFLE_get_shuf_imm>>:$src3 - Complexity = 26
                  // Dst: (SHUFPSrmi:v4f32 VR128:v4f32:$src1, addr:iPTR:$src2, (SHUFFLE_get_shuf_imm:i8 (vector_shuffle:v4f32 VR128:v4f32:$src1, (ld:v4f32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>):$src3))
/*84279*/       0, /*End of Scope*/
              /*SwitchType*/ 25,  MVT::v8f32,// ->84307
/*84282*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*84284*/       OPC_CheckComplexPat, /*CP*/0, /*#*/3, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*84287*/       OPC_EmitMergeInputChains, 1, 2, 
/*84290*/       OPC_EmitNodeXForm, 3, 0, // SHUFFLE_get_shuf_imm
/*84293*/       OPC_MorphNodeTo, TARGET_VAL(X86::VSHUFPSYrmi), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v8f32, 7/*#Ops*/, 1, 4, 5, 6, 7, 8, 9, 
                // Src: (vector_shuffle:v8f32 VR256:v8f32:$src1, (ld:v8f32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)<<P:Predicate_shufp>><<X:SHUFFLE_get_shuf_imm>>:$src3 - Complexity = 26
                // Dst: (VSHUFPSYrmi:v8f32 VR256:v8f32:$src1, addr:iPTR:$src2, (SHUFFLE_get_shuf_imm:i8 (vector_shuffle:v8f32 VR256:v8f32:$src1, (ld:v8f32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>):$src3))
              /*SwitchType*/ 54,  MVT::v2f64,// ->84363
/*84309*/       OPC_Scope, 25, /*->84336*/ // 2 children in Scope
/*84311*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*84313*/         OPC_CheckComplexPat, /*CP*/0, /*#*/3, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*84316*/         OPC_EmitMergeInputChains, 1, 2, 
/*84319*/         OPC_EmitNodeXForm, 3, 0, // SHUFFLE_get_shuf_imm
/*84322*/         OPC_MorphNodeTo, TARGET_VAL(X86::VSHUFPDrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v2f64, 7/*#Ops*/, 1, 4, 5, 6, 7, 8, 9, 
                  // Src: (vector_shuffle:v2f64 VR128:v2f64:$src1, (ld:v2f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)<<P:Predicate_shufp>><<X:SHUFFLE_get_shuf_imm>>:$src3 - Complexity = 26
                  // Dst: (VSHUFPDrmi:v2f64 VR128:v2f64:$src1, addr:iPTR:$src2, (SHUFFLE_get_shuf_imm:i8 (vector_shuffle:v2f64 VR128:v2f64:$src1, (ld:v2f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>):$src3))
/*84336*/       /*Scope*/ 25, /*->84362*/
/*84337*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*84339*/         OPC_CheckComplexPat, /*CP*/0, /*#*/3, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*84342*/         OPC_EmitMergeInputChains, 1, 2, 
/*84345*/         OPC_EmitNodeXForm, 3, 0, // SHUFFLE_get_shuf_imm
/*84348*/         OPC_MorphNodeTo, TARGET_VAL(X86::SHUFPDrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v2f64, 7/*#Ops*/, 1, 4, 5, 6, 7, 8, 9, 
                  // Src: (vector_shuffle:v2f64 VR128:v2f64:$src1, (ld:v2f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)<<P:Predicate_shufp>><<X:SHUFFLE_get_shuf_imm>>:$src3 - Complexity = 26
                  // Dst: (SHUFPDrmi:v2f64 VR128:v2f64:$src1, addr:iPTR:$src2, (SHUFFLE_get_shuf_imm:i8 (vector_shuffle:v2f64 VR128:v2f64:$src1, (ld:v2f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>):$src3))
/*84362*/       0, /*End of Scope*/
              /*SwitchType*/ 25,  MVT::v4f64,// ->84390
/*84365*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*84367*/       OPC_CheckComplexPat, /*CP*/0, /*#*/3, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*84370*/       OPC_EmitMergeInputChains, 1, 2, 
/*84373*/       OPC_EmitNodeXForm, 3, 0, // SHUFFLE_get_shuf_imm
/*84376*/       OPC_MorphNodeTo, TARGET_VAL(X86::VSHUFPDYrmi), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v4f64, 7/*#Ops*/, 1, 4, 5, 6, 7, 8, 9, 
                // Src: (vector_shuffle:v4f64 VR256:v4f64:$src1, (ld:v4f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)<<P:Predicate_shufp>><<X:SHUFFLE_get_shuf_imm>>:$src3 - Complexity = 26
                // Dst: (VSHUFPDYrmi:v4f64 VR256:v4f64:$src1, addr:iPTR:$src2, (SHUFFLE_get_shuf_imm:i8 (vector_shuffle:v4f64 VR256:v4f64:$src1, (ld:v4f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>):$src3))
              0, // EndSwitchType
/*84391*/   /*Scope*/ 82|128,3/*466*/, /*->84859*/
/*84393*/     OPC_RecordChild0, // #0 = $src1
/*84394*/     OPC_Scope, 105|128,1/*233*/, /*->84630*/ // 3 children in Scope
/*84397*/       OPC_RecordChild1, // #1 = $src2
/*84398*/       OPC_Scope, 15, /*->84415*/ // 8 children in Scope
/*84400*/         OPC_CheckPredicate, 98, // Predicate_movlhps
/*84402*/         OPC_CheckType, MVT::v4f32,
/*84404*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*84406*/         OPC_MorphNodeTo, TARGET_VAL(X86::VMOVLHPSrr), 0,
                      1/*#VTs*/, MVT::v4f32, 2/*#Ops*/, 0, 1, 
                  // Src: (vector_shuffle:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src2)<<P:Predicate_movlhps>> - Complexity = 24
                  // Dst: (VMOVLHPSrr:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src2)
/*84415*/       /*Scope*/ 15, /*->84431*/
/*84416*/         OPC_CheckPredicate, 100, // Predicate_movhlps
/*84418*/         OPC_CheckType, MVT::v4f32,
/*84420*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*84422*/         OPC_MorphNodeTo, TARGET_VAL(X86::VMOVHLPSrr), 0,
                      1/*#VTs*/, MVT::v4f32, 2/*#Ops*/, 0, 1, 
                  // Src: (vector_shuffle:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src2)<<P:Predicate_movhlps>> - Complexity = 24
                  // Dst: (VMOVHLPSrr:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src2)
/*84431*/       /*Scope*/ 15, /*->84447*/
/*84432*/         OPC_CheckPredicate, 98, // Predicate_movlhps
/*84434*/         OPC_CheckType, MVT::v4f32,
/*84436*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*84438*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOVLHPSrr), 0,
                      1/*#VTs*/, MVT::v4f32, 2/*#Ops*/, 0, 1, 
                  // Src: (vector_shuffle:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src2)<<P:Predicate_movlhps>> - Complexity = 24
                  // Dst: (MOVLHPSrr:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src2)
/*84447*/       /*Scope*/ 15, /*->84463*/
/*84448*/         OPC_CheckPredicate, 100, // Predicate_movhlps
/*84450*/         OPC_CheckType, MVT::v4f32,
/*84452*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*84454*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOVHLPSrr), 0,
                      1/*#VTs*/, MVT::v4f32, 2/*#Ops*/, 0, 1, 
                  // Src: (vector_shuffle:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src2)<<P:Predicate_movhlps>> - Complexity = 24
                  // Dst: (MOVHLPSrr:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src2)
/*84463*/       /*Scope*/ 54, /*->84518*/
/*84464*/         OPC_CheckPredicate, 101, // Predicate_movl
/*84466*/         OPC_SwitchType /*2 cases */, 23,  MVT::v4f32,// ->84492
/*84469*/           OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*84471*/           OPC_EmitInteger, MVT::i32, X86::sub_ss,
/*84474*/           OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        1/*#VTs*/, MVT::f32, 2/*#Ops*/, 1, 2,  // Results = #3 
/*84483*/           OPC_MorphNodeTo, TARGET_VAL(X86::MOVSSrr), 0,
                        1/*#VTs*/, MVT::v4f32, 2/*#Ops*/, 0, 3, 
                    // Src: (vector_shuffle:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src2)<<P:Predicate_movl>> - Complexity = 19
                    // Dst: (MOVSSrr:v4f32 VR128:v4f32:$src1, (EXTRACT_SUBREG:f32 VR128:v4f32:$src2, sub_ss:i32))
                  /*SwitchType*/ 23,  MVT::v2f64,// ->84517
/*84494*/           OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*84496*/           OPC_EmitInteger, MVT::i32, X86::sub_sd,
/*84499*/           OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        1/*#VTs*/, MVT::f64, 2/*#Ops*/, 1, 2,  // Results = #3 
/*84508*/           OPC_MorphNodeTo, TARGET_VAL(X86::MOVSDrr), 0,
                        1/*#VTs*/, MVT::v2f64, 2/*#Ops*/, 0, 3, 
                    // Src: (vector_shuffle:v2f64 VR128:v2f64:$src1, VR128:v2f64:$src2)<<P:Predicate_movl>> - Complexity = 19
                    // Dst: (MOVSDrr:v2f64 VR128:v2f64:$src1, (EXTRACT_SUBREG:f64 VR128:v2f64:$src2, sub_sd:i32))
                  0, // EndSwitchType
/*84518*/       /*Scope*/ 27, /*->84546*/
/*84519*/         OPC_CheckPredicate, 12, // Predicate_movlp
/*84521*/         OPC_CheckType, MVT::v4f32,
/*84523*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*84525*/         OPC_EmitInteger, MVT::i32, X86::sub_sd,
/*84528*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      1/*#VTs*/, MVT::f64, 2/*#Ops*/, 1, 2,  // Results = #3 
/*84537*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOVSDrr), 0,
                      1/*#VTs*/, MVT::v4f32, 2/*#Ops*/, 0, 3, 
                  // Src: (vector_shuffle:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src2)<<P:Predicate_movlp>> - Complexity = 19
                  // Dst: (MOVSDrr:v4f32 VR128:v4f32:$src1, (EXTRACT_SUBREG:f64 VR128:v4f32:$src2, sub_sd:i32))
/*84546*/       /*Scope*/ 54, /*->84601*/
/*84547*/         OPC_CheckPredicate, 101, // Predicate_movl
/*84549*/         OPC_SwitchType /*2 cases */, 23,  MVT::v4f32,// ->84575
/*84552*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*84554*/           OPC_EmitInteger, MVT::i32, X86::sub_ss,
/*84557*/           OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        1/*#VTs*/, MVT::f32, 2/*#Ops*/, 1, 2,  // Results = #3 
/*84566*/           OPC_MorphNodeTo, TARGET_VAL(X86::VMOVSSrr), 0,
                        1/*#VTs*/, MVT::v4f32, 2/*#Ops*/, 0, 3, 
                    // Src: (vector_shuffle:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src2)<<P:Predicate_movl>> - Complexity = 19
                    // Dst: (VMOVSSrr:v4f32 VR128:v4f32:$src1, (EXTRACT_SUBREG:f32 VR128:v4f32:$src2, sub_ss:i32))
                  /*SwitchType*/ 23,  MVT::v2f64,// ->84600
/*84577*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*84579*/           OPC_EmitInteger, MVT::i32, X86::sub_sd,
/*84582*/           OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        1/*#VTs*/, MVT::f64, 2/*#Ops*/, 1, 2,  // Results = #3 
/*84591*/           OPC_MorphNodeTo, TARGET_VAL(X86::VMOVSDrr), 0,
                        1/*#VTs*/, MVT::v2f64, 2/*#Ops*/, 0, 3, 
                    // Src: (vector_shuffle:v2f64 VR128:v2f64:$src1, VR128:v2f64:$src2)<<P:Predicate_movl>> - Complexity = 19
                    // Dst: (VMOVSDrr:v2f64 VR128:v2f64:$src1, (EXTRACT_SUBREG:f64 VR128:v2f64:$src2, sub_sd:i32))
                  0, // EndSwitchType
/*84601*/       /*Scope*/ 27, /*->84629*/
/*84602*/         OPC_CheckPredicate, 12, // Predicate_movlp
/*84604*/         OPC_CheckType, MVT::v4f32,
/*84606*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*84608*/         OPC_EmitInteger, MVT::i32, X86::sub_sd,
/*84611*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      1/*#VTs*/, MVT::f64, 2/*#Ops*/, 1, 2,  // Results = #3 
/*84620*/         OPC_MorphNodeTo, TARGET_VAL(X86::VMOVSDrr), 0,
                      1/*#VTs*/, MVT::v4f32, 2/*#Ops*/, 0, 3, 
                  // Src: (vector_shuffle:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src2)<<P:Predicate_movlp>> - Complexity = 19
                  // Dst: (VMOVSDrr:v4f32 VR128:v4f32:$src1, (EXTRACT_SUBREG:f64 VR128:v4f32:$src2, sub_sd:i32))
/*84629*/       0, /*End of Scope*/
/*84630*/     /*Scope*/ 36, /*->84667*/
/*84631*/       OPC_MoveChild, 1,
/*84633*/       OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
/*84636*/       OPC_MoveParent,
/*84637*/       OPC_CheckPredicate, 102, // Predicate_splat_lo
/*84639*/       OPC_CheckType, MVT::v2f64,
/*84641*/       OPC_Scope, 11, /*->84654*/ // 2 children in Scope
/*84643*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*84645*/         OPC_MorphNodeTo, TARGET_VAL(X86::UNPCKLPDrr), 0,
                      1/*#VTs*/, MVT::v2f64, 2/*#Ops*/, 0, 0, 
                  // Src: (vector_shuffle:v2f64 VR128:v2f64:$src, (undef:v2f64))<<P:Predicate_splat_lo>> - Complexity = 17
                  // Dst: (UNPCKLPDrr:v2f64 VR128:v2f64:$src, VR128:v2f64:$src)
/*84654*/       /*Scope*/ 11, /*->84666*/
/*84655*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*84657*/         OPC_MorphNodeTo, TARGET_VAL(X86::VUNPCKLPDrr), 0,
                      1/*#VTs*/, MVT::v2f64, 2/*#Ops*/, 0, 0, 
                  // Src: (vector_shuffle:v2f64 VR128:v2f64:$src, (undef:v2f64))<<P:Predicate_splat_lo>> - Complexity = 17
                  // Dst: (VUNPCKLPDrr:v2f64 VR128:v2f64:$src, VR128:v2f64:$src)
/*84666*/       0, /*End of Scope*/
/*84667*/     /*Scope*/ 61|128,1/*189*/, /*->84858*/
/*84669*/       OPC_RecordChild1, // #1 = $src2
/*84670*/       OPC_Scope, 30, /*->84702*/ // 6 children in Scope
/*84672*/         OPC_CheckPredicate, 13, // Predicate_unpckh
/*84674*/         OPC_SwitchType /*2 cases */, 11,  MVT::v4f32,// ->84688
/*84677*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*84679*/           OPC_MorphNodeTo, TARGET_VAL(X86::VUNPCKHPSrr), 0,
                        1/*#VTs*/, MVT::v4f32, 2/*#Ops*/, 0, 1, 
                    // Src: (vector_shuffle:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src2)<<P:Predicate_unpckh>> - Complexity = 14
                    // Dst: (VUNPCKHPSrr:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src2)
                  /*SwitchType*/ 11,  MVT::v2f64,// ->84701
/*84690*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*84692*/           OPC_MorphNodeTo, TARGET_VAL(X86::VUNPCKHPDrr), 0,
                        1/*#VTs*/, MVT::v2f64, 2/*#Ops*/, 0, 1, 
                    // Src: (vector_shuffle:v2f64 VR128:v2f64:$src1, VR128:v2f64:$src2)<<P:Predicate_unpckh>> - Complexity = 14
                    // Dst: (VUNPCKHPDrr:v2f64 VR128:v2f64:$src1, VR128:v2f64:$src2)
                  0, // EndSwitchType
/*84702*/       /*Scope*/ 30, /*->84733*/
/*84703*/         OPC_CheckPredicate, 103, // Predicate_unpckl
/*84705*/         OPC_SwitchType /*2 cases */, 11,  MVT::v4f32,// ->84719
/*84708*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*84710*/           OPC_MorphNodeTo, TARGET_VAL(X86::VUNPCKLPSrr), 0,
                        1/*#VTs*/, MVT::v4f32, 2/*#Ops*/, 0, 1, 
                    // Src: (vector_shuffle:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src2)<<P:Predicate_unpckl>> - Complexity = 14
                    // Dst: (VUNPCKLPSrr:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src2)
                  /*SwitchType*/ 11,  MVT::v2f64,// ->84732
/*84721*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*84723*/           OPC_MorphNodeTo, TARGET_VAL(X86::VUNPCKLPDrr), 0,
                        1/*#VTs*/, MVT::v2f64, 2/*#Ops*/, 0, 1, 
                    // Src: (vector_shuffle:v2f64 VR128:v2f64:$src1, VR128:v2f64:$src2)<<P:Predicate_unpckl>> - Complexity = 14
                    // Dst: (VUNPCKLPDrr:v2f64 VR128:v2f64:$src1, VR128:v2f64:$src2)
                  0, // EndSwitchType
/*84733*/       /*Scope*/ 30, /*->84764*/
/*84734*/         OPC_CheckPredicate, 13, // Predicate_unpckh
/*84736*/         OPC_SwitchType /*2 cases */, 11,  MVT::v8f32,// ->84750
/*84739*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*84741*/           OPC_MorphNodeTo, TARGET_VAL(X86::VUNPCKHPSYrr), 0,
                        1/*#VTs*/, MVT::v8f32, 2/*#Ops*/, 0, 1, 
                    // Src: (vector_shuffle:v8f32 VR256:v8f32:$src1, VR256:v8f32:$src2)<<P:Predicate_unpckh>> - Complexity = 14
                    // Dst: (VUNPCKHPSYrr:v8f32 VR256:v8f32:$src1, VR256:v8f32:$src2)
                  /*SwitchType*/ 11,  MVT::v4f64,// ->84763
/*84752*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*84754*/           OPC_MorphNodeTo, TARGET_VAL(X86::VUNPCKHPDYrr), 0,
                        1/*#VTs*/, MVT::v4f64, 2/*#Ops*/, 0, 1, 
                    // Src: (vector_shuffle:v4f64 VR256:v4f64:$src1, VR256:v4f64:$src2)<<P:Predicate_unpckh>> - Complexity = 14
                    // Dst: (VUNPCKHPDYrr:v4f64 VR256:v4f64:$src1, VR256:v4f64:$src2)
                  0, // EndSwitchType
/*84764*/       /*Scope*/ 30, /*->84795*/
/*84765*/         OPC_CheckPredicate, 103, // Predicate_unpckl
/*84767*/         OPC_SwitchType /*2 cases */, 11,  MVT::v8f32,// ->84781
/*84770*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*84772*/           OPC_MorphNodeTo, TARGET_VAL(X86::VUNPCKLPSYrr), 0,
                        1/*#VTs*/, MVT::v8f32, 2/*#Ops*/, 0, 1, 
                    // Src: (vector_shuffle:v8f32 VR256:v8f32:$src1, VR256:v8f32:$src2)<<P:Predicate_unpckl>> - Complexity = 14
                    // Dst: (VUNPCKLPSYrr:v8f32 VR256:v8f32:$src1, VR256:v8f32:$src2)
                  /*SwitchType*/ 11,  MVT::v4f64,// ->84794
/*84783*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*84785*/           OPC_MorphNodeTo, TARGET_VAL(X86::VUNPCKLPDYrr), 0,
                        1/*#VTs*/, MVT::v4f64, 2/*#Ops*/, 0, 1, 
                    // Src: (vector_shuffle:v4f64 VR256:v4f64:$src1, VR256:v4f64:$src2)<<P:Predicate_unpckl>> - Complexity = 14
                    // Dst: (VUNPCKLPDYrr:v4f64 VR256:v4f64:$src1, VR256:v4f64:$src2)
                  0, // EndSwitchType
/*84795*/       /*Scope*/ 30, /*->84826*/
/*84796*/         OPC_CheckPredicate, 13, // Predicate_unpckh
/*84798*/         OPC_SwitchType /*2 cases */, 11,  MVT::v4f32,// ->84812
/*84801*/           OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*84803*/           OPC_MorphNodeTo, TARGET_VAL(X86::UNPCKHPSrr), 0,
                        1/*#VTs*/, MVT::v4f32, 2/*#Ops*/, 0, 1, 
                    // Src: (vector_shuffle:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src2)<<P:Predicate_unpckh>> - Complexity = 14
                    // Dst: (UNPCKHPSrr:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src2)
                  /*SwitchType*/ 11,  MVT::v2f64,// ->84825
/*84814*/           OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*84816*/           OPC_MorphNodeTo, TARGET_VAL(X86::UNPCKHPDrr), 0,
                        1/*#VTs*/, MVT::v2f64, 2/*#Ops*/, 0, 1, 
                    // Src: (vector_shuffle:v2f64 VR128:v2f64:$src1, VR128:v2f64:$src2)<<P:Predicate_unpckh>> - Complexity = 14
                    // Dst: (UNPCKHPDrr:v2f64 VR128:v2f64:$src1, VR128:v2f64:$src2)
                  0, // EndSwitchType
/*84826*/       /*Scope*/ 30, /*->84857*/
/*84827*/         OPC_CheckPredicate, 103, // Predicate_unpckl
/*84829*/         OPC_SwitchType /*2 cases */, 11,  MVT::v4f32,// ->84843
/*84832*/           OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*84834*/           OPC_MorphNodeTo, TARGET_VAL(X86::UNPCKLPSrr), 0,
                        1/*#VTs*/, MVT::v4f32, 2/*#Ops*/, 0, 1, 
                    // Src: (vector_shuffle:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src2)<<P:Predicate_unpckl>> - Complexity = 14
                    // Dst: (UNPCKLPSrr:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src2)
                  /*SwitchType*/ 11,  MVT::v2f64,// ->84856
/*84845*/           OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*84847*/           OPC_MorphNodeTo, TARGET_VAL(X86::UNPCKLPDrr), 0,
                        1/*#VTs*/, MVT::v2f64, 2/*#Ops*/, 0, 1, 
                    // Src: (vector_shuffle:v2f64 VR128:v2f64:$src1, VR128:v2f64:$src2)<<P:Predicate_unpckl>> - Complexity = 14
                    // Dst: (UNPCKLPDrr:v2f64 VR128:v2f64:$src1, VR128:v2f64:$src2)
                  0, // EndSwitchType
/*84857*/       0, /*End of Scope*/
/*84858*/     0, /*End of Scope*/
/*84859*/   /*Scope*/ 44, /*->84904*/
/*84860*/     OPC_RecordNode, // #0 = $src2
/*84861*/     OPC_RecordChild0, // #1 = $src1
/*84862*/     OPC_MoveChild, 1,
/*84864*/     OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
/*84867*/     OPC_MoveParent,
/*84868*/     OPC_CheckPredicate, 93, // Predicate_pshufd
/*84870*/     OPC_CheckType, MVT::v4f32,
/*84872*/     OPC_Scope, 14, /*->84888*/ // 2 children in Scope
/*84874*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*84876*/       OPC_EmitNodeXForm, 3, 0, // SHUFFLE_get_shuf_imm
/*84879*/       OPC_MorphNodeTo, TARGET_VAL(X86::VPSHUFDri), 0,
                    1/*#VTs*/, MVT::v4f32, 2/*#Ops*/, 1, 2, 
                // Src: (vector_shuffle:v4f32 VR128:v4f32:$src1, (undef:v4f32))<<P:Predicate_pshufd>><<X:SHUFFLE_get_shuf_imm>>:$src2 - Complexity = 12
                // Dst: (VPSHUFDri:v4f32 VR128:v4f32:$src1, (SHUFFLE_get_shuf_imm:i8 VR128:v4f32:$src2))
/*84888*/     /*Scope*/ 14, /*->84903*/
/*84889*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*84891*/       OPC_EmitNodeXForm, 3, 0, // SHUFFLE_get_shuf_imm
/*84894*/       OPC_MorphNodeTo, TARGET_VAL(X86::PSHUFDri), 0,
                    1/*#VTs*/, MVT::v4f32, 2/*#Ops*/, 1, 2, 
                // Src: (vector_shuffle:v4f32 VR128:v4f32:$src1, (undef:v4f32))<<P:Predicate_pshufd>><<X:SHUFFLE_get_shuf_imm>>:$src2 - Complexity = 12
                // Dst: (PSHUFDri:v4f32 VR128:v4f32:$src1, (SHUFFLE_get_shuf_imm:i8 VR128:v4f32:$src2))
/*84903*/     0, /*End of Scope*/
/*84904*/   /*Scope*/ 77, /*->84982*/
/*84905*/     OPC_RecordChild0, // #0 = $src1
/*84906*/     OPC_MoveChild, 1,
/*84908*/     OPC_CheckOpcode, TARGET_VAL(ISD::SCALAR_TO_VECTOR),
/*84911*/     OPC_RecordChild0, // #1 = $src2
/*84912*/     OPC_Scope, 33, /*->84947*/ // 2 children in Scope
/*84914*/       OPC_CheckChild0Type, MVT::f32,
/*84916*/       OPC_MoveParent,
/*84917*/       OPC_CheckPredicate, 101, // Predicate_movl
/*84919*/       OPC_CheckType, MVT::v4f32,
/*84921*/       OPC_Scope, 11, /*->84934*/ // 2 children in Scope
/*84923*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*84925*/         OPC_MorphNodeTo, TARGET_VAL(X86::VMOVSSrr), 0,
                      1/*#VTs*/, MVT::v4f32, 2/*#Ops*/, 0, 1, 
                  // Src: (vector_shuffle:v4f32 VR128:v4f32:$src1, (scalar_to_vector:v4f32 FR32:f32:$src2))<<P:Predicate_movl>> - Complexity = 7
                  // Dst: (VMOVSSrr:v4f32 VR128:v4f32:$src1, FR32:f32:$src2)
/*84934*/       /*Scope*/ 11, /*->84946*/
/*84935*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*84937*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOVSSrr), 0,
                      1/*#VTs*/, MVT::v4f32, 2/*#Ops*/, 0, 1, 
                  // Src: (vector_shuffle:v4f32 VR128:v4f32:$src1, (scalar_to_vector:v4f32 FR32:f32:$src2))<<P:Predicate_movl>> - Complexity = 7
                  // Dst: (MOVSSrr:v4f32 VR128:v4f32:$src1, FR32:f32:$src2)
/*84946*/       0, /*End of Scope*/
/*84947*/     /*Scope*/ 33, /*->84981*/
/*84948*/       OPC_CheckChild0Type, MVT::f64,
/*84950*/       OPC_MoveParent,
/*84951*/       OPC_CheckPredicate, 101, // Predicate_movl
/*84953*/       OPC_CheckType, MVT::v2f64,
/*84955*/       OPC_Scope, 11, /*->84968*/ // 2 children in Scope
/*84957*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*84959*/         OPC_MorphNodeTo, TARGET_VAL(X86::VMOVSDrr), 0,
                      1/*#VTs*/, MVT::v2f64, 2/*#Ops*/, 0, 1, 
                  // Src: (vector_shuffle:v2f64 VR128:v2f64:$src1, (scalar_to_vector:v2f64 FR64:f64:$src2))<<P:Predicate_movl>> - Complexity = 7
                  // Dst: (VMOVSDrr:v2f64 VR128:v2f64:$src1, FR64:f64:$src2)
/*84968*/       /*Scope*/ 11, /*->84980*/
/*84969*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*84971*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOVSDrr), 0,
                      1/*#VTs*/, MVT::v2f64, 2/*#Ops*/, 0, 1, 
                  // Src: (vector_shuffle:v2f64 VR128:v2f64:$src1, (scalar_to_vector:v2f64 FR64:f64:$src2))<<P:Predicate_movl>> - Complexity = 7
                  // Dst: (MOVSDrr:v2f64 VR128:v2f64:$src1, FR64:f64:$src2)
/*84980*/       0, /*End of Scope*/
/*84981*/     0, /*End of Scope*/
/*84982*/   /*Scope*/ 84, /*->85067*/
/*84983*/     OPC_RecordNode, // #0 = $src3
/*84984*/     OPC_RecordChild0, // #1 = $src1
/*84985*/     OPC_MoveChild, 1,
/*84987*/     OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
/*84990*/     OPC_MoveParent,
/*84991*/     OPC_CheckPredicate, 93, // Predicate_pshufd
/*84993*/     OPC_SwitchType /*2 cases */, 34,  MVT::v4f32,// ->85030
/*84996*/       OPC_Scope, 15, /*->85013*/ // 2 children in Scope
/*84998*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*85000*/         OPC_EmitNodeXForm, 3, 0, // SHUFFLE_get_shuf_imm
/*85003*/         OPC_MorphNodeTo, TARGET_VAL(X86::SHUFPSrri), 0,
                      1/*#VTs*/, MVT::v4f32, 3/*#Ops*/, 1, 1, 2, 
                  // Src: (vector_shuffle:v4f32 VR128:v4f32:$src1, (undef:v4f32))<<P:Predicate_pshufd>><<X:SHUFFLE_get_shuf_imm>>:$src3 - Complexity = 7
                  // Dst: (SHUFPSrri:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src1, (SHUFFLE_get_shuf_imm:i8 VR128:v4f32:$src3))
/*85013*/       /*Scope*/ 15, /*->85029*/
/*85014*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*85016*/         OPC_EmitNodeXForm, 3, 0, // SHUFFLE_get_shuf_imm
/*85019*/         OPC_MorphNodeTo, TARGET_VAL(X86::VSHUFPSrri), 0,
                      1/*#VTs*/, MVT::v4f32, 3/*#Ops*/, 1, 1, 2, 
                  // Src: (vector_shuffle:v4f32 VR128:v4f32:$src1, (undef:v4f32))<<P:Predicate_pshufd>><<X:SHUFFLE_get_shuf_imm>>:$src3 - Complexity = 7
                  // Dst: (VSHUFPSrri:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src1, (SHUFFLE_get_shuf_imm:i8 VR128:v4f32:$src3))
/*85029*/       0, /*End of Scope*/
              /*SwitchType*/ 34,  MVT::v2f64,// ->85066
/*85032*/       OPC_Scope, 15, /*->85049*/ // 2 children in Scope
/*85034*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*85036*/         OPC_EmitNodeXForm, 3, 0, // SHUFFLE_get_shuf_imm
/*85039*/         OPC_MorphNodeTo, TARGET_VAL(X86::SHUFPDrri), 0,
                      1/*#VTs*/, MVT::v2f64, 3/*#Ops*/, 1, 1, 2, 
                  // Src: (vector_shuffle:v2f64 VR128:v2f64:$src1, (undef:v2f64))<<P:Predicate_pshufd>><<X:SHUFFLE_get_shuf_imm>>:$src3 - Complexity = 7
                  // Dst: (SHUFPDrri:v2f64 VR128:v2f64:$src1, VR128:v2f64:$src1, (SHUFFLE_get_shuf_imm:i8 VR128:v2f64:$src3))
/*85049*/       /*Scope*/ 15, /*->85065*/
/*85050*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*85052*/         OPC_EmitNodeXForm, 3, 0, // SHUFFLE_get_shuf_imm
/*85055*/         OPC_MorphNodeTo, TARGET_VAL(X86::VSHUFPDrri), 0,
                      1/*#VTs*/, MVT::v2f64, 3/*#Ops*/, 1, 1, 2, 
                  // Src: (vector_shuffle:v2f64 VR128:v2f64:$src1, (undef:v2f64))<<P:Predicate_pshufd>><<X:SHUFFLE_get_shuf_imm>>:$src3 - Complexity = 7
                  // Dst: (VSHUFPDrri:v2f64 VR128:v2f64:$src1, VR128:v2f64:$src1, (SHUFFLE_get_shuf_imm:i8 VR128:v2f64:$src3))
/*85065*/       0, /*End of Scope*/
              0, // EndSwitchType
/*85067*/   /*Scope*/ 33, /*->85101*/
/*85068*/     OPC_RecordChild0, // #0 = $src
/*85069*/     OPC_MoveChild, 1,
/*85071*/     OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
/*85074*/     OPC_MoveParent,
/*85075*/     OPC_CheckPredicate, 94, // Predicate_movddup
/*85077*/     OPC_CheckType, MVT::v2f64,
/*85079*/     OPC_CheckPatternPredicate, 16, // (Subtarget->hasSSE3())
/*85081*/     OPC_Scope, 8, /*->85091*/ // 2 children in Scope
/*85083*/       OPC_MorphNodeTo, TARGET_VAL(X86::MOVDDUPrr), 0,
                    1/*#VTs*/, MVT::v2f64, 1/*#Ops*/, 0, 
                // Src: (vector_shuffle:v2f64 VR128:v2f64:$src, (undef:v2f64))<<P:Predicate_movddup>> - Complexity = 7
                // Dst: (MOVDDUPrr:v2f64 VR128:v2f64:$src)
/*85091*/     /*Scope*/ 8, /*->85100*/
/*85092*/       OPC_MorphNodeTo, TARGET_VAL(X86::VMOVDDUPrr), 0,
                    1/*#VTs*/, MVT::v2f64, 1/*#Ops*/, 0, 
                // Src: (vector_shuffle:v2f64 VR128:v2f64:$src, (undef:v2f64))<<P:Predicate_movddup>> - Complexity = 7
                // Dst: (VMOVDDUPrr:v2f64 VR128:v2f64:$src)
/*85100*/     0, /*End of Scope*/
/*85101*/   /*Scope*/ 27|128,1/*155*/, /*->85258*/
/*85103*/     OPC_RecordNode, // #0 = $src3
/*85104*/     OPC_RecordChild0, // #1 = $src1
/*85105*/     OPC_RecordChild1, // #2 = $src2
/*85106*/     OPC_Scope, 110, /*->85218*/ // 2 children in Scope
/*85108*/       OPC_CheckPredicate, 97, // Predicate_shufp
/*85110*/       OPC_SwitchType /*4 cases */, 34,  MVT::v4f32,// ->85147
/*85113*/         OPC_Scope, 15, /*->85130*/ // 2 children in Scope
/*85115*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*85117*/           OPC_EmitNodeXForm, 3, 0, // SHUFFLE_get_shuf_imm
/*85120*/           OPC_MorphNodeTo, TARGET_VAL(X86::VSHUFPSrri), 0,
                        1/*#VTs*/, MVT::v4f32, 3/*#Ops*/, 1, 2, 3, 
                    // Src: (vector_shuffle:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src2)<<P:Predicate_shufp>><<X:SHUFFLE_get_shuf_imm>>:$src3 - Complexity = 4
                    // Dst: (VSHUFPSrri:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src2, (SHUFFLE_get_shuf_imm:i8 (vector_shuffle:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src2):$src3))
/*85130*/         /*Scope*/ 15, /*->85146*/
/*85131*/           OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*85133*/           OPC_EmitNodeXForm, 3, 0, // SHUFFLE_get_shuf_imm
/*85136*/           OPC_MorphNodeTo, TARGET_VAL(X86::SHUFPSrri), 0,
                        1/*#VTs*/, MVT::v4f32, 3/*#Ops*/, 1, 2, 3, 
                    // Src: (vector_shuffle:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src2)<<P:Predicate_shufp>><<X:SHUFFLE_get_shuf_imm>>:$src3 - Complexity = 4
                    // Dst: (SHUFPSrri:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src2, (SHUFFLE_get_shuf_imm:i8 (vector_shuffle:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src2):$src3))
/*85146*/         0, /*End of Scope*/
                /*SwitchType*/ 15,  MVT::v8f32,// ->85164
/*85149*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*85151*/         OPC_EmitNodeXForm, 3, 0, // SHUFFLE_get_shuf_imm
/*85154*/         OPC_MorphNodeTo, TARGET_VAL(X86::VSHUFPSYrri), 0,
                      1/*#VTs*/, MVT::v8f32, 3/*#Ops*/, 1, 2, 3, 
                  // Src: (vector_shuffle:v8f32 VR256:v8f32:$src1, VR256:v8f32:$src2)<<P:Predicate_shufp>><<X:SHUFFLE_get_shuf_imm>>:$src3 - Complexity = 4
                  // Dst: (VSHUFPSYrri:v8f32 VR256:v8f32:$src1, VR256:v8f32:$src2, (SHUFFLE_get_shuf_imm:i8 (vector_shuffle:v8f32 VR256:v8f32:$src1, VR256:v8f32:$src2):$src3))
                /*SwitchType*/ 34,  MVT::v2f64,// ->85200
/*85166*/         OPC_Scope, 15, /*->85183*/ // 2 children in Scope
/*85168*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*85170*/           OPC_EmitNodeXForm, 3, 0, // SHUFFLE_get_shuf_imm
/*85173*/           OPC_MorphNodeTo, TARGET_VAL(X86::VSHUFPDrri), 0,
                        1/*#VTs*/, MVT::v2f64, 3/*#Ops*/, 1, 2, 3, 
                    // Src: (vector_shuffle:v2f64 VR128:v2f64:$src1, VR128:v2f64:$src2)<<P:Predicate_shufp>><<X:SHUFFLE_get_shuf_imm>>:$src3 - Complexity = 4
                    // Dst: (VSHUFPDrri:v2f64 VR128:v2f64:$src1, VR128:v2f64:$src2, (SHUFFLE_get_shuf_imm:i8 (vector_shuffle:v2f64 VR128:v2f64:$src1, VR128:v2f64:$src2):$src3))
/*85183*/         /*Scope*/ 15, /*->85199*/
/*85184*/           OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*85186*/           OPC_EmitNodeXForm, 3, 0, // SHUFFLE_get_shuf_imm
/*85189*/           OPC_MorphNodeTo, TARGET_VAL(X86::SHUFPDrri), 0,
                        1/*#VTs*/, MVT::v2f64, 3/*#Ops*/, 1, 2, 3, 
                    // Src: (vector_shuffle:v2f64 VR128:v2f64:$src1, VR128:v2f64:$src2)<<P:Predicate_shufp>><<X:SHUFFLE_get_shuf_imm>>:$src3 - Complexity = 4
                    // Dst: (SHUFPDrri:v2f64 VR128:v2f64:$src1, VR128:v2f64:$src2, (SHUFFLE_get_shuf_imm:i8 (vector_shuffle:v2f64 VR128:v2f64:$src1, VR128:v2f64:$src2):$src3))
/*85199*/         0, /*End of Scope*/
                /*SwitchType*/ 15,  MVT::v4f64,// ->85217
/*85202*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*85204*/         OPC_EmitNodeXForm, 3, 0, // SHUFFLE_get_shuf_imm
/*85207*/         OPC_MorphNodeTo, TARGET_VAL(X86::VSHUFPDYrri), 0,
                      1/*#VTs*/, MVT::v4f64, 3/*#Ops*/, 1, 2, 3, 
                  // Src: (vector_shuffle:v4f64 VR256:v4f64:$src1, VR256:v4f64:$src2)<<P:Predicate_shufp>><<X:SHUFFLE_get_shuf_imm>>:$src3 - Complexity = 4
                  // Dst: (VSHUFPDYrri:v4f64 VR256:v4f64:$src1, VR256:v4f64:$src2, (SHUFFLE_get_shuf_imm:i8 (vector_shuffle:v4f64 VR256:v4f64:$src1, VR256:v4f64:$src2):$src3))
                0, // EndSwitchType
/*85218*/     /*Scope*/ 38, /*->85257*/
/*85219*/       OPC_CheckPredicate, 12, // Predicate_movlp
/*85221*/       OPC_CheckType, MVT::v4f32,
/*85223*/       OPC_Scope, 15, /*->85240*/ // 2 children in Scope
/*85225*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*85227*/         OPC_EmitNodeXForm, 3, 0, // SHUFFLE_get_shuf_imm
/*85230*/         OPC_MorphNodeTo, TARGET_VAL(X86::SHUFPSrri), 0,
                      1/*#VTs*/, MVT::v4f32, 3/*#Ops*/, 2, 1, 3, 
                  // Src: (vector_shuffle:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src2)<<P:Predicate_movlp>>:$src3 - Complexity = 4
                  // Dst: (SHUFPSrri:v4f32 VR128:v4f32:$src2, VR128:v4f32:$src1, (SHUFFLE_get_shuf_imm:i8 VR128:v4f32:$src3))
/*85240*/       /*Scope*/ 15, /*->85256*/
/*85241*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*85243*/         OPC_EmitNodeXForm, 3, 0, // SHUFFLE_get_shuf_imm
/*85246*/         OPC_MorphNodeTo, TARGET_VAL(X86::VSHUFPSrri), 0,
                      1/*#VTs*/, MVT::v4f32, 3/*#Ops*/, 2, 1, 3, 
                  // Src: (vector_shuffle:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src2)<<P:Predicate_movlp>>:$src3 - Complexity = 4
                  // Dst: (VSHUFPSrri:v4f32 VR128:v4f32:$src2, VR128:v4f32:$src1, (SHUFFLE_get_shuf_imm:i8 VR128:v4f32:$src3))
/*85256*/       0, /*End of Scope*/
/*85257*/     0, /*End of Scope*/
/*85258*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 121,  TARGET_VAL(X86ISD::VZEXT_LOAD),// ->85383
/*85262*/   OPC_RecordMemRef,
/*85263*/   OPC_RecordNode,   // #0 = 'X86vzload' chained node
/*85264*/   OPC_RecordChild1, // #1 = $src
/*85265*/   OPC_SwitchType /*2 cases */, 40,  MVT::v2i64,// ->85308
/*85268*/     OPC_Scope, 18, /*->85288*/ // 2 children in Scope
/*85270*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*85272*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*85275*/       OPC_EmitMergeInputChains1_0,
/*85276*/       OPC_MorphNodeTo, TARGET_VAL(X86::MOVZQI2PQIrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (X86vzload:v2i64 addr:iPTR:$src) - Complexity = 41
                // Dst: (MOVZQI2PQIrm:v2i64 addr:iPTR:$src)
/*85288*/     /*Scope*/ 18, /*->85307*/
/*85289*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*85291*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*85294*/       OPC_EmitMergeInputChains1_0,
/*85295*/       OPC_MorphNodeTo, TARGET_VAL(X86::VMOVZQI2PQIrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (X86vzload:v2i64 addr:iPTR:$src) - Complexity = 41
                // Dst: (VMOVZQI2PQIrm:v2i64 addr:iPTR:$src)
/*85307*/     0, /*End of Scope*/
            /*SwitchType*/ 72,  MVT::v2f64,// ->85382
/*85310*/     OPC_Scope, 34, /*->85346*/ // 2 children in Scope
/*85312*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*85314*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*85317*/       OPC_EmitMergeInputChains1_0,
/*85318*/       OPC_EmitInteger, MVT::i64, 0, 
/*85321*/       OPC_EmitNode, TARGET_VAL(X86::MOVSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::f64, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #8 
/*85333*/       OPC_EmitInteger, MVT::i32, X86::sub_sd,
/*85336*/       OPC_MorphNodeTo, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain,
                    1/*#VTs*/, MVT::v2f64, 3/*#Ops*/, 7, 8, 9, 
                // Src: (X86vzload:v2f64 addr:iPTR:$src) - Complexity = 41
                // Dst: (SUBREG_TO_REG:v2f64 0:i64, (MOVSDrm:f64 addr:iPTR:$src), sub_sd:i32)
/*85346*/     /*Scope*/ 34, /*->85381*/
/*85347*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*85349*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*85352*/       OPC_EmitMergeInputChains1_0,
/*85353*/       OPC_EmitInteger, MVT::i64, 0, 
/*85356*/       OPC_EmitNode, TARGET_VAL(X86::VMOVSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::f64, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #8 
/*85368*/       OPC_EmitInteger, MVT::i32, X86::sub_sd,
/*85371*/       OPC_MorphNodeTo, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain,
                    1/*#VTs*/, MVT::v2f64, 3/*#Ops*/, 7, 8, 9, 
                // Src: (X86vzload:v2f64 addr:iPTR:$src) - Complexity = 41
                // Dst: (SUBREG_TO_REG:v2f64 0:i64, (VMOVSDrm:f64 addr:iPTR:$src), sub_sd:i32)
/*85381*/     0, /*End of Scope*/
            0, // EndSwitchType
          /*SwitchOpcode*/ 119,  TARGET_VAL(ISD::PREFETCH),// ->85505
/*85386*/   OPC_RecordMemRef,
/*85387*/   OPC_RecordNode,   // #0 = 'prefetch' chained node
/*85388*/   OPC_RecordChild1, // #1 = $src
/*85389*/   OPC_MoveChild, 2,
/*85391*/   OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*85394*/   OPC_CheckType, MVT::i32,
/*85396*/   OPC_MoveParent,
/*85397*/   OPC_MoveChild, 3,
/*85399*/   OPC_Scope, 25, /*->85426*/ // 4 children in Scope
/*85401*/     OPC_CheckInteger, 3, 
/*85403*/     OPC_MoveParent,
/*85404*/     OPC_MoveChild, 4,
/*85406*/     OPC_CheckInteger, 1, 
/*85408*/     OPC_MoveParent,
/*85409*/     OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*85411*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*85414*/     OPC_EmitMergeInputChains1_0,
/*85415*/     OPC_MorphNodeTo, TARGET_VAL(X86::PREFETCHT0), 0|OPFL_Chain|OPFL_MemRefs,
                  0/*#VTs*/, 5/*#Ops*/, 2, 3, 4, 5, 6, 
              // Src: (prefetch addr:iPTR:$src, (imm:i32), 3:i32, 1:i32) - Complexity = 34
              // Dst: (PREFETCHT0 addr:iPTR:$src)
/*85426*/   /*Scope*/ 25, /*->85452*/
/*85427*/     OPC_CheckInteger, 2, 
/*85429*/     OPC_MoveParent,
/*85430*/     OPC_MoveChild, 4,
/*85432*/     OPC_CheckInteger, 1, 
/*85434*/     OPC_MoveParent,
/*85435*/     OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*85437*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*85440*/     OPC_EmitMergeInputChains1_0,
/*85441*/     OPC_MorphNodeTo, TARGET_VAL(X86::PREFETCHT1), 0|OPFL_Chain|OPFL_MemRefs,
                  0/*#VTs*/, 5/*#Ops*/, 2, 3, 4, 5, 6, 
              // Src: (prefetch addr:iPTR:$src, (imm:i32), 2:i32, 1:i32) - Complexity = 34
              // Dst: (PREFETCHT1 addr:iPTR:$src)
/*85452*/   /*Scope*/ 25, /*->85478*/
/*85453*/     OPC_CheckInteger, 1, 
/*85455*/     OPC_MoveParent,
/*85456*/     OPC_MoveChild, 4,
/*85458*/     OPC_CheckInteger, 1, 
/*85460*/     OPC_MoveParent,
/*85461*/     OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*85463*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*85466*/     OPC_EmitMergeInputChains1_0,
/*85467*/     OPC_MorphNodeTo, TARGET_VAL(X86::PREFETCHT2), 0|OPFL_Chain|OPFL_MemRefs,
                  0/*#VTs*/, 5/*#Ops*/, 2, 3, 4, 5, 6, 
              // Src: (prefetch addr:iPTR:$src, (imm:i32), 1:i32, 1:i32) - Complexity = 34
              // Dst: (PREFETCHT2 addr:iPTR:$src)
/*85478*/   /*Scope*/ 25, /*->85504*/
/*85479*/     OPC_CheckInteger, 0, 
/*85481*/     OPC_MoveParent,
/*85482*/     OPC_MoveChild, 4,
/*85484*/     OPC_CheckInteger, 1, 
/*85486*/     OPC_MoveParent,
/*85487*/     OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*85489*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*85492*/     OPC_EmitMergeInputChains1_0,
/*85493*/     OPC_MorphNodeTo, TARGET_VAL(X86::PREFETCHNTA), 0|OPFL_Chain|OPFL_MemRefs,
                  0/*#VTs*/, 5/*#Ops*/, 2, 3, 4, 5, 6, 
              // Src: (prefetch addr:iPTR:$src, (imm:i32), 0:i32, 1:i32) - Complexity = 34
              // Dst: (PREFETCHNTA addr:iPTR:$src)
/*85504*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 21|128,3/*405*/,  TARGET_VAL(X86ISD::SHUFPS),// ->85914
/*85509*/   OPC_RecordChild0, // #0 = $src1
/*85510*/   OPC_Scope, 122, /*->85634*/ // 4 children in Scope
/*85512*/     OPC_MoveChild, 1,
/*85514*/     OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*85517*/     OPC_MoveChild, 0,
/*85519*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*85522*/     OPC_RecordMemRef,
/*85523*/     OPC_RecordNode, // #1 = 'ld' chained node
/*85524*/     OPC_CheckFoldableChainNode,
/*85525*/     OPC_RecordChild1, // #2 = $src2
/*85526*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*85528*/     OPC_CheckPredicate, 3, // Predicate_load
/*85530*/     OPC_CheckPredicate, 23, // Predicate_memop
/*85532*/     OPC_SwitchType /*2 cases */, 61,  MVT::v2i64,// ->85596
/*85535*/       OPC_MoveParent,
/*85536*/       OPC_MoveParent,
/*85537*/       OPC_RecordChild2, // #3 = $imm
/*85538*/       OPC_MoveChild, 2,
/*85540*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*85543*/       OPC_CheckType, MVT::i8,
/*85545*/       OPC_MoveParent,
/*85546*/       OPC_CheckType, MVT::v4i32,
/*85548*/       OPC_Scope, 22, /*->85572*/ // 2 children in Scope
/*85550*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*85552*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*85555*/         OPC_EmitMergeInputChains1_1,
/*85556*/         OPC_EmitConvertToTarget, 3,
/*85558*/         OPC_MorphNodeTo, TARGET_VAL(X86::SHUFPSrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                  // Src: (X86Shufps:v4i32 VR128:v4i32:$src1, (bitconvert:v4i32 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>), (imm:i8):$imm) - Complexity = 31
                  // Dst: (SHUFPSrmi:v4i32 VR128:v4i32:$src1, addr:iPTR:$src2, (imm:i8):$imm)
/*85572*/       /*Scope*/ 22, /*->85595*/
/*85573*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*85575*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*85578*/         OPC_EmitMergeInputChains1_1,
/*85579*/         OPC_EmitConvertToTarget, 3,
/*85581*/         OPC_MorphNodeTo, TARGET_VAL(X86::VSHUFPSrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                  // Src: (X86Shufps:v4i32 VR128:v4i32:$src1, (bitconvert:v4i32 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>), (imm:i8):$imm) - Complexity = 31
                  // Dst: (VSHUFPSrmi:v4i32 VR128:v4i32:$src1, addr:iPTR:$src2, (imm:i8):$imm)
/*85595*/       0, /*End of Scope*/
              /*SwitchType*/ 35,  MVT::v4i64,// ->85633
/*85598*/       OPC_MoveParent,
/*85599*/       OPC_MoveParent,
/*85600*/       OPC_RecordChild2, // #3 = $imm
/*85601*/       OPC_MoveChild, 2,
/*85603*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*85606*/       OPC_CheckType, MVT::i8,
/*85608*/       OPC_MoveParent,
/*85609*/       OPC_CheckType, MVT::v8i32,
/*85611*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*85613*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*85616*/       OPC_EmitMergeInputChains1_1,
/*85617*/       OPC_EmitConvertToTarget, 3,
/*85619*/       OPC_MorphNodeTo, TARGET_VAL(X86::VSHUFPSYrmi), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v8i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                // Src: (X86Shufps:v8i32 VR256:v8i32:$src1, (bitconvert:v8i32 (ld:v4i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>), (imm:i8):$imm) - Complexity = 31
                // Dst: (VSHUFPSYrmi:v8i32 VR256:v8i32:$src1, addr:iPTR:$src2, (imm:i8):$imm)
              0, // EndSwitchType
/*85634*/   /*Scope*/ 62, /*->85697*/
/*85635*/     OPC_RecordChild1, // #1 = $src2
/*85636*/     OPC_RecordChild2, // #2 = $imm
/*85637*/     OPC_MoveChild, 2,
/*85639*/     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*85642*/     OPC_CheckType, MVT::i8,
/*85644*/     OPC_MoveParent,
/*85645*/     OPC_SwitchType /*2 cases */, 32,  MVT::v4i32,// ->85680
/*85648*/       OPC_Scope, 14, /*->85664*/ // 2 children in Scope
/*85650*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*85652*/         OPC_EmitConvertToTarget, 2,
/*85654*/         OPC_MorphNodeTo, TARGET_VAL(X86::SHUFPSrri), 0,
                      1/*#VTs*/, MVT::v4i32, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (X86Shufps:v4i32 VR128:v4i32:$src1, VR128:v4i32:$src2, (imm:i8):$imm) - Complexity = 6
                  // Dst: (SHUFPSrri:v4i32 VR128:v4i32:$src1, VR128:v4i32:$src2, (imm:i8):$imm)
/*85664*/       /*Scope*/ 14, /*->85679*/
/*85665*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*85667*/         OPC_EmitConvertToTarget, 2,
/*85669*/         OPC_MorphNodeTo, TARGET_VAL(X86::VSHUFPSrri), 0,
                      1/*#VTs*/, MVT::v4i32, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (X86Shufps:v4i32 VR128:v4i32:$src1, VR128:v4i32:$src2, (imm:i8):$imm) - Complexity = 6
                  // Dst: (VSHUFPSrri:v4i32 VR128:v4i32:$src1, VR128:v4i32:$src2, (imm:i8):$imm)
/*85679*/       0, /*End of Scope*/
              /*SwitchType*/ 14,  MVT::v8i32,// ->85696
/*85682*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*85684*/       OPC_EmitConvertToTarget, 2,
/*85686*/       OPC_MorphNodeTo, TARGET_VAL(X86::VSHUFPSYrri), 0,
                    1/*#VTs*/, MVT::v8i32, 3/*#Ops*/, 0, 1, 3, 
                // Src: (X86Shufps:v8i32 VR256:v8i32:$src1, VR256:v8i32:$src2, (imm:i8):$imm) - Complexity = 6
                // Dst: (VSHUFPSYrri:v8i32 VR256:v8i32:$src1, VR256:v8i32:$src2, (imm:i8):$imm)
              0, // EndSwitchType
/*85697*/   /*Scope*/ 23|128,1/*151*/, /*->85850*/
/*85699*/     OPC_MoveChild, 1,
/*85701*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*85704*/     OPC_RecordMemRef,
/*85705*/     OPC_RecordNode, // #1 = 'ld' chained node
/*85706*/     OPC_CheckFoldableChainNode,
/*85707*/     OPC_RecordChild1, // #2 = $src2
/*85708*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*85710*/     OPC_CheckPredicate, 3, // Predicate_load
/*85712*/     OPC_CheckPredicate, 23, // Predicate_memop
/*85714*/     OPC_MoveParent,
/*85715*/     OPC_RecordChild2, // #3 = $imm
/*85716*/     OPC_MoveChild, 2,
/*85718*/     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*85721*/     OPC_CheckType, MVT::i8,
/*85723*/     OPC_MoveParent,
/*85724*/     OPC_SwitchType /*3 cases */, 48,  MVT::v4f32,// ->85775
/*85727*/       OPC_Scope, 22, /*->85751*/ // 2 children in Scope
/*85729*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*85731*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*85734*/         OPC_EmitMergeInputChains1_1,
/*85735*/         OPC_EmitConvertToTarget, 3,
/*85737*/         OPC_MorphNodeTo, TARGET_VAL(X86::SHUFPSrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                  // Src: (X86Shufps:v4f32 VR128:v4f32:$src1, (ld:v4f32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, (imm:i8):$imm) - Complexity = 28
                  // Dst: (SHUFPSrmi:v4f32 VR128:v4f32:$src1, addr:iPTR:$src2, (imm:i8):$imm)
/*85751*/       /*Scope*/ 22, /*->85774*/
/*85752*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*85754*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*85757*/         OPC_EmitMergeInputChains1_1,
/*85758*/         OPC_EmitConvertToTarget, 3,
/*85760*/         OPC_MorphNodeTo, TARGET_VAL(X86::VSHUFPSrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                  // Src: (X86Shufps:v4f32 VR128:v4f32:$src1, (ld:v4f32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, (imm:i8):$imm) - Complexity = 28
                  // Dst: (VSHUFPSrmi:v4f32 VR128:v4f32:$src1, addr:iPTR:$src2, (imm:i8):$imm)
/*85774*/       0, /*End of Scope*/
              /*SwitchType*/ 48,  MVT::v2f64,// ->85825
/*85777*/       OPC_Scope, 22, /*->85801*/ // 2 children in Scope
/*85779*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*85781*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*85784*/         OPC_EmitMergeInputChains1_1,
/*85785*/         OPC_EmitConvertToTarget, 3,
/*85787*/         OPC_MorphNodeTo, TARGET_VAL(X86::SHUFPDrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v2f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                  // Src: (X86Shufps:v2f64 VR128:v2f64:$src1, (ld:v2f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, (imm:i8):$imm) - Complexity = 28
                  // Dst: (SHUFPDrmi:v2f64 VR128:v2f64:$src1, addr:iPTR:$src2, (imm:i8):$imm)
/*85801*/       /*Scope*/ 22, /*->85824*/
/*85802*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*85804*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*85807*/         OPC_EmitMergeInputChains1_1,
/*85808*/         OPC_EmitConvertToTarget, 3,
/*85810*/         OPC_MorphNodeTo, TARGET_VAL(X86::VSHUFPDrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v2f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                  // Src: (X86Shufps:v2f64 VR128:v2f64:$src1, (ld:v2f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, (imm:i8):$imm) - Complexity = 28
                  // Dst: (VSHUFPDrmi:v2f64 VR128:v2f64:$src1, addr:iPTR:$src2, (imm:i8):$imm)
/*85824*/       0, /*End of Scope*/
              /*SwitchType*/ 22,  MVT::v8f32,// ->85849
/*85827*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*85829*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*85832*/       OPC_EmitMergeInputChains1_1,
/*85833*/       OPC_EmitConvertToTarget, 3,
/*85835*/       OPC_MorphNodeTo, TARGET_VAL(X86::VSHUFPSYrmi), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v8f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                // Src: (X86Shufps:v8f32 VR256:v8f32:$src1, (ld:v8f32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, (imm:i8):$imm) - Complexity = 28
                // Dst: (VSHUFPSYrmi:v8f32 VR256:v8f32:$src1, addr:iPTR:$src2, (imm:i8):$imm)
              0, // EndSwitchType
/*85850*/   /*Scope*/ 62, /*->85913*/
/*85851*/     OPC_RecordChild1, // #1 = $src2
/*85852*/     OPC_RecordChild2, // #2 = $imm
/*85853*/     OPC_MoveChild, 2,
/*85855*/     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*85858*/     OPC_CheckType, MVT::i8,
/*85860*/     OPC_MoveParent,
/*85861*/     OPC_SwitchType /*2 cases */, 32,  MVT::v4f32,// ->85896
/*85864*/       OPC_Scope, 14, /*->85880*/ // 2 children in Scope
/*85866*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*85868*/         OPC_EmitConvertToTarget, 2,
/*85870*/         OPC_MorphNodeTo, TARGET_VAL(X86::SHUFPSrri), 0,
                      1/*#VTs*/, MVT::v4f32, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (X86Shufps:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src2, (imm:i8):$imm) - Complexity = 6
                  // Dst: (SHUFPSrri:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src2, (imm:i8):$imm)
/*85880*/       /*Scope*/ 14, /*->85895*/
/*85881*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*85883*/         OPC_EmitConvertToTarget, 2,
/*85885*/         OPC_MorphNodeTo, TARGET_VAL(X86::VSHUFPSrri), 0,
                      1/*#VTs*/, MVT::v4f32, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (X86Shufps:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src2, (imm:i8):$imm) - Complexity = 6
                  // Dst: (VSHUFPSrri:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src2, (imm:i8):$imm)
/*85895*/       0, /*End of Scope*/
              /*SwitchType*/ 14,  MVT::v8f32,// ->85912
/*85898*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*85900*/       OPC_EmitConvertToTarget, 2,
/*85902*/       OPC_MorphNodeTo, TARGET_VAL(X86::VSHUFPSYrri), 0,
                    1/*#VTs*/, MVT::v8f32, 3/*#Ops*/, 0, 1, 3, 
                // Src: (X86Shufps:v8f32 VR256:v8f32:$src1, VR256:v8f32:$src2, (imm:i8):$imm) - Complexity = 6
                // Dst: (VSHUFPSYrri:v8f32 VR256:v8f32:$src1, VR256:v8f32:$src2, (imm:i8):$imm)
              0, // EndSwitchType
/*85913*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 97|128,1/*225*/,  TARGET_VAL(X86ISD::PSHUFD),// ->86143
/*85918*/   OPC_Scope, 16|128,1/*144*/, /*->86065*/ // 2 children in Scope
/*85921*/     OPC_MoveChild, 0,
/*85923*/     OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*85926*/     OPC_MoveChild, 0,
/*85928*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*85931*/     OPC_RecordMemRef,
/*85932*/     OPC_RecordNode, // #0 = 'ld' chained node
/*85933*/     OPC_CheckFoldableChainNode,
/*85934*/     OPC_RecordChild1, // #1 = $src1
/*85935*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*85937*/     OPC_CheckPredicate, 3, // Predicate_load
/*85939*/     OPC_CheckPredicate, 23, // Predicate_memop
/*85941*/     OPC_SwitchType /*2 cases */, 59,  MVT::v2i64,// ->86003
/*85944*/       OPC_MoveParent,
/*85945*/       OPC_MoveParent,
/*85946*/       OPC_RecordChild1, // #2 = $imm
/*85947*/       OPC_MoveChild, 1,
/*85949*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*85952*/       OPC_CheckType, MVT::i8,
/*85954*/       OPC_MoveParent,
/*85955*/       OPC_CheckType, MVT::v4i32,
/*85957*/       OPC_Scope, 21, /*->85980*/ // 2 children in Scope
/*85959*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*85961*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #3 #4 #5 #6 #7
/*85964*/         OPC_EmitMergeInputChains1_0,
/*85965*/         OPC_EmitConvertToTarget, 2,
/*85967*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPSHUFDmi), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                  // Src: (X86PShufd:v4i32 (bitconvert:v4i32 (ld:v2i64 addr:iPTR:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>), (imm:i8):$imm) - Complexity = 31
                  // Dst: (VPSHUFDmi:v4i32 addr:iPTR:$src1, (imm:i8):$imm)
/*85980*/       /*Scope*/ 21, /*->86002*/
/*85981*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*85983*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #3 #4 #5 #6 #7
/*85986*/         OPC_EmitMergeInputChains1_0,
/*85987*/         OPC_EmitConvertToTarget, 2,
/*85989*/         OPC_MorphNodeTo, TARGET_VAL(X86::PSHUFDmi), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                  // Src: (X86PShufd:v4i32 (bitconvert:v4i32 (ld:v2i64 addr:iPTR:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>), (imm:i8):$imm) - Complexity = 31
                  // Dst: (PSHUFDmi:v4i32 addr:iPTR:$src1, (imm:i8):$imm)
/*86002*/       0, /*End of Scope*/
              /*SwitchType*/ 59,  MVT::v4f32,// ->86064
/*86005*/       OPC_MoveParent,
/*86006*/       OPC_MoveParent,
/*86007*/       OPC_RecordChild1, // #2 = $imm
/*86008*/       OPC_MoveChild, 1,
/*86010*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*86013*/       OPC_CheckType, MVT::i8,
/*86015*/       OPC_MoveParent,
/*86016*/       OPC_CheckType, MVT::v4i32,
/*86018*/       OPC_Scope, 21, /*->86041*/ // 2 children in Scope
/*86020*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*86022*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #3 #4 #5 #6 #7
/*86025*/         OPC_EmitMergeInputChains1_0,
/*86026*/         OPC_EmitConvertToTarget, 2,
/*86028*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPSHUFDmi), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                  // Src: (X86PShufd:v4i32 (bitconvert:v4i32 (ld:v4f32 addr:iPTR:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>), (imm:i8):$imm) - Complexity = 31
                  // Dst: (VPSHUFDmi:v4i32 addr:iPTR:$src1, (imm:i8):$imm)
/*86041*/       /*Scope*/ 21, /*->86063*/
/*86042*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*86044*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #3 #4 #5 #6 #7
/*86047*/         OPC_EmitMergeInputChains1_0,
/*86048*/         OPC_EmitConvertToTarget, 2,
/*86050*/         OPC_MorphNodeTo, TARGET_VAL(X86::PSHUFDmi), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                  // Src: (X86PShufd:v4i32 (bitconvert:v4i32 (ld:v4f32 addr:iPTR:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>), (imm:i8):$imm) - Complexity = 31
                  // Dst: (PSHUFDmi:v4i32 addr:iPTR:$src1, (imm:i8):$imm)
/*86063*/       0, /*End of Scope*/
              0, // EndSwitchType
/*86065*/   /*Scope*/ 76, /*->86142*/
/*86066*/     OPC_RecordChild0, // #0 = $src1
/*86067*/     OPC_RecordChild1, // #1 = $imm
/*86068*/     OPC_MoveChild, 1,
/*86070*/     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*86073*/     OPC_CheckType, MVT::i8,
/*86075*/     OPC_MoveParent,
/*86076*/     OPC_SwitchType /*2 cases */, 30,  MVT::v4i32,// ->86109
/*86079*/       OPC_Scope, 13, /*->86094*/ // 2 children in Scope
/*86081*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*86083*/         OPC_EmitConvertToTarget, 1,
/*86085*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPSHUFDri), 0,
                      1/*#VTs*/, MVT::v4i32, 2/*#Ops*/, 0, 2, 
                  // Src: (X86PShufd:v4i32 VR128:v4i32:$src1, (imm:i8):$imm) - Complexity = 6
                  // Dst: (VPSHUFDri:v4i32 VR128:v4i32:$src1, (imm:i8):$imm)
/*86094*/       /*Scope*/ 13, /*->86108*/
/*86095*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*86097*/         OPC_EmitConvertToTarget, 1,
/*86099*/         OPC_MorphNodeTo, TARGET_VAL(X86::PSHUFDri), 0,
                      1/*#VTs*/, MVT::v4i32, 2/*#Ops*/, 0, 2, 
                  // Src: (X86PShufd:v4i32 VR128:v4i32:$src1, (imm:i8):$imm) - Complexity = 6
                  // Dst: (PSHUFDri:v4i32 VR128:v4i32:$src1, (imm:i8):$imm)
/*86108*/       0, /*End of Scope*/
              /*SwitchType*/ 30,  MVT::v4f32,// ->86141
/*86111*/       OPC_Scope, 13, /*->86126*/ // 2 children in Scope
/*86113*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*86115*/         OPC_EmitConvertToTarget, 1,
/*86117*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPSHUFDri), 0,
                      1/*#VTs*/, MVT::v4f32, 2/*#Ops*/, 0, 2, 
                  // Src: (X86PShufd:v4f32 VR128:v4f32:$src1, (imm:i8):$imm) - Complexity = 6
                  // Dst: (VPSHUFDri:v4f32 VR128:v4f32:$src1, (imm:i8):$imm)
/*86126*/       /*Scope*/ 13, /*->86140*/
/*86127*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*86129*/         OPC_EmitConvertToTarget, 1,
/*86131*/         OPC_MorphNodeTo, TARGET_VAL(X86::PSHUFDri), 0,
                      1/*#VTs*/, MVT::v4f32, 2/*#Ops*/, 0, 2, 
                  // Src: (X86PShufd:v4f32 VR128:v4f32:$src1, (imm:i8):$imm) - Complexity = 6
                  // Dst: (PSHUFDri:v4f32 VR128:v4f32:$src1, (imm:i8):$imm)
/*86140*/       0, /*End of Scope*/
              0, // EndSwitchType
/*86142*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 127,  TARGET_VAL(X86ISD::PSHUFHW),// ->86273
/*86146*/   OPC_Scope, 81, /*->86229*/ // 2 children in Scope
/*86148*/     OPC_MoveChild, 0,
/*86150*/     OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*86153*/     OPC_MoveChild, 0,
/*86155*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*86158*/     OPC_RecordMemRef,
/*86159*/     OPC_RecordNode, // #0 = 'ld' chained node
/*86160*/     OPC_CheckFoldableChainNode,
/*86161*/     OPC_RecordChild1, // #1 = $src
/*86162*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*86164*/     OPC_CheckPredicate, 3, // Predicate_load
/*86166*/     OPC_CheckPredicate, 23, // Predicate_memop
/*86168*/     OPC_CheckType, MVT::v2i64,
/*86170*/     OPC_MoveParent,
/*86171*/     OPC_MoveParent,
/*86172*/     OPC_RecordChild1, // #2 = $imm
/*86173*/     OPC_MoveChild, 1,
/*86175*/     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*86178*/     OPC_CheckType, MVT::i8,
/*86180*/     OPC_MoveParent,
/*86181*/     OPC_CheckType, MVT::v8i16,
/*86183*/     OPC_Scope, 21, /*->86206*/ // 2 children in Scope
/*86185*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*86187*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #3 #4 #5 #6 #7
/*86190*/       OPC_EmitMergeInputChains1_0,
/*86191*/       OPC_EmitConvertToTarget, 2,
/*86193*/       OPC_MorphNodeTo, TARGET_VAL(X86::VPSHUFHWmi), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v8i16, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                // Src: (X86PShufhw:v8i16 (bitconvert:v8i16 (ld:v2i64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>), (imm:i8):$imm) - Complexity = 31
                // Dst: (VPSHUFHWmi:v8i16 addr:iPTR:$src, (imm:i8):$imm)
/*86206*/     /*Scope*/ 21, /*->86228*/
/*86207*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*86209*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #3 #4 #5 #6 #7
/*86212*/       OPC_EmitMergeInputChains1_0,
/*86213*/       OPC_EmitConvertToTarget, 2,
/*86215*/       OPC_MorphNodeTo, TARGET_VAL(X86::PSHUFHWmi), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v8i16, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                // Src: (X86PShufhw:v8i16 (bitconvert:v8i16 (ld:v2i64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>), (imm:i8):$imm) - Complexity = 31
                // Dst: (PSHUFHWmi:v8i16 addr:iPTR:$src, (imm:i8):$imm)
/*86228*/     0, /*End of Scope*/
/*86229*/   /*Scope*/ 42, /*->86272*/
/*86230*/     OPC_RecordChild0, // #0 = $src
/*86231*/     OPC_RecordChild1, // #1 = $imm
/*86232*/     OPC_MoveChild, 1,
/*86234*/     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*86237*/     OPC_CheckType, MVT::i8,
/*86239*/     OPC_MoveParent,
/*86240*/     OPC_CheckType, MVT::v8i16,
/*86242*/     OPC_Scope, 13, /*->86257*/ // 2 children in Scope
/*86244*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*86246*/       OPC_EmitConvertToTarget, 1,
/*86248*/       OPC_MorphNodeTo, TARGET_VAL(X86::VPSHUFHWri), 0,
                    1/*#VTs*/, MVT::v8i16, 2/*#Ops*/, 0, 2, 
                // Src: (X86PShufhw:v8i16 VR128:v8i16:$src, (imm:i8):$imm) - Complexity = 6
                // Dst: (VPSHUFHWri:v8i16 VR128:v8i16:$src, (imm:i8):$imm)
/*86257*/     /*Scope*/ 13, /*->86271*/
/*86258*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*86260*/       OPC_EmitConvertToTarget, 1,
/*86262*/       OPC_MorphNodeTo, TARGET_VAL(X86::PSHUFHWri), 0,
                    1/*#VTs*/, MVT::v8i16, 2/*#Ops*/, 0, 2, 
                // Src: (X86PShufhw:v8i16 VR128:v8i16:$src, (imm:i8):$imm) - Complexity = 6
                // Dst: (PSHUFHWri:v8i16 VR128:v8i16:$src, (imm:i8):$imm)
/*86271*/     0, /*End of Scope*/
/*86272*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 127,  TARGET_VAL(X86ISD::PSHUFLW),// ->86403
/*86276*/   OPC_Scope, 81, /*->86359*/ // 2 children in Scope
/*86278*/     OPC_MoveChild, 0,
/*86280*/     OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*86283*/     OPC_MoveChild, 0,
/*86285*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*86288*/     OPC_RecordMemRef,
/*86289*/     OPC_RecordNode, // #0 = 'ld' chained node
/*86290*/     OPC_CheckFoldableChainNode,
/*86291*/     OPC_RecordChild1, // #1 = $src
/*86292*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*86294*/     OPC_CheckPredicate, 3, // Predicate_load
/*86296*/     OPC_CheckPredicate, 23, // Predicate_memop
/*86298*/     OPC_CheckType, MVT::v2i64,
/*86300*/     OPC_MoveParent,
/*86301*/     OPC_MoveParent,
/*86302*/     OPC_RecordChild1, // #2 = $imm
/*86303*/     OPC_MoveChild, 1,
/*86305*/     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*86308*/     OPC_CheckType, MVT::i8,
/*86310*/     OPC_MoveParent,
/*86311*/     OPC_CheckType, MVT::v8i16,
/*86313*/     OPC_Scope, 21, /*->86336*/ // 2 children in Scope
/*86315*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*86317*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #3 #4 #5 #6 #7
/*86320*/       OPC_EmitMergeInputChains1_0,
/*86321*/       OPC_EmitConvertToTarget, 2,
/*86323*/       OPC_MorphNodeTo, TARGET_VAL(X86::VPSHUFLWmi), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v8i16, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                // Src: (X86PShuflw:v8i16 (bitconvert:v8i16 (ld:v2i64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>), (imm:i8):$imm) - Complexity = 31
                // Dst: (VPSHUFLWmi:v8i16 addr:iPTR:$src, (imm:i8):$imm)
/*86336*/     /*Scope*/ 21, /*->86358*/
/*86337*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*86339*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #3 #4 #5 #6 #7
/*86342*/       OPC_EmitMergeInputChains1_0,
/*86343*/       OPC_EmitConvertToTarget, 2,
/*86345*/       OPC_MorphNodeTo, TARGET_VAL(X86::PSHUFLWmi), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v8i16, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                // Src: (X86PShuflw:v8i16 (bitconvert:v8i16 (ld:v2i64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>), (imm:i8):$imm) - Complexity = 31
                // Dst: (PSHUFLWmi:v8i16 addr:iPTR:$src, (imm:i8):$imm)
/*86358*/     0, /*End of Scope*/
/*86359*/   /*Scope*/ 42, /*->86402*/
/*86360*/     OPC_RecordChild0, // #0 = $src
/*86361*/     OPC_RecordChild1, // #1 = $imm
/*86362*/     OPC_MoveChild, 1,
/*86364*/     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*86367*/     OPC_CheckType, MVT::i8,
/*86369*/     OPC_MoveParent,
/*86370*/     OPC_CheckType, MVT::v8i16,
/*86372*/     OPC_Scope, 13, /*->86387*/ // 2 children in Scope
/*86374*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*86376*/       OPC_EmitConvertToTarget, 1,
/*86378*/       OPC_MorphNodeTo, TARGET_VAL(X86::VPSHUFLWri), 0,
                    1/*#VTs*/, MVT::v8i16, 2/*#Ops*/, 0, 2, 
                // Src: (X86PShuflw:v8i16 VR128:v8i16:$src, (imm:i8):$imm) - Complexity = 6
                // Dst: (VPSHUFLWri:v8i16 VR128:v8i16:$src, (imm:i8):$imm)
/*86387*/     /*Scope*/ 13, /*->86401*/
/*86388*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*86390*/       OPC_EmitConvertToTarget, 1,
/*86392*/       OPC_MorphNodeTo, TARGET_VAL(X86::PSHUFLWri), 0,
                    1/*#VTs*/, MVT::v8i16, 2/*#Ops*/, 0, 2, 
                // Src: (X86PShuflw:v8i16 VR128:v8i16:$src, (imm:i8):$imm) - Complexity = 6
                // Dst: (PSHUFLWri:v8i16 VR128:v8i16:$src, (imm:i8):$imm)
/*86401*/     0, /*End of Scope*/
/*86402*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 112|128,1/*240*/,  TARGET_VAL(X86ISD::TC_RETURN),// ->86647
/*86407*/   OPC_RecordNode,   // #0 = 'X86tcret' chained node
/*86408*/   OPC_CaptureGlueInput,
/*86409*/   OPC_Scope, 73, /*->86484*/ // 2 children in Scope
/*86411*/     OPC_MoveChild, 1,
/*86413*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*86416*/     OPC_RecordMemRef,
/*86417*/     OPC_RecordNode, // #1 = 'ld' chained node
/*86418*/     OPC_CheckFoldableChainNode,
/*86419*/     OPC_RecordChild1, // #2 = $dst
/*86420*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*86422*/     OPC_CheckPredicate, 3, // Predicate_load
/*86424*/     OPC_MoveParent,
/*86425*/     OPC_RecordChild2, // #3 = $off
/*86426*/     OPC_MoveChild, 2,
/*86428*/     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*86431*/     OPC_MoveParent,
/*86432*/     OPC_Scope, 24, /*->86458*/ // 2 children in Scope
/*86434*/       OPC_CheckPatternPredicate, 35, // (!Subtarget->is64Bit()) && (TM.getRelocationModel() != Reloc::PIC_)
/*86436*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #4 #5 #6 #7 #8
/*86439*/       OPC_EmitMergeInputChains, 2, 0, 1, 
/*86443*/       OPC_EmitConvertToTarget, 3,
/*86445*/       OPC_MorphNodeTo, TARGET_VAL(X86::TCRETURNmi), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs|OPFL_Variadic2,
                    1/*#VTs*/, MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 9, 
                // Src: (X86tcret (ld:iPTR addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:i32):$off) - Complexity = 28
                // Dst: (TCRETURNmi:i32 addr:i32:$dst, (imm:i32):$off)
/*86458*/     /*Scope*/ 24, /*->86483*/
/*86459*/       OPC_CheckPatternPredicate, 4, // (Subtarget->is64Bit())
/*86461*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #4 #5 #6 #7 #8
/*86464*/       OPC_EmitMergeInputChains, 2, 0, 1, 
/*86468*/       OPC_EmitConvertToTarget, 3,
/*86470*/       OPC_MorphNodeTo, TARGET_VAL(X86::TCRETURNmi64), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs|OPFL_Variadic2,
                    1/*#VTs*/, MVT::i64, 6/*#Ops*/, 4, 5, 6, 7, 8, 9, 
                // Src: (X86tcret (ld:iPTR addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:i32):$off) - Complexity = 28
                // Dst: (TCRETURNmi64:i64 addr:i64:$dst, (imm:i32):$off)
/*86483*/     0, /*End of Scope*/
/*86484*/   /*Scope*/ 32|128,1/*160*/, /*->86646*/
/*86486*/     OPC_RecordChild1, // #1 = $dst
/*86487*/     OPC_Scope, 110, /*->86599*/ // 3 children in Scope
/*86489*/       OPC_MoveChild, 1,
/*86491*/       OPC_SwitchOpcode /*2 cases */, 50,  TARGET_VAL(ISD::TargetGlobalAddress),// ->86545
/*86495*/         OPC_SwitchType /*2 cases */, 22,  MVT::i32,// ->86520
/*86498*/           OPC_MoveParent,
/*86499*/           OPC_RecordChild2, // #2 = $off
/*86500*/           OPC_MoveChild, 2,
/*86502*/           OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*86505*/           OPC_MoveParent,
/*86506*/           OPC_CheckPatternPredicate, 3, // (!Subtarget->is64Bit())
/*86508*/           OPC_EmitMergeInputChains1_0,
/*86509*/           OPC_EmitConvertToTarget, 2,
/*86511*/           OPC_MorphNodeTo, TARGET_VAL(X86::TCRETURNdi), 0|OPFL_Chain|OPFL_GlueInput|OPFL_Variadic2,
                        1/*#VTs*/, MVT::i32, 2/*#Ops*/, 1, 3, 
                    // Src: (X86tcret (tglobaladdr:i32):$dst, (imm:i32):$off) - Complexity = 9
                    // Dst: (TCRETURNdi:i32 (texternalsym:i32):$dst, (imm:i32):$off)
                  /*SwitchType*/ 22,  MVT::i64,// ->86544
/*86522*/           OPC_MoveParent,
/*86523*/           OPC_RecordChild2, // #2 = $off
/*86524*/           OPC_MoveChild, 2,
/*86526*/           OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*86529*/           OPC_MoveParent,
/*86530*/           OPC_CheckPatternPredicate, 4, // (Subtarget->is64Bit())
/*86532*/           OPC_EmitMergeInputChains1_0,
/*86533*/           OPC_EmitConvertToTarget, 2,
/*86535*/           OPC_MorphNodeTo, TARGET_VAL(X86::TCRETURNdi64), 0|OPFL_Chain|OPFL_GlueInput|OPFL_Variadic2,
                        1/*#VTs*/, MVT::i64, 2/*#Ops*/, 1, 3, 
                    // Src: (X86tcret (tglobaladdr:i64):$dst, (imm:i32):$off) - Complexity = 9
                    // Dst: (TCRETURNdi64:i64 (tglobaladdr:i64):$dst, (imm:i32):$off)
                  0, // EndSwitchType
                /*SwitchOpcode*/ 50,  TARGET_VAL(ISD::TargetExternalSymbol),// ->86598
/*86548*/         OPC_SwitchType /*2 cases */, 22,  MVT::i32,// ->86573
/*86551*/           OPC_MoveParent,
/*86552*/           OPC_RecordChild2, // #2 = $off
/*86553*/           OPC_MoveChild, 2,
/*86555*/           OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*86558*/           OPC_MoveParent,
/*86559*/           OPC_CheckPatternPredicate, 3, // (!Subtarget->is64Bit())
/*86561*/           OPC_EmitMergeInputChains1_0,
/*86562*/           OPC_EmitConvertToTarget, 2,
/*86564*/           OPC_MorphNodeTo, TARGET_VAL(X86::TCRETURNdi), 0|OPFL_Chain|OPFL_GlueInput|OPFL_Variadic2,
                        1/*#VTs*/, MVT::i32, 2/*#Ops*/, 1, 3, 
                    // Src: (X86tcret (texternalsym:i32):$dst, (imm:i32):$off) - Complexity = 9
                    // Dst: (TCRETURNdi:i32 (texternalsym:i32):$dst, (imm:i32):$off)
                  /*SwitchType*/ 22,  MVT::i64,// ->86597
/*86575*/           OPC_MoveParent,
/*86576*/           OPC_RecordChild2, // #2 = $off
/*86577*/           OPC_MoveChild, 2,
/*86579*/           OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*86582*/           OPC_MoveParent,
/*86583*/           OPC_CheckPatternPredicate, 4, // (Subtarget->is64Bit())
/*86585*/           OPC_EmitMergeInputChains1_0,
/*86586*/           OPC_EmitConvertToTarget, 2,
/*86588*/           OPC_MorphNodeTo, TARGET_VAL(X86::TCRETURNdi64), 0|OPFL_Chain|OPFL_GlueInput|OPFL_Variadic2,
                        1/*#VTs*/, MVT::i64, 2/*#Ops*/, 1, 3, 
                    // Src: (X86tcret (texternalsym:i64):$dst, (imm:i32):$off) - Complexity = 9
                    // Dst: (TCRETURNdi64:i64 (texternalsym:i64):$dst, (imm:i32):$off)
                  0, // EndSwitchType
                0, // EndSwitchOpcode
/*86599*/     /*Scope*/ 23, /*->86623*/
/*86600*/       OPC_CheckChild1Type, MVT::i32,
/*86602*/       OPC_RecordChild2, // #2 = $off
/*86603*/       OPC_MoveChild, 2,
/*86605*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*86608*/       OPC_MoveParent,
/*86609*/       OPC_CheckPatternPredicate, 3, // (!Subtarget->is64Bit())
/*86611*/       OPC_EmitMergeInputChains1_0,
/*86612*/       OPC_EmitConvertToTarget, 2,
/*86614*/       OPC_MorphNodeTo, TARGET_VAL(X86::TCRETURNri), 0|OPFL_Chain|OPFL_GlueInput|OPFL_Variadic2,
                    1/*#VTs*/, MVT::i32, 2/*#Ops*/, 1, 3, 
                // Src: (X86tcret GR32_TC:i32:$dst, (imm:i32):$off) - Complexity = 6
                // Dst: (TCRETURNri:i32 GR32_TC:i32:$dst, (imm:i32):$off)
/*86623*/     /*Scope*/ 21, /*->86645*/
/*86624*/       OPC_RecordChild2, // #2 = $off
/*86625*/       OPC_MoveChild, 2,
/*86627*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*86630*/       OPC_MoveParent,
/*86631*/       OPC_CheckPatternPredicate, 4, // (Subtarget->is64Bit())
/*86633*/       OPC_EmitMergeInputChains1_0,
/*86634*/       OPC_EmitConvertToTarget, 2,
/*86636*/       OPC_MorphNodeTo, TARGET_VAL(X86::TCRETURNri64), 0|OPFL_Chain|OPFL_GlueInput|OPFL_Variadic2,
                    1/*#VTs*/, MVT::i64, 2/*#Ops*/, 1, 3, 
                // Src: (X86tcret ptr_rc_tailcall:iPTR:$dst, (imm:i32):$off) - Complexity = 6
                // Dst: (TCRETURNri64:i64 ptr_rc_tailcall:iPTR:$dst, (imm:i32):$off)
/*86645*/     0, /*End of Scope*/
/*86646*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 75|128,1/*203*/,  TARGET_VAL(X86ISD::CMPPS),// ->86854
/*86651*/   OPC_RecordChild0, // #0 = $src1
/*86652*/   OPC_Scope, 121, /*->86775*/ // 2 children in Scope
/*86654*/     OPC_CheckChild0Type, MVT::v4f32,
/*86656*/     OPC_Scope, 73, /*->86731*/ // 2 children in Scope
/*86658*/       OPC_MoveChild, 1,
/*86660*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*86663*/       OPC_RecordMemRef,
/*86664*/       OPC_RecordNode, // #1 = 'ld' chained node
/*86665*/       OPC_CheckFoldableChainNode,
/*86666*/       OPC_RecordChild1, // #2 = $src2
/*86667*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*86669*/       OPC_CheckPredicate, 3, // Predicate_load
/*86671*/       OPC_CheckPredicate, 23, // Predicate_memop
/*86673*/       OPC_MoveParent,
/*86674*/       OPC_RecordChild2, // #3 = $cc
/*86675*/       OPC_MoveChild, 2,
/*86677*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*86680*/       OPC_MoveParent,
/*86681*/       OPC_CheckType, MVT::v4i32,
/*86683*/       OPC_Scope, 22, /*->86707*/ // 2 children in Scope
/*86685*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*86687*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*86690*/         OPC_EmitMergeInputChains1_1,
/*86691*/         OPC_EmitConvertToTarget, 3,
/*86693*/         OPC_MorphNodeTo, TARGET_VAL(X86::CMPPSrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                  // Src: (X86cmpps:v4i32 VR128:v4f32:$src1, (ld:v4f32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, (imm:i8):$cc) - Complexity = 28
                  // Dst: (CMPPSrmi:v4i32 VR128:v4f32:$src1, addr:iPTR:$src2, (imm:i8):$cc)
/*86707*/       /*Scope*/ 22, /*->86730*/
/*86708*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*86710*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*86713*/         OPC_EmitMergeInputChains1_1,
/*86714*/         OPC_EmitConvertToTarget, 3,
/*86716*/         OPC_MorphNodeTo, TARGET_VAL(X86::VCMPPSrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                  // Src: (X86cmpps:v4i32 VR128:v4f32:$src1, (ld:v4f32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, (imm:i8):$cc) - Complexity = 28
                  // Dst: (VCMPPSrmi:v4i32 VR128:v4f32:$src1, addr:iPTR:$src2, (imm:i8):$cc)
/*86730*/       0, /*End of Scope*/
/*86731*/     /*Scope*/ 42, /*->86774*/
/*86732*/       OPC_RecordChild1, // #1 = $src2
/*86733*/       OPC_RecordChild2, // #2 = $cc
/*86734*/       OPC_MoveChild, 2,
/*86736*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*86739*/       OPC_MoveParent,
/*86740*/       OPC_CheckType, MVT::v4i32,
/*86742*/       OPC_Scope, 14, /*->86758*/ // 2 children in Scope
/*86744*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*86746*/         OPC_EmitConvertToTarget, 2,
/*86748*/         OPC_MorphNodeTo, TARGET_VAL(X86::CMPPSrri), 0,
                      1/*#VTs*/, MVT::v4i32, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (X86cmpps:v4i32 VR128:v4f32:$src1, VR128:v4f32:$src2, (imm:i8):$cc) - Complexity = 6
                  // Dst: (CMPPSrri:v4i32 VR128:v4f32:$src1, VR128:v4f32:$src2, (imm:i8):$cc)
/*86758*/       /*Scope*/ 14, /*->86773*/
/*86759*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*86761*/         OPC_EmitConvertToTarget, 2,
/*86763*/         OPC_MorphNodeTo, TARGET_VAL(X86::VCMPPSrri), 0,
                      1/*#VTs*/, MVT::v4i32, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (X86cmpps:v4i32 VR128:v4f32:$src1, VR128:v4f32:$src2, (imm:i8):$cc) - Complexity = 6
                  // Dst: (VCMPPSrri:v4i32 VR128:v4f32:$src1, VR128:v4f32:$src2, (imm:i8):$cc)
/*86773*/       0, /*End of Scope*/
/*86774*/     0, /*End of Scope*/
/*86775*/   /*Scope*/ 77, /*->86853*/
/*86776*/     OPC_CheckChild0Type, MVT::v8f32,
/*86778*/     OPC_Scope, 47, /*->86827*/ // 2 children in Scope
/*86780*/       OPC_MoveChild, 1,
/*86782*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*86785*/       OPC_RecordMemRef,
/*86786*/       OPC_RecordNode, // #1 = 'ld' chained node
/*86787*/       OPC_CheckFoldableChainNode,
/*86788*/       OPC_RecordChild1, // #2 = $src2
/*86789*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*86791*/       OPC_CheckPredicate, 3, // Predicate_load
/*86793*/       OPC_CheckPredicate, 23, // Predicate_memop
/*86795*/       OPC_MoveParent,
/*86796*/       OPC_RecordChild2, // #3 = $cc
/*86797*/       OPC_MoveChild, 2,
/*86799*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*86802*/       OPC_MoveParent,
/*86803*/       OPC_CheckType, MVT::v8i32,
/*86805*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*86807*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*86810*/       OPC_EmitMergeInputChains1_1,
/*86811*/       OPC_EmitConvertToTarget, 3,
/*86813*/       OPC_MorphNodeTo, TARGET_VAL(X86::VCMPPSYrmi), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v8i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                // Src: (X86cmpps:v8i32 VR256:v8f32:$src1, (ld:v8f32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, (imm:i8):$cc) - Complexity = 28
                // Dst: (VCMPPSYrmi:v8i32 VR256:v8f32:$src1, addr:iPTR:$src2, (imm:i8):$cc)
/*86827*/     /*Scope*/ 24, /*->86852*/
/*86828*/       OPC_RecordChild1, // #1 = $src2
/*86829*/       OPC_RecordChild2, // #2 = $cc
/*86830*/       OPC_MoveChild, 2,
/*86832*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*86835*/       OPC_MoveParent,
/*86836*/       OPC_CheckType, MVT::v8i32,
/*86838*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*86840*/       OPC_EmitConvertToTarget, 2,
/*86842*/       OPC_MorphNodeTo, TARGET_VAL(X86::VCMPPSYrri), 0,
                    1/*#VTs*/, MVT::v8i32, 3/*#Ops*/, 0, 1, 3, 
                // Src: (X86cmpps:v8i32 VR256:v8f32:$src1, VR256:v8f32:$src2, (imm:i8):$cc) - Complexity = 6
                // Dst: (VCMPPSYrri:v8i32 VR256:v8f32:$src1, VR256:v8f32:$src2, (imm:i8):$cc)
/*86852*/     0, /*End of Scope*/
/*86853*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 75|128,1/*203*/,  TARGET_VAL(X86ISD::CMPPD),// ->87061
/*86858*/   OPC_RecordChild0, // #0 = $src1
/*86859*/   OPC_Scope, 121, /*->86982*/ // 2 children in Scope
/*86861*/     OPC_CheckChild0Type, MVT::v2f64,
/*86863*/     OPC_Scope, 73, /*->86938*/ // 2 children in Scope
/*86865*/       OPC_MoveChild, 1,
/*86867*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*86870*/       OPC_RecordMemRef,
/*86871*/       OPC_RecordNode, // #1 = 'ld' chained node
/*86872*/       OPC_CheckFoldableChainNode,
/*86873*/       OPC_RecordChild1, // #2 = $src2
/*86874*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*86876*/       OPC_CheckPredicate, 3, // Predicate_load
/*86878*/       OPC_CheckPredicate, 23, // Predicate_memop
/*86880*/       OPC_MoveParent,
/*86881*/       OPC_RecordChild2, // #3 = $cc
/*86882*/       OPC_MoveChild, 2,
/*86884*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*86887*/       OPC_MoveParent,
/*86888*/       OPC_CheckType, MVT::v2i64,
/*86890*/       OPC_Scope, 22, /*->86914*/ // 2 children in Scope
/*86892*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*86894*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*86897*/         OPC_EmitMergeInputChains1_1,
/*86898*/         OPC_EmitConvertToTarget, 3,
/*86900*/         OPC_MorphNodeTo, TARGET_VAL(X86::CMPPDrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v2i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                  // Src: (X86cmppd:v2i64 VR128:v2f64:$src1, (ld:v2f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, (imm:i8):$cc) - Complexity = 28
                  // Dst: (CMPPDrmi:v2i64 VR128:v2f64:$src1, addr:iPTR:$src2, (imm:i8):$cc)
/*86914*/       /*Scope*/ 22, /*->86937*/
/*86915*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*86917*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*86920*/         OPC_EmitMergeInputChains1_1,
/*86921*/         OPC_EmitConvertToTarget, 3,
/*86923*/         OPC_MorphNodeTo, TARGET_VAL(X86::VCMPPDrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v2i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                  // Src: (X86cmppd:v2i64 VR128:v2f64:$src1, (ld:v2f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, (imm:i8):$cc) - Complexity = 28
                  // Dst: (VCMPPDrmi:v2i64 VR128:v2f64:$src1, addr:iPTR:$src2, (imm:i8):$cc)
/*86937*/       0, /*End of Scope*/
/*86938*/     /*Scope*/ 42, /*->86981*/
/*86939*/       OPC_RecordChild1, // #1 = $src2
/*86940*/       OPC_RecordChild2, // #2 = $cc
/*86941*/       OPC_MoveChild, 2,
/*86943*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*86946*/       OPC_MoveParent,
/*86947*/       OPC_CheckType, MVT::v2i64,
/*86949*/       OPC_Scope, 14, /*->86965*/ // 2 children in Scope
/*86951*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*86953*/         OPC_EmitConvertToTarget, 2,
/*86955*/         OPC_MorphNodeTo, TARGET_VAL(X86::CMPPDrri), 0,
                      1/*#VTs*/, MVT::v2i64, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (X86cmppd:v2i64 VR128:v2f64:$src1, VR128:v2f64:$src2, (imm:i8):$cc) - Complexity = 6
                  // Dst: (CMPPDrri:v2i64 VR128:v2f64:$src1, VR128:v2f64:$src2, (imm:i8):$cc)
/*86965*/       /*Scope*/ 14, /*->86980*/
/*86966*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*86968*/         OPC_EmitConvertToTarget, 2,
/*86970*/         OPC_MorphNodeTo, TARGET_VAL(X86::VCMPPDrri), 0,
                      1/*#VTs*/, MVT::v2i64, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (X86cmppd:v2i64 VR128:v2f64:$src1, VR128:v2f64:$src2, (imm:i8):$cc) - Complexity = 6
                  // Dst: (VCMPPDrri:v2i64 VR128:v2f64:$src1, VR128:v2f64:$src2, (imm:i8):$cc)
/*86980*/       0, /*End of Scope*/
/*86981*/     0, /*End of Scope*/
/*86982*/   /*Scope*/ 77, /*->87060*/
/*86983*/     OPC_CheckChild0Type, MVT::v4f64,
/*86985*/     OPC_Scope, 47, /*->87034*/ // 2 children in Scope
/*86987*/       OPC_MoveChild, 1,
/*86989*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*86992*/       OPC_RecordMemRef,
/*86993*/       OPC_RecordNode, // #1 = 'ld' chained node
/*86994*/       OPC_CheckFoldableChainNode,
/*86995*/       OPC_RecordChild1, // #2 = $src2
/*86996*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*86998*/       OPC_CheckPredicate, 3, // Predicate_load
/*87000*/       OPC_CheckPredicate, 23, // Predicate_memop
/*87002*/       OPC_MoveParent,
/*87003*/       OPC_RecordChild2, // #3 = $cc
/*87004*/       OPC_MoveChild, 2,
/*87006*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*87009*/       OPC_MoveParent,
/*87010*/       OPC_CheckType, MVT::v4i64,
/*87012*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*87014*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*87017*/       OPC_EmitMergeInputChains1_1,
/*87018*/       OPC_EmitConvertToTarget, 3,
/*87020*/       OPC_MorphNodeTo, TARGET_VAL(X86::VCMPPDYrmi), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v4i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                // Src: (X86cmppd:v4i64 VR256:v4f64:$src1, (ld:v4f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, (imm:i8):$cc) - Complexity = 28
                // Dst: (VCMPPDYrmi:v4i64 VR256:v4f64:$src1, addr:iPTR:$src2, (imm:i8):$cc)
/*87034*/     /*Scope*/ 24, /*->87059*/
/*87035*/       OPC_RecordChild1, // #1 = $src2
/*87036*/       OPC_RecordChild2, // #2 = $cc
/*87037*/       OPC_MoveChild, 2,
/*87039*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*87042*/       OPC_MoveParent,
/*87043*/       OPC_CheckType, MVT::v4i64,
/*87045*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*87047*/       OPC_EmitConvertToTarget, 2,
/*87049*/       OPC_MorphNodeTo, TARGET_VAL(X86::VCMPPDYrri), 0,
                    1/*#VTs*/, MVT::v4i64, 3/*#Ops*/, 0, 1, 3, 
                // Src: (X86cmppd:v4i64 VR256:v4f64:$src1, VR256:v4f64:$src2, (imm:i8):$cc) - Complexity = 6
                // Dst: (VCMPPDYrri:v4i64 VR256:v4f64:$src1, VR256:v4f64:$src2, (imm:i8):$cc)
/*87059*/     0, /*End of Scope*/
/*87060*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 101|128,1/*229*/,  TARGET_VAL(X86ISD::SHUFPD),// ->87294
/*87065*/   OPC_RecordChild0, // #0 = $src1
/*87066*/   OPC_Scope, 49, /*->87117*/ // 4 children in Scope
/*87068*/     OPC_MoveChild, 1,
/*87070*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*87073*/     OPC_RecordMemRef,
/*87074*/     OPC_RecordNode, // #1 = 'ld' chained node
/*87075*/     OPC_CheckFoldableChainNode,
/*87076*/     OPC_RecordChild1, // #2 = $src2
/*87077*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*87079*/     OPC_CheckPredicate, 3, // Predicate_load
/*87081*/     OPC_CheckPredicate, 23, // Predicate_memop
/*87083*/     OPC_MoveParent,
/*87084*/     OPC_RecordChild2, // #3 = $imm
/*87085*/     OPC_MoveChild, 2,
/*87087*/     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*87090*/     OPC_CheckType, MVT::i8,
/*87092*/     OPC_MoveParent,
/*87093*/     OPC_CheckType, MVT::v4i64,
/*87095*/     OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*87097*/     OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*87100*/     OPC_EmitMergeInputChains1_1,
/*87101*/     OPC_EmitConvertToTarget, 3,
/*87103*/     OPC_MorphNodeTo, TARGET_VAL(X86::VSHUFPDYrmi), 0|OPFL_Chain|OPFL_MemRefs,
                  1/*#VTs*/, MVT::v4i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
              // Src: (X86Shufpd:v4i64 VR256:v4i64:$src1, (ld:v4i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, (imm:i8):$imm) - Complexity = 28
              // Dst: (VSHUFPDYrmi:v4i64 VR256:v4i64:$src1, addr:iPTR:$src2, (imm:i8):$imm)
/*87117*/   /*Scope*/ 62, /*->87180*/
/*87118*/     OPC_RecordChild1, // #1 = $src2
/*87119*/     OPC_RecordChild2, // #2 = $imm
/*87120*/     OPC_MoveChild, 2,
/*87122*/     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*87125*/     OPC_CheckType, MVT::i8,
/*87127*/     OPC_MoveParent,
/*87128*/     OPC_SwitchType /*2 cases */, 32,  MVT::v2i64,// ->87163
/*87131*/       OPC_Scope, 14, /*->87147*/ // 2 children in Scope
/*87133*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*87135*/         OPC_EmitConvertToTarget, 2,
/*87137*/         OPC_MorphNodeTo, TARGET_VAL(X86::SHUFPDrri), 0,
                      1/*#VTs*/, MVT::v2i64, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (X86Shufpd:v2i64 VR128:v2i64:$src1, VR128:v2i64:$src2, (imm:i8):$imm) - Complexity = 6
                  // Dst: (SHUFPDrri:v2i64 VR128:v2i64:$src1, VR128:v2i64:$src2, (imm:i8):$imm)
/*87147*/       /*Scope*/ 14, /*->87162*/
/*87148*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*87150*/         OPC_EmitConvertToTarget, 2,
/*87152*/         OPC_MorphNodeTo, TARGET_VAL(X86::VSHUFPDrri), 0,
                      1/*#VTs*/, MVT::v2i64, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (X86Shufpd:v2i64 VR128:v2i64:$src1, VR128:v2i64:$src2, (imm:i8):$imm) - Complexity = 6
                  // Dst: (VSHUFPDrri:v2i64 VR128:v2i64:$src1, VR128:v2i64:$src2, (imm:i8):$imm)
/*87162*/       0, /*End of Scope*/
              /*SwitchType*/ 14,  MVT::v4i64,// ->87179
/*87165*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*87167*/       OPC_EmitConvertToTarget, 2,
/*87169*/       OPC_MorphNodeTo, TARGET_VAL(X86::VSHUFPDYrri), 0,
                    1/*#VTs*/, MVT::v4i64, 3/*#Ops*/, 0, 1, 3, 
                // Src: (X86Shufpd:v4i64 VR256:v4i64:$src1, VR256:v4i64:$src2, (imm:i8):$imm) - Complexity = 6
                // Dst: (VSHUFPDYrri:v4i64 VR256:v4i64:$src1, VR256:v4i64:$src2, (imm:i8):$imm)
              0, // EndSwitchType
/*87180*/   /*Scope*/ 49, /*->87230*/
/*87181*/     OPC_MoveChild, 1,
/*87183*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*87186*/     OPC_RecordMemRef,
/*87187*/     OPC_RecordNode, // #1 = 'ld' chained node
/*87188*/     OPC_CheckFoldableChainNode,
/*87189*/     OPC_RecordChild1, // #2 = $src2
/*87190*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*87192*/     OPC_CheckPredicate, 3, // Predicate_load
/*87194*/     OPC_CheckPredicate, 23, // Predicate_memop
/*87196*/     OPC_MoveParent,
/*87197*/     OPC_RecordChild2, // #3 = $imm
/*87198*/     OPC_MoveChild, 2,
/*87200*/     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*87203*/     OPC_CheckType, MVT::i8,
/*87205*/     OPC_MoveParent,
/*87206*/     OPC_CheckType, MVT::v4f64,
/*87208*/     OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*87210*/     OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*87213*/     OPC_EmitMergeInputChains1_1,
/*87214*/     OPC_EmitConvertToTarget, 3,
/*87216*/     OPC_MorphNodeTo, TARGET_VAL(X86::VSHUFPDYrmi), 0|OPFL_Chain|OPFL_MemRefs,
                  1/*#VTs*/, MVT::v4f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
              // Src: (X86Shufpd:v4f64 VR256:v4f64:$src1, (ld:v4f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, (imm:i8):$imm) - Complexity = 28
              // Dst: (VSHUFPDYrmi:v4f64 VR256:v4f64:$src1, addr:iPTR:$src2, (imm:i8):$imm)
/*87230*/   /*Scope*/ 62, /*->87293*/
/*87231*/     OPC_RecordChild1, // #1 = $src2
/*87232*/     OPC_RecordChild2, // #2 = $imm
/*87233*/     OPC_MoveChild, 2,
/*87235*/     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*87238*/     OPC_CheckType, MVT::i8,
/*87240*/     OPC_MoveParent,
/*87241*/     OPC_SwitchType /*2 cases */, 32,  MVT::v2f64,// ->87276
/*87244*/       OPC_Scope, 14, /*->87260*/ // 2 children in Scope
/*87246*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*87248*/         OPC_EmitConvertToTarget, 2,
/*87250*/         OPC_MorphNodeTo, TARGET_VAL(X86::SHUFPDrri), 0,
                      1/*#VTs*/, MVT::v2f64, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (X86Shufpd:v2f64 VR128:v2f64:$src1, VR128:v2f64:$src2, (imm:i8):$imm) - Complexity = 6
                  // Dst: (SHUFPDrri:v2f64 VR128:v2f64:$src1, VR128:v2f64:$src2, (imm:i8):$imm)
/*87260*/       /*Scope*/ 14, /*->87275*/
/*87261*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*87263*/         OPC_EmitConvertToTarget, 2,
/*87265*/         OPC_MorphNodeTo, TARGET_VAL(X86::VSHUFPDrri), 0,
                      1/*#VTs*/, MVT::v2f64, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (X86Shufpd:v2f64 VR128:v2f64:$src1, VR128:v2f64:$src2, (imm:i8):$imm) - Complexity = 6
                  // Dst: (VSHUFPDrri:v2f64 VR128:v2f64:$src1, VR128:v2f64:$src2, (imm:i8):$imm)
/*87275*/       0, /*End of Scope*/
              /*SwitchType*/ 14,  MVT::v4f64,// ->87292
/*87278*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*87280*/       OPC_EmitConvertToTarget, 2,
/*87282*/       OPC_MorphNodeTo, TARGET_VAL(X86::VSHUFPDYrri), 0,
                    1/*#VTs*/, MVT::v4f64, 3/*#Ops*/, 0, 1, 3, 
                // Src: (X86Shufpd:v4f64 VR256:v4f64:$src1, VR256:v4f64:$src2, (imm:i8):$imm) - Complexity = 6
                // Dst: (VSHUFPDYrri:v4f64 VR256:v4f64:$src1, VR256:v4f64:$src2, (imm:i8):$imm)
              0, // EndSwitchType
/*87293*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 127|128,2/*383*/,  TARGET_VAL(X86ISD::ANDNP),// ->87681
/*87298*/   OPC_Scope, 90|128,1/*218*/, /*->87519*/ // 4 children in Scope
/*87301*/     OPC_MoveChild, 0,
/*87303*/     OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*87306*/     OPC_RecordChild0, // #0 = $src1
/*87307*/     OPC_Scope, 40, /*->87349*/ // 4 children in Scope
/*87309*/       OPC_CheckChild0Type, MVT::v8f32,
/*87311*/       OPC_MoveParent,
/*87312*/       OPC_MoveChild, 1,
/*87314*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*87317*/       OPC_RecordMemRef,
/*87318*/       OPC_RecordNode, // #1 = 'ld' chained node
/*87319*/       OPC_CheckFoldableChainNode,
/*87320*/       OPC_RecordChild1, // #2 = $src2
/*87321*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*87323*/       OPC_CheckPredicate, 3, // Predicate_load
/*87325*/       OPC_CheckPredicate, 23, // Predicate_memop
/*87327*/       OPC_MoveParent,
/*87328*/       OPC_CheckType, MVT::v4i64,
/*87330*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*87332*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*87335*/       OPC_EmitMergeInputChains1_1,
/*87336*/       OPC_MorphNodeTo, TARGET_VAL(X86::VANDNPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (X86andnp:v4i64 (bitconvert:v4i64 VR256:v8f32:$src1), (ld:v4i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 28
                // Dst: (VANDNPSYrm:v4i64 VR256:v8f32:$src1, addr:iPTR:$src2)
/*87349*/     /*Scope*/ 40, /*->87390*/
/*87350*/       OPC_CheckChild0Type, MVT::v4f64,
/*87352*/       OPC_MoveParent,
/*87353*/       OPC_MoveChild, 1,
/*87355*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*87358*/       OPC_RecordMemRef,
/*87359*/       OPC_RecordNode, // #1 = 'ld' chained node
/*87360*/       OPC_CheckFoldableChainNode,
/*87361*/       OPC_RecordChild1, // #2 = $src2
/*87362*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*87364*/       OPC_CheckPredicate, 3, // Predicate_load
/*87366*/       OPC_CheckPredicate, 23, // Predicate_memop
/*87368*/       OPC_MoveParent,
/*87369*/       OPC_CheckType, MVT::v4i64,
/*87371*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*87373*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*87376*/       OPC_EmitMergeInputChains1_1,
/*87377*/       OPC_MorphNodeTo, TARGET_VAL(X86::VANDNPDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (X86andnp:v4i64 (bitconvert:v4i64 VR256:v4f64:$src1), (ld:v4i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 28
                // Dst: (VANDNPDYrm:v4i64 VR256:v4f64:$src1, addr:iPTR:$src2)
/*87390*/     /*Scope*/ 63, /*->87454*/
/*87391*/       OPC_CheckChild0Type, MVT::v4f32,
/*87393*/       OPC_MoveParent,
/*87394*/       OPC_MoveChild, 1,
/*87396*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*87399*/       OPC_RecordMemRef,
/*87400*/       OPC_RecordNode, // #1 = 'ld' chained node
/*87401*/       OPC_CheckFoldableChainNode,
/*87402*/       OPC_RecordChild1, // #2 = $src2
/*87403*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*87405*/       OPC_CheckPredicate, 3, // Predicate_load
/*87407*/       OPC_CheckPredicate, 23, // Predicate_memop
/*87409*/       OPC_MoveParent,
/*87410*/       OPC_CheckType, MVT::v2i64,
/*87412*/       OPC_Scope, 19, /*->87433*/ // 2 children in Scope
/*87414*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*87416*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*87419*/         OPC_EmitMergeInputChains1_1,
/*87420*/         OPC_MorphNodeTo, TARGET_VAL(X86::VANDNPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (X86andnp:v2i64 (bitconvert:v2i64 VR128:v4f32:$src1), (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 28
                  // Dst: (VANDNPSrm:v2i64 VR128:v4f32:$src1, addr:iPTR:$src2)
/*87433*/       /*Scope*/ 19, /*->87453*/
/*87434*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*87436*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*87439*/         OPC_EmitMergeInputChains1_1,
/*87440*/         OPC_MorphNodeTo, TARGET_VAL(X86::ANDNPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (X86andnp:v2i64 (bitconvert:v2i64 VR128:v4f32:$src1), (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 28
                  // Dst: (ANDNPSrm:v2i64 VR128:v4f32:$src1, addr:iPTR:$src2)
/*87453*/       0, /*End of Scope*/
/*87454*/     /*Scope*/ 63, /*->87518*/
/*87455*/       OPC_CheckChild0Type, MVT::v2f64,
/*87457*/       OPC_MoveParent,
/*87458*/       OPC_MoveChild, 1,
/*87460*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*87463*/       OPC_RecordMemRef,
/*87464*/       OPC_RecordNode, // #1 = 'ld' chained node
/*87465*/       OPC_CheckFoldableChainNode,
/*87466*/       OPC_RecordChild1, // #2 = $src2
/*87467*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*87469*/       OPC_CheckPredicate, 3, // Predicate_load
/*87471*/       OPC_CheckPredicate, 23, // Predicate_memop
/*87473*/       OPC_MoveParent,
/*87474*/       OPC_CheckType, MVT::v2i64,
/*87476*/       OPC_Scope, 19, /*->87497*/ // 2 children in Scope
/*87478*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*87480*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*87483*/         OPC_EmitMergeInputChains1_1,
/*87484*/         OPC_MorphNodeTo, TARGET_VAL(X86::VANDNPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (X86andnp:v2i64 (bitconvert:v2i64 VR128:v2f64:$src1), (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 28
                  // Dst: (VANDNPDrm:v2i64 VR128:v2f64:$src1, addr:iPTR:$src2)
/*87497*/       /*Scope*/ 19, /*->87517*/
/*87498*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*87500*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*87503*/         OPC_EmitMergeInputChains1_1,
/*87504*/         OPC_MorphNodeTo, TARGET_VAL(X86::ANDNPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (X86andnp:v2i64 (bitconvert:v2i64 VR128:v2f64:$src1), (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 28
                  // Dst: (ANDNPDrm:v2i64 VR128:v2f64:$src1, addr:iPTR:$src2)
/*87517*/       0, /*End of Scope*/
/*87518*/     0, /*End of Scope*/
/*87519*/   /*Scope*/ 38, /*->87558*/
/*87520*/     OPC_RecordChild0, // #0 = $src1
/*87521*/     OPC_MoveChild, 1,
/*87523*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*87526*/     OPC_RecordMemRef,
/*87527*/     OPC_RecordNode, // #1 = 'ld' chained node
/*87528*/     OPC_CheckFoldableChainNode,
/*87529*/     OPC_RecordChild1, // #2 = $src2
/*87530*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*87532*/     OPC_CheckPredicate, 3, // Predicate_load
/*87534*/     OPC_CheckPredicate, 23, // Predicate_memop
/*87536*/     OPC_MoveParent,
/*87537*/     OPC_CheckType, MVT::v2i64,
/*87539*/     OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*87541*/     OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*87544*/     OPC_EmitMergeInputChains1_1,
/*87545*/     OPC_MorphNodeTo, TARGET_VAL(X86::VPANDNrm), 0|OPFL_Chain|OPFL_MemRefs,
                  1/*#VTs*/, MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
              // Src: (X86andnp:v2i64 VR128:v2i64:$src1, (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
              // Dst: (VPANDNrm:v2i64 VR128:v2i64:$src1, addr:iPTR:$src2)
/*87558*/   /*Scope*/ 75, /*->87634*/
/*87559*/     OPC_MoveChild, 0,
/*87561*/     OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*87564*/     OPC_RecordChild0, // #0 = $src1
/*87565*/     OPC_Scope, 25, /*->87592*/ // 2 children in Scope
/*87567*/       OPC_CheckChild0Type, MVT::v4f64,
/*87569*/       OPC_MoveParent,
/*87570*/       OPC_MoveChild, 1,
/*87572*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*87575*/       OPC_RecordChild0, // #1 = $src2
/*87576*/       OPC_CheckChild0Type, MVT::v4f64,
/*87578*/       OPC_MoveParent,
/*87579*/       OPC_CheckType, MVT::v4i64,
/*87581*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*87583*/       OPC_MorphNodeTo, TARGET_VAL(X86::VANDNPDYrr), 0,
                    1/*#VTs*/, MVT::v4i64, 2/*#Ops*/, 0, 1, 
                // Src: (X86andnp:v4i64 (bitconvert:v4i64 VR256:v4f64:$src1), (bitconvert:v4i64 VR256:v4f64:$src2)) - Complexity = 9
                // Dst: (VANDNPDYrr:v4i64 VR256:v4f64:$src1, VR256:v4f64:$src2)
/*87592*/     /*Scope*/ 40, /*->87633*/
/*87593*/       OPC_CheckChild0Type, MVT::v2f64,
/*87595*/       OPC_MoveParent,
/*87596*/       OPC_MoveChild, 1,
/*87598*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*87601*/       OPC_RecordChild0, // #1 = $src2
/*87602*/       OPC_CheckChild0Type, MVT::v2f64,
/*87604*/       OPC_MoveParent,
/*87605*/       OPC_CheckType, MVT::v2i64,
/*87607*/       OPC_Scope, 11, /*->87620*/ // 2 children in Scope
/*87609*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*87611*/         OPC_MorphNodeTo, TARGET_VAL(X86::VANDNPDrr), 0,
                      1/*#VTs*/, MVT::v2i64, 2/*#Ops*/, 0, 1, 
                  // Src: (X86andnp:v2i64 (bitconvert:v2i64 VR128:v2f64:$src1), (bitconvert:v2i64 VR128:v2f64:$src2)) - Complexity = 9
                  // Dst: (VANDNPDrr:v2i64 VR128:v2f64:$src1, VR128:v2f64:$src2)
/*87620*/       /*Scope*/ 11, /*->87632*/
/*87621*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*87623*/         OPC_MorphNodeTo, TARGET_VAL(X86::ANDNPDrr), 0,
                      1/*#VTs*/, MVT::v2i64, 2/*#Ops*/, 0, 1, 
                  // Src: (X86andnp:v2i64 (bitconvert:v2i64 VR128:v2f64:$src1), (bitconvert:v2i64 VR128:v2f64:$src2)) - Complexity = 9
                  // Dst: (ANDNPDrr:v2i64 VR128:v2f64:$src1, VR128:v2f64:$src2)
/*87632*/       0, /*End of Scope*/
/*87633*/     0, /*End of Scope*/
/*87634*/   /*Scope*/ 45, /*->87680*/
/*87635*/     OPC_RecordChild0, // #0 = $src1
/*87636*/     OPC_RecordChild1, // #1 = $src2
/*87637*/     OPC_SwitchType /*2 cases */, 11,  MVT::v4i64,// ->87651
/*87640*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*87642*/       OPC_MorphNodeTo, TARGET_VAL(X86::VANDNPSYrr), 0,
                    1/*#VTs*/, MVT::v4i64, 2/*#Ops*/, 0, 1, 
                // Src: (X86andnp:v4i64 VR256:v4i64:$src1, VR256:v4i64:$src2) - Complexity = 3
                // Dst: (VANDNPSYrr:v4i64 VR256:v4i64:$src1, VR256:v4i64:$src2)
              /*SwitchType*/ 26,  MVT::v2i64,// ->87679
/*87653*/       OPC_Scope, 11, /*->87666*/ // 2 children in Scope
/*87655*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*87657*/         OPC_MorphNodeTo, TARGET_VAL(X86::ANDNPSrr), 0,
                      1/*#VTs*/, MVT::v2i64, 2/*#Ops*/, 0, 1, 
                  // Src: (X86andnp:v2i64 VR128:v2i64:$src1, VR128:v2i64:$src2) - Complexity = 3
                  // Dst: (ANDNPSrr:v2i64 VR128:v2i64:$src1, VR128:v2i64:$src2)
/*87666*/       /*Scope*/ 11, /*->87678*/
/*87667*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*87669*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPANDNrr), 0,
                      1/*#VTs*/, MVT::v2i64, 2/*#Ops*/, 0, 1, 
                  // Src: (X86andnp:v2i64 VR128:v2i64:$src1, VR128:v2i64:$src2) - Complexity = 3
                  // Dst: (VPANDNrr:v2i64 VR128:v2i64:$src1, VR128:v2i64:$src2)
/*87678*/       0, /*End of Scope*/
              0, // EndSwitchType
/*87680*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 102,  TARGET_VAL(X86ISD::PUNPCKLBW),// ->87786
/*87684*/   OPC_RecordChild0, // #0 = $src1
/*87685*/   OPC_Scope, 68, /*->87755*/ // 2 children in Scope
/*87687*/     OPC_MoveChild, 1,
/*87689*/     OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*87692*/     OPC_MoveChild, 0,
/*87694*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*87697*/     OPC_RecordMemRef,
/*87698*/     OPC_RecordNode, // #1 = 'ld' chained node
/*87699*/     OPC_CheckFoldableChainNode,
/*87700*/     OPC_RecordChild1, // #2 = $src2
/*87701*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*87703*/     OPC_CheckPredicate, 3, // Predicate_load
/*87705*/     OPC_CheckPredicate, 23, // Predicate_memop
/*87707*/     OPC_CheckType, MVT::v2i64,
/*87709*/     OPC_MoveParent,
/*87710*/     OPC_MoveParent,
/*87711*/     OPC_CheckType, MVT::v16i8,
/*87713*/     OPC_Scope, 19, /*->87734*/ // 2 children in Scope
/*87715*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*87717*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*87720*/       OPC_EmitMergeInputChains1_1,
/*87721*/       OPC_MorphNodeTo, TARGET_VAL(X86::VPUNPCKLBWrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (X86Punpcklbw:v16i8 VR128:v16i8:$src1, (bitconvert:v16i8 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 28
                // Dst: (VPUNPCKLBWrm:v16i8 VR128:v16i8:$src1, addr:iPTR:$src2)
/*87734*/     /*Scope*/ 19, /*->87754*/
/*87735*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*87737*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*87740*/       OPC_EmitMergeInputChains1_1,
/*87741*/       OPC_MorphNodeTo, TARGET_VAL(X86::PUNPCKLBWrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (X86Punpcklbw:v16i8 VR128:v16i8:$src1, (bitconvert:v16i8 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 28
                // Dst: (PUNPCKLBWrm:v16i8 VR128:v16i8:$src1, addr:iPTR:$src2)
/*87754*/     0, /*End of Scope*/
/*87755*/   /*Scope*/ 29, /*->87785*/
/*87756*/     OPC_RecordChild1, // #1 = $src2
/*87757*/     OPC_CheckType, MVT::v16i8,
/*87759*/     OPC_Scope, 11, /*->87772*/ // 2 children in Scope
/*87761*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*87763*/       OPC_MorphNodeTo, TARGET_VAL(X86::VPUNPCKLBWrr), 0,
                    1/*#VTs*/, MVT::v16i8, 2/*#Ops*/, 0, 1, 
                // Src: (X86Punpcklbw:v16i8 VR128:v16i8:$src1, VR128:v16i8:$src2) - Complexity = 3
                // Dst: (VPUNPCKLBWrr:v16i8 VR128:v16i8:$src1, VR128:v16i8:$src2)
/*87772*/     /*Scope*/ 11, /*->87784*/
/*87773*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*87775*/       OPC_MorphNodeTo, TARGET_VAL(X86::PUNPCKLBWrr), 0,
                    1/*#VTs*/, MVT::v16i8, 2/*#Ops*/, 0, 1, 
                // Src: (X86Punpcklbw:v16i8 VR128:v16i8:$src1, VR128:v16i8:$src2) - Complexity = 3
                // Dst: (PUNPCKLBWrr:v16i8 VR128:v16i8:$src1, VR128:v16i8:$src2)
/*87784*/     0, /*End of Scope*/
/*87785*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 102,  TARGET_VAL(X86ISD::PUNPCKLWD),// ->87891
/*87789*/   OPC_RecordChild0, // #0 = $src1
/*87790*/   OPC_Scope, 68, /*->87860*/ // 2 children in Scope
/*87792*/     OPC_MoveChild, 1,
/*87794*/     OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*87797*/     OPC_MoveChild, 0,
/*87799*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*87802*/     OPC_RecordMemRef,
/*87803*/     OPC_RecordNode, // #1 = 'ld' chained node
/*87804*/     OPC_CheckFoldableChainNode,
/*87805*/     OPC_RecordChild1, // #2 = $src2
/*87806*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*87808*/     OPC_CheckPredicate, 3, // Predicate_load
/*87810*/     OPC_CheckPredicate, 23, // Predicate_memop
/*87812*/     OPC_CheckType, MVT::v2i64,
/*87814*/     OPC_MoveParent,
/*87815*/     OPC_MoveParent,
/*87816*/     OPC_CheckType, MVT::v8i16,
/*87818*/     OPC_Scope, 19, /*->87839*/ // 2 children in Scope
/*87820*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*87822*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*87825*/       OPC_EmitMergeInputChains1_1,
/*87826*/       OPC_MorphNodeTo, TARGET_VAL(X86::VPUNPCKLWDrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (X86Punpcklwd:v8i16 VR128:v8i16:$src1, (bitconvert:v8i16 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 28
                // Dst: (VPUNPCKLWDrm:v8i16 VR128:v8i16:$src1, addr:iPTR:$src2)
/*87839*/     /*Scope*/ 19, /*->87859*/
/*87840*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*87842*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*87845*/       OPC_EmitMergeInputChains1_1,
/*87846*/       OPC_MorphNodeTo, TARGET_VAL(X86::PUNPCKLWDrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (X86Punpcklwd:v8i16 VR128:v8i16:$src1, (bitconvert:v8i16 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 28
                // Dst: (PUNPCKLWDrm:v8i16 VR128:v8i16:$src1, addr:iPTR:$src2)
/*87859*/     0, /*End of Scope*/
/*87860*/   /*Scope*/ 29, /*->87890*/
/*87861*/     OPC_RecordChild1, // #1 = $src2
/*87862*/     OPC_CheckType, MVT::v8i16,
/*87864*/     OPC_Scope, 11, /*->87877*/ // 2 children in Scope
/*87866*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*87868*/       OPC_MorphNodeTo, TARGET_VAL(X86::VPUNPCKLWDrr), 0,
                    1/*#VTs*/, MVT::v8i16, 2/*#Ops*/, 0, 1, 
                // Src: (X86Punpcklwd:v8i16 VR128:v8i16:$src1, VR128:v8i16:$src2) - Complexity = 3
                // Dst: (VPUNPCKLWDrr:v8i16 VR128:v8i16:$src1, VR128:v8i16:$src2)
/*87877*/     /*Scope*/ 11, /*->87889*/
/*87878*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*87880*/       OPC_MorphNodeTo, TARGET_VAL(X86::PUNPCKLWDrr), 0,
                    1/*#VTs*/, MVT::v8i16, 2/*#Ops*/, 0, 1, 
                // Src: (X86Punpcklwd:v8i16 VR128:v8i16:$src1, VR128:v8i16:$src2) - Complexity = 3
                // Dst: (PUNPCKLWDrr:v8i16 VR128:v8i16:$src1, VR128:v8i16:$src2)
/*87889*/     0, /*End of Scope*/
/*87890*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 102,  TARGET_VAL(X86ISD::PUNPCKLDQ),// ->87996
/*87894*/   OPC_RecordChild0, // #0 = $src1
/*87895*/   OPC_Scope, 68, /*->87965*/ // 2 children in Scope
/*87897*/     OPC_MoveChild, 1,
/*87899*/     OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*87902*/     OPC_MoveChild, 0,
/*87904*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*87907*/     OPC_RecordMemRef,
/*87908*/     OPC_RecordNode, // #1 = 'ld' chained node
/*87909*/     OPC_CheckFoldableChainNode,
/*87910*/     OPC_RecordChild1, // #2 = $src2
/*87911*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*87913*/     OPC_CheckPredicate, 3, // Predicate_load
/*87915*/     OPC_CheckPredicate, 23, // Predicate_memop
/*87917*/     OPC_CheckType, MVT::v2i64,
/*87919*/     OPC_MoveParent,
/*87920*/     OPC_MoveParent,
/*87921*/     OPC_CheckType, MVT::v4i32,
/*87923*/     OPC_Scope, 19, /*->87944*/ // 2 children in Scope
/*87925*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*87927*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*87930*/       OPC_EmitMergeInputChains1_1,
/*87931*/       OPC_MorphNodeTo, TARGET_VAL(X86::VPUNPCKLDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (X86Punpckldq:v4i32 VR128:v4i32:$src1, (bitconvert:v4i32 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 28
                // Dst: (VPUNPCKLDQrm:v4i32 VR128:v4i32:$src1, addr:iPTR:$src2)
/*87944*/     /*Scope*/ 19, /*->87964*/
/*87945*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*87947*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*87950*/       OPC_EmitMergeInputChains1_1,
/*87951*/       OPC_MorphNodeTo, TARGET_VAL(X86::PUNPCKLDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (X86Punpckldq:v4i32 VR128:v4i32:$src1, (bitconvert:v4i32 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 28
                // Dst: (PUNPCKLDQrm:v4i32 VR128:v4i32:$src1, addr:iPTR:$src2)
/*87964*/     0, /*End of Scope*/
/*87965*/   /*Scope*/ 29, /*->87995*/
/*87966*/     OPC_RecordChild1, // #1 = $src2
/*87967*/     OPC_CheckType, MVT::v4i32,
/*87969*/     OPC_Scope, 11, /*->87982*/ // 2 children in Scope
/*87971*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*87973*/       OPC_MorphNodeTo, TARGET_VAL(X86::VPUNPCKLDQrr), 0,
                    1/*#VTs*/, MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (X86Punpckldq:v4i32 VR128:v4i32:$src1, VR128:v4i32:$src2) - Complexity = 3
                // Dst: (VPUNPCKLDQrr:v4i32 VR128:v4i32:$src1, VR128:v4i32:$src2)
/*87982*/     /*Scope*/ 11, /*->87994*/
/*87983*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*87985*/       OPC_MorphNodeTo, TARGET_VAL(X86::PUNPCKLDQrr), 0,
                    1/*#VTs*/, MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (X86Punpckldq:v4i32 VR128:v4i32:$src1, VR128:v4i32:$src2) - Complexity = 3
                // Dst: (PUNPCKLDQrr:v4i32 VR128:v4i32:$src1, VR128:v4i32:$src2)
/*87994*/     0, /*End of Scope*/
/*87995*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 102,  TARGET_VAL(X86ISD::PUNPCKHBW),// ->88101
/*87999*/   OPC_RecordChild0, // #0 = $src1
/*88000*/   OPC_Scope, 68, /*->88070*/ // 2 children in Scope
/*88002*/     OPC_MoveChild, 1,
/*88004*/     OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*88007*/     OPC_MoveChild, 0,
/*88009*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*88012*/     OPC_RecordMemRef,
/*88013*/     OPC_RecordNode, // #1 = 'ld' chained node
/*88014*/     OPC_CheckFoldableChainNode,
/*88015*/     OPC_RecordChild1, // #2 = $src2
/*88016*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*88018*/     OPC_CheckPredicate, 3, // Predicate_load
/*88020*/     OPC_CheckPredicate, 23, // Predicate_memop
/*88022*/     OPC_CheckType, MVT::v2i64,
/*88024*/     OPC_MoveParent,
/*88025*/     OPC_MoveParent,
/*88026*/     OPC_CheckType, MVT::v16i8,
/*88028*/     OPC_Scope, 19, /*->88049*/ // 2 children in Scope
/*88030*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*88032*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*88035*/       OPC_EmitMergeInputChains1_1,
/*88036*/       OPC_MorphNodeTo, TARGET_VAL(X86::VPUNPCKHBWrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (X86Punpckhbw:v16i8 VR128:v16i8:$src1, (bitconvert:v16i8 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 28
                // Dst: (VPUNPCKHBWrm:v16i8 VR128:v16i8:$src1, addr:iPTR:$src2)
/*88049*/     /*Scope*/ 19, /*->88069*/
/*88050*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*88052*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*88055*/       OPC_EmitMergeInputChains1_1,
/*88056*/       OPC_MorphNodeTo, TARGET_VAL(X86::PUNPCKHBWrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (X86Punpckhbw:v16i8 VR128:v16i8:$src1, (bitconvert:v16i8 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 28
                // Dst: (PUNPCKHBWrm:v16i8 VR128:v16i8:$src1, addr:iPTR:$src2)
/*88069*/     0, /*End of Scope*/
/*88070*/   /*Scope*/ 29, /*->88100*/
/*88071*/     OPC_RecordChild1, // #1 = $src2
/*88072*/     OPC_CheckType, MVT::v16i8,
/*88074*/     OPC_Scope, 11, /*->88087*/ // 2 children in Scope
/*88076*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*88078*/       OPC_MorphNodeTo, TARGET_VAL(X86::VPUNPCKHBWrr), 0,
                    1/*#VTs*/, MVT::v16i8, 2/*#Ops*/, 0, 1, 
                // Src: (X86Punpckhbw:v16i8 VR128:v16i8:$src1, VR128:v16i8:$src2) - Complexity = 3
                // Dst: (VPUNPCKHBWrr:v16i8 VR128:v16i8:$src1, VR128:v16i8:$src2)
/*88087*/     /*Scope*/ 11, /*->88099*/
/*88088*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*88090*/       OPC_MorphNodeTo, TARGET_VAL(X86::PUNPCKHBWrr), 0,
                    1/*#VTs*/, MVT::v16i8, 2/*#Ops*/, 0, 1, 
                // Src: (X86Punpckhbw:v16i8 VR128:v16i8:$src1, VR128:v16i8:$src2) - Complexity = 3
                // Dst: (PUNPCKHBWrr:v16i8 VR128:v16i8:$src1, VR128:v16i8:$src2)
/*88099*/     0, /*End of Scope*/
/*88100*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 102,  TARGET_VAL(X86ISD::PUNPCKHWD),// ->88206
/*88104*/   OPC_RecordChild0, // #0 = $src1
/*88105*/   OPC_Scope, 68, /*->88175*/ // 2 children in Scope
/*88107*/     OPC_MoveChild, 1,
/*88109*/     OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*88112*/     OPC_MoveChild, 0,
/*88114*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*88117*/     OPC_RecordMemRef,
/*88118*/     OPC_RecordNode, // #1 = 'ld' chained node
/*88119*/     OPC_CheckFoldableChainNode,
/*88120*/     OPC_RecordChild1, // #2 = $src2
/*88121*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*88123*/     OPC_CheckPredicate, 3, // Predicate_load
/*88125*/     OPC_CheckPredicate, 23, // Predicate_memop
/*88127*/     OPC_CheckType, MVT::v2i64,
/*88129*/     OPC_MoveParent,
/*88130*/     OPC_MoveParent,
/*88131*/     OPC_CheckType, MVT::v8i16,
/*88133*/     OPC_Scope, 19, /*->88154*/ // 2 children in Scope
/*88135*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*88137*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*88140*/       OPC_EmitMergeInputChains1_1,
/*88141*/       OPC_MorphNodeTo, TARGET_VAL(X86::VPUNPCKHWDrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (X86Punpckhwd:v8i16 VR128:v8i16:$src1, (bitconvert:v8i16 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 28
                // Dst: (VPUNPCKHWDrm:v8i16 VR128:v8i16:$src1, addr:iPTR:$src2)
/*88154*/     /*Scope*/ 19, /*->88174*/
/*88155*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*88157*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*88160*/       OPC_EmitMergeInputChains1_1,
/*88161*/       OPC_MorphNodeTo, TARGET_VAL(X86::PUNPCKHWDrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (X86Punpckhwd:v8i16 VR128:v8i16:$src1, (bitconvert:v8i16 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 28
                // Dst: (PUNPCKHWDrm:v8i16 VR128:v8i16:$src1, addr:iPTR:$src2)
/*88174*/     0, /*End of Scope*/
/*88175*/   /*Scope*/ 29, /*->88205*/
/*88176*/     OPC_RecordChild1, // #1 = $src2
/*88177*/     OPC_CheckType, MVT::v8i16,
/*88179*/     OPC_Scope, 11, /*->88192*/ // 2 children in Scope
/*88181*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*88183*/       OPC_MorphNodeTo, TARGET_VAL(X86::VPUNPCKHWDrr), 0,
                    1/*#VTs*/, MVT::v8i16, 2/*#Ops*/, 0, 1, 
                // Src: (X86Punpckhwd:v8i16 VR128:v8i16:$src1, VR128:v8i16:$src2) - Complexity = 3
                // Dst: (VPUNPCKHWDrr:v8i16 VR128:v8i16:$src1, VR128:v8i16:$src2)
/*88192*/     /*Scope*/ 11, /*->88204*/
/*88193*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*88195*/       OPC_MorphNodeTo, TARGET_VAL(X86::PUNPCKHWDrr), 0,
                    1/*#VTs*/, MVT::v8i16, 2/*#Ops*/, 0, 1, 
                // Src: (X86Punpckhwd:v8i16 VR128:v8i16:$src1, VR128:v8i16:$src2) - Complexity = 3
                // Dst: (PUNPCKHWDrr:v8i16 VR128:v8i16:$src1, VR128:v8i16:$src2)
/*88204*/     0, /*End of Scope*/
/*88205*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 102,  TARGET_VAL(X86ISD::PUNPCKHDQ),// ->88311
/*88209*/   OPC_RecordChild0, // #0 = $src1
/*88210*/   OPC_Scope, 68, /*->88280*/ // 2 children in Scope
/*88212*/     OPC_MoveChild, 1,
/*88214*/     OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*88217*/     OPC_MoveChild, 0,
/*88219*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*88222*/     OPC_RecordMemRef,
/*88223*/     OPC_RecordNode, // #1 = 'ld' chained node
/*88224*/     OPC_CheckFoldableChainNode,
/*88225*/     OPC_RecordChild1, // #2 = $src2
/*88226*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*88228*/     OPC_CheckPredicate, 3, // Predicate_load
/*88230*/     OPC_CheckPredicate, 23, // Predicate_memop
/*88232*/     OPC_CheckType, MVT::v2i64,
/*88234*/     OPC_MoveParent,
/*88235*/     OPC_MoveParent,
/*88236*/     OPC_CheckType, MVT::v4i32,
/*88238*/     OPC_Scope, 19, /*->88259*/ // 2 children in Scope
/*88240*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*88242*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*88245*/       OPC_EmitMergeInputChains1_1,
/*88246*/       OPC_MorphNodeTo, TARGET_VAL(X86::VPUNPCKHDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (X86Punpckhdq:v4i32 VR128:v4i32:$src1, (bitconvert:v4i32 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 28
                // Dst: (VPUNPCKHDQrm:v4i32 VR128:v4i32:$src1, addr:iPTR:$src2)
/*88259*/     /*Scope*/ 19, /*->88279*/
/*88260*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*88262*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*88265*/       OPC_EmitMergeInputChains1_1,
/*88266*/       OPC_MorphNodeTo, TARGET_VAL(X86::PUNPCKHDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (X86Punpckhdq:v4i32 VR128:v4i32:$src1, (bitconvert:v4i32 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 28
                // Dst: (PUNPCKHDQrm:v4i32 VR128:v4i32:$src1, addr:iPTR:$src2)
/*88279*/     0, /*End of Scope*/
/*88280*/   /*Scope*/ 29, /*->88310*/
/*88281*/     OPC_RecordChild1, // #1 = $src2
/*88282*/     OPC_CheckType, MVT::v4i32,
/*88284*/     OPC_Scope, 11, /*->88297*/ // 2 children in Scope
/*88286*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*88288*/       OPC_MorphNodeTo, TARGET_VAL(X86::VPUNPCKHDQrr), 0,
                    1/*#VTs*/, MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (X86Punpckhdq:v4i32 VR128:v4i32:$src1, VR128:v4i32:$src2) - Complexity = 3
                // Dst: (VPUNPCKHDQrr:v4i32 VR128:v4i32:$src1, VR128:v4i32:$src2)
/*88297*/     /*Scope*/ 11, /*->88309*/
/*88298*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*88300*/       OPC_MorphNodeTo, TARGET_VAL(X86::PUNPCKHDQrr), 0,
                    1/*#VTs*/, MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (X86Punpckhdq:v4i32 VR128:v4i32:$src1, VR128:v4i32:$src2) - Complexity = 3
                // Dst: (PUNPCKHDQrr:v4i32 VR128:v4i32:$src1, VR128:v4i32:$src2)
/*88309*/     0, /*End of Scope*/
/*88310*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 116,  TARGET_VAL(X86ISD::PINSRW),// ->88430
/*88314*/   OPC_RecordChild0, // #0 = $src1
/*88315*/   OPC_Scope, 71, /*->88388*/ // 2 children in Scope
/*88317*/     OPC_MoveChild, 1,
/*88319*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*88322*/     OPC_RecordMemRef,
/*88323*/     OPC_RecordNode, // #1 = 'ld' chained node
/*88324*/     OPC_CheckFoldableChainNode,
/*88325*/     OPC_RecordChild1, // #2 = $src2
/*88326*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*88328*/     OPC_CheckPredicate, 37, // Predicate_extload
/*88330*/     OPC_CheckPredicate, 40, // Predicate_extloadi16
/*88332*/     OPC_MoveParent,
/*88333*/     OPC_RecordChild2, // #3 = $src3
/*88334*/     OPC_MoveChild, 2,
/*88336*/     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*88339*/     OPC_MoveParent,
/*88340*/     OPC_Scope, 22, /*->88364*/ // 2 children in Scope
/*88342*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*88344*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*88347*/       OPC_EmitMergeInputChains1_1,
/*88348*/       OPC_EmitConvertToTarget, 3,
/*88350*/       OPC_MorphNodeTo, TARGET_VAL(X86::VPINSRWrmi), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v8i16, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                // Src: (X86pinsrw:v8i16 VR128:v8i16:$src1, (ld:i32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi16>>, (imm:iPTR):$src3) - Complexity = 28
                // Dst: (VPINSRWrmi:v8i16 VR128:v8i16:$src1, addr:iPTR:$src2, (imm:i32):$src3)
/*88364*/     /*Scope*/ 22, /*->88387*/
/*88365*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*88367*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*88370*/       OPC_EmitMergeInputChains1_1,
/*88371*/       OPC_EmitConvertToTarget, 3,
/*88373*/       OPC_MorphNodeTo, TARGET_VAL(X86::PINSRWrmi), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v8i16, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                // Src: (X86pinsrw:v8i16 VR128:v8i16:$src1, (ld:i32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi16>>, (imm:iPTR):$src3) - Complexity = 28
                // Dst: (PINSRWrmi:v8i16 VR128:v8i16:$src1, addr:iPTR:$src2, (imm:i32):$src3)
/*88387*/     0, /*End of Scope*/
/*88388*/   /*Scope*/ 40, /*->88429*/
/*88389*/     OPC_RecordChild1, // #1 = $src2
/*88390*/     OPC_RecordChild2, // #2 = $src3
/*88391*/     OPC_MoveChild, 2,
/*88393*/     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*88396*/     OPC_MoveParent,
/*88397*/     OPC_Scope, 14, /*->88413*/ // 2 children in Scope
/*88399*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*88401*/       OPC_EmitConvertToTarget, 2,
/*88403*/       OPC_MorphNodeTo, TARGET_VAL(X86::VPINSRWrri), 0,
                    1/*#VTs*/, MVT::v8i16, 3/*#Ops*/, 0, 1, 3, 
                // Src: (X86pinsrw:v8i16 VR128:v8i16:$src1, GR32:i32:$src2, (imm:iPTR):$src3) - Complexity = 6
                // Dst: (VPINSRWrri:v8i16 VR128:v8i16:$src1, GR32:i32:$src2, (imm:i32):$src3)
/*88413*/     /*Scope*/ 14, /*->88428*/
/*88414*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*88416*/       OPC_EmitConvertToTarget, 2,
/*88418*/       OPC_MorphNodeTo, TARGET_VAL(X86::PINSRWrri), 0,
                    1/*#VTs*/, MVT::v8i16, 3/*#Ops*/, 0, 1, 3, 
                // Src: (X86pinsrw:v8i16 VR128:v8i16:$src1, GR32:i32:$src2, (imm:iPTR):$src3) - Complexity = 6
                // Dst: (PINSRWrri:v8i16 VR128:v8i16:$src1, GR32:i32:$src2, (imm:i32):$src3)
/*88428*/     0, /*End of Scope*/
/*88429*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 3|128,2/*259*/,  TARGET_VAL(X86ISD::MOVSHDUP),// ->88693
/*88434*/   OPC_Scope, 92, /*->88528*/ // 4 children in Scope
/*88436*/     OPC_MoveChild, 0,
/*88438*/     OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*88441*/     OPC_MoveChild, 0,
/*88443*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*88446*/     OPC_RecordMemRef,
/*88447*/     OPC_RecordNode, // #0 = 'ld' chained node
/*88448*/     OPC_CheckFoldableChainNode,
/*88449*/     OPC_RecordChild1, // #1 = $src
/*88450*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*88452*/     OPC_CheckPredicate, 3, // Predicate_load
/*88454*/     OPC_CheckPredicate, 23, // Predicate_memop
/*88456*/     OPC_SwitchType /*2 cases */, 44,  MVT::v2i64,// ->88503
/*88459*/       OPC_MoveParent,
/*88460*/       OPC_MoveParent,
/*88461*/       OPC_CheckType, MVT::v4i32,
/*88463*/       OPC_Scope, 18, /*->88483*/ // 2 children in Scope
/*88465*/         OPC_CheckPatternPredicate, 16, // (Subtarget->hasSSE3())
/*88467*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*88470*/         OPC_EmitMergeInputChains1_0,
/*88471*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOVSHDUPrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (X86Movshdup:v4i32 (bitconvert:v4i32 (ld:v2i64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 28
                  // Dst: (MOVSHDUPrm:v4i32 addr:iPTR:$src)
/*88483*/       /*Scope*/ 18, /*->88502*/
/*88484*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*88486*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*88489*/         OPC_EmitMergeInputChains1_0,
/*88490*/         OPC_MorphNodeTo, TARGET_VAL(X86::VMOVSHDUPrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (X86Movshdup:v4i32 (bitconvert:v4i32 (ld:v2i64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 28
                  // Dst: (VMOVSHDUPrm:v4i32 addr:iPTR:$src)
/*88502*/       0, /*End of Scope*/
              /*SwitchType*/ 22,  MVT::v4i64,// ->88527
/*88505*/       OPC_MoveParent,
/*88506*/       OPC_MoveParent,
/*88507*/       OPC_CheckType, MVT::v8i32,
/*88509*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*88511*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*88514*/       OPC_EmitMergeInputChains1_0,
/*88515*/       OPC_MorphNodeTo, TARGET_VAL(X86::VMOVSHDUPYrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v8i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (X86Movshdup:v8i32 (bitconvert:v8i32 (ld:v4i64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 28
                // Dst: (VMOVSHDUPYrm:v8i32 addr:iPTR:$src)
              0, // EndSwitchType
/*88528*/   /*Scope*/ 41, /*->88570*/
/*88529*/     OPC_RecordChild0, // #0 = $src
/*88530*/     OPC_SwitchType /*2 cases */, 24,  MVT::v4i32,// ->88557
/*88533*/       OPC_Scope, 10, /*->88545*/ // 2 children in Scope
/*88535*/         OPC_CheckPatternPredicate, 16, // (Subtarget->hasSSE3())
/*88537*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOVSHDUPrr), 0,
                      1/*#VTs*/, MVT::v4i32, 1/*#Ops*/, 0, 
                  // Src: (X86Movshdup:v4i32 VR128:v4i32:$src) - Complexity = 3
                  // Dst: (MOVSHDUPrr:v4i32 VR128:v4i32:$src)
/*88545*/       /*Scope*/ 10, /*->88556*/
/*88546*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*88548*/         OPC_MorphNodeTo, TARGET_VAL(X86::VMOVSHDUPrr), 0,
                      1/*#VTs*/, MVT::v4i32, 1/*#Ops*/, 0, 
                  // Src: (X86Movshdup:v4i32 VR128:v4i32:$src) - Complexity = 3
                  // Dst: (VMOVSHDUPrr:v4i32 VR128:v4i32:$src)
/*88556*/       0, /*End of Scope*/
              /*SwitchType*/ 10,  MVT::v8i32,// ->88569
/*88559*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*88561*/       OPC_MorphNodeTo, TARGET_VAL(X86::VMOVSHDUPYrr), 0,
                    1/*#VTs*/, MVT::v8i32, 1/*#Ops*/, 0, 
                // Src: (X86Movshdup:v8i32 VR256:v8i32:$src) - Complexity = 3
                // Dst: (VMOVSHDUPYrr:v8i32 VR256:v8i32:$src)
              0, // EndSwitchType
/*88570*/   /*Scope*/ 79, /*->88650*/
/*88571*/     OPC_MoveChild, 0,
/*88573*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*88576*/     OPC_RecordMemRef,
/*88577*/     OPC_RecordNode, // #0 = 'ld' chained node
/*88578*/     OPC_RecordChild1, // #1 = $src
/*88579*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*88581*/     OPC_CheckPredicate, 3, // Predicate_load
/*88583*/     OPC_CheckPredicate, 23, // Predicate_memop
/*88585*/     OPC_MoveParent,
/*88586*/     OPC_SwitchType /*2 cases */, 40,  MVT::v4f32,// ->88629
/*88589*/       OPC_Scope, 18, /*->88609*/ // 2 children in Scope
/*88591*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*88593*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*88596*/         OPC_EmitMergeInputChains1_0,
/*88597*/         OPC_MorphNodeTo, TARGET_VAL(X86::VMOVSHDUPrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (X86Movshdup:v4f32 (ld:v4f32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                  // Dst: (VMOVSHDUPrm:v4f32 addr:iPTR:$src)
/*88609*/       /*Scope*/ 18, /*->88628*/
/*88610*/         OPC_CheckPatternPredicate, 16, // (Subtarget->hasSSE3())
/*88612*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*88615*/         OPC_EmitMergeInputChains1_0,
/*88616*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOVSHDUPrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (X86Movshdup:v4f32 (ld:v4f32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                  // Dst: (MOVSHDUPrm:v4f32 addr:iPTR:$src)
/*88628*/       0, /*End of Scope*/
              /*SwitchType*/ 18,  MVT::v8f32,// ->88649
/*88631*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*88633*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*88636*/       OPC_EmitMergeInputChains1_0,
/*88637*/       OPC_MorphNodeTo, TARGET_VAL(X86::VMOVSHDUPYrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v8f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (X86Movshdup:v8f32 (ld:v8f32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                // Dst: (VMOVSHDUPYrm:v8f32 addr:iPTR:$src)
              0, // EndSwitchType
/*88650*/   /*Scope*/ 41, /*->88692*/
/*88651*/     OPC_RecordChild0, // #0 = $src
/*88652*/     OPC_SwitchType /*2 cases */, 24,  MVT::v4f32,// ->88679
/*88655*/       OPC_Scope, 10, /*->88667*/ // 2 children in Scope
/*88657*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*88659*/         OPC_MorphNodeTo, TARGET_VAL(X86::VMOVSHDUPrr), 0,
                      1/*#VTs*/, MVT::v4f32, 1/*#Ops*/, 0, 
                  // Src: (X86Movshdup:v4f32 VR128:v4f32:$src) - Complexity = 3
                  // Dst: (VMOVSHDUPrr:v4f32 VR128:v4f32:$src)
/*88667*/       /*Scope*/ 10, /*->88678*/
/*88668*/         OPC_CheckPatternPredicate, 16, // (Subtarget->hasSSE3())
/*88670*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOVSHDUPrr), 0,
                      1/*#VTs*/, MVT::v4f32, 1/*#Ops*/, 0, 
                  // Src: (X86Movshdup:v4f32 VR128:v4f32:$src) - Complexity = 3
                  // Dst: (MOVSHDUPrr:v4f32 VR128:v4f32:$src)
/*88678*/       0, /*End of Scope*/
              /*SwitchType*/ 10,  MVT::v8f32,// ->88691
/*88681*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*88683*/       OPC_MorphNodeTo, TARGET_VAL(X86::VMOVSHDUPYrr), 0,
                    1/*#VTs*/, MVT::v8f32, 1/*#Ops*/, 0, 
                // Src: (X86Movshdup:v8f32 VR256:v8f32:$src) - Complexity = 3
                // Dst: (VMOVSHDUPYrr:v8f32 VR256:v8f32:$src)
              0, // EndSwitchType
/*88692*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 3|128,2/*259*/,  TARGET_VAL(X86ISD::MOVSLDUP),// ->88956
/*88697*/   OPC_Scope, 92, /*->88791*/ // 4 children in Scope
/*88699*/     OPC_MoveChild, 0,
/*88701*/     OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*88704*/     OPC_MoveChild, 0,
/*88706*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*88709*/     OPC_RecordMemRef,
/*88710*/     OPC_RecordNode, // #0 = 'ld' chained node
/*88711*/     OPC_CheckFoldableChainNode,
/*88712*/     OPC_RecordChild1, // #1 = $src
/*88713*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*88715*/     OPC_CheckPredicate, 3, // Predicate_load
/*88717*/     OPC_CheckPredicate, 23, // Predicate_memop
/*88719*/     OPC_SwitchType /*2 cases */, 44,  MVT::v2i64,// ->88766
/*88722*/       OPC_MoveParent,
/*88723*/       OPC_MoveParent,
/*88724*/       OPC_CheckType, MVT::v4i32,
/*88726*/       OPC_Scope, 18, /*->88746*/ // 2 children in Scope
/*88728*/         OPC_CheckPatternPredicate, 16, // (Subtarget->hasSSE3())
/*88730*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*88733*/         OPC_EmitMergeInputChains1_0,
/*88734*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOVSLDUPrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (X86Movsldup:v4i32 (bitconvert:v4i32 (ld:v2i64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 28
                  // Dst: (MOVSLDUPrm:v4i32 addr:iPTR:$src)
/*88746*/       /*Scope*/ 18, /*->88765*/
/*88747*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*88749*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*88752*/         OPC_EmitMergeInputChains1_0,
/*88753*/         OPC_MorphNodeTo, TARGET_VAL(X86::VMOVSLDUPrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (X86Movsldup:v4i32 (bitconvert:v4i32 (ld:v2i64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 28
                  // Dst: (VMOVSLDUPrm:v4i32 addr:iPTR:$src)
/*88765*/       0, /*End of Scope*/
              /*SwitchType*/ 22,  MVT::v4i64,// ->88790
/*88768*/       OPC_MoveParent,
/*88769*/       OPC_MoveParent,
/*88770*/       OPC_CheckType, MVT::v8i32,
/*88772*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*88774*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*88777*/       OPC_EmitMergeInputChains1_0,
/*88778*/       OPC_MorphNodeTo, TARGET_VAL(X86::VMOVSLDUPYrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v8i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (X86Movsldup:v8i32 (bitconvert:v8i32 (ld:v4i64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 28
                // Dst: (VMOVSLDUPYrm:v8i32 addr:iPTR:$src)
              0, // EndSwitchType
/*88791*/   /*Scope*/ 41, /*->88833*/
/*88792*/     OPC_RecordChild0, // #0 = $src
/*88793*/     OPC_SwitchType /*2 cases */, 24,  MVT::v4i32,// ->88820
/*88796*/       OPC_Scope, 10, /*->88808*/ // 2 children in Scope
/*88798*/         OPC_CheckPatternPredicate, 16, // (Subtarget->hasSSE3())
/*88800*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOVSLDUPrr), 0,
                      1/*#VTs*/, MVT::v4i32, 1/*#Ops*/, 0, 
                  // Src: (X86Movsldup:v4i32 VR128:v4i32:$src) - Complexity = 3
                  // Dst: (MOVSLDUPrr:v4i32 VR128:v4i32:$src)
/*88808*/       /*Scope*/ 10, /*->88819*/
/*88809*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*88811*/         OPC_MorphNodeTo, TARGET_VAL(X86::VMOVSLDUPrr), 0,
                      1/*#VTs*/, MVT::v4i32, 1/*#Ops*/, 0, 
                  // Src: (X86Movsldup:v4i32 VR128:v4i32:$src) - Complexity = 3
                  // Dst: (VMOVSLDUPrr:v4i32 VR128:v4i32:$src)
/*88819*/       0, /*End of Scope*/
              /*SwitchType*/ 10,  MVT::v8i32,// ->88832
/*88822*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*88824*/       OPC_MorphNodeTo, TARGET_VAL(X86::VMOVSLDUPYrr), 0,
                    1/*#VTs*/, MVT::v8i32, 1/*#Ops*/, 0, 
                // Src: (X86Movsldup:v8i32 VR256:v8i32:$src) - Complexity = 3
                // Dst: (VMOVSLDUPYrr:v8i32 VR256:v8i32:$src)
              0, // EndSwitchType
/*88833*/   /*Scope*/ 79, /*->88913*/
/*88834*/     OPC_MoveChild, 0,
/*88836*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*88839*/     OPC_RecordMemRef,
/*88840*/     OPC_RecordNode, // #0 = 'ld' chained node
/*88841*/     OPC_RecordChild1, // #1 = $src
/*88842*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*88844*/     OPC_CheckPredicate, 3, // Predicate_load
/*88846*/     OPC_CheckPredicate, 23, // Predicate_memop
/*88848*/     OPC_MoveParent,
/*88849*/     OPC_SwitchType /*2 cases */, 40,  MVT::v4f32,// ->88892
/*88852*/       OPC_Scope, 18, /*->88872*/ // 2 children in Scope
/*88854*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*88856*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*88859*/         OPC_EmitMergeInputChains1_0,
/*88860*/         OPC_MorphNodeTo, TARGET_VAL(X86::VMOVSLDUPrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (X86Movsldup:v4f32 (ld:v4f32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                  // Dst: (VMOVSLDUPrm:v4f32 addr:iPTR:$src)
/*88872*/       /*Scope*/ 18, /*->88891*/
/*88873*/         OPC_CheckPatternPredicate, 16, // (Subtarget->hasSSE3())
/*88875*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*88878*/         OPC_EmitMergeInputChains1_0,
/*88879*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOVSLDUPrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (X86Movsldup:v4f32 (ld:v4f32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                  // Dst: (MOVSLDUPrm:v4f32 addr:iPTR:$src)
/*88891*/       0, /*End of Scope*/
              /*SwitchType*/ 18,  MVT::v8f32,// ->88912
/*88894*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*88896*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*88899*/       OPC_EmitMergeInputChains1_0,
/*88900*/       OPC_MorphNodeTo, TARGET_VAL(X86::VMOVSLDUPYrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v8f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (X86Movsldup:v8f32 (ld:v8f32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                // Dst: (VMOVSLDUPYrm:v8f32 addr:iPTR:$src)
              0, // EndSwitchType
/*88913*/   /*Scope*/ 41, /*->88955*/
/*88914*/     OPC_RecordChild0, // #0 = $src
/*88915*/     OPC_SwitchType /*2 cases */, 24,  MVT::v4f32,// ->88942
/*88918*/       OPC_Scope, 10, /*->88930*/ // 2 children in Scope
/*88920*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*88922*/         OPC_MorphNodeTo, TARGET_VAL(X86::VMOVSLDUPrr), 0,
                      1/*#VTs*/, MVT::v4f32, 1/*#Ops*/, 0, 
                  // Src: (X86Movsldup:v4f32 VR128:v4f32:$src) - Complexity = 3
                  // Dst: (VMOVSLDUPrr:v4f32 VR128:v4f32:$src)
/*88930*/       /*Scope*/ 10, /*->88941*/
/*88931*/         OPC_CheckPatternPredicate, 16, // (Subtarget->hasSSE3())
/*88933*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOVSLDUPrr), 0,
                      1/*#VTs*/, MVT::v4f32, 1/*#Ops*/, 0, 
                  // Src: (X86Movsldup:v4f32 VR128:v4f32:$src) - Complexity = 3
                  // Dst: (MOVSLDUPrr:v4f32 VR128:v4f32:$src)
/*88941*/       0, /*End of Scope*/
              /*SwitchType*/ 10,  MVT::v8f32,// ->88954
/*88944*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*88946*/       OPC_MorphNodeTo, TARGET_VAL(X86::VMOVSLDUPYrr), 0,
                    1/*#VTs*/, MVT::v8f32, 1/*#Ops*/, 0, 
                // Src: (X86Movsldup:v8f32 VR256:v8f32:$src) - Complexity = 3
                // Dst: (VMOVSLDUPYrr:v8f32 VR256:v8f32:$src)
              0, // EndSwitchType
/*88955*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 101|128,3/*485*/,  TARGET_VAL(X86ISD::MOVDDUP),// ->89445
/*88960*/   OPC_Scope, 77, /*->89039*/ // 4 children in Scope
/*88962*/     OPC_MoveChild, 0,
/*88964*/     OPC_SwitchOpcode /*2 cases */, 37,  TARGET_VAL(ISD::SCALAR_TO_VECTOR),// ->89005
/*88968*/       OPC_MoveChild, 0,
/*88970*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*88973*/       OPC_RecordMemRef,
/*88974*/       OPC_RecordNode, // #0 = 'ld' chained node
/*88975*/       OPC_CheckFoldableChainNode,
/*88976*/       OPC_RecordChild1, // #1 = $src
/*88977*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*88979*/       OPC_CheckPredicate, 3, // Predicate_load
/*88981*/       OPC_CheckType, MVT::i64,
/*88983*/       OPC_MoveParent,
/*88984*/       OPC_MoveParent,
/*88985*/       OPC_CheckType, MVT::v4i64,
/*88987*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*88989*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*88992*/       OPC_EmitMergeInputChains1_0,
/*88993*/       OPC_MorphNodeTo, TARGET_VAL(X86::VMOVDDUPYrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (X86Movddup:v4i64 (scalar_to_vector:v4i64 (ld:i64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                // Dst: (VMOVDDUPYrm:v4i64 addr:iPTR:$src)
              /*SwitchOpcode*/ 30,  TARGET_VAL(ISD::LOAD),// ->89038
/*89008*/       OPC_RecordMemRef,
/*89009*/       OPC_RecordNode, // #0 = 'ld' chained node
/*89010*/       OPC_RecordChild1, // #1 = $src
/*89011*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*89013*/       OPC_CheckPredicate, 3, // Predicate_load
/*89015*/       OPC_CheckPredicate, 23, // Predicate_memop
/*89017*/       OPC_MoveParent,
/*89018*/       OPC_CheckType, MVT::v4i64,
/*89020*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*89022*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*89025*/       OPC_EmitMergeInputChains1_0,
/*89026*/       OPC_MorphNodeTo, TARGET_VAL(X86::VMOVDDUPYrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (X86Movddup:v4i64 (ld:v4i64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                // Dst: (VMOVDDUPYrm:v4i64 addr:iPTR:$src)
              0, // EndSwitchOpcode
/*89039*/   /*Scope*/ 13, /*->89053*/
/*89040*/     OPC_RecordChild0, // #0 = $src
/*89041*/     OPC_CheckType, MVT::v4i64,
/*89043*/     OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*89045*/     OPC_MorphNodeTo, TARGET_VAL(X86::VMOVDDUPYrr), 0,
                  1/*#VTs*/, MVT::v4i64, 1/*#Ops*/, 0, 
              // Src: (X86Movddup:v4i64 VR256:v4i64:$src) - Complexity = 3
              // Dst: (VMOVDDUPYrr:v4i64 VR256:v4i64:$src)
/*89053*/   /*Scope*/ 89|128,2/*345*/, /*->89400*/
/*89055*/     OPC_MoveChild, 0,
/*89057*/     OPC_SwitchOpcode /*3 cases */, 48|128,1/*176*/,  TARGET_VAL(ISD::BITCAST),// ->89238
/*89062*/       OPC_MoveChild, 0,
/*89064*/       OPC_SwitchOpcode /*2 cases */, 62,  TARGET_VAL(ISD::SCALAR_TO_VECTOR),// ->89130
/*89068*/         OPC_MoveChild, 0,
/*89070*/         OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*89073*/         OPC_RecordMemRef,
/*89074*/         OPC_RecordNode, // #0 = 'ld' chained node
/*89075*/         OPC_CheckFoldableChainNode,
/*89076*/         OPC_RecordChild1, // #1 = $src
/*89077*/         OPC_CheckPredicate, 2, // Predicate_unindexedload
/*89079*/         OPC_CheckPredicate, 3, // Predicate_load
/*89081*/         OPC_CheckType, MVT::i64,
/*89083*/         OPC_MoveParent,
/*89084*/         OPC_CheckType, MVT::v2i64,
/*89086*/         OPC_MoveParent,
/*89087*/         OPC_MoveParent,
/*89088*/         OPC_CheckType, MVT::v2f64,
/*89090*/         OPC_Scope, 18, /*->89110*/ // 2 children in Scope
/*89092*/           OPC_CheckPatternPredicate, 16, // (Subtarget->hasSSE3())
/*89094*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*89097*/           OPC_EmitMergeInputChains1_0,
/*89098*/           OPC_MorphNodeTo, TARGET_VAL(X86::MOVDDUPrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v2f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86Movddup:v2f64 (bitconvert:v2f64 (scalar_to_vector:v2i64 (ld:i64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 31
                    // Dst: (MOVDDUPrm:v2f64 addr:iPTR:$src)
/*89110*/         /*Scope*/ 18, /*->89129*/
/*89111*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*89113*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*89116*/           OPC_EmitMergeInputChains1_0,
/*89117*/           OPC_MorphNodeTo, TARGET_VAL(X86::VMOVDDUPrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v2f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86Movddup:v2f64 (bitconvert:v2f64 (scalar_to_vector:v2i64 (ld:i64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 31
                    // Dst: (VMOVDDUPrm:v2f64 addr:iPTR:$src)
/*89129*/         0, /*End of Scope*/
                /*SwitchOpcode*/ 104,  TARGET_VAL(ISD::LOAD),// ->89237
/*89133*/         OPC_RecordMemRef,
/*89134*/         OPC_RecordNode, // #0 = 'ld' chained node
/*89135*/         OPC_CheckFoldableChainNode,
/*89136*/         OPC_RecordChild1, // #1 = $src
/*89137*/         OPC_CheckPredicate, 2, // Predicate_unindexedload
/*89139*/         OPC_CheckPredicate, 3, // Predicate_load
/*89141*/         OPC_CheckPredicate, 23, // Predicate_memop
/*89143*/         OPC_SwitchType /*2 cases */, 44,  MVT::v4f32,// ->89190
/*89146*/           OPC_MoveParent,
/*89147*/           OPC_MoveParent,
/*89148*/           OPC_CheckType, MVT::v2f64,
/*89150*/           OPC_Scope, 18, /*->89170*/ // 2 children in Scope
/*89152*/             OPC_CheckPatternPredicate, 16, // (Subtarget->hasSSE3())
/*89154*/             OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*89157*/             OPC_EmitMergeInputChains1_0,
/*89158*/             OPC_MorphNodeTo, TARGET_VAL(X86::MOVDDUPrm), 0|OPFL_Chain|OPFL_MemRefs,
                          1/*#VTs*/, MVT::v2f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86Movddup:v2f64 (bitconvert:v2f64 (ld:v4f32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 28
                      // Dst: (MOVDDUPrm:v2f64 addr:iPTR:$src)
/*89170*/           /*Scope*/ 18, /*->89189*/
/*89171*/             OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*89173*/             OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*89176*/             OPC_EmitMergeInputChains1_0,
/*89177*/             OPC_MorphNodeTo, TARGET_VAL(X86::VMOVDDUPrm), 0|OPFL_Chain|OPFL_MemRefs,
                          1/*#VTs*/, MVT::v2f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86Movddup:v2f64 (bitconvert:v2f64 (ld:v4f32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 28
                      // Dst: (VMOVDDUPrm:v2f64 addr:iPTR:$src)
/*89189*/           0, /*End of Scope*/
                  /*SwitchType*/ 44,  MVT::v2i64,// ->89236
/*89192*/           OPC_MoveParent,
/*89193*/           OPC_MoveParent,
/*89194*/           OPC_CheckType, MVT::v2f64,
/*89196*/           OPC_Scope, 18, /*->89216*/ // 2 children in Scope
/*89198*/             OPC_CheckPatternPredicate, 16, // (Subtarget->hasSSE3())
/*89200*/             OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*89203*/             OPC_EmitMergeInputChains1_0,
/*89204*/             OPC_MorphNodeTo, TARGET_VAL(X86::MOVDDUPrm), 0|OPFL_Chain|OPFL_MemRefs,
                          1/*#VTs*/, MVT::v2f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86Movddup:v2f64 (bitconvert:v2f64 (ld:v2i64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 28
                      // Dst: (MOVDDUPrm:v2f64 addr:iPTR:$src)
/*89216*/           /*Scope*/ 18, /*->89235*/
/*89217*/             OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*89219*/             OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*89222*/             OPC_EmitMergeInputChains1_0,
/*89223*/             OPC_MorphNodeTo, TARGET_VAL(X86::VMOVDDUPrm), 0|OPFL_Chain|OPFL_MemRefs,
                          1/*#VTs*/, MVT::v2f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86Movddup:v2f64 (bitconvert:v2f64 (ld:v2i64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 28
                      // Dst: (VMOVDDUPrm:v2f64 addr:iPTR:$src)
/*89235*/           0, /*End of Scope*/
                  0, // EndSwitchType
                0, // EndSwitchOpcode
              /*SwitchOpcode*/ 81,  TARGET_VAL(ISD::SCALAR_TO_VECTOR),// ->89322
/*89241*/       OPC_MoveChild, 0,
/*89243*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*89246*/       OPC_RecordMemRef,
/*89247*/       OPC_RecordNode, // #0 = 'ld' chained node
/*89248*/       OPC_CheckFoldableChainNode,
/*89249*/       OPC_RecordChild1, // #1 = $src
/*89250*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*89252*/       OPC_CheckPredicate, 3, // Predicate_load
/*89254*/       OPC_CheckType, MVT::f64,
/*89256*/       OPC_MoveParent,
/*89257*/       OPC_MoveParent,
/*89258*/       OPC_SwitchType /*2 cases */, 40,  MVT::v2f64,// ->89301
/*89261*/         OPC_Scope, 18, /*->89281*/ // 2 children in Scope
/*89263*/           OPC_CheckPatternPredicate, 16, // (Subtarget->hasSSE3())
/*89265*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*89268*/           OPC_EmitMergeInputChains1_0,
/*89269*/           OPC_MorphNodeTo, TARGET_VAL(X86::MOVDDUPrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v2f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86Movddup:v2f64 (scalar_to_vector:v2f64 (ld:f64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                    // Dst: (MOVDDUPrm:v2f64 addr:iPTR:$src)
/*89281*/         /*Scope*/ 18, /*->89300*/
/*89282*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*89284*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*89287*/           OPC_EmitMergeInputChains1_0,
/*89288*/           OPC_MorphNodeTo, TARGET_VAL(X86::VMOVDDUPrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v2f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86Movddup:v2f64 (scalar_to_vector:v2f64 (ld:f64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                    // Dst: (VMOVDDUPrm:v2f64 addr:iPTR:$src)
/*89300*/         0, /*End of Scope*/
                /*SwitchType*/ 18,  MVT::v4f64,// ->89321
/*89303*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*89305*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*89308*/         OPC_EmitMergeInputChains1_0,
/*89309*/         OPC_MorphNodeTo, TARGET_VAL(X86::VMOVDDUPYrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (X86Movddup:v4f64 (scalar_to_vector:v4f64 (ld:f64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                  // Dst: (VMOVDDUPYrm:v4f64 addr:iPTR:$src)
                0, // EndSwitchType
              /*SwitchOpcode*/ 74,  TARGET_VAL(ISD::LOAD),// ->89399
/*89325*/       OPC_RecordMemRef,
/*89326*/       OPC_RecordNode, // #0 = 'ld' chained node
/*89327*/       OPC_RecordChild1, // #1 = $src
/*89328*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*89330*/       OPC_CheckPredicate, 3, // Predicate_load
/*89332*/       OPC_CheckPredicate, 23, // Predicate_memop
/*89334*/       OPC_MoveParent,
/*89335*/       OPC_SwitchType /*2 cases */, 40,  MVT::v2f64,// ->89378
/*89338*/         OPC_Scope, 18, /*->89358*/ // 2 children in Scope
/*89340*/           OPC_CheckPatternPredicate, 16, // (Subtarget->hasSSE3())
/*89342*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*89345*/           OPC_EmitMergeInputChains1_0,
/*89346*/           OPC_MorphNodeTo, TARGET_VAL(X86::MOVDDUPrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v2f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86Movddup:v2f64 (ld:v2f64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                    // Dst: (MOVDDUPrm:v2f64 addr:iPTR:$src)
/*89358*/         /*Scope*/ 18, /*->89377*/
/*89359*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*89361*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*89364*/           OPC_EmitMergeInputChains1_0,
/*89365*/           OPC_MorphNodeTo, TARGET_VAL(X86::VMOVDDUPrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1/*#VTs*/, MVT::v2f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86Movddup:v2f64 (ld:v2f64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                    // Dst: (VMOVDDUPrm:v2f64 addr:iPTR:$src)
/*89377*/         0, /*End of Scope*/
                /*SwitchType*/ 18,  MVT::v4f64,// ->89398
/*89380*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*89382*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*89385*/         OPC_EmitMergeInputChains1_0,
/*89386*/         OPC_MorphNodeTo, TARGET_VAL(X86::VMOVDDUPYrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (X86Movddup:v4f64 (ld:v4f64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                  // Dst: (VMOVDDUPYrm:v4f64 addr:iPTR:$src)
                0, // EndSwitchType
              0, // EndSwitchOpcode
/*89400*/   /*Scope*/ 43, /*->89444*/
/*89401*/     OPC_RecordChild0, // #0 = $src
/*89402*/     OPC_SwitchType /*2 cases */, 26,  MVT::v2f64,// ->89431
/*89405*/       OPC_Scope, 11, /*->89418*/ // 2 children in Scope
/*89407*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*89409*/         OPC_MorphNodeTo, TARGET_VAL(X86::UNPCKLPDrr), 0,
                      1/*#VTs*/, MVT::v2f64, 2/*#Ops*/, 0, 0, 
                  // Src: (X86Movddup:v2f64 VR128:v2f64:$src) - Complexity = 3
                  // Dst: (UNPCKLPDrr:v2f64 VR128:v2f64:$src, VR128:v2f64:$src)
/*89418*/       /*Scope*/ 11, /*->89430*/
/*89419*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*89421*/         OPC_MorphNodeTo, TARGET_VAL(X86::VUNPCKLPDrr), 0,
                      1/*#VTs*/, MVT::v2f64, 2/*#Ops*/, 0, 0, 
                  // Src: (X86Movddup:v2f64 VR128:v2f64:$src) - Complexity = 3
                  // Dst: (VUNPCKLPDrr:v2f64 VR128:v2f64:$src, VR128:v2f64:$src)
/*89430*/       0, /*End of Scope*/
              /*SwitchType*/ 10,  MVT::v4f64,// ->89443
/*89433*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*89435*/       OPC_MorphNodeTo, TARGET_VAL(X86::VMOVDDUPYrr), 0,
                    1/*#VTs*/, MVT::v4f64, 1/*#Ops*/, 0, 
                // Src: (X86Movddup:v4f64 VR256:v4f64:$src) - Complexity = 3
                // Dst: (VMOVDDUPYrr:v4f64 VR256:v4f64:$src)
              0, // EndSwitchType
/*89444*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 98,  TARGET_VAL(X86ISD::PSHUFB),// ->89546
/*89448*/   OPC_RecordChild0, // #0 = $src
/*89449*/   OPC_Scope, 66, /*->89517*/ // 2 children in Scope
/*89451*/     OPC_MoveChild, 1,
/*89453*/     OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*89456*/     OPC_MoveChild, 0,
/*89458*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*89461*/     OPC_RecordMemRef,
/*89462*/     OPC_RecordNode, // #1 = 'ld' chained node
/*89463*/     OPC_CheckFoldableChainNode,
/*89464*/     OPC_RecordChild1, // #2 = $mask
/*89465*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*89467*/     OPC_CheckPredicate, 3, // Predicate_load
/*89469*/     OPC_CheckPredicate, 23, // Predicate_memop
/*89471*/     OPC_CheckType, MVT::v2i64,
/*89473*/     OPC_MoveParent,
/*89474*/     OPC_MoveParent,
/*89475*/     OPC_Scope, 19, /*->89496*/ // 2 children in Scope
/*89477*/       OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*89479*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$mask #3 #4 #5 #6 #7
/*89482*/       OPC_EmitMergeInputChains1_1,
/*89483*/       OPC_MorphNodeTo, TARGET_VAL(X86::PSHUFBrm128), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (X86pshufb:v16i8 VR128:v16i8:$src, (bitconvert:v16i8 (ld:v2i64 addr:iPTR:$mask)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 28
                // Dst: (PSHUFBrm128:v16i8 VR128:v16i8:$src, addr:iPTR:$mask)
/*89496*/     /*Scope*/ 19, /*->89516*/
/*89497*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*89499*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$mask #3 #4 #5 #6 #7
/*89502*/       OPC_EmitMergeInputChains1_1,
/*89503*/       OPC_MorphNodeTo, TARGET_VAL(X86::VPSHUFBrm128), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (X86pshufb:v16i8 VR128:v16i8:$src, (bitconvert:v16i8 (ld:v2i64 addr:iPTR:$mask)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>)) - Complexity = 28
                // Dst: (VPSHUFBrm128:v16i8 VR128:v16i8:$src, addr:iPTR:$mask)
/*89516*/     0, /*End of Scope*/
/*89517*/   /*Scope*/ 27, /*->89545*/
/*89518*/     OPC_RecordChild1, // #1 = $mask
/*89519*/     OPC_Scope, 11, /*->89532*/ // 2 children in Scope
/*89521*/       OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*89523*/       OPC_MorphNodeTo, TARGET_VAL(X86::PSHUFBrr128), 0,
                    1/*#VTs*/, MVT::v16i8, 2/*#Ops*/, 0, 1, 
                // Src: (X86pshufb:v16i8 VR128:v16i8:$src, VR128:v16i8:$mask) - Complexity = 3
                // Dst: (PSHUFBrr128:v16i8 VR128:v16i8:$src, VR128:v16i8:$mask)
/*89532*/     /*Scope*/ 11, /*->89544*/
/*89533*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*89535*/       OPC_MorphNodeTo, TARGET_VAL(X86::VPSHUFBrr128), 0,
                    1/*#VTs*/, MVT::v16i8, 2/*#Ops*/, 0, 1, 
                // Src: (X86pshufb:v16i8 VR128:v16i8:$src, VR128:v16i8:$mask) - Complexity = 3
                // Dst: (VPSHUFBrr128:v16i8 VR128:v16i8:$src, VR128:v16i8:$mask)
/*89544*/     0, /*End of Scope*/
/*89545*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 116,  TARGET_VAL(X86ISD::PINSRB),// ->89665
/*89549*/   OPC_RecordChild0, // #0 = $src1
/*89550*/   OPC_Scope, 71, /*->89623*/ // 2 children in Scope
/*89552*/     OPC_MoveChild, 1,
/*89554*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*89557*/     OPC_RecordMemRef,
/*89558*/     OPC_RecordNode, // #1 = 'ld' chained node
/*89559*/     OPC_CheckFoldableChainNode,
/*89560*/     OPC_RecordChild1, // #2 = $src2
/*89561*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*89563*/     OPC_CheckPredicate, 37, // Predicate_extload
/*89565*/     OPC_CheckPredicate, 39, // Predicate_extloadi8
/*89567*/     OPC_MoveParent,
/*89568*/     OPC_RecordChild2, // #3 = $src3
/*89569*/     OPC_MoveChild, 2,
/*89571*/     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*89574*/     OPC_MoveParent,
/*89575*/     OPC_Scope, 22, /*->89599*/ // 2 children in Scope
/*89577*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*89579*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*89582*/       OPC_EmitMergeInputChains1_1,
/*89583*/       OPC_EmitConvertToTarget, 3,
/*89585*/       OPC_MorphNodeTo, TARGET_VAL(X86::VPINSRBrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v16i8, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                // Src: (X86pinsrb:v16i8 VR128:v16i8:$src1, (ld:i32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi8>>, (imm:iPTR):$src3) - Complexity = 28
                // Dst: (VPINSRBrm:v16i8 VR128:v16i8:$src1, addr:iPTR:$src2, (imm:i32):$src3)
/*89599*/     /*Scope*/ 22, /*->89622*/
/*89600*/       OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*89602*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*89605*/       OPC_EmitMergeInputChains1_1,
/*89606*/       OPC_EmitConvertToTarget, 3,
/*89608*/       OPC_MorphNodeTo, TARGET_VAL(X86::PINSRBrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v16i8, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                // Src: (X86pinsrb:v16i8 VR128:v16i8:$src1, (ld:i32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi8>>, (imm:iPTR):$src3) - Complexity = 28
                // Dst: (PINSRBrm:v16i8 VR128:v16i8:$src1, addr:iPTR:$src2, (imm:i32):$src3)
/*89622*/     0, /*End of Scope*/
/*89623*/   /*Scope*/ 40, /*->89664*/
/*89624*/     OPC_RecordChild1, // #1 = $src2
/*89625*/     OPC_RecordChild2, // #2 = $src3
/*89626*/     OPC_MoveChild, 2,
/*89628*/     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*89631*/     OPC_MoveParent,
/*89632*/     OPC_Scope, 14, /*->89648*/ // 2 children in Scope
/*89634*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*89636*/       OPC_EmitConvertToTarget, 2,
/*89638*/       OPC_MorphNodeTo, TARGET_VAL(X86::VPINSRBrr), 0,
                    1/*#VTs*/, MVT::v16i8, 3/*#Ops*/, 0, 1, 3, 
                // Src: (X86pinsrb:v16i8 VR128:v16i8:$src1, GR32:i32:$src2, (imm:iPTR):$src3) - Complexity = 6
                // Dst: (VPINSRBrr:v16i8 VR128:v16i8:$src1, GR32:i32:$src2, (imm:i32):$src3)
/*89648*/     /*Scope*/ 14, /*->89663*/
/*89649*/       OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*89651*/       OPC_EmitConvertToTarget, 2,
/*89653*/       OPC_MorphNodeTo, TARGET_VAL(X86::PINSRBrr), 0,
                    1/*#VTs*/, MVT::v16i8, 3/*#Ops*/, 0, 1, 3, 
                // Src: (X86pinsrb:v16i8 VR128:v16i8:$src1, GR32:i32:$src2, (imm:iPTR):$src3) - Complexity = 6
                // Dst: (PINSRBrr:v16i8 VR128:v16i8:$src1, GR32:i32:$src2, (imm:i32):$src3)
/*89663*/     0, /*End of Scope*/
/*89664*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 91|128,1/*219*/,  TARGET_VAL(ISD::INSERT_VECTOR_ELT),// ->89888
/*89669*/   OPC_RecordChild0, // #0 = $src1
/*89670*/   OPC_Scope, 7|128,1/*135*/, /*->89808*/ // 2 children in Scope
/*89673*/     OPC_MoveChild, 1,
/*89675*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*89678*/     OPC_RecordMemRef,
/*89679*/     OPC_RecordNode, // #1 = 'ld' chained node
/*89680*/     OPC_CheckFoldableChainNode,
/*89681*/     OPC_RecordChild1, // #2 = $src2
/*89682*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*89684*/     OPC_Scope, 60, /*->89746*/ // 2 children in Scope
/*89686*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*89688*/       OPC_MoveParent,
/*89689*/       OPC_RecordChild2, // #3 = $src3
/*89690*/       OPC_MoveChild, 2,
/*89692*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*89695*/       OPC_MoveParent,
/*89696*/       OPC_CheckType, MVT::v4i32,
/*89698*/       OPC_Scope, 22, /*->89722*/ // 2 children in Scope
/*89700*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*89702*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*89705*/         OPC_EmitMergeInputChains1_1,
/*89706*/         OPC_EmitConvertToTarget, 3,
/*89708*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPINSRDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                  // Src: (insertelt:v4i32 VR128:v4i32:$src1, (ld:i32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>, (imm:iPTR):$src3) - Complexity = 28
                  // Dst: (VPINSRDrm:v4i32 VR128:v4i32:$src1, addr:iPTR:$src2, (imm:i32):$src3)
/*89722*/       /*Scope*/ 22, /*->89745*/
/*89723*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*89725*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*89728*/         OPC_EmitMergeInputChains1_1,
/*89729*/         OPC_EmitConvertToTarget, 3,
/*89731*/         OPC_MorphNodeTo, TARGET_VAL(X86::PINSRDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                  // Src: (insertelt:v4i32 VR128:v4i32:$src1, (ld:i32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>, (imm:iPTR):$src3) - Complexity = 28
                  // Dst: (PINSRDrm:v4i32 VR128:v4i32:$src1, addr:iPTR:$src2, (imm:i32):$src3)
/*89745*/       0, /*End of Scope*/
/*89746*/     /*Scope*/ 60, /*->89807*/
/*89747*/       OPC_CheckPredicate, 3, // Predicate_load
/*89749*/       OPC_MoveParent,
/*89750*/       OPC_RecordChild2, // #3 = $src3
/*89751*/       OPC_MoveChild, 2,
/*89753*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*89756*/       OPC_MoveParent,
/*89757*/       OPC_CheckType, MVT::v2i64,
/*89759*/       OPC_Scope, 22, /*->89783*/ // 2 children in Scope
/*89761*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*89763*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*89766*/         OPC_EmitMergeInputChains1_1,
/*89767*/         OPC_EmitConvertToTarget, 3,
/*89769*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPINSRQrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v2i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                  // Src: (insertelt:v2i64 VR128:v2i64:$src1, (ld:i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:iPTR):$src3) - Complexity = 28
                  // Dst: (VPINSRQrm:v2i64 VR128:v2i64:$src1, addr:iPTR:$src2, (imm:i32):$src3)
/*89783*/       /*Scope*/ 22, /*->89806*/
/*89784*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*89786*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*89789*/         OPC_EmitMergeInputChains1_1,
/*89790*/         OPC_EmitConvertToTarget, 3,
/*89792*/         OPC_MorphNodeTo, TARGET_VAL(X86::PINSRQrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v2i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                  // Src: (insertelt:v2i64 VR128:v2i64:$src1, (ld:i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:iPTR):$src3) - Complexity = 28
                  // Dst: (PINSRQrm:v2i64 VR128:v2i64:$src1, addr:iPTR:$src2, (imm:i32):$src3)
/*89806*/       0, /*End of Scope*/
/*89807*/     0, /*End of Scope*/
/*89808*/   /*Scope*/ 78, /*->89887*/
/*89809*/     OPC_RecordChild1, // #1 = $src2
/*89810*/     OPC_RecordChild2, // #2 = $src3
/*89811*/     OPC_MoveChild, 2,
/*89813*/     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*89816*/     OPC_MoveParent,
/*89817*/     OPC_SwitchType /*2 cases */, 32,  MVT::v4i32,// ->89852
/*89820*/       OPC_Scope, 14, /*->89836*/ // 2 children in Scope
/*89822*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*89824*/         OPC_EmitConvertToTarget, 2,
/*89826*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPINSRDrr), 0,
                      1/*#VTs*/, MVT::v4i32, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (insertelt:v4i32 VR128:v4i32:$src1, GR32:i32:$src2, (imm:iPTR):$src3) - Complexity = 6
                  // Dst: (VPINSRDrr:v4i32 VR128:v4i32:$src1, GR32:i32:$src2, (imm:i32):$src3)
/*89836*/       /*Scope*/ 14, /*->89851*/
/*89837*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*89839*/         OPC_EmitConvertToTarget, 2,
/*89841*/         OPC_MorphNodeTo, TARGET_VAL(X86::PINSRDrr), 0,
                      1/*#VTs*/, MVT::v4i32, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (insertelt:v4i32 VR128:v4i32:$src1, GR32:i32:$src2, (imm:iPTR):$src3) - Complexity = 6
                  // Dst: (PINSRDrr:v4i32 VR128:v4i32:$src1, GR32:i32:$src2, (imm:i32):$src3)
/*89851*/       0, /*End of Scope*/
              /*SwitchType*/ 32,  MVT::v2i64,// ->89886
/*89854*/       OPC_Scope, 14, /*->89870*/ // 2 children in Scope
/*89856*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*89858*/         OPC_EmitConvertToTarget, 2,
/*89860*/         OPC_MorphNodeTo, TARGET_VAL(X86::VPINSRQrr), 0,
                      1/*#VTs*/, MVT::v2i64, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (insertelt:v2i64 VR128:v2i64:$src1, GR64:i64:$src2, (imm:iPTR):$src3) - Complexity = 6
                  // Dst: (VPINSRQrr:v2i64 VR128:v2i64:$src1, GR64:i64:$src2, (imm:i32):$src3)
/*89870*/       /*Scope*/ 14, /*->89885*/
/*89871*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*89873*/         OPC_EmitConvertToTarget, 2,
/*89875*/         OPC_MorphNodeTo, TARGET_VAL(X86::PINSRQrr), 0,
                      1/*#VTs*/, MVT::v2i64, 3/*#Ops*/, 0, 1, 3, 
                  // Src: (insertelt:v2i64 VR128:v2i64:$src1, GR64:i64:$src2, (imm:iPTR):$src3) - Complexity = 6
                  // Dst: (PINSRQrr:v2i64 VR128:v2i64:$src1, GR64:i64:$src2, (imm:i32):$src3)
/*89885*/       0, /*End of Scope*/
              0, // EndSwitchType
/*89887*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 80,  TARGET_VAL(X86ISD::MOVQ2DQ),// ->89971
/*89891*/   OPC_Scope, 67, /*->89960*/ // 2 children in Scope
/*89893*/     OPC_MoveChild, 0,
/*89895*/     OPC_SwitchOpcode /*2 cases */, 33,  TARGET_VAL(ISD::SCALAR_TO_VECTOR),// ->89932
/*89899*/       OPC_MoveChild, 0,
/*89901*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*89904*/       OPC_RecordMemRef,
/*89905*/       OPC_RecordNode, // #0 = 'ld' chained node
/*89906*/       OPC_CheckFoldableChainNode,
/*89907*/       OPC_RecordChild1, // #1 = $src
/*89908*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*89910*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*89912*/       OPC_CheckType, MVT::i32,
/*89914*/       OPC_MoveParent,
/*89915*/       OPC_MoveParent,
/*89916*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*89919*/       OPC_EmitMergeInputChains1_0,
/*89920*/       OPC_MorphNodeTo, TARGET_VAL(X86::MOVDI2PDIrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (MMX_X86movq2dq:v2i64 (scalar_to_vector:x86mmx (ld:i32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>)) - Complexity = 28
                // Dst: (MOVDI2PDIrm:v2i64 addr:iPTR:$src)
              /*SwitchOpcode*/ 24,  TARGET_VAL(ISD::LOAD),// ->89959
/*89935*/       OPC_RecordMemRef,
/*89936*/       OPC_RecordNode, // #0 = 'ld' chained node
/*89937*/       OPC_RecordChild1, // #1 = $src
/*89938*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*89940*/       OPC_CheckPredicate, 3, // Predicate_load
/*89942*/       OPC_MoveParent,
/*89943*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*89946*/       OPC_EmitMergeInputChains1_0,
/*89947*/       OPC_MorphNodeTo, TARGET_VAL(X86::MOVQI2PQIrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (MMX_X86movq2dq:v2i64 (ld:x86mmx addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                // Dst: (MOVQI2PQIrm:v2i64 addr:iPTR:$src)
              0, // EndSwitchOpcode
/*89960*/   /*Scope*/ 9, /*->89970*/
/*89961*/     OPC_RecordChild0, // #0 = $src
/*89962*/     OPC_MorphNodeTo, TARGET_VAL(X86::MMX_MOVQ2DQrr), 0,
                  1/*#VTs*/, MVT::v2i64, 1/*#Ops*/, 0, 
              // Src: (MMX_X86movq2dq:v2i64 VR64:x86mmx:$src) - Complexity = 3
              // Dst: (MMX_MOVQ2DQrr:v2i64 VR64:x86mmx:$src)
/*89970*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 114|128,1/*242*/,  TARGET_VAL(X86ISD::MOVLHPS),// ->90217
/*89975*/   OPC_RecordChild0, // #0 = $src1
/*89976*/   OPC_Scope, 39, /*->90017*/ // 4 children in Scope
/*89978*/     OPC_MoveChild, 1,
/*89980*/     OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*89983*/     OPC_MoveChild, 0,
/*89985*/     OPC_CheckOpcode, TARGET_VAL(X86ISD::VZEXT_LOAD),
/*89988*/     OPC_RecordMemRef,
/*89989*/     OPC_RecordNode, // #1 = 'X86vzload' chained node
/*89990*/     OPC_CheckFoldableChainNode,
/*89991*/     OPC_RecordChild1, // #2 = $src2
/*89992*/     OPC_CheckType, MVT::v2i64,
/*89994*/     OPC_MoveParent,
/*89995*/     OPC_MoveParent,
/*89996*/     OPC_CheckType, MVT::v4i32,
/*89998*/     OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*90000*/     OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*90003*/     OPC_EmitMergeInputChains1_1,
/*90004*/     OPC_MorphNodeTo, TARGET_VAL(X86::VMOVHPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                  1/*#VTs*/, MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
              // Src: (X86Movlhps:v4i32 VR128:v4i32:$src1, (bitconvert:v4i32 (X86vzload:v2i64 addr:iPTR:$src2))) - Complexity = 27
              // Dst: (VMOVHPSrm:v4i32 VR128:v4i32:$src1, addr:iPTR:$src2)
/*90017*/   /*Scope*/ 59, /*->90077*/
/*90018*/     OPC_RecordChild1, // #1 = $src2
/*90019*/     OPC_SwitchType /*2 cases */, 26,  MVT::v4i32,// ->90048
/*90022*/       OPC_Scope, 11, /*->90035*/ // 2 children in Scope
/*90024*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*90026*/         OPC_MorphNodeTo, TARGET_VAL(X86::VMOVLHPSrr), 0,
                      1/*#VTs*/, MVT::v4i32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86Movlhps:v4i32 VR128:v4i32:$src1, VR128:v4i32:$src2) - Complexity = 3
                  // Dst: (VMOVLHPSrr:v4i32 VR128:v4i32:$src1, VR128:v4i32:$src2)
/*90035*/       /*Scope*/ 11, /*->90047*/
/*90036*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*90038*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOVLHPSrr), 0,
                      1/*#VTs*/, MVT::v4i32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86Movlhps:v4i32 VR128:v4i32:$src1, VR128:v4i32:$src2) - Complexity = 3
                  // Dst: (MOVLHPSrr:v4i32 VR128:v4i32:$src1, VR128:v4i32:$src2)
/*90047*/       0, /*End of Scope*/
              /*SwitchType*/ 26,  MVT::v2i64,// ->90076
/*90050*/       OPC_Scope, 11, /*->90063*/ // 2 children in Scope
/*90052*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*90054*/         OPC_MorphNodeTo, TARGET_VAL(X86::VMOVLHPSrr), 0,
                      1/*#VTs*/, MVT::v2i64, 2/*#Ops*/, 0, 1, 
                  // Src: (X86Movlhps:v2i64 VR128:v2i64:$src1, VR128:v2i64:$src2) - Complexity = 3
                  // Dst: (VMOVLHPSrr:v2i64 VR128:v2i64:$src1, VR128:v2i64:$src2)
/*90063*/       /*Scope*/ 11, /*->90075*/
/*90064*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*90066*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOVLHPSrr), 0,
                      1/*#VTs*/, MVT::v2i64, 2/*#Ops*/, 0, 1, 
                  // Src: (X86Movlhps:v2i64 VR128:v2i64:$src1, VR128:v2i64:$src2) - Complexity = 3
                  // Dst: (MOVLHPSrr:v2i64 VR128:v2i64:$src1, VR128:v2i64:$src2)
/*90075*/       0, /*End of Scope*/
              0, // EndSwitchType
/*90077*/   /*Scope*/ 108, /*->90186*/
/*90078*/     OPC_MoveChild, 1,
/*90080*/     OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*90083*/     OPC_MoveChild, 0,
/*90085*/     OPC_SwitchOpcode /*2 cases */, 64,  TARGET_VAL(ISD::SCALAR_TO_VECTOR),// ->90153
/*90089*/       OPC_MoveChild, 0,
/*90091*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*90094*/       OPC_RecordMemRef,
/*90095*/       OPC_RecordNode, // #1 = 'ld' chained node
/*90096*/       OPC_CheckFoldableChainNode,
/*90097*/       OPC_RecordChild1, // #2 = $src2
/*90098*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*90100*/       OPC_CheckPredicate, 3, // Predicate_load
/*90102*/       OPC_CheckType, MVT::f64,
/*90104*/       OPC_MoveParent,
/*90105*/       OPC_CheckType, MVT::v2f64,
/*90107*/       OPC_MoveParent,
/*90108*/       OPC_MoveParent,
/*90109*/       OPC_CheckType, MVT::v4f32,
/*90111*/       OPC_Scope, 19, /*->90132*/ // 2 children in Scope
/*90113*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*90115*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*90118*/         OPC_EmitMergeInputChains1_1,
/*90119*/         OPC_MorphNodeTo, TARGET_VAL(X86::VMOVHPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (X86Movlhps:v4f32 VR128:v4f32:$src1, (bitconvert:v4f32 (scalar_to_vector:v2f64 (ld:f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 31
                  // Dst: (VMOVHPSrm:v4f32 VR128:v4f32:$src1, addr:iPTR:$src2)
/*90132*/       /*Scope*/ 19, /*->90152*/
/*90133*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*90135*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*90138*/         OPC_EmitMergeInputChains1_1,
/*90139*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOVHPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (X86Movlhps:v4f32 VR128:v4f32:$src1, (bitconvert:v4f32 (scalar_to_vector:v2f64 (ld:f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 31
                  // Dst: (MOVHPSrm:v4f32 VR128:v4f32:$src1, addr:iPTR:$src2)
/*90152*/       0, /*End of Scope*/
              /*SwitchOpcode*/ 29,  TARGET_VAL(X86ISD::VZEXT_LOAD),// ->90185
/*90156*/       OPC_RecordMemRef,
/*90157*/       OPC_RecordNode, // #1 = 'X86vzload' chained node
/*90158*/       OPC_CheckFoldableChainNode,
/*90159*/       OPC_RecordChild1, // #2 = $src2
/*90160*/       OPC_CheckType, MVT::v2i64,
/*90162*/       OPC_MoveParent,
/*90163*/       OPC_MoveParent,
/*90164*/       OPC_CheckType, MVT::v4f32,
/*90166*/       OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*90168*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*90171*/       OPC_EmitMergeInputChains1_1,
/*90172*/       OPC_MorphNodeTo, TARGET_VAL(X86::MOVHPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (X86Movlhps:v4f32 VR128:v4f32:$src1, (bitconvert:v4f32 (X86vzload:v2i64 addr:iPTR:$src2))) - Complexity = 27
                // Dst: (MOVHPSrm:v4f32 VR128:v4f32:$src1, addr:iPTR:$src2)
              0, // EndSwitchOpcode
/*90186*/   /*Scope*/ 29, /*->90216*/
/*90187*/     OPC_RecordChild1, // #1 = $src2
/*90188*/     OPC_CheckType, MVT::v4f32,
/*90190*/     OPC_Scope, 11, /*->90203*/ // 2 children in Scope
/*90192*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*90194*/       OPC_MorphNodeTo, TARGET_VAL(X86::VMOVLHPSrr), 0,
                    1/*#VTs*/, MVT::v4f32, 2/*#Ops*/, 0, 1, 
                // Src: (X86Movlhps:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src2) - Complexity = 3
                // Dst: (VMOVLHPSrr:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src2)
/*90203*/     /*Scope*/ 11, /*->90215*/
/*90204*/       OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*90206*/       OPC_MorphNodeTo, TARGET_VAL(X86::MOVLHPSrr), 0,
                    1/*#VTs*/, MVT::v4f32, 2/*#Ops*/, 0, 1, 
                // Src: (X86Movlhps:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src2) - Complexity = 3
                // Dst: (MOVLHPSrr:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src2)
/*90215*/     0, /*End of Scope*/
/*90216*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 110|128,6/*878*/,  TARGET_VAL(ISD::INTRINSIC_VOID),// ->91099
/*90221*/   OPC_RecordNode,   // #0 = 'intrinsic_void' chained node
/*90222*/   OPC_MoveChild, 1,
/*90224*/   OPC_Scope, 22, /*->90248*/ // 30 children in Scope
/*90226*/     OPC_CheckInteger, 38|128,1/*166*/, 
/*90229*/     OPC_MoveParent,
/*90230*/     OPC_RecordChild2, // #1 = $dst
/*90231*/     OPC_RecordChild3, // #2 = $src
/*90232*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$dst #3 #4 #5 #6 #7
/*90235*/     OPC_EmitMergeInputChains1_0,
/*90236*/     OPC_MorphNodeTo, TARGET_VAL(X86::VMOVUPSYmr), 0|OPFL_Chain,
                  0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
              // Src: (intrinsic_void 166:iPTR, addr:iPTR:$dst, VR256:v8f32:$src) - Complexity = 26
              // Dst: (VMOVUPSYmr addr:iPTR:$dst, VR256:v8f32:$src)
/*90248*/   /*Scope*/ 22, /*->90271*/
/*90249*/     OPC_CheckInteger, 37|128,1/*165*/, 
/*90252*/     OPC_MoveParent,
/*90253*/     OPC_RecordChild2, // #1 = $dst
/*90254*/     OPC_RecordChild3, // #2 = $src
/*90255*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$dst #3 #4 #5 #6 #7
/*90258*/     OPC_EmitMergeInputChains1_0,
/*90259*/     OPC_MorphNodeTo, TARGET_VAL(X86::VMOVUPDYmr), 0|OPFL_Chain,
                  0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
              // Src: (intrinsic_void 165:iPTR, addr:iPTR:$dst, VR256:v4f64:$src) - Complexity = 26
              // Dst: (VMOVUPDYmr addr:iPTR:$dst, VR256:v4f64:$src)
/*90271*/   /*Scope*/ 46, /*->90318*/
/*90272*/     OPC_CheckInteger, 101|128,3/*485*/, 
/*90275*/     OPC_MoveParent,
/*90276*/     OPC_RecordChild2, // #1 = $dst
/*90277*/     OPC_RecordChild3, // #2 = $src
/*90278*/     OPC_Scope, 18, /*->90298*/ // 2 children in Scope
/*90280*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*90282*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$dst #3 #4 #5 #6 #7
/*90285*/       OPC_EmitMergeInputChains1_0,
/*90286*/       OPC_MorphNodeTo, TARGET_VAL(X86::VMOVUPSmr), 0|OPFL_Chain,
                    0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                // Src: (intrinsic_void 485:iPTR, addr:iPTR:$dst, VR128:v4f32:$src) - Complexity = 26
                // Dst: (VMOVUPSmr addr:iPTR:$dst, VR128:v4f32:$src)
/*90298*/     /*Scope*/ 18, /*->90317*/
/*90299*/       OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*90301*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$dst #3 #4 #5 #6 #7
/*90304*/       OPC_EmitMergeInputChains1_0,
/*90305*/       OPC_MorphNodeTo, TARGET_VAL(X86::MOVUPSmr), 0|OPFL_Chain,
                    0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                // Src: (intrinsic_void 485:iPTR, addr:iPTR:$dst, VR128:v4f32:$src) - Complexity = 26
                // Dst: (MOVUPSmr addr:iPTR:$dst, VR128:v4f32:$src)
/*90317*/     0, /*End of Scope*/
/*90318*/   /*Scope*/ 46, /*->90365*/
/*90319*/     OPC_CheckInteger, 108|128,2/*364*/, 
/*90322*/     OPC_MoveParent,
/*90323*/     OPC_RecordChild2, // #1 = $dst
/*90324*/     OPC_RecordChild3, // #2 = $src
/*90325*/     OPC_Scope, 18, /*->90345*/ // 2 children in Scope
/*90327*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*90329*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$dst #3 #4 #5 #6 #7
/*90332*/       OPC_EmitMergeInputChains1_0,
/*90333*/       OPC_MorphNodeTo, TARGET_VAL(X86::VMOVUPDmr), 0|OPFL_Chain,
                    0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                // Src: (intrinsic_void 364:iPTR, addr:iPTR:$dst, VR128:v2f64:$src) - Complexity = 26
                // Dst: (VMOVUPDmr addr:iPTR:$dst, VR128:v2f64:$src)
/*90345*/     /*Scope*/ 18, /*->90364*/
/*90346*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*90348*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$dst #3 #4 #5 #6 #7
/*90351*/       OPC_EmitMergeInputChains1_0,
/*90352*/       OPC_MorphNodeTo, TARGET_VAL(X86::MOVUPDmr), 0|OPFL_Chain,
                    0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                // Src: (intrinsic_void 364:iPTR, addr:iPTR:$dst, VR128:v2f64:$src) - Complexity = 26
                // Dst: (MOVUPDmr addr:iPTR:$dst, VR128:v2f64:$src)
/*90364*/     0, /*End of Scope*/
/*90365*/   /*Scope*/ 22, /*->90388*/
/*90366*/     OPC_CheckInteger, 24|128,1/*152*/, 
/*90369*/     OPC_MoveParent,
/*90370*/     OPC_RecordChild2, // #1 = $dst
/*90371*/     OPC_RecordChild3, // #2 = $src
/*90372*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$dst #3 #4 #5 #6 #7
/*90375*/     OPC_EmitMergeInputChains1_0,
/*90376*/     OPC_MorphNodeTo, TARGET_VAL(X86::VMOVNTDQYmr), 0|OPFL_Chain,
                  0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
              // Src: (intrinsic_void 152:iPTR, addr:iPTR:$dst, VR256:v4i64:$src) - Complexity = 26
              // Dst: (VMOVNTDQYmr addr:iPTR:$dst, VR256:v4i64:$src)
/*90388*/   /*Scope*/ 22, /*->90411*/
/*90389*/     OPC_CheckInteger, 25|128,1/*153*/, 
/*90392*/     OPC_MoveParent,
/*90393*/     OPC_RecordChild2, // #1 = $dst
/*90394*/     OPC_RecordChild3, // #2 = $src
/*90395*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$dst #3 #4 #5 #6 #7
/*90398*/     OPC_EmitMergeInputChains1_0,
/*90399*/     OPC_MorphNodeTo, TARGET_VAL(X86::VMOVNTPDYmr), 0|OPFL_Chain,
                  0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
              // Src: (intrinsic_void 153:iPTR, addr:iPTR:$dst, VR256:v4f64:$src) - Complexity = 26
              // Dst: (VMOVNTPDYmr addr:iPTR:$dst, VR256:v4f64:$src)
/*90411*/   /*Scope*/ 22, /*->90434*/
/*90412*/     OPC_CheckInteger, 26|128,1/*154*/, 
/*90415*/     OPC_MoveParent,
/*90416*/     OPC_RecordChild2, // #1 = $dst
/*90417*/     OPC_RecordChild3, // #2 = $src
/*90418*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$dst #3 #4 #5 #6 #7
/*90421*/     OPC_EmitMergeInputChains1_0,
/*90422*/     OPC_MorphNodeTo, TARGET_VAL(X86::VMOVNTPSYmr), 0|OPFL_Chain,
                  0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
              // Src: (intrinsic_void 154:iPTR, addr:iPTR:$dst, VR256:v8f32:$src) - Complexity = 26
              // Dst: (VMOVNTPSYmr addr:iPTR:$dst, VR256:v8f32:$src)
/*90434*/   /*Scope*/ 22, /*->90457*/
/*90435*/     OPC_CheckInteger, 20|128,2/*276*/, 
/*90438*/     OPC_MoveParent,
/*90439*/     OPC_RecordChild2, // #1 = $src
/*90440*/     OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*90442*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*90445*/     OPC_EmitMergeInputChains1_0,
/*90446*/     OPC_MorphNodeTo, TARGET_VAL(X86::CLFLUSH), 0|OPFL_Chain,
                  0/*#VTs*/, 5/*#Ops*/, 2, 3, 4, 5, 6, 
              // Src: (intrinsic_void 276:iPTR, addr:iPTR:$src) - Complexity = 26
              // Dst: (CLFLUSH addr:iPTR:$src)
/*90457*/   /*Scope*/ 43, /*->90501*/
/*90458*/     OPC_CheckInteger, 85|128,3/*469*/, 
/*90461*/     OPC_MoveParent,
/*90462*/     OPC_RecordChild2, // #1 = $src
/*90463*/     OPC_Scope, 17, /*->90482*/ // 2 children in Scope
/*90465*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*90467*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*90470*/       OPC_EmitMergeInputChains1_0,
/*90471*/       OPC_MorphNodeTo, TARGET_VAL(X86::VLDMXCSR), 0|OPFL_Chain,
                    0/*#VTs*/, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (intrinsic_void 469:iPTR, addr:iPTR:$src) - Complexity = 26
                // Dst: (VLDMXCSR addr:iPTR:$src)
/*90482*/     /*Scope*/ 17, /*->90500*/
/*90483*/       OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*90485*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*90488*/       OPC_EmitMergeInputChains1_0,
/*90489*/       OPC_MorphNodeTo, TARGET_VAL(X86::LDMXCSR), 0|OPFL_Chain,
                    0/*#VTs*/, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (intrinsic_void 469:iPTR, addr:iPTR:$src) - Complexity = 26
                // Dst: (LDMXCSR addr:iPTR:$src)
/*90500*/     0, /*End of Scope*/
/*90501*/   /*Scope*/ 43, /*->90545*/
/*90502*/     OPC_CheckInteger, 100|128,3/*484*/, 
/*90505*/     OPC_MoveParent,
/*90506*/     OPC_RecordChild2, // #1 = $dst
/*90507*/     OPC_Scope, 17, /*->90526*/ // 2 children in Scope
/*90509*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*90511*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$dst #2 #3 #4 #5 #6
/*90514*/       OPC_EmitMergeInputChains1_0,
/*90515*/       OPC_MorphNodeTo, TARGET_VAL(X86::VSTMXCSR), 0|OPFL_Chain,
                    0/*#VTs*/, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (intrinsic_void 484:iPTR, addr:iPTR:$dst) - Complexity = 26
                // Dst: (VSTMXCSR addr:iPTR:$dst)
/*90526*/     /*Scope*/ 17, /*->90544*/
/*90527*/       OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*90529*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$dst #2 #3 #4 #5 #6
/*90532*/       OPC_EmitMergeInputChains1_0,
/*90533*/       OPC_MorphNodeTo, TARGET_VAL(X86::STMXCSR), 0|OPFL_Chain,
                    0/*#VTs*/, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (intrinsic_void 484:iPTR, addr:iPTR:$dst) - Complexity = 26
                // Dst: (STMXCSR addr:iPTR:$dst)
/*90544*/     0, /*End of Scope*/
/*90545*/   /*Scope*/ 46, /*->90592*/
/*90546*/     OPC_CheckInteger, 107|128,2/*363*/, 
/*90549*/     OPC_MoveParent,
/*90550*/     OPC_RecordChild2, // #1 = $dst
/*90551*/     OPC_RecordChild3, // #2 = $src
/*90552*/     OPC_Scope, 18, /*->90572*/ // 2 children in Scope
/*90554*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*90556*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$dst #3 #4 #5 #6 #7
/*90559*/       OPC_EmitMergeInputChains1_0,
/*90560*/       OPC_MorphNodeTo, TARGET_VAL(X86::VMOVDQUmr_Int), 0|OPFL_Chain,
                    0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                // Src: (intrinsic_void 363:iPTR, addr:iPTR:$dst, VR128:v16i8:$src) - Complexity = 26
                // Dst: (VMOVDQUmr_Int addr:iPTR:$dst, VR128:v16i8:$src)
/*90572*/     /*Scope*/ 18, /*->90591*/
/*90573*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*90575*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$dst #3 #4 #5 #6 #7
/*90578*/       OPC_EmitMergeInputChains1_0,
/*90579*/       OPC_MorphNodeTo, TARGET_VAL(X86::MOVDQUmr_Int), 0|OPFL_Chain,
                    0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                // Src: (intrinsic_void 363:iPTR, addr:iPTR:$dst, VR128:v16i8:$src) - Complexity = 26
                // Dst: (MOVDQUmr_Int addr:iPTR:$dst, VR128:v16i8:$src)
/*90591*/     0, /*End of Scope*/
/*90592*/   /*Scope*/ 24, /*->90617*/
/*90593*/     OPC_CheckInteger, 36|128,1/*164*/, 
/*90596*/     OPC_MoveParent,
/*90597*/     OPC_RecordChild2, // #1 = $dst
/*90598*/     OPC_RecordChild3, // #2 = $src
/*90599*/     OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*90601*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$dst #3 #4 #5 #6 #7
/*90604*/     OPC_EmitMergeInputChains1_0,
/*90605*/     OPC_MorphNodeTo, TARGET_VAL(X86::VMOVDQUYmr), 0|OPFL_Chain,
                  0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
              // Src: (intrinsic_void 164:iPTR, addr:iPTR:$dst, VR256:v32i8:$src) - Complexity = 26
              // Dst: (VMOVDQUYmr addr:iPTR:$dst, VR256:v32i8:$src)
/*90617*/   /*Scope*/ 46, /*->90664*/
/*90618*/     OPC_CheckInteger, 106|128,2/*362*/, 
/*90621*/     OPC_MoveParent,
/*90622*/     OPC_RecordChild2, // #1 = $dst
/*90623*/     OPC_RecordChild3, // #2 = $src
/*90624*/     OPC_Scope, 18, /*->90644*/ // 2 children in Scope
/*90626*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*90628*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$dst #3 #4 #5 #6 #7
/*90631*/       OPC_EmitMergeInputChains1_0,
/*90632*/       OPC_MorphNodeTo, TARGET_VAL(X86::VMOVLQ128mr), 0|OPFL_Chain,
                    0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                // Src: (intrinsic_void 362:iPTR, addr:iPTR:$dst, VR128:v4i32:$src) - Complexity = 26
                // Dst: (VMOVLQ128mr addr:iPTR:$dst, VR128:v4i32:$src)
/*90644*/     /*Scope*/ 18, /*->90663*/
/*90645*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*90647*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$dst #3 #4 #5 #6 #7
/*90650*/       OPC_EmitMergeInputChains1_0,
/*90651*/       OPC_MorphNodeTo, TARGET_VAL(X86::MOVLQ128mr), 0|OPFL_Chain,
                    0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                // Src: (intrinsic_void 362:iPTR, addr:iPTR:$dst, VR128:v4i32:$src) - Complexity = 26
                // Dst: (MOVLQ128mr addr:iPTR:$dst, VR128:v4i32:$src)
/*90663*/     0, /*End of Scope*/
/*90664*/   /*Scope*/ 26, /*->90691*/
/*90665*/     OPC_CheckInteger, 16|128,1/*144*/, 
/*90668*/     OPC_MoveParent,
/*90669*/     OPC_RecordChild2, // #1 = $dst
/*90670*/     OPC_RecordChild3, // #2 = $src1
/*90671*/     OPC_RecordChild4, // #3 = $src2
/*90672*/     OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*90674*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$dst #4 #5 #6 #7 #8
/*90677*/     OPC_EmitMergeInputChains1_0,
/*90678*/     OPC_MorphNodeTo, TARGET_VAL(X86::VMASKMOVPSmr), 0|OPFL_Chain,
                  0/*#VTs*/, 7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
              // Src: (intrinsic_void 144:iPTR, addr:iPTR:$dst, VR128:v4f32:$src1, VR128:v4f32:$src2) - Complexity = 26
              // Dst: (VMASKMOVPSmr addr:iPTR:$dst, VR128:v4f32:$src1, VR128:v4f32:$src2)
/*90691*/   /*Scope*/ 26, /*->90718*/
/*90692*/     OPC_CheckInteger, 17|128,1/*145*/, 
/*90695*/     OPC_MoveParent,
/*90696*/     OPC_RecordChild2, // #1 = $dst
/*90697*/     OPC_RecordChild3, // #2 = $src1
/*90698*/     OPC_RecordChild4, // #3 = $src2
/*90699*/     OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*90701*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$dst #4 #5 #6 #7 #8
/*90704*/     OPC_EmitMergeInputChains1_0,
/*90705*/     OPC_MorphNodeTo, TARGET_VAL(X86::VMASKMOVPSYmr), 0|OPFL_Chain,
                  0/*#VTs*/, 7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
              // Src: (intrinsic_void 145:iPTR, addr:iPTR:$dst, VR256:v8f32:$src1, VR256:v8f32:$src2) - Complexity = 26
              // Dst: (VMASKMOVPSYmr addr:iPTR:$dst, VR256:v8f32:$src1, VR256:v8f32:$src2)
/*90718*/   /*Scope*/ 26, /*->90745*/
/*90719*/     OPC_CheckInteger, 14|128,1/*142*/, 
/*90722*/     OPC_MoveParent,
/*90723*/     OPC_RecordChild2, // #1 = $dst
/*90724*/     OPC_RecordChild3, // #2 = $src1
/*90725*/     OPC_RecordChild4, // #3 = $src2
/*90726*/     OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*90728*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$dst #4 #5 #6 #7 #8
/*90731*/     OPC_EmitMergeInputChains1_0,
/*90732*/     OPC_MorphNodeTo, TARGET_VAL(X86::VMASKMOVPDmr), 0|OPFL_Chain,
                  0/*#VTs*/, 7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
              // Src: (intrinsic_void 142:iPTR, addr:iPTR:$dst, VR128:v2f64:$src1, VR128:v2f64:$src2) - Complexity = 26
              // Dst: (VMASKMOVPDmr addr:iPTR:$dst, VR128:v2f64:$src1, VR128:v2f64:$src2)
/*90745*/   /*Scope*/ 26, /*->90772*/
/*90746*/     OPC_CheckInteger, 15|128,1/*143*/, 
/*90749*/     OPC_MoveParent,
/*90750*/     OPC_RecordChild2, // #1 = $dst
/*90751*/     OPC_RecordChild3, // #2 = $src1
/*90752*/     OPC_RecordChild4, // #3 = $src2
/*90753*/     OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*90755*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$dst #4 #5 #6 #7 #8
/*90758*/     OPC_EmitMergeInputChains1_0,
/*90759*/     OPC_MorphNodeTo, TARGET_VAL(X86::VMASKMOVPDYmr), 0|OPFL_Chain,
                  0/*#VTs*/, 7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
              // Src: (intrinsic_void 143:iPTR, addr:iPTR:$dst, VR256:v4f64:$src1, VR256:v4f64:$src2) - Complexity = 26
              // Dst: (VMASKMOVPDYmr addr:iPTR:$dst, VR256:v4f64:$src1, VR256:v4f64:$src2)
/*90772*/   /*Scope*/ 24, /*->90797*/
/*90773*/     OPC_CheckInteger, 79|128,1/*207*/, 
/*90776*/     OPC_MoveParent,
/*90777*/     OPC_RecordChild2, // #1 = $dst
/*90778*/     OPC_RecordChild3, // #2 = $src
/*90779*/     OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*90781*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$dst #3 #4 #5 #6 #7
/*90784*/     OPC_EmitMergeInputChains1_0,
/*90785*/     OPC_MorphNodeTo, TARGET_VAL(X86::MMX_MOVNTQmr), 0|OPFL_Chain,
                  0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
              // Src: (intrinsic_void 207:iPTR, addr:iPTR:$dst, VR64:x86mmx:$src) - Complexity = 26
              // Dst: (MMX_MOVNTQmr addr:iPTR:$dst, VR64:x86mmx:$src)
/*90797*/   /*Scope*/ 24, /*->90822*/
/*90798*/     OPC_CheckInteger, 123|128,2/*379*/, 
/*90801*/     OPC_MoveParent,
/*90802*/     OPC_RecordChild2, // #1 = $src1
/*90803*/     OPC_RecordChild3, // #2 = $src2
/*90804*/     OPC_RecordChild4, // #3 = $src3
/*90805*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #4 #5 #6 #7 #8
/*90808*/     OPC_EmitMergeInputChains1_0,
/*90809*/     OPC_MorphNodeTo, TARGET_VAL(X86::MONITOR), 0|OPFL_Chain,
                  0/*#VTs*/, 7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
              // Src: (intrinsic_void 379:iPTR, addr:iPTR:$src1, GR32:i32:$src2, GR32:i32:$src3) - Complexity = 26
              // Dst: (MONITOR addr:iPTR:$src1, GR32:i32:$src2, GR32:i32:$src3)
/*90822*/   /*Scope*/ 37, /*->90860*/
/*90823*/     OPC_CheckInteger, 75|128,1/*203*/, 
/*90826*/     OPC_MoveParent,
/*90827*/     OPC_Scope, 12, /*->90841*/ // 2 children in Scope
/*90829*/       OPC_MoveChild, 2,
/*90831*/       OPC_CheckInteger, 3, 
/*90833*/       OPC_MoveParent,
/*90834*/       OPC_EmitMergeInputChains1_0,
/*90835*/       OPC_MorphNodeTo, TARGET_VAL(X86::INT3), 0|OPFL_Chain,
                    0/*#VTs*/, 0/*#Ops*/, 
                // Src: (intrinsic_void 203:iPTR, 3:i8) - Complexity = 13
                // Dst: (INT3)
/*90841*/     /*Scope*/ 17, /*->90859*/
/*90842*/       OPC_RecordChild2, // #1 = $trap
/*90843*/       OPC_MoveChild, 2,
/*90845*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*90848*/       OPC_MoveParent,
/*90849*/       OPC_EmitMergeInputChains1_0,
/*90850*/       OPC_EmitConvertToTarget, 1,
/*90852*/       OPC_MorphNodeTo, TARGET_VAL(X86::INT), 0|OPFL_Chain,
                    0/*#VTs*/, 1/*#Ops*/, 2, 
                // Src: (intrinsic_void 203:iPTR, (imm:i8):$trap) - Complexity = 11
                // Dst: (INT (imm:i8):$trap)
/*90859*/     0, /*End of Scope*/
/*90860*/   /*Scope*/ 13, /*->90874*/
/*90861*/     OPC_CheckInteger, 97|128,3/*481*/, 
/*90864*/     OPC_MoveParent,
/*90865*/     OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*90867*/     OPC_EmitMergeInputChains1_0,
/*90868*/     OPC_MorphNodeTo, TARGET_VAL(X86::SFENCE), 0|OPFL_Chain,
                  0/*#VTs*/, 0/*#Ops*/, 
              // Src: (intrinsic_void 481:iPTR) - Complexity = 8
              // Dst: (SFENCE)
/*90874*/   /*Scope*/ 13, /*->90888*/
/*90875*/     OPC_CheckInteger, 46|128,2/*302*/, 
/*90878*/     OPC_MoveParent,
/*90879*/     OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*90881*/     OPC_EmitMergeInputChains1_0,
/*90882*/     OPC_MorphNodeTo, TARGET_VAL(X86::LFENCE), 0|OPFL_Chain,
                  0/*#VTs*/, 0/*#Ops*/, 
              // Src: (intrinsic_void 302:iPTR) - Complexity = 8
              // Dst: (LFENCE)
/*90888*/   /*Scope*/ 13, /*->90902*/
/*90889*/     OPC_CheckInteger, 50|128,2/*306*/, 
/*90892*/     OPC_MoveParent,
/*90893*/     OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*90895*/     OPC_EmitMergeInputChains1_0,
/*90896*/     OPC_MorphNodeTo, TARGET_VAL(X86::MFENCE), 0|OPFL_Chain,
                  0/*#VTs*/, 0/*#Ops*/, 
              // Src: (intrinsic_void 306:iPTR) - Complexity = 8
              // Dst: (MFENCE)
/*90902*/   /*Scope*/ 79, /*->90982*/
/*90903*/     OPC_CheckInteger, 47|128,2/*303*/, 
/*90906*/     OPC_MoveParent,
/*90907*/     OPC_RecordChild2, // #1 = $src
/*90908*/     OPC_RecordChild3, // #2 = $mask
/*90909*/     OPC_RecordChild4, // #3 = physreg input EDI
/*90910*/     OPC_Scope, 34, /*->90946*/ // 2 children in Scope
/*90912*/       OPC_CheckChild4Type, MVT::i32,
/*90914*/       OPC_Scope, 14, /*->90930*/ // 2 children in Scope
/*90916*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*90918*/         OPC_EmitMergeInputChains1_0,
/*90919*/         OPC_EmitCopyToReg, 3, X86::EDI,
/*90922*/         OPC_MorphNodeTo, TARGET_VAL(X86::VMASKMOVDQU), 0|OPFL_Chain|OPFL_GlueInput,
                      0/*#VTs*/, 2/*#Ops*/, 1, 2, 
                  // Src: (intrinsic_void 303:iPTR, VR128:v16i8:$src, VR128:v16i8:$mask, EDI:i32) - Complexity = 8
                  // Dst: (VMASKMOVDQU VR128:v16i8:$src, VR128:v16i8:$mask)
/*90930*/       /*Scope*/ 14, /*->90945*/
/*90931*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*90933*/         OPC_EmitMergeInputChains1_0,
/*90934*/         OPC_EmitCopyToReg, 3, X86::EDI,
/*90937*/         OPC_MorphNodeTo, TARGET_VAL(X86::MASKMOVDQU), 0|OPFL_Chain|OPFL_GlueInput,
                      0/*#VTs*/, 2/*#Ops*/, 1, 2, 
                  // Src: (intrinsic_void 303:iPTR, VR128:v16i8:$src, VR128:v16i8:$mask, EDI:i32) - Complexity = 8
                  // Dst: (MASKMOVDQU VR128:v16i8:$src, VR128:v16i8:$mask)
/*90945*/       0, /*End of Scope*/
/*90946*/     /*Scope*/ 34, /*->90981*/
/*90947*/       OPC_CheckChild4Type, MVT::i64,
/*90949*/       OPC_Scope, 14, /*->90965*/ // 2 children in Scope
/*90951*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*90953*/         OPC_EmitMergeInputChains1_0,
/*90954*/         OPC_EmitCopyToReg, 3, X86::RDI,
/*90957*/         OPC_MorphNodeTo, TARGET_VAL(X86::VMASKMOVDQU64), 0|OPFL_Chain|OPFL_GlueInput,
                      0/*#VTs*/, 2/*#Ops*/, 1, 2, 
                  // Src: (intrinsic_void 303:iPTR, VR128:v16i8:$src, VR128:v16i8:$mask, RDI:i64) - Complexity = 8
                  // Dst: (VMASKMOVDQU64 VR128:v16i8:$src, VR128:v16i8:$mask)
/*90965*/       /*Scope*/ 14, /*->90980*/
/*90966*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*90968*/         OPC_EmitMergeInputChains1_0,
/*90969*/         OPC_EmitCopyToReg, 3, X86::RDI,
/*90972*/         OPC_MorphNodeTo, TARGET_VAL(X86::MASKMOVDQU64), 0|OPFL_Chain|OPFL_GlueInput,
                      0/*#VTs*/, 2/*#Ops*/, 1, 2, 
                  // Src: (intrinsic_void 303:iPTR, VR128:v16i8:$src, VR128:v16i8:$mask, RDI:i64) - Complexity = 8
                  // Dst: (MASKMOVDQU64 VR128:v16i8:$src, VR128:v16i8:$mask)
/*90980*/       0, /*End of Scope*/
/*90981*/     0, /*End of Scope*/
/*90982*/   /*Scope*/ 13, /*->90996*/
/*90983*/     OPC_CheckInteger, 73|128,1/*201*/, 
/*90986*/     OPC_MoveParent,
/*90987*/     OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*90989*/     OPC_EmitMergeInputChains1_0,
/*90990*/     OPC_MorphNodeTo, TARGET_VAL(X86::VZEROALL), 0|OPFL_Chain,
                  0/*#VTs*/, 0/*#Ops*/, 
              // Src: (intrinsic_void 201:iPTR) - Complexity = 8
              // Dst: (VZEROALL)
/*90996*/   /*Scope*/ 13, /*->91010*/
/*90997*/     OPC_CheckInteger, 74|128,1/*202*/, 
/*91000*/     OPC_MoveParent,
/*91001*/     OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*91003*/     OPC_EmitMergeInputChains1_0,
/*91004*/     OPC_MorphNodeTo, TARGET_VAL(X86::VZEROUPPER), 0|OPFL_Chain,
                  0/*#VTs*/, 0/*#Ops*/, 
              // Src: (intrinsic_void 202:iPTR) - Complexity = 8
              // Dst: (VZEROUPPER)
/*91010*/   /*Scope*/ 13, /*->91024*/
/*91011*/     OPC_CheckInteger, 76|128,1/*204*/, 
/*91014*/     OPC_MoveParent,
/*91015*/     OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*91017*/     OPC_EmitMergeInputChains1_0,
/*91018*/     OPC_MorphNodeTo, TARGET_VAL(X86::MMX_EMMS), 0|OPFL_Chain,
                  0/*#VTs*/, 0/*#Ops*/, 
              // Src: (intrinsic_void 204:iPTR) - Complexity = 8
              // Dst: (MMX_EMMS)
/*91024*/   /*Scope*/ 43, /*->91068*/
/*91025*/     OPC_CheckInteger, 78|128,1/*206*/, 
/*91028*/     OPC_MoveParent,
/*91029*/     OPC_RecordChild2, // #1 = $src
/*91030*/     OPC_RecordChild3, // #2 = $mask
/*91031*/     OPC_RecordChild4, // #3 = physreg input EDI
/*91032*/     OPC_Scope, 16, /*->91050*/ // 2 children in Scope
/*91034*/       OPC_CheckChild4Type, MVT::i32,
/*91036*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*91038*/       OPC_EmitMergeInputChains1_0,
/*91039*/       OPC_EmitCopyToReg, 3, X86::EDI,
/*91042*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_MASKMOVQ), 0|OPFL_Chain|OPFL_GlueInput,
                    0/*#VTs*/, 2/*#Ops*/, 1, 2, 
                // Src: (intrinsic_void 206:iPTR, VR64:x86mmx:$src, VR64:x86mmx:$mask, EDI:i32) - Complexity = 8
                // Dst: (MMX_MASKMOVQ VR64:x86mmx:$src, VR64:x86mmx:$mask)
/*91050*/     /*Scope*/ 16, /*->91067*/
/*91051*/       OPC_CheckChild4Type, MVT::i64,
/*91053*/       OPC_CheckPatternPredicate, 36, // (Subtarget->hasMMX()) && (Subtarget->is64Bit())
/*91055*/       OPC_EmitMergeInputChains1_0,
/*91056*/       OPC_EmitCopyToReg, 3, X86::RDI,
/*91059*/       OPC_MorphNodeTo, TARGET_VAL(X86::MMX_MASKMOVQ64), 0|OPFL_Chain|OPFL_GlueInput,
                    0/*#VTs*/, 2/*#Ops*/, 1, 2, 
                // Src: (intrinsic_void 206:iPTR, VR64:x86mmx:$src, VR64:x86mmx:$mask, RDI:i64) - Complexity = 8
                // Dst: (MMX_MASKMOVQ64 VR64:x86mmx:$src, VR64:x86mmx:$mask)
/*91067*/     0, /*End of Scope*/
/*91068*/   /*Scope*/ 13, /*->91082*/
/*91069*/     OPC_CheckInteger, 77|128,1/*205*/, 
/*91072*/     OPC_MoveParent,
/*91073*/     OPC_CheckPatternPredicate, 13, // (Subtarget->has3DNow())
/*91075*/     OPC_EmitMergeInputChains1_0,
/*91076*/     OPC_MorphNodeTo, TARGET_VAL(X86::FEMMS), 0|OPFL_Chain,
                  0/*#VTs*/, 0/*#Ops*/, 
              // Src: (intrinsic_void 205:iPTR) - Complexity = 8
              // Dst: (FEMMS)
/*91082*/   /*Scope*/ 15, /*->91098*/
/*91083*/     OPC_CheckInteger, 124|128,2/*380*/, 
/*91086*/     OPC_MoveParent,
/*91087*/     OPC_RecordChild2, // #1 = $src1
/*91088*/     OPC_RecordChild3, // #2 = $src2
/*91089*/     OPC_EmitMergeInputChains1_0,
/*91090*/     OPC_MorphNodeTo, TARGET_VAL(X86::MWAIT), 0|OPFL_Chain,
                  0/*#VTs*/, 2/*#Ops*/, 1, 2, 
              // Src: (intrinsic_void 380:iPTR, GR32:i32:$src1, GR32:i32:$src2) - Complexity = 8
              // Dst: (MWAIT GR32:i32:$src1, GR32:i32:$src2)
/*91098*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 27|128,3/*411*/,  TARGET_VAL(ISD::INTRINSIC_W_CHAIN),// ->91514
/*91103*/   OPC_RecordNode,   // #0 = 'intrinsic_w_chain' chained node
/*91104*/   OPC_MoveChild, 1,
/*91106*/   OPC_Scope, 23, /*->91131*/ // 15 children in Scope
/*91108*/     OPC_CheckInteger, 7|128,1/*135*/, 
/*91111*/     OPC_MoveParent,
/*91112*/     OPC_RecordChild2, // #1 = $src
/*91113*/     OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*91115*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*91118*/     OPC_EmitMergeInputChains1_0,
/*91119*/     OPC_MorphNodeTo, TARGET_VAL(X86::VMOVDQUYrm), 0|OPFL_Chain,
                  1/*#VTs*/, MVT::v32i8, 5/*#Ops*/, 2, 3, 4, 5, 6, 
              // Src: (intrinsic_w_chain:v32i8 135:iPTR, addr:iPTR:$src) - Complexity = 26
              // Dst: (VMOVDQUYrm:v32i8 addr:iPTR:$src)
/*91131*/   /*Scope*/ 45, /*->91177*/
/*91132*/     OPC_CheckInteger, 122|128,2/*378*/, 
/*91135*/     OPC_MoveParent,
/*91136*/     OPC_RecordChild2, // #1 = $src
/*91137*/     OPC_Scope, 18, /*->91157*/ // 2 children in Scope
/*91139*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*91141*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*91144*/       OPC_EmitMergeInputChains1_0,
/*91145*/       OPC_MorphNodeTo, TARGET_VAL(X86::VLDDQUrm), 0|OPFL_Chain,
                    1/*#VTs*/, MVT::v16i8, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (intrinsic_w_chain:v16i8 378:iPTR, addr:iPTR:$src) - Complexity = 26
                // Dst: (VLDDQUrm:v16i8 addr:iPTR:$src)
/*91157*/     /*Scope*/ 18, /*->91176*/
/*91158*/       OPC_CheckPatternPredicate, 16, // (Subtarget->hasSSE3())
/*91160*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*91163*/       OPC_EmitMergeInputChains1_0,
/*91164*/       OPC_MorphNodeTo, TARGET_VAL(X86::LDDQUrm), 0|OPFL_Chain,
                    1/*#VTs*/, MVT::v16i8, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (intrinsic_w_chain:v16i8 378:iPTR, addr:iPTR:$src) - Complexity = 26
                // Dst: (LDDQUrm:v16i8 addr:iPTR:$src)
/*91176*/     0, /*End of Scope*/
/*91177*/   /*Scope*/ 23, /*->91201*/
/*91178*/     OPC_CheckInteger, 6|128,1/*134*/, 
/*91181*/     OPC_MoveParent,
/*91182*/     OPC_RecordChild2, // #1 = $src
/*91183*/     OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*91185*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*91188*/     OPC_EmitMergeInputChains1_0,
/*91189*/     OPC_MorphNodeTo, TARGET_VAL(X86::VLDDQUYrm), 0|OPFL_Chain,
                  1/*#VTs*/, MVT::v32i8, 5/*#Ops*/, 2, 3, 4, 5, 6, 
              // Src: (intrinsic_w_chain:v32i8 134:iPTR, addr:iPTR:$src) - Complexity = 26
              // Dst: (VLDDQUYrm:v32i8 addr:iPTR:$src)
/*91201*/   /*Scope*/ 45, /*->91247*/
/*91202*/     OPC_CheckInteger, 5|128,3/*389*/, 
/*91205*/     OPC_MoveParent,
/*91206*/     OPC_RecordChild2, // #1 = $src
/*91207*/     OPC_Scope, 18, /*->91227*/ // 2 children in Scope
/*91209*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*91211*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*91214*/       OPC_EmitMergeInputChains1_0,
/*91215*/       OPC_MorphNodeTo, TARGET_VAL(X86::VMOVNTDQArm), 0|OPFL_Chain,
                    1/*#VTs*/, MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (intrinsic_w_chain:v2i64 389:iPTR, addr:iPTR:$src) - Complexity = 26
                // Dst: (VMOVNTDQArm:v2i64 addr:iPTR:$src)
/*91227*/     /*Scope*/ 18, /*->91246*/
/*91228*/       OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*91230*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*91233*/       OPC_EmitMergeInputChains1_0,
/*91234*/       OPC_MorphNodeTo, TARGET_VAL(X86::MOVNTDQArm), 0|OPFL_Chain,
                    1/*#VTs*/, MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (intrinsic_w_chain:v2i64 389:iPTR, addr:iPTR:$src) - Complexity = 26
                // Dst: (MOVNTDQArm:v2i64 addr:iPTR:$src)
/*91246*/     0, /*End of Scope*/
/*91247*/   /*Scope*/ 21, /*->91269*/
/*91248*/     OPC_CheckInteger, 9|128,1/*137*/, 
/*91251*/     OPC_MoveParent,
/*91252*/     OPC_RecordChild2, // #1 = $src
/*91253*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*91256*/     OPC_EmitMergeInputChains1_0,
/*91257*/     OPC_MorphNodeTo, TARGET_VAL(X86::VMOVUPSYrm), 0|OPFL_Chain,
                  1/*#VTs*/, MVT::v8f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
              // Src: (intrinsic_w_chain:v8f32 137:iPTR, addr:iPTR:$src) - Complexity = 26
              // Dst: (VMOVUPSYrm:v8f32 addr:iPTR:$src)
/*91269*/   /*Scope*/ 21, /*->91291*/
/*91270*/     OPC_CheckInteger, 8|128,1/*136*/, 
/*91273*/     OPC_MoveParent,
/*91274*/     OPC_RecordChild2, // #1 = $src
/*91275*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*91278*/     OPC_EmitMergeInputChains1_0,
/*91279*/     OPC_MorphNodeTo, TARGET_VAL(X86::VMOVUPDYrm), 0|OPFL_Chain,
                  1/*#VTs*/, MVT::v4f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
              // Src: (intrinsic_w_chain:v4f64 136:iPTR, addr:iPTR:$src) - Complexity = 26
              // Dst: (VMOVUPDYrm:v4f64 addr:iPTR:$src)
/*91291*/   /*Scope*/ 23, /*->91315*/
/*91292*/     OPC_CheckInteger, 42|128,1/*170*/, 
/*91295*/     OPC_MoveParent,
/*91296*/     OPC_RecordChild2, // #1 = $src
/*91297*/     OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*91299*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*91302*/     OPC_EmitMergeInputChains1_0,
/*91303*/     OPC_MorphNodeTo, TARGET_VAL(X86::VBROADCASTSS), 0|OPFL_Chain,
                  1/*#VTs*/, MVT::v4f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
              // Src: (intrinsic_w_chain:v4f32 170:iPTR, addr:iPTR:$src) - Complexity = 26
              // Dst: (VBROADCASTSS:v4f32 addr:iPTR:$src)
/*91315*/   /*Scope*/ 23, /*->91339*/
/*91316*/     OPC_CheckInteger, 43|128,1/*171*/, 
/*91319*/     OPC_MoveParent,
/*91320*/     OPC_RecordChild2, // #1 = $src
/*91321*/     OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*91323*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*91326*/     OPC_EmitMergeInputChains1_0,
/*91327*/     OPC_MorphNodeTo, TARGET_VAL(X86::VBROADCASTSSY), 0|OPFL_Chain,
                  1/*#VTs*/, MVT::v8f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
              // Src: (intrinsic_w_chain:v8f32 171:iPTR, addr:iPTR:$src) - Complexity = 26
              // Dst: (VBROADCASTSSY:v8f32 addr:iPTR:$src)
/*91339*/   /*Scope*/ 23, /*->91363*/
/*91340*/     OPC_CheckInteger, 39|128,1/*167*/, 
/*91343*/     OPC_MoveParent,
/*91344*/     OPC_RecordChild2, // #1 = $src
/*91345*/     OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*91347*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*91350*/     OPC_EmitMergeInputChains1_0,
/*91351*/     OPC_MorphNodeTo, TARGET_VAL(X86::VBROADCASTSD), 0|OPFL_Chain,
                  1/*#VTs*/, MVT::v4f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
              // Src: (intrinsic_w_chain:v4f64 167:iPTR, addr:iPTR:$src) - Complexity = 26
              // Dst: (VBROADCASTSD:v4f64 addr:iPTR:$src)
/*91363*/   /*Scope*/ 23, /*->91387*/
/*91364*/     OPC_CheckInteger, 40|128,1/*168*/, 
/*91367*/     OPC_MoveParent,
/*91368*/     OPC_RecordChild2, // #1 = $src
/*91369*/     OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*91371*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*91374*/     OPC_EmitMergeInputChains1_0,
/*91375*/     OPC_MorphNodeTo, TARGET_VAL(X86::VBROADCASTF128), 0|OPFL_Chain,
                  1/*#VTs*/, MVT::v4f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
              // Src: (intrinsic_w_chain:v4f64 168:iPTR, addr:iPTR:$src) - Complexity = 26
              // Dst: (VBROADCASTF128:v4f64 addr:iPTR:$src)
/*91387*/   /*Scope*/ 21, /*->91409*/
/*91388*/     OPC_CheckInteger, 41|128,1/*169*/, 
/*91391*/     OPC_MoveParent,
/*91392*/     OPC_RecordChild2, // #1 = $src
/*91393*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*91396*/     OPC_EmitMergeInputChains1_0,
/*91397*/     OPC_MorphNodeTo, TARGET_VAL(X86::VBROADCASTF128), 0|OPFL_Chain,
                  1/*#VTs*/, MVT::v8f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
              // Src: (intrinsic_w_chain:v8f32 169:iPTR, addr:iPTR:$src) - Complexity = 26
              // Dst: (VBROADCASTF128:v8f32 addr:iPTR:$src)
/*91409*/   /*Scope*/ 25, /*->91435*/
/*91410*/     OPC_CheckInteger, 12|128,1/*140*/, 
/*91413*/     OPC_MoveParent,
/*91414*/     OPC_RecordChild2, // #1 = $src2
/*91415*/     OPC_RecordChild3, // #2 = $src1
/*91416*/     OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*91418*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*91421*/     OPC_EmitMergeInputChains1_0,
/*91422*/     OPC_MorphNodeTo, TARGET_VAL(X86::VMASKMOVPSrm), 0|OPFL_Chain,
                  1/*#VTs*/, MVT::v4f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
              // Src: (intrinsic_w_chain:v4f32 140:iPTR, addr:iPTR:$src2, VR128:v4f32:$src1) - Complexity = 26
              // Dst: (VMASKMOVPSrm:v4f32 VR128:v4f32:$src1, addr:iPTR:$src2)
/*91435*/   /*Scope*/ 25, /*->91461*/
/*91436*/     OPC_CheckInteger, 13|128,1/*141*/, 
/*91439*/     OPC_MoveParent,
/*91440*/     OPC_RecordChild2, // #1 = $src2
/*91441*/     OPC_RecordChild3, // #2 = $src1
/*91442*/     OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*91444*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*91447*/     OPC_EmitMergeInputChains1_0,
/*91448*/     OPC_MorphNodeTo, TARGET_VAL(X86::VMASKMOVPSYrm), 0|OPFL_Chain,
                  1/*#VTs*/, MVT::v8f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
              // Src: (intrinsic_w_chain:v8f32 141:iPTR, addr:iPTR:$src2, VR256:v8f32:$src1) - Complexity = 26
              // Dst: (VMASKMOVPSYrm:v8f32 VR256:v8f32:$src1, addr:iPTR:$src2)
/*91461*/   /*Scope*/ 25, /*->91487*/
/*91462*/     OPC_CheckInteger, 10|128,1/*138*/, 
/*91465*/     OPC_MoveParent,
/*91466*/     OPC_RecordChild2, // #1 = $src2
/*91467*/     OPC_RecordChild3, // #2 = $src1
/*91468*/     OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*91470*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*91473*/     OPC_EmitMergeInputChains1_0,
/*91474*/     OPC_MorphNodeTo, TARGET_VAL(X86::VMASKMOVPDrm), 0|OPFL_Chain,
                  1/*#VTs*/, MVT::v2f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
              // Src: (intrinsic_w_chain:v2f64 138:iPTR, addr:iPTR:$src2, VR128:v2f64:$src1) - Complexity = 26
              // Dst: (VMASKMOVPDrm:v2f64 VR128:v2f64:$src1, addr:iPTR:$src2)
/*91487*/   /*Scope*/ 25, /*->91513*/
/*91488*/     OPC_CheckInteger, 11|128,1/*139*/, 
/*91491*/     OPC_MoveParent,
/*91492*/     OPC_RecordChild2, // #1 = $src2
/*91493*/     OPC_RecordChild3, // #2 = $src1
/*91494*/     OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*91496*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*91499*/     OPC_EmitMergeInputChains1_0,
/*91500*/     OPC_MorphNodeTo, TARGET_VAL(X86::VMASKMOVPDYrm), 0|OPFL_Chain,
                  1/*#VTs*/, MVT::v4f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
              // Src: (intrinsic_w_chain:v4f64 139:iPTR, addr:iPTR:$src2, VR256:v4f64:$src1) - Complexity = 26
              // Dst: (VMASKMOVPDYrm:v4f64 VR256:v4f64:$src1, addr:iPTR:$src2)
/*91513*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 107,  TARGET_VAL(X86ISD::LCMPXCHG_DAG),// ->91624
/*91517*/   OPC_RecordMemRef,
/*91518*/   OPC_RecordNode,   // #0 = 'X86cas' chained node
/*91519*/   OPC_CaptureGlueInput,
/*91520*/   OPC_RecordChild1, // #1 = $ptr
/*91521*/   OPC_RecordChild2, // #2 = $swap
/*91522*/   OPC_Scope, 24, /*->91548*/ // 4 children in Scope
/*91524*/     OPC_CheckChild2Type, MVT::i8,
/*91526*/     OPC_MoveChild, 3,
/*91528*/     OPC_CheckInteger, 1, 
/*91530*/     OPC_MoveParent,
/*91531*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$ptr #3 #4 #5 #6 #7
/*91534*/     OPC_EmitMergeInputChains1_0,
/*91535*/     OPC_MorphNodeTo, TARGET_VAL(X86::LCMPXCHG8), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_MemRefs,
                  1/*#VTs*/, MVT::i8, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
              // Src: (X86cas addr:iPTR:$ptr, GR8:i8:$swap, 1:i8) - Complexity = 26
              // Dst: (LCMPXCHG8:i8 addr:iPTR:$ptr, GR8:i8:$swap)
/*91548*/   /*Scope*/ 24, /*->91573*/
/*91549*/     OPC_CheckChild2Type, MVT::i16,
/*91551*/     OPC_MoveChild, 3,
/*91553*/     OPC_CheckInteger, 2, 
/*91555*/     OPC_MoveParent,
/*91556*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$ptr #3 #4 #5 #6 #7
/*91559*/     OPC_EmitMergeInputChains1_0,
/*91560*/     OPC_MorphNodeTo, TARGET_VAL(X86::LCMPXCHG16), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_MemRefs,
                  1/*#VTs*/, MVT::i16, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
              // Src: (X86cas addr:iPTR:$ptr, GR16:i16:$swap, 2:i8) - Complexity = 26
              // Dst: (LCMPXCHG16:i16 addr:iPTR:$ptr, GR16:i16:$swap)
/*91573*/   /*Scope*/ 24, /*->91598*/
/*91574*/     OPC_CheckChild2Type, MVT::i32,
/*91576*/     OPC_MoveChild, 3,
/*91578*/     OPC_CheckInteger, 4, 
/*91580*/     OPC_MoveParent,
/*91581*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$ptr #3 #4 #5 #6 #7
/*91584*/     OPC_EmitMergeInputChains1_0,
/*91585*/     OPC_MorphNodeTo, TARGET_VAL(X86::LCMPXCHG32), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_MemRefs,
                  1/*#VTs*/, MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
              // Src: (X86cas addr:iPTR:$ptr, GR32:i32:$swap, 4:i8) - Complexity = 26
              // Dst: (LCMPXCHG32:i32 addr:iPTR:$ptr, GR32:i32:$swap)
/*91598*/   /*Scope*/ 24, /*->91623*/
/*91599*/     OPC_CheckChild2Type, MVT::i64,
/*91601*/     OPC_MoveChild, 3,
/*91603*/     OPC_CheckInteger, 8, 
/*91605*/     OPC_MoveParent,
/*91606*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$ptr #3 #4 #5 #6 #7
/*91609*/     OPC_EmitMergeInputChains1_0,
/*91610*/     OPC_MorphNodeTo, TARGET_VAL(X86::LCMPXCHG64), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_MemRefs,
                  1/*#VTs*/, MVT::i64, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
              // Src: (X86cas addr:iPTR:$ptr, GR64:i64:$swap, 8:i8) - Complexity = 26
              // Dst: (LCMPXCHG64:i64 addr:iPTR:$ptr, GR64:i64:$swap)
/*91623*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 97,  TARGET_VAL(ISD::BRIND),// ->91724
/*91627*/   OPC_RecordNode,   // #0 = 'brind' chained node
/*91628*/   OPC_Scope, 63, /*->91693*/ // 2 children in Scope
/*91630*/     OPC_MoveChild, 1,
/*91632*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*91635*/     OPC_RecordMemRef,
/*91636*/     OPC_RecordNode, // #1 = 'ld' chained node
/*91637*/     OPC_CheckFoldableChainNode,
/*91638*/     OPC_RecordChild1, // #2 = $dst
/*91639*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*91641*/     OPC_SwitchType /*2 cases */, 23,  MVT::i32,// ->91667
/*91644*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*91646*/       OPC_MoveParent,
/*91647*/       OPC_CheckPatternPredicate, 3, // (!Subtarget->is64Bit())
/*91649*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*91652*/       OPC_EmitMergeInputChains, 2, 0, 1, 
/*91656*/       OPC_MorphNodeTo, TARGET_VAL(X86::JMP32m), 0|OPFL_Chain|OPFL_MemRefs,
                    0/*#VTs*/, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                // Src: (brind (ld:i32 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>) - Complexity = 25
                // Dst: (JMP32m addr:iPTR:$dst)
              /*SwitchType*/ 23,  MVT::i64,// ->91692
/*91669*/       OPC_CheckPredicate, 3, // Predicate_load
/*91671*/       OPC_MoveParent,
/*91672*/       OPC_CheckPatternPredicate, 4, // (Subtarget->is64Bit())
/*91674*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*91677*/       OPC_EmitMergeInputChains, 2, 0, 1, 
/*91681*/       OPC_MorphNodeTo, TARGET_VAL(X86::JMP64m), 0|OPFL_Chain|OPFL_MemRefs,
                    0/*#VTs*/, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                // Src: (brind (ld:i64 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                // Dst: (JMP64m addr:iPTR:$dst)
              0, // EndSwitchType
/*91693*/   /*Scope*/ 29, /*->91723*/
/*91694*/     OPC_RecordChild1, // #1 = $dst
/*91695*/     OPC_Scope, 12, /*->91709*/ // 2 children in Scope
/*91697*/       OPC_CheckChild1Type, MVT::i32,
/*91699*/       OPC_CheckPatternPredicate, 3, // (!Subtarget->is64Bit())
/*91701*/       OPC_EmitMergeInputChains1_0,
/*91702*/       OPC_MorphNodeTo, TARGET_VAL(X86::JMP32r), 0|OPFL_Chain,
                    0/*#VTs*/, 1/*#Ops*/, 1, 
                // Src: (brind GR32:i32:$dst) - Complexity = 3
                // Dst: (JMP32r GR32:i32:$dst)
/*91709*/     /*Scope*/ 12, /*->91722*/
/*91710*/       OPC_CheckChild1Type, MVT::i64,
/*91712*/       OPC_CheckPatternPredicate, 4, // (Subtarget->is64Bit())
/*91714*/       OPC_EmitMergeInputChains1_0,
/*91715*/       OPC_MorphNodeTo, TARGET_VAL(X86::JMP64r), 0|OPFL_Chain,
                    0/*#VTs*/, 1/*#Ops*/, 1, 
                // Src: (brind GR64:i64:$dst) - Complexity = 3
                // Dst: (JMP64r GR64:i64:$dst)
/*91722*/     0, /*End of Scope*/
/*91723*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 3|128,2/*259*/,  TARGET_VAL(X86ISD::CALL),// ->91987
/*91728*/   OPC_RecordNode,   // #0 = 'X86call' chained node
/*91729*/   OPC_CaptureGlueInput,
/*91730*/   OPC_Scope, 90, /*->91822*/ // 2 children in Scope
/*91732*/     OPC_MoveChild, 1,
/*91734*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*91737*/     OPC_RecordMemRef,
/*91738*/     OPC_RecordNode, // #1 = 'ld' chained node
/*91739*/     OPC_CheckFoldableChainNode,
/*91740*/     OPC_RecordChild1, // #2 = $dst
/*91741*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*91743*/     OPC_SwitchType /*2 cases */, 24,  MVT::i32,// ->91770
/*91746*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*91748*/       OPC_MoveParent,
/*91749*/       OPC_CheckPatternPredicate, 3, // (!Subtarget->is64Bit())
/*91751*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*91754*/       OPC_EmitMergeInputChains, 2, 0, 1, 
/*91758*/       OPC_MorphNodeTo, TARGET_VAL(X86::CALL32m), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_MemRefs|OPFL_Variadic1,
                    1/*#VTs*/, MVT::i32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                // Src: (X86call (ld:i32 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>) - Complexity = 25
                // Dst: (CALL32m:i32 addr:iPTR:$dst)
              /*SwitchType*/ 49,  MVT::i64,// ->91821
/*91772*/       OPC_CheckPredicate, 3, // Predicate_load
/*91774*/       OPC_MoveParent,
/*91775*/       OPC_Scope, 21, /*->91798*/ // 2 children in Scope
/*91777*/         OPC_CheckPatternPredicate, 37, // (Subtarget->is64Bit()) && (!Subtarget->isTargetWin64())
/*91779*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*91782*/         OPC_EmitMergeInputChains, 2, 0, 1, 
/*91786*/         OPC_MorphNodeTo, TARGET_VAL(X86::CALL64m), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_MemRefs|OPFL_Variadic1,
                      1/*#VTs*/, MVT::i64, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                  // Src: (X86call (ld:i64 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (CALL64m:i64 addr:iPTR:$dst)
/*91798*/       /*Scope*/ 21, /*->91820*/
/*91799*/         OPC_CheckPatternPredicate, 38, // (Subtarget->isTargetWin64())
/*91801*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*91804*/         OPC_EmitMergeInputChains, 2, 0, 1, 
/*91808*/         OPC_MorphNodeTo, TARGET_VAL(X86::WINCALL64m), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_MemRefs|OPFL_Variadic1,
                      1/*#VTs*/, MVT::i64, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                  // Src: (X86call (ld:i64 addr:iPTR:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (WINCALL64m:i64 addr:iPTR:$dst)
/*91820*/       0, /*End of Scope*/
              0, // EndSwitchType
/*91822*/   /*Scope*/ 34|128,1/*162*/, /*->91986*/
/*91824*/     OPC_RecordChild1, // #1 = $dst
/*91825*/     OPC_Scope, 115, /*->91942*/ // 3 children in Scope
/*91827*/       OPC_MoveChild, 1,
/*91829*/       OPC_SwitchOpcode /*3 cases */, 43,  TARGET_VAL(ISD::TargetGlobalAddress),// ->91876
/*91833*/         OPC_SwitchType /*2 cases */, 27,  MVT::i64,// ->91863
/*91836*/           OPC_MoveParent,
/*91837*/           OPC_Scope, 11, /*->91850*/ // 2 children in Scope
/*91839*/             OPC_CheckPatternPredicate, 39, // (!Subtarget->isTargetWin64())
/*91841*/             OPC_EmitMergeInputChains1_0,
/*91842*/             OPC_MorphNodeTo, TARGET_VAL(X86::CALL64pcrel32), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
                          1/*#VTs*/, MVT::i64, 1/*#Ops*/, 1, 
                      // Src: (X86call (tglobaladdr:i64):$dst) - Complexity = 6
                      // Dst: (CALL64pcrel32:i64 (tglobaladdr:i64):$dst)
/*91850*/           /*Scope*/ 11, /*->91862*/
/*91851*/             OPC_CheckPatternPredicate, 38, // (Subtarget->isTargetWin64())
/*91853*/             OPC_EmitMergeInputChains1_0,
/*91854*/             OPC_MorphNodeTo, TARGET_VAL(X86::WINCALL64pcrel32), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
                          1/*#VTs*/, MVT::i64, 1/*#Ops*/, 1, 
                      // Src: (X86call (tglobaladdr:i64):$dst) - Complexity = 6
                      // Dst: (WINCALL64pcrel32:i64 (tglobaladdr:i64):$dst)
/*91862*/           0, /*End of Scope*/
                  /*SwitchType*/ 10,  MVT::i32,// ->91875
/*91865*/           OPC_MoveParent,
/*91866*/           OPC_EmitMergeInputChains1_0,
/*91867*/           OPC_MorphNodeTo, TARGET_VAL(X86::CALLpcrel32), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
                        1/*#VTs*/, MVT::i32, 1/*#Ops*/, 1, 
                    // Src: (X86call (tglobaladdr:i32):$dst) - Complexity = 6
                    // Dst: (CALLpcrel32:i32 (tglobaladdr:i32):$dst)
                  0, // EndSwitchType
                /*SwitchOpcode*/ 43,  TARGET_VAL(ISD::TargetExternalSymbol),// ->91922
/*91879*/         OPC_SwitchType /*2 cases */, 27,  MVT::i64,// ->91909
/*91882*/           OPC_MoveParent,
/*91883*/           OPC_Scope, 11, /*->91896*/ // 2 children in Scope
/*91885*/             OPC_CheckPatternPredicate, 39, // (!Subtarget->isTargetWin64())
/*91887*/             OPC_EmitMergeInputChains1_0,
/*91888*/             OPC_MorphNodeTo, TARGET_VAL(X86::CALL64pcrel32), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
                          1/*#VTs*/, MVT::i64, 1/*#Ops*/, 1, 
                      // Src: (X86call (texternalsym:i64):$dst) - Complexity = 6
                      // Dst: (CALL64pcrel32:i64 (texternalsym:i64):$dst)
/*91896*/           /*Scope*/ 11, /*->91908*/
/*91897*/             OPC_CheckPatternPredicate, 38, // (Subtarget->isTargetWin64())
/*91899*/             OPC_EmitMergeInputChains1_0,
/*91900*/             OPC_MorphNodeTo, TARGET_VAL(X86::WINCALL64pcrel32), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
                          1/*#VTs*/, MVT::i64, 1/*#Ops*/, 1, 
                      // Src: (X86call (texternalsym:i64):$dst) - Complexity = 6
                      // Dst: (WINCALL64pcrel32:i64 (texternalsym:i64):$dst)
/*91908*/           0, /*End of Scope*/
                  /*SwitchType*/ 10,  MVT::i32,// ->91921
/*91911*/           OPC_MoveParent,
/*91912*/           OPC_EmitMergeInputChains1_0,
/*91913*/           OPC_MorphNodeTo, TARGET_VAL(X86::CALLpcrel32), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
                        1/*#VTs*/, MVT::i32, 1/*#Ops*/, 1, 
                    // Src: (X86call (texternalsym:i32):$dst) - Complexity = 6
                    // Dst: (CALLpcrel32:i32 (texternalsym:i32):$dst)
                  0, // EndSwitchType
                /*SwitchOpcode*/ 16,  TARGET_VAL(ISD::Constant),// ->91941
/*91925*/         OPC_CheckType, MVT::i32,
/*91927*/         OPC_MoveParent,
/*91928*/         OPC_CheckPatternPredicate, 40, // (Subtarget->IsLegalToCallImmediateAddr(TM))
/*91930*/         OPC_EmitMergeInputChains1_0,
/*91931*/         OPC_EmitConvertToTarget, 1,
/*91933*/         OPC_MorphNodeTo, TARGET_VAL(X86::CALLpcrel32), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
                      1/*#VTs*/, MVT::i32, 1/*#Ops*/, 2, 
                  // Src: (X86call (imm:i32):$dst) - Complexity = 6
                  // Dst: (CALLpcrel32:i32 (imm:i32):$dst)
                0, // EndSwitchOpcode
/*91942*/     /*Scope*/ 13, /*->91956*/
/*91943*/       OPC_CheckChild1Type, MVT::i32,
/*91945*/       OPC_CheckPatternPredicate, 3, // (!Subtarget->is64Bit())
/*91947*/       OPC_EmitMergeInputChains1_0,
/*91948*/       OPC_MorphNodeTo, TARGET_VAL(X86::CALL32r), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
                    1/*#VTs*/, MVT::i32, 1/*#Ops*/, 1, 
                // Src: (X86call GR32:i32:$dst) - Complexity = 3
                // Dst: (CALL32r:i32 GR32:i32:$dst)
/*91956*/     /*Scope*/ 28, /*->91985*/
/*91957*/       OPC_CheckChild1Type, MVT::i64,
/*91959*/       OPC_Scope, 11, /*->91972*/ // 2 children in Scope
/*91961*/         OPC_CheckPatternPredicate, 37, // (Subtarget->is64Bit()) && (!Subtarget->isTargetWin64())
/*91963*/         OPC_EmitMergeInputChains1_0,
/*91964*/         OPC_MorphNodeTo, TARGET_VAL(X86::CALL64r), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
                      1/*#VTs*/, MVT::i64, 1/*#Ops*/, 1, 
                  // Src: (X86call GR64:i64:$dst) - Complexity = 3
                  // Dst: (CALL64r:i64 GR64:i64:$dst)
/*91972*/       /*Scope*/ 11, /*->91984*/
/*91973*/         OPC_CheckPatternPredicate, 38, // (Subtarget->isTargetWin64())
/*91975*/         OPC_EmitMergeInputChains1_0,
/*91976*/         OPC_MorphNodeTo, TARGET_VAL(X86::WINCALL64r), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
                      1/*#VTs*/, MVT::i64, 1/*#Ops*/, 1, 
                  // Src: (X86call GR64:i64:$dst) - Complexity = 3
                  // Dst: (WINCALL64r:i64 GR64:i64:$dst)
/*91984*/       0, /*End of Scope*/
/*91985*/     0, /*End of Scope*/
/*91986*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 48|128,2/*304*/,  TARGET_VAL(X86ISD::MOVLPS),// ->92295
/*91991*/   OPC_RecordChild0, // #0 = $src1
/*91992*/   OPC_Scope, 58, /*->92052*/ // 4 children in Scope
/*91994*/     OPC_MoveChild, 1,
/*91996*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*91999*/     OPC_RecordMemRef,
/*92000*/     OPC_RecordNode, // #1 = 'ld' chained node
/*92001*/     OPC_CheckFoldableChainNode,
/*92002*/     OPC_RecordChild1, // #2 = $src2
/*92003*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*92005*/     OPC_CheckPredicate, 3, // Predicate_load
/*92007*/     OPC_MoveParent,
/*92008*/     OPC_CheckType, MVT::v4i32,
/*92010*/     OPC_Scope, 19, /*->92031*/ // 2 children in Scope
/*92012*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*92014*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*92017*/       OPC_EmitMergeInputChains1_1,
/*92018*/       OPC_MorphNodeTo, TARGET_VAL(X86::VMOVLPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (X86Movlps:v4i32 VR128:v4i32:$src1, (ld:v4i32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                // Dst: (VMOVLPSrm:v4i32 VR128:v4i32:$src1, addr:iPTR:$src2)
/*92031*/     /*Scope*/ 19, /*->92051*/
/*92032*/       OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*92034*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*92037*/       OPC_EmitMergeInputChains1_1,
/*92038*/       OPC_MorphNodeTo, TARGET_VAL(X86::MOVLPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (X86Movlps:v4i32 VR128:v4i32:$src1, (ld:v4i32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                // Dst: (MOVLPSrm:v4i32 VR128:v4i32:$src1, addr:iPTR:$src2)
/*92051*/     0, /*End of Scope*/
/*92052*/   /*Scope*/ 53, /*->92106*/
/*92053*/     OPC_RecordChild1, // #1 = $src2
/*92054*/     OPC_CheckType, MVT::v4i32,
/*92056*/     OPC_Scope, 23, /*->92081*/ // 2 children in Scope
/*92058*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*92060*/       OPC_EmitInteger, MVT::i32, X86::sub_sd,
/*92063*/       OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                    1/*#VTs*/, MVT::f64, 2/*#Ops*/, 1, 2,  // Results = #3 
/*92072*/       OPC_MorphNodeTo, TARGET_VAL(X86::MOVSDrr), 0,
                    1/*#VTs*/, MVT::v4i32, 2/*#Ops*/, 0, 3, 
                // Src: (X86Movlps:v4i32 VR128:v4i32:$src1, VR128:v4i32:$src2) - Complexity = 3
                // Dst: (MOVSDrr:v4i32 VR128:v4i32:$src1, (EXTRACT_SUBREG:f64 VR128:v4i32:$src2, sub_sd:i32))
/*92081*/     /*Scope*/ 23, /*->92105*/
/*92082*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*92084*/       OPC_EmitInteger, MVT::i32, X86::sub_sd,
/*92087*/       OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                    1/*#VTs*/, MVT::f64, 2/*#Ops*/, 1, 2,  // Results = #3 
/*92096*/       OPC_MorphNodeTo, TARGET_VAL(X86::VMOVSDrr), 0,
                    1/*#VTs*/, MVT::v4i32, 2/*#Ops*/, 0, 3, 
                // Src: (X86Movlps:v4i32 VR128:v4i32:$src1, VR128:v4i32:$src2) - Complexity = 3
                // Dst: (VMOVSDrr:v4i32 VR128:v4i32:$src1, (EXTRACT_SUBREG:f64 VR128:v4i32:$src2, sub_sd:i32))
/*92105*/     0, /*End of Scope*/
/*92106*/   /*Scope*/ 4|128,1/*132*/, /*->92240*/
/*92108*/     OPC_MoveChild, 1,
/*92110*/     OPC_SwitchOpcode /*2 cases */, 69,  TARGET_VAL(ISD::BITCAST),// ->92183
/*92114*/       OPC_MoveChild, 0,
/*92116*/       OPC_CheckOpcode, TARGET_VAL(ISD::SCALAR_TO_VECTOR),
/*92119*/       OPC_MoveChild, 0,
/*92121*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*92124*/       OPC_RecordMemRef,
/*92125*/       OPC_RecordNode, // #1 = 'ld' chained node
/*92126*/       OPC_CheckFoldableChainNode,
/*92127*/       OPC_RecordChild1, // #2 = $src2
/*92128*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*92130*/       OPC_CheckPredicate, 3, // Predicate_load
/*92132*/       OPC_CheckType, MVT::f64,
/*92134*/       OPC_MoveParent,
/*92135*/       OPC_CheckType, MVT::v2f64,
/*92137*/       OPC_MoveParent,
/*92138*/       OPC_MoveParent,
/*92139*/       OPC_CheckType, MVT::v4f32,
/*92141*/       OPC_Scope, 19, /*->92162*/ // 2 children in Scope
/*92143*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*92145*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*92148*/         OPC_EmitMergeInputChains1_1,
/*92149*/         OPC_MorphNodeTo, TARGET_VAL(X86::VMOVLPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (X86Movlps:v4f32 VR128:v4f32:$src1, (bitconvert:v4f32 (scalar_to_vector:v2f64 (ld:f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 31
                  // Dst: (VMOVLPSrm:v4f32 VR128:v4f32:$src1, addr:iPTR:$src2)
/*92162*/       /*Scope*/ 19, /*->92182*/
/*92163*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*92165*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*92168*/         OPC_EmitMergeInputChains1_1,
/*92169*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOVLPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (X86Movlps:v4f32 VR128:v4f32:$src1, (bitconvert:v4f32 (scalar_to_vector:v2f64 (ld:f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 31
                  // Dst: (MOVLPSrm:v4f32 VR128:v4f32:$src1, addr:iPTR:$src2)
/*92182*/       0, /*End of Scope*/
              /*SwitchOpcode*/ 53,  TARGET_VAL(ISD::LOAD),// ->92239
/*92186*/       OPC_RecordMemRef,
/*92187*/       OPC_RecordNode, // #1 = 'ld' chained node
/*92188*/       OPC_CheckFoldableChainNode,
/*92189*/       OPC_RecordChild1, // #2 = $src2
/*92190*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*92192*/       OPC_CheckPredicate, 3, // Predicate_load
/*92194*/       OPC_MoveParent,
/*92195*/       OPC_CheckType, MVT::v4f32,
/*92197*/       OPC_Scope, 19, /*->92218*/ // 2 children in Scope
/*92199*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*92201*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*92204*/         OPC_EmitMergeInputChains1_1,
/*92205*/         OPC_MorphNodeTo, TARGET_VAL(X86::VMOVLPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (X86Movlps:v4f32 VR128:v4f32:$src1, (ld:v4f32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (VMOVLPSrm:v4f32 VR128:v4f32:$src1, addr:iPTR:$src2)
/*92218*/       /*Scope*/ 19, /*->92238*/
/*92219*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*92221*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*92224*/         OPC_EmitMergeInputChains1_1,
/*92225*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOVLPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (X86Movlps:v4f32 VR128:v4f32:$src1, (ld:v4f32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (MOVLPSrm:v4f32 VR128:v4f32:$src1, addr:iPTR:$src2)
/*92238*/       0, /*End of Scope*/
              0, // EndSwitchOpcode
/*92240*/   /*Scope*/ 53, /*->92294*/
/*92241*/     OPC_RecordChild1, // #1 = $src2
/*92242*/     OPC_CheckType, MVT::v4f32,
/*92244*/     OPC_Scope, 23, /*->92269*/ // 2 children in Scope
/*92246*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*92248*/       OPC_EmitInteger, MVT::i32, X86::sub_sd,
/*92251*/       OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                    1/*#VTs*/, MVT::f64, 2/*#Ops*/, 1, 2,  // Results = #3 
/*92260*/       OPC_MorphNodeTo, TARGET_VAL(X86::MOVSDrr), 0,
                    1/*#VTs*/, MVT::v4f32, 2/*#Ops*/, 0, 3, 
                // Src: (X86Movlps:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src2) - Complexity = 3
                // Dst: (MOVSDrr:v4f32 VR128:v4f32:$src1, (EXTRACT_SUBREG:f64 VR128:v4f32:$src2, sub_sd:i32))
/*92269*/     /*Scope*/ 23, /*->92293*/
/*92270*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*92272*/       OPC_EmitInteger, MVT::i32, X86::sub_sd,
/*92275*/       OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                    1/*#VTs*/, MVT::f64, 2/*#Ops*/, 1, 2,  // Results = #3 
/*92284*/       OPC_MorphNodeTo, TARGET_VAL(X86::VMOVSDrr), 0,
                    1/*#VTs*/, MVT::v4f32, 2/*#Ops*/, 0, 3, 
                // Src: (X86Movlps:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src2) - Complexity = 3
                // Dst: (VMOVSDrr:v4f32 VR128:v4f32:$src1, (EXTRACT_SUBREG:f64 VR128:v4f32:$src2, sub_sd:i32))
/*92293*/     0, /*End of Scope*/
/*92294*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 43|128,1/*171*/,  TARGET_VAL(X86ISD::MOVLPD),// ->92470
/*92299*/   OPC_RecordChild0, // #0 = $src1
/*92300*/   OPC_MoveChild, 1,
/*92302*/   OPC_SwitchOpcode /*2 cases */, 99,  TARGET_VAL(ISD::LOAD),// ->92405
/*92306*/     OPC_RecordMemRef,
/*92307*/     OPC_RecordNode, // #1 = 'ld' chained node
/*92308*/     OPC_CheckFoldableChainNode,
/*92309*/     OPC_RecordChild1, // #2 = $src2
/*92310*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*92312*/     OPC_CheckPredicate, 3, // Predicate_load
/*92314*/     OPC_MoveParent,
/*92315*/     OPC_SwitchType /*2 cases */, 42,  MVT::v2i64,// ->92360
/*92318*/       OPC_Scope, 19, /*->92339*/ // 2 children in Scope
/*92320*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*92322*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*92325*/         OPC_EmitMergeInputChains1_1,
/*92326*/         OPC_MorphNodeTo, TARGET_VAL(X86::VMOVLPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (X86Movlpd:v2i64 VR128:v2i64:$src1, (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (VMOVLPDrm:v2i64 VR128:v2i64:$src1, addr:iPTR:$src2)
/*92339*/       /*Scope*/ 19, /*->92359*/
/*92340*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*92342*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*92345*/         OPC_EmitMergeInputChains1_1,
/*92346*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOVLPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (X86Movlpd:v2i64 VR128:v2i64:$src1, (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (MOVLPDrm:v2i64 VR128:v2i64:$src1, addr:iPTR:$src2)
/*92359*/       0, /*End of Scope*/
              /*SwitchType*/ 42,  MVT::v2f64,// ->92404
/*92362*/       OPC_Scope, 19, /*->92383*/ // 2 children in Scope
/*92364*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*92366*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*92369*/         OPC_EmitMergeInputChains1_1,
/*92370*/         OPC_MorphNodeTo, TARGET_VAL(X86::VMOVLPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (X86Movlpd:v2f64 VR128:v2f64:$src1, (ld:v2f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (VMOVLPDrm:v2f64 VR128:v2f64:$src1, addr:iPTR:$src2)
/*92383*/       /*Scope*/ 19, /*->92403*/
/*92384*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*92386*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*92389*/         OPC_EmitMergeInputChains1_1,
/*92390*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOVLPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (X86Movlpd:v2f64 VR128:v2f64:$src1, (ld:v2f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (MOVLPDrm:v2f64 VR128:v2f64:$src1, addr:iPTR:$src2)
/*92403*/       0, /*End of Scope*/
              0, // EndSwitchType
            /*SwitchOpcode*/ 61,  TARGET_VAL(ISD::SCALAR_TO_VECTOR),// ->92469
/*92408*/     OPC_MoveChild, 0,
/*92410*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*92413*/     OPC_RecordMemRef,
/*92414*/     OPC_RecordNode, // #1 = 'ld' chained node
/*92415*/     OPC_CheckFoldableChainNode,
/*92416*/     OPC_RecordChild1, // #2 = $src2
/*92417*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*92419*/     OPC_CheckPredicate, 3, // Predicate_load
/*92421*/     OPC_CheckType, MVT::f64,
/*92423*/     OPC_MoveParent,
/*92424*/     OPC_MoveParent,
/*92425*/     OPC_CheckType, MVT::v2f64,
/*92427*/     OPC_Scope, 19, /*->92448*/ // 2 children in Scope
/*92429*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*92431*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*92434*/       OPC_EmitMergeInputChains1_1,
/*92435*/       OPC_MorphNodeTo, TARGET_VAL(X86::VMOVLPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (X86Movlpd:v2f64 VR128:v2f64:$src1, (scalar_to_vector:v2f64 (ld:f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                // Dst: (VMOVLPDrm:v2f64 VR128:v2f64:$src1, addr:iPTR:$src2)
/*92448*/     /*Scope*/ 19, /*->92468*/
/*92449*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*92451*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*92454*/       OPC_EmitMergeInputChains1_1,
/*92455*/       OPC_MorphNodeTo, TARGET_VAL(X86::MOVLPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (X86Movlpd:v2f64 VR128:v2f64:$src1, (scalar_to_vector:v2f64 (ld:f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                // Dst: (MOVLPDrm:v2f64 VR128:v2f64:$src1, addr:iPTR:$src2)
/*92468*/     0, /*End of Scope*/
            0, // EndSwitchOpcode
          /*SwitchOpcode*/ 109,  TARGET_VAL(X86ISD::VUNPCKLPSY),// ->92582
/*92473*/   OPC_RecordChild0, // #0 = $src1
/*92474*/   OPC_Scope, 37, /*->92513*/ // 4 children in Scope
/*92476*/     OPC_MoveChild, 1,
/*92478*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*92481*/     OPC_RecordMemRef,
/*92482*/     OPC_RecordNode, // #1 = 'ld' chained node
/*92483*/     OPC_CheckFoldableChainNode,
/*92484*/     OPC_RecordChild1, // #2 = $src2
/*92485*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*92487*/     OPC_CheckPredicate, 3, // Predicate_load
/*92489*/     OPC_CheckPredicate, 23, // Predicate_memop
/*92491*/     OPC_MoveParent,
/*92492*/     OPC_CheckType, MVT::v8i32,
/*92494*/     OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*92496*/     OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*92499*/     OPC_EmitMergeInputChains1_1,
/*92500*/     OPC_MorphNodeTo, TARGET_VAL(X86::VUNPCKLPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                  1/*#VTs*/, MVT::v8i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
              // Src: (X86Unpcklpsy:v8i32 VR256:v8i32:$src1, (ld:v8i32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
              // Dst: (VUNPCKLPSYrm:v8i32 VR256:v8i32:$src1, addr:iPTR:$src2)
/*92513*/   /*Scope*/ 14, /*->92528*/
/*92514*/     OPC_RecordChild1, // #1 = $src2
/*92515*/     OPC_CheckType, MVT::v8i32,
/*92517*/     OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*92519*/     OPC_MorphNodeTo, TARGET_VAL(X86::VUNPCKLPSYrr), 0,
                  1/*#VTs*/, MVT::v8i32, 2/*#Ops*/, 0, 1, 
              // Src: (X86Unpcklpsy:v8i32 VR256:v8i32:$src1, VR256:v8i32:$src2) - Complexity = 3
              // Dst: (VUNPCKLPSYrr:v8i32 VR256:v8i32:$src1, VR256:v8i32:$src2)
/*92528*/   /*Scope*/ 37, /*->92566*/
/*92529*/     OPC_MoveChild, 1,
/*92531*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*92534*/     OPC_RecordMemRef,
/*92535*/     OPC_RecordNode, // #1 = 'ld' chained node
/*92536*/     OPC_CheckFoldableChainNode,
/*92537*/     OPC_RecordChild1, // #2 = $src2
/*92538*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*92540*/     OPC_CheckPredicate, 3, // Predicate_load
/*92542*/     OPC_CheckPredicate, 23, // Predicate_memop
/*92544*/     OPC_MoveParent,
/*92545*/     OPC_CheckType, MVT::v8f32,
/*92547*/     OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*92549*/     OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*92552*/     OPC_EmitMergeInputChains1_1,
/*92553*/     OPC_MorphNodeTo, TARGET_VAL(X86::VUNPCKLPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                  1/*#VTs*/, MVT::v8f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
              // Src: (X86Unpcklpsy:v8f32 VR256:v8f32:$src1, (ld:v8f32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
              // Dst: (VUNPCKLPSYrm:v8f32 VR256:v8f32:$src1, addr:iPTR:$src2)
/*92566*/   /*Scope*/ 14, /*->92581*/
/*92567*/     OPC_RecordChild1, // #1 = $src2
/*92568*/     OPC_CheckType, MVT::v8f32,
/*92570*/     OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*92572*/     OPC_MorphNodeTo, TARGET_VAL(X86::VUNPCKLPSYrr), 0,
                  1/*#VTs*/, MVT::v8f32, 2/*#Ops*/, 0, 1, 
              // Src: (X86Unpcklpsy:v8f32 VR256:v8f32:$src1, VR256:v8f32:$src2) - Complexity = 3
              // Dst: (VUNPCKLPSYrr:v8f32 VR256:v8f32:$src1, VR256:v8f32:$src2)
/*92581*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 109,  TARGET_VAL(X86ISD::VUNPCKHPSY),// ->92694
/*92585*/   OPC_RecordChild0, // #0 = $src1
/*92586*/   OPC_Scope, 37, /*->92625*/ // 4 children in Scope
/*92588*/     OPC_MoveChild, 1,
/*92590*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*92593*/     OPC_RecordMemRef,
/*92594*/     OPC_RecordNode, // #1 = 'ld' chained node
/*92595*/     OPC_CheckFoldableChainNode,
/*92596*/     OPC_RecordChild1, // #2 = $src2
/*92597*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*92599*/     OPC_CheckPredicate, 3, // Predicate_load
/*92601*/     OPC_CheckPredicate, 23, // Predicate_memop
/*92603*/     OPC_MoveParent,
/*92604*/     OPC_CheckType, MVT::v8i32,
/*92606*/     OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*92608*/     OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*92611*/     OPC_EmitMergeInputChains1_1,
/*92612*/     OPC_MorphNodeTo, TARGET_VAL(X86::VUNPCKHPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                  1/*#VTs*/, MVT::v8i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
              // Src: (X86Unpckhpsy:v8i32 VR256:v8i32:$src1, (ld:v8i32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
              // Dst: (VUNPCKHPSYrm:v8i32 VR256:v8i32:$src1, addr:iPTR:$src2)
/*92625*/   /*Scope*/ 14, /*->92640*/
/*92626*/     OPC_RecordChild1, // #1 = $src2
/*92627*/     OPC_CheckType, MVT::v8i32,
/*92629*/     OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*92631*/     OPC_MorphNodeTo, TARGET_VAL(X86::VUNPCKHPSYrr), 0,
                  1/*#VTs*/, MVT::v8i32, 2/*#Ops*/, 0, 1, 
              // Src: (X86Unpckhpsy:v8i32 VR256:v8i32:$src1, VR256:v8i32:$src2) - Complexity = 3
              // Dst: (VUNPCKHPSYrr:v8i32 VR256:v8i32:$src1, VR256:v8i32:$src2)
/*92640*/   /*Scope*/ 37, /*->92678*/
/*92641*/     OPC_MoveChild, 1,
/*92643*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*92646*/     OPC_RecordMemRef,
/*92647*/     OPC_RecordNode, // #1 = 'ld' chained node
/*92648*/     OPC_CheckFoldableChainNode,
/*92649*/     OPC_RecordChild1, // #2 = $src2
/*92650*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*92652*/     OPC_CheckPredicate, 3, // Predicate_load
/*92654*/     OPC_CheckPredicate, 23, // Predicate_memop
/*92656*/     OPC_MoveParent,
/*92657*/     OPC_CheckType, MVT::v8f32,
/*92659*/     OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*92661*/     OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*92664*/     OPC_EmitMergeInputChains1_1,
/*92665*/     OPC_MorphNodeTo, TARGET_VAL(X86::VUNPCKHPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                  1/*#VTs*/, MVT::v8f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
              // Src: (X86Unpckhpsy:v8f32 VR256:v8f32:$src1, (ld:v8f32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
              // Dst: (VUNPCKHPSYrm:v8f32 VR256:v8f32:$src1, addr:iPTR:$src2)
/*92678*/   /*Scope*/ 14, /*->92693*/
/*92679*/     OPC_RecordChild1, // #1 = $src2
/*92680*/     OPC_CheckType, MVT::v8f32,
/*92682*/     OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*92684*/     OPC_MorphNodeTo, TARGET_VAL(X86::VUNPCKHPSYrr), 0,
                  1/*#VTs*/, MVT::v8f32, 2/*#Ops*/, 0, 1, 
              // Src: (X86Unpckhpsy:v8f32 VR256:v8f32:$src1, VR256:v8f32:$src2) - Complexity = 3
              // Dst: (VUNPCKHPSYrr:v8f32 VR256:v8f32:$src1, VR256:v8f32:$src2)
/*92693*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 109,  TARGET_VAL(X86ISD::VUNPCKLPDY),// ->92806
/*92697*/   OPC_RecordChild0, // #0 = $src1
/*92698*/   OPC_Scope, 37, /*->92737*/ // 4 children in Scope
/*92700*/     OPC_MoveChild, 1,
/*92702*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*92705*/     OPC_RecordMemRef,
/*92706*/     OPC_RecordNode, // #1 = 'ld' chained node
/*92707*/     OPC_CheckFoldableChainNode,
/*92708*/     OPC_RecordChild1, // #2 = $src2
/*92709*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*92711*/     OPC_CheckPredicate, 3, // Predicate_load
/*92713*/     OPC_CheckPredicate, 23, // Predicate_memop
/*92715*/     OPC_MoveParent,
/*92716*/     OPC_CheckType, MVT::v4i64,
/*92718*/     OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*92720*/     OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*92723*/     OPC_EmitMergeInputChains1_1,
/*92724*/     OPC_MorphNodeTo, TARGET_VAL(X86::VUNPCKLPDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                  1/*#VTs*/, MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
              // Src: (X86Unpcklpdy:v4i64 VR256:v4i64:$src1, (ld:v4i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
              // Dst: (VUNPCKLPDYrm:v4i64 VR256:v4i64:$src1, addr:iPTR:$src2)
/*92737*/   /*Scope*/ 14, /*->92752*/
/*92738*/     OPC_RecordChild1, // #1 = $src2
/*92739*/     OPC_CheckType, MVT::v4i64,
/*92741*/     OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*92743*/     OPC_MorphNodeTo, TARGET_VAL(X86::VUNPCKLPDYrr), 0,
                  1/*#VTs*/, MVT::v4i64, 2/*#Ops*/, 0, 1, 
              // Src: (X86Unpcklpdy:v4i64 VR256:v4i64:$src1, VR256:v4i64:$src2) - Complexity = 3
              // Dst: (VUNPCKLPDYrr:v4i64 VR256:v4i64:$src1, VR256:v4i64:$src2)
/*92752*/   /*Scope*/ 37, /*->92790*/
/*92753*/     OPC_MoveChild, 1,
/*92755*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*92758*/     OPC_RecordMemRef,
/*92759*/     OPC_RecordNode, // #1 = 'ld' chained node
/*92760*/     OPC_CheckFoldableChainNode,
/*92761*/     OPC_RecordChild1, // #2 = $src2
/*92762*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*92764*/     OPC_CheckPredicate, 3, // Predicate_load
/*92766*/     OPC_CheckPredicate, 23, // Predicate_memop
/*92768*/     OPC_MoveParent,
/*92769*/     OPC_CheckType, MVT::v4f64,
/*92771*/     OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*92773*/     OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*92776*/     OPC_EmitMergeInputChains1_1,
/*92777*/     OPC_MorphNodeTo, TARGET_VAL(X86::VUNPCKLPDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                  1/*#VTs*/, MVT::v4f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
              // Src: (X86Unpcklpdy:v4f64 VR256:v4f64:$src1, (ld:v4f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
              // Dst: (VUNPCKLPDYrm:v4f64 VR256:v4f64:$src1, addr:iPTR:$src2)
/*92790*/   /*Scope*/ 14, /*->92805*/
/*92791*/     OPC_RecordChild1, // #1 = $src2
/*92792*/     OPC_CheckType, MVT::v4f64,
/*92794*/     OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*92796*/     OPC_MorphNodeTo, TARGET_VAL(X86::VUNPCKLPDYrr), 0,
                  1/*#VTs*/, MVT::v4f64, 2/*#Ops*/, 0, 1, 
              // Src: (X86Unpcklpdy:v4f64 VR256:v4f64:$src1, VR256:v4f64:$src2) - Complexity = 3
              // Dst: (VUNPCKLPDYrr:v4f64 VR256:v4f64:$src1, VR256:v4f64:$src2)
/*92805*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 109,  TARGET_VAL(X86ISD::VUNPCKHPDY),// ->92918
/*92809*/   OPC_RecordChild0, // #0 = $src1
/*92810*/   OPC_Scope, 37, /*->92849*/ // 4 children in Scope
/*92812*/     OPC_MoveChild, 1,
/*92814*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*92817*/     OPC_RecordMemRef,
/*92818*/     OPC_RecordNode, // #1 = 'ld' chained node
/*92819*/     OPC_CheckFoldableChainNode,
/*92820*/     OPC_RecordChild1, // #2 = $src2
/*92821*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*92823*/     OPC_CheckPredicate, 3, // Predicate_load
/*92825*/     OPC_CheckPredicate, 23, // Predicate_memop
/*92827*/     OPC_MoveParent,
/*92828*/     OPC_CheckType, MVT::v4i64,
/*92830*/     OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*92832*/     OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*92835*/     OPC_EmitMergeInputChains1_1,
/*92836*/     OPC_MorphNodeTo, TARGET_VAL(X86::VUNPCKHPDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                  1/*#VTs*/, MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
              // Src: (X86Unpckhpdy:v4i64 VR256:v4i64:$src1, (ld:v4i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
              // Dst: (VUNPCKHPDYrm:v4i64 VR256:v4i64:$src1, addr:iPTR:$src2)
/*92849*/   /*Scope*/ 14, /*->92864*/
/*92850*/     OPC_RecordChild1, // #1 = $src2
/*92851*/     OPC_CheckType, MVT::v4i64,
/*92853*/     OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*92855*/     OPC_MorphNodeTo, TARGET_VAL(X86::VUNPCKHPDYrr), 0,
                  1/*#VTs*/, MVT::v4i64, 2/*#Ops*/, 0, 1, 
              // Src: (X86Unpckhpdy:v4i64 VR256:v4i64:$src1, VR256:v4i64:$src2) - Complexity = 3
              // Dst: (VUNPCKHPDYrr:v4i64 VR256:v4i64:$src1, VR256:v4i64:$src2)
/*92864*/   /*Scope*/ 37, /*->92902*/
/*92865*/     OPC_MoveChild, 1,
/*92867*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*92870*/     OPC_RecordMemRef,
/*92871*/     OPC_RecordNode, // #1 = 'ld' chained node
/*92872*/     OPC_CheckFoldableChainNode,
/*92873*/     OPC_RecordChild1, // #2 = $src2
/*92874*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*92876*/     OPC_CheckPredicate, 3, // Predicate_load
/*92878*/     OPC_CheckPredicate, 23, // Predicate_memop
/*92880*/     OPC_MoveParent,
/*92881*/     OPC_CheckType, MVT::v4f64,
/*92883*/     OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*92885*/     OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*92888*/     OPC_EmitMergeInputChains1_1,
/*92889*/     OPC_MorphNodeTo, TARGET_VAL(X86::VUNPCKHPDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                  1/*#VTs*/, MVT::v4f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
              // Src: (X86Unpckhpdy:v4f64 VR256:v4f64:$src1, (ld:v4f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
              // Dst: (VUNPCKHPDYrm:v4f64 VR256:v4f64:$src1, addr:iPTR:$src2)
/*92902*/   /*Scope*/ 14, /*->92917*/
/*92903*/     OPC_RecordChild1, // #1 = $src2
/*92904*/     OPC_CheckType, MVT::v4f64,
/*92906*/     OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*92908*/     OPC_MorphNodeTo, TARGET_VAL(X86::VUNPCKHPDYrr), 0,
                  1/*#VTs*/, MVT::v4f64, 2/*#Ops*/, 0, 1, 
              // Src: (X86Unpckhpdy:v4f64 VR256:v4f64:$src1, VR256:v4f64:$src2) - Complexity = 3
              // Dst: (VUNPCKHPDYrr:v4f64 VR256:v4f64:$src1, VR256:v4f64:$src2)
/*92917*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 29|128,1/*157*/,  TARGET_VAL(X86ISD::PCMPEQB),// ->93079
/*92922*/   OPC_Scope, 61, /*->92985*/ // 3 children in Scope
/*92924*/     OPC_RecordChild0, // #0 = $src1
/*92925*/     OPC_MoveChild, 1,
/*92927*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*92930*/     OPC_RecordMemRef,
/*92931*/     OPC_RecordNode, // #1 = 'ld' chained node
/*92932*/     OPC_CheckFoldableChainNode,
/*92933*/     OPC_RecordChild1, // #2 = $src2
/*92934*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*92936*/     OPC_CheckPredicate, 3, // Predicate_load
/*92938*/     OPC_CheckPredicate, 23, // Predicate_memop
/*92940*/     OPC_MoveParent,
/*92941*/     OPC_CheckType, MVT::v16i8,
/*92943*/     OPC_Scope, 19, /*->92964*/ // 2 children in Scope
/*92945*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*92947*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*92950*/       OPC_EmitMergeInputChains1_1,
/*92951*/       OPC_MorphNodeTo, TARGET_VAL(X86::VPCMPEQBrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (X86pcmpeqb:v16i8 VR128:v16i8:$src1, (ld:v16i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                // Dst: (VPCMPEQBrm:v16i8 VR128:v16i8:$src1, addr:iPTR:$src2)
/*92964*/     /*Scope*/ 19, /*->92984*/
/*92965*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*92967*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*92970*/       OPC_EmitMergeInputChains1_1,
/*92971*/       OPC_MorphNodeTo, TARGET_VAL(X86::PCMPEQBrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (X86pcmpeqb:v16i8 VR128:v16i8:$src1, (ld:v16i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                // Dst: (PCMPEQBrm:v16i8 VR128:v16i8:$src1, addr:iPTR:$src2)
/*92984*/     0, /*End of Scope*/
/*92985*/   /*Scope*/ 61, /*->93047*/
/*92986*/     OPC_MoveChild, 0,
/*92988*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*92991*/     OPC_RecordMemRef,
/*92992*/     OPC_RecordNode, // #0 = 'ld' chained node
/*92993*/     OPC_CheckFoldableChainNode,
/*92994*/     OPC_RecordChild1, // #1 = $src2
/*92995*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*92997*/     OPC_CheckPredicate, 3, // Predicate_load
/*92999*/     OPC_CheckPredicate, 23, // Predicate_memop
/*93001*/     OPC_MoveParent,
/*93002*/     OPC_RecordChild1, // #2 = $src1
/*93003*/     OPC_CheckType, MVT::v16i8,
/*93005*/     OPC_Scope, 19, /*->93026*/ // 2 children in Scope
/*93007*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*93009*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*93012*/       OPC_EmitMergeInputChains1_0,
/*93013*/       OPC_MorphNodeTo, TARGET_VAL(X86::VPCMPEQBrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v16i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                // Src: (X86pcmpeqb:v16i8 (ld:v16i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, VR128:v16i8:$src1) - Complexity = 25
                // Dst: (VPCMPEQBrm:v16i8 VR128:v16i8:$src1, addr:iPTR:$src2)
/*93026*/     /*Scope*/ 19, /*->93046*/
/*93027*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*93029*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*93032*/       OPC_EmitMergeInputChains1_0,
/*93033*/       OPC_MorphNodeTo, TARGET_VAL(X86::PCMPEQBrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v16i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                // Src: (X86pcmpeqb:v16i8 (ld:v16i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, VR128:v16i8:$src1) - Complexity = 25
                // Dst: (PCMPEQBrm:v16i8 VR128:v16i8:$src1, addr:iPTR:$src2)
/*93046*/     0, /*End of Scope*/
/*93047*/   /*Scope*/ 30, /*->93078*/
/*93048*/     OPC_RecordChild0, // #0 = $src1
/*93049*/     OPC_RecordChild1, // #1 = $src2
/*93050*/     OPC_CheckType, MVT::v16i8,
/*93052*/     OPC_Scope, 11, /*->93065*/ // 2 children in Scope
/*93054*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*93056*/       OPC_MorphNodeTo, TARGET_VAL(X86::VPCMPEQBrr), 0,
                    1/*#VTs*/, MVT::v16i8, 2/*#Ops*/, 0, 1, 
                // Src: (X86pcmpeqb:v16i8 VR128:v16i8:$src1, VR128:v16i8:$src2) - Complexity = 3
                // Dst: (VPCMPEQBrr:v16i8 VR128:v16i8:$src1, VR128:v16i8:$src2)
/*93065*/     /*Scope*/ 11, /*->93077*/
/*93066*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*93068*/       OPC_MorphNodeTo, TARGET_VAL(X86::PCMPEQBrr), 0,
                    1/*#VTs*/, MVT::v16i8, 2/*#Ops*/, 0, 1, 
                // Src: (X86pcmpeqb:v16i8 VR128:v16i8:$src1, VR128:v16i8:$src2) - Complexity = 3
                // Dst: (PCMPEQBrr:v16i8 VR128:v16i8:$src1, VR128:v16i8:$src2)
/*93077*/     0, /*End of Scope*/
/*93078*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 29|128,1/*157*/,  TARGET_VAL(X86ISD::PCMPEQW),// ->93240
/*93083*/   OPC_Scope, 61, /*->93146*/ // 3 children in Scope
/*93085*/     OPC_RecordChild0, // #0 = $src1
/*93086*/     OPC_MoveChild, 1,
/*93088*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*93091*/     OPC_RecordMemRef,
/*93092*/     OPC_RecordNode, // #1 = 'ld' chained node
/*93093*/     OPC_CheckFoldableChainNode,
/*93094*/     OPC_RecordChild1, // #2 = $src2
/*93095*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*93097*/     OPC_CheckPredicate, 3, // Predicate_load
/*93099*/     OPC_CheckPredicate, 23, // Predicate_memop
/*93101*/     OPC_MoveParent,
/*93102*/     OPC_CheckType, MVT::v8i16,
/*93104*/     OPC_Scope, 19, /*->93125*/ // 2 children in Scope
/*93106*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*93108*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*93111*/       OPC_EmitMergeInputChains1_1,
/*93112*/       OPC_MorphNodeTo, TARGET_VAL(X86::VPCMPEQWrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (X86pcmpeqw:v8i16 VR128:v8i16:$src1, (ld:v8i16 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                // Dst: (VPCMPEQWrm:v8i16 VR128:v8i16:$src1, addr:iPTR:$src2)
/*93125*/     /*Scope*/ 19, /*->93145*/
/*93126*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*93128*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*93131*/       OPC_EmitMergeInputChains1_1,
/*93132*/       OPC_MorphNodeTo, TARGET_VAL(X86::PCMPEQWrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (X86pcmpeqw:v8i16 VR128:v8i16:$src1, (ld:v8i16 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                // Dst: (PCMPEQWrm:v8i16 VR128:v8i16:$src1, addr:iPTR:$src2)
/*93145*/     0, /*End of Scope*/
/*93146*/   /*Scope*/ 61, /*->93208*/
/*93147*/     OPC_MoveChild, 0,
/*93149*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*93152*/     OPC_RecordMemRef,
/*93153*/     OPC_RecordNode, // #0 = 'ld' chained node
/*93154*/     OPC_CheckFoldableChainNode,
/*93155*/     OPC_RecordChild1, // #1 = $src2
/*93156*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*93158*/     OPC_CheckPredicate, 3, // Predicate_load
/*93160*/     OPC_CheckPredicate, 23, // Predicate_memop
/*93162*/     OPC_MoveParent,
/*93163*/     OPC_RecordChild1, // #2 = $src1
/*93164*/     OPC_CheckType, MVT::v8i16,
/*93166*/     OPC_Scope, 19, /*->93187*/ // 2 children in Scope
/*93168*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*93170*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*93173*/       OPC_EmitMergeInputChains1_0,
/*93174*/       OPC_MorphNodeTo, TARGET_VAL(X86::VPCMPEQWrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v8i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                // Src: (X86pcmpeqw:v8i16 (ld:v8i16 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, VR128:v8i16:$src1) - Complexity = 25
                // Dst: (VPCMPEQWrm:v8i16 VR128:v8i16:$src1, addr:iPTR:$src2)
/*93187*/     /*Scope*/ 19, /*->93207*/
/*93188*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*93190*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*93193*/       OPC_EmitMergeInputChains1_0,
/*93194*/       OPC_MorphNodeTo, TARGET_VAL(X86::PCMPEQWrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v8i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                // Src: (X86pcmpeqw:v8i16 (ld:v8i16 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, VR128:v8i16:$src1) - Complexity = 25
                // Dst: (PCMPEQWrm:v8i16 VR128:v8i16:$src1, addr:iPTR:$src2)
/*93207*/     0, /*End of Scope*/
/*93208*/   /*Scope*/ 30, /*->93239*/
/*93209*/     OPC_RecordChild0, // #0 = $src1
/*93210*/     OPC_RecordChild1, // #1 = $src2
/*93211*/     OPC_CheckType, MVT::v8i16,
/*93213*/     OPC_Scope, 11, /*->93226*/ // 2 children in Scope
/*93215*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*93217*/       OPC_MorphNodeTo, TARGET_VAL(X86::VPCMPEQWrr), 0,
                    1/*#VTs*/, MVT::v8i16, 2/*#Ops*/, 0, 1, 
                // Src: (X86pcmpeqw:v8i16 VR128:v8i16:$src1, VR128:v8i16:$src2) - Complexity = 3
                // Dst: (VPCMPEQWrr:v8i16 VR128:v8i16:$src1, VR128:v8i16:$src2)
/*93226*/     /*Scope*/ 11, /*->93238*/
/*93227*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*93229*/       OPC_MorphNodeTo, TARGET_VAL(X86::PCMPEQWrr), 0,
                    1/*#VTs*/, MVT::v8i16, 2/*#Ops*/, 0, 1, 
                // Src: (X86pcmpeqw:v8i16 VR128:v8i16:$src1, VR128:v8i16:$src2) - Complexity = 3
                // Dst: (PCMPEQWrr:v8i16 VR128:v8i16:$src1, VR128:v8i16:$src2)
/*93238*/     0, /*End of Scope*/
/*93239*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 29|128,1/*157*/,  TARGET_VAL(X86ISD::PCMPEQD),// ->93401
/*93244*/   OPC_Scope, 61, /*->93307*/ // 3 children in Scope
/*93246*/     OPC_RecordChild0, // #0 = $src1
/*93247*/     OPC_MoveChild, 1,
/*93249*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*93252*/     OPC_RecordMemRef,
/*93253*/     OPC_RecordNode, // #1 = 'ld' chained node
/*93254*/     OPC_CheckFoldableChainNode,
/*93255*/     OPC_RecordChild1, // #2 = $src2
/*93256*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*93258*/     OPC_CheckPredicate, 3, // Predicate_load
/*93260*/     OPC_CheckPredicate, 23, // Predicate_memop
/*93262*/     OPC_MoveParent,
/*93263*/     OPC_CheckType, MVT::v4i32,
/*93265*/     OPC_Scope, 19, /*->93286*/ // 2 children in Scope
/*93267*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*93269*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*93272*/       OPC_EmitMergeInputChains1_1,
/*93273*/       OPC_MorphNodeTo, TARGET_VAL(X86::VPCMPEQDrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (X86pcmpeqd:v4i32 VR128:v4i32:$src1, (ld:v4i32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                // Dst: (VPCMPEQDrm:v4i32 VR128:v4i32:$src1, addr:iPTR:$src2)
/*93286*/     /*Scope*/ 19, /*->93306*/
/*93287*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*93289*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*93292*/       OPC_EmitMergeInputChains1_1,
/*93293*/       OPC_MorphNodeTo, TARGET_VAL(X86::PCMPEQDrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (X86pcmpeqd:v4i32 VR128:v4i32:$src1, (ld:v4i32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                // Dst: (PCMPEQDrm:v4i32 VR128:v4i32:$src1, addr:iPTR:$src2)
/*93306*/     0, /*End of Scope*/
/*93307*/   /*Scope*/ 61, /*->93369*/
/*93308*/     OPC_MoveChild, 0,
/*93310*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*93313*/     OPC_RecordMemRef,
/*93314*/     OPC_RecordNode, // #0 = 'ld' chained node
/*93315*/     OPC_CheckFoldableChainNode,
/*93316*/     OPC_RecordChild1, // #1 = $src2
/*93317*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*93319*/     OPC_CheckPredicate, 3, // Predicate_load
/*93321*/     OPC_CheckPredicate, 23, // Predicate_memop
/*93323*/     OPC_MoveParent,
/*93324*/     OPC_RecordChild1, // #2 = $src1
/*93325*/     OPC_CheckType, MVT::v4i32,
/*93327*/     OPC_Scope, 19, /*->93348*/ // 2 children in Scope
/*93329*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*93331*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*93334*/       OPC_EmitMergeInputChains1_0,
/*93335*/       OPC_MorphNodeTo, TARGET_VAL(X86::VPCMPEQDrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v4i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                // Src: (X86pcmpeqd:v4i32 (ld:v4i32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, VR128:v4i32:$src1) - Complexity = 25
                // Dst: (VPCMPEQDrm:v4i32 VR128:v4i32:$src1, addr:iPTR:$src2)
/*93348*/     /*Scope*/ 19, /*->93368*/
/*93349*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*93351*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*93354*/       OPC_EmitMergeInputChains1_0,
/*93355*/       OPC_MorphNodeTo, TARGET_VAL(X86::PCMPEQDrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v4i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                // Src: (X86pcmpeqd:v4i32 (ld:v4i32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, VR128:v4i32:$src1) - Complexity = 25
                // Dst: (PCMPEQDrm:v4i32 VR128:v4i32:$src1, addr:iPTR:$src2)
/*93368*/     0, /*End of Scope*/
/*93369*/   /*Scope*/ 30, /*->93400*/
/*93370*/     OPC_RecordChild0, // #0 = $src1
/*93371*/     OPC_RecordChild1, // #1 = $src2
/*93372*/     OPC_CheckType, MVT::v4i32,
/*93374*/     OPC_Scope, 11, /*->93387*/ // 2 children in Scope
/*93376*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*93378*/       OPC_MorphNodeTo, TARGET_VAL(X86::VPCMPEQDrr), 0,
                    1/*#VTs*/, MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (X86pcmpeqd:v4i32 VR128:v4i32:$src1, VR128:v4i32:$src2) - Complexity = 3
                // Dst: (VPCMPEQDrr:v4i32 VR128:v4i32:$src1, VR128:v4i32:$src2)
/*93387*/     /*Scope*/ 11, /*->93399*/
/*93388*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*93390*/       OPC_MorphNodeTo, TARGET_VAL(X86::PCMPEQDrr), 0,
                    1/*#VTs*/, MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (X86pcmpeqd:v4i32 VR128:v4i32:$src1, VR128:v4i32:$src2) - Complexity = 3
                // Dst: (PCMPEQDrr:v4i32 VR128:v4i32:$src1, VR128:v4i32:$src2)
/*93399*/     0, /*End of Scope*/
/*93400*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 94,  TARGET_VAL(X86ISD::PCMPGTB),// ->93498
/*93404*/   OPC_RecordChild0, // #0 = $src1
/*93405*/   OPC_Scope, 60, /*->93467*/ // 2 children in Scope
/*93407*/     OPC_MoveChild, 1,
/*93409*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*93412*/     OPC_RecordMemRef,
/*93413*/     OPC_RecordNode, // #1 = 'ld' chained node
/*93414*/     OPC_CheckFoldableChainNode,
/*93415*/     OPC_RecordChild1, // #2 = $src2
/*93416*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*93418*/     OPC_CheckPredicate, 3, // Predicate_load
/*93420*/     OPC_CheckPredicate, 23, // Predicate_memop
/*93422*/     OPC_MoveParent,
/*93423*/     OPC_CheckType, MVT::v16i8,
/*93425*/     OPC_Scope, 19, /*->93446*/ // 2 children in Scope
/*93427*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*93429*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*93432*/       OPC_EmitMergeInputChains1_1,
/*93433*/       OPC_MorphNodeTo, TARGET_VAL(X86::VPCMPGTBrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (X86pcmpgtb:v16i8 VR128:v16i8:$src1, (ld:v16i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                // Dst: (VPCMPGTBrm:v16i8 VR128:v16i8:$src1, addr:iPTR:$src2)
/*93446*/     /*Scope*/ 19, /*->93466*/
/*93447*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*93449*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*93452*/       OPC_EmitMergeInputChains1_1,
/*93453*/       OPC_MorphNodeTo, TARGET_VAL(X86::PCMPGTBrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (X86pcmpgtb:v16i8 VR128:v16i8:$src1, (ld:v16i8 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                // Dst: (PCMPGTBrm:v16i8 VR128:v16i8:$src1, addr:iPTR:$src2)
/*93466*/     0, /*End of Scope*/
/*93467*/   /*Scope*/ 29, /*->93497*/
/*93468*/     OPC_RecordChild1, // #1 = $src2
/*93469*/     OPC_CheckType, MVT::v16i8,
/*93471*/     OPC_Scope, 11, /*->93484*/ // 2 children in Scope
/*93473*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*93475*/       OPC_MorphNodeTo, TARGET_VAL(X86::VPCMPGTBrr), 0,
                    1/*#VTs*/, MVT::v16i8, 2/*#Ops*/, 0, 1, 
                // Src: (X86pcmpgtb:v16i8 VR128:v16i8:$src1, VR128:v16i8:$src2) - Complexity = 3
                // Dst: (VPCMPGTBrr:v16i8 VR128:v16i8:$src1, VR128:v16i8:$src2)
/*93484*/     /*Scope*/ 11, /*->93496*/
/*93485*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*93487*/       OPC_MorphNodeTo, TARGET_VAL(X86::PCMPGTBrr), 0,
                    1/*#VTs*/, MVT::v16i8, 2/*#Ops*/, 0, 1, 
                // Src: (X86pcmpgtb:v16i8 VR128:v16i8:$src1, VR128:v16i8:$src2) - Complexity = 3
                // Dst: (PCMPGTBrr:v16i8 VR128:v16i8:$src1, VR128:v16i8:$src2)
/*93496*/     0, /*End of Scope*/
/*93497*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 94,  TARGET_VAL(X86ISD::PCMPGTW),// ->93595
/*93501*/   OPC_RecordChild0, // #0 = $src1
/*93502*/   OPC_Scope, 60, /*->93564*/ // 2 children in Scope
/*93504*/     OPC_MoveChild, 1,
/*93506*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*93509*/     OPC_RecordMemRef,
/*93510*/     OPC_RecordNode, // #1 = 'ld' chained node
/*93511*/     OPC_CheckFoldableChainNode,
/*93512*/     OPC_RecordChild1, // #2 = $src2
/*93513*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*93515*/     OPC_CheckPredicate, 3, // Predicate_load
/*93517*/     OPC_CheckPredicate, 23, // Predicate_memop
/*93519*/     OPC_MoveParent,
/*93520*/     OPC_CheckType, MVT::v8i16,
/*93522*/     OPC_Scope, 19, /*->93543*/ // 2 children in Scope
/*93524*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*93526*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*93529*/       OPC_EmitMergeInputChains1_1,
/*93530*/       OPC_MorphNodeTo, TARGET_VAL(X86::VPCMPGTWrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (X86pcmpgtw:v8i16 VR128:v8i16:$src1, (ld:v8i16 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                // Dst: (VPCMPGTWrm:v8i16 VR128:v8i16:$src1, addr:iPTR:$src2)
/*93543*/     /*Scope*/ 19, /*->93563*/
/*93544*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*93546*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*93549*/       OPC_EmitMergeInputChains1_1,
/*93550*/       OPC_MorphNodeTo, TARGET_VAL(X86::PCMPGTWrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (X86pcmpgtw:v8i16 VR128:v8i16:$src1, (ld:v8i16 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                // Dst: (PCMPGTWrm:v8i16 VR128:v8i16:$src1, addr:iPTR:$src2)
/*93563*/     0, /*End of Scope*/
/*93564*/   /*Scope*/ 29, /*->93594*/
/*93565*/     OPC_RecordChild1, // #1 = $src2
/*93566*/     OPC_CheckType, MVT::v8i16,
/*93568*/     OPC_Scope, 11, /*->93581*/ // 2 children in Scope
/*93570*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*93572*/       OPC_MorphNodeTo, TARGET_VAL(X86::VPCMPGTWrr), 0,
                    1/*#VTs*/, MVT::v8i16, 2/*#Ops*/, 0, 1, 
                // Src: (X86pcmpgtw:v8i16 VR128:v8i16:$src1, VR128:v8i16:$src2) - Complexity = 3
                // Dst: (VPCMPGTWrr:v8i16 VR128:v8i16:$src1, VR128:v8i16:$src2)
/*93581*/     /*Scope*/ 11, /*->93593*/
/*93582*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*93584*/       OPC_MorphNodeTo, TARGET_VAL(X86::PCMPGTWrr), 0,
                    1/*#VTs*/, MVT::v8i16, 2/*#Ops*/, 0, 1, 
                // Src: (X86pcmpgtw:v8i16 VR128:v8i16:$src1, VR128:v8i16:$src2) - Complexity = 3
                // Dst: (PCMPGTWrr:v8i16 VR128:v8i16:$src1, VR128:v8i16:$src2)
/*93593*/     0, /*End of Scope*/
/*93594*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 94,  TARGET_VAL(X86ISD::PCMPGTD),// ->93692
/*93598*/   OPC_RecordChild0, // #0 = $src1
/*93599*/   OPC_Scope, 60, /*->93661*/ // 2 children in Scope
/*93601*/     OPC_MoveChild, 1,
/*93603*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*93606*/     OPC_RecordMemRef,
/*93607*/     OPC_RecordNode, // #1 = 'ld' chained node
/*93608*/     OPC_CheckFoldableChainNode,
/*93609*/     OPC_RecordChild1, // #2 = $src2
/*93610*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*93612*/     OPC_CheckPredicate, 3, // Predicate_load
/*93614*/     OPC_CheckPredicate, 23, // Predicate_memop
/*93616*/     OPC_MoveParent,
/*93617*/     OPC_CheckType, MVT::v4i32,
/*93619*/     OPC_Scope, 19, /*->93640*/ // 2 children in Scope
/*93621*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*93623*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*93626*/       OPC_EmitMergeInputChains1_1,
/*93627*/       OPC_MorphNodeTo, TARGET_VAL(X86::VPCMPGTDrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (X86pcmpgtd:v4i32 VR128:v4i32:$src1, (ld:v4i32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                // Dst: (VPCMPGTDrm:v4i32 VR128:v4i32:$src1, addr:iPTR:$src2)
/*93640*/     /*Scope*/ 19, /*->93660*/
/*93641*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*93643*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*93646*/       OPC_EmitMergeInputChains1_1,
/*93647*/       OPC_MorphNodeTo, TARGET_VAL(X86::PCMPGTDrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (X86pcmpgtd:v4i32 VR128:v4i32:$src1, (ld:v4i32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                // Dst: (PCMPGTDrm:v4i32 VR128:v4i32:$src1, addr:iPTR:$src2)
/*93660*/     0, /*End of Scope*/
/*93661*/   /*Scope*/ 29, /*->93691*/
/*93662*/     OPC_RecordChild1, // #1 = $src2
/*93663*/     OPC_CheckType, MVT::v4i32,
/*93665*/     OPC_Scope, 11, /*->93678*/ // 2 children in Scope
/*93667*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*93669*/       OPC_MorphNodeTo, TARGET_VAL(X86::VPCMPGTDrr), 0,
                    1/*#VTs*/, MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (X86pcmpgtd:v4i32 VR128:v4i32:$src1, VR128:v4i32:$src2) - Complexity = 3
                // Dst: (VPCMPGTDrr:v4i32 VR128:v4i32:$src1, VR128:v4i32:$src2)
/*93678*/     /*Scope*/ 11, /*->93690*/
/*93679*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*93681*/       OPC_MorphNodeTo, TARGET_VAL(X86::PCMPGTDrr), 0,
                    1/*#VTs*/, MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (X86pcmpgtd:v4i32 VR128:v4i32:$src1, VR128:v4i32:$src2) - Complexity = 3
                // Dst: (PCMPGTDrr:v4i32 VR128:v4i32:$src1, VR128:v4i32:$src2)
/*93690*/     0, /*End of Scope*/
/*93691*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 94,  TARGET_VAL(X86ISD::PUNPCKLQDQ),// ->93789
/*93695*/   OPC_RecordChild0, // #0 = $src1
/*93696*/   OPC_Scope, 60, /*->93758*/ // 2 children in Scope
/*93698*/     OPC_MoveChild, 1,
/*93700*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*93703*/     OPC_RecordMemRef,
/*93704*/     OPC_RecordNode, // #1 = 'ld' chained node
/*93705*/     OPC_CheckFoldableChainNode,
/*93706*/     OPC_RecordChild1, // #2 = $src2
/*93707*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*93709*/     OPC_CheckPredicate, 3, // Predicate_load
/*93711*/     OPC_CheckPredicate, 23, // Predicate_memop
/*93713*/     OPC_MoveParent,
/*93714*/     OPC_CheckType, MVT::v2i64,
/*93716*/     OPC_Scope, 19, /*->93737*/ // 2 children in Scope
/*93718*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*93720*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*93723*/       OPC_EmitMergeInputChains1_1,
/*93724*/       OPC_MorphNodeTo, TARGET_VAL(X86::VPUNPCKLQDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (X86Punpcklqdq:v2i64 VR128:v2i64:$src1, (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                // Dst: (VPUNPCKLQDQrm:v2i64 VR128:v2i64:$src1, addr:iPTR:$src2)
/*93737*/     /*Scope*/ 19, /*->93757*/
/*93738*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*93740*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*93743*/       OPC_EmitMergeInputChains1_1,
/*93744*/       OPC_MorphNodeTo, TARGET_VAL(X86::PUNPCKLQDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (X86Punpcklqdq:v2i64 VR128:v2i64:$src1, (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                // Dst: (PUNPCKLQDQrm:v2i64 VR128:v2i64:$src1, addr:iPTR:$src2)
/*93757*/     0, /*End of Scope*/
/*93758*/   /*Scope*/ 29, /*->93788*/
/*93759*/     OPC_RecordChild1, // #1 = $src2
/*93760*/     OPC_CheckType, MVT::v2i64,
/*93762*/     OPC_Scope, 11, /*->93775*/ // 2 children in Scope
/*93764*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*93766*/       OPC_MorphNodeTo, TARGET_VAL(X86::VPUNPCKLQDQrr), 0,
                    1/*#VTs*/, MVT::v2i64, 2/*#Ops*/, 0, 1, 
                // Src: (X86Punpcklqdq:v2i64 VR128:v2i64:$src1, VR128:v2i64:$src2) - Complexity = 3
                // Dst: (VPUNPCKLQDQrr:v2i64 VR128:v2i64:$src1, VR128:v2i64:$src2)
/*93775*/     /*Scope*/ 11, /*->93787*/
/*93776*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*93778*/       OPC_MorphNodeTo, TARGET_VAL(X86::PUNPCKLQDQrr), 0,
                    1/*#VTs*/, MVT::v2i64, 2/*#Ops*/, 0, 1, 
                // Src: (X86Punpcklqdq:v2i64 VR128:v2i64:$src1, VR128:v2i64:$src2) - Complexity = 3
                // Dst: (PUNPCKLQDQrr:v2i64 VR128:v2i64:$src1, VR128:v2i64:$src2)
/*93787*/     0, /*End of Scope*/
/*93788*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 94,  TARGET_VAL(X86ISD::PUNPCKHQDQ),// ->93886
/*93792*/   OPC_RecordChild0, // #0 = $src1
/*93793*/   OPC_Scope, 60, /*->93855*/ // 2 children in Scope
/*93795*/     OPC_MoveChild, 1,
/*93797*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*93800*/     OPC_RecordMemRef,
/*93801*/     OPC_RecordNode, // #1 = 'ld' chained node
/*93802*/     OPC_CheckFoldableChainNode,
/*93803*/     OPC_RecordChild1, // #2 = $src2
/*93804*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*93806*/     OPC_CheckPredicate, 3, // Predicate_load
/*93808*/     OPC_CheckPredicate, 23, // Predicate_memop
/*93810*/     OPC_MoveParent,
/*93811*/     OPC_CheckType, MVT::v2i64,
/*93813*/     OPC_Scope, 19, /*->93834*/ // 2 children in Scope
/*93815*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*93817*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*93820*/       OPC_EmitMergeInputChains1_1,
/*93821*/       OPC_MorphNodeTo, TARGET_VAL(X86::VPUNPCKHQDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (X86Punpckhqdq:v2i64 VR128:v2i64:$src1, (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                // Dst: (VPUNPCKHQDQrm:v2i64 VR128:v2i64:$src1, addr:iPTR:$src2)
/*93834*/     /*Scope*/ 19, /*->93854*/
/*93835*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*93837*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*93840*/       OPC_EmitMergeInputChains1_1,
/*93841*/       OPC_MorphNodeTo, TARGET_VAL(X86::PUNPCKHQDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (X86Punpckhqdq:v2i64 VR128:v2i64:$src1, (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                // Dst: (PUNPCKHQDQrm:v2i64 VR128:v2i64:$src1, addr:iPTR:$src2)
/*93854*/     0, /*End of Scope*/
/*93855*/   /*Scope*/ 29, /*->93885*/
/*93856*/     OPC_RecordChild1, // #1 = $src2
/*93857*/     OPC_CheckType, MVT::v2i64,
/*93859*/     OPC_Scope, 11, /*->93872*/ // 2 children in Scope
/*93861*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*93863*/       OPC_MorphNodeTo, TARGET_VAL(X86::VPUNPCKHQDQrr), 0,
                    1/*#VTs*/, MVT::v2i64, 2/*#Ops*/, 0, 1, 
                // Src: (X86Punpckhqdq:v2i64 VR128:v2i64:$src1, VR128:v2i64:$src2) - Complexity = 3
                // Dst: (VPUNPCKHQDQrr:v2i64 VR128:v2i64:$src1, VR128:v2i64:$src2)
/*93872*/     /*Scope*/ 11, /*->93884*/
/*93873*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*93875*/       OPC_MorphNodeTo, TARGET_VAL(X86::PUNPCKHQDQrr), 0,
                    1/*#VTs*/, MVT::v2i64, 2/*#Ops*/, 0, 1, 
                // Src: (X86Punpckhqdq:v2i64 VR128:v2i64:$src1, VR128:v2i64:$src2) - Complexity = 3
                // Dst: (PUNPCKHQDQrr:v2i64 VR128:v2i64:$src1, VR128:v2i64:$src2)
/*93884*/     0, /*End of Scope*/
/*93885*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 23|128,1/*151*/,  TARGET_VAL(X86ISD::PCMPEQQ),// ->94041
/*93890*/   OPC_Scope, 59, /*->93951*/ // 3 children in Scope
/*93892*/     OPC_RecordChild0, // #0 = $src1
/*93893*/     OPC_MoveChild, 1,
/*93895*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*93898*/     OPC_RecordMemRef,
/*93899*/     OPC_RecordNode, // #1 = 'ld' chained node
/*93900*/     OPC_CheckFoldableChainNode,
/*93901*/     OPC_RecordChild1, // #2 = $src2
/*93902*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*93904*/     OPC_CheckPredicate, 3, // Predicate_load
/*93906*/     OPC_CheckPredicate, 23, // Predicate_memop
/*93908*/     OPC_MoveParent,
/*93909*/     OPC_CheckType, MVT::v2i64,
/*93911*/     OPC_Scope, 19, /*->93932*/ // 2 children in Scope
/*93913*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*93915*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*93918*/       OPC_EmitMergeInputChains1_1,
/*93919*/       OPC_MorphNodeTo, TARGET_VAL(X86::VPCMPEQQrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (X86pcmpeqq:v2i64 VR128:v2i64:$src1, (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                // Dst: (VPCMPEQQrm:v2i64 VR128:v2i64:$src1, addr:iPTR:$src2)
/*93932*/     /*Scope*/ 17, /*->93950*/
/*93933*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*93936*/       OPC_EmitMergeInputChains1_1,
/*93937*/       OPC_MorphNodeTo, TARGET_VAL(X86::PCMPEQQrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (X86pcmpeqq:v2i64 VR128:v2i64:$src1, (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                // Dst: (PCMPEQQrm:v2i64 VR128:v2i64:$src1, addr:iPTR:$src2)
/*93950*/     0, /*End of Scope*/
/*93951*/   /*Scope*/ 59, /*->94011*/
/*93952*/     OPC_MoveChild, 0,
/*93954*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*93957*/     OPC_RecordMemRef,
/*93958*/     OPC_RecordNode, // #0 = 'ld' chained node
/*93959*/     OPC_CheckFoldableChainNode,
/*93960*/     OPC_RecordChild1, // #1 = $src2
/*93961*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*93963*/     OPC_CheckPredicate, 3, // Predicate_load
/*93965*/     OPC_CheckPredicate, 23, // Predicate_memop
/*93967*/     OPC_MoveParent,
/*93968*/     OPC_RecordChild1, // #2 = $src1
/*93969*/     OPC_CheckType, MVT::v2i64,
/*93971*/     OPC_Scope, 19, /*->93992*/ // 2 children in Scope
/*93973*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*93975*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*93978*/       OPC_EmitMergeInputChains1_0,
/*93979*/       OPC_MorphNodeTo, TARGET_VAL(X86::VPCMPEQQrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v2i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                // Src: (X86pcmpeqq:v2i64 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, VR128:v2i64:$src1) - Complexity = 25
                // Dst: (VPCMPEQQrm:v2i64 VR128:v2i64:$src1, addr:iPTR:$src2)
/*93992*/     /*Scope*/ 17, /*->94010*/
/*93993*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*93996*/       OPC_EmitMergeInputChains1_0,
/*93997*/       OPC_MorphNodeTo, TARGET_VAL(X86::PCMPEQQrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v2i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                // Src: (X86pcmpeqq:v2i64 (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, VR128:v2i64:$src1) - Complexity = 25
                // Dst: (PCMPEQQrm:v2i64 VR128:v2i64:$src1, addr:iPTR:$src2)
/*94010*/     0, /*End of Scope*/
/*94011*/   /*Scope*/ 28, /*->94040*/
/*94012*/     OPC_RecordChild0, // #0 = $src1
/*94013*/     OPC_RecordChild1, // #1 = $src2
/*94014*/     OPC_CheckType, MVT::v2i64,
/*94016*/     OPC_Scope, 11, /*->94029*/ // 2 children in Scope
/*94018*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*94020*/       OPC_MorphNodeTo, TARGET_VAL(X86::VPCMPEQQrr), 0,
                    1/*#VTs*/, MVT::v2i64, 2/*#Ops*/, 0, 1, 
                // Src: (X86pcmpeqq:v2i64 VR128:v2i64:$src1, VR128:v2i64:$src2) - Complexity = 3
                // Dst: (VPCMPEQQrr:v2i64 VR128:v2i64:$src1, VR128:v2i64:$src2)
/*94029*/     /*Scope*/ 9, /*->94039*/
/*94030*/       OPC_MorphNodeTo, TARGET_VAL(X86::PCMPEQQrr), 0,
                    1/*#VTs*/, MVT::v2i64, 2/*#Ops*/, 0, 1, 
                // Src: (X86pcmpeqq:v2i64 VR128:v2i64:$src1, VR128:v2i64:$src2) - Complexity = 3
                // Dst: (PCMPEQQrr:v2i64 VR128:v2i64:$src1, VR128:v2i64:$src2)
/*94039*/     0, /*End of Scope*/
/*94040*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 90,  TARGET_VAL(X86ISD::PCMPGTQ),// ->94134
/*94044*/   OPC_RecordChild0, // #0 = $src1
/*94045*/   OPC_Scope, 58, /*->94105*/ // 2 children in Scope
/*94047*/     OPC_MoveChild, 1,
/*94049*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*94052*/     OPC_RecordMemRef,
/*94053*/     OPC_RecordNode, // #1 = 'ld' chained node
/*94054*/     OPC_CheckFoldableChainNode,
/*94055*/     OPC_RecordChild1, // #2 = $src2
/*94056*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*94058*/     OPC_CheckPredicate, 3, // Predicate_load
/*94060*/     OPC_CheckPredicate, 23, // Predicate_memop
/*94062*/     OPC_MoveParent,
/*94063*/     OPC_CheckType, MVT::v2i64,
/*94065*/     OPC_Scope, 19, /*->94086*/ // 2 children in Scope
/*94067*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*94069*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*94072*/       OPC_EmitMergeInputChains1_1,
/*94073*/       OPC_MorphNodeTo, TARGET_VAL(X86::VPCMPGTQrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (X86pcmpgtq:v2i64 VR128:v2i64:$src1, (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                // Dst: (VPCMPGTQrm:v2i64 VR128:v2i64:$src1, addr:iPTR:$src2)
/*94086*/     /*Scope*/ 17, /*->94104*/
/*94087*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*94090*/       OPC_EmitMergeInputChains1_1,
/*94091*/       OPC_MorphNodeTo, TARGET_VAL(X86::PCMPGTQrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (X86pcmpgtq:v2i64 VR128:v2i64:$src1, (ld:v2i64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                // Dst: (PCMPGTQrm:v2i64 VR128:v2i64:$src1, addr:iPTR:$src2)
/*94104*/     0, /*End of Scope*/
/*94105*/   /*Scope*/ 27, /*->94133*/
/*94106*/     OPC_RecordChild1, // #1 = $src2
/*94107*/     OPC_CheckType, MVT::v2i64,
/*94109*/     OPC_Scope, 11, /*->94122*/ // 2 children in Scope
/*94111*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*94113*/       OPC_MorphNodeTo, TARGET_VAL(X86::VPCMPGTQrr), 0,
                    1/*#VTs*/, MVT::v2i64, 2/*#Ops*/, 0, 1, 
                // Src: (X86pcmpgtq:v2i64 VR128:v2i64:$src1, VR128:v2i64:$src2) - Complexity = 3
                // Dst: (VPCMPGTQrr:v2i64 VR128:v2i64:$src1, VR128:v2i64:$src2)
/*94122*/     /*Scope*/ 9, /*->94132*/
/*94123*/       OPC_MorphNodeTo, TARGET_VAL(X86::PCMPGTQrr), 0,
                    1/*#VTs*/, MVT::v2i64, 2/*#Ops*/, 0, 1, 
                // Src: (X86pcmpgtq:v2i64 VR128:v2i64:$src1, VR128:v2i64:$src2) - Complexity = 3
                // Dst: (PCMPGTQrr:v2i64 VR128:v2i64:$src1, VR128:v2i64:$src2)
/*94132*/     0, /*End of Scope*/
/*94133*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 23|128,1/*151*/,  TARGET_VAL(X86ISD::VBROADCAST),// ->94289
/*94138*/   OPC_MoveChild, 0,
/*94140*/   OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*94143*/   OPC_RecordMemRef,
/*94144*/   OPC_RecordNode,   // #0 = 'ld' chained node
/*94145*/   OPC_RecordChild1, // #1 = $src
/*94146*/   OPC_CheckPredicate, 2, // Predicate_unindexedload
/*94148*/   OPC_Scope, 23, /*->94173*/ // 4 children in Scope
/*94150*/     OPC_CheckPredicate, 7, // Predicate_loadi32
/*94152*/     OPC_CheckType, MVT::i32,
/*94154*/     OPC_MoveParent,
/*94155*/     OPC_CheckType, MVT::v8i32,
/*94157*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*94160*/     OPC_EmitMergeInputChains1_0,
/*94161*/     OPC_MorphNodeTo, TARGET_VAL(X86::VBROADCASTSSY), 0|OPFL_Chain|OPFL_MemRefs,
                  1/*#VTs*/, MVT::v8i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
              // Src: (X86VBroadcast:v8i32 (ld:i32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>) - Complexity = 25
              // Dst: (VBROADCASTSSY:v8i32 addr:iPTR:$src)
/*94173*/   /*Scope*/ 23, /*->94197*/
/*94174*/     OPC_CheckPredicate, 3, // Predicate_load
/*94176*/     OPC_CheckType, MVT::i64,
/*94178*/     OPC_MoveParent,
/*94179*/     OPC_CheckType, MVT::v4i64,
/*94181*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*94184*/     OPC_EmitMergeInputChains1_0,
/*94185*/     OPC_MorphNodeTo, TARGET_VAL(X86::VBROADCASTSD), 0|OPFL_Chain|OPFL_MemRefs,
                  1/*#VTs*/, MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
              // Src: (X86VBroadcast:v4i64 (ld:i64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
              // Dst: (VBROADCASTSD:v4i64 addr:iPTR:$src)
/*94197*/   /*Scope*/ 23, /*->94221*/
/*94198*/     OPC_CheckPredicate, 7, // Predicate_loadi32
/*94200*/     OPC_CheckType, MVT::i32,
/*94202*/     OPC_MoveParent,
/*94203*/     OPC_CheckType, MVT::v4i32,
/*94205*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*94208*/     OPC_EmitMergeInputChains1_0,
/*94209*/     OPC_MorphNodeTo, TARGET_VAL(X86::VBROADCASTSS), 0|OPFL_Chain|OPFL_MemRefs,
                  1/*#VTs*/, MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
              // Src: (X86VBroadcast:v4i32 (ld:i32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>) - Complexity = 25
              // Dst: (VBROADCASTSS:v4i32 addr:iPTR:$src)
/*94221*/   /*Scope*/ 66, /*->94288*/
/*94222*/     OPC_CheckPredicate, 3, // Predicate_load
/*94224*/     OPC_SwitchType /*2 cases */, 39,  MVT::f32,// ->94266
/*94227*/       OPC_MoveParent,
/*94228*/       OPC_SwitchType /*2 cases */, 16,  MVT::v8f32,// ->94247
/*94231*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*94234*/         OPC_EmitMergeInputChains1_0,
/*94235*/         OPC_MorphNodeTo, TARGET_VAL(X86::VBROADCASTSSY), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v8f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (X86VBroadcast:v8f32 (ld:f32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (VBROADCASTSSY:v8f32 addr:iPTR:$src)
                /*SwitchType*/ 16,  MVT::v4f32,// ->94265
/*94249*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*94252*/         OPC_EmitMergeInputChains1_0,
/*94253*/         OPC_MorphNodeTo, TARGET_VAL(X86::VBROADCASTSS), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (X86VBroadcast:v4f32 (ld:f32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (VBROADCASTSS:v4f32 addr:iPTR:$src)
                0, // EndSwitchType
              /*SwitchType*/ 19,  MVT::f64,// ->94287
/*94268*/       OPC_MoveParent,
/*94269*/       OPC_CheckType, MVT::v4f64,
/*94271*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*94274*/       OPC_EmitMergeInputChains1_0,
/*94275*/       OPC_MorphNodeTo, TARGET_VAL(X86::VBROADCASTSD), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v4f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (X86VBroadcast:v4f64 (ld:f64 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                // Dst: (VBROADCASTSD:v4f64 addr:iPTR:$src)
              0, // EndSwitchType
/*94288*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 90,  TARGET_VAL(ISD::ATOMIC_STORE),// ->94382
/*94292*/   OPC_RecordMemRef,
/*94293*/   OPC_RecordNode,   // #0 = 'atomic_store' chained node
/*94294*/   OPC_RecordChild1, // #1 = $dst
/*94295*/   OPC_RecordChild2, // #2 = $src
/*94296*/   OPC_Scope, 20, /*->94318*/ // 4 children in Scope
/*94298*/     OPC_CheckChild2Type, MVT::i8,
/*94300*/     OPC_CheckPredicate, 104, // Predicate_atomic_store_8
/*94302*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$dst #3 #4 #5 #6 #7
/*94305*/     OPC_EmitMergeInputChains1_0,
/*94306*/     OPC_MorphNodeTo, TARGET_VAL(X86::RELEASE_MOV8mr), 0|OPFL_Chain|OPFL_MemRefs,
                  0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
              // Src: (atomic_store addr:iPTR:$dst, GR8:i8:$src)<<P:Predicate_atomic_store_8>> - Complexity = 22
              // Dst: (RELEASE_MOV8mr addr:iPTR:$dst, GR8:i8:$src)
/*94318*/   /*Scope*/ 20, /*->94339*/
/*94319*/     OPC_CheckChild2Type, MVT::i16,
/*94321*/     OPC_CheckPredicate, 105, // Predicate_atomic_store_16
/*94323*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$dst #3 #4 #5 #6 #7
/*94326*/     OPC_EmitMergeInputChains1_0,
/*94327*/     OPC_MorphNodeTo, TARGET_VAL(X86::RELEASE_MOV16mr), 0|OPFL_Chain|OPFL_MemRefs,
                  0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
              // Src: (atomic_store addr:iPTR:$dst, GR16:i16:$src)<<P:Predicate_atomic_store_16>> - Complexity = 22
              // Dst: (RELEASE_MOV16mr addr:iPTR:$dst, GR16:i16:$src)
/*94339*/   /*Scope*/ 20, /*->94360*/
/*94340*/     OPC_CheckChild2Type, MVT::i32,
/*94342*/     OPC_CheckPredicate, 106, // Predicate_atomic_store_32
/*94344*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$dst #3 #4 #5 #6 #7
/*94347*/     OPC_EmitMergeInputChains1_0,
/*94348*/     OPC_MorphNodeTo, TARGET_VAL(X86::RELEASE_MOV32mr), 0|OPFL_Chain|OPFL_MemRefs,
                  0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
              // Src: (atomic_store addr:iPTR:$dst, GR32:i32:$src)<<P:Predicate_atomic_store_32>> - Complexity = 22
              // Dst: (RELEASE_MOV32mr addr:iPTR:$dst, GR32:i32:$src)
/*94360*/   /*Scope*/ 20, /*->94381*/
/*94361*/     OPC_CheckChild2Type, MVT::i64,
/*94363*/     OPC_CheckPredicate, 107, // Predicate_atomic_store_64
/*94365*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$dst #3 #4 #5 #6 #7
/*94368*/     OPC_EmitMergeInputChains1_0,
/*94369*/     OPC_MorphNodeTo, TARGET_VAL(X86::RELEASE_MOV64mr), 0|OPFL_Chain|OPFL_MemRefs,
                  0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
              // Src: (atomic_store addr:iPTR:$dst, GR64:i64:$src)<<P:Predicate_atomic_store_64>> - Complexity = 22
              // Dst: (RELEASE_MOV64mr addr:iPTR:$dst, GR64:i64:$src)
/*94381*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 3|128,1/*131*/,  TARGET_VAL(X86ISD::FP_TO_INT16_IN_MEM),// ->94517
/*94386*/   OPC_RecordMemRef,
/*94387*/   OPC_RecordNode,   // #0 = 'X86fp_to_i16mem' chained node
/*94388*/   OPC_RecordChild1, // #1 = $src
/*94389*/   OPC_Scope, 41, /*->94432*/ // 3 children in Scope
/*94391*/     OPC_CheckChild1Type, MVT::f32,
/*94393*/     OPC_RecordChild2, // #2 = $op
/*94394*/     OPC_Scope, 18, /*->94414*/ // 2 children in Scope
/*94396*/       OPC_CheckPatternPredicate, 16, // (Subtarget->hasSSE3())
/*94398*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$op #3 #4 #5 #6 #7
/*94401*/       OPC_EmitMergeInputChains1_0,
/*94402*/       OPC_MorphNodeTo, TARGET_VAL(X86::ISTT_Fp16m32), 0|OPFL_Chain|OPFL_MemRefs,
                    0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                // Src: (X86fp_to_i16mem RFP32:f32:$src, addr:iPTR:$op) - Complexity = 21
                // Dst: (ISTT_Fp16m32 addr:iPTR:$op, RFP32:f32:$src)
/*94414*/     /*Scope*/ 16, /*->94431*/
/*94415*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*94418*/       OPC_EmitMergeInputChains1_0,
/*94419*/       OPC_MorphNodeTo, TARGET_VAL(X86::FP32_TO_INT16_IN_MEM), 0|OPFL_Chain|OPFL_MemRefs,
                    0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                // Src: (X86fp_to_i16mem RFP32:f32:$src, addr:iPTR:$dst) - Complexity = 21
                // Dst: (FP32_TO_INT16_IN_MEM addr:iPTR:$dst, RFP32:f32:$src)
/*94431*/     0, /*End of Scope*/
/*94432*/   /*Scope*/ 41, /*->94474*/
/*94433*/     OPC_CheckChild1Type, MVT::f64,
/*94435*/     OPC_RecordChild2, // #2 = $op
/*94436*/     OPC_Scope, 18, /*->94456*/ // 2 children in Scope
/*94438*/       OPC_CheckPatternPredicate, 16, // (Subtarget->hasSSE3())
/*94440*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$op #3 #4 #5 #6 #7
/*94443*/       OPC_EmitMergeInputChains1_0,
/*94444*/       OPC_MorphNodeTo, TARGET_VAL(X86::ISTT_Fp16m64), 0|OPFL_Chain|OPFL_MemRefs,
                    0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                // Src: (X86fp_to_i16mem RFP64:f64:$src, addr:iPTR:$op) - Complexity = 21
                // Dst: (ISTT_Fp16m64 addr:iPTR:$op, RFP64:f64:$src)
/*94456*/     /*Scope*/ 16, /*->94473*/
/*94457*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*94460*/       OPC_EmitMergeInputChains1_0,
/*94461*/       OPC_MorphNodeTo, TARGET_VAL(X86::FP64_TO_INT16_IN_MEM), 0|OPFL_Chain|OPFL_MemRefs,
                    0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                // Src: (X86fp_to_i16mem RFP64:f64:$src, addr:iPTR:$dst) - Complexity = 21
                // Dst: (FP64_TO_INT16_IN_MEM addr:iPTR:$dst, RFP64:f64:$src)
/*94473*/     0, /*End of Scope*/
/*94474*/   /*Scope*/ 41, /*->94516*/
/*94475*/     OPC_CheckChild1Type, MVT::f80,
/*94477*/     OPC_RecordChild2, // #2 = $op
/*94478*/     OPC_Scope, 18, /*->94498*/ // 2 children in Scope
/*94480*/       OPC_CheckPatternPredicate, 16, // (Subtarget->hasSSE3())
/*94482*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$op #3 #4 #5 #6 #7
/*94485*/       OPC_EmitMergeInputChains1_0,
/*94486*/       OPC_MorphNodeTo, TARGET_VAL(X86::ISTT_Fp16m80), 0|OPFL_Chain|OPFL_MemRefs,
                    0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                // Src: (X86fp_to_i16mem RFP80:f80:$src, addr:iPTR:$op) - Complexity = 21
                // Dst: (ISTT_Fp16m80 addr:iPTR:$op, RFP80:f80:$src)
/*94498*/     /*Scope*/ 16, /*->94515*/
/*94499*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*94502*/       OPC_EmitMergeInputChains1_0,
/*94503*/       OPC_MorphNodeTo, TARGET_VAL(X86::FP80_TO_INT16_IN_MEM), 0|OPFL_Chain|OPFL_MemRefs,
                    0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                // Src: (X86fp_to_i16mem RFP80:f80:$src, addr:iPTR:$dst) - Complexity = 21
                // Dst: (FP80_TO_INT16_IN_MEM addr:iPTR:$dst, RFP80:f80:$src)
/*94515*/     0, /*End of Scope*/
/*94516*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 3|128,1/*131*/,  TARGET_VAL(X86ISD::FP_TO_INT32_IN_MEM),// ->94652
/*94521*/   OPC_RecordMemRef,
/*94522*/   OPC_RecordNode,   // #0 = 'X86fp_to_i32mem' chained node
/*94523*/   OPC_RecordChild1, // #1 = $src
/*94524*/   OPC_Scope, 41, /*->94567*/ // 3 children in Scope
/*94526*/     OPC_CheckChild1Type, MVT::f32,
/*94528*/     OPC_RecordChild2, // #2 = $op
/*94529*/     OPC_Scope, 18, /*->94549*/ // 2 children in Scope
/*94531*/       OPC_CheckPatternPredicate, 16, // (Subtarget->hasSSE3())
/*94533*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$op #3 #4 #5 #6 #7
/*94536*/       OPC_EmitMergeInputChains1_0,
/*94537*/       OPC_MorphNodeTo, TARGET_VAL(X86::ISTT_Fp32m32), 0|OPFL_Chain|OPFL_MemRefs,
                    0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                // Src: (X86fp_to_i32mem RFP32:f32:$src, addr:iPTR:$op) - Complexity = 21
                // Dst: (ISTT_Fp32m32 addr:iPTR:$op, RFP32:f32:$src)
/*94549*/     /*Scope*/ 16, /*->94566*/
/*94550*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*94553*/       OPC_EmitMergeInputChains1_0,
/*94554*/       OPC_MorphNodeTo, TARGET_VAL(X86::FP32_TO_INT32_IN_MEM), 0|OPFL_Chain|OPFL_MemRefs,
                    0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                // Src: (X86fp_to_i32mem RFP32:f32:$src, addr:iPTR:$dst) - Complexity = 21
                // Dst: (FP32_TO_INT32_IN_MEM addr:iPTR:$dst, RFP32:f32:$src)
/*94566*/     0, /*End of Scope*/
/*94567*/   /*Scope*/ 41, /*->94609*/
/*94568*/     OPC_CheckChild1Type, MVT::f64,
/*94570*/     OPC_RecordChild2, // #2 = $op
/*94571*/     OPC_Scope, 18, /*->94591*/ // 2 children in Scope
/*94573*/       OPC_CheckPatternPredicate, 16, // (Subtarget->hasSSE3())
/*94575*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$op #3 #4 #5 #6 #7
/*94578*/       OPC_EmitMergeInputChains1_0,
/*94579*/       OPC_MorphNodeTo, TARGET_VAL(X86::ISTT_Fp32m64), 0|OPFL_Chain|OPFL_MemRefs,
                    0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                // Src: (X86fp_to_i32mem RFP64:f64:$src, addr:iPTR:$op) - Complexity = 21
                // Dst: (ISTT_Fp32m64 addr:iPTR:$op, RFP64:f64:$src)
/*94591*/     /*Scope*/ 16, /*->94608*/
/*94592*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*94595*/       OPC_EmitMergeInputChains1_0,
/*94596*/       OPC_MorphNodeTo, TARGET_VAL(X86::FP64_TO_INT32_IN_MEM), 0|OPFL_Chain|OPFL_MemRefs,
                    0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                // Src: (X86fp_to_i32mem RFP64:f64:$src, addr:iPTR:$dst) - Complexity = 21
                // Dst: (FP64_TO_INT32_IN_MEM addr:iPTR:$dst, RFP64:f64:$src)
/*94608*/     0, /*End of Scope*/
/*94609*/   /*Scope*/ 41, /*->94651*/
/*94610*/     OPC_CheckChild1Type, MVT::f80,
/*94612*/     OPC_RecordChild2, // #2 = $op
/*94613*/     OPC_Scope, 18, /*->94633*/ // 2 children in Scope
/*94615*/       OPC_CheckPatternPredicate, 16, // (Subtarget->hasSSE3())
/*94617*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$op #3 #4 #5 #6 #7
/*94620*/       OPC_EmitMergeInputChains1_0,
/*94621*/       OPC_MorphNodeTo, TARGET_VAL(X86::ISTT_Fp32m80), 0|OPFL_Chain|OPFL_MemRefs,
                    0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                // Src: (X86fp_to_i32mem RFP80:f80:$src, addr:iPTR:$op) - Complexity = 21
                // Dst: (ISTT_Fp32m80 addr:iPTR:$op, RFP80:f80:$src)
/*94633*/     /*Scope*/ 16, /*->94650*/
/*94634*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*94637*/       OPC_EmitMergeInputChains1_0,
/*94638*/       OPC_MorphNodeTo, TARGET_VAL(X86::FP80_TO_INT32_IN_MEM), 0|OPFL_Chain|OPFL_MemRefs,
                    0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                // Src: (X86fp_to_i32mem RFP80:f80:$src, addr:iPTR:$dst) - Complexity = 21
                // Dst: (FP80_TO_INT32_IN_MEM addr:iPTR:$dst, RFP80:f80:$src)
/*94650*/     0, /*End of Scope*/
/*94651*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 3|128,1/*131*/,  TARGET_VAL(X86ISD::FP_TO_INT64_IN_MEM),// ->94787
/*94656*/   OPC_RecordMemRef,
/*94657*/   OPC_RecordNode,   // #0 = 'X86fp_to_i64mem' chained node
/*94658*/   OPC_RecordChild1, // #1 = $src
/*94659*/   OPC_Scope, 41, /*->94702*/ // 3 children in Scope
/*94661*/     OPC_CheckChild1Type, MVT::f32,
/*94663*/     OPC_RecordChild2, // #2 = $op
/*94664*/     OPC_Scope, 18, /*->94684*/ // 2 children in Scope
/*94666*/       OPC_CheckPatternPredicate, 16, // (Subtarget->hasSSE3())
/*94668*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$op #3 #4 #5 #6 #7
/*94671*/       OPC_EmitMergeInputChains1_0,
/*94672*/       OPC_MorphNodeTo, TARGET_VAL(X86::ISTT_Fp64m32), 0|OPFL_Chain|OPFL_MemRefs,
                    0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                // Src: (X86fp_to_i64mem RFP32:f32:$src, addr:iPTR:$op) - Complexity = 21
                // Dst: (ISTT_Fp64m32 addr:iPTR:$op, RFP32:f32:$src)
/*94684*/     /*Scope*/ 16, /*->94701*/
/*94685*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*94688*/       OPC_EmitMergeInputChains1_0,
/*94689*/       OPC_MorphNodeTo, TARGET_VAL(X86::FP32_TO_INT64_IN_MEM), 0|OPFL_Chain|OPFL_MemRefs,
                    0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                // Src: (X86fp_to_i64mem RFP32:f32:$src, addr:iPTR:$dst) - Complexity = 21
                // Dst: (FP32_TO_INT64_IN_MEM addr:iPTR:$dst, RFP32:f32:$src)
/*94701*/     0, /*End of Scope*/
/*94702*/   /*Scope*/ 41, /*->94744*/
/*94703*/     OPC_CheckChild1Type, MVT::f64,
/*94705*/     OPC_RecordChild2, // #2 = $op
/*94706*/     OPC_Scope, 18, /*->94726*/ // 2 children in Scope
/*94708*/       OPC_CheckPatternPredicate, 16, // (Subtarget->hasSSE3())
/*94710*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$op #3 #4 #5 #6 #7
/*94713*/       OPC_EmitMergeInputChains1_0,
/*94714*/       OPC_MorphNodeTo, TARGET_VAL(X86::ISTT_Fp64m64), 0|OPFL_Chain|OPFL_MemRefs,
                    0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                // Src: (X86fp_to_i64mem RFP64:f64:$src, addr:iPTR:$op) - Complexity = 21
                // Dst: (ISTT_Fp64m64 addr:iPTR:$op, RFP64:f64:$src)
/*94726*/     /*Scope*/ 16, /*->94743*/
/*94727*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*94730*/       OPC_EmitMergeInputChains1_0,
/*94731*/       OPC_MorphNodeTo, TARGET_VAL(X86::FP64_TO_INT64_IN_MEM), 0|OPFL_Chain|OPFL_MemRefs,
                    0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                // Src: (X86fp_to_i64mem RFP64:f64:$src, addr:iPTR:$dst) - Complexity = 21
                // Dst: (FP64_TO_INT64_IN_MEM addr:iPTR:$dst, RFP64:f64:$src)
/*94743*/     0, /*End of Scope*/
/*94744*/   /*Scope*/ 41, /*->94786*/
/*94745*/     OPC_CheckChild1Type, MVT::f80,
/*94747*/     OPC_RecordChild2, // #2 = $op
/*94748*/     OPC_Scope, 18, /*->94768*/ // 2 children in Scope
/*94750*/       OPC_CheckPatternPredicate, 16, // (Subtarget->hasSSE3())
/*94752*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$op #3 #4 #5 #6 #7
/*94755*/       OPC_EmitMergeInputChains1_0,
/*94756*/       OPC_MorphNodeTo, TARGET_VAL(X86::ISTT_Fp64m80), 0|OPFL_Chain|OPFL_MemRefs,
                    0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                // Src: (X86fp_to_i64mem RFP80:f80:$src, addr:iPTR:$op) - Complexity = 21
                // Dst: (ISTT_Fp64m80 addr:iPTR:$op, RFP80:f80:$src)
/*94768*/     /*Scope*/ 16, /*->94785*/
/*94769*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*94772*/       OPC_EmitMergeInputChains1_0,
/*94773*/       OPC_MorphNodeTo, TARGET_VAL(X86::FP80_TO_INT64_IN_MEM), 0|OPFL_Chain|OPFL_MemRefs,
                    0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                // Src: (X86fp_to_i64mem RFP80:f80:$src, addr:iPTR:$dst) - Complexity = 21
                // Dst: (FP80_TO_INT64_IN_MEM addr:iPTR:$dst, RFP80:f80:$src)
/*94785*/     0, /*End of Scope*/
/*94786*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 19|128,1/*147*/,  TARGET_VAL(X86ISD::FST),// ->94938
/*94791*/   OPC_RecordMemRef,
/*94792*/   OPC_RecordNode,   // #0 = 'X86fst' chained node
/*94793*/   OPC_CaptureGlueInput,
/*94794*/   OPC_RecordChild1, // #1 = $src
/*94795*/   OPC_Scope, 24, /*->94821*/ // 3 children in Scope
/*94797*/     OPC_CheckChild1Type, MVT::f32,
/*94799*/     OPC_RecordChild2, // #2 = $op
/*94800*/     OPC_MoveChild, 3,
/*94802*/     OPC_CheckValueType, MVT::f32,
/*94804*/     OPC_MoveParent,
/*94805*/     OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$op #3 #4 #5 #6 #7
/*94808*/     OPC_EmitMergeInputChains1_0,
/*94809*/     OPC_MorphNodeTo, TARGET_VAL(X86::ST_Fp32m), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                  0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
              // Src: (X86fst RFP32:f32:$src, addr:iPTR:$op, f32:Other) - Complexity = 21
              // Dst: (ST_Fp32m addr:iPTR:$op, RFP32:f32:$src)
/*94821*/   /*Scope*/ 47, /*->94869*/
/*94822*/     OPC_CheckChild1Type, MVT::f64,
/*94824*/     OPC_RecordChild2, // #2 = $op
/*94825*/     OPC_MoveChild, 3,
/*94827*/     OPC_Scope, 19, /*->94848*/ // 2 children in Scope
/*94829*/       OPC_CheckValueType, MVT::f32,
/*94831*/       OPC_MoveParent,
/*94832*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$op #3 #4 #5 #6 #7
/*94835*/       OPC_EmitMergeInputChains1_0,
/*94836*/       OPC_MorphNodeTo, TARGET_VAL(X86::ST_Fp64m32), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                    0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                // Src: (X86fst RFP64:f64:$src, addr:iPTR:$op, f32:Other) - Complexity = 21
                // Dst: (ST_Fp64m32 addr:iPTR:$op, RFP64:f64:$src)
/*94848*/     /*Scope*/ 19, /*->94868*/
/*94849*/       OPC_CheckValueType, MVT::f64,
/*94851*/       OPC_MoveParent,
/*94852*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$op #3 #4 #5 #6 #7
/*94855*/       OPC_EmitMergeInputChains1_0,
/*94856*/       OPC_MorphNodeTo, TARGET_VAL(X86::ST_Fp64m), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                    0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                // Src: (X86fst RFP64:f64:$src, addr:iPTR:$op, f64:Other) - Complexity = 21
                // Dst: (ST_Fp64m addr:iPTR:$op, RFP64:f64:$src)
/*94868*/     0, /*End of Scope*/
/*94869*/   /*Scope*/ 67, /*->94937*/
/*94870*/     OPC_CheckChild1Type, MVT::f80,
/*94872*/     OPC_RecordChild2, // #2 = $op
/*94873*/     OPC_MoveChild, 3,
/*94875*/     OPC_Scope, 19, /*->94896*/ // 3 children in Scope
/*94877*/       OPC_CheckValueType, MVT::f32,
/*94879*/       OPC_MoveParent,
/*94880*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$op #3 #4 #5 #6 #7
/*94883*/       OPC_EmitMergeInputChains1_0,
/*94884*/       OPC_MorphNodeTo, TARGET_VAL(X86::ST_Fp80m32), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                    0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                // Src: (X86fst RFP80:f80:$src, addr:iPTR:$op, f32:Other) - Complexity = 21
                // Dst: (ST_Fp80m32 addr:iPTR:$op, RFP80:f80:$src)
/*94896*/     /*Scope*/ 19, /*->94916*/
/*94897*/       OPC_CheckValueType, MVT::f64,
/*94899*/       OPC_MoveParent,
/*94900*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$op #3 #4 #5 #6 #7
/*94903*/       OPC_EmitMergeInputChains1_0,
/*94904*/       OPC_MorphNodeTo, TARGET_VAL(X86::ST_Fp80m64), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                    0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                // Src: (X86fst RFP80:f80:$src, addr:iPTR:$op, f64:Other) - Complexity = 21
                // Dst: (ST_Fp80m64 addr:iPTR:$op, RFP80:f80:$src)
/*94916*/     /*Scope*/ 19, /*->94936*/
/*94917*/       OPC_CheckValueType, MVT::f80,
/*94919*/       OPC_MoveParent,
/*94920*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$op #3 #4 #5 #6 #7
/*94923*/       OPC_EmitMergeInputChains1_0,
/*94924*/       OPC_MorphNodeTo, TARGET_VAL(X86::ST_FpP80m), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                    0/*#VTs*/, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                // Src: (X86fst RFP80:f80:$src, addr:iPTR:$op, f80:Other) - Complexity = 21
                // Dst: (ST_FpP80m addr:iPTR:$op, RFP80:f80:$src)
/*94936*/     0, /*End of Scope*/
/*94937*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 18,  TARGET_VAL(X86ISD::FNSTCW16m),// ->94959
/*94941*/   OPC_RecordMemRef,
/*94942*/   OPC_RecordNode,   // #0 = 'X86fp_cwd_get16' chained node
/*94943*/   OPC_RecordChild1, // #1 = $dst
/*94944*/   OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$dst #2 #3 #4 #5 #6
/*94947*/   OPC_EmitMergeInputChains1_0,
/*94948*/   OPC_MorphNodeTo, TARGET_VAL(X86::FNSTCW16m), 0|OPFL_Chain|OPFL_MemRefs,
                0/*#VTs*/, 5/*#Ops*/, 2, 3, 4, 5, 6, 
            // Src: (X86fp_cwd_get16 addr:iPTR:$dst) - Complexity = 21
            // Dst: (FNSTCW16m addr:iPTR:$dst)
          /*SwitchOpcode*/ 47,  TARGET_VAL(X86ISD::TLSADDR),// ->95009
/*94962*/   OPC_RecordNode,   // #0 = 'X86tlsaddr' chained node
/*94963*/   OPC_CaptureGlueInput,
/*94964*/   OPC_RecordChild1, // #1 = $sym
/*94965*/   OPC_Scope, 20, /*->94987*/ // 2 children in Scope
/*94967*/     OPC_CheckChild1Type, MVT::i32,
/*94969*/     OPC_CheckPatternPredicate, 3, // (!Subtarget->is64Bit())
/*94971*/     OPC_CheckComplexPat, /*CP*/5, /*#*/1, // SelectTLSADDRAddr:$sym #2 #3 #4 #5 #6
/*94974*/     OPC_EmitMergeInputChains1_0,
/*94975*/     OPC_MorphNodeTo, TARGET_VAL(X86::TLS_addr32), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
                  1/*#VTs*/, MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
              // Src: (X86tlsaddr tls32addr:i32:$sym) - Complexity = 21
              // Dst: (TLS_addr32:i32 tls32addr:i32:$sym)
/*94987*/   /*Scope*/ 20, /*->95008*/
/*94988*/     OPC_CheckChild1Type, MVT::i64,
/*94990*/     OPC_CheckPatternPredicate, 4, // (Subtarget->is64Bit())
/*94992*/     OPC_CheckComplexPat, /*CP*/6, /*#*/1, // SelectTLSADDRAddr:$sym #2 #3 #4 #5 #6
/*94995*/     OPC_EmitMergeInputChains1_0,
/*94996*/     OPC_MorphNodeTo, TARGET_VAL(X86::TLS_addr64), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
                  1/*#VTs*/, MVT::i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
              // Src: (X86tlsaddr tls64addr:i64:$sym) - Complexity = 21
              // Dst: (TLS_addr64:i64 tls64addr:i64:$sym)
/*95008*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 20,  TARGET_VAL(X86ISD::LCMPXCHG8_DAG),// ->95032
/*95012*/   OPC_RecordMemRef,
/*95013*/   OPC_RecordNode,   // #0 = 'X86cas8' chained node
/*95014*/   OPC_CaptureGlueInput,
/*95015*/   OPC_RecordChild1, // #1 = $ptr
/*95016*/   OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$ptr #2 #3 #4 #5 #6
/*95019*/   OPC_EmitMergeInputChains1_0,
/*95020*/   OPC_MorphNodeTo, TARGET_VAL(X86::LCMPXCHG8B), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_MemRefs,
                1/*#VTs*/, MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
            // Src: (X86cas8 addr:iPTR:$ptr) - Complexity = 21
            // Dst: (LCMPXCHG8B:i32 addr:iPTR:$ptr)
          /*SwitchOpcode*/ 22,  TARGET_VAL(X86ISD::LCMPXCHG16_DAG),// ->95057
/*95035*/   OPC_RecordMemRef,
/*95036*/   OPC_RecordNode,   // #0 = 'X86cas16' chained node
/*95037*/   OPC_CaptureGlueInput,
/*95038*/   OPC_RecordChild1, // #1 = $ptr
/*95039*/   OPC_CheckPatternPredicate, 41, // (Subtarget->hasCmpxchg16b())
/*95041*/   OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$ptr #2 #3 #4 #5 #6
/*95044*/   OPC_EmitMergeInputChains1_0,
/*95045*/   OPC_MorphNodeTo, TARGET_VAL(X86::LCMPXCHG16B), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_MemRefs,
                1/*#VTs*/, MVT::i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
            // Src: (X86cas16 addr:iPTR:$ptr) - Complexity = 21
            // Dst: (LCMPXCHG16B:i64 addr:iPTR:$ptr)
          /*SwitchOpcode*/ 45,  TARGET_VAL(X86ISD::TLSCALL),// ->95105
/*95060*/   OPC_RecordNode,   // #0 = 'X86TLSCall' chained node
/*95061*/   OPC_CaptureGlueInput,
/*95062*/   OPC_RecordChild1, // #1 = $sym
/*95063*/   OPC_CheckChild1Type, MVT::iPTR,
/*95065*/   OPC_Scope, 18, /*->95085*/ // 2 children in Scope
/*95067*/     OPC_CheckPatternPredicate, 3, // (!Subtarget->is64Bit())
/*95069*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$sym #2 #3 #4 #5 #6
/*95072*/     OPC_EmitMergeInputChains1_0,
/*95073*/     OPC_MorphNodeTo, TARGET_VAL(X86::TLSCall_32), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
                  1/*#VTs*/, MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
              // Src: (X86TLSCall addr:iPTR:$sym) - Complexity = 21
              // Dst: (TLSCall_32:i32 addr:iPTR:$sym)
/*95085*/   /*Scope*/ 18, /*->95104*/
/*95086*/     OPC_CheckPatternPredicate, 4, // (Subtarget->is64Bit())
/*95088*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$sym #2 #3 #4 #5 #6
/*95091*/     OPC_EmitMergeInputChains1_0,
/*95092*/     OPC_MorphNodeTo, TARGET_VAL(X86::TLSCall_64), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
                  1/*#VTs*/, MVT::i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
              // Src: (X86TLSCall addr:iPTR:$sym) - Complexity = 21
              // Dst: (TLSCall_64:i64 addr:iPTR:$sym)
/*95104*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 34|128,2/*290*/,  TARGET_VAL(ISD::INSERT_SUBVECTOR),// ->95399
/*95109*/   OPC_Scope, 104, /*->95215*/ // 4 children in Scope
/*95111*/     OPC_MoveChild, 0,
/*95113*/     OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
/*95116*/     OPC_MoveParent,
/*95117*/     OPC_RecordChild1, // #0 = $src
/*95118*/     OPC_MoveChild, 2,
/*95120*/     OPC_CheckInteger, 0, 
/*95122*/     OPC_CheckType, MVT::i32,
/*95124*/     OPC_MoveParent,
/*95125*/     OPC_SwitchType /*4 cases */, 20,  MVT::v4i64,// ->95148
/*95128*/       OPC_EmitNode, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    1/*#VTs*/, MVT::v4i64, 0/*#Ops*/,  // Results = #1 
/*95135*/       OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*95138*/       OPC_MorphNodeTo, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    1/*#VTs*/, MVT::v4i64, 3/*#Ops*/, 1, 0, 2, 
                // Src: (insert_subvector:v4i64 (undef:v4i64), VR128:v2i64:$src, 0:i32) - Complexity = 11
                // Dst: (INSERT_SUBREG:v4i64 (IMPLICIT_DEF:v4i64), VR128:v2i64:$src, sub_xmm:i32)
              /*SwitchType*/ 20,  MVT::v8i32,// ->95170
/*95150*/       OPC_EmitNode, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    1/*#VTs*/, MVT::v8i32, 0/*#Ops*/,  // Results = #1 
/*95157*/       OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*95160*/       OPC_MorphNodeTo, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    1/*#VTs*/, MVT::v8i32, 3/*#Ops*/, 1, 0, 2, 
                // Src: (insert_subvector:v8i32 (undef:v8i32), VR128:v4i32:$src, 0:i32) - Complexity = 11
                // Dst: (INSERT_SUBREG:v8i32 (IMPLICIT_DEF:v8i32), VR128:v4i32:$src, sub_xmm:i32)
              /*SwitchType*/ 20,  MVT::v16i16,// ->95192
/*95172*/       OPC_EmitNode, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    1/*#VTs*/, MVT::v16i16, 0/*#Ops*/,  // Results = #1 
/*95179*/       OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*95182*/       OPC_MorphNodeTo, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    1/*#VTs*/, MVT::v16i16, 3/*#Ops*/, 1, 0, 2, 
                // Src: (insert_subvector:v16i16 (undef:v16i16), VR128:v8i16:$src, 0:i32) - Complexity = 11
                // Dst: (INSERT_SUBREG:v16i16 (IMPLICIT_DEF:v16i16), VR128:v8i16:$src, sub_xmm:i32)
              /*SwitchType*/ 20,  MVT::v32i8,// ->95214
/*95194*/       OPC_EmitNode, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    1/*#VTs*/, MVT::v32i8, 0/*#Ops*/,  // Results = #1 
/*95201*/       OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*95204*/       OPC_MorphNodeTo, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    1/*#VTs*/, MVT::v32i8, 3/*#Ops*/, 1, 0, 2, 
                // Src: (insert_subvector:v32i8 (undef:v32i8), VR128:v16i8:$src, 0:i32) - Complexity = 11
                // Dst: (INSERT_SUBREG:v32i8 (IMPLICIT_DEF:v32i8), VR128:v16i8:$src, sub_xmm:i32)
              0, // EndSwitchType
/*95215*/   /*Scope*/ 75, /*->95291*/
/*95216*/     OPC_RecordNode, // #0 = $ins
/*95217*/     OPC_RecordChild0, // #1 = $src1
/*95218*/     OPC_RecordChild1, // #2 = $src2
/*95219*/     OPC_MoveChild, 2,
/*95221*/     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*95224*/     OPC_CheckType, MVT::i32,
/*95226*/     OPC_MoveParent,
/*95227*/     OPC_CheckPredicate, 108, // Predicate_vinsertf128_insert
/*95229*/     OPC_SwitchType /*4 cases */, 13,  MVT::v8i32,// ->95245
/*95232*/       OPC_EmitNodeXForm, 6, 0, // INSERT_get_vinsertf128_imm
/*95235*/       OPC_MorphNodeTo, TARGET_VAL(X86::VINSERTF128rr), 0,
                    1/*#VTs*/, MVT::v8i32, 3/*#Ops*/, 1, 2, 3, 
                // Src: (insert_subvector:v8i32 VR256:v8i32:$src1, VR128:v4i32:$src2, (imm:i32))<<P:Predicate_vinsertf128_insert>><<X:INSERT_get_vinsertf128_imm>>:$ins - Complexity = 7
                // Dst: (VINSERTF128rr:v8i32 VR256:v8i32:$src1, VR128:v4i32:$src2, (INSERT_get_vinsertf128_imm:i8 VR256:v8i32:$ins))
              /*SwitchType*/ 13,  MVT::v4i64,// ->95260
/*95247*/       OPC_EmitNodeXForm, 6, 0, // INSERT_get_vinsertf128_imm
/*95250*/       OPC_MorphNodeTo, TARGET_VAL(X86::VINSERTF128rr), 0,
                    1/*#VTs*/, MVT::v4i64, 3/*#Ops*/, 1, 2, 3, 
                // Src: (insert_subvector:v4i64 VR256:v4i64:$src1, VR128:v2i64:$src2, (imm:i32))<<P:Predicate_vinsertf128_insert>><<X:INSERT_get_vinsertf128_imm>>:$ins - Complexity = 7
                // Dst: (VINSERTF128rr:v4i64 VR256:v4i64:$src1, VR128:v2i64:$src2, (INSERT_get_vinsertf128_imm:i8 VR256:v4i64:$ins))
              /*SwitchType*/ 13,  MVT::v32i8,// ->95275
/*95262*/       OPC_EmitNodeXForm, 6, 0, // INSERT_get_vinsertf128_imm
/*95265*/       OPC_MorphNodeTo, TARGET_VAL(X86::VINSERTF128rr), 0,
                    1/*#VTs*/, MVT::v32i8, 3/*#Ops*/, 1, 2, 3, 
                // Src: (insert_subvector:v32i8 VR256:v32i8:$src1, VR128:v16i8:$src2, (imm:i32))<<P:Predicate_vinsertf128_insert>><<X:INSERT_get_vinsertf128_imm>>:$ins - Complexity = 7
                // Dst: (VINSERTF128rr:v32i8 VR256:v32i8:$src1, VR128:v16i8:$src2, (INSERT_get_vinsertf128_imm:i8 VR256:v32i8:$ins))
              /*SwitchType*/ 13,  MVT::v16i16,// ->95290
/*95277*/       OPC_EmitNodeXForm, 6, 0, // INSERT_get_vinsertf128_imm
/*95280*/       OPC_MorphNodeTo, TARGET_VAL(X86::VINSERTF128rr), 0,
                    1/*#VTs*/, MVT::v16i16, 3/*#Ops*/, 1, 2, 3, 
                // Src: (insert_subvector:v16i16 VR256:v16i16:$src1, VR128:v8i16:$src2, (imm:i32))<<P:Predicate_vinsertf128_insert>><<X:INSERT_get_vinsertf128_imm>>:$ins - Complexity = 7
                // Dst: (VINSERTF128rr:v16i16 VR256:v16i16:$src1, VR128:v8i16:$src2, (INSERT_get_vinsertf128_imm:i8 VR256:v16i16:$ins))
              0, // EndSwitchType
/*95291*/   /*Scope*/ 60, /*->95352*/
/*95292*/     OPC_MoveChild, 0,
/*95294*/     OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
/*95297*/     OPC_MoveParent,
/*95298*/     OPC_RecordChild1, // #0 = $src
/*95299*/     OPC_MoveChild, 2,
/*95301*/     OPC_CheckInteger, 0, 
/*95303*/     OPC_CheckType, MVT::i32,
/*95305*/     OPC_MoveParent,
/*95306*/     OPC_SwitchType /*2 cases */, 20,  MVT::v4f64,// ->95329
/*95309*/       OPC_EmitNode, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    1/*#VTs*/, MVT::v4f64, 0/*#Ops*/,  // Results = #1 
/*95316*/       OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*95319*/       OPC_MorphNodeTo, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    1/*#VTs*/, MVT::v4f64, 3/*#Ops*/, 1, 0, 2, 
                // Src: (insert_subvector:v4f64 (undef:v4f64), VR128:v2f64:$src, 0:i32) - Complexity = 11
                // Dst: (INSERT_SUBREG:v4f64 (IMPLICIT_DEF:v4f64), VR128:v2f64:$src, sub_xmm:i32)
              /*SwitchType*/ 20,  MVT::v8f32,// ->95351
/*95331*/       OPC_EmitNode, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    1/*#VTs*/, MVT::v8f32, 0/*#Ops*/,  // Results = #1 
/*95338*/       OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*95341*/       OPC_MorphNodeTo, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    1/*#VTs*/, MVT::v8f32, 3/*#Ops*/, 1, 0, 2, 
                // Src: (insert_subvector:v8f32 (undef:v8f32), VR128:v4f32:$src, 0:i32) - Complexity = 11
                // Dst: (INSERT_SUBREG:v8f32 (IMPLICIT_DEF:v8f32), VR128:v4f32:$src, sub_xmm:i32)
              0, // EndSwitchType
/*95352*/   /*Scope*/ 45, /*->95398*/
/*95353*/     OPC_RecordNode, // #0 = $ins
/*95354*/     OPC_RecordChild0, // #1 = $src1
/*95355*/     OPC_RecordChild1, // #2 = $src2
/*95356*/     OPC_MoveChild, 2,
/*95358*/     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*95361*/     OPC_CheckType, MVT::i32,
/*95363*/     OPC_MoveParent,
/*95364*/     OPC_CheckPredicate, 108, // Predicate_vinsertf128_insert
/*95366*/     OPC_SwitchType /*2 cases */, 13,  MVT::v8f32,// ->95382
/*95369*/       OPC_EmitNodeXForm, 6, 0, // INSERT_get_vinsertf128_imm
/*95372*/       OPC_MorphNodeTo, TARGET_VAL(X86::VINSERTF128rr), 0,
                    1/*#VTs*/, MVT::v8f32, 3/*#Ops*/, 1, 2, 3, 
                // Src: (insert_subvector:v8f32 VR256:v8f32:$src1, VR128:v4f32:$src2, (imm:i32))<<P:Predicate_vinsertf128_insert>><<X:INSERT_get_vinsertf128_imm>>:$ins - Complexity = 7
                // Dst: (VINSERTF128rr:v8f32 VR256:v8f32:$src1, VR128:v4f32:$src2, (INSERT_get_vinsertf128_imm:i8 VR256:v8f32:$ins))
              /*SwitchType*/ 13,  MVT::v4f64,// ->95397
/*95384*/       OPC_EmitNodeXForm, 6, 0, // INSERT_get_vinsertf128_imm
/*95387*/       OPC_MorphNodeTo, TARGET_VAL(X86::VINSERTF128rr), 0,
                    1/*#VTs*/, MVT::v4f64, 3/*#Ops*/, 1, 2, 3, 
                // Src: (insert_subvector:v4f64 VR256:v4f64:$src1, VR128:v2f64:$src2, (imm:i32))<<P:Predicate_vinsertf128_insert>><<X:INSERT_get_vinsertf128_imm>>:$ins - Complexity = 7
                // Dst: (VINSERTF128rr:v4f64 VR256:v4f64:$src1, VR128:v2f64:$src2, (INSERT_get_vinsertf128_imm:i8 VR256:v4f64:$ins))
              0, // EndSwitchType
/*95398*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 44,  TARGET_VAL(ISD::CALLSEQ_END),// ->95446
/*95402*/   OPC_RecordNode,   // #0 = 'X86callseq_end' chained node
/*95403*/   OPC_CaptureGlueInput,
/*95404*/   OPC_RecordChild1, // #1 = $amt1
/*95405*/   OPC_MoveChild, 1,
/*95407*/   OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*95410*/   OPC_MoveParent,
/*95411*/   OPC_RecordChild2, // #2 = $amt2
/*95412*/   OPC_MoveChild, 2,
/*95414*/   OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*95417*/   OPC_MoveParent,
/*95418*/   OPC_Scope, 12, /*->95432*/ // 2 children in Scope
/*95420*/     OPC_CheckPatternPredicate, 3, // (!Subtarget->is64Bit())
/*95422*/     OPC_EmitMergeInputChains1_0,
/*95423*/     OPC_MorphNodeTo, TARGET_VAL(X86::ADJCALLSTACKUP32), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
                  1/*#VTs*/, MVT::i32, 2/*#Ops*/, 1, 2, 
              // Src: (X86callseq_end (timm:i32):$amt1, (timm:i32):$amt2) - Complexity = 9
              // Dst: (ADJCALLSTACKUP32:i32 (timm:i32):$amt1, (timm:i32):$amt2)
/*95432*/   /*Scope*/ 12, /*->95445*/
/*95433*/     OPC_CheckPatternPredicate, 4, // (Subtarget->is64Bit())
/*95435*/     OPC_EmitMergeInputChains1_0,
/*95436*/     OPC_MorphNodeTo, TARGET_VAL(X86::ADJCALLSTACKUP64), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
                  1/*#VTs*/, MVT::i64, 2/*#Ops*/, 1, 2, 
              // Src: (X86callseq_end (timm:i32):$amt1, (timm:i32):$amt2) - Complexity = 9
              // Dst: (ADJCALLSTACKUP64:i64 (timm:i32):$amt1, (timm:i32):$amt2)
/*95445*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 30,  TARGET_VAL(X86ISD::VASTART_SAVE_XMM_REGS),// ->95479
/*95449*/   OPC_RecordNode,   // #0 = 'X86vastart_save_xmm_regs' chained node
/*95450*/   OPC_RecordChild1, // #1 = $al
/*95451*/   OPC_RecordChild2, // #2 = $regsavefi
/*95452*/   OPC_MoveChild, 2,
/*95454*/   OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*95457*/   OPC_MoveParent,
/*95458*/   OPC_RecordChild3, // #3 = $offset
/*95459*/   OPC_MoveChild, 3,
/*95461*/   OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*95464*/   OPC_MoveParent,
/*95465*/   OPC_EmitMergeInputChains1_0,
/*95466*/   OPC_EmitConvertToTarget, 2,
/*95468*/   OPC_EmitConvertToTarget, 3,
/*95470*/   OPC_MorphNodeTo, TARGET_VAL(X86::VASTART_SAVE_XMM_REGS), 0|OPFL_Chain|OPFL_Variadic3,
                0/*#VTs*/, 3/*#Ops*/, 1, 4, 5, 
            // Src: (X86vastart_save_xmm_regs GR8:i8:$al, (imm:iPTR):$regsavefi, (imm:iPTR):$offset) - Complexity = 9
            // Dst: (VASTART_SAVE_XMM_REGS GR8:i8:$al, (imm:i64):$regsavefi, (imm:i64):$offset)
          /*SwitchOpcode*/ 94|128,1/*222*/,  TARGET_VAL(ISD::EXTRACT_SUBVECTOR),// ->95705
/*95483*/   OPC_Scope, 66, /*->95551*/ // 4 children in Scope
/*95485*/     OPC_RecordChild0, // #0 = $src
/*95486*/     OPC_MoveChild, 1,
/*95488*/     OPC_CheckInteger, 0, 
/*95490*/     OPC_CheckType, MVT::i32,
/*95492*/     OPC_MoveParent,
/*95493*/     OPC_SwitchType /*4 cases */, 12,  MVT::v4i32,// ->95508
/*95496*/       OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*95499*/       OPC_MorphNodeTo, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                    1/*#VTs*/, MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (extract_subvector:v4i32 VR256:v8i32:$src, 0:i32) - Complexity = 8
                // Dst: (EXTRACT_SUBREG:v4i32 VR256:v8i32:$src, sub_xmm:i32)
              /*SwitchType*/ 12,  MVT::v2i64,// ->95522
/*95510*/       OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*95513*/       OPC_MorphNodeTo, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                    1/*#VTs*/, MVT::v2i64, 2/*#Ops*/, 0, 1, 
                // Src: (extract_subvector:v2i64 VR256:v4i64:$src, 0:i32) - Complexity = 8
                // Dst: (EXTRACT_SUBREG:v2i64 VR256:v4i64:$src, sub_xmm:i32)
              /*SwitchType*/ 12,  MVT::v8i16,// ->95536
/*95524*/       OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*95527*/       OPC_MorphNodeTo, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                    1/*#VTs*/, MVT::v8i16, 2/*#Ops*/, 0, 1, 
                // Src: (extract_subvector:v8i16 VR256:v16i16:$src, 0:i32) - Complexity = 8
                // Dst: (EXTRACT_SUBREG:v8i16 VR256:v16i16:$src, sub_xmm:i32)
              /*SwitchType*/ 12,  MVT::v16i8,// ->95550
/*95538*/       OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*95541*/       OPC_MorphNodeTo, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                    1/*#VTs*/, MVT::v16i8, 2/*#Ops*/, 0, 1, 
                // Src: (extract_subvector:v16i8 VR256:v32i8:$src, 0:i32) - Complexity = 8
                // Dst: (EXTRACT_SUBREG:v16i8 VR256:v32i8:$src, sub_xmm:i32)
              0, // EndSwitchType
/*95551*/   /*Scope*/ 70, /*->95622*/
/*95552*/     OPC_RecordNode, // #0 = $ext
/*95553*/     OPC_RecordChild0, // #1 = $src1
/*95554*/     OPC_MoveChild, 1,
/*95556*/     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*95559*/     OPC_CheckType, MVT::i32,
/*95561*/     OPC_MoveParent,
/*95562*/     OPC_CheckPredicate, 109, // Predicate_vextractf128_extract
/*95564*/     OPC_SwitchType /*4 cases */, 12,  MVT::v4i32,// ->95579
/*95567*/       OPC_EmitNodeXForm, 7, 0, // EXTRACT_get_vextractf128_imm
/*95570*/       OPC_MorphNodeTo, TARGET_VAL(X86::VEXTRACTF128rr), 0,
                    1/*#VTs*/, MVT::v4i32, 2/*#Ops*/, 1, 2, 
                // Src: (extract_subvector:v4i32 VR256:v8i32:$src1, (imm:i32))<<P:Predicate_vextractf128_extract>><<X:EXTRACT_get_vextractf128_imm>>:$ext - Complexity = 7
                // Dst: (VEXTRACTF128rr:v4i32 VR256:v8i32:$src1, (EXTRACT_get_vextractf128_imm:i8 VR128:v4i32:$ext))
              /*SwitchType*/ 12,  MVT::v2i64,// ->95593
/*95581*/       OPC_EmitNodeXForm, 7, 0, // EXTRACT_get_vextractf128_imm
/*95584*/       OPC_MorphNodeTo, TARGET_VAL(X86::VEXTRACTF128rr), 0,
                    1/*#VTs*/, MVT::v2i64, 2/*#Ops*/, 1, 2, 
                // Src: (extract_subvector:v2i64 VR256:v4i64:$src1, (imm:i32))<<P:Predicate_vextractf128_extract>><<X:EXTRACT_get_vextractf128_imm>>:$ext - Complexity = 7
                // Dst: (VEXTRACTF128rr:v2i64 VR256:v4i64:$src1, (EXTRACT_get_vextractf128_imm:i8 VR128:v2i64:$ext))
              /*SwitchType*/ 12,  MVT::v8i16,// ->95607
/*95595*/       OPC_EmitNodeXForm, 7, 0, // EXTRACT_get_vextractf128_imm
/*95598*/       OPC_MorphNodeTo, TARGET_VAL(X86::VEXTRACTF128rr), 0,
                    1/*#VTs*/, MVT::v8i16, 2/*#Ops*/, 1, 2, 
                // Src: (extract_subvector:v8i16 VR256:v16i16:$src1, (imm:i32))<<P:Predicate_vextractf128_extract>><<X:EXTRACT_get_vextractf128_imm>>:$ext - Complexity = 7
                // Dst: (VEXTRACTF128rr:v8i16 VR256:v16i16:$src1, (EXTRACT_get_vextractf128_imm:i8 VR128:v8i16:$ext))
              /*SwitchType*/ 12,  MVT::v16i8,// ->95621
/*95609*/       OPC_EmitNodeXForm, 7, 0, // EXTRACT_get_vextractf128_imm
/*95612*/       OPC_MorphNodeTo, TARGET_VAL(X86::VEXTRACTF128rr), 0,
                    1/*#VTs*/, MVT::v16i8, 2/*#Ops*/, 1, 2, 
                // Src: (extract_subvector:v16i8 VR256:v32i8:$src1, (imm:i32))<<P:Predicate_vextractf128_extract>><<X:EXTRACT_get_vextractf128_imm>>:$ext - Complexity = 7
                // Dst: (VEXTRACTF128rr:v16i8 VR256:v32i8:$src1, (EXTRACT_get_vextractf128_imm:i8 VR128:v16i8:$ext))
              0, // EndSwitchType
/*95622*/   /*Scope*/ 38, /*->95661*/
/*95623*/     OPC_RecordChild0, // #0 = $src
/*95624*/     OPC_MoveChild, 1,
/*95626*/     OPC_CheckInteger, 0, 
/*95628*/     OPC_CheckType, MVT::i32,
/*95630*/     OPC_MoveParent,
/*95631*/     OPC_SwitchType /*2 cases */, 12,  MVT::v4f32,// ->95646
/*95634*/       OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*95637*/       OPC_MorphNodeTo, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                    1/*#VTs*/, MVT::v4f32, 2/*#Ops*/, 0, 1, 
                // Src: (extract_subvector:v4f32 VR256:v8f32:$src, 0:i32) - Complexity = 8
                // Dst: (EXTRACT_SUBREG:v4f32 VR256:v8f32:$src, sub_xmm:i32)
              /*SwitchType*/ 12,  MVT::v2f64,// ->95660
/*95648*/       OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*95651*/       OPC_MorphNodeTo, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                    1/*#VTs*/, MVT::v2f64, 2/*#Ops*/, 0, 1, 
                // Src: (extract_subvector:v2f64 VR256:v4f64:$src, 0:i32) - Complexity = 8
                // Dst: (EXTRACT_SUBREG:v2f64 VR256:v4f64:$src, sub_xmm:i32)
              0, // EndSwitchType
/*95661*/   /*Scope*/ 42, /*->95704*/
/*95662*/     OPC_RecordNode, // #0 = $ext
/*95663*/     OPC_RecordChild0, // #1 = $src1
/*95664*/     OPC_MoveChild, 1,
/*95666*/     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*95669*/     OPC_CheckType, MVT::i32,
/*95671*/     OPC_MoveParent,
/*95672*/     OPC_CheckPredicate, 109, // Predicate_vextractf128_extract
/*95674*/     OPC_SwitchType /*2 cases */, 12,  MVT::v4f32,// ->95689
/*95677*/       OPC_EmitNodeXForm, 7, 0, // EXTRACT_get_vextractf128_imm
/*95680*/       OPC_MorphNodeTo, TARGET_VAL(X86::VEXTRACTF128rr), 0,
                    1/*#VTs*/, MVT::v4f32, 2/*#Ops*/, 1, 2, 
                // Src: (extract_subvector:v4f32 VR256:v8f32:$src1, (imm:i32))<<P:Predicate_vextractf128_extract>><<X:EXTRACT_get_vextractf128_imm>>:$ext - Complexity = 7
                // Dst: (VEXTRACTF128rr:v4f32 VR256:v8f32:$src1, (EXTRACT_get_vextractf128_imm:i8 VR128:v4f32:$ext))
              /*SwitchType*/ 12,  MVT::v2f64,// ->95703
/*95691*/       OPC_EmitNodeXForm, 7, 0, // EXTRACT_get_vextractf128_imm
/*95694*/       OPC_MorphNodeTo, TARGET_VAL(X86::VEXTRACTF128rr), 0,
                    1/*#VTs*/, MVT::v2f64, 2/*#Ops*/, 1, 2, 
                // Src: (extract_subvector:v2f64 VR256:v4f64:$src1, (imm:i32))<<P:Predicate_vextractf128_extract>><<X:EXTRACT_get_vextractf128_imm>>:$ext - Complexity = 7
                // Dst: (VEXTRACTF128rr:v2f64 VR256:v4f64:$src1, (EXTRACT_get_vextractf128_imm:i8 VR128:v2f64:$ext))
              0, // EndSwitchType
/*95704*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 33,  TARGET_VAL(X86ISD::RET_FLAG),// ->95741
/*95708*/   OPC_RecordNode,   // #0 = 'X86retflag' chained node
/*95709*/   OPC_CaptureGlueInput,
/*95710*/   OPC_Scope, 12, /*->95724*/ // 2 children in Scope
/*95712*/     OPC_MoveChild, 1,
/*95714*/     OPC_CheckInteger, 0, 
/*95716*/     OPC_MoveParent,
/*95717*/     OPC_EmitMergeInputChains1_0,
/*95718*/     OPC_MorphNodeTo, TARGET_VAL(X86::RET), 0|OPFL_Chain|OPFL_GlueInput|OPFL_Variadic1,
                  0/*#VTs*/, 0/*#Ops*/, 
              // Src: (X86retflag 0:i16) - Complexity = 8
              // Dst: (RET)
/*95724*/   /*Scope*/ 15, /*->95740*/
/*95725*/     OPC_RecordChild1, // #1 = $amt
/*95726*/     OPC_MoveChild, 1,
/*95728*/     OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*95731*/     OPC_MoveParent,
/*95732*/     OPC_EmitMergeInputChains1_0,
/*95733*/     OPC_MorphNodeTo, TARGET_VAL(X86::RETI), 0|OPFL_Chain|OPFL_GlueInput|OPFL_Variadic1,
                  0/*#VTs*/, 1/*#Ops*/, 1, 
              // Src: (X86retflag (timm:i16):$amt) - Complexity = 6
              // Dst: (RETI (timm:i16):$amt)
/*95740*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 12|128,2/*268*/,  TARGET_VAL(X86ISD::BRCOND),// ->96013
/*95745*/   OPC_RecordNode,   // #0 = 'X86brcond' chained node
/*95746*/   OPC_RecordChild1, // #1 = $dst
/*95747*/   OPC_MoveChild, 1,
/*95749*/   OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
/*95752*/   OPC_MoveParent,
/*95753*/   OPC_MoveChild, 2,
/*95755*/   OPC_Scope, 15, /*->95772*/ // 16 children in Scope
/*95757*/     OPC_CheckInteger, 13, 
/*95759*/     OPC_MoveParent,
/*95760*/     OPC_RecordChild3, // #2 = physreg input EFLAGS
/*95761*/     OPC_EmitMergeInputChains1_0,
/*95762*/     OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*95765*/     OPC_MorphNodeTo, TARGET_VAL(X86::JO_4), 0|OPFL_Chain|OPFL_GlueInput,
                  0/*#VTs*/, 1/*#Ops*/, 1, 
              // Src: (X86brcond (bb:Other):$dst, 13:i8, EFLAGS:i32) - Complexity = 8
              // Dst: (JO_4 (bb:Other):$dst)
/*95772*/   /*Scope*/ 15, /*->95788*/
/*95773*/     OPC_CheckInteger, 10, 
/*95775*/     OPC_MoveParent,
/*95776*/     OPC_RecordChild3, // #2 = physreg input EFLAGS
/*95777*/     OPC_EmitMergeInputChains1_0,
/*95778*/     OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*95781*/     OPC_MorphNodeTo, TARGET_VAL(X86::JNO_4), 0|OPFL_Chain|OPFL_GlueInput,
                  0/*#VTs*/, 1/*#Ops*/, 1, 
              // Src: (X86brcond (bb:Other):$dst, 10:i8, EFLAGS:i32) - Complexity = 8
              // Dst: (JNO_4 (bb:Other):$dst)
/*95788*/   /*Scope*/ 15, /*->95804*/
/*95789*/     OPC_CheckInteger, 2, 
/*95791*/     OPC_MoveParent,
/*95792*/     OPC_RecordChild3, // #2 = physreg input EFLAGS
/*95793*/     OPC_EmitMergeInputChains1_0,
/*95794*/     OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*95797*/     OPC_MorphNodeTo, TARGET_VAL(X86::JB_4), 0|OPFL_Chain|OPFL_GlueInput,
                  0/*#VTs*/, 1/*#Ops*/, 1, 
              // Src: (X86brcond (bb:Other):$dst, 2:i8, EFLAGS:i32) - Complexity = 8
              // Dst: (JB_4 (bb:Other):$dst)
/*95804*/   /*Scope*/ 15, /*->95820*/
/*95805*/     OPC_CheckInteger, 1, 
/*95807*/     OPC_MoveParent,
/*95808*/     OPC_RecordChild3, // #2 = physreg input EFLAGS
/*95809*/     OPC_EmitMergeInputChains1_0,
/*95810*/     OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*95813*/     OPC_MorphNodeTo, TARGET_VAL(X86::JAE_4), 0|OPFL_Chain|OPFL_GlueInput,
                  0/*#VTs*/, 1/*#Ops*/, 1, 
              // Src: (X86brcond (bb:Other):$dst, 1:i8, EFLAGS:i32) - Complexity = 8
              // Dst: (JAE_4 (bb:Other):$dst)
/*95820*/   /*Scope*/ 15, /*->95836*/
/*95821*/     OPC_CheckInteger, 4, 
/*95823*/     OPC_MoveParent,
/*95824*/     OPC_RecordChild3, // #2 = physreg input EFLAGS
/*95825*/     OPC_EmitMergeInputChains1_0,
/*95826*/     OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*95829*/     OPC_MorphNodeTo, TARGET_VAL(X86::JE_4), 0|OPFL_Chain|OPFL_GlueInput,
                  0/*#VTs*/, 1/*#Ops*/, 1, 
              // Src: (X86brcond (bb:Other):$dst, 4:i8, EFLAGS:i32) - Complexity = 8
              // Dst: (JE_4 (bb:Other):$dst)
/*95836*/   /*Scope*/ 15, /*->95852*/
/*95837*/     OPC_CheckInteger, 9, 
/*95839*/     OPC_MoveParent,
/*95840*/     OPC_RecordChild3, // #2 = physreg input EFLAGS
/*95841*/     OPC_EmitMergeInputChains1_0,
/*95842*/     OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*95845*/     OPC_MorphNodeTo, TARGET_VAL(X86::JNE_4), 0|OPFL_Chain|OPFL_GlueInput,
                  0/*#VTs*/, 1/*#Ops*/, 1, 
              // Src: (X86brcond (bb:Other):$dst, 9:i8, EFLAGS:i32) - Complexity = 8
              // Dst: (JNE_4 (bb:Other):$dst)
/*95852*/   /*Scope*/ 15, /*->95868*/
/*95853*/     OPC_CheckInteger, 3, 
/*95855*/     OPC_MoveParent,
/*95856*/     OPC_RecordChild3, // #2 = physreg input EFLAGS
/*95857*/     OPC_EmitMergeInputChains1_0,
/*95858*/     OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*95861*/     OPC_MorphNodeTo, TARGET_VAL(X86::JBE_4), 0|OPFL_Chain|OPFL_GlueInput,
                  0/*#VTs*/, 1/*#Ops*/, 1, 
              // Src: (X86brcond (bb:Other):$dst, 3:i8, EFLAGS:i32) - Complexity = 8
              // Dst: (JBE_4 (bb:Other):$dst)
/*95868*/   /*Scope*/ 15, /*->95884*/
/*95869*/     OPC_CheckInteger, 0, 
/*95871*/     OPC_MoveParent,
/*95872*/     OPC_RecordChild3, // #2 = physreg input EFLAGS
/*95873*/     OPC_EmitMergeInputChains1_0,
/*95874*/     OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*95877*/     OPC_MorphNodeTo, TARGET_VAL(X86::JA_4), 0|OPFL_Chain|OPFL_GlueInput,
                  0/*#VTs*/, 1/*#Ops*/, 1, 
              // Src: (X86brcond (bb:Other):$dst, 0:i8, EFLAGS:i32) - Complexity = 8
              // Dst: (JA_4 (bb:Other):$dst)
/*95884*/   /*Scope*/ 15, /*->95900*/
/*95885*/     OPC_CheckInteger, 15, 
/*95887*/     OPC_MoveParent,
/*95888*/     OPC_RecordChild3, // #2 = physreg input EFLAGS
/*95889*/     OPC_EmitMergeInputChains1_0,
/*95890*/     OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*95893*/     OPC_MorphNodeTo, TARGET_VAL(X86::JS_4), 0|OPFL_Chain|OPFL_GlueInput,
                  0/*#VTs*/, 1/*#Ops*/, 1, 
              // Src: (X86brcond (bb:Other):$dst, 15:i8, EFLAGS:i32) - Complexity = 8
              // Dst: (JS_4 (bb:Other):$dst)
/*95900*/   /*Scope*/ 15, /*->95916*/
/*95901*/     OPC_CheckInteger, 12, 
/*95903*/     OPC_MoveParent,
/*95904*/     OPC_RecordChild3, // #2 = physreg input EFLAGS
/*95905*/     OPC_EmitMergeInputChains1_0,
/*95906*/     OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*95909*/     OPC_MorphNodeTo, TARGET_VAL(X86::JNS_4), 0|OPFL_Chain|OPFL_GlueInput,
                  0/*#VTs*/, 1/*#Ops*/, 1, 
              // Src: (X86brcond (bb:Other):$dst, 12:i8, EFLAGS:i32) - Complexity = 8
              // Dst: (JNS_4 (bb:Other):$dst)
/*95916*/   /*Scope*/ 15, /*->95932*/
/*95917*/     OPC_CheckInteger, 14, 
/*95919*/     OPC_MoveParent,
/*95920*/     OPC_RecordChild3, // #2 = physreg input EFLAGS
/*95921*/     OPC_EmitMergeInputChains1_0,
/*95922*/     OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*95925*/     OPC_MorphNodeTo, TARGET_VAL(X86::JP_4), 0|OPFL_Chain|OPFL_GlueInput,
                  0/*#VTs*/, 1/*#Ops*/, 1, 
              // Src: (X86brcond (bb:Other):$dst, 14:i8, EFLAGS:i32) - Complexity = 8
              // Dst: (JP_4 (bb:Other):$dst)
/*95932*/   /*Scope*/ 15, /*->95948*/
/*95933*/     OPC_CheckInteger, 11, 
/*95935*/     OPC_MoveParent,
/*95936*/     OPC_RecordChild3, // #2 = physreg input EFLAGS
/*95937*/     OPC_EmitMergeInputChains1_0,
/*95938*/     OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*95941*/     OPC_MorphNodeTo, TARGET_VAL(X86::JNP_4), 0|OPFL_Chain|OPFL_GlueInput,
                  0/*#VTs*/, 1/*#Ops*/, 1, 
              // Src: (X86brcond (bb:Other):$dst, 11:i8, EFLAGS:i32) - Complexity = 8
              // Dst: (JNP_4 (bb:Other):$dst)
/*95948*/   /*Scope*/ 15, /*->95964*/
/*95949*/     OPC_CheckInteger, 7, 
/*95951*/     OPC_MoveParent,
/*95952*/     OPC_RecordChild3, // #2 = physreg input EFLAGS
/*95953*/     OPC_EmitMergeInputChains1_0,
/*95954*/     OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*95957*/     OPC_MorphNodeTo, TARGET_VAL(X86::JL_4), 0|OPFL_Chain|OPFL_GlueInput,
                  0/*#VTs*/, 1/*#Ops*/, 1, 
              // Src: (X86brcond (bb:Other):$dst, 7:i8, EFLAGS:i32) - Complexity = 8
              // Dst: (JL_4 (bb:Other):$dst)
/*95964*/   /*Scope*/ 15, /*->95980*/
/*95965*/     OPC_CheckInteger, 6, 
/*95967*/     OPC_MoveParent,
/*95968*/     OPC_RecordChild3, // #2 = physreg input EFLAGS
/*95969*/     OPC_EmitMergeInputChains1_0,
/*95970*/     OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*95973*/     OPC_MorphNodeTo, TARGET_VAL(X86::JGE_4), 0|OPFL_Chain|OPFL_GlueInput,
                  0/*#VTs*/, 1/*#Ops*/, 1, 
              // Src: (X86brcond (bb:Other):$dst, 6:i8, EFLAGS:i32) - Complexity = 8
              // Dst: (JGE_4 (bb:Other):$dst)
/*95980*/   /*Scope*/ 15, /*->95996*/
/*95981*/     OPC_CheckInteger, 8, 
/*95983*/     OPC_MoveParent,
/*95984*/     OPC_RecordChild3, // #2 = physreg input EFLAGS
/*95985*/     OPC_EmitMergeInputChains1_0,
/*95986*/     OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*95989*/     OPC_MorphNodeTo, TARGET_VAL(X86::JLE_4), 0|OPFL_Chain|OPFL_GlueInput,
                  0/*#VTs*/, 1/*#Ops*/, 1, 
              // Src: (X86brcond (bb:Other):$dst, 8:i8, EFLAGS:i32) - Complexity = 8
              // Dst: (JLE_4 (bb:Other):$dst)
/*95996*/   /*Scope*/ 15, /*->96012*/
/*95997*/     OPC_CheckInteger, 5, 
/*95999*/     OPC_MoveParent,
/*96000*/     OPC_RecordChild3, // #2 = physreg input EFLAGS
/*96001*/     OPC_EmitMergeInputChains1_0,
/*96002*/     OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*96005*/     OPC_MorphNodeTo, TARGET_VAL(X86::JG_4), 0|OPFL_Chain|OPFL_GlueInput,
                  0/*#VTs*/, 1/*#Ops*/, 1, 
              // Src: (X86brcond (bb:Other):$dst, 5:i8, EFLAGS:i32) - Complexity = 8
              // Dst: (JG_4 (bb:Other):$dst)
/*96012*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 48,  TARGET_VAL(X86ISD::VSHL),// ->96064
/*96016*/   OPC_RecordChild0, // #0 = $src
/*96017*/   OPC_RecordChild1, // #1 = $amt
/*96018*/   OPC_MoveChild, 1,
/*96020*/   OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*96023*/   OPC_CheckType, MVT::i8,
/*96025*/   OPC_MoveParent,
/*96026*/   OPC_CheckType, MVT::v2i64,
/*96028*/   OPC_Scope, 16, /*->96046*/ // 2 children in Scope
/*96030*/     OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*96032*/     OPC_EmitConvertToTarget, 1,
/*96034*/     OPC_EmitNodeXForm, 0, 2, // BYTE_imm
/*96037*/     OPC_MorphNodeTo, TARGET_VAL(X86::VPSLLDQri), 0,
                  1/*#VTs*/, MVT::v2i64, 2/*#Ops*/, 0, 3, 
              // Src: (X86vshl:v2i64 VR128:v2i64:$src, (imm:i8):$amt) - Complexity = 6
              // Dst: (VPSLLDQri:v2i64 VR128:v2i64:$src, (BYTE_imm:i32 (imm:i8):$amt))
/*96046*/   /*Scope*/ 16, /*->96063*/
/*96047*/     OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*96049*/     OPC_EmitConvertToTarget, 1,
/*96051*/     OPC_EmitNodeXForm, 0, 2, // BYTE_imm
/*96054*/     OPC_MorphNodeTo, TARGET_VAL(X86::PSLLDQri), 0,
                  1/*#VTs*/, MVT::v2i64, 2/*#Ops*/, 0, 3, 
              // Src: (X86vshl:v2i64 VR128:v2i64:$src, (imm:i8):$amt) - Complexity = 6
              // Dst: (PSLLDQri:v2i64 VR128:v2i64:$src, (BYTE_imm:i32 (imm:i8):$amt))
/*96063*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 48,  TARGET_VAL(X86ISD::VSRL),// ->96115
/*96067*/   OPC_RecordChild0, // #0 = $src
/*96068*/   OPC_RecordChild1, // #1 = $amt
/*96069*/   OPC_MoveChild, 1,
/*96071*/   OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*96074*/   OPC_CheckType, MVT::i8,
/*96076*/   OPC_MoveParent,
/*96077*/   OPC_CheckType, MVT::v2i64,
/*96079*/   OPC_Scope, 16, /*->96097*/ // 2 children in Scope
/*96081*/     OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*96083*/     OPC_EmitConvertToTarget, 1,
/*96085*/     OPC_EmitNodeXForm, 0, 2, // BYTE_imm
/*96088*/     OPC_MorphNodeTo, TARGET_VAL(X86::VPSRLDQri), 0,
                  1/*#VTs*/, MVT::v2i64, 2/*#Ops*/, 0, 3, 
              // Src: (X86vshr:v2i64 VR128:v2i64:$src, (imm:i8):$amt) - Complexity = 6
              // Dst: (VPSRLDQri:v2i64 VR128:v2i64:$src, (BYTE_imm:i32 (imm:i8):$amt))
/*96097*/   /*Scope*/ 16, /*->96114*/
/*96098*/     OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*96100*/     OPC_EmitConvertToTarget, 1,
/*96102*/     OPC_EmitNodeXForm, 0, 2, // BYTE_imm
/*96105*/     OPC_MorphNodeTo, TARGET_VAL(X86::PSRLDQri), 0,
                  1/*#VTs*/, MVT::v2i64, 2/*#Ops*/, 0, 3, 
              // Src: (X86vshr:v2i64 VR128:v2i64:$src, (imm:i8):$amt) - Complexity = 6
              // Dst: (PSRLDQri:v2i64 VR128:v2i64:$src, (BYTE_imm:i32 (imm:i8):$amt))
/*96114*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 21|128,1/*149*/,  TARGET_VAL(X86ISD::PALIGN),// ->96268
/*96119*/   OPC_RecordChild0, // #0 = $src1
/*96120*/   OPC_RecordChild1, // #1 = $src2
/*96121*/   OPC_RecordChild2, // #2 = $imm
/*96122*/   OPC_MoveChild, 2,
/*96124*/   OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*96127*/   OPC_CheckType, MVT::i8,
/*96129*/   OPC_MoveParent,
/*96130*/   OPC_SwitchType /*4 cases */, 32,  MVT::v4i32,// ->96165
/*96133*/     OPC_Scope, 14, /*->96149*/ // 2 children in Scope
/*96135*/       OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*96137*/       OPC_EmitConvertToTarget, 2,
/*96139*/       OPC_MorphNodeTo, TARGET_VAL(X86::PALIGNR128rr), 0,
                    1/*#VTs*/, MVT::v4i32, 3/*#Ops*/, 1, 0, 3, 
                // Src: (X86PAlign:v4i32 VR128:v4i32:$src1, VR128:v4i32:$src2, (imm:i8):$imm) - Complexity = 6
                // Dst: (PALIGNR128rr:v4i32 VR128:v4i32:$src2, VR128:v4i32:$src1, (imm:i8):$imm)
/*96149*/     /*Scope*/ 14, /*->96164*/
/*96150*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*96152*/       OPC_EmitConvertToTarget, 2,
/*96154*/       OPC_MorphNodeTo, TARGET_VAL(X86::VPALIGNR128rr), 0,
                    1/*#VTs*/, MVT::v4i32, 3/*#Ops*/, 1, 0, 3, 
                // Src: (X86PAlign:v4i32 VR128:v4i32:$src1, VR128:v4i32:$src2, (imm:i8):$imm) - Complexity = 6
                // Dst: (VPALIGNR128rr:v4i32 VR128:v4i32:$src2, VR128:v4i32:$src1, (imm:i8):$imm)
/*96164*/     0, /*End of Scope*/
            /*SwitchType*/ 32,  MVT::v8i16,// ->96199
/*96167*/     OPC_Scope, 14, /*->96183*/ // 2 children in Scope
/*96169*/       OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*96171*/       OPC_EmitConvertToTarget, 2,
/*96173*/       OPC_MorphNodeTo, TARGET_VAL(X86::PALIGNR128rr), 0,
                    1/*#VTs*/, MVT::v8i16, 3/*#Ops*/, 1, 0, 3, 
                // Src: (X86PAlign:v8i16 VR128:v8i16:$src1, VR128:v8i16:$src2, (imm:i8):$imm) - Complexity = 6
                // Dst: (PALIGNR128rr:v8i16 VR128:v8i16:$src2, VR128:v8i16:$src1, (imm:i8):$imm)
/*96183*/     /*Scope*/ 14, /*->96198*/
/*96184*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*96186*/       OPC_EmitConvertToTarget, 2,
/*96188*/       OPC_MorphNodeTo, TARGET_VAL(X86::VPALIGNR128rr), 0,
                    1/*#VTs*/, MVT::v8i16, 3/*#Ops*/, 1, 0, 3, 
                // Src: (X86PAlign:v8i16 VR128:v8i16:$src1, VR128:v8i16:$src2, (imm:i8):$imm) - Complexity = 6
                // Dst: (VPALIGNR128rr:v8i16 VR128:v8i16:$src2, VR128:v8i16:$src1, (imm:i8):$imm)
/*96198*/     0, /*End of Scope*/
            /*SwitchType*/ 32,  MVT::v16i8,// ->96233
/*96201*/     OPC_Scope, 14, /*->96217*/ // 2 children in Scope
/*96203*/       OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*96205*/       OPC_EmitConvertToTarget, 2,
/*96207*/       OPC_MorphNodeTo, TARGET_VAL(X86::PALIGNR128rr), 0,
                    1/*#VTs*/, MVT::v16i8, 3/*#Ops*/, 1, 0, 3, 
                // Src: (X86PAlign:v16i8 VR128:v16i8:$src1, VR128:v16i8:$src2, (imm:i8):$imm) - Complexity = 6
                // Dst: (PALIGNR128rr:v16i8 VR128:v16i8:$src2, VR128:v16i8:$src1, (imm:i8):$imm)
/*96217*/     /*Scope*/ 14, /*->96232*/
/*96218*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*96220*/       OPC_EmitConvertToTarget, 2,
/*96222*/       OPC_MorphNodeTo, TARGET_VAL(X86::VPALIGNR128rr), 0,
                    1/*#VTs*/, MVT::v16i8, 3/*#Ops*/, 1, 0, 3, 
                // Src: (X86PAlign:v16i8 VR128:v16i8:$src1, VR128:v16i8:$src2, (imm:i8):$imm) - Complexity = 6
                // Dst: (VPALIGNR128rr:v16i8 VR128:v16i8:$src2, VR128:v16i8:$src1, (imm:i8):$imm)
/*96232*/     0, /*End of Scope*/
            /*SwitchType*/ 32,  MVT::v4f32,// ->96267
/*96235*/     OPC_Scope, 14, /*->96251*/ // 2 children in Scope
/*96237*/       OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*96239*/       OPC_EmitConvertToTarget, 2,
/*96241*/       OPC_MorphNodeTo, TARGET_VAL(X86::PALIGNR128rr), 0,
                    1/*#VTs*/, MVT::v4f32, 3/*#Ops*/, 1, 0, 3, 
                // Src: (X86PAlign:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src2, (imm:i8):$imm) - Complexity = 6
                // Dst: (PALIGNR128rr:v4f32 VR128:v4f32:$src2, VR128:v4f32:$src1, (imm:i8):$imm)
/*96251*/     /*Scope*/ 14, /*->96266*/
/*96252*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*96254*/       OPC_EmitConvertToTarget, 2,
/*96256*/       OPC_MorphNodeTo, TARGET_VAL(X86::VPALIGNR128rr), 0,
                    1/*#VTs*/, MVT::v4f32, 3/*#Ops*/, 1, 0, 3, 
                // Src: (X86PAlign:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src2, (imm:i8):$imm) - Complexity = 6
                // Dst: (VPALIGNR128rr:v4f32 VR128:v4f32:$src2, VR128:v4f32:$src1, (imm:i8):$imm)
/*96266*/     0, /*End of Scope*/
            0, // EndSwitchType
          /*SwitchOpcode*/ 38,  TARGET_VAL(X86ISD::VPERMILPSY),// ->96309
/*96271*/   OPC_RecordChild0, // #0 = $src1
/*96272*/   OPC_RecordChild1, // #1 = $imm
/*96273*/   OPC_MoveChild, 1,
/*96275*/   OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*96278*/   OPC_CheckType, MVT::i8,
/*96280*/   OPC_MoveParent,
/*96281*/   OPC_SwitchType /*2 cases */, 11,  MVT::v8i32,// ->96295
/*96284*/     OPC_EmitConvertToTarget, 1,
/*96286*/     OPC_MorphNodeTo, TARGET_VAL(X86::VPERMILPSYri), 0,
                  1/*#VTs*/, MVT::v8i32, 2/*#Ops*/, 0, 2, 
              // Src: (X86VPermilpsy:v8i32 VR256:v8i32:$src1, (imm:i8):$imm) - Complexity = 6
              // Dst: (VPERMILPSYri:v8i32 VR256:v8i32:$src1, (imm:i8):$imm)
            /*SwitchType*/ 11,  MVT::v8f32,// ->96308
/*96297*/     OPC_EmitConvertToTarget, 1,
/*96299*/     OPC_MorphNodeTo, TARGET_VAL(X86::VPERMILPSYri), 0,
                  1/*#VTs*/, MVT::v8f32, 2/*#Ops*/, 0, 2, 
              // Src: (X86VPermilpsy:v8f32 VR256:v8f32:$src1, (imm:i8):$imm) - Complexity = 6
              // Dst: (VPERMILPSYri:v8f32 VR256:v8f32:$src1, (imm:i8):$imm)
            0, // EndSwitchType
          /*SwitchOpcode*/ 38,  TARGET_VAL(X86ISD::VPERMILPDY),// ->96350
/*96312*/   OPC_RecordChild0, // #0 = $src1
/*96313*/   OPC_RecordChild1, // #1 = $imm
/*96314*/   OPC_MoveChild, 1,
/*96316*/   OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*96319*/   OPC_CheckType, MVT::i8,
/*96321*/   OPC_MoveParent,
/*96322*/   OPC_SwitchType /*2 cases */, 11,  MVT::v4i64,// ->96336
/*96325*/     OPC_EmitConvertToTarget, 1,
/*96327*/     OPC_MorphNodeTo, TARGET_VAL(X86::VPERMILPDYri), 0,
                  1/*#VTs*/, MVT::v4i64, 2/*#Ops*/, 0, 2, 
              // Src: (X86VPermilpdy:v4i64 VR256:v4i64:$src1, (imm:i8):$imm) - Complexity = 6
              // Dst: (VPERMILPDYri:v4i64 VR256:v4i64:$src1, (imm:i8):$imm)
            /*SwitchType*/ 11,  MVT::v4f64,// ->96349
/*96338*/     OPC_EmitConvertToTarget, 1,
/*96340*/     OPC_MorphNodeTo, TARGET_VAL(X86::VPERMILPDYri), 0,
                  1/*#VTs*/, MVT::v4f64, 2/*#Ops*/, 0, 2, 
              // Src: (X86VPermilpdy:v4f64 VR256:v4f64:$src1, (imm:i8):$imm) - Complexity = 6
              // Dst: (VPERMILPDYri:v4f64 VR256:v4f64:$src1, (imm:i8):$imm)
            0, // EndSwitchType
          /*SwitchOpcode*/ 97,  TARGET_VAL(X86ISD::VPERM2F128),// ->96450
/*96353*/   OPC_RecordChild0, // #0 = $src1
/*96354*/   OPC_RecordChild1, // #1 = $src2
/*96355*/   OPC_RecordChild2, // #2 = $imm
/*96356*/   OPC_MoveChild, 2,
/*96358*/   OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*96361*/   OPC_CheckType, MVT::i8,
/*96363*/   OPC_MoveParent,
/*96364*/   OPC_SwitchType /*6 cases */, 12,  MVT::v8i32,// ->96379
/*96367*/     OPC_EmitConvertToTarget, 2,
/*96369*/     OPC_MorphNodeTo, TARGET_VAL(X86::VPERM2F128rr), 0,
                  1/*#VTs*/, MVT::v8i32, 3/*#Ops*/, 0, 1, 3, 
              // Src: (X86VPerm2f128:v8i32 VR256:v8i32:$src1, VR256:v8i32:$src2, (imm:i8):$imm) - Complexity = 6
              // Dst: (VPERM2F128rr:v8i32 VR256:v8i32:$src1, VR256:v8i32:$src2, (imm:i8):$imm)
            /*SwitchType*/ 12,  MVT::v4i64,// ->96393
/*96381*/     OPC_EmitConvertToTarget, 2,
/*96383*/     OPC_MorphNodeTo, TARGET_VAL(X86::VPERM2F128rr), 0,
                  1/*#VTs*/, MVT::v4i64, 3/*#Ops*/, 0, 1, 3, 
              // Src: (X86VPerm2f128:v4i64 VR256:v4i64:$src1, VR256:v4i64:$src2, (imm:i8):$imm) - Complexity = 6
              // Dst: (VPERM2F128rr:v4i64 VR256:v4i64:$src1, VR256:v4i64:$src2, (imm:i8):$imm)
            /*SwitchType*/ 12,  MVT::v32i8,// ->96407
/*96395*/     OPC_EmitConvertToTarget, 2,
/*96397*/     OPC_MorphNodeTo, TARGET_VAL(X86::VPERM2F128rr), 0,
                  1/*#VTs*/, MVT::v32i8, 3/*#Ops*/, 0, 1, 3, 
              // Src: (X86VPerm2f128:v32i8 VR256:v32i8:$src1, VR256:v32i8:$src2, (imm:i8):$imm) - Complexity = 6
              // Dst: (VPERM2F128rr:v32i8 VR256:v32i8:$src1, VR256:v32i8:$src2, (imm:i8):$imm)
            /*SwitchType*/ 12,  MVT::v16i16,// ->96421
/*96409*/     OPC_EmitConvertToTarget, 2,
/*96411*/     OPC_MorphNodeTo, TARGET_VAL(X86::VPERM2F128rr), 0,
                  1/*#VTs*/, MVT::v16i16, 3/*#Ops*/, 0, 1, 3, 
              // Src: (X86VPerm2f128:v16i16 VR256:v16i16:$src1, VR256:v16i16:$src2, (imm:i8):$imm) - Complexity = 6
              // Dst: (VPERM2F128rr:v16i16 VR256:v16i16:$src1, VR256:v16i16:$src2, (imm:i8):$imm)
            /*SwitchType*/ 12,  MVT::v8f32,// ->96435
/*96423*/     OPC_EmitConvertToTarget, 2,
/*96425*/     OPC_MorphNodeTo, TARGET_VAL(X86::VPERM2F128rr), 0,
                  1/*#VTs*/, MVT::v8f32, 3/*#Ops*/, 0, 1, 3, 
              // Src: (X86VPerm2f128:v8f32 VR256:v8f32:$src1, VR256:v8f32:$src2, (imm:i8):$imm) - Complexity = 6
              // Dst: (VPERM2F128rr:v8f32 VR256:v8f32:$src1, VR256:v8f32:$src2, (imm:i8):$imm)
            /*SwitchType*/ 12,  MVT::v4f64,// ->96449
/*96437*/     OPC_EmitConvertToTarget, 2,
/*96439*/     OPC_MorphNodeTo, TARGET_VAL(X86::VPERM2F128rr), 0,
                  1/*#VTs*/, MVT::v4f64, 3/*#Ops*/, 0, 1, 3, 
              // Src: (X86VPerm2f128:v4f64 VR256:v4f64:$src1, VR256:v4f64:$src2, (imm:i8):$imm) - Complexity = 6
              // Dst: (VPERM2F128rr:v4f64 VR256:v4f64:$src1, VR256:v4f64:$src2, (imm:i8):$imm)
            0, // EndSwitchType
          /*SwitchOpcode*/ 37|128,1/*165*/,  TARGET_VAL(ISD::BUILD_VECTOR),// ->96619
/*96454*/   OPC_Scope, 40, /*->96496*/ // 3 children in Scope
/*96456*/     OPC_CheckPredicate, 87, // Predicate_immAllZerosV
/*96458*/     OPC_SwitchType /*4 cases */, 7,  MVT::v4i32,// ->96468
/*96461*/       OPC_MorphNodeTo, TARGET_VAL(X86::V_SET0), 0,
                    1/*#VTs*/, MVT::v4i32, 0/*#Ops*/, 
                // Src: (build_vector:v4i32)<<P:Predicate_immAllZerosV>> - Complexity = 4
                // Dst: (V_SET0:v4i32)
              /*SwitchType*/ 7,  MVT::v2i64,// ->96477
/*96470*/       OPC_MorphNodeTo, TARGET_VAL(X86::V_SET0), 0,
                    1/*#VTs*/, MVT::v2i64, 0/*#Ops*/, 
                // Src: (build_vector:v2i64)<<P:Predicate_immAllZerosV>> - Complexity = 4
                // Dst: (V_SET0:v2i64)
              /*SwitchType*/ 7,  MVT::v8i16,// ->96486
/*96479*/       OPC_MorphNodeTo, TARGET_VAL(X86::V_SET0), 0,
                    1/*#VTs*/, MVT::v8i16, 0/*#Ops*/, 
                // Src: (build_vector:v8i16)<<P:Predicate_immAllZerosV>> - Complexity = 4
                // Dst: (V_SET0:v8i16)
              /*SwitchType*/ 7,  MVT::v16i8,// ->96495
/*96488*/       OPC_MorphNodeTo, TARGET_VAL(X86::V_SET0), 0,
                    1/*#VTs*/, MVT::v16i8, 0/*#Ops*/, 
                // Src: (build_vector:v16i8)<<P:Predicate_immAllZerosV>> - Complexity = 4
                // Dst: (V_SET0:v16i8)
              0, // EndSwitchType
/*96496*/   /*Scope*/ 26, /*->96523*/
/*96497*/     OPC_CheckPredicate, 110, // Predicate_immAllOnesV
/*96499*/     OPC_CheckType, MVT::v4i32,
/*96501*/     OPC_Scope, 9, /*->96512*/ // 2 children in Scope
/*96503*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*96505*/       OPC_MorphNodeTo, TARGET_VAL(X86::V_SETALLONES), 0,
                    1/*#VTs*/, MVT::v4i32, 0/*#Ops*/, 
                // Src: (build_vector:v4i32)<<P:Predicate_immAllOnesV>> - Complexity = 4
                // Dst: (V_SETALLONES:v4i32)
/*96512*/     /*Scope*/ 9, /*->96522*/
/*96513*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*96515*/       OPC_MorphNodeTo, TARGET_VAL(X86::AVX_SETALLONES), 0,
                    1/*#VTs*/, MVT::v4i32, 0/*#Ops*/, 
                // Src: (build_vector:v4i32)<<P:Predicate_immAllOnesV>> - Complexity = 4
                // Dst: (AVX_SETALLONES:v4i32)
/*96522*/     0, /*End of Scope*/
/*96523*/   /*Scope*/ 94, /*->96618*/
/*96524*/     OPC_CheckPredicate, 87, // Predicate_immAllZerosV
/*96526*/     OPC_SwitchType /*6 cases */, 23,  MVT::v8i32,// ->96552
/*96529*/       OPC_EmitInteger, MVT::i32, 0, 
/*96532*/       OPC_EmitNode, TARGET_VAL(X86::V_SET0), 0,
                    1/*#VTs*/, MVT::v16i8, 0/*#Ops*/,  // Results = #1 
/*96539*/       OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*96542*/       OPC_MorphNodeTo, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                    1/*#VTs*/, MVT::v8i32, 3/*#Ops*/, 0, 1, 2, 
                // Src: (build_vector:v8i32)<<P:Predicate_immAllZerosV>> - Complexity = 4
                // Dst: (SUBREG_TO_REG:v8i32 0:i32, (V_SET0:v16i8), sub_xmm:i32)
              /*SwitchType*/ 23,  MVT::v4i64,// ->96577
/*96554*/       OPC_EmitInteger, MVT::i64, 0, 
/*96557*/       OPC_EmitNode, TARGET_VAL(X86::V_SET0), 0,
                    1/*#VTs*/, MVT::v16i8, 0/*#Ops*/,  // Results = #1 
/*96564*/       OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*96567*/       OPC_MorphNodeTo, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                    1/*#VTs*/, MVT::v4i64, 3/*#Ops*/, 0, 1, 2, 
                // Src: (build_vector:v4i64)<<P:Predicate_immAllZerosV>> - Complexity = 4
                // Dst: (SUBREG_TO_REG:v4i64 0:i64, (V_SET0:v16i8), sub_xmm:i32)
              /*SwitchType*/ 7,  MVT::v4f32,// ->96586
/*96579*/       OPC_MorphNodeTo, TARGET_VAL(X86::V_SET0), 0,
                    1/*#VTs*/, MVT::v4f32, 0/*#Ops*/, 
                // Src: (build_vector:v4f32)<<P:Predicate_immAllZerosV>> - Complexity = 4
                // Dst: (V_SET0:v4f32)
              /*SwitchType*/ 7,  MVT::v2f64,// ->96595
/*96588*/       OPC_MorphNodeTo, TARGET_VAL(X86::V_SET0), 0,
                    1/*#VTs*/, MVT::v2f64, 0/*#Ops*/, 
                // Src: (build_vector:v2f64)<<P:Predicate_immAllZerosV>> - Complexity = 4
                // Dst: (V_SET0:v2f64)
              /*SwitchType*/ 9,  MVT::v8f32,// ->96606
/*96597*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*96599*/       OPC_MorphNodeTo, TARGET_VAL(X86::AVX_SET0PSY), 0,
                    1/*#VTs*/, MVT::v8f32, 0/*#Ops*/, 
                // Src: (build_vector:v8f32)<<P:Predicate_immAllZerosV>> - Complexity = 4
                // Dst: (AVX_SET0PSY:v8f32)
              /*SwitchType*/ 9,  MVT::v4f64,// ->96617
/*96608*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*96610*/       OPC_MorphNodeTo, TARGET_VAL(X86::AVX_SET0PDY), 0,
                    1/*#VTs*/, MVT::v4f64, 0/*#Ops*/, 
                // Src: (build_vector:v4f64)<<P:Predicate_immAllZerosV>> - Complexity = 4
                // Dst: (AVX_SET0PDY:v4f64)
              0, // EndSwitchType
/*96618*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 60,  TARGET_VAL(X86ISD::MOVHLPS),// ->96682
/*96622*/   OPC_RecordChild0, // #0 = $src1
/*96623*/   OPC_RecordChild1, // #1 = $src2
/*96624*/   OPC_SwitchType /*2 cases */, 26,  MVT::v4i32,// ->96653
/*96627*/     OPC_Scope, 11, /*->96640*/ // 2 children in Scope
/*96629*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*96631*/       OPC_MorphNodeTo, TARGET_VAL(X86::VMOVHLPSrr), 0,
                    1/*#VTs*/, MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (X86Movhlps:v4i32 VR128:v4i32:$src1, VR128:v4i32:$src2) - Complexity = 3
                // Dst: (VMOVHLPSrr:v4i32 VR128:v4i32:$src1, VR128:v4i32:$src2)
/*96640*/     /*Scope*/ 11, /*->96652*/
/*96641*/       OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*96643*/       OPC_MorphNodeTo, TARGET_VAL(X86::MOVHLPSrr), 0,
                    1/*#VTs*/, MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (X86Movhlps:v4i32 VR128:v4i32:$src1, VR128:v4i32:$src2) - Complexity = 3
                // Dst: (MOVHLPSrr:v4i32 VR128:v4i32:$src1, VR128:v4i32:$src2)
/*96652*/     0, /*End of Scope*/
            /*SwitchType*/ 26,  MVT::v4f32,// ->96681
/*96655*/     OPC_Scope, 11, /*->96668*/ // 2 children in Scope
/*96657*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*96659*/       OPC_MorphNodeTo, TARGET_VAL(X86::VMOVHLPSrr), 0,
                    1/*#VTs*/, MVT::v4f32, 2/*#Ops*/, 0, 1, 
                // Src: (X86Movhlps:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src2) - Complexity = 3
                // Dst: (VMOVHLPSrr:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src2)
/*96668*/     /*Scope*/ 11, /*->96680*/
/*96669*/       OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*96671*/       OPC_MorphNodeTo, TARGET_VAL(X86::MOVHLPSrr), 0,
                    1/*#VTs*/, MVT::v4f32, 2/*#Ops*/, 0, 1, 
                // Src: (X86Movhlps:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src2) - Complexity = 3
                // Dst: (MOVHLPSrr:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src2)
/*96680*/     0, /*End of Scope*/
            0, // EndSwitchType
          /*SwitchOpcode*/ 28,  TARGET_VAL(X86ISD::PSIGNB),// ->96713
/*96685*/   OPC_RecordChild0, // #0 = $src1
/*96686*/   OPC_RecordChild1, // #1 = $src2
/*96687*/   OPC_Scope, 11, /*->96700*/ // 2 children in Scope
/*96689*/     OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*96691*/     OPC_MorphNodeTo, TARGET_VAL(X86::PSIGNBrr128), 0,
                  1/*#VTs*/, MVT::v16i8, 2/*#Ops*/, 0, 1, 
              // Src: (X86psignb:v16i8 VR128:v16i8:$src1, VR128:v16i8:$src2) - Complexity = 3
              // Dst: (PSIGNBrr128:v16i8 VR128:v16i8:$src1, VR128:v16i8:$src2)
/*96700*/   /*Scope*/ 11, /*->96712*/
/*96701*/     OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*96703*/     OPC_MorphNodeTo, TARGET_VAL(X86::VPSIGNBrr128), 0,
                  1/*#VTs*/, MVT::v16i8, 2/*#Ops*/, 0, 1, 
              // Src: (X86psignb:v16i8 VR128:v16i8:$src1, VR128:v16i8:$src2) - Complexity = 3
              // Dst: (VPSIGNBrr128:v16i8 VR128:v16i8:$src1, VR128:v16i8:$src2)
/*96712*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 28,  TARGET_VAL(X86ISD::PSIGNW),// ->96744
/*96716*/   OPC_RecordChild0, // #0 = $src1
/*96717*/   OPC_RecordChild1, // #1 = $src2
/*96718*/   OPC_Scope, 11, /*->96731*/ // 2 children in Scope
/*96720*/     OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*96722*/     OPC_MorphNodeTo, TARGET_VAL(X86::PSIGNWrr128), 0,
                  1/*#VTs*/, MVT::v8i16, 2/*#Ops*/, 0, 1, 
              // Src: (X86psignw:v8i16 VR128:v8i16:$src1, VR128:v8i16:$src2) - Complexity = 3
              // Dst: (PSIGNWrr128:v8i16 VR128:v8i16:$src1, VR128:v8i16:$src2)
/*96731*/   /*Scope*/ 11, /*->96743*/
/*96732*/     OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*96734*/     OPC_MorphNodeTo, TARGET_VAL(X86::VPSIGNWrr128), 0,
                  1/*#VTs*/, MVT::v8i16, 2/*#Ops*/, 0, 1, 
              // Src: (X86psignw:v8i16 VR128:v8i16:$src1, VR128:v8i16:$src2) - Complexity = 3
              // Dst: (VPSIGNWrr128:v8i16 VR128:v8i16:$src1, VR128:v8i16:$src2)
/*96743*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 28,  TARGET_VAL(X86ISD::PSIGND),// ->96775
/*96747*/   OPC_RecordChild0, // #0 = $src1
/*96748*/   OPC_RecordChild1, // #1 = $src2
/*96749*/   OPC_Scope, 11, /*->96762*/ // 2 children in Scope
/*96751*/     OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*96753*/     OPC_MorphNodeTo, TARGET_VAL(X86::PSIGNDrr128), 0,
                  1/*#VTs*/, MVT::v4i32, 2/*#Ops*/, 0, 1, 
              // Src: (X86psignd:v4i32 VR128:v4i32:$src1, VR128:v4i32:$src2) - Complexity = 3
              // Dst: (PSIGNDrr128:v4i32 VR128:v4i32:$src1, VR128:v4i32:$src2)
/*96762*/   /*Scope*/ 11, /*->96774*/
/*96763*/     OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*96765*/     OPC_MorphNodeTo, TARGET_VAL(X86::VPSIGNDrr128), 0,
                  1/*#VTs*/, MVT::v4i32, 2/*#Ops*/, 0, 1, 
              // Src: (X86psignd:v4i32 VR128:v4i32:$src1, VR128:v4i32:$src2) - Complexity = 3
              // Dst: (VPSIGNDrr128:v4i32 VR128:v4i32:$src1, VR128:v4i32:$src2)
/*96774*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 124|128,1/*252*/,  TARGET_VAL(ISD::VSELECT),// ->97031
/*96779*/   OPC_RecordChild0, // #0 = $mask
/*96780*/   OPC_Scope, 36, /*->96818*/ // 5 children in Scope
/*96782*/     OPC_CheckChild0Type, MVT::v16i8,
/*96784*/     OPC_RecordChild1, // #1 = $src1
/*96785*/     OPC_RecordChild2, // #2 = $src2
/*96786*/     OPC_CheckType, MVT::v16i8,
/*96788*/     OPC_Scope, 12, /*->96802*/ // 2 children in Scope
/*96790*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*96792*/       OPC_MorphNodeTo, TARGET_VAL(X86::VPBLENDVBrr), 0,
                    1/*#VTs*/, MVT::v16i8, 3/*#Ops*/, 2, 1, 0, 
                // Src: (vselect:v16i8 VR128:v16i8:$mask, VR128:v16i8:$src1, VR128:v16i8:$src2) - Complexity = 3
                // Dst: (VPBLENDVBrr:v16i8 VR128:v16i8:$src2, VR128:v16i8:$src1, VR128:v16i8:$mask)
/*96802*/     /*Scope*/ 14, /*->96817*/
/*96803*/       OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*96805*/       OPC_EmitCopyToReg, 0, X86::XMM0,
/*96808*/       OPC_MorphNodeTo, TARGET_VAL(X86::PBLENDVBrr0), 0|OPFL_GlueInput,
                    1/*#VTs*/, MVT::v16i8, 2/*#Ops*/, 2, 1, 
                // Src: (vselect:v16i8 XMM0:v16i8, VR128:v16i8:$src1, VR128:v16i8:$src2) - Complexity = 3
                // Dst: (PBLENDVBrr0:v16i8 VR128:v16i8:$src2, VR128:v16i8:$src1)
/*96817*/     0, /*End of Scope*/
/*96818*/   /*Scope*/ 70, /*->96889*/
/*96819*/     OPC_CheckChild0Type, MVT::v4i32,
/*96821*/     OPC_RecordChild1, // #1 = $src1
/*96822*/     OPC_RecordChild2, // #2 = $src2
/*96823*/     OPC_SwitchType /*2 cases */, 30,  MVT::v4i32,// ->96856
/*96826*/       OPC_Scope, 12, /*->96840*/ // 2 children in Scope
/*96828*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*96830*/         OPC_MorphNodeTo, TARGET_VAL(X86::VBLENDVPSrr), 0,
                      1/*#VTs*/, MVT::v4i32, 3/*#Ops*/, 2, 1, 0, 
                  // Src: (vselect:v4i32 VR128:v4i32:$mask, VR128:v4i32:$src1, VR128:v4i32:$src2) - Complexity = 3
                  // Dst: (VBLENDVPSrr:v4i32 VR128:v4i32:$src2, VR128:v4i32:$src1, VR128:v4i32:$mask)
/*96840*/       /*Scope*/ 14, /*->96855*/
/*96841*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*96843*/         OPC_EmitCopyToReg, 0, X86::XMM0,
/*96846*/         OPC_MorphNodeTo, TARGET_VAL(X86::BLENDVPSrr0), 0|OPFL_GlueInput,
                      1/*#VTs*/, MVT::v4i32, 2/*#Ops*/, 2, 1, 
                  // Src: (vselect:v4i32 XMM0:v4i32, VR128:v4i32:$src1, VR128:v4i32:$src2) - Complexity = 3
                  // Dst: (BLENDVPSrr0:v4i32 VR128:v4i32:$src2, VR128:v4i32:$src1)
/*96855*/       0, /*End of Scope*/
              /*SwitchType*/ 30,  MVT::v4f32,// ->96888
/*96858*/       OPC_Scope, 12, /*->96872*/ // 2 children in Scope
/*96860*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*96862*/         OPC_MorphNodeTo, TARGET_VAL(X86::VBLENDVPSrr), 0,
                      1/*#VTs*/, MVT::v4f32, 3/*#Ops*/, 2, 1, 0, 
                  // Src: (vselect:v4f32 VR128:v4i32:$mask, VR128:v4f32:$src1, VR128:v4f32:$src2) - Complexity = 3
                  // Dst: (VBLENDVPSrr:v4f32 VR128:v4f32:$src2, VR128:v4f32:$src1, VR128:v4i32:$mask)
/*96872*/       /*Scope*/ 14, /*->96887*/
/*96873*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*96875*/         OPC_EmitCopyToReg, 0, X86::XMM0,
/*96878*/         OPC_MorphNodeTo, TARGET_VAL(X86::BLENDVPSrr0), 0|OPFL_GlueInput,
                      1/*#VTs*/, MVT::v4f32, 2/*#Ops*/, 2, 1, 
                  // Src: (vselect:v4f32 XMM0:v4i32, VR128:v4f32:$src1, VR128:v4f32:$src2) - Complexity = 3
                  // Dst: (BLENDVPSrr0:v4f32 VR128:v4f32:$src2, VR128:v4f32:$src1)
/*96887*/       0, /*End of Scope*/
              0, // EndSwitchType
/*96889*/   /*Scope*/ 70, /*->96960*/
/*96890*/     OPC_CheckChild0Type, MVT::v2i64,
/*96892*/     OPC_RecordChild1, // #1 = $src1
/*96893*/     OPC_RecordChild2, // #2 = $src2
/*96894*/     OPC_SwitchType /*2 cases */, 30,  MVT::v2i64,// ->96927
/*96897*/       OPC_Scope, 12, /*->96911*/ // 2 children in Scope
/*96899*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*96901*/         OPC_MorphNodeTo, TARGET_VAL(X86::VBLENDVPDrr), 0,
                      1/*#VTs*/, MVT::v2i64, 3/*#Ops*/, 2, 1, 0, 
                  // Src: (vselect:v2i64 VR128:v2i64:$mask, VR128:v2i64:$src1, VR128:v2i64:$src2) - Complexity = 3
                  // Dst: (VBLENDVPDrr:v2i64 VR128:v2i64:$src2, VR128:v2i64:$src1, VR128:v2i64:$mask)
/*96911*/       /*Scope*/ 14, /*->96926*/
/*96912*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*96914*/         OPC_EmitCopyToReg, 0, X86::XMM0,
/*96917*/         OPC_MorphNodeTo, TARGET_VAL(X86::BLENDVPDrr0), 0|OPFL_GlueInput,
                      1/*#VTs*/, MVT::v2i64, 2/*#Ops*/, 2, 1, 
                  // Src: (vselect:v2i64 XMM0:v2i64, VR128:v2i64:$src1, VR128:v2i64:$src2) - Complexity = 3
                  // Dst: (BLENDVPDrr0:v2i64 VR128:v2i64:$src2, VR128:v2i64:$src1)
/*96926*/       0, /*End of Scope*/
              /*SwitchType*/ 30,  MVT::v2f64,// ->96959
/*96929*/       OPC_Scope, 12, /*->96943*/ // 2 children in Scope
/*96931*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*96933*/         OPC_MorphNodeTo, TARGET_VAL(X86::VBLENDVPDrr), 0,
                      1/*#VTs*/, MVT::v2f64, 3/*#Ops*/, 2, 1, 0, 
                  // Src: (vselect:v2f64 VR128:v2i64:$mask, VR128:v2f64:$src1, VR128:v2f64:$src2) - Complexity = 3
                  // Dst: (VBLENDVPDrr:v2f64 VR128:v2f64:$src2, VR128:v2f64:$src1, VR128:v2i64:$mask)
/*96943*/       /*Scope*/ 14, /*->96958*/
/*96944*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*96946*/         OPC_EmitCopyToReg, 0, X86::XMM0,
/*96949*/         OPC_MorphNodeTo, TARGET_VAL(X86::BLENDVPDrr0), 0|OPFL_GlueInput,
                      1/*#VTs*/, MVT::v2f64, 2/*#Ops*/, 2, 1, 
                  // Src: (vselect:v2f64 XMM0:v2i64, VR128:v2f64:$src1, VR128:v2f64:$src2) - Complexity = 3
                  // Dst: (BLENDVPDrr0:v2f64 VR128:v2f64:$src2, VR128:v2f64:$src1)
/*96958*/       0, /*End of Scope*/
              0, // EndSwitchType
/*96960*/   /*Scope*/ 34, /*->96995*/
/*96961*/     OPC_CheckChild0Type, MVT::v8i32,
/*96963*/     OPC_RecordChild1, // #1 = $src1
/*96964*/     OPC_RecordChild2, // #2 = $src2
/*96965*/     OPC_SwitchType /*2 cases */, 12,  MVT::v8i32,// ->96980
/*96968*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*96970*/       OPC_MorphNodeTo, TARGET_VAL(X86::VBLENDVPSYrr), 0,
                    1/*#VTs*/, MVT::v8i32, 3/*#Ops*/, 2, 1, 0, 
                // Src: (vselect:v8i32 VR256:v8i32:$mask, VR256:v8i32:$src1, VR256:v8i32:$src2) - Complexity = 3
                // Dst: (VBLENDVPSYrr:v8i32 VR256:v8i32:$src2, VR256:v8i32:$src1, VR256:v8i32:$mask)
              /*SwitchType*/ 12,  MVT::v8f32,// ->96994
/*96982*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*96984*/       OPC_MorphNodeTo, TARGET_VAL(X86::VBLENDVPSYrr), 0,
                    1/*#VTs*/, MVT::v8f32, 3/*#Ops*/, 2, 1, 0, 
                // Src: (vselect:v8f32 VR256:v8i32:$mask, VR256:v8f32:$src1, VR256:v8f32:$src2) - Complexity = 3
                // Dst: (VBLENDVPSYrr:v8f32 VR256:v8f32:$src2, VR256:v8f32:$src1, VR256:v8i32:$mask)
              0, // EndSwitchType
/*96995*/   /*Scope*/ 34, /*->97030*/
/*96996*/     OPC_CheckChild0Type, MVT::v4i64,
/*96998*/     OPC_RecordChild1, // #1 = $src1
/*96999*/     OPC_RecordChild2, // #2 = $src2
/*97000*/     OPC_SwitchType /*2 cases */, 12,  MVT::v4i64,// ->97015
/*97003*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*97005*/       OPC_MorphNodeTo, TARGET_VAL(X86::VBLENDVPDYrr), 0,
                    1/*#VTs*/, MVT::v4i64, 3/*#Ops*/, 2, 1, 0, 
                // Src: (vselect:v4i64 VR256:v4i64:$mask, VR256:v4i64:$src1, VR256:v4i64:$src2) - Complexity = 3
                // Dst: (VBLENDVPDYrr:v4i64 VR256:v4i64:$src2, VR256:v4i64:$src1, VR256:v4i64:$mask)
              /*SwitchType*/ 12,  MVT::v4f64,// ->97029
/*97017*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*97019*/       OPC_MorphNodeTo, TARGET_VAL(X86::VBLENDVPDYrr), 0,
                    1/*#VTs*/, MVT::v4f64, 3/*#Ops*/, 2, 1, 0, 
                // Src: (vselect:v4f64 VR256:v4i64:$mask, VR256:v4f64:$src1, VR256:v4f64:$src2) - Complexity = 3
                // Dst: (VBLENDVPDYrr:v4f64 VR256:v4f64:$src2, VR256:v4f64:$src1, VR256:v4i64:$mask)
              0, // EndSwitchType
/*97030*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 21|128,1/*149*/,  TARGET_VAL(X86ISD::MOVSS),// ->97184
/*97035*/   OPC_RecordChild0, // #0 = $src1
/*97036*/   OPC_Scope, 53, /*->97091*/ // 3 children in Scope
/*97038*/     OPC_RecordChild1, // #1 = $src2
/*97039*/     OPC_CheckType, MVT::v4i32,
/*97041*/     OPC_Scope, 23, /*->97066*/ // 2 children in Scope
/*97043*/       OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*97045*/       OPC_EmitInteger, MVT::i32, X86::sub_ss,
/*97048*/       OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                    1/*#VTs*/, MVT::f32, 2/*#Ops*/, 1, 2,  // Results = #3 
/*97057*/       OPC_MorphNodeTo, TARGET_VAL(X86::MOVSSrr), 0,
                    1/*#VTs*/, MVT::v4i32, 2/*#Ops*/, 0, 3, 
                // Src: (X86Movss:v4i32 VR128:v4i32:$src1, VR128:v4i32:$src2) - Complexity = 3
                // Dst: (MOVSSrr:v4i32 VR128:v4i32:$src1, (EXTRACT_SUBREG:f32 VR128:v4i32:$src2, sub_ss:i32))
/*97066*/     /*Scope*/ 23, /*->97090*/
/*97067*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*97069*/       OPC_EmitInteger, MVT::i32, X86::sub_ss,
/*97072*/       OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                    1/*#VTs*/, MVT::f32, 2/*#Ops*/, 1, 2,  // Results = #3 
/*97081*/       OPC_MorphNodeTo, TARGET_VAL(X86::VMOVSSrr), 0,
                    1/*#VTs*/, MVT::v4i32, 2/*#Ops*/, 0, 3, 
                // Src: (X86Movss:v4i32 VR128:v4i32:$src1, VR128:v4i32:$src2) - Complexity = 3
                // Dst: (VMOVSSrr:v4i32 VR128:v4i32:$src1, (EXTRACT_SUBREG:f32 VR128:v4i32:$src2, sub_ss:i32))
/*97090*/     0, /*End of Scope*/
/*97091*/   /*Scope*/ 37, /*->97129*/
/*97092*/     OPC_MoveChild, 1,
/*97094*/     OPC_CheckOpcode, TARGET_VAL(ISD::SCALAR_TO_VECTOR),
/*97097*/     OPC_RecordChild0, // #1 = $src2
/*97098*/     OPC_CheckChild0Type, MVT::f32,
/*97100*/     OPC_MoveParent,
/*97101*/     OPC_CheckType, MVT::v4f32,
/*97103*/     OPC_Scope, 11, /*->97116*/ // 2 children in Scope
/*97105*/       OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*97107*/       OPC_MorphNodeTo, TARGET_VAL(X86::MOVSSrr), 0,
                    1/*#VTs*/, MVT::v4f32, 2/*#Ops*/, 0, 1, 
                // Src: (X86Movss:v4f32 VR128:v4f32:$src1, (scalar_to_vector:v4f32 FR32:f32:$src2)) - Complexity = 6
                // Dst: (MOVSSrr:v4f32 VR128:v4f32:$src1, FR32:f32:$src2)
/*97116*/     /*Scope*/ 11, /*->97128*/
/*97117*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*97119*/       OPC_MorphNodeTo, TARGET_VAL(X86::VMOVSSrr), 0,
                    1/*#VTs*/, MVT::v4f32, 2/*#Ops*/, 0, 1, 
                // Src: (X86Movss:v4f32 VR128:v4f32:$src1, (scalar_to_vector:v4f32 FR32:f32:$src2)) - Complexity = 6
                // Dst: (VMOVSSrr:v4f32 VR128:v4f32:$src1, FR32:f32:$src2)
/*97128*/     0, /*End of Scope*/
/*97129*/   /*Scope*/ 53, /*->97183*/
/*97130*/     OPC_RecordChild1, // #1 = $src2
/*97131*/     OPC_CheckType, MVT::v4f32,
/*97133*/     OPC_Scope, 23, /*->97158*/ // 2 children in Scope
/*97135*/       OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*97137*/       OPC_EmitInteger, MVT::i32, X86::sub_ss,
/*97140*/       OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                    1/*#VTs*/, MVT::f32, 2/*#Ops*/, 1, 2,  // Results = #3 
/*97149*/       OPC_MorphNodeTo, TARGET_VAL(X86::MOVSSrr), 0,
                    1/*#VTs*/, MVT::v4f32, 2/*#Ops*/, 0, 3, 
                // Src: (X86Movss:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src2) - Complexity = 3
                // Dst: (MOVSSrr:v4f32 VR128:v4f32:$src1, (EXTRACT_SUBREG:f32 VR128:v4f32:$src2, sub_ss:i32))
/*97158*/     /*Scope*/ 23, /*->97182*/
/*97159*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*97161*/       OPC_EmitInteger, MVT::i32, X86::sub_ss,
/*97164*/       OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                    1/*#VTs*/, MVT::f32, 2/*#Ops*/, 1, 2,  // Results = #3 
/*97173*/       OPC_MorphNodeTo, TARGET_VAL(X86::VMOVSSrr), 0,
                    1/*#VTs*/, MVT::v4f32, 2/*#Ops*/, 0, 3, 
                // Src: (X86Movss:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src2) - Complexity = 3
                // Dst: (VMOVSSrr:v4f32 VR128:v4f32:$src1, (EXTRACT_SUBREG:f32 VR128:v4f32:$src2, sub_ss:i32))
/*97182*/     0, /*End of Scope*/
/*97183*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 1|128,2/*257*/,  TARGET_VAL(X86ISD::MOVSD),// ->97445
/*97188*/   OPC_RecordChild0, // #0 = $src1
/*97189*/   OPC_Scope, 107, /*->97298*/ // 3 children in Scope
/*97191*/     OPC_RecordChild1, // #1 = $src2
/*97192*/     OPC_SwitchType /*2 cases */, 50,  MVT::v2i64,// ->97245
/*97195*/       OPC_Scope, 23, /*->97220*/ // 2 children in Scope
/*97197*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*97199*/         OPC_EmitInteger, MVT::i32, X86::sub_sd,
/*97202*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      1/*#VTs*/, MVT::f64, 2/*#Ops*/, 1, 2,  // Results = #3 
/*97211*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOVSDrr), 0,
                      1/*#VTs*/, MVT::v2i64, 2/*#Ops*/, 0, 3, 
                  // Src: (X86Movsd:v2i64 VR128:v2i64:$src1, VR128:v2i64:$src2) - Complexity = 3
                  // Dst: (MOVSDrr:v2i64 VR128:v2i64:$src1, (EXTRACT_SUBREG:f64 VR128:v2i64:$src2, sub_sd:i32))
/*97220*/       /*Scope*/ 23, /*->97244*/
/*97221*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*97223*/         OPC_EmitInteger, MVT::i32, X86::sub_sd,
/*97226*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      1/*#VTs*/, MVT::f64, 2/*#Ops*/, 1, 2,  // Results = #3 
/*97235*/         OPC_MorphNodeTo, TARGET_VAL(X86::VMOVSDrr), 0,
                      1/*#VTs*/, MVT::v2i64, 2/*#Ops*/, 0, 3, 
                  // Src: (X86Movsd:v2i64 VR128:v2i64:$src1, VR128:v2i64:$src2) - Complexity = 3
                  // Dst: (VMOVSDrr:v2i64 VR128:v2i64:$src1, (EXTRACT_SUBREG:f64 VR128:v2i64:$src2, sub_sd:i32))
/*97244*/       0, /*End of Scope*/
              /*SwitchType*/ 50,  MVT::v4i32,// ->97297
/*97247*/       OPC_Scope, 23, /*->97272*/ // 2 children in Scope
/*97249*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*97251*/         OPC_EmitInteger, MVT::i32, X86::sub_sd,
/*97254*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      1/*#VTs*/, MVT::f64, 2/*#Ops*/, 1, 2,  // Results = #3 
/*97263*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOVSDrr), 0,
                      1/*#VTs*/, MVT::v4i32, 2/*#Ops*/, 0, 3, 
                  // Src: (X86Movsd:v4i32 VR128:v4i32:$src1, VR128:v4i32:$src2) - Complexity = 3
                  // Dst: (MOVSDrr:v4i32 VR128:v4i32:$src1, (EXTRACT_SUBREG:f64 VR128:v4i32:$src2, sub_sd:i32))
/*97272*/       /*Scope*/ 23, /*->97296*/
/*97273*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*97275*/         OPC_EmitInteger, MVT::i32, X86::sub_sd,
/*97278*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      1/*#VTs*/, MVT::f64, 2/*#Ops*/, 1, 2,  // Results = #3 
/*97287*/         OPC_MorphNodeTo, TARGET_VAL(X86::VMOVSDrr), 0,
                      1/*#VTs*/, MVT::v4i32, 2/*#Ops*/, 0, 3, 
                  // Src: (X86Movsd:v4i32 VR128:v4i32:$src1, VR128:v4i32:$src2) - Complexity = 3
                  // Dst: (VMOVSDrr:v4i32 VR128:v4i32:$src1, (EXTRACT_SUBREG:f64 VR128:v4i32:$src2, sub_sd:i32))
/*97296*/       0, /*End of Scope*/
              0, // EndSwitchType
/*97298*/   /*Scope*/ 37, /*->97336*/
/*97299*/     OPC_MoveChild, 1,
/*97301*/     OPC_CheckOpcode, TARGET_VAL(ISD::SCALAR_TO_VECTOR),
/*97304*/     OPC_RecordChild0, // #1 = $src2
/*97305*/     OPC_CheckChild0Type, MVT::f64,
/*97307*/     OPC_MoveParent,
/*97308*/     OPC_CheckType, MVT::v2f64,
/*97310*/     OPC_Scope, 11, /*->97323*/ // 2 children in Scope
/*97312*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*97314*/       OPC_MorphNodeTo, TARGET_VAL(X86::MOVSDrr), 0,
                    1/*#VTs*/, MVT::v2f64, 2/*#Ops*/, 0, 1, 
                // Src: (X86Movsd:v2f64 VR128:v2f64:$src1, (scalar_to_vector:v2f64 FR64:f64:$src2)) - Complexity = 6
                // Dst: (MOVSDrr:v2f64 VR128:v2f64:$src1, FR64:f64:$src2)
/*97323*/     /*Scope*/ 11, /*->97335*/
/*97324*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*97326*/       OPC_MorphNodeTo, TARGET_VAL(X86::VMOVSDrr), 0,
                    1/*#VTs*/, MVT::v2f64, 2/*#Ops*/, 0, 1, 
                // Src: (X86Movsd:v2f64 VR128:v2f64:$src1, (scalar_to_vector:v2f64 FR64:f64:$src2)) - Complexity = 6
                // Dst: (VMOVSDrr:v2f64 VR128:v2f64:$src1, FR64:f64:$src2)
/*97335*/     0, /*End of Scope*/
/*97336*/   /*Scope*/ 107, /*->97444*/
/*97337*/     OPC_RecordChild1, // #1 = $src2
/*97338*/     OPC_SwitchType /*2 cases */, 50,  MVT::v2f64,// ->97391
/*97341*/       OPC_Scope, 23, /*->97366*/ // 2 children in Scope
/*97343*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*97345*/         OPC_EmitInteger, MVT::i32, X86::sub_sd,
/*97348*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      1/*#VTs*/, MVT::f64, 2/*#Ops*/, 1, 2,  // Results = #3 
/*97357*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOVSDrr), 0,
                      1/*#VTs*/, MVT::v2f64, 2/*#Ops*/, 0, 3, 
                  // Src: (X86Movsd:v2f64 VR128:v2f64:$src1, VR128:v2f64:$src2) - Complexity = 3
                  // Dst: (MOVSDrr:v2f64 VR128:v2f64:$src1, (EXTRACT_SUBREG:f64 VR128:v2f64:$src2, sub_sd:i32))
/*97366*/       /*Scope*/ 23, /*->97390*/
/*97367*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*97369*/         OPC_EmitInteger, MVT::i32, X86::sub_sd,
/*97372*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      1/*#VTs*/, MVT::f64, 2/*#Ops*/, 1, 2,  // Results = #3 
/*97381*/         OPC_MorphNodeTo, TARGET_VAL(X86::VMOVSDrr), 0,
                      1/*#VTs*/, MVT::v2f64, 2/*#Ops*/, 0, 3, 
                  // Src: (X86Movsd:v2f64 VR128:v2f64:$src1, VR128:v2f64:$src2) - Complexity = 3
                  // Dst: (VMOVSDrr:v2f64 VR128:v2f64:$src1, (EXTRACT_SUBREG:f64 VR128:v2f64:$src2, sub_sd:i32))
/*97390*/       0, /*End of Scope*/
              /*SwitchType*/ 50,  MVT::v4f32,// ->97443
/*97393*/       OPC_Scope, 23, /*->97418*/ // 2 children in Scope
/*97395*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*97397*/         OPC_EmitInteger, MVT::i32, X86::sub_sd,
/*97400*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      1/*#VTs*/, MVT::f64, 2/*#Ops*/, 1, 2,  // Results = #3 
/*97409*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOVSDrr), 0,
                      1/*#VTs*/, MVT::v4f32, 2/*#Ops*/, 0, 3, 
                  // Src: (X86Movsd:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src2) - Complexity = 3
                  // Dst: (MOVSDrr:v4f32 VR128:v4f32:$src1, (EXTRACT_SUBREG:f64 VR128:v4f32:$src2, sub_sd:i32))
/*97418*/       /*Scope*/ 23, /*->97442*/
/*97419*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*97421*/         OPC_EmitInteger, MVT::i32, X86::sub_sd,
/*97424*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      1/*#VTs*/, MVT::f64, 2/*#Ops*/, 1, 2,  // Results = #3 
/*97433*/         OPC_MorphNodeTo, TARGET_VAL(X86::VMOVSDrr), 0,
                      1/*#VTs*/, MVT::v4f32, 2/*#Ops*/, 0, 3, 
                  // Src: (X86Movsd:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src2) - Complexity = 3
                  // Dst: (VMOVSDrr:v4f32 VR128:v4f32:$src1, (EXTRACT_SUBREG:f64 VR128:v4f32:$src2, sub_sd:i32))
/*97442*/       0, /*End of Scope*/
              0, // EndSwitchType
/*97444*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 122,  TARGET_VAL(X86ISD::INSERTPS),// ->97570
/*97448*/   OPC_RecordChild0, // #0 = $src1
/*97449*/   OPC_Scope, 77, /*->97528*/ // 2 children in Scope
/*97451*/     OPC_MoveChild, 1,
/*97453*/     OPC_CheckOpcode, TARGET_VAL(ISD::SCALAR_TO_VECTOR),
/*97456*/     OPC_MoveChild, 0,
/*97458*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*97461*/     OPC_RecordMemRef,
/*97462*/     OPC_RecordNode, // #1 = 'ld' chained node
/*97463*/     OPC_CheckFoldableChainNode,
/*97464*/     OPC_RecordChild1, // #2 = $src2
/*97465*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*97467*/     OPC_CheckPredicate, 3, // Predicate_load
/*97469*/     OPC_CheckType, MVT::f32,
/*97471*/     OPC_MoveParent,
/*97472*/     OPC_MoveParent,
/*97473*/     OPC_RecordChild2, // #3 = $src3
/*97474*/     OPC_MoveChild, 2,
/*97476*/     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*97479*/     OPC_MoveParent,
/*97480*/     OPC_Scope, 22, /*->97504*/ // 2 children in Scope
/*97482*/       OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*97484*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*97487*/       OPC_EmitMergeInputChains1_1,
/*97488*/       OPC_EmitConvertToTarget, 3,
/*97490*/       OPC_MorphNodeTo, TARGET_VAL(X86::INSERTPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v4f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                // Src: (X86insrtps:v4f32 VR128:v4f32:$src1, (scalar_to_vector:v4f32 (ld:f32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:iPTR):$src3) - Complexity = 31
                // Dst: (INSERTPSrm:v4f32 VR128:v4f32:$src1, addr:iPTR:$src2, (imm:i32):$src3)
/*97504*/     /*Scope*/ 22, /*->97527*/
/*97505*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*97507*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*97510*/       OPC_EmitMergeInputChains1_1,
/*97511*/       OPC_EmitConvertToTarget, 3,
/*97513*/       OPC_MorphNodeTo, TARGET_VAL(X86::VINSERTPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v4f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                // Src: (X86insrtps:v4f32 VR128:v4f32:$src1, (scalar_to_vector:v4f32 (ld:f32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (imm:iPTR):$src3) - Complexity = 31
                // Dst: (VINSERTPSrm:v4f32 VR128:v4f32:$src1, addr:iPTR:$src2, (imm:i32):$src3)
/*97527*/     0, /*End of Scope*/
/*97528*/   /*Scope*/ 40, /*->97569*/
/*97529*/     OPC_RecordChild1, // #1 = $src2
/*97530*/     OPC_RecordChild2, // #2 = $src3
/*97531*/     OPC_MoveChild, 2,
/*97533*/     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*97536*/     OPC_MoveParent,
/*97537*/     OPC_Scope, 14, /*->97553*/ // 2 children in Scope
/*97539*/       OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*97541*/       OPC_EmitConvertToTarget, 2,
/*97543*/       OPC_MorphNodeTo, TARGET_VAL(X86::INSERTPSrr), 0,
                    1/*#VTs*/, MVT::v4f32, 3/*#Ops*/, 0, 1, 3, 
                // Src: (X86insrtps:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src2, (imm:iPTR):$src3) - Complexity = 6
                // Dst: (INSERTPSrr:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src2, (imm:i32):$src3)
/*97553*/     /*Scope*/ 14, /*->97568*/
/*97554*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*97556*/       OPC_EmitConvertToTarget, 2,
/*97558*/       OPC_MorphNodeTo, TARGET_VAL(X86::VINSERTPSrr), 0,
                    1/*#VTs*/, MVT::v4f32, 3/*#Ops*/, 0, 1, 3, 
                // Src: (X86insrtps:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src2, (imm:iPTR):$src3) - Complexity = 6
                // Dst: (VINSERTPSrr:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src2, (imm:i32):$src3)
/*97568*/     0, /*End of Scope*/
/*97569*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 32|128,1/*160*/,  TARGET_VAL(X86ISD::UNPCKLPD),// ->97734
/*97574*/   OPC_RecordChild0, // #0 = $src1
/*97575*/   OPC_Scope, 126, /*->97703*/ // 2 children in Scope
/*97577*/     OPC_MoveChild, 1,
/*97579*/     OPC_SwitchOpcode /*2 cases */, 61,  TARGET_VAL(ISD::SCALAR_TO_VECTOR),// ->97644
/*97583*/       OPC_MoveChild, 0,
/*97585*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*97588*/       OPC_RecordMemRef,
/*97589*/       OPC_RecordNode, // #1 = 'ld' chained node
/*97590*/       OPC_CheckFoldableChainNode,
/*97591*/       OPC_RecordChild1, // #2 = $src2
/*97592*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*97594*/       OPC_CheckPredicate, 3, // Predicate_load
/*97596*/       OPC_CheckType, MVT::f64,
/*97598*/       OPC_MoveParent,
/*97599*/       OPC_MoveParent,
/*97600*/       OPC_CheckType, MVT::v2f64,
/*97602*/       OPC_Scope, 19, /*->97623*/ // 2 children in Scope
/*97604*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*97606*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*97609*/         OPC_EmitMergeInputChains1_1,
/*97610*/         OPC_MorphNodeTo, TARGET_VAL(X86::VMOVHPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (X86Unpcklpd:v2f64 VR128:v2f64:$src1, (scalar_to_vector:v2f64 (ld:f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                  // Dst: (VMOVHPDrm:v2f64 VR128:v2f64:$src1, addr:iPTR:$src2)
/*97623*/       /*Scope*/ 19, /*->97643*/
/*97624*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*97626*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*97629*/         OPC_EmitMergeInputChains1_1,
/*97630*/         OPC_MorphNodeTo, TARGET_VAL(X86::MOVHPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (X86Unpcklpd:v2f64 VR128:v2f64:$src1, (scalar_to_vector:v2f64 (ld:f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                  // Dst: (MOVHPDrm:v2f64 VR128:v2f64:$src1, addr:iPTR:$src2)
/*97643*/       0, /*End of Scope*/
              /*SwitchOpcode*/ 55,  TARGET_VAL(ISD::LOAD),// ->97702
/*97647*/       OPC_RecordMemRef,
/*97648*/       OPC_RecordNode, // #1 = 'ld' chained node
/*97649*/       OPC_CheckFoldableChainNode,
/*97650*/       OPC_RecordChild1, // #2 = $src2
/*97651*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*97653*/       OPC_CheckPredicate, 3, // Predicate_load
/*97655*/       OPC_CheckPredicate, 23, // Predicate_memop
/*97657*/       OPC_MoveParent,
/*97658*/       OPC_CheckType, MVT::v2f64,
/*97660*/       OPC_Scope, 19, /*->97681*/ // 2 children in Scope
/*97662*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*97664*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*97667*/         OPC_EmitMergeInputChains1_1,
/*97668*/         OPC_MorphNodeTo, TARGET_VAL(X86::UNPCKLPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (X86Unpcklpd:v2f64 VR128:v2f64:$src1, (ld:v2f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                  // Dst: (UNPCKLPDrm:v2f64 VR128:v2f64:$src1, addr:iPTR:$src2)
/*97681*/       /*Scope*/ 19, /*->97701*/
/*97682*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*97684*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*97687*/         OPC_EmitMergeInputChains1_1,
/*97688*/         OPC_MorphNodeTo, TARGET_VAL(X86::VUNPCKLPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (X86Unpcklpd:v2f64 VR128:v2f64:$src1, (ld:v2f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                  // Dst: (VUNPCKLPDrm:v2f64 VR128:v2f64:$src1, addr:iPTR:$src2)
/*97701*/       0, /*End of Scope*/
              0, // EndSwitchOpcode
/*97703*/   /*Scope*/ 29, /*->97733*/
/*97704*/     OPC_RecordChild1, // #1 = $src2
/*97705*/     OPC_CheckType, MVT::v2f64,
/*97707*/     OPC_Scope, 11, /*->97720*/ // 2 children in Scope
/*97709*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*97711*/       OPC_MorphNodeTo, TARGET_VAL(X86::UNPCKLPDrr), 0,
                    1/*#VTs*/, MVT::v2f64, 2/*#Ops*/, 0, 1, 
                // Src: (X86Unpcklpd:v2f64 VR128:v2f64:$src1, VR128:v2f64:$src2) - Complexity = 3
                // Dst: (UNPCKLPDrr:v2f64 VR128:v2f64:$src1, VR128:v2f64:$src2)
/*97720*/     /*Scope*/ 11, /*->97732*/
/*97721*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*97723*/       OPC_MorphNodeTo, TARGET_VAL(X86::VUNPCKLPDrr), 0,
                    1/*#VTs*/, MVT::v2f64, 2/*#Ops*/, 0, 1, 
                // Src: (X86Unpcklpd:v2f64 VR128:v2f64:$src1, VR128:v2f64:$src2) - Complexity = 3
                // Dst: (VUNPCKLPDrr:v2f64 VR128:v2f64:$src1, VR128:v2f64:$src2)
/*97732*/     0, /*End of Scope*/
/*97733*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 67,  TARGET_VAL(X86ISD::MOVLHPD),// ->97804
/*97737*/   OPC_RecordChild0, // #0 = $src1
/*97738*/   OPC_MoveChild, 1,
/*97740*/   OPC_CheckOpcode, TARGET_VAL(ISD::SCALAR_TO_VECTOR),
/*97743*/   OPC_MoveChild, 0,
/*97745*/   OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*97748*/   OPC_RecordMemRef,
/*97749*/   OPC_RecordNode,   // #1 = 'ld' chained node
/*97750*/   OPC_CheckFoldableChainNode,
/*97751*/   OPC_RecordChild1, // #2 = $src2
/*97752*/   OPC_CheckPredicate, 2, // Predicate_unindexedload
/*97754*/   OPC_CheckPredicate, 3, // Predicate_load
/*97756*/   OPC_CheckType, MVT::f64,
/*97758*/   OPC_MoveParent,
/*97759*/   OPC_MoveParent,
/*97760*/   OPC_CheckType, MVT::v2f64,
/*97762*/   OPC_Scope, 19, /*->97783*/ // 2 children in Scope
/*97764*/     OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*97766*/     OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*97769*/     OPC_EmitMergeInputChains1_1,
/*97770*/     OPC_MorphNodeTo, TARGET_VAL(X86::VMOVHPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                  1/*#VTs*/, MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
              // Src: (X86Movlhpd:v2f64 VR128:v2f64:$src1, (scalar_to_vector:v2f64 (ld:f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
              // Dst: (VMOVHPDrm:v2f64 VR128:v2f64:$src1, addr:iPTR:$src2)
/*97783*/   /*Scope*/ 19, /*->97803*/
/*97784*/     OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*97786*/     OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*97789*/     OPC_EmitMergeInputChains1_1,
/*97790*/     OPC_MorphNodeTo, TARGET_VAL(X86::MOVHPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                  1/*#VTs*/, MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
              // Src: (X86Movlhpd:v2f64 VR128:v2f64:$src1, (scalar_to_vector:v2f64 (ld:f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
              // Dst: (MOVHPDrm:v2f64 VR128:v2f64:$src1, addr:iPTR:$src2)
/*97803*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 94,  TARGET_VAL(X86ISD::UNPCKLPS),// ->97901
/*97807*/   OPC_RecordChild0, // #0 = $src1
/*97808*/   OPC_Scope, 60, /*->97870*/ // 2 children in Scope
/*97810*/     OPC_MoveChild, 1,
/*97812*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*97815*/     OPC_RecordMemRef,
/*97816*/     OPC_RecordNode, // #1 = 'ld' chained node
/*97817*/     OPC_CheckFoldableChainNode,
/*97818*/     OPC_RecordChild1, // #2 = $src2
/*97819*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*97821*/     OPC_CheckPredicate, 3, // Predicate_load
/*97823*/     OPC_CheckPredicate, 23, // Predicate_memop
/*97825*/     OPC_MoveParent,
/*97826*/     OPC_CheckType, MVT::v4f32,
/*97828*/     OPC_Scope, 19, /*->97849*/ // 2 children in Scope
/*97830*/       OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*97832*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*97835*/       OPC_EmitMergeInputChains1_1,
/*97836*/       OPC_MorphNodeTo, TARGET_VAL(X86::UNPCKLPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (X86Unpcklps:v4f32 VR128:v4f32:$src1, (ld:v4f32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                // Dst: (UNPCKLPSrm:v4f32 VR128:v4f32:$src1, addr:iPTR:$src2)
/*97849*/     /*Scope*/ 19, /*->97869*/
/*97850*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*97852*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*97855*/       OPC_EmitMergeInputChains1_1,
/*97856*/       OPC_MorphNodeTo, TARGET_VAL(X86::VUNPCKLPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (X86Unpcklps:v4f32 VR128:v4f32:$src1, (ld:v4f32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                // Dst: (VUNPCKLPSrm:v4f32 VR128:v4f32:$src1, addr:iPTR:$src2)
/*97869*/     0, /*End of Scope*/
/*97870*/   /*Scope*/ 29, /*->97900*/
/*97871*/     OPC_RecordChild1, // #1 = $src2
/*97872*/     OPC_CheckType, MVT::v4f32,
/*97874*/     OPC_Scope, 11, /*->97887*/ // 2 children in Scope
/*97876*/       OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*97878*/       OPC_MorphNodeTo, TARGET_VAL(X86::UNPCKLPSrr), 0,
                    1/*#VTs*/, MVT::v4f32, 2/*#Ops*/, 0, 1, 
                // Src: (X86Unpcklps:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src2) - Complexity = 3
                // Dst: (UNPCKLPSrr:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src2)
/*97887*/     /*Scope*/ 11, /*->97899*/
/*97888*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*97890*/       OPC_MorphNodeTo, TARGET_VAL(X86::VUNPCKLPSrr), 0,
                    1/*#VTs*/, MVT::v4f32, 2/*#Ops*/, 0, 1, 
                // Src: (X86Unpcklps:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src2) - Complexity = 3
                // Dst: (VUNPCKLPSrr:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src2)
/*97899*/     0, /*End of Scope*/
/*97900*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 94,  TARGET_VAL(X86ISD::UNPCKHPS),// ->97998
/*97904*/   OPC_RecordChild0, // #0 = $src1
/*97905*/   OPC_Scope, 60, /*->97967*/ // 2 children in Scope
/*97907*/     OPC_MoveChild, 1,
/*97909*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*97912*/     OPC_RecordMemRef,
/*97913*/     OPC_RecordNode, // #1 = 'ld' chained node
/*97914*/     OPC_CheckFoldableChainNode,
/*97915*/     OPC_RecordChild1, // #2 = $src2
/*97916*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*97918*/     OPC_CheckPredicate, 3, // Predicate_load
/*97920*/     OPC_CheckPredicate, 23, // Predicate_memop
/*97922*/     OPC_MoveParent,
/*97923*/     OPC_CheckType, MVT::v4f32,
/*97925*/     OPC_Scope, 19, /*->97946*/ // 2 children in Scope
/*97927*/       OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*97929*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*97932*/       OPC_EmitMergeInputChains1_1,
/*97933*/       OPC_MorphNodeTo, TARGET_VAL(X86::UNPCKHPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (X86Unpckhps:v4f32 VR128:v4f32:$src1, (ld:v4f32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                // Dst: (UNPCKHPSrm:v4f32 VR128:v4f32:$src1, addr:iPTR:$src2)
/*97946*/     /*Scope*/ 19, /*->97966*/
/*97947*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*97949*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*97952*/       OPC_EmitMergeInputChains1_1,
/*97953*/       OPC_MorphNodeTo, TARGET_VAL(X86::VUNPCKHPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (X86Unpckhps:v4f32 VR128:v4f32:$src1, (ld:v4f32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                // Dst: (VUNPCKHPSrm:v4f32 VR128:v4f32:$src1, addr:iPTR:$src2)
/*97966*/     0, /*End of Scope*/
/*97967*/   /*Scope*/ 29, /*->97997*/
/*97968*/     OPC_RecordChild1, // #1 = $src2
/*97969*/     OPC_CheckType, MVT::v4f32,
/*97971*/     OPC_Scope, 11, /*->97984*/ // 2 children in Scope
/*97973*/       OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*97975*/       OPC_MorphNodeTo, TARGET_VAL(X86::UNPCKHPSrr), 0,
                    1/*#VTs*/, MVT::v4f32, 2/*#Ops*/, 0, 1, 
                // Src: (X86Unpckhps:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src2) - Complexity = 3
                // Dst: (UNPCKHPSrr:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src2)
/*97984*/     /*Scope*/ 11, /*->97996*/
/*97985*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*97987*/       OPC_MorphNodeTo, TARGET_VAL(X86::VUNPCKHPSrr), 0,
                    1/*#VTs*/, MVT::v4f32, 2/*#Ops*/, 0, 1, 
                // Src: (X86Unpckhps:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src2) - Complexity = 3
                // Dst: (VUNPCKHPSrr:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src2)
/*97996*/     0, /*End of Scope*/
/*97997*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 94,  TARGET_VAL(X86ISD::UNPCKHPD),// ->98095
/*98001*/   OPC_RecordChild0, // #0 = $src1
/*98002*/   OPC_Scope, 60, /*->98064*/ // 2 children in Scope
/*98004*/     OPC_MoveChild, 1,
/*98006*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*98009*/     OPC_RecordMemRef,
/*98010*/     OPC_RecordNode, // #1 = 'ld' chained node
/*98011*/     OPC_CheckFoldableChainNode,
/*98012*/     OPC_RecordChild1, // #2 = $src2
/*98013*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*98015*/     OPC_CheckPredicate, 3, // Predicate_load
/*98017*/     OPC_CheckPredicate, 23, // Predicate_memop
/*98019*/     OPC_MoveParent,
/*98020*/     OPC_CheckType, MVT::v2f64,
/*98022*/     OPC_Scope, 19, /*->98043*/ // 2 children in Scope
/*98024*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*98026*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*98029*/       OPC_EmitMergeInputChains1_1,
/*98030*/       OPC_MorphNodeTo, TARGET_VAL(X86::UNPCKHPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (X86Unpckhpd:v2f64 VR128:v2f64:$src1, (ld:v2f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                // Dst: (UNPCKHPDrm:v2f64 VR128:v2f64:$src1, addr:iPTR:$src2)
/*98043*/     /*Scope*/ 19, /*->98063*/
/*98044*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*98046*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*98049*/       OPC_EmitMergeInputChains1_1,
/*98050*/       OPC_MorphNodeTo, TARGET_VAL(X86::VUNPCKHPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (X86Unpckhpd:v2f64 VR128:v2f64:$src1, (ld:v2f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                // Dst: (VUNPCKHPDrm:v2f64 VR128:v2f64:$src1, addr:iPTR:$src2)
/*98063*/     0, /*End of Scope*/
/*98064*/   /*Scope*/ 29, /*->98094*/
/*98065*/     OPC_RecordChild1, // #1 = $src2
/*98066*/     OPC_CheckType, MVT::v2f64,
/*98068*/     OPC_Scope, 11, /*->98081*/ // 2 children in Scope
/*98070*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*98072*/       OPC_MorphNodeTo, TARGET_VAL(X86::UNPCKHPDrr), 0,
                    1/*#VTs*/, MVT::v2f64, 2/*#Ops*/, 0, 1, 
                // Src: (X86Unpckhpd:v2f64 VR128:v2f64:$src1, VR128:v2f64:$src2) - Complexity = 3
                // Dst: (UNPCKHPDrr:v2f64 VR128:v2f64:$src1, VR128:v2f64:$src2)
/*98081*/     /*Scope*/ 11, /*->98093*/
/*98082*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*98084*/       OPC_MorphNodeTo, TARGET_VAL(X86::VUNPCKHPDrr), 0,
                    1/*#VTs*/, MVT::v2f64, 2/*#Ops*/, 0, 1, 
                // Src: (X86Unpckhpd:v2f64 VR128:v2f64:$src1, VR128:v2f64:$src2) - Complexity = 3
                // Dst: (VUNPCKHPDrr:v2f64 VR128:v2f64:$src1, VR128:v2f64:$src2)
/*98093*/     0, /*End of Scope*/
/*98094*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 111|128,1/*239*/,  TARGET_VAL(X86ISD::FHADD),// ->98338
/*98099*/   OPC_RecordChild0, // #0 = $src1
/*98100*/   OPC_Scope, 20|128,1/*148*/, /*->98251*/ // 2 children in Scope
/*98103*/     OPC_MoveChild, 1,
/*98105*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*98108*/     OPC_RecordMemRef,
/*98109*/     OPC_RecordNode, // #1 = 'ld' chained node
/*98110*/     OPC_CheckFoldableChainNode,
/*98111*/     OPC_RecordChild1, // #2 = $src2
/*98112*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*98114*/     OPC_CheckPredicate, 3, // Predicate_load
/*98116*/     OPC_CheckPredicate, 23, // Predicate_memop
/*98118*/     OPC_MoveParent,
/*98119*/     OPC_SwitchType /*4 cases */, 42,  MVT::v4f32,// ->98164
/*98122*/       OPC_Scope, 19, /*->98143*/ // 2 children in Scope
/*98124*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*98126*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*98129*/         OPC_EmitMergeInputChains1_1,
/*98130*/         OPC_MorphNodeTo, TARGET_VAL(X86::VHADDPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (X86fhadd:v4f32 VR128:v4f32:$src1, (ld:v4f32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                  // Dst: (VHADDPSrm:v4f32 VR128:v4f32:$src1, addr:iPTR:$src2)
/*98143*/       /*Scope*/ 19, /*->98163*/
/*98144*/         OPC_CheckPatternPredicate, 16, // (Subtarget->hasSSE3())
/*98146*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*98149*/         OPC_EmitMergeInputChains1_1,
/*98150*/         OPC_MorphNodeTo, TARGET_VAL(X86::HADDPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (X86fhadd:v4f32 VR128:v4f32:$src1, (ld:v4f32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                  // Dst: (HADDPSrm:v4f32 VR128:v4f32:$src1, addr:iPTR:$src2)
/*98163*/       0, /*End of Scope*/
              /*SwitchType*/ 42,  MVT::v2f64,// ->98208
/*98166*/       OPC_Scope, 19, /*->98187*/ // 2 children in Scope
/*98168*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*98170*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*98173*/         OPC_EmitMergeInputChains1_1,
/*98174*/         OPC_MorphNodeTo, TARGET_VAL(X86::VHADDPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (X86fhadd:v2f64 VR128:v2f64:$src1, (ld:v2f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                  // Dst: (VHADDPDrm:v2f64 VR128:v2f64:$src1, addr:iPTR:$src2)
/*98187*/       /*Scope*/ 19, /*->98207*/
/*98188*/         OPC_CheckPatternPredicate, 16, // (Subtarget->hasSSE3())
/*98190*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*98193*/         OPC_EmitMergeInputChains1_1,
/*98194*/         OPC_MorphNodeTo, TARGET_VAL(X86::HADDPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (X86fhadd:v2f64 VR128:v2f64:$src1, (ld:v2f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                  // Dst: (HADDPDrm:v2f64 VR128:v2f64:$src1, addr:iPTR:$src2)
/*98207*/       0, /*End of Scope*/
              /*SwitchType*/ 19,  MVT::v8f32,// ->98229
/*98210*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*98212*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*98215*/       OPC_EmitMergeInputChains1_1,
/*98216*/       OPC_MorphNodeTo, TARGET_VAL(X86::VHADDPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v8f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (X86fhadd:v8f32 VR256:v8f32:$src1, (ld:v8f32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                // Dst: (VHADDPSYrm:v8f32 VR256:v8f32:$src1, addr:iPTR:$src2)
              /*SwitchType*/ 19,  MVT::v4f64,// ->98250
/*98231*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*98233*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*98236*/       OPC_EmitMergeInputChains1_1,
/*98237*/       OPC_MorphNodeTo, TARGET_VAL(X86::VHADDPDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v4f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (X86fhadd:v4f64 VR256:v4f64:$src1, (ld:v4f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                // Dst: (VHADDPDYrm:v4f64 VR256:v4f64:$src1, addr:iPTR:$src2)
              0, // EndSwitchType
/*98251*/   /*Scope*/ 85, /*->98337*/
/*98252*/     OPC_RecordChild1, // #1 = $src2
/*98253*/     OPC_SwitchType /*4 cases */, 26,  MVT::v4f32,// ->98282
/*98256*/       OPC_Scope, 11, /*->98269*/ // 2 children in Scope
/*98258*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*98260*/         OPC_MorphNodeTo, TARGET_VAL(X86::VHADDPSrr), 0,
                      1/*#VTs*/, MVT::v4f32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86fhadd:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src2) - Complexity = 3
                  // Dst: (VHADDPSrr:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src2)
/*98269*/       /*Scope*/ 11, /*->98281*/
/*98270*/         OPC_CheckPatternPredicate, 16, // (Subtarget->hasSSE3())
/*98272*/         OPC_MorphNodeTo, TARGET_VAL(X86::HADDPSrr), 0,
                      1/*#VTs*/, MVT::v4f32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86fhadd:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src2) - Complexity = 3
                  // Dst: (HADDPSrr:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src2)
/*98281*/       0, /*End of Scope*/
              /*SwitchType*/ 26,  MVT::v2f64,// ->98310
/*98284*/       OPC_Scope, 11, /*->98297*/ // 2 children in Scope
/*98286*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*98288*/         OPC_MorphNodeTo, TARGET_VAL(X86::VHADDPDrr), 0,
                      1/*#VTs*/, MVT::v2f64, 2/*#Ops*/, 0, 1, 
                  // Src: (X86fhadd:v2f64 VR128:v2f64:$src1, VR128:v2f64:$src2) - Complexity = 3
                  // Dst: (VHADDPDrr:v2f64 VR128:v2f64:$src1, VR128:v2f64:$src2)
/*98297*/       /*Scope*/ 11, /*->98309*/
/*98298*/         OPC_CheckPatternPredicate, 16, // (Subtarget->hasSSE3())
/*98300*/         OPC_MorphNodeTo, TARGET_VAL(X86::HADDPDrr), 0,
                      1/*#VTs*/, MVT::v2f64, 2/*#Ops*/, 0, 1, 
                  // Src: (X86fhadd:v2f64 VR128:v2f64:$src1, VR128:v2f64:$src2) - Complexity = 3
                  // Dst: (HADDPDrr:v2f64 VR128:v2f64:$src1, VR128:v2f64:$src2)
/*98309*/       0, /*End of Scope*/
              /*SwitchType*/ 11,  MVT::v8f32,// ->98323
/*98312*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*98314*/       OPC_MorphNodeTo, TARGET_VAL(X86::VHADDPSYrr), 0,
                    1/*#VTs*/, MVT::v8f32, 2/*#Ops*/, 0, 1, 
                // Src: (X86fhadd:v8f32 VR256:v8f32:$src1, VR256:v8f32:$src2) - Complexity = 3
                // Dst: (VHADDPSYrr:v8f32 VR256:v8f32:$src1, VR256:v8f32:$src2)
              /*SwitchType*/ 11,  MVT::v4f64,// ->98336
/*98325*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*98327*/       OPC_MorphNodeTo, TARGET_VAL(X86::VHADDPDYrr), 0,
                    1/*#VTs*/, MVT::v4f64, 2/*#Ops*/, 0, 1, 
                // Src: (X86fhadd:v4f64 VR256:v4f64:$src1, VR256:v4f64:$src2) - Complexity = 3
                // Dst: (VHADDPDYrr:v4f64 VR256:v4f64:$src1, VR256:v4f64:$src2)
              0, // EndSwitchType
/*98337*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 111|128,1/*239*/,  TARGET_VAL(X86ISD::FHSUB),// ->98581
/*98342*/   OPC_RecordChild0, // #0 = $src1
/*98343*/   OPC_Scope, 20|128,1/*148*/, /*->98494*/ // 2 children in Scope
/*98346*/     OPC_MoveChild, 1,
/*98348*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*98351*/     OPC_RecordMemRef,
/*98352*/     OPC_RecordNode, // #1 = 'ld' chained node
/*98353*/     OPC_CheckFoldableChainNode,
/*98354*/     OPC_RecordChild1, // #2 = $src2
/*98355*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*98357*/     OPC_CheckPredicate, 3, // Predicate_load
/*98359*/     OPC_CheckPredicate, 23, // Predicate_memop
/*98361*/     OPC_MoveParent,
/*98362*/     OPC_SwitchType /*4 cases */, 42,  MVT::v4f32,// ->98407
/*98365*/       OPC_Scope, 19, /*->98386*/ // 2 children in Scope
/*98367*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*98369*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*98372*/         OPC_EmitMergeInputChains1_1,
/*98373*/         OPC_MorphNodeTo, TARGET_VAL(X86::VHSUBPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (X86fhsub:v4f32 VR128:v4f32:$src1, (ld:v4f32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                  // Dst: (VHSUBPSrm:v4f32 VR128:v4f32:$src1, addr:iPTR:$src2)
/*98386*/       /*Scope*/ 19, /*->98406*/
/*98387*/         OPC_CheckPatternPredicate, 16, // (Subtarget->hasSSE3())
/*98389*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*98392*/         OPC_EmitMergeInputChains1_1,
/*98393*/         OPC_MorphNodeTo, TARGET_VAL(X86::HSUBPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (X86fhsub:v4f32 VR128:v4f32:$src1, (ld:v4f32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                  // Dst: (HSUBPSrm:v4f32 VR128:v4f32:$src1, addr:iPTR:$src2)
/*98406*/       0, /*End of Scope*/
              /*SwitchType*/ 42,  MVT::v2f64,// ->98451
/*98409*/       OPC_Scope, 19, /*->98430*/ // 2 children in Scope
/*98411*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*98413*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*98416*/         OPC_EmitMergeInputChains1_1,
/*98417*/         OPC_MorphNodeTo, TARGET_VAL(X86::VHSUBPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (X86fhsub:v2f64 VR128:v2f64:$src1, (ld:v2f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                  // Dst: (VHSUBPDrm:v2f64 VR128:v2f64:$src1, addr:iPTR:$src2)
/*98430*/       /*Scope*/ 19, /*->98450*/
/*98431*/         OPC_CheckPatternPredicate, 16, // (Subtarget->hasSSE3())
/*98433*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*98436*/         OPC_EmitMergeInputChains1_1,
/*98437*/         OPC_MorphNodeTo, TARGET_VAL(X86::HSUBPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (X86fhsub:v2f64 VR128:v2f64:$src1, (ld:v2f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                  // Dst: (HSUBPDrm:v2f64 VR128:v2f64:$src1, addr:iPTR:$src2)
/*98450*/       0, /*End of Scope*/
              /*SwitchType*/ 19,  MVT::v8f32,// ->98472
/*98453*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*98455*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*98458*/       OPC_EmitMergeInputChains1_1,
/*98459*/       OPC_MorphNodeTo, TARGET_VAL(X86::VHSUBPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v8f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (X86fhsub:v8f32 VR256:v8f32:$src1, (ld:v8f32 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                // Dst: (VHSUBPSYrm:v8f32 VR256:v8f32:$src1, addr:iPTR:$src2)
              /*SwitchType*/ 19,  MVT::v4f64,// ->98493
/*98474*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*98476*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*98479*/       OPC_EmitMergeInputChains1_1,
/*98480*/       OPC_MorphNodeTo, TARGET_VAL(X86::VHSUBPDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::v4f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                // Src: (X86fhsub:v4f64 VR256:v4f64:$src1, (ld:v4f64 addr:iPTR:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                // Dst: (VHSUBPDYrm:v4f64 VR256:v4f64:$src1, addr:iPTR:$src2)
              0, // EndSwitchType
/*98494*/   /*Scope*/ 85, /*->98580*/
/*98495*/     OPC_RecordChild1, // #1 = $src2
/*98496*/     OPC_SwitchType /*4 cases */, 26,  MVT::v4f32,// ->98525
/*98499*/       OPC_Scope, 11, /*->98512*/ // 2 children in Scope
/*98501*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*98503*/         OPC_MorphNodeTo, TARGET_VAL(X86::VHSUBPSrr), 0,
                      1/*#VTs*/, MVT::v4f32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86fhsub:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src2) - Complexity = 3
                  // Dst: (VHSUBPSrr:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src2)
/*98512*/       /*Scope*/ 11, /*->98524*/
/*98513*/         OPC_CheckPatternPredicate, 16, // (Subtarget->hasSSE3())
/*98515*/         OPC_MorphNodeTo, TARGET_VAL(X86::HSUBPSrr), 0,
                      1/*#VTs*/, MVT::v4f32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86fhsub:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src2) - Complexity = 3
                  // Dst: (HSUBPSrr:v4f32 VR128:v4f32:$src1, VR128:v4f32:$src2)
/*98524*/       0, /*End of Scope*/
              /*SwitchType*/ 26,  MVT::v2f64,// ->98553
/*98527*/       OPC_Scope, 11, /*->98540*/ // 2 children in Scope
/*98529*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*98531*/         OPC_MorphNodeTo, TARGET_VAL(X86::VHSUBPDrr), 0,
                      1/*#VTs*/, MVT::v2f64, 2/*#Ops*/, 0, 1, 
                  // Src: (X86fhsub:v2f64 VR128:v2f64:$src1, VR128:v2f64:$src2) - Complexity = 3
                  // Dst: (VHSUBPDrr:v2f64 VR128:v2f64:$src1, VR128:v2f64:$src2)
/*98540*/       /*Scope*/ 11, /*->98552*/
/*98541*/         OPC_CheckPatternPredicate, 16, // (Subtarget->hasSSE3())
/*98543*/         OPC_MorphNodeTo, TARGET_VAL(X86::HSUBPDrr), 0,
                      1/*#VTs*/, MVT::v2f64, 2/*#Ops*/, 0, 1, 
                  // Src: (X86fhsub:v2f64 VR128:v2f64:$src1, VR128:v2f64:$src2) - Complexity = 3
                  // Dst: (HSUBPDrr:v2f64 VR128:v2f64:$src1, VR128:v2f64:$src2)
/*98552*/       0, /*End of Scope*/
              /*SwitchType*/ 11,  MVT::v8f32,// ->98566
/*98555*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*98557*/       OPC_MorphNodeTo, TARGET_VAL(X86::VHSUBPSYrr), 0,
                    1/*#VTs*/, MVT::v8f32, 2/*#Ops*/, 0, 1, 
                // Src: (X86fhsub:v8f32 VR256:v8f32:$src1, VR256:v8f32:$src2) - Complexity = 3
                // Dst: (VHSUBPSYrr:v8f32 VR256:v8f32:$src1, VR256:v8f32:$src2)
              /*SwitchType*/ 11,  MVT::v4f64,// ->98579
/*98568*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*98570*/       OPC_MorphNodeTo, TARGET_VAL(X86::VHSUBPDYrr), 0,
                    1/*#VTs*/, MVT::v4f64, 2/*#Ops*/, 0, 1, 
                // Src: (X86fhsub:v4f64 VR256:v4f64:$src1, VR256:v4f64:$src2) - Complexity = 3
                // Dst: (VHSUBPDYrr:v4f64 VR256:v4f64:$src1, VR256:v4f64:$src2)
              0, // EndSwitchType
/*98580*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 50,  TARGET_VAL(X86ISD::FSRL),// ->98634
/*98584*/   OPC_RecordChild0, // #0 = $src1
/*98585*/   OPC_RecordChild1, // #1 = $src2
/*98586*/   OPC_MoveChild, 1,
/*98588*/   OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*98591*/   OPC_CheckPredicate, 9, // Predicate_i32immSExt8
/*98593*/   OPC_CheckType, MVT::i32,
/*98595*/   OPC_MoveParent,
/*98596*/   OPC_CheckType, MVT::v2f64,
/*98598*/   OPC_Scope, 16, /*->98616*/ // 2 children in Scope
/*98600*/     OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*98602*/     OPC_EmitConvertToTarget, 1,
/*98604*/     OPC_EmitNodeXForm, 0, 2, // BYTE_imm
/*98607*/     OPC_MorphNodeTo, TARGET_VAL(X86::VPSRLDQri), 0,
                  1/*#VTs*/, MVT::v2f64, 2/*#Ops*/, 0, 3, 
              // Src: (X86fsrl:v2f64 VR128:v2f64:$src1, (imm:i32)<<P:Predicate_i32immSExt8>>:$src2) - Complexity = 7
              // Dst: (VPSRLDQri:v2f64 VR128:v2f64:$src1, (BYTE_imm:i32 (imm:i32):$src2))
/*98616*/   /*Scope*/ 16, /*->98633*/
/*98617*/     OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*98619*/     OPC_EmitConvertToTarget, 1,
/*98621*/     OPC_EmitNodeXForm, 0, 2, // BYTE_imm
/*98624*/     OPC_MorphNodeTo, TARGET_VAL(X86::PSRLDQri), 0,
                  1/*#VTs*/, MVT::v2f64, 2/*#Ops*/, 0, 3, 
              // Src: (X86fsrl:v2f64 VR128:v2f64:$src1, (imm:i32)<<P:Predicate_i32immSExt8>>:$src2) - Complexity = 7
              // Dst: (PSRLDQri:v2f64 VR128:v2f64:$src1, (BYTE_imm:i32 (imm:i32):$src2))
/*98633*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 34,  TARGET_VAL(ISD::CALLSEQ_START),// ->98671
/*98637*/   OPC_RecordNode,   // #0 = 'X86callseq_start' chained node
/*98638*/   OPC_RecordChild1, // #1 = $amt
/*98639*/   OPC_MoveChild, 1,
/*98641*/   OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*98644*/   OPC_MoveParent,
/*98645*/   OPC_Scope, 11, /*->98658*/ // 2 children in Scope
/*98647*/     OPC_CheckPatternPredicate, 3, // (!Subtarget->is64Bit())
/*98649*/     OPC_EmitMergeInputChains1_0,
/*98650*/     OPC_MorphNodeTo, TARGET_VAL(X86::ADJCALLSTACKDOWN32), 0|OPFL_Chain|OPFL_GlueOutput,
                  1/*#VTs*/, MVT::i32, 1/*#Ops*/, 1, 
              // Src: (X86callseq_start (timm:i32):$amt) - Complexity = 6
              // Dst: (ADJCALLSTACKDOWN32:i32 (timm:i32):$amt)
/*98658*/   /*Scope*/ 11, /*->98670*/
/*98659*/     OPC_CheckPatternPredicate, 4, // (Subtarget->is64Bit())
/*98661*/     OPC_EmitMergeInputChains1_0,
/*98662*/     OPC_MorphNodeTo, TARGET_VAL(X86::ADJCALLSTACKDOWN64), 0|OPFL_Chain|OPFL_GlueOutput,
                  1/*#VTs*/, MVT::i64, 1/*#Ops*/, 1, 
              // Src: (X86callseq_start (timm:i32):$amt) - Complexity = 6
              // Dst: (ADJCALLSTACKDOWN64:i64 (timm:i32):$amt)
/*98670*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 16,  TARGET_VAL(ISD::BR),// ->98690
/*98674*/   OPC_RecordNode,   // #0 = 'br' chained node
/*98675*/   OPC_RecordChild1, // #1 = $dst
/*98676*/   OPC_MoveChild, 1,
/*98678*/   OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
/*98681*/   OPC_MoveParent,
/*98682*/   OPC_EmitMergeInputChains1_0,
/*98683*/   OPC_MorphNodeTo, TARGET_VAL(X86::JMP_4), 0|OPFL_Chain,
                0/*#VTs*/, 1/*#Ops*/, 1, 
            // Src: (br (bb:Other):$dst) - Complexity = 3
            // Dst: (JMP_4 (bb:Other):$dst)
          /*SwitchOpcode*/ 8,  TARGET_VAL(X86ISD::SFENCE),// ->98701
/*98693*/   OPC_RecordNode,   // #0 = 'X86SFence' chained node
/*98694*/   OPC_EmitMergeInputChains1_0,
/*98695*/   OPC_MorphNodeTo, TARGET_VAL(X86::SFENCE), 0|OPFL_Chain,
                0/*#VTs*/, 0/*#Ops*/, 
            // Src: (X86SFence) - Complexity = 3
            // Dst: (SFENCE)
          /*SwitchOpcode*/ 8,  TARGET_VAL(X86ISD::LFENCE),// ->98712
/*98704*/   OPC_RecordNode,   // #0 = 'X86LFence' chained node
/*98705*/   OPC_EmitMergeInputChains1_0,
/*98706*/   OPC_MorphNodeTo, TARGET_VAL(X86::LFENCE), 0|OPFL_Chain,
                0/*#VTs*/, 0/*#Ops*/, 
            // Src: (X86LFence) - Complexity = 3
            // Dst: (LFENCE)
          /*SwitchOpcode*/ 8,  TARGET_VAL(X86ISD::MFENCE),// ->98723
/*98715*/   OPC_RecordNode,   // #0 = 'X86MFence' chained node
/*98716*/   OPC_EmitMergeInputChains1_0,
/*98717*/   OPC_MorphNodeTo, TARGET_VAL(X86::MFENCE), 0|OPFL_Chain,
                0/*#VTs*/, 0/*#Ops*/, 
            // Src: (X86MFence) - Complexity = 3
            // Dst: (MFENCE)
          /*SwitchOpcode*/ 9,  TARGET_VAL(X86ISD::RDTSC_DAG),// ->98735
/*98726*/   OPC_RecordNode,   // #0 = 'X86rdtsc' chained node
/*98727*/   OPC_EmitMergeInputChains1_0,
/*98728*/   OPC_MorphNodeTo, TARGET_VAL(X86::RDTSC), 0|OPFL_Chain|OPFL_GlueOutput,
                1/*#VTs*/, MVT::i64, 0/*#Ops*/, 
            // Src: (X86rdtsc) - Complexity = 3
            // Dst: (RDTSC:i64)
          /*SwitchOpcode*/ 8,  TARGET_VAL(ISD::TRAP),// ->98746
/*98738*/   OPC_RecordNode,   // #0 = 'trap' chained node
/*98739*/   OPC_EmitMergeInputChains1_0,
/*98740*/   OPC_MorphNodeTo, TARGET_VAL(X86::TRAP), 0|OPFL_Chain,
                0/*#VTs*/, 0/*#Ops*/, 
            // Src: (trap) - Complexity = 3
            // Dst: (TRAP)
          /*SwitchOpcode*/ 26,  TARGET_VAL(X86ISD::EH_RETURN),// ->98775
/*98749*/   OPC_RecordNode,   // #0 = 'X86ehret' chained node
/*98750*/   OPC_RecordChild1, // #1 = $addr
/*98751*/   OPC_Scope, 10, /*->98763*/ // 2 children in Scope
/*98753*/     OPC_CheckChild1Type, MVT::i32,
/*98755*/     OPC_EmitMergeInputChains1_0,
/*98756*/     OPC_MorphNodeTo, TARGET_VAL(X86::EH_RETURN), 0|OPFL_Chain,
                  0/*#VTs*/, 1/*#Ops*/, 1, 
              // Src: (X86ehret GR32:i32:$addr) - Complexity = 3
              // Dst: (EH_RETURN GR32:i32:$addr)
/*98763*/   /*Scope*/ 10, /*->98774*/
/*98764*/     OPC_CheckChild1Type, MVT::i64,
/*98766*/     OPC_EmitMergeInputChains1_0,
/*98767*/     OPC_MorphNodeTo, TARGET_VAL(X86::EH_RETURN64), 0|OPFL_Chain,
                  0/*#VTs*/, 1/*#Ops*/, 1, 
              // Src: (X86ehret GR64:i64:$addr) - Complexity = 3
              // Dst: (EH_RETURN64 GR64:i64:$addr)
/*98774*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 54,  TARGET_VAL(X86ISD::REP_MOVS),// ->98832
/*98778*/   OPC_RecordNode,   // #0 = 'X86rep_movs' chained node
/*98779*/   OPC_CaptureGlueInput,
/*98780*/   OPC_MoveChild, 1,
/*98782*/   OPC_Scope, 11, /*->98795*/ // 4 children in Scope
/*98784*/     OPC_CheckValueType, MVT::i8,
/*98786*/     OPC_MoveParent,
/*98787*/     OPC_EmitMergeInputChains1_0,
/*98788*/     OPC_MorphNodeTo, TARGET_VAL(X86::REP_MOVSB), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
                  1/*#VTs*/, MVT::i32, 0/*#Ops*/, 
              // Src: (X86rep_movs i8:Other) - Complexity = 3
              // Dst: (REP_MOVSB:i32)
/*98795*/   /*Scope*/ 11, /*->98807*/
/*98796*/     OPC_CheckValueType, MVT::i16,
/*98798*/     OPC_MoveParent,
/*98799*/     OPC_EmitMergeInputChains1_0,
/*98800*/     OPC_MorphNodeTo, TARGET_VAL(X86::REP_MOVSW), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
                  1/*#VTs*/, MVT::i32, 0/*#Ops*/, 
              // Src: (X86rep_movs i16:Other) - Complexity = 3
              // Dst: (REP_MOVSW:i32)
/*98807*/   /*Scope*/ 11, /*->98819*/
/*98808*/     OPC_CheckValueType, MVT::i32,
/*98810*/     OPC_MoveParent,
/*98811*/     OPC_EmitMergeInputChains1_0,
/*98812*/     OPC_MorphNodeTo, TARGET_VAL(X86::REP_MOVSD), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
                  1/*#VTs*/, MVT::i32, 0/*#Ops*/, 
              // Src: (X86rep_movs i32:Other) - Complexity = 3
              // Dst: (REP_MOVSD:i32)
/*98819*/   /*Scope*/ 11, /*->98831*/
/*98820*/     OPC_CheckValueType, MVT::i64,
/*98822*/     OPC_MoveParent,
/*98823*/     OPC_EmitMergeInputChains1_0,
/*98824*/     OPC_MorphNodeTo, TARGET_VAL(X86::REP_MOVSQ), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
                  1/*#VTs*/, MVT::i64, 0/*#Ops*/, 
              // Src: (X86rep_movs i64:Other) - Complexity = 3
              // Dst: (REP_MOVSQ:i64)
/*98831*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 54,  TARGET_VAL(X86ISD::REP_STOS),// ->98889
/*98835*/   OPC_RecordNode,   // #0 = 'X86rep_stos' chained node
/*98836*/   OPC_CaptureGlueInput,
/*98837*/   OPC_MoveChild, 1,
/*98839*/   OPC_Scope, 11, /*->98852*/ // 4 children in Scope
/*98841*/     OPC_CheckValueType, MVT::i8,
/*98843*/     OPC_MoveParent,
/*98844*/     OPC_EmitMergeInputChains1_0,
/*98845*/     OPC_MorphNodeTo, TARGET_VAL(X86::REP_STOSB), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
                  1/*#VTs*/, MVT::i32, 0/*#Ops*/, 
              // Src: (X86rep_stos i8:Other) - Complexity = 3
              // Dst: (REP_STOSB:i32)
/*98852*/   /*Scope*/ 11, /*->98864*/
/*98853*/     OPC_CheckValueType, MVT::i16,
/*98855*/     OPC_MoveParent,
/*98856*/     OPC_EmitMergeInputChains1_0,
/*98857*/     OPC_MorphNodeTo, TARGET_VAL(X86::REP_STOSW), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
                  1/*#VTs*/, MVT::i32, 0/*#Ops*/, 
              // Src: (X86rep_stos i16:Other) - Complexity = 3
              // Dst: (REP_STOSW:i32)
/*98864*/   /*Scope*/ 11, /*->98876*/
/*98865*/     OPC_CheckValueType, MVT::i32,
/*98867*/     OPC_MoveParent,
/*98868*/     OPC_EmitMergeInputChains1_0,
/*98869*/     OPC_MorphNodeTo, TARGET_VAL(X86::REP_STOSD), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
                  1/*#VTs*/, MVT::i32, 0/*#Ops*/, 
              // Src: (X86rep_stos i32:Other) - Complexity = 3
              // Dst: (REP_STOSD:i32)
/*98876*/   /*Scope*/ 11, /*->98888*/
/*98877*/     OPC_CheckValueType, MVT::i64,
/*98879*/     OPC_MoveParent,
/*98880*/     OPC_EmitMergeInputChains1_0,
/*98881*/     OPC_MorphNodeTo, TARGET_VAL(X86::REP_STOSQ), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
                  1/*#VTs*/, MVT::i64, 0/*#Ops*/, 
              // Src: (X86rep_stos i64:Other) - Complexity = 3
              // Dst: (REP_STOSQ:i64)
/*98888*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 26,  TARGET_VAL(X86ISD::MEMBARRIER),// ->98918
/*98892*/   OPC_RecordNode,   // #0 = 'X86MemBarrier' chained node
/*98893*/   OPC_Scope, 7, /*->98902*/ // 2 children in Scope
/*98895*/     OPC_EmitMergeInputChains1_0,
/*98896*/     OPC_MorphNodeTo, TARGET_VAL(X86::Int_MemBarrier), 0|OPFL_Chain,
                  0/*#VTs*/, 0/*#Ops*/, 
              // Src: (X86MemBarrier) - Complexity = 3
              // Dst: (Int_MemBarrier)
/*98902*/   /*Scope*/ 14, /*->98917*/
/*98903*/     OPC_RecordChild1, // #1 = $zero
/*98904*/     OPC_CheckChild1Type, MVT::i64,
/*98906*/     OPC_CheckPatternPredicate, 4, // (Subtarget->is64Bit())
/*98908*/     OPC_EmitMergeInputChains1_0,
/*98909*/     OPC_MorphNodeTo, TARGET_VAL(X86::Int_MemBarrierNoSSE64), 0|OPFL_Chain,
                  1/*#VTs*/, MVT::i32, 1/*#Ops*/, 1, 
              // Src: (X86MemBarrierNoSSE GR64:i64:$zero) - Complexity = 3
              // Dst: (Int_MemBarrierNoSSE64:i32 GR64:i64:$zero)
/*98917*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 10,  TARGET_VAL(X86ISD::WIN_ALLOCA),// ->98931
/*98921*/   OPC_RecordNode,   // #0 = 'X86WinAlloca' chained node
/*98922*/   OPC_CaptureGlueInput,
/*98923*/   OPC_EmitMergeInputChains1_0,
/*98924*/   OPC_MorphNodeTo, TARGET_VAL(X86::WIN_ALLOCA), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
                1/*#VTs*/, MVT::i32, 0/*#Ops*/, 
            // Src: (X86WinAlloca) - Complexity = 3
            // Dst: (WIN_ALLOCA:i32)
          0, // EndSwitchOpcode
    0
  }; // Total Array size is 98933 bytes

  // Opcode Histogram:
  // #OPC_Scope                          = 1607
  // #OPC_RecordNode                     = 697
  // #OPC_RecordChild                    = 2581
  // #OPC_RecordMemRef                   = 653
  // #OPC_CaptureGlueInput               = 13
  // #OPC_MoveChild                      = 1595
  // #OPC_MoveParent                     = 2961
  // #OPC_CheckSame                      = 209
  // #OPC_CheckPatternPredicate          = 2706
  // #OPC_CheckPredicate                 = 2780
  // #OPC_CheckOpcode                    = 1077
  // #OPC_SwitchOpcode                   = 56
  // #OPC_CheckType                      = 1167
  // #OPC_SwitchType                     = 389
  // #OPC_CheckChildType                 = 277
  // #OPC_CheckInteger                   = 689
  // #OPC_CheckCondCode                  = 0
  // #OPC_CheckValueType                 = 36
  // #OPC_CheckComplexPat                = 2019
  // #OPC_CheckAndImm                    = 23
  // #OPC_CheckOrImm                     = 0
  // #OPC_CheckFoldableChainNode         = 592
  // #OPC_EmitInteger                    = 54
  // #OPC_EmitStringInteger              = 194
  // #OPC_EmitRegister                   = 0
  // #OPC_EmitConvertToTarget            = 601
  // #OPC_EmitMergeInputChains           = 2076
  // #OPC_EmitCopyToReg                  = 457
  // #OPC_EmitNode                       = 226
  // #OPC_EmitNodeXForm                  = 66
  // #OPC_MarkGlueResults                = 0
  // #OPC_CompleteMatch                  = 61
  // #OPC_MorphNodeTo                    = 3809

  #undef TARGET_VAL
  return SelectCodeCommon(N, MatcherTable,sizeof(MatcherTable));
}

bool CheckPatternPredicate(unsigned PredNo) const {
  switch (PredNo) {
  default: assert(0 && "Invalid predicate in table?");
  case 0: return (Subtarget->hasAVX());
  case 1: return (Subtarget->hasSSE1());
  case 2: return (Subtarget->hasSSE2());
  case 3: return (!Subtarget->is64Bit());
  case 4: return (Subtarget->is64Bit());
  case 5: return (Subtarget->hasSSE41());
  case 6: return (TM.getCodeModel() == CodeModel::Small ||TM.getCodeModel() == CodeModel::Kernel) && (TM.getRelocationModel() == Reloc::Static);
  case 7: return (Subtarget->hasMOVBE());
  case 8: return (!Subtarget->hasXMM());
  case 9: return (!Subtarget->hasXMMInt());
  case 10: return (Subtarget->hasMMX());
  case 11: return (Subtarget->hasSSE42());
  case 12: return (Subtarget->hasSSSE3());
  case 13: return (Subtarget->has3DNow());
  case 14: return (Subtarget->hasAVX()) && (Subtarget->hasAES());
  case 15: return (Subtarget->hasAES());
  case 16: return (Subtarget->hasSSE3());
  case 17: return (Subtarget->hasCMov());
  case 18: return (!Subtarget->hasCMov());
  case 19: return (!Subtarget->hasXMM()) && (Subtarget->hasCMov());
  case 20: return (!Subtarget->hasXMMInt()) && (Subtarget->hasCMov());
  case 21: return (Subtarget->hasLZCNT());
  case 22: return (Subtarget->hasBMI());
  case 23: return (Subtarget->hasPOPCNT());
  case 24: return (Subtarget->hasSSE2()) && (OptForSize);
  case 25: return (Subtarget->hasSSE2()) && (!OptForSize);
  case 26: return (Subtarget->hasAVX()) && (!OptForSize);
  case 27: return (Subtarget->hasXMMInt());
  case 28: return (Subtarget->hasAVX()) && (Subtarget->is64Bit());
  case 29: return (TM.getCodeModel() != CodeModel::Small &&TM.getCodeModel() != CodeModel::Kernel);
  case 30: return (TM.getCodeModel() == CodeModel::Small);
  case 31: return (TM.getCodeModel() == CodeModel::Kernel);
  case 32: return (Subtarget->hasSSE1()) && (OptForSize);
  case 33: return (Subtarget->hasAVX()) && (OptForSize);
  case 34: return (Subtarget->hasXMM());
  case 35: return (!Subtarget->is64Bit()) && (TM.getRelocationModel() != Reloc::PIC_);
  case 36: return (Subtarget->hasMMX()) && (Subtarget->is64Bit());
  case 37: return (Subtarget->is64Bit()) && (!Subtarget->isTargetWin64());
  case 38: return (Subtarget->isTargetWin64());
  case 39: return (!Subtarget->isTargetWin64());
  case 40: return (Subtarget->IsLegalToCallImmediateAddr(TM));
  case 41: return (Subtarget->hasCmpxchg16b());
  }
}

bool CheckNodePredicate(SDNode *Node, unsigned PredNo) const {
  switch (PredNo) {
  default: assert(0 && "Invalid predicate in table?");
  case 0: { // Predicate_alignednontemporalstore
    SDNode *N = Node;

  if (StoreSDNode *ST = dyn_cast<StoreSDNode>(N))
    return ST->isNonTemporal() && !ST->isTruncatingStore() &&
           ST->getAddressingMode() == ISD::UNINDEXED &&
           ST->getAlignment() >= 16;
  return false;

  }
  case 1: { // Predicate_nontemporalstore
    SDNode *N = Node;

  if (StoreSDNode *ST = dyn_cast<StoreSDNode>(N))
    return ST->isNonTemporal();
  return false;

  }
  case 2: { // Predicate_unindexedload
    SDNode *N = Node;

  return cast<LoadSDNode>(N)->getAddressingMode() == ISD::UNINDEXED;

  }
  case 3: { // Predicate_load
    SDNode *N = Node;

  return cast<LoadSDNode>(N)->getExtensionType() == ISD::NON_EXTLOAD;

  }
  case 4: { // Predicate_unindexedstore
    SDNode *N = Node;

  return cast<StoreSDNode>(N)->getAddressingMode() == ISD::UNINDEXED;

  }
  case 5: { // Predicate_store
    SDNode *N = Node;

  return !cast<StoreSDNode>(N)->isTruncatingStore();

  }
  case 6: { // Predicate_loadi16
    SDNode *N = Node;

  LoadSDNode *LD = cast<LoadSDNode>(N);
  ISD::LoadExtType ExtType = LD->getExtensionType();
  if (ExtType == ISD::NON_EXTLOAD)
    return true;
  if (ExtType == ISD::EXTLOAD)
    return LD->getAlignment() >= 2 && !LD->isVolatile();
  return false;

  }
  case 7: { // Predicate_loadi32
    SDNode *N = Node;

  LoadSDNode *LD = cast<LoadSDNode>(N);
  ISD::LoadExtType ExtType = LD->getExtensionType();
  if (ExtType == ISD::NON_EXTLOAD)
    return true;
  if (ExtType == ISD::EXTLOAD)
    return LD->getAlignment() >= 4 && !LD->isVolatile();
  return false;

  }
  case 8: { // Predicate_i16immSExt8
    int64_t Imm = cast<ConstantSDNode>(Node)->getSExtValue();
 return Imm == (int8_t)Imm; 
  }
  case 9: { // Predicate_i32immSExt8
    int64_t Imm = cast<ConstantSDNode>(Node)->getSExtValue();
 return Imm == (int8_t)Imm; 
  }
  case 10: { // Predicate_i64immSExt8
    int64_t Imm = cast<ConstantSDNode>(Node)->getSExtValue();
 return Imm == (int8_t)Imm; 
  }
  case 11: { // Predicate_i64immSExt32
    int64_t Imm = cast<ConstantSDNode>(Node)->getSExtValue();
 return Imm == (int32_t)Imm; 
  }
  case 12: { // Predicate_movlp
    SDNode *N = Node;

  return X86::isMOVLPMask(cast<ShuffleVectorSDNode>(N));

  }
  case 13: { // Predicate_unpckh
    SDNode *N = Node;

  return X86::isUNPCKHMask(cast<ShuffleVectorSDNode>(N));

  }
  case 14: { // Predicate_srl_su
    SDNode *N = Node;

  return N->hasOneUse();

  }
  case 15: { // Predicate_trunc_su
    SDNode *N = Node;

  return N->hasOneUse();

  }
  case 16: { // Predicate_truncstore
    SDNode *N = Node;

  return cast<StoreSDNode>(N)->isTruncatingStore();

  }
  case 17: { // Predicate_truncstoref32
    SDNode *N = Node;

  return cast<StoreSDNode>(N)->getMemoryVT() == MVT::f32;

  }
  case 18: { // Predicate_truncstoref64
    SDNode *N = Node;

  return cast<StoreSDNode>(N)->getMemoryVT() == MVT::f64;

  }
  case 19: { // Predicate_alignedstore
    SDNode *N = Node;

  return cast<StoreSDNode>(N)->getAlignment() >= 16;

  }
  case 20: { // Predicate_alignedstore256
    SDNode *N = Node;

  return cast<StoreSDNode>(N)->getAlignment() >= 32;

  }
  case 21: { // Predicate_and_su
    SDNode *N = Node;

  return N->hasOneUse();

  }
  case 22: { // Predicate_memop64
    SDNode *N = Node;

  return cast<LoadSDNode>(N)->getAlignment() >= 8;

  }
  case 23: { // Predicate_memop
    SDNode *N = Node;

  return    Subtarget->hasVectorUAMem()
         || cast<LoadSDNode>(N)->getAlignment() >= 16;

  }
  case 24: { // Predicate_loadi16_anyext
    SDNode *N = Node;

  LoadSDNode *LD = cast<LoadSDNode>(N);
  ISD::LoadExtType ExtType = LD->getExtensionType();
  if (ExtType == ISD::EXTLOAD)
    return LD->getAlignment() >= 2 && !LD->isVolatile();
  return false;

  }
  case 25: { // Predicate_or_is_add
    SDNode *N = Node;

  if (ConstantSDNode *CN = dyn_cast<ConstantSDNode>(N->getOperand(1)))
    return CurDAG->MaskedValueIsZero(N->getOperand(0), CN->getAPIntValue());

  unsigned BitWidth = N->getValueType(0).getScalarType().getSizeInBits();
  APInt Mask = APInt::getAllOnesValue(BitWidth);
  APInt KnownZero0, KnownOne0;
  CurDAG->ComputeMaskedBits(N->getOperand(0), Mask, KnownZero0, KnownOne0, 0);
  APInt KnownZero1, KnownOne1;
  CurDAG->ComputeMaskedBits(N->getOperand(1), Mask, KnownZero1, KnownOne1, 0);
  return (~KnownZero0 & ~KnownZero1) == 0;

  }
  case 26: { // Predicate_i64immZExt32SExt8
    int64_t Imm = cast<ConstantSDNode>(Node)->getSExtValue();

  return (uint64_t)Imm == (uint32_t)Imm && (int32_t)Imm == (int8_t)Imm;

  }
  case 27: { // Predicate_i64immZExt32
    int64_t Imm = cast<ConstantSDNode>(Node)->getSExtValue();
 return (uint64_t)Imm == (uint32_t)Imm; 
  }
  case 28: { // Predicate_sextload
    SDNode *N = Node;

  return cast<LoadSDNode>(N)->getExtensionType() == ISD::SEXTLOAD;

  }
  case 29: { // Predicate_sextloadi8
    SDNode *N = Node;

  return cast<LoadSDNode>(N)->getMemoryVT() == MVT::i8;

  }
  case 30: { // Predicate_sextloadi16
    SDNode *N = Node;

  return cast<LoadSDNode>(N)->getMemoryVT() == MVT::i16;

  }
  case 31: { // Predicate_zextload
    SDNode *N = Node;

  return cast<LoadSDNode>(N)->getExtensionType() == ISD::ZEXTLOAD;

  }
  case 32: { // Predicate_zextloadi8
    SDNode *N = Node;

  return cast<LoadSDNode>(N)->getMemoryVT() == MVT::i8;

  }
  case 33: { // Predicate_zextloadi16
    SDNode *N = Node;

  return cast<LoadSDNode>(N)->getMemoryVT() == MVT::i16;

  }
  case 34: { // Predicate_sextloadi32
    SDNode *N = Node;

  return cast<LoadSDNode>(N)->getMemoryVT() == MVT::i32;

  }
  case 35: { // Predicate_zextloadi32
    SDNode *N = Node;

  return cast<LoadSDNode>(N)->getMemoryVT() == MVT::i32;

  }
  case 36: { // Predicate_zextloadi1
    SDNode *N = Node;

  return cast<LoadSDNode>(N)->getMemoryVT() == MVT::i1;

  }
  case 37: { // Predicate_extload
    SDNode *N = Node;

  return cast<LoadSDNode>(N)->getExtensionType() == ISD::EXTLOAD;

  }
  case 38: { // Predicate_extloadi1
    SDNode *N = Node;

  return cast<LoadSDNode>(N)->getMemoryVT() == MVT::i1;

  }
  case 39: { // Predicate_extloadi8
    SDNode *N = Node;

  return cast<LoadSDNode>(N)->getMemoryVT() == MVT::i8;

  }
  case 40: { // Predicate_extloadi16
    SDNode *N = Node;

  return cast<LoadSDNode>(N)->getMemoryVT() == MVT::i16;

  }
  case 41: { // Predicate_extloadi32
    SDNode *N = Node;

  return cast<LoadSDNode>(N)->getMemoryVT() == MVT::i32;

  }
  case 42: { // Predicate_extloadf32
    SDNode *N = Node;

  return cast<LoadSDNode>(N)->getMemoryVT() == MVT::f32;

  }
  case 43: { // Predicate_extloadf64
    SDNode *N = Node;

  return cast<LoadSDNode>(N)->getMemoryVT() == MVT::f64;

  }
  case 44: { // Predicate_alignedload
    SDNode *N = Node;

  return cast<LoadSDNode>(N)->getAlignment() >= 16;

  }
  case 45: { // Predicate_alignedload256
    SDNode *N = Node;

  return cast<LoadSDNode>(N)->getAlignment() >= 32;

  }
  case 46: { // Predicate_atomic_swap_8
    SDNode *N = Node;

    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i8;
  
  }
  case 47: { // Predicate_atomic_swap_16
    SDNode *N = Node;

    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i16;
  
  }
  case 48: { // Predicate_atomic_swap_32
    SDNode *N = Node;

    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i32;
  
  }
  case 49: { // Predicate_atomic_swap_64
    SDNode *N = Node;

    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i64;
  
  }
  case 50: { // Predicate_atomic_load_add_8
    SDNode *N = Node;

    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i8;
  
  }
  case 51: { // Predicate_atomic_load_add_16
    SDNode *N = Node;

    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i16;
  
  }
  case 52: { // Predicate_atomic_load_add_32
    SDNode *N = Node;

    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i32;
  
  }
  case 53: { // Predicate_atomic_load_add_64
    SDNode *N = Node;

    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i64;
  
  }
  case 54: { // Predicate_atomic_load_8
    SDNode *N = Node;

  return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i8;

  }
  case 55: { // Predicate_atomic_load_16
    SDNode *N = Node;

  return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i16;

  }
  case 56: { // Predicate_atomic_load_32
    SDNode *N = Node;

  return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i32;

  }
  case 57: { // Predicate_atomic_load_64
    SDNode *N = Node;

  return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i64;

  }
  case 58: { // Predicate_atomic_load_and_8
    SDNode *N = Node;

    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i8;
  
  }
  case 59: { // Predicate_atomic_load_and_16
    SDNode *N = Node;

    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i16;
  
  }
  case 60: { // Predicate_atomic_load_and_32
    SDNode *N = Node;

    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i32;
  
  }
  case 61: { // Predicate_atomic_load_and_64
    SDNode *N = Node;

    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i64;
  
  }
  case 62: { // Predicate_atomic_load_or_8
    SDNode *N = Node;

    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i8;
  
  }
  case 63: { // Predicate_atomic_load_or_16
    SDNode *N = Node;

    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i16;
  
  }
  case 64: { // Predicate_atomic_load_or_32
    SDNode *N = Node;

    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i32;
  
  }
  case 65: { // Predicate_atomic_load_or_64
    SDNode *N = Node;

    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i64;
  
  }
  case 66: { // Predicate_atomic_load_xor_8
    SDNode *N = Node;

    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i8;
  
  }
  case 67: { // Predicate_atomic_load_xor_16
    SDNode *N = Node;

    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i16;
  
  }
  case 68: { // Predicate_atomic_load_xor_32
    SDNode *N = Node;

    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i32;
  
  }
  case 69: { // Predicate_atomic_load_xor_64
    SDNode *N = Node;

    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i64;
  
  }
  case 70: { // Predicate_atomic_load_nand_8
    SDNode *N = Node;

    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i8;
  
  }
  case 71: { // Predicate_atomic_load_nand_16
    SDNode *N = Node;

    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i16;
  
  }
  case 72: { // Predicate_atomic_load_nand_32
    SDNode *N = Node;

    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i32;
  
  }
  case 73: { // Predicate_atomic_load_nand_64
    SDNode *N = Node;

    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i64;
  
  }
  case 74: { // Predicate_atomic_load_min_16
    SDNode *N = Node;

    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i16;
  
  }
  case 75: { // Predicate_atomic_load_min_32
    SDNode *N = Node;

    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i32;
  
  }
  case 76: { // Predicate_atomic_load_min_64
    SDNode *N = Node;

    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i64;
  
  }
  case 77: { // Predicate_atomic_load_max_16
    SDNode *N = Node;

    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i16;
  
  }
  case 78: { // Predicate_atomic_load_max_32
    SDNode *N = Node;

    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i32;
  
  }
  case 79: { // Predicate_atomic_load_max_64
    SDNode *N = Node;

    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i64;
  
  }
  case 80: { // Predicate_atomic_load_umin_16
    SDNode *N = Node;

    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i16;
  
  }
  case 81: { // Predicate_atomic_load_umin_32
    SDNode *N = Node;

    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i32;
  
  }
  case 82: { // Predicate_atomic_load_umin_64
    SDNode *N = Node;

    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i64;
  
  }
  case 83: { // Predicate_atomic_load_umax_16
    SDNode *N = Node;

    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i16;
  
  }
  case 84: { // Predicate_atomic_load_umax_32
    SDNode *N = Node;

    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i32;
  
  }
  case 85: { // Predicate_atomic_load_umax_64
    SDNode *N = Node;

    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i64;
  
  }
  case 86: { // Predicate_def32
    SDNode *N = Node;

  return N->getOpcode() != ISD::TRUNCATE &&
         N->getOpcode() != TargetOpcode::EXTRACT_SUBREG &&
         N->getOpcode() != ISD::CopyFromReg &&
         N->getOpcode() != X86ISD::CMOV;

  }
  case 87: { // Predicate_immAllZerosV
    SDNode *N = Node;

  return ISD::isBuildVectorAllZeros(N);

  }
  case 88: { // Predicate_fpimm0
    ConstantFPSDNode*N = cast<ConstantFPSDNode>(Node);

  return N->isExactlyValue(+0.0);

  }
  case 89: { // Predicate_fpimm1
    ConstantFPSDNode*N = cast<ConstantFPSDNode>(Node);

  return N->isExactlyValue(+1.0);

  }
  case 90: { // Predicate_fp32imm0
    ConstantFPSDNode*N = cast<ConstantFPSDNode>(Node);

  return N->isExactlyValue(+0.0);

  }
  case 91: { // Predicate_fpimmneg0
    ConstantFPSDNode*N = cast<ConstantFPSDNode>(Node);

  return N->isExactlyValue(-0.0);

  }
  case 92: { // Predicate_fpimmneg1
    ConstantFPSDNode*N = cast<ConstantFPSDNode>(Node);

  return N->isExactlyValue(-1.0);

  }
  case 93: { // Predicate_pshufd
    SDNode *N = Node;

  return X86::isPSHUFDMask(cast<ShuffleVectorSDNode>(N));

  }
  case 94: { // Predicate_movddup
    SDNode *N = Node;

  return X86::isMOVDDUPMask(cast<ShuffleVectorSDNode>(N));

  }
  case 95: { // Predicate_pshufhw
    SDNode *N = Node;

  return X86::isPSHUFHWMask(cast<ShuffleVectorSDNode>(N));

  }
  case 96: { // Predicate_pshuflw
    SDNode *N = Node;

  return X86::isPSHUFLWMask(cast<ShuffleVectorSDNode>(N));

  }
  case 97: { // Predicate_shufp
    SDNode *N = Node;

  return X86::isSHUFPMask(cast<ShuffleVectorSDNode>(N));

  }
  case 98: { // Predicate_movlhps
    SDNode *N = Node;

  return X86::isMOVLHPSMask(cast<ShuffleVectorSDNode>(N));

  }
  case 99: { // Predicate_movhlps_undef
    SDNode *N = Node;

  return X86::isMOVHLPS_v_undef_Mask(cast<ShuffleVectorSDNode>(N));

  }
  case 100: { // Predicate_movhlps
    SDNode *N = Node;

  return X86::isMOVHLPSMask(cast<ShuffleVectorSDNode>(N));

  }
  case 101: { // Predicate_movl
    SDNode *N = Node;

  return X86::isMOVLMask(cast<ShuffleVectorSDNode>(N));

  }
  case 102: { // Predicate_splat_lo
    SDNode *N = Node;

  ShuffleVectorSDNode *SVOp = cast<ShuffleVectorSDNode>(N);
  return SVOp->isSplat() && SVOp->getSplatIndex() == 0;

  }
  case 103: { // Predicate_unpckl
    SDNode *N = Node;

  return X86::isUNPCKLMask(cast<ShuffleVectorSDNode>(N));

  }
  case 104: { // Predicate_atomic_store_8
    SDNode *N = Node;

    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i8;
  
  }
  case 105: { // Predicate_atomic_store_16
    SDNode *N = Node;

    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i16;
  
  }
  case 106: { // Predicate_atomic_store_32
    SDNode *N = Node;

    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i32;
  
  }
  case 107: { // Predicate_atomic_store_64
    SDNode *N = Node;

    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i64;
  
  }
  case 108: { // Predicate_vinsertf128_insert
    SDNode *N = Node;

  return X86::isVINSERTF128Index(N);

  }
  case 109: { // Predicate_vextractf128_extract
    SDNode *N = Node;

  return X86::isVEXTRACTF128Index(N);

  }
  case 110: { // Predicate_immAllOnesV
    SDNode *N = Node;

  return ISD::isBuildVectorAllOnes(N);

  }
  }
}

bool CheckComplexPattern(SDNode *Root, SDNode *Parent, SDValue N,
                         unsigned PatternNo,
         SmallVectorImpl<std::pair<SDValue, SDNode*> > &Result) {
  unsigned NextRes = Result.size();
  switch (PatternNo) {
  default: assert(0 && "Invalid pattern # in table?");
  case 0:
    Result.resize(NextRes+5);
    return SelectAddr(Parent, N, Result[NextRes+0].first, Result[NextRes+1].first, Result[NextRes+2].first, Result[NextRes+3].first, Result[NextRes+4].first);
  case 1:
    Result.resize(NextRes+6);
    return SelectScalarSSELoad(Root, N, Result[NextRes+0].first, Result[NextRes+1].first, Result[NextRes+2].first, Result[NextRes+3].first, Result[NextRes+4].first, Result[NextRes+5].first);
  case 2:
    Result.resize(NextRes+6);
    return SelectScalarSSELoad(Root, N, Result[NextRes+0].first, Result[NextRes+1].first, Result[NextRes+2].first, Result[NextRes+3].first, Result[NextRes+4].first, Result[NextRes+5].first);
  case 3:
    Result.resize(NextRes+5);
    return SelectLEAAddr(N, Result[NextRes+0].first, Result[NextRes+1].first, Result[NextRes+2].first, Result[NextRes+3].first, Result[NextRes+4].first);
  case 4:
    Result.resize(NextRes+5);
    return SelectLEAAddr(N, Result[NextRes+0].first, Result[NextRes+1].first, Result[NextRes+2].first, Result[NextRes+3].first, Result[NextRes+4].first);
  case 5:
    Result.resize(NextRes+5);
    return SelectTLSADDRAddr(N, Result[NextRes+0].first, Result[NextRes+1].first, Result[NextRes+2].first, Result[NextRes+3].first, Result[NextRes+4].first);
  case 6:
    Result.resize(NextRes+5);
    return SelectTLSADDRAddr(N, Result[NextRes+0].first, Result[NextRes+1].first, Result[NextRes+2].first, Result[NextRes+3].first, Result[NextRes+4].first);
  }
}

SDValue RunSDNodeXForm(SDValue V, unsigned XFormNo) {
  switch (XFormNo) {
  default: assert(0 && "Invalid xform # in table?");
  case 0: {  // BYTE_imm
    ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());

  // Transformation function: imm >> 3
  return getI32Imm(N->getZExtValue() >> 3);

  }
  case 1: {  // GetLo8XForm
    ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());

  // Transformation function: get the low 8 bits.
  return getI8Imm((uint8_t)N->getZExtValue());

  }
  case 2: {  // GetLo32XForm
    ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());

  // Transformation function: get the low 32 bits.
  return getI32Imm((unsigned)N->getZExtValue());

  }
  case 3: {  // SHUFFLE_get_shuf_imm
    SDNode *N = V.getNode();

  return getI8Imm(X86::getShuffleSHUFImmediate(N));

  }
  case 4: {  // SHUFFLE_get_pshufhw_imm
    SDNode *N = V.getNode();

  return getI8Imm(X86::getShufflePSHUFHWImmediate(N));

  }
  case 5: {  // SHUFFLE_get_pshuflw_imm
    SDNode *N = V.getNode();

  return getI8Imm(X86::getShufflePSHUFLWImmediate(N));

  }
  case 6: {  // INSERT_get_vinsertf128_imm
    SDNode *N = V.getNode();

  return getI8Imm(X86::getInsertVINSERTF128Immediate(N));

  }
  case 7: {  // EXTRACT_get_vextractf128_imm
    SDNode *N = V.getNode();

  return getI8Imm(X86::getExtractVEXTRACTF128Immediate(N));

  }
  }
}

