//===- 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 /*201 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*/ 46,  TARGET_VAL(X86ISD::MMX_MOVW2D),// ->14522
/*14476*/   OPC_Scope, 31, /*->14509*/ // 2 children in Scope
/*14478*/     OPC_MoveChild, 0,
/*14480*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*14483*/     OPC_RecordMemRef,
/*14484*/     OPC_RecordNode, // #0 = 'ld' chained node
/*14485*/     OPC_RecordChild1, // #1 = $src
/*14486*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*14488*/     OPC_CheckPredicate, 7, // Predicate_loadi32
/*14490*/     OPC_MoveParent,
/*14491*/     OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*14493*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*14496*/     OPC_EmitMergeInputChains1_0,
/*14497*/     OPC_MorphNodeTo, TARGET_VAL(X86::MMX_MOVD64rm), 0|OPFL_Chain|OPFL_MemRefs,
                  1/*#VTs*/, MVT::x86mmx, 5/*#Ops*/, 2, 3, 4, 5, 6, 
              // Src: (MMX_X86movw2d:x86mmx (ld:i32 addr:iPTR:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>) - Complexity = 45
              // Dst: (MMX_MOVD64rm:x86mmx addr:iPTR:$src)
/*14509*/   /*Scope*/ 11, /*->14521*/
/*14510*/     OPC_RecordChild0, // #0 = $src
/*14511*/     OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*14513*/     OPC_MorphNodeTo, TARGET_VAL(X86::MMX_MOVD64rr), 0,
                  1/*#VTs*/, MVT::x86mmx, 1/*#Ops*/, 0, 
              // Src: (MMX_X86movw2d:x86mmx GR32:i32:$src) - Complexity = 18
              // Dst: (MMX_MOVD64rr:x86mmx GR32:i32:$src)
/*14521*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 24|128,12/*1560*/,  TARGET_VAL(X86ISD::CMP),// ->16086
/*14526*/   OPC_Scope, 7|128,5/*647*/, /*->15176*/ // 6 children in Scope
/*14529*/     OPC_MoveChild, 0,
/*14531*/     OPC_SwitchOpcode /*2 cases */, 45|128,3/*429*/,  TARGET_VAL(ISD::AND),// ->14965
/*14536*/       OPC_Scope, 14|128,1/*142*/, /*->14681*/ // 3 children in Scope
/*14539*/         OPC_MoveChild, 0,
/*14541*/         OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*14544*/         OPC_RecordMemRef,
/*14545*/         OPC_RecordNode, // #0 = 'ld' chained node
/*14546*/         OPC_CheckFoldableChainNode,
/*14547*/         OPC_RecordChild1, // #1 = $dst
/*14548*/         OPC_CheckPredicate, 2, // Predicate_unindexedload
/*14550*/         OPC_CheckPredicate, 3, // Predicate_load
/*14552*/         OPC_MoveParent,
/*14553*/         OPC_RecordChild1, // #2 = $src
/*14554*/         OPC_MoveChild, 1,
/*14556*/         OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*14559*/         OPC_Scope, 32, /*->14593*/ // 2 children in Scope
/*14561*/           OPC_CheckPredicate, 11, // Predicate_i64immSExt32
/*14563*/           OPC_MoveParent,
/*14564*/           OPC_CheckPredicate, 21, // Predicate_and_su
/*14566*/           OPC_CheckType, MVT::i64,
/*14568*/           OPC_MoveParent,
/*14569*/           OPC_MoveChild, 1,
/*14571*/           OPC_CheckInteger, 0, 
/*14573*/           OPC_MoveParent,
/*14574*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$dst #3 #4 #5 #6 #7
/*14577*/           OPC_EmitMergeInputChains1_0,
/*14578*/           OPC_EmitConvertToTarget, 2,
/*14580*/           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)
/*14593*/         /*Scope*/ 86, /*->14680*/
/*14594*/           OPC_MoveParent,
/*14595*/           OPC_CheckPredicate, 21, // Predicate_and_su
/*14597*/           OPC_SwitchType /*3 cases */, 25,  MVT::i8,// ->14625
/*14600*/             OPC_MoveParent,
/*14601*/             OPC_MoveChild, 1,
/*14603*/             OPC_CheckInteger, 0, 
/*14605*/             OPC_MoveParent,
/*14606*/             OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$dst #3 #4 #5 #6 #7
/*14609*/             OPC_EmitMergeInputChains1_0,
/*14610*/             OPC_EmitConvertToTarget, 2,
/*14612*/             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,// ->14652
/*14627*/             OPC_MoveParent,
/*14628*/             OPC_MoveChild, 1,
/*14630*/             OPC_CheckInteger, 0, 
/*14632*/             OPC_MoveParent,
/*14633*/             OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$dst #3 #4 #5 #6 #7
/*14636*/             OPC_EmitMergeInputChains1_0,
/*14637*/             OPC_EmitConvertToTarget, 2,
/*14639*/             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,// ->14679
/*14654*/             OPC_MoveParent,
/*14655*/             OPC_MoveChild, 1,
/*14657*/             OPC_CheckInteger, 0, 
/*14659*/             OPC_MoveParent,
/*14660*/             OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$dst #3 #4 #5 #6 #7
/*14663*/             OPC_EmitMergeInputChains1_0,
/*14664*/             OPC_EmitConvertToTarget, 2,
/*14666*/             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
/*14680*/         0, /*End of Scope*/
/*14681*/       /*Scope*/ 10|128,1/*138*/, /*->14821*/
/*14683*/         OPC_RecordChild0, // #0 = $src1
/*14684*/         OPC_MoveChild, 1,
/*14686*/         OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*14689*/         OPC_RecordMemRef,
/*14690*/         OPC_RecordNode, // #1 = 'ld' chained node
/*14691*/         OPC_CheckFoldableChainNode,
/*14692*/         OPC_RecordChild1, // #2 = $src2
/*14693*/         OPC_CheckPredicate, 2, // Predicate_unindexedload
/*14695*/         OPC_Scope, 30, /*->14727*/ // 4 children in Scope
/*14697*/           OPC_CheckPredicate, 3, // Predicate_load
/*14699*/           OPC_MoveParent,
/*14700*/           OPC_CheckPredicate, 21, // Predicate_and_su
/*14702*/           OPC_CheckType, MVT::i8,
/*14704*/           OPC_MoveParent,
/*14705*/           OPC_MoveChild, 1,
/*14707*/           OPC_CheckInteger, 0, 
/*14709*/           OPC_MoveParent,
/*14710*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*14713*/           OPC_EmitMergeInputChains1_1,
/*14714*/           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)
/*14727*/         /*Scope*/ 30, /*->14758*/
/*14728*/           OPC_CheckPredicate, 6, // Predicate_loadi16
/*14730*/           OPC_MoveParent,
/*14731*/           OPC_CheckPredicate, 21, // Predicate_and_su
/*14733*/           OPC_CheckType, MVT::i16,
/*14735*/           OPC_MoveParent,
/*14736*/           OPC_MoveChild, 1,
/*14738*/           OPC_CheckInteger, 0, 
/*14740*/           OPC_MoveParent,
/*14741*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*14744*/           OPC_EmitMergeInputChains1_1,
/*14745*/           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)
/*14758*/         /*Scope*/ 30, /*->14789*/
/*14759*/           OPC_CheckPredicate, 7, // Predicate_loadi32
/*14761*/           OPC_MoveParent,
/*14762*/           OPC_CheckPredicate, 21, // Predicate_and_su
/*14764*/           OPC_CheckType, MVT::i32,
/*14766*/           OPC_MoveParent,
/*14767*/           OPC_MoveChild, 1,
/*14769*/           OPC_CheckInteger, 0, 
/*14771*/           OPC_MoveParent,
/*14772*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*14775*/           OPC_EmitMergeInputChains1_1,
/*14776*/           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)
/*14789*/         /*Scope*/ 30, /*->14820*/
/*14790*/           OPC_CheckPredicate, 3, // Predicate_load
/*14792*/           OPC_MoveParent,
/*14793*/           OPC_CheckPredicate, 21, // Predicate_and_su
/*14795*/           OPC_CheckType, MVT::i64,
/*14797*/           OPC_MoveParent,
/*14798*/           OPC_MoveChild, 1,
/*14800*/           OPC_CheckInteger, 0, 
/*14802*/           OPC_MoveParent,
/*14803*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*14806*/           OPC_EmitMergeInputChains1_1,
/*14807*/           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)
/*14820*/         0, /*End of Scope*/
/*14821*/       /*Scope*/ 13|128,1/*141*/, /*->14964*/
/*14823*/         OPC_MoveChild, 0,
/*14825*/         OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*14828*/         OPC_RecordMemRef,
/*14829*/         OPC_RecordNode, // #0 = 'ld' chained node
/*14830*/         OPC_CheckFoldableChainNode,
/*14831*/         OPC_RecordChild1, // #1 = $src2
/*14832*/         OPC_CheckPredicate, 2, // Predicate_unindexedload
/*14834*/         OPC_Scope, 31, /*->14867*/ // 4 children in Scope
/*14836*/           OPC_CheckPredicate, 3, // Predicate_load
/*14838*/           OPC_MoveParent,
/*14839*/           OPC_RecordChild1, // #2 = $src1
/*14840*/           OPC_CheckPredicate, 21, // Predicate_and_su
/*14842*/           OPC_CheckType, MVT::i8,
/*14844*/           OPC_MoveParent,
/*14845*/           OPC_MoveChild, 1,
/*14847*/           OPC_CheckInteger, 0, 
/*14849*/           OPC_MoveParent,
/*14850*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*14853*/           OPC_EmitMergeInputChains1_0,
/*14854*/           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)
/*14867*/         /*Scope*/ 31, /*->14899*/
/*14868*/           OPC_CheckPredicate, 6, // Predicate_loadi16
/*14870*/           OPC_MoveParent,
/*14871*/           OPC_RecordChild1, // #2 = $src1
/*14872*/           OPC_CheckPredicate, 21, // Predicate_and_su
/*14874*/           OPC_CheckType, MVT::i16,
/*14876*/           OPC_MoveParent,
/*14877*/           OPC_MoveChild, 1,
/*14879*/           OPC_CheckInteger, 0, 
/*14881*/           OPC_MoveParent,
/*14882*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*14885*/           OPC_EmitMergeInputChains1_0,
/*14886*/           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)
/*14899*/         /*Scope*/ 31, /*->14931*/
/*14900*/           OPC_CheckPredicate, 7, // Predicate_loadi32
/*14902*/           OPC_MoveParent,
/*14903*/           OPC_RecordChild1, // #2 = $src1
/*14904*/           OPC_CheckPredicate, 21, // Predicate_and_su
/*14906*/           OPC_CheckType, MVT::i32,
/*14908*/           OPC_MoveParent,
/*14909*/           OPC_MoveChild, 1,
/*14911*/           OPC_CheckInteger, 0, 
/*14913*/           OPC_MoveParent,
/*14914*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*14917*/           OPC_EmitMergeInputChains1_0,
/*14918*/           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)
/*14931*/         /*Scope*/ 31, /*->14963*/
/*14932*/           OPC_CheckPredicate, 3, // Predicate_load
/*14934*/           OPC_MoveParent,
/*14935*/           OPC_RecordChild1, // #2 = $src1
/*14936*/           OPC_CheckPredicate, 21, // Predicate_and_su
/*14938*/           OPC_CheckType, MVT::i64,
/*14940*/           OPC_MoveParent,
/*14941*/           OPC_MoveChild, 1,
/*14943*/           OPC_CheckInteger, 0, 
/*14945*/           OPC_MoveParent,
/*14946*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*14949*/           OPC_EmitMergeInputChains1_0,
/*14950*/           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)
/*14963*/         0, /*End of Scope*/
/*14964*/       0, /*End of Scope*/
              /*SwitchOpcode*/ 78|128,1/*206*/,  TARGET_VAL(ISD::LOAD),// ->15175
/*14969*/       OPC_RecordMemRef,
/*14970*/       OPC_RecordNode, // #0 = 'ld' chained node
/*14971*/       OPC_CheckFoldableChainNode,
/*14972*/       OPC_RecordChild1, // #1 = $dst
/*14973*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*14975*/       OPC_CheckPredicate, 3, // Predicate_load
/*14977*/       OPC_SwitchType /*4 cases */, 53,  MVT::i16,// ->15033
/*14980*/         OPC_MoveParent,
/*14981*/         OPC_RecordChild1, // #2 = $src
/*14982*/         OPC_MoveChild, 1,
/*14984*/         OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*14987*/         OPC_Scope, 22, /*->15011*/ // 2 children in Scope
/*14989*/           OPC_CheckPredicate, 8, // Predicate_i16immSExt8
/*14991*/           OPC_MoveParent,
/*14992*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$dst #3 #4 #5 #6 #7
/*14995*/           OPC_EmitMergeInputChains1_0,
/*14996*/           OPC_EmitConvertToTarget, 2,
/*14998*/           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)
/*15011*/         /*Scope*/ 20, /*->15032*/
/*15012*/           OPC_MoveParent,
/*15013*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$dst #3 #4 #5 #6 #7
/*15016*/           OPC_EmitMergeInputChains1_0,
/*15017*/           OPC_EmitConvertToTarget, 2,
/*15019*/           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)
/*15032*/         0, /*End of Scope*/
                /*SwitchType*/ 53,  MVT::i32,// ->15088
/*15035*/         OPC_MoveParent,
/*15036*/         OPC_RecordChild1, // #2 = $src
/*15037*/         OPC_MoveChild, 1,
/*15039*/         OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*15042*/         OPC_Scope, 22, /*->15066*/ // 2 children in Scope
/*15044*/           OPC_CheckPredicate, 9, // Predicate_i32immSExt8
/*15046*/           OPC_MoveParent,
/*15047*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$dst #3 #4 #5 #6 #7
/*15050*/           OPC_EmitMergeInputChains1_0,
/*15051*/           OPC_EmitConvertToTarget, 2,
/*15053*/           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)
/*15066*/         /*Scope*/ 20, /*->15087*/
/*15067*/           OPC_MoveParent,
/*15068*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$dst #3 #4 #5 #6 #7
/*15071*/           OPC_EmitMergeInputChains1_0,
/*15072*/           OPC_EmitConvertToTarget, 2,
/*15074*/           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)
/*15087*/         0, /*End of Scope*/
                /*SwitchType*/ 55,  MVT::i64,// ->15145
/*15090*/         OPC_MoveParent,
/*15091*/         OPC_RecordChild1, // #2 = $src
/*15092*/         OPC_MoveChild, 1,
/*15094*/         OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*15097*/         OPC_Scope, 22, /*->15121*/ // 2 children in Scope
/*15099*/           OPC_CheckPredicate, 10, // Predicate_i64immSExt8
/*15101*/           OPC_MoveParent,
/*15102*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$dst #3 #4 #5 #6 #7
/*15105*/           OPC_EmitMergeInputChains1_0,
/*15106*/           OPC_EmitConvertToTarget, 2,
/*15108*/           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)
/*15121*/         /*Scope*/ 22, /*->15144*/
/*15122*/           OPC_CheckPredicate, 11, // Predicate_i64immSExt32
/*15124*/           OPC_MoveParent,
/*15125*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$dst #3 #4 #5 #6 #7
/*15128*/           OPC_EmitMergeInputChains1_0,
/*15129*/           OPC_EmitConvertToTarget, 2,
/*15131*/           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)
/*15144*/         0, /*End of Scope*/
                /*SwitchType*/ 27,  MVT::i8,// ->15174
/*15147*/         OPC_MoveParent,
/*15148*/         OPC_RecordChild1, // #2 = $src
/*15149*/         OPC_MoveChild, 1,
/*15151*/         OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*15154*/         OPC_MoveParent,
/*15155*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$dst #3 #4 #5 #6 #7
/*15158*/         OPC_EmitMergeInputChains1_0,
/*15159*/         OPC_EmitConvertToTarget, 2,
/*15161*/         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
/*15176*/   /*Scope*/ 11|128,1/*139*/, /*->15317*/
/*15178*/     OPC_RecordChild0, // #0 = $src1
/*15179*/     OPC_Scope, 33, /*->15214*/ // 4 children in Scope
/*15181*/       OPC_CheckChild0Type, MVT::i8,
/*15183*/       OPC_MoveChild, 1,
/*15185*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*15188*/       OPC_RecordMemRef,
/*15189*/       OPC_RecordNode, // #1 = 'ld' chained node
/*15190*/       OPC_CheckFoldableChainNode,
/*15191*/       OPC_RecordChild1, // #2 = $src2
/*15192*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*15194*/       OPC_CheckPredicate, 3, // Predicate_load
/*15196*/       OPC_MoveParent,
/*15197*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*15200*/       OPC_EmitMergeInputChains1_1,
/*15201*/       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)
/*15214*/     /*Scope*/ 33, /*->15248*/
/*15215*/       OPC_CheckChild0Type, MVT::i16,
/*15217*/       OPC_MoveChild, 1,
/*15219*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*15222*/       OPC_RecordMemRef,
/*15223*/       OPC_RecordNode, // #1 = 'ld' chained node
/*15224*/       OPC_CheckFoldableChainNode,
/*15225*/       OPC_RecordChild1, // #2 = $src2
/*15226*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*15228*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*15230*/       OPC_MoveParent,
/*15231*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*15234*/       OPC_EmitMergeInputChains1_1,
/*15235*/       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)
/*15248*/     /*Scope*/ 33, /*->15282*/
/*15249*/       OPC_CheckChild0Type, MVT::i32,
/*15251*/       OPC_MoveChild, 1,
/*15253*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*15256*/       OPC_RecordMemRef,
/*15257*/       OPC_RecordNode, // #1 = 'ld' chained node
/*15258*/       OPC_CheckFoldableChainNode,
/*15259*/       OPC_RecordChild1, // #2 = $src2
/*15260*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*15262*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*15264*/       OPC_MoveParent,
/*15265*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*15268*/       OPC_EmitMergeInputChains1_1,
/*15269*/       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)
/*15282*/     /*Scope*/ 33, /*->15316*/
/*15283*/       OPC_CheckChild0Type, MVT::i64,
/*15285*/       OPC_MoveChild, 1,
/*15287*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*15290*/       OPC_RecordMemRef,
/*15291*/       OPC_RecordNode, // #1 = 'ld' chained node
/*15292*/       OPC_CheckFoldableChainNode,
/*15293*/       OPC_RecordChild1, // #2 = $src2
/*15294*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*15296*/       OPC_CheckPredicate, 3, // Predicate_load
/*15298*/       OPC_MoveParent,
/*15299*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*15302*/       OPC_EmitMergeInputChains1_1,
/*15303*/       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)
/*15316*/     0, /*End of Scope*/
/*15317*/   /*Scope*/ 99, /*->15417*/
/*15318*/     OPC_MoveChild, 0,
/*15320*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*15323*/     OPC_RecordMemRef,
/*15324*/     OPC_RecordNode, // #0 = 'ld' chained node
/*15325*/     OPC_CheckFoldableChainNode,
/*15326*/     OPC_RecordChild1, // #1 = $dst
/*15327*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*15329*/     OPC_CheckPredicate, 3, // Predicate_load
/*15331*/     OPC_SwitchType /*4 cases */, 19,  MVT::i8,// ->15353
/*15334*/       OPC_MoveParent,
/*15335*/       OPC_RecordChild1, // #2 = $src
/*15336*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$dst #3 #4 #5 #6 #7
/*15339*/       OPC_EmitMergeInputChains1_0,
/*15340*/       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,// ->15374
/*15355*/       OPC_MoveParent,
/*15356*/       OPC_RecordChild1, // #2 = $src
/*15357*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$dst #3 #4 #5 #6 #7
/*15360*/       OPC_EmitMergeInputChains1_0,
/*15361*/       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,// ->15395
/*15376*/       OPC_MoveParent,
/*15377*/       OPC_RecordChild1, // #2 = $src
/*15378*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$dst #3 #4 #5 #6 #7
/*15381*/       OPC_EmitMergeInputChains1_0,
/*15382*/       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,// ->15416
/*15397*/       OPC_MoveParent,
/*15398*/       OPC_RecordChild1, // #2 = $src
/*15399*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$dst #3 #4 #5 #6 #7
/*15402*/       OPC_EmitMergeInputChains1_0,
/*15403*/       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
/*15417*/   /*Scope*/ 121, /*->15539*/
/*15418*/     OPC_RecordChild0, // #0 = $src1
/*15419*/     OPC_Scope, 58, /*->15479*/ // 2 children in Scope
/*15421*/       OPC_CheckChild0Type, MVT::f32,
/*15423*/       OPC_MoveChild, 1,
/*15425*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*15428*/       OPC_RecordMemRef,
/*15429*/       OPC_RecordNode, // #1 = 'ld' chained node
/*15430*/       OPC_CheckFoldableChainNode,
/*15431*/       OPC_RecordChild1, // #2 = $src2
/*15432*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*15434*/       OPC_CheckPredicate, 3, // Predicate_load
/*15436*/       OPC_MoveParent,
/*15437*/       OPC_Scope, 19, /*->15458*/ // 2 children in Scope
/*15439*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*15441*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*15444*/         OPC_EmitMergeInputChains1_1,
/*15445*/         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)
/*15458*/       /*Scope*/ 19, /*->15478*/
/*15459*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*15461*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*15464*/         OPC_EmitMergeInputChains1_1,
/*15465*/         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)
/*15478*/       0, /*End of Scope*/
/*15479*/     /*Scope*/ 58, /*->15538*/
/*15480*/       OPC_CheckChild0Type, MVT::f64,
/*15482*/       OPC_MoveChild, 1,
/*15484*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*15487*/       OPC_RecordMemRef,
/*15488*/       OPC_RecordNode, // #1 = 'ld' chained node
/*15489*/       OPC_CheckFoldableChainNode,
/*15490*/       OPC_RecordChild1, // #2 = $src2
/*15491*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*15493*/       OPC_CheckPredicate, 3, // Predicate_load
/*15495*/       OPC_MoveParent,
/*15496*/       OPC_Scope, 19, /*->15517*/ // 2 children in Scope
/*15498*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*15500*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*15503*/         OPC_EmitMergeInputChains1_1,
/*15504*/         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)
/*15517*/       /*Scope*/ 19, /*->15537*/
/*15518*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*15520*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*15523*/         OPC_EmitMergeInputChains1_1,
/*15524*/         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)
/*15537*/       0, /*End of Scope*/
/*15538*/     0, /*End of Scope*/
/*15539*/   /*Scope*/ 50|128,1/*178*/, /*->15719*/
/*15541*/     OPC_MoveChild, 0,
/*15543*/     OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/*15546*/     OPC_RecordChild0, // #0 = $src1
/*15547*/     OPC_RecordChild1, // #1 = $src2
/*15548*/     OPC_Scope, 95, /*->15645*/ // 2 children in Scope
/*15550*/       OPC_MoveChild, 1,
/*15552*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*15555*/       OPC_Scope, 24, /*->15581*/ // 2 children in Scope
/*15557*/         OPC_CheckPredicate, 11, // Predicate_i64immSExt32
/*15559*/         OPC_MoveParent,
/*15560*/         OPC_CheckPredicate, 21, // Predicate_and_su
/*15562*/         OPC_CheckType, MVT::i64,
/*15564*/         OPC_MoveParent,
/*15565*/         OPC_MoveChild, 1,
/*15567*/         OPC_CheckInteger, 0, 
/*15569*/         OPC_MoveParent,
/*15570*/         OPC_EmitConvertToTarget, 1,
/*15572*/         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)
/*15581*/       /*Scope*/ 62, /*->15644*/
/*15582*/         OPC_MoveParent,
/*15583*/         OPC_CheckPredicate, 21, // Predicate_and_su
/*15585*/         OPC_SwitchType /*3 cases */, 17,  MVT::i8,// ->15605
/*15588*/           OPC_MoveParent,
/*15589*/           OPC_MoveChild, 1,
/*15591*/           OPC_CheckInteger, 0, 
/*15593*/           OPC_MoveParent,
/*15594*/           OPC_EmitConvertToTarget, 1,
/*15596*/           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,// ->15624
/*15607*/           OPC_MoveParent,
/*15608*/           OPC_MoveChild, 1,
/*15610*/           OPC_CheckInteger, 0, 
/*15612*/           OPC_MoveParent,
/*15613*/           OPC_EmitConvertToTarget, 1,
/*15615*/           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,// ->15643
/*15626*/           OPC_MoveParent,
/*15627*/           OPC_MoveChild, 1,
/*15629*/           OPC_CheckInteger, 0, 
/*15631*/           OPC_MoveParent,
/*15632*/           OPC_EmitConvertToTarget, 1,
/*15634*/           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
/*15644*/       0, /*End of Scope*/
/*15645*/     /*Scope*/ 72, /*->15718*/
/*15646*/       OPC_CheckPredicate, 21, // Predicate_and_su
/*15648*/       OPC_SwitchType /*4 cases */, 15,  MVT::i8,// ->15666
/*15651*/         OPC_MoveParent,
/*15652*/         OPC_MoveChild, 1,
/*15654*/         OPC_CheckInteger, 0, 
/*15656*/         OPC_MoveParent,
/*15657*/         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,// ->15683
/*15668*/         OPC_MoveParent,
/*15669*/         OPC_MoveChild, 1,
/*15671*/         OPC_CheckInteger, 0, 
/*15673*/         OPC_MoveParent,
/*15674*/         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,// ->15700
/*15685*/         OPC_MoveParent,
/*15686*/         OPC_MoveChild, 1,
/*15688*/         OPC_CheckInteger, 0, 
/*15690*/         OPC_MoveParent,
/*15691*/         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,// ->15717
/*15702*/         OPC_MoveParent,
/*15703*/         OPC_MoveChild, 1,
/*15705*/         OPC_CheckInteger, 0, 
/*15707*/         OPC_MoveParent,
/*15708*/         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
/*15718*/     0, /*End of Scope*/
/*15719*/   /*Scope*/ 108|128,2/*364*/, /*->16085*/
/*15721*/     OPC_RecordChild0, // #0 = $src1
/*15722*/     OPC_Scope, 51, /*->15775*/ // 7 children in Scope
/*15724*/       OPC_CheckChild0Type, MVT::i8,
/*15726*/       OPC_Scope, 14, /*->15742*/ // 2 children in Scope
/*15728*/         OPC_MoveChild, 1,
/*15730*/         OPC_CheckInteger, 0, 
/*15732*/         OPC_MoveParent,
/*15733*/         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)
/*15742*/       /*Scope*/ 31, /*->15774*/
/*15743*/         OPC_RecordChild1, // #1 = $src2
/*15744*/         OPC_Scope, 17, /*->15763*/ // 2 children in Scope
/*15746*/           OPC_MoveChild, 1,
/*15748*/           OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*15751*/           OPC_MoveParent,
/*15752*/           OPC_EmitConvertToTarget, 1,
/*15754*/           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)
/*15763*/         /*Scope*/ 9, /*->15773*/
/*15764*/           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)
/*15773*/         0, /*End of Scope*/
/*15774*/       0, /*End of Scope*/
/*15775*/     /*Scope*/ 69, /*->15845*/
/*15776*/       OPC_CheckChild0Type, MVT::i16,
/*15778*/       OPC_Scope, 14, /*->15794*/ // 2 children in Scope
/*15780*/         OPC_MoveChild, 1,
/*15782*/         OPC_CheckInteger, 0, 
/*15784*/         OPC_MoveParent,
/*15785*/         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)
/*15794*/       /*Scope*/ 49, /*->15844*/
/*15795*/         OPC_RecordChild1, // #1 = $src2
/*15796*/         OPC_Scope, 35, /*->15833*/ // 2 children in Scope
/*15798*/           OPC_MoveChild, 1,
/*15800*/           OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*15803*/           OPC_Scope, 14, /*->15819*/ // 2 children in Scope
/*15805*/             OPC_CheckPredicate, 8, // Predicate_i16immSExt8
/*15807*/             OPC_MoveParent,
/*15808*/             OPC_EmitConvertToTarget, 1,
/*15810*/             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)
/*15819*/           /*Scope*/ 12, /*->15832*/
/*15820*/             OPC_MoveParent,
/*15821*/             OPC_EmitConvertToTarget, 1,
/*15823*/             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)
/*15832*/           0, /*End of Scope*/
/*15833*/         /*Scope*/ 9, /*->15843*/
/*15834*/           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)
/*15843*/         0, /*End of Scope*/
/*15844*/       0, /*End of Scope*/
/*15845*/     /*Scope*/ 69, /*->15915*/
/*15846*/       OPC_CheckChild0Type, MVT::i32,
/*15848*/       OPC_Scope, 14, /*->15864*/ // 2 children in Scope
/*15850*/         OPC_MoveChild, 1,
/*15852*/         OPC_CheckInteger, 0, 
/*15854*/         OPC_MoveParent,
/*15855*/         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)
/*15864*/       /*Scope*/ 49, /*->15914*/
/*15865*/         OPC_RecordChild1, // #1 = $src2
/*15866*/         OPC_Scope, 35, /*->15903*/ // 2 children in Scope
/*15868*/           OPC_MoveChild, 1,
/*15870*/           OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*15873*/           OPC_Scope, 14, /*->15889*/ // 2 children in Scope
/*15875*/             OPC_CheckPredicate, 9, // Predicate_i32immSExt8
/*15877*/             OPC_MoveParent,
/*15878*/             OPC_EmitConvertToTarget, 1,
/*15880*/             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)
/*15889*/           /*Scope*/ 12, /*->15902*/
/*15890*/             OPC_MoveParent,
/*15891*/             OPC_EmitConvertToTarget, 1,
/*15893*/             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)
/*15902*/           0, /*End of Scope*/
/*15903*/         /*Scope*/ 9, /*->15913*/
/*15904*/           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)
/*15913*/         0, /*End of Scope*/
/*15914*/       0, /*End of Scope*/
/*15915*/     /*Scope*/ 71, /*->15987*/
/*15916*/       OPC_CheckChild0Type, MVT::i64,
/*15918*/       OPC_Scope, 14, /*->15934*/ // 2 children in Scope
/*15920*/         OPC_MoveChild, 1,
/*15922*/         OPC_CheckInteger, 0, 
/*15924*/         OPC_MoveParent,
/*15925*/         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)
/*15934*/       /*Scope*/ 51, /*->15986*/
/*15935*/         OPC_RecordChild1, // #1 = $src2
/*15936*/         OPC_Scope, 37, /*->15975*/ // 2 children in Scope
/*15938*/           OPC_MoveChild, 1,
/*15940*/           OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*15943*/           OPC_Scope, 14, /*->15959*/ // 2 children in Scope
/*15945*/             OPC_CheckPredicate, 10, // Predicate_i64immSExt8
/*15947*/             OPC_MoveParent,
/*15948*/             OPC_EmitConvertToTarget, 1,
/*15950*/             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)
/*15959*/           /*Scope*/ 14, /*->15974*/
/*15960*/             OPC_CheckPredicate, 11, // Predicate_i64immSExt32
/*15962*/             OPC_MoveParent,
/*15963*/             OPC_EmitConvertToTarget, 1,
/*15965*/             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)
/*15974*/           0, /*End of Scope*/
/*15975*/         /*Scope*/ 9, /*->15985*/
/*15976*/           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)
/*15985*/         0, /*End of Scope*/
/*15986*/       0, /*End of Scope*/
/*15987*/     /*Scope*/ 41, /*->16029*/
/*15988*/       OPC_CheckChild0Type, MVT::f32,
/*15990*/       OPC_RecordChild1, // #1 = $rhs
/*15991*/       OPC_Scope, 11, /*->16004*/ // 3 children in Scope
/*15993*/         OPC_CheckPatternPredicate, 8, // (!Subtarget->hasXMM())
/*15995*/         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)
/*16004*/       /*Scope*/ 11, /*->16016*/
/*16005*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*16007*/         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)
/*16016*/       /*Scope*/ 11, /*->16028*/
/*16017*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*16019*/         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)
/*16028*/       0, /*End of Scope*/
/*16029*/     /*Scope*/ 41, /*->16071*/
/*16030*/       OPC_CheckChild0Type, MVT::f64,
/*16032*/       OPC_RecordChild1, // #1 = $rhs
/*16033*/       OPC_Scope, 11, /*->16046*/ // 3 children in Scope
/*16035*/         OPC_CheckPatternPredicate, 9, // (!Subtarget->hasXMMInt())
/*16037*/         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)
/*16046*/       /*Scope*/ 11, /*->16058*/
/*16047*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*16049*/         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)
/*16058*/       /*Scope*/ 11, /*->16070*/
/*16059*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*16061*/         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)
/*16070*/       0, /*End of Scope*/
/*16071*/     /*Scope*/ 12, /*->16084*/
/*16072*/       OPC_CheckChild0Type, MVT::f80,
/*16074*/       OPC_RecordChild1, // #1 = $rhs
/*16075*/       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)
/*16084*/     0, /*End of Scope*/
/*16085*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 0|128,108|128,1/*30208*/,  TARGET_VAL(ISD::INTRINSIC_WO_CHAIN),// ->46299
/*16091*/   OPC_MoveChild, 0,
/*16093*/   OPC_Scope, 82, /*->16177*/ // 341 children in Scope
/*16095*/     OPC_CheckInteger, 103|128,1/*231*/, 
/*16098*/     OPC_MoveParent,
/*16099*/     OPC_RecordChild1, // #0 = $src1
/*16100*/     OPC_Scope, 51, /*->16153*/ // 2 children in Scope
/*16102*/       OPC_MoveChild, 2,
/*16104*/       OPC_CheckOpcode, TARGET_VAL(ISD::ANY_EXTEND),
/*16107*/       OPC_MoveChild, 0,
/*16109*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*16112*/       OPC_RecordMemRef,
/*16113*/       OPC_RecordNode, // #1 = 'ld' chained node
/*16114*/       OPC_CheckFoldableChainNode,
/*16115*/       OPC_RecordChild1, // #2 = $src2
/*16116*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*16118*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*16120*/       OPC_CheckType, MVT::i16,
/*16122*/       OPC_MoveParent,
/*16123*/       OPC_MoveParent,
/*16124*/       OPC_RecordChild3, // #3 = $src3
/*16125*/       OPC_MoveChild, 3,
/*16127*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*16130*/       OPC_MoveParent,
/*16131*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*16133*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*16136*/       OPC_EmitMergeInputChains1_1,
/*16137*/       OPC_EmitConvertToTarget, 3,
/*16139*/       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)
/*16153*/     /*Scope*/ 22, /*->16176*/
/*16154*/       OPC_RecordChild2, // #1 = $src2
/*16155*/       OPC_RecordChild3, // #2 = $src3
/*16156*/       OPC_MoveChild, 3,
/*16158*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*16161*/       OPC_MoveParent,
/*16162*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*16164*/       OPC_EmitConvertToTarget, 2,
/*16166*/       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)
/*16176*/     0, /*End of Scope*/
/*16177*/   /*Scope*/ 122, /*->16300*/
/*16178*/     OPC_CheckInteger, 56|128,3/*440*/, 
/*16181*/     OPC_MoveParent,
/*16182*/     OPC_RecordChild1, // #0 = $src1
/*16183*/     OPC_Scope, 71, /*->16256*/ // 2 children in Scope
/*16185*/       OPC_MoveChild, 2,
/*16187*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*16190*/       OPC_RecordMemRef,
/*16191*/       OPC_RecordNode, // #1 = 'ld' chained node
/*16192*/       OPC_CheckFoldableChainNode,
/*16193*/       OPC_RecordChild1, // #2 = $src2
/*16194*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*16196*/       OPC_CheckPredicate, 3, // Predicate_load
/*16198*/       OPC_MoveParent,
/*16199*/       OPC_RecordChild3, // #3 = $src3
/*16200*/       OPC_MoveChild, 3,
/*16202*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*16205*/       OPC_MoveParent,
/*16206*/       OPC_Scope, 23, /*->16231*/ // 2 children in Scope
/*16208*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*16210*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*16213*/         OPC_EmitMergeInputChains1_1,
/*16214*/         OPC_EmitConvertToTarget, 3,
/*16216*/         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)
/*16231*/       /*Scope*/ 23, /*->16255*/
/*16232*/         OPC_CheckPatternPredicate, 11, // (Subtarget->hasSSE42())
/*16234*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*16237*/         OPC_EmitMergeInputChains1_1,
/*16238*/         OPC_EmitConvertToTarget, 3,
/*16240*/         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)
/*16255*/       0, /*End of Scope*/
/*16256*/     /*Scope*/ 42, /*->16299*/
/*16257*/       OPC_RecordChild2, // #1 = $src2
/*16258*/       OPC_RecordChild3, // #2 = $src3
/*16259*/       OPC_MoveChild, 3,
/*16261*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*16264*/       OPC_MoveParent,
/*16265*/       OPC_Scope, 15, /*->16282*/ // 2 children in Scope
/*16267*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*16269*/         OPC_EmitConvertToTarget, 2,
/*16271*/         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)
/*16282*/       /*Scope*/ 15, /*->16298*/
/*16283*/         OPC_CheckPatternPredicate, 11, // (Subtarget->hasSSE42())
/*16285*/         OPC_EmitConvertToTarget, 2,
/*16287*/         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)
/*16298*/       0, /*End of Scope*/
/*16299*/     0, /*End of Scope*/
/*16300*/   /*Scope*/ 122, /*->16423*/
/*16301*/     OPC_CheckInteger, 57|128,3/*441*/, 
/*16304*/     OPC_MoveParent,
/*16305*/     OPC_RecordChild1, // #0 = $src1
/*16306*/     OPC_Scope, 71, /*->16379*/ // 2 children in Scope
/*16308*/       OPC_MoveChild, 2,
/*16310*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*16313*/       OPC_RecordMemRef,
/*16314*/       OPC_RecordNode, // #1 = 'ld' chained node
/*16315*/       OPC_CheckFoldableChainNode,
/*16316*/       OPC_RecordChild1, // #2 = $src2
/*16317*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*16319*/       OPC_CheckPredicate, 3, // Predicate_load
/*16321*/       OPC_MoveParent,
/*16322*/       OPC_RecordChild3, // #3 = $src3
/*16323*/       OPC_MoveChild, 3,
/*16325*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*16328*/       OPC_MoveParent,
/*16329*/       OPC_Scope, 23, /*->16354*/ // 2 children in Scope
/*16331*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*16333*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*16336*/         OPC_EmitMergeInputChains1_1,
/*16337*/         OPC_EmitConvertToTarget, 3,
/*16339*/         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)
/*16354*/       /*Scope*/ 23, /*->16378*/
/*16355*/         OPC_CheckPatternPredicate, 11, // (Subtarget->hasSSE42())
/*16357*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*16360*/         OPC_EmitMergeInputChains1_1,
/*16361*/         OPC_EmitConvertToTarget, 3,
/*16363*/         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)
/*16378*/       0, /*End of Scope*/
/*16379*/     /*Scope*/ 42, /*->16422*/
/*16380*/       OPC_RecordChild2, // #1 = $src2
/*16381*/       OPC_RecordChild3, // #2 = $src3
/*16382*/       OPC_MoveChild, 3,
/*16384*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*16387*/       OPC_MoveParent,
/*16388*/       OPC_Scope, 15, /*->16405*/ // 2 children in Scope
/*16390*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*16392*/         OPC_EmitConvertToTarget, 2,
/*16394*/         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)
/*16405*/       /*Scope*/ 15, /*->16421*/
/*16406*/         OPC_CheckPatternPredicate, 11, // (Subtarget->hasSSE42())
/*16408*/         OPC_EmitConvertToTarget, 2,
/*16410*/         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)
/*16421*/       0, /*End of Scope*/
/*16422*/     0, /*End of Scope*/
/*16423*/   /*Scope*/ 122, /*->16546*/
/*16424*/     OPC_CheckInteger, 58|128,3/*442*/, 
/*16427*/     OPC_MoveParent,
/*16428*/     OPC_RecordChild1, // #0 = $src1
/*16429*/     OPC_Scope, 71, /*->16502*/ // 2 children in Scope
/*16431*/       OPC_MoveChild, 2,
/*16433*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*16436*/       OPC_RecordMemRef,
/*16437*/       OPC_RecordNode, // #1 = 'ld' chained node
/*16438*/       OPC_CheckFoldableChainNode,
/*16439*/       OPC_RecordChild1, // #2 = $src2
/*16440*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*16442*/       OPC_CheckPredicate, 3, // Predicate_load
/*16444*/       OPC_MoveParent,
/*16445*/       OPC_RecordChild3, // #3 = $src3
/*16446*/       OPC_MoveChild, 3,
/*16448*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*16451*/       OPC_MoveParent,
/*16452*/       OPC_Scope, 23, /*->16477*/ // 2 children in Scope
/*16454*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*16456*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*16459*/         OPC_EmitMergeInputChains1_1,
/*16460*/         OPC_EmitConvertToTarget, 3,
/*16462*/         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)
/*16477*/       /*Scope*/ 23, /*->16501*/
/*16478*/         OPC_CheckPatternPredicate, 11, // (Subtarget->hasSSE42())
/*16480*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*16483*/         OPC_EmitMergeInputChains1_1,
/*16484*/         OPC_EmitConvertToTarget, 3,
/*16486*/         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)
/*16501*/       0, /*End of Scope*/
/*16502*/     /*Scope*/ 42, /*->16545*/
/*16503*/       OPC_RecordChild2, // #1 = $src2
/*16504*/       OPC_RecordChild3, // #2 = $src3
/*16505*/       OPC_MoveChild, 3,
/*16507*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*16510*/       OPC_MoveParent,
/*16511*/       OPC_Scope, 15, /*->16528*/ // 2 children in Scope
/*16513*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*16515*/         OPC_EmitConvertToTarget, 2,
/*16517*/         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)
/*16528*/       /*Scope*/ 15, /*->16544*/
/*16529*/         OPC_CheckPatternPredicate, 11, // (Subtarget->hasSSE42())
/*16531*/         OPC_EmitConvertToTarget, 2,
/*16533*/         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)
/*16544*/       0, /*End of Scope*/
/*16545*/     0, /*End of Scope*/
/*16546*/   /*Scope*/ 122, /*->16669*/
/*16547*/     OPC_CheckInteger, 59|128,3/*443*/, 
/*16550*/     OPC_MoveParent,
/*16551*/     OPC_RecordChild1, // #0 = $src1
/*16552*/     OPC_Scope, 71, /*->16625*/ // 2 children in Scope
/*16554*/       OPC_MoveChild, 2,
/*16556*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*16559*/       OPC_RecordMemRef,
/*16560*/       OPC_RecordNode, // #1 = 'ld' chained node
/*16561*/       OPC_CheckFoldableChainNode,
/*16562*/       OPC_RecordChild1, // #2 = $src2
/*16563*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*16565*/       OPC_CheckPredicate, 3, // Predicate_load
/*16567*/       OPC_MoveParent,
/*16568*/       OPC_RecordChild3, // #3 = $src3
/*16569*/       OPC_MoveChild, 3,
/*16571*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*16574*/       OPC_MoveParent,
/*16575*/       OPC_Scope, 23, /*->16600*/ // 2 children in Scope
/*16577*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*16579*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*16582*/         OPC_EmitMergeInputChains1_1,
/*16583*/         OPC_EmitConvertToTarget, 3,
/*16585*/         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)
/*16600*/       /*Scope*/ 23, /*->16624*/
/*16601*/         OPC_CheckPatternPredicate, 11, // (Subtarget->hasSSE42())
/*16603*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*16606*/         OPC_EmitMergeInputChains1_1,
/*16607*/         OPC_EmitConvertToTarget, 3,
/*16609*/         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)
/*16624*/       0, /*End of Scope*/
/*16625*/     /*Scope*/ 42, /*->16668*/
/*16626*/       OPC_RecordChild2, // #1 = $src2
/*16627*/       OPC_RecordChild3, // #2 = $src3
/*16628*/       OPC_MoveChild, 3,
/*16630*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*16633*/       OPC_MoveParent,
/*16634*/       OPC_Scope, 15, /*->16651*/ // 2 children in Scope
/*16636*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*16638*/         OPC_EmitConvertToTarget, 2,
/*16640*/         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)
/*16651*/       /*Scope*/ 15, /*->16667*/
/*16652*/         OPC_CheckPatternPredicate, 11, // (Subtarget->hasSSE42())
/*16654*/         OPC_EmitConvertToTarget, 2,
/*16656*/         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)
/*16667*/       0, /*End of Scope*/
/*16668*/     0, /*End of Scope*/
/*16669*/   /*Scope*/ 122, /*->16792*/
/*16670*/     OPC_CheckInteger, 60|128,3/*444*/, 
/*16673*/     OPC_MoveParent,
/*16674*/     OPC_RecordChild1, // #0 = $src1
/*16675*/     OPC_Scope, 71, /*->16748*/ // 2 children in Scope
/*16677*/       OPC_MoveChild, 2,
/*16679*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*16682*/       OPC_RecordMemRef,
/*16683*/       OPC_RecordNode, // #1 = 'ld' chained node
/*16684*/       OPC_CheckFoldableChainNode,
/*16685*/       OPC_RecordChild1, // #2 = $src2
/*16686*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*16688*/       OPC_CheckPredicate, 3, // Predicate_load
/*16690*/       OPC_MoveParent,
/*16691*/       OPC_RecordChild3, // #3 = $src3
/*16692*/       OPC_MoveChild, 3,
/*16694*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*16697*/       OPC_MoveParent,
/*16698*/       OPC_Scope, 23, /*->16723*/ // 2 children in Scope
/*16700*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*16702*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*16705*/         OPC_EmitMergeInputChains1_1,
/*16706*/         OPC_EmitConvertToTarget, 3,
/*16708*/         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)
/*16723*/       /*Scope*/ 23, /*->16747*/
/*16724*/         OPC_CheckPatternPredicate, 11, // (Subtarget->hasSSE42())
/*16726*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*16729*/         OPC_EmitMergeInputChains1_1,
/*16730*/         OPC_EmitConvertToTarget, 3,
/*16732*/         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)
/*16747*/       0, /*End of Scope*/
/*16748*/     /*Scope*/ 42, /*->16791*/
/*16749*/       OPC_RecordChild2, // #1 = $src2
/*16750*/       OPC_RecordChild3, // #2 = $src3
/*16751*/       OPC_MoveChild, 3,
/*16753*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*16756*/       OPC_MoveParent,
/*16757*/       OPC_Scope, 15, /*->16774*/ // 2 children in Scope
/*16759*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*16761*/         OPC_EmitConvertToTarget, 2,
/*16763*/         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)
/*16774*/       /*Scope*/ 15, /*->16790*/
/*16775*/         OPC_CheckPatternPredicate, 11, // (Subtarget->hasSSE42())
/*16777*/         OPC_EmitConvertToTarget, 2,
/*16779*/         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)
/*16790*/       0, /*End of Scope*/
/*16791*/     0, /*End of Scope*/
/*16792*/   /*Scope*/ 122, /*->16915*/
/*16793*/     OPC_CheckInteger, 61|128,3/*445*/, 
/*16796*/     OPC_MoveParent,
/*16797*/     OPC_RecordChild1, // #0 = $src1
/*16798*/     OPC_Scope, 71, /*->16871*/ // 2 children in Scope
/*16800*/       OPC_MoveChild, 2,
/*16802*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*16805*/       OPC_RecordMemRef,
/*16806*/       OPC_RecordNode, // #1 = 'ld' chained node
/*16807*/       OPC_CheckFoldableChainNode,
/*16808*/       OPC_RecordChild1, // #2 = $src2
/*16809*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*16811*/       OPC_CheckPredicate, 3, // Predicate_load
/*16813*/       OPC_MoveParent,
/*16814*/       OPC_RecordChild3, // #3 = $src3
/*16815*/       OPC_MoveChild, 3,
/*16817*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*16820*/       OPC_MoveParent,
/*16821*/       OPC_Scope, 23, /*->16846*/ // 2 children in Scope
/*16823*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*16825*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*16828*/         OPC_EmitMergeInputChains1_1,
/*16829*/         OPC_EmitConvertToTarget, 3,
/*16831*/         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)
/*16846*/       /*Scope*/ 23, /*->16870*/
/*16847*/         OPC_CheckPatternPredicate, 11, // (Subtarget->hasSSE42())
/*16849*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*16852*/         OPC_EmitMergeInputChains1_1,
/*16853*/         OPC_EmitConvertToTarget, 3,
/*16855*/         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)
/*16870*/       0, /*End of Scope*/
/*16871*/     /*Scope*/ 42, /*->16914*/
/*16872*/       OPC_RecordChild2, // #1 = $src2
/*16873*/       OPC_RecordChild3, // #2 = $src3
/*16874*/       OPC_MoveChild, 3,
/*16876*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*16879*/       OPC_MoveParent,
/*16880*/       OPC_Scope, 15, /*->16897*/ // 2 children in Scope
/*16882*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*16884*/         OPC_EmitConvertToTarget, 2,
/*16886*/         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)
/*16897*/       /*Scope*/ 15, /*->16913*/
/*16898*/         OPC_CheckPatternPredicate, 11, // (Subtarget->hasSSE42())
/*16900*/         OPC_EmitConvertToTarget, 2,
/*16902*/         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)
/*16913*/       0, /*End of Scope*/
/*16914*/     0, /*End of Scope*/
/*16915*/   /*Scope*/ 25|128,1/*153*/, /*->17070*/
/*16917*/     OPC_CheckInteger, 48|128,3/*432*/, 
/*16920*/     OPC_MoveParent,
/*16921*/     OPC_RecordChild1, // #0 = $src1
/*16922*/     OPC_RecordChild2, // #1 = physreg input EAX
/*16923*/     OPC_Scope, 88, /*->17013*/ // 2 children in Scope
/*16925*/       OPC_MoveChild, 3,
/*16927*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*16930*/       OPC_RecordMemRef,
/*16931*/       OPC_RecordNode, // #2 = 'ld' chained node
/*16932*/       OPC_CheckFoldableChainNode,
/*16933*/       OPC_RecordChild1, // #3 = $src3
/*16934*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*16936*/       OPC_CheckPredicate, 3, // Predicate_load
/*16938*/       OPC_MoveParent,
/*16939*/       OPC_RecordChild4, // #4 = physreg input EDX
/*16940*/       OPC_RecordChild5, // #5 = $src5
/*16941*/       OPC_MoveChild, 5,
/*16943*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*16946*/       OPC_MoveParent,
/*16947*/       OPC_Scope, 31, /*->16980*/ // 2 children in Scope
/*16949*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*16951*/         OPC_CheckComplexPat, /*CP*/0, /*#*/3, // SelectAddr:$src3 #6 #7 #8 #9 #10
/*16954*/         OPC_EmitMergeInputChains, 1, 2, 
/*16957*/         OPC_EmitConvertToTarget, 5,
/*16959*/         OPC_EmitCopyToReg, 1, X86::EAX,
/*16962*/         OPC_EmitCopyToReg, 4, X86::EDX,
/*16965*/         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)
/*16980*/       /*Scope*/ 31, /*->17012*/
/*16981*/         OPC_CheckPatternPredicate, 11, // (Subtarget->hasSSE42())
/*16983*/         OPC_CheckComplexPat, /*CP*/0, /*#*/3, // SelectAddr:$src3 #6 #7 #8 #9 #10
/*16986*/         OPC_EmitMergeInputChains, 1, 2, 
/*16989*/         OPC_EmitConvertToTarget, 5,
/*16991*/         OPC_EmitCopyToReg, 1, X86::EAX,
/*16994*/         OPC_EmitCopyToReg, 4, X86::EDX,
/*16997*/         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)
/*17012*/       0, /*End of Scope*/
/*17013*/     /*Scope*/ 55, /*->17069*/
/*17014*/       OPC_RecordChild3, // #2 = $src3
/*17015*/       OPC_RecordChild4, // #3 = physreg input EDX
/*17016*/       OPC_RecordChild5, // #4 = $src5
/*17017*/       OPC_MoveChild, 5,
/*17019*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*17022*/       OPC_MoveParent,
/*17023*/       OPC_Scope, 21, /*->17046*/ // 2 children in Scope
/*17025*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*17027*/         OPC_EmitConvertToTarget, 4,
/*17029*/         OPC_EmitCopyToReg, 1, X86::EAX,
/*17032*/         OPC_EmitCopyToReg, 3, X86::EDX,
/*17035*/         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)
/*17046*/       /*Scope*/ 21, /*->17068*/
/*17047*/         OPC_CheckPatternPredicate, 11, // (Subtarget->hasSSE42())
/*17049*/         OPC_EmitConvertToTarget, 4,
/*17051*/         OPC_EmitCopyToReg, 1, X86::EAX,
/*17054*/         OPC_EmitCopyToReg, 3, X86::EDX,
/*17057*/         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)
/*17068*/       0, /*End of Scope*/
/*17069*/     0, /*End of Scope*/
/*17070*/   /*Scope*/ 25|128,1/*153*/, /*->17225*/
/*17072*/     OPC_CheckInteger, 49|128,3/*433*/, 
/*17075*/     OPC_MoveParent,
/*17076*/     OPC_RecordChild1, // #0 = $src1
/*17077*/     OPC_RecordChild2, // #1 = physreg input EAX
/*17078*/     OPC_Scope, 88, /*->17168*/ // 2 children in Scope
/*17080*/       OPC_MoveChild, 3,
/*17082*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*17085*/       OPC_RecordMemRef,
/*17086*/       OPC_RecordNode, // #2 = 'ld' chained node
/*17087*/       OPC_CheckFoldableChainNode,
/*17088*/       OPC_RecordChild1, // #3 = $src3
/*17089*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*17091*/       OPC_CheckPredicate, 3, // Predicate_load
/*17093*/       OPC_MoveParent,
/*17094*/       OPC_RecordChild4, // #4 = physreg input EDX
/*17095*/       OPC_RecordChild5, // #5 = $src5
/*17096*/       OPC_MoveChild, 5,
/*17098*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*17101*/       OPC_MoveParent,
/*17102*/       OPC_Scope, 31, /*->17135*/ // 2 children in Scope
/*17104*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*17106*/         OPC_CheckComplexPat, /*CP*/0, /*#*/3, // SelectAddr:$src3 #6 #7 #8 #9 #10
/*17109*/         OPC_EmitMergeInputChains, 1, 2, 
/*17112*/         OPC_EmitConvertToTarget, 5,
/*17114*/         OPC_EmitCopyToReg, 1, X86::EAX,
/*17117*/         OPC_EmitCopyToReg, 4, X86::EDX,
/*17120*/         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)
/*17135*/       /*Scope*/ 31, /*->17167*/
/*17136*/         OPC_CheckPatternPredicate, 11, // (Subtarget->hasSSE42())
/*17138*/         OPC_CheckComplexPat, /*CP*/0, /*#*/3, // SelectAddr:$src3 #6 #7 #8 #9 #10
/*17141*/         OPC_EmitMergeInputChains, 1, 2, 
/*17144*/         OPC_EmitConvertToTarget, 5,
/*17146*/         OPC_EmitCopyToReg, 1, X86::EAX,
/*17149*/         OPC_EmitCopyToReg, 4, X86::EDX,
/*17152*/         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)
/*17167*/       0, /*End of Scope*/
/*17168*/     /*Scope*/ 55, /*->17224*/
/*17169*/       OPC_RecordChild3, // #2 = $src3
/*17170*/       OPC_RecordChild4, // #3 = physreg input EDX
/*17171*/       OPC_RecordChild5, // #4 = $src5
/*17172*/       OPC_MoveChild, 5,
/*17174*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*17177*/       OPC_MoveParent,
/*17178*/       OPC_Scope, 21, /*->17201*/ // 2 children in Scope
/*17180*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*17182*/         OPC_EmitConvertToTarget, 4,
/*17184*/         OPC_EmitCopyToReg, 1, X86::EAX,
/*17187*/         OPC_EmitCopyToReg, 3, X86::EDX,
/*17190*/         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)
/*17201*/       /*Scope*/ 21, /*->17223*/
/*17202*/         OPC_CheckPatternPredicate, 11, // (Subtarget->hasSSE42())
/*17204*/         OPC_EmitConvertToTarget, 4,
/*17206*/         OPC_EmitCopyToReg, 1, X86::EAX,
/*17209*/         OPC_EmitCopyToReg, 3, X86::EDX,
/*17212*/         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)
/*17223*/       0, /*End of Scope*/
/*17224*/     0, /*End of Scope*/
/*17225*/   /*Scope*/ 25|128,1/*153*/, /*->17380*/
/*17227*/     OPC_CheckInteger, 50|128,3/*434*/, 
/*17230*/     OPC_MoveParent,
/*17231*/     OPC_RecordChild1, // #0 = $src1
/*17232*/     OPC_RecordChild2, // #1 = physreg input EAX
/*17233*/     OPC_Scope, 88, /*->17323*/ // 2 children in Scope
/*17235*/       OPC_MoveChild, 3,
/*17237*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*17240*/       OPC_RecordMemRef,
/*17241*/       OPC_RecordNode, // #2 = 'ld' chained node
/*17242*/       OPC_CheckFoldableChainNode,
/*17243*/       OPC_RecordChild1, // #3 = $src3
/*17244*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*17246*/       OPC_CheckPredicate, 3, // Predicate_load
/*17248*/       OPC_MoveParent,
/*17249*/       OPC_RecordChild4, // #4 = physreg input EDX
/*17250*/       OPC_RecordChild5, // #5 = $src5
/*17251*/       OPC_MoveChild, 5,
/*17253*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*17256*/       OPC_MoveParent,
/*17257*/       OPC_Scope, 31, /*->17290*/ // 2 children in Scope
/*17259*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*17261*/         OPC_CheckComplexPat, /*CP*/0, /*#*/3, // SelectAddr:$src3 #6 #7 #8 #9 #10
/*17264*/         OPC_EmitMergeInputChains, 1, 2, 
/*17267*/         OPC_EmitConvertToTarget, 5,
/*17269*/         OPC_EmitCopyToReg, 1, X86::EAX,
/*17272*/         OPC_EmitCopyToReg, 4, X86::EDX,
/*17275*/         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)
/*17290*/       /*Scope*/ 31, /*->17322*/
/*17291*/         OPC_CheckPatternPredicate, 11, // (Subtarget->hasSSE42())
/*17293*/         OPC_CheckComplexPat, /*CP*/0, /*#*/3, // SelectAddr:$src3 #6 #7 #8 #9 #10
/*17296*/         OPC_EmitMergeInputChains, 1, 2, 
/*17299*/         OPC_EmitConvertToTarget, 5,
/*17301*/         OPC_EmitCopyToReg, 1, X86::EAX,
/*17304*/         OPC_EmitCopyToReg, 4, X86::EDX,
/*17307*/         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)
/*17322*/       0, /*End of Scope*/
/*17323*/     /*Scope*/ 55, /*->17379*/
/*17324*/       OPC_RecordChild3, // #2 = $src3
/*17325*/       OPC_RecordChild4, // #3 = physreg input EDX
/*17326*/       OPC_RecordChild5, // #4 = $src5
/*17327*/       OPC_MoveChild, 5,
/*17329*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*17332*/       OPC_MoveParent,
/*17333*/       OPC_Scope, 21, /*->17356*/ // 2 children in Scope
/*17335*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*17337*/         OPC_EmitConvertToTarget, 4,
/*17339*/         OPC_EmitCopyToReg, 1, X86::EAX,
/*17342*/         OPC_EmitCopyToReg, 3, X86::EDX,
/*17345*/         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)
/*17356*/       /*Scope*/ 21, /*->17378*/
/*17357*/         OPC_CheckPatternPredicate, 11, // (Subtarget->hasSSE42())
/*17359*/         OPC_EmitConvertToTarget, 4,
/*17361*/         OPC_EmitCopyToReg, 1, X86::EAX,
/*17364*/         OPC_EmitCopyToReg, 3, X86::EDX,
/*17367*/         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)
/*17378*/       0, /*End of Scope*/
/*17379*/     0, /*End of Scope*/
/*17380*/   /*Scope*/ 25|128,1/*153*/, /*->17535*/
/*17382*/     OPC_CheckInteger, 51|128,3/*435*/, 
/*17385*/     OPC_MoveParent,
/*17386*/     OPC_RecordChild1, // #0 = $src1
/*17387*/     OPC_RecordChild2, // #1 = physreg input EAX
/*17388*/     OPC_Scope, 88, /*->17478*/ // 2 children in Scope
/*17390*/       OPC_MoveChild, 3,
/*17392*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*17395*/       OPC_RecordMemRef,
/*17396*/       OPC_RecordNode, // #2 = 'ld' chained node
/*17397*/       OPC_CheckFoldableChainNode,
/*17398*/       OPC_RecordChild1, // #3 = $src3
/*17399*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*17401*/       OPC_CheckPredicate, 3, // Predicate_load
/*17403*/       OPC_MoveParent,
/*17404*/       OPC_RecordChild4, // #4 = physreg input EDX
/*17405*/       OPC_RecordChild5, // #5 = $src5
/*17406*/       OPC_MoveChild, 5,
/*17408*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*17411*/       OPC_MoveParent,
/*17412*/       OPC_Scope, 31, /*->17445*/ // 2 children in Scope
/*17414*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*17416*/         OPC_CheckComplexPat, /*CP*/0, /*#*/3, // SelectAddr:$src3 #6 #7 #8 #9 #10
/*17419*/         OPC_EmitMergeInputChains, 1, 2, 
/*17422*/         OPC_EmitConvertToTarget, 5,
/*17424*/         OPC_EmitCopyToReg, 1, X86::EAX,
/*17427*/         OPC_EmitCopyToReg, 4, X86::EDX,
/*17430*/         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)
/*17445*/       /*Scope*/ 31, /*->17477*/
/*17446*/         OPC_CheckPatternPredicate, 11, // (Subtarget->hasSSE42())
/*17448*/         OPC_CheckComplexPat, /*CP*/0, /*#*/3, // SelectAddr:$src3 #6 #7 #8 #9 #10
/*17451*/         OPC_EmitMergeInputChains, 1, 2, 
/*17454*/         OPC_EmitConvertToTarget, 5,
/*17456*/         OPC_EmitCopyToReg, 1, X86::EAX,
/*17459*/         OPC_EmitCopyToReg, 4, X86::EDX,
/*17462*/         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)
/*17477*/       0, /*End of Scope*/
/*17478*/     /*Scope*/ 55, /*->17534*/
/*17479*/       OPC_RecordChild3, // #2 = $src3
/*17480*/       OPC_RecordChild4, // #3 = physreg input EDX
/*17481*/       OPC_RecordChild5, // #4 = $src5
/*17482*/       OPC_MoveChild, 5,
/*17484*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*17487*/       OPC_MoveParent,
/*17488*/       OPC_Scope, 21, /*->17511*/ // 2 children in Scope
/*17490*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*17492*/         OPC_EmitConvertToTarget, 4,
/*17494*/         OPC_EmitCopyToReg, 1, X86::EAX,
/*17497*/         OPC_EmitCopyToReg, 3, X86::EDX,
/*17500*/         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)
/*17511*/       /*Scope*/ 21, /*->17533*/
/*17512*/         OPC_CheckPatternPredicate, 11, // (Subtarget->hasSSE42())
/*17514*/         OPC_EmitConvertToTarget, 4,
/*17516*/         OPC_EmitCopyToReg, 1, X86::EAX,
/*17519*/         OPC_EmitCopyToReg, 3, X86::EDX,
/*17522*/         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)
/*17533*/       0, /*End of Scope*/
/*17534*/     0, /*End of Scope*/
/*17535*/   /*Scope*/ 25|128,1/*153*/, /*->17690*/
/*17537*/     OPC_CheckInteger, 52|128,3/*436*/, 
/*17540*/     OPC_MoveParent,
/*17541*/     OPC_RecordChild1, // #0 = $src1
/*17542*/     OPC_RecordChild2, // #1 = physreg input EAX
/*17543*/     OPC_Scope, 88, /*->17633*/ // 2 children in Scope
/*17545*/       OPC_MoveChild, 3,
/*17547*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*17550*/       OPC_RecordMemRef,
/*17551*/       OPC_RecordNode, // #2 = 'ld' chained node
/*17552*/       OPC_CheckFoldableChainNode,
/*17553*/       OPC_RecordChild1, // #3 = $src3
/*17554*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*17556*/       OPC_CheckPredicate, 3, // Predicate_load
/*17558*/       OPC_MoveParent,
/*17559*/       OPC_RecordChild4, // #4 = physreg input EDX
/*17560*/       OPC_RecordChild5, // #5 = $src5
/*17561*/       OPC_MoveChild, 5,
/*17563*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*17566*/       OPC_MoveParent,
/*17567*/       OPC_Scope, 31, /*->17600*/ // 2 children in Scope
/*17569*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*17571*/         OPC_CheckComplexPat, /*CP*/0, /*#*/3, // SelectAddr:$src3 #6 #7 #8 #9 #10
/*17574*/         OPC_EmitMergeInputChains, 1, 2, 
/*17577*/         OPC_EmitConvertToTarget, 5,
/*17579*/         OPC_EmitCopyToReg, 1, X86::EAX,
/*17582*/         OPC_EmitCopyToReg, 4, X86::EDX,
/*17585*/         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)
/*17600*/       /*Scope*/ 31, /*->17632*/
/*17601*/         OPC_CheckPatternPredicate, 11, // (Subtarget->hasSSE42())
/*17603*/         OPC_CheckComplexPat, /*CP*/0, /*#*/3, // SelectAddr:$src3 #6 #7 #8 #9 #10
/*17606*/         OPC_EmitMergeInputChains, 1, 2, 
/*17609*/         OPC_EmitConvertToTarget, 5,
/*17611*/         OPC_EmitCopyToReg, 1, X86::EAX,
/*17614*/         OPC_EmitCopyToReg, 4, X86::EDX,
/*17617*/         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)
/*17632*/       0, /*End of Scope*/
/*17633*/     /*Scope*/ 55, /*->17689*/
/*17634*/       OPC_RecordChild3, // #2 = $src3
/*17635*/       OPC_RecordChild4, // #3 = physreg input EDX
/*17636*/       OPC_RecordChild5, // #4 = $src5
/*17637*/       OPC_MoveChild, 5,
/*17639*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*17642*/       OPC_MoveParent,
/*17643*/       OPC_Scope, 21, /*->17666*/ // 2 children in Scope
/*17645*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*17647*/         OPC_EmitConvertToTarget, 4,
/*17649*/         OPC_EmitCopyToReg, 1, X86::EAX,
/*17652*/         OPC_EmitCopyToReg, 3, X86::EDX,
/*17655*/         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)
/*17666*/       /*Scope*/ 21, /*->17688*/
/*17667*/         OPC_CheckPatternPredicate, 11, // (Subtarget->hasSSE42())
/*17669*/         OPC_EmitConvertToTarget, 4,
/*17671*/         OPC_EmitCopyToReg, 1, X86::EAX,
/*17674*/         OPC_EmitCopyToReg, 3, X86::EDX,
/*17677*/         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)
/*17688*/       0, /*End of Scope*/
/*17689*/     0, /*End of Scope*/
/*17690*/   /*Scope*/ 25|128,1/*153*/, /*->17845*/
/*17692*/     OPC_CheckInteger, 53|128,3/*437*/, 
/*17695*/     OPC_MoveParent,
/*17696*/     OPC_RecordChild1, // #0 = $src1
/*17697*/     OPC_RecordChild2, // #1 = physreg input EAX
/*17698*/     OPC_Scope, 88, /*->17788*/ // 2 children in Scope
/*17700*/       OPC_MoveChild, 3,
/*17702*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*17705*/       OPC_RecordMemRef,
/*17706*/       OPC_RecordNode, // #2 = 'ld' chained node
/*17707*/       OPC_CheckFoldableChainNode,
/*17708*/       OPC_RecordChild1, // #3 = $src3
/*17709*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*17711*/       OPC_CheckPredicate, 3, // Predicate_load
/*17713*/       OPC_MoveParent,
/*17714*/       OPC_RecordChild4, // #4 = physreg input EDX
/*17715*/       OPC_RecordChild5, // #5 = $src5
/*17716*/       OPC_MoveChild, 5,
/*17718*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*17721*/       OPC_MoveParent,
/*17722*/       OPC_Scope, 31, /*->17755*/ // 2 children in Scope
/*17724*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*17726*/         OPC_CheckComplexPat, /*CP*/0, /*#*/3, // SelectAddr:$src3 #6 #7 #8 #9 #10
/*17729*/         OPC_EmitMergeInputChains, 1, 2, 
/*17732*/         OPC_EmitConvertToTarget, 5,
/*17734*/         OPC_EmitCopyToReg, 1, X86::EAX,
/*17737*/         OPC_EmitCopyToReg, 4, X86::EDX,
/*17740*/         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)
/*17755*/       /*Scope*/ 31, /*->17787*/
/*17756*/         OPC_CheckPatternPredicate, 11, // (Subtarget->hasSSE42())
/*17758*/         OPC_CheckComplexPat, /*CP*/0, /*#*/3, // SelectAddr:$src3 #6 #7 #8 #9 #10
/*17761*/         OPC_EmitMergeInputChains, 1, 2, 
/*17764*/         OPC_EmitConvertToTarget, 5,
/*17766*/         OPC_EmitCopyToReg, 1, X86::EAX,
/*17769*/         OPC_EmitCopyToReg, 4, X86::EDX,
/*17772*/         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)
/*17787*/       0, /*End of Scope*/
/*17788*/     /*Scope*/ 55, /*->17844*/
/*17789*/       OPC_RecordChild3, // #2 = $src3
/*17790*/       OPC_RecordChild4, // #3 = physreg input EDX
/*17791*/       OPC_RecordChild5, // #4 = $src5
/*17792*/       OPC_MoveChild, 5,
/*17794*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*17797*/       OPC_MoveParent,
/*17798*/       OPC_Scope, 21, /*->17821*/ // 2 children in Scope
/*17800*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*17802*/         OPC_EmitConvertToTarget, 4,
/*17804*/         OPC_EmitCopyToReg, 1, X86::EAX,
/*17807*/         OPC_EmitCopyToReg, 3, X86::EDX,
/*17810*/         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)
/*17821*/       /*Scope*/ 21, /*->17843*/
/*17822*/         OPC_CheckPatternPredicate, 11, // (Subtarget->hasSSE42())
/*17824*/         OPC_EmitConvertToTarget, 4,
/*17826*/         OPC_EmitCopyToReg, 1, X86::EAX,
/*17829*/         OPC_EmitCopyToReg, 3, X86::EDX,
/*17832*/         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)
/*17843*/       0, /*End of Scope*/
/*17844*/     0, /*End of Scope*/
/*17845*/   /*Scope*/ 74, /*->17920*/
/*17846*/     OPC_CheckInteger, 91|128,1/*219*/, 
/*17849*/     OPC_MoveParent,
/*17850*/     OPC_RecordChild1, // #0 = $src1
/*17851*/     OPC_Scope, 43, /*->17896*/ // 2 children in Scope
/*17853*/       OPC_MoveChild, 2,
/*17855*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*17858*/       OPC_RecordMemRef,
/*17859*/       OPC_RecordNode, // #1 = 'ld' chained node
/*17860*/       OPC_CheckFoldableChainNode,
/*17861*/       OPC_RecordChild1, // #2 = $src2
/*17862*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*17864*/       OPC_CheckPredicate, 3, // Predicate_load
/*17866*/       OPC_MoveParent,
/*17867*/       OPC_RecordChild3, // #3 = $src3
/*17868*/       OPC_MoveChild, 3,
/*17870*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*17873*/       OPC_MoveParent,
/*17874*/       OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*17876*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*17879*/       OPC_EmitMergeInputChains1_1,
/*17880*/       OPC_EmitConvertToTarget, 3,
/*17882*/       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)
/*17896*/     /*Scope*/ 22, /*->17919*/
/*17897*/       OPC_RecordChild2, // #1 = $src2
/*17898*/       OPC_RecordChild3, // #2 = $src3
/*17899*/       OPC_MoveChild, 3,
/*17901*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*17904*/       OPC_MoveParent,
/*17905*/       OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*17907*/       OPC_EmitConvertToTarget, 2,
/*17909*/       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)
/*17919*/     0, /*End of Scope*/
/*17920*/   /*Scope*/ 71, /*->17992*/
/*17921*/     OPC_CheckInteger, 92|128,3/*476*/, 
/*17924*/     OPC_MoveParent,
/*17925*/     OPC_Scope, 42, /*->17969*/ // 2 children in Scope
/*17927*/       OPC_MoveChild, 1,
/*17929*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*17932*/       OPC_RecordMemRef,
/*17933*/       OPC_RecordNode, // #0 = 'ld' chained node
/*17934*/       OPC_CheckFoldableChainNode,
/*17935*/       OPC_RecordChild1, // #1 = $src1
/*17936*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*17938*/       OPC_CheckPredicate, 3, // Predicate_load
/*17940*/       OPC_MoveParent,
/*17941*/       OPC_RecordChild2, // #2 = $src2
/*17942*/       OPC_MoveChild, 2,
/*17944*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*17947*/       OPC_MoveParent,
/*17948*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*17950*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #3 #4 #5 #6 #7
/*17953*/       OPC_EmitMergeInputChains1_0,
/*17954*/       OPC_EmitConvertToTarget, 2,
/*17956*/       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)
/*17969*/     /*Scope*/ 21, /*->17991*/
/*17970*/       OPC_RecordChild1, // #0 = $src1
/*17971*/       OPC_RecordChild2, // #1 = $src2
/*17972*/       OPC_MoveChild, 2,
/*17974*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*17977*/       OPC_MoveParent,
/*17978*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*17980*/       OPC_EmitConvertToTarget, 1,
/*17982*/       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)
/*17991*/     0, /*End of Scope*/
/*17992*/   /*Scope*/ 87, /*->18080*/
/*17993*/     OPC_CheckInteger, 35|128,2/*291*/, 
/*17996*/     OPC_MoveParent,
/*17997*/     OPC_Scope, 54, /*->18053*/ // 2 children in Scope
/*17999*/       OPC_MoveChild, 1,
/*18001*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*18004*/       OPC_RecordMemRef,
/*18005*/       OPC_RecordNode, // #0 = 'ld' chained node
/*18006*/       OPC_CheckFoldableChainNode,
/*18007*/       OPC_RecordChild1, // #1 = $src
/*18008*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*18010*/       OPC_CheckPredicate, 3, // Predicate_load
/*18012*/       OPC_MoveParent,
/*18013*/       OPC_Scope, 18, /*->18033*/ // 2 children in Scope
/*18015*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*18017*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*18020*/         OPC_EmitMergeInputChains1_0,
/*18021*/         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)
/*18033*/       /*Scope*/ 18, /*->18052*/
/*18034*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*18036*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*18039*/         OPC_EmitMergeInputChains1_0,
/*18040*/         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)
/*18052*/       0, /*End of Scope*/
/*18053*/     /*Scope*/ 25, /*->18079*/
/*18054*/       OPC_RecordChild1, // #0 = $src
/*18055*/       OPC_Scope, 10, /*->18067*/ // 2 children in Scope
/*18057*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*18059*/         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)
/*18067*/       /*Scope*/ 10, /*->18078*/
/*18068*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*18070*/         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)
/*18078*/       0, /*End of Scope*/
/*18079*/     0, /*End of Scope*/
/*18080*/   /*Scope*/ 87, /*->18168*/
/*18081*/     OPC_CheckInteger, 36|128,2/*292*/, 
/*18084*/     OPC_MoveParent,
/*18085*/     OPC_Scope, 54, /*->18141*/ // 2 children in Scope
/*18087*/       OPC_MoveChild, 1,
/*18089*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*18092*/       OPC_RecordMemRef,
/*18093*/       OPC_RecordNode, // #0 = 'ld' chained node
/*18094*/       OPC_CheckFoldableChainNode,
/*18095*/       OPC_RecordChild1, // #1 = $src
/*18096*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*18098*/       OPC_CheckPredicate, 3, // Predicate_load
/*18100*/       OPC_MoveParent,
/*18101*/       OPC_Scope, 18, /*->18121*/ // 2 children in Scope
/*18103*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*18105*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*18108*/         OPC_EmitMergeInputChains1_0,
/*18109*/         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)
/*18121*/       /*Scope*/ 18, /*->18140*/
/*18122*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*18124*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*18127*/         OPC_EmitMergeInputChains1_0,
/*18128*/         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)
/*18140*/       0, /*End of Scope*/
/*18141*/     /*Scope*/ 25, /*->18167*/
/*18142*/       OPC_RecordChild1, // #0 = $src
/*18143*/       OPC_Scope, 10, /*->18155*/ // 2 children in Scope
/*18145*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*18147*/         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)
/*18155*/       /*Scope*/ 10, /*->18166*/
/*18156*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*18158*/         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)
/*18166*/       0, /*End of Scope*/
/*18167*/     0, /*End of Scope*/
/*18168*/   /*Scope*/ 87, /*->18256*/
/*18169*/     OPC_CheckInteger, 82|128,3/*466*/, 
/*18172*/     OPC_MoveParent,
/*18173*/     OPC_Scope, 54, /*->18229*/ // 2 children in Scope
/*18175*/       OPC_MoveChild, 1,
/*18177*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*18180*/       OPC_RecordMemRef,
/*18181*/       OPC_RecordNode, // #0 = 'ld' chained node
/*18182*/       OPC_CheckFoldableChainNode,
/*18183*/       OPC_RecordChild1, // #1 = $src
/*18184*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*18186*/       OPC_CheckPredicate, 3, // Predicate_load
/*18188*/       OPC_MoveParent,
/*18189*/       OPC_Scope, 18, /*->18209*/ // 2 children in Scope
/*18191*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*18193*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*18196*/         OPC_EmitMergeInputChains1_0,
/*18197*/         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)
/*18209*/       /*Scope*/ 18, /*->18228*/
/*18210*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*18212*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*18215*/         OPC_EmitMergeInputChains1_0,
/*18216*/         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)
/*18228*/       0, /*End of Scope*/
/*18229*/     /*Scope*/ 25, /*->18255*/
/*18230*/       OPC_RecordChild1, // #0 = $src
/*18231*/       OPC_Scope, 10, /*->18243*/ // 2 children in Scope
/*18233*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*18235*/         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)
/*18243*/       /*Scope*/ 10, /*->18254*/
/*18244*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*18246*/         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)
/*18254*/       0, /*End of Scope*/
/*18255*/     0, /*End of Scope*/
/*18256*/   /*Scope*/ 87, /*->18344*/
/*18257*/     OPC_CheckInteger, 83|128,3/*467*/, 
/*18260*/     OPC_MoveParent,
/*18261*/     OPC_Scope, 54, /*->18317*/ // 2 children in Scope
/*18263*/       OPC_MoveChild, 1,
/*18265*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*18268*/       OPC_RecordMemRef,
/*18269*/       OPC_RecordNode, // #0 = 'ld' chained node
/*18270*/       OPC_CheckFoldableChainNode,
/*18271*/       OPC_RecordChild1, // #1 = $src
/*18272*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*18274*/       OPC_CheckPredicate, 3, // Predicate_load
/*18276*/       OPC_MoveParent,
/*18277*/       OPC_Scope, 18, /*->18297*/ // 2 children in Scope
/*18279*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*18281*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*18284*/         OPC_EmitMergeInputChains1_0,
/*18285*/         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)
/*18297*/       /*Scope*/ 18, /*->18316*/
/*18298*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*18300*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*18303*/         OPC_EmitMergeInputChains1_0,
/*18304*/         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)
/*18316*/       0, /*End of Scope*/
/*18317*/     /*Scope*/ 25, /*->18343*/
/*18318*/       OPC_RecordChild1, // #0 = $src
/*18319*/       OPC_Scope, 10, /*->18331*/ // 2 children in Scope
/*18321*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*18323*/         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)
/*18331*/       /*Scope*/ 10, /*->18342*/
/*18332*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*18334*/         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)
/*18342*/       0, /*End of Scope*/
/*18343*/     0, /*End of Scope*/
/*18344*/   /*Scope*/ 87, /*->18432*/
/*18345*/     OPC_CheckInteger, 43|128,2/*299*/, 
/*18348*/     OPC_MoveParent,
/*18349*/     OPC_Scope, 54, /*->18405*/ // 2 children in Scope
/*18351*/       OPC_MoveChild, 1,
/*18353*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*18356*/       OPC_RecordMemRef,
/*18357*/       OPC_RecordNode, // #0 = 'ld' chained node
/*18358*/       OPC_CheckFoldableChainNode,
/*18359*/       OPC_RecordChild1, // #1 = $src
/*18360*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*18362*/       OPC_CheckPredicate, 3, // Predicate_load
/*18364*/       OPC_MoveParent,
/*18365*/       OPC_Scope, 18, /*->18385*/ // 2 children in Scope
/*18367*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*18369*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*18372*/         OPC_EmitMergeInputChains1_0,
/*18373*/         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)
/*18385*/       /*Scope*/ 18, /*->18404*/
/*18386*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*18388*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*18391*/         OPC_EmitMergeInputChains1_0,
/*18392*/         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)
/*18404*/       0, /*End of Scope*/
/*18405*/     /*Scope*/ 25, /*->18431*/
/*18406*/       OPC_RecordChild1, // #0 = $src
/*18407*/       OPC_Scope, 10, /*->18419*/ // 2 children in Scope
/*18409*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*18411*/         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)
/*18419*/       /*Scope*/ 10, /*->18430*/
/*18420*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*18422*/         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)
/*18430*/       0, /*End of Scope*/
/*18431*/     0, /*End of Scope*/
/*18432*/   /*Scope*/ 87, /*->18520*/
/*18433*/     OPC_CheckInteger, 44|128,2/*300*/, 
/*18436*/     OPC_MoveParent,
/*18437*/     OPC_Scope, 54, /*->18493*/ // 2 children in Scope
/*18439*/       OPC_MoveChild, 1,
/*18441*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*18444*/       OPC_RecordMemRef,
/*18445*/       OPC_RecordNode, // #0 = 'ld' chained node
/*18446*/       OPC_CheckFoldableChainNode,
/*18447*/       OPC_RecordChild1, // #1 = $src
/*18448*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*18450*/       OPC_CheckPredicate, 3, // Predicate_load
/*18452*/       OPC_MoveParent,
/*18453*/       OPC_Scope, 18, /*->18473*/ // 2 children in Scope
/*18455*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*18457*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*18460*/         OPC_EmitMergeInputChains1_0,
/*18461*/         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)
/*18473*/       /*Scope*/ 18, /*->18492*/
/*18474*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*18476*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*18479*/         OPC_EmitMergeInputChains1_0,
/*18480*/         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)
/*18492*/       0, /*End of Scope*/
/*18493*/     /*Scope*/ 25, /*->18519*/
/*18494*/       OPC_RecordChild1, // #0 = $src
/*18495*/       OPC_Scope, 10, /*->18507*/ // 2 children in Scope
/*18497*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*18499*/         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)
/*18507*/       /*Scope*/ 10, /*->18518*/
/*18508*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*18510*/         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)
/*18518*/       0, /*End of Scope*/
/*18519*/     0, /*End of Scope*/
/*18520*/   /*Scope*/ 111, /*->18632*/
/*18521*/     OPC_CheckInteger, 78|128,3/*462*/, 
/*18524*/     OPC_MoveParent,
/*18525*/     OPC_Scope, 54, /*->18581*/ // 2 children in Scope
/*18527*/       OPC_MoveChild, 1,
/*18529*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*18532*/       OPC_RecordMemRef,
/*18533*/       OPC_RecordNode, // #0 = 'ld' chained node
/*18534*/       OPC_CheckFoldableChainNode,
/*18535*/       OPC_RecordChild1, // #1 = $src
/*18536*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*18538*/       OPC_CheckPredicate, 3, // Predicate_load
/*18540*/       OPC_MoveParent,
/*18541*/       OPC_Scope, 18, /*->18561*/ // 2 children in Scope
/*18543*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*18545*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*18548*/         OPC_EmitMergeInputChains1_0,
/*18549*/         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)
/*18561*/       /*Scope*/ 18, /*->18580*/
/*18562*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*18564*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*18567*/         OPC_EmitMergeInputChains1_0,
/*18568*/         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)
/*18580*/       0, /*End of Scope*/
/*18581*/     /*Scope*/ 49, /*->18631*/
/*18582*/       OPC_RecordChild1, // #0 = $src
/*18583*/       OPC_Scope, 22, /*->18607*/ // 2 children in Scope
/*18585*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*18587*/         OPC_EmitInteger, MVT::i32, X86::sub_ss,
/*18590*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      1/*#VTs*/, MVT::f32, 2/*#Ops*/, 0, 1,  // Results = #2 
/*18599*/         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))
/*18607*/       /*Scope*/ 22, /*->18630*/
/*18608*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*18610*/         OPC_EmitInteger, MVT::i32, X86::sub_ss,
/*18613*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      1/*#VTs*/, MVT::f32, 2/*#Ops*/, 0, 1,  // Results = #2 
/*18622*/         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))
/*18630*/       0, /*End of Scope*/
/*18631*/     0, /*End of Scope*/
/*18632*/   /*Scope*/ 111, /*->18744*/
/*18633*/     OPC_CheckInteger, 79|128,3/*463*/, 
/*18636*/     OPC_MoveParent,
/*18637*/     OPC_Scope, 54, /*->18693*/ // 2 children in Scope
/*18639*/       OPC_MoveChild, 1,
/*18641*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*18644*/       OPC_RecordMemRef,
/*18645*/       OPC_RecordNode, // #0 = 'ld' chained node
/*18646*/       OPC_CheckFoldableChainNode,
/*18647*/       OPC_RecordChild1, // #1 = $src
/*18648*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*18650*/       OPC_CheckPredicate, 3, // Predicate_load
/*18652*/       OPC_MoveParent,
/*18653*/       OPC_Scope, 18, /*->18673*/ // 2 children in Scope
/*18655*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*18657*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*18660*/         OPC_EmitMergeInputChains1_0,
/*18661*/         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)
/*18673*/       /*Scope*/ 18, /*->18692*/
/*18674*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*18676*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*18679*/         OPC_EmitMergeInputChains1_0,
/*18680*/         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)
/*18692*/       0, /*End of Scope*/
/*18693*/     /*Scope*/ 49, /*->18743*/
/*18694*/       OPC_RecordChild1, // #0 = $src
/*18695*/       OPC_Scope, 22, /*->18719*/ // 2 children in Scope
/*18697*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*18699*/         OPC_EmitInteger, MVT::i32, X86::sub_ss,
/*18702*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      1/*#VTs*/, MVT::f32, 2/*#Ops*/, 0, 1,  // Results = #2 
/*18711*/         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))
/*18719*/       /*Scope*/ 22, /*->18742*/
/*18720*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*18722*/         OPC_EmitInteger, MVT::i32, X86::sub_ss,
/*18725*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      1/*#VTs*/, MVT::f32, 2/*#Ops*/, 0, 1,  // Results = #2 
/*18734*/         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))
/*18742*/       0, /*End of Scope*/
/*18743*/     0, /*End of Scope*/
/*18744*/   /*Scope*/ 54, /*->18799*/
/*18745*/     OPC_CheckInteger, 45|128,3/*429*/, 
/*18748*/     OPC_MoveParent,
/*18749*/     OPC_RecordChild1, // #0 = $src1
/*18750*/     OPC_Scope, 33, /*->18785*/ // 2 children in Scope
/*18752*/       OPC_MoveChild, 2,
/*18754*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*18757*/       OPC_RecordMemRef,
/*18758*/       OPC_RecordNode, // #1 = 'ld' chained node
/*18759*/       OPC_CheckFoldableChainNode,
/*18760*/       OPC_RecordChild1, // #2 = $src2
/*18761*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*18763*/       OPC_CheckPredicate, 3, // Predicate_load
/*18765*/       OPC_MoveParent,
/*18766*/       OPC_CheckPatternPredicate, 11, // (Subtarget->hasSSE42())
/*18768*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*18771*/       OPC_EmitMergeInputChains1_1,
/*18772*/       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)
/*18785*/     /*Scope*/ 12, /*->18798*/
/*18786*/       OPC_RecordChild2, // #1 = $src2
/*18787*/       OPC_CheckPatternPredicate, 11, // (Subtarget->hasSSE42())
/*18789*/       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)
/*18798*/     0, /*End of Scope*/
/*18799*/   /*Scope*/ 54, /*->18854*/
/*18800*/     OPC_CheckInteger, 43|128,3/*427*/, 
/*18803*/     OPC_MoveParent,
/*18804*/     OPC_RecordChild1, // #0 = $src1
/*18805*/     OPC_Scope, 33, /*->18840*/ // 2 children in Scope
/*18807*/       OPC_MoveChild, 2,
/*18809*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*18812*/       OPC_RecordMemRef,
/*18813*/       OPC_RecordNode, // #1 = 'ld' chained node
/*18814*/       OPC_CheckFoldableChainNode,
/*18815*/       OPC_RecordChild1, // #2 = $src2
/*18816*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*18818*/       OPC_CheckPredicate, 3, // Predicate_load
/*18820*/       OPC_MoveParent,
/*18821*/       OPC_CheckPatternPredicate, 11, // (Subtarget->hasSSE42())
/*18823*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*18826*/       OPC_EmitMergeInputChains1_1,
/*18827*/       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)
/*18840*/     /*Scope*/ 12, /*->18853*/
/*18841*/       OPC_RecordChild2, // #1 = $src2
/*18842*/       OPC_CheckPatternPredicate, 11, // (Subtarget->hasSSE42())
/*18844*/       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)
/*18853*/     0, /*End of Scope*/
/*18854*/   /*Scope*/ 54, /*->18909*/
/*18855*/     OPC_CheckInteger, 44|128,3/*428*/, 
/*18858*/     OPC_MoveParent,
/*18859*/     OPC_RecordChild1, // #0 = $src1
/*18860*/     OPC_Scope, 33, /*->18895*/ // 2 children in Scope
/*18862*/       OPC_MoveChild, 2,
/*18864*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*18867*/       OPC_RecordMemRef,
/*18868*/       OPC_RecordNode, // #1 = 'ld' chained node
/*18869*/       OPC_CheckFoldableChainNode,
/*18870*/       OPC_RecordChild1, // #2 = $src2
/*18871*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*18873*/       OPC_CheckPredicate, 3, // Predicate_load
/*18875*/       OPC_MoveParent,
/*18876*/       OPC_CheckPatternPredicate, 11, // (Subtarget->hasSSE42())
/*18878*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*18881*/       OPC_EmitMergeInputChains1_1,
/*18882*/       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)
/*18895*/     /*Scope*/ 12, /*->18908*/
/*18896*/       OPC_RecordChild2, // #1 = $src2
/*18897*/       OPC_CheckPatternPredicate, 11, // (Subtarget->hasSSE42())
/*18899*/       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)
/*18908*/     0, /*End of Scope*/
/*18909*/   /*Scope*/ 54, /*->18964*/
/*18910*/     OPC_CheckInteger, 47|128,3/*431*/, 
/*18913*/     OPC_MoveParent,
/*18914*/     OPC_RecordChild1, // #0 = $src1
/*18915*/     OPC_Scope, 33, /*->18950*/ // 2 children in Scope
/*18917*/       OPC_MoveChild, 2,
/*18919*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*18922*/       OPC_RecordMemRef,
/*18923*/       OPC_RecordNode, // #1 = 'ld' chained node
/*18924*/       OPC_CheckFoldableChainNode,
/*18925*/       OPC_RecordChild1, // #2 = $src2
/*18926*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*18928*/       OPC_CheckPredicate, 3, // Predicate_load
/*18930*/       OPC_MoveParent,
/*18931*/       OPC_CheckPatternPredicate, 11, // (Subtarget->hasSSE42())
/*18933*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*18936*/       OPC_EmitMergeInputChains1_1,
/*18937*/       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)
/*18950*/     /*Scope*/ 12, /*->18963*/
/*18951*/       OPC_RecordChild2, // #1 = $src2
/*18952*/       OPC_CheckPatternPredicate, 11, // (Subtarget->hasSSE42())
/*18954*/       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)
/*18963*/     0, /*End of Scope*/
/*18964*/   /*Scope*/ 54, /*->19019*/
/*18965*/     OPC_CheckInteger, 46|128,3/*430*/, 
/*18968*/     OPC_MoveParent,
/*18969*/     OPC_RecordChild1, // #0 = $src1
/*18970*/     OPC_Scope, 33, /*->19005*/ // 2 children in Scope
/*18972*/       OPC_MoveChild, 2,
/*18974*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*18977*/       OPC_RecordMemRef,
/*18978*/       OPC_RecordNode, // #1 = 'ld' chained node
/*18979*/       OPC_CheckFoldableChainNode,
/*18980*/       OPC_RecordChild1, // #2 = $src2
/*18981*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*18983*/       OPC_CheckPredicate, 3, // Predicate_load
/*18985*/       OPC_MoveParent,
/*18986*/       OPC_CheckPatternPredicate, 11, // (Subtarget->hasSSE42())
/*18988*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*18991*/       OPC_EmitMergeInputChains1_1,
/*18992*/       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)
/*19005*/     /*Scope*/ 12, /*->19018*/
/*19006*/       OPC_RecordChild2, // #1 = $src2
/*19007*/       OPC_CheckPatternPredicate, 11, // (Subtarget->hasSSE42())
/*19009*/       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)
/*19018*/     0, /*End of Scope*/
/*19019*/   /*Scope*/ 53, /*->19073*/
/*19020*/     OPC_CheckInteger, 109|128,3/*493*/, 
/*19023*/     OPC_MoveParent,
/*19024*/     OPC_Scope, 34, /*->19060*/ // 2 children in Scope
/*19026*/       OPC_MoveChild, 1,
/*19028*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*19031*/       OPC_RecordMemRef,
/*19032*/       OPC_RecordNode, // #0 = 'ld' chained node
/*19033*/       OPC_CheckFoldableChainNode,
/*19034*/       OPC_RecordChild1, // #1 = $src
/*19035*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*19037*/       OPC_CheckPredicate, 3, // Predicate_load
/*19039*/       OPC_CheckPredicate, 22, // Predicate_memop64
/*19041*/       OPC_MoveParent,
/*19042*/       OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*19044*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*19047*/       OPC_EmitMergeInputChains1_0,
/*19048*/       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)
/*19060*/     /*Scope*/ 11, /*->19072*/
/*19061*/       OPC_RecordChild1, // #0 = $src
/*19062*/       OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*19064*/       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)
/*19072*/     0, /*End of Scope*/
/*19073*/   /*Scope*/ 53, /*->19127*/
/*19074*/     OPC_CheckInteger, 113|128,3/*497*/, 
/*19077*/     OPC_MoveParent,
/*19078*/     OPC_Scope, 34, /*->19114*/ // 2 children in Scope
/*19080*/       OPC_MoveChild, 1,
/*19082*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*19085*/       OPC_RecordMemRef,
/*19086*/       OPC_RecordNode, // #0 = 'ld' chained node
/*19087*/       OPC_CheckFoldableChainNode,
/*19088*/       OPC_RecordChild1, // #1 = $src
/*19089*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*19091*/       OPC_CheckPredicate, 3, // Predicate_load
/*19093*/       OPC_CheckPredicate, 22, // Predicate_memop64
/*19095*/       OPC_MoveParent,
/*19096*/       OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*19098*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*19101*/       OPC_EmitMergeInputChains1_0,
/*19102*/       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)
/*19114*/     /*Scope*/ 11, /*->19126*/
/*19115*/       OPC_RecordChild1, // #0 = $src
/*19116*/       OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*19118*/       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)
/*19126*/     0, /*End of Scope*/
/*19127*/   /*Scope*/ 53, /*->19181*/
/*19128*/     OPC_CheckInteger, 111|128,3/*495*/, 
/*19131*/     OPC_MoveParent,
/*19132*/     OPC_Scope, 34, /*->19168*/ // 2 children in Scope
/*19134*/       OPC_MoveChild, 1,
/*19136*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*19139*/       OPC_RecordMemRef,
/*19140*/       OPC_RecordNode, // #0 = 'ld' chained node
/*19141*/       OPC_CheckFoldableChainNode,
/*19142*/       OPC_RecordChild1, // #1 = $src
/*19143*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*19145*/       OPC_CheckPredicate, 3, // Predicate_load
/*19147*/       OPC_CheckPredicate, 22, // Predicate_memop64
/*19149*/       OPC_MoveParent,
/*19150*/       OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*19152*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*19155*/       OPC_EmitMergeInputChains1_0,
/*19156*/       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)
/*19168*/     /*Scope*/ 11, /*->19180*/
/*19169*/       OPC_RecordChild1, // #0 = $src
/*19170*/       OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*19172*/       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)
/*19180*/     0, /*End of Scope*/
/*19181*/   /*Scope*/ 54, /*->19236*/
/*19182*/     OPC_CheckInteger, 83|128,1/*211*/, 
/*19185*/     OPC_MoveParent,
/*19186*/     OPC_RecordChild1, // #0 = $src1
/*19187*/     OPC_Scope, 33, /*->19222*/ // 2 children in Scope
/*19189*/       OPC_MoveChild, 2,
/*19191*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*19194*/       OPC_RecordMemRef,
/*19195*/       OPC_RecordNode, // #1 = 'ld' chained node
/*19196*/       OPC_CheckFoldableChainNode,
/*19197*/       OPC_RecordChild1, // #2 = $src2
/*19198*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*19200*/       OPC_CheckPredicate, 3, // Predicate_load
/*19202*/       OPC_MoveParent,
/*19203*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*19205*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*19208*/       OPC_EmitMergeInputChains1_1,
/*19209*/       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)
/*19222*/     /*Scope*/ 12, /*->19235*/
/*19223*/       OPC_RecordChild2, // #1 = $src2
/*19224*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*19226*/       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)
/*19235*/     0, /*End of Scope*/
/*19236*/   /*Scope*/ 54, /*->19291*/
/*19237*/     OPC_CheckInteger, 86|128,1/*214*/, 
/*19240*/     OPC_MoveParent,
/*19241*/     OPC_RecordChild1, // #0 = $src1
/*19242*/     OPC_Scope, 33, /*->19277*/ // 2 children in Scope
/*19244*/       OPC_MoveChild, 2,
/*19246*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*19249*/       OPC_RecordMemRef,
/*19250*/       OPC_RecordNode, // #1 = 'ld' chained node
/*19251*/       OPC_CheckFoldableChainNode,
/*19252*/       OPC_RecordChild1, // #2 = $src2
/*19253*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*19255*/       OPC_CheckPredicate, 3, // Predicate_load
/*19257*/       OPC_MoveParent,
/*19258*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*19260*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*19263*/       OPC_EmitMergeInputChains1_1,
/*19264*/       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)
/*19277*/     /*Scope*/ 12, /*->19290*/
/*19278*/       OPC_RecordChild2, // #1 = $src2
/*19279*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*19281*/       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)
/*19290*/     0, /*End of Scope*/
/*19291*/   /*Scope*/ 54, /*->19346*/
/*19292*/     OPC_CheckInteger, 84|128,1/*212*/, 
/*19295*/     OPC_MoveParent,
/*19296*/     OPC_RecordChild1, // #0 = $src1
/*19297*/     OPC_Scope, 33, /*->19332*/ // 2 children in Scope
/*19299*/       OPC_MoveChild, 2,
/*19301*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*19304*/       OPC_RecordMemRef,
/*19305*/       OPC_RecordNode, // #1 = 'ld' chained node
/*19306*/       OPC_CheckFoldableChainNode,
/*19307*/       OPC_RecordChild1, // #2 = $src2
/*19308*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*19310*/       OPC_CheckPredicate, 3, // Predicate_load
/*19312*/       OPC_MoveParent,
/*19313*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*19315*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*19318*/       OPC_EmitMergeInputChains1_1,
/*19319*/       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)
/*19332*/     /*Scope*/ 12, /*->19345*/
/*19333*/       OPC_RecordChild2, // #1 = $src2
/*19334*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*19336*/       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)
/*19345*/     0, /*End of Scope*/
/*19346*/   /*Scope*/ 54, /*->19401*/
/*19347*/     OPC_CheckInteger, 85|128,1/*213*/, 
/*19350*/     OPC_MoveParent,
/*19351*/     OPC_RecordChild1, // #0 = $src1
/*19352*/     OPC_Scope, 33, /*->19387*/ // 2 children in Scope
/*19354*/       OPC_MoveChild, 2,
/*19356*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*19359*/       OPC_RecordMemRef,
/*19360*/       OPC_RecordNode, // #1 = 'ld' chained node
/*19361*/       OPC_CheckFoldableChainNode,
/*19362*/       OPC_RecordChild1, // #2 = $src2
/*19363*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*19365*/       OPC_CheckPredicate, 3, // Predicate_load
/*19367*/       OPC_MoveParent,
/*19368*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*19370*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*19373*/       OPC_EmitMergeInputChains1_1,
/*19374*/       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)
/*19387*/     /*Scope*/ 12, /*->19400*/
/*19388*/       OPC_RecordChild2, // #1 = $src2
/*19389*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*19391*/       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)
/*19400*/     0, /*End of Scope*/
/*19401*/   /*Scope*/ 90, /*->19492*/
/*19402*/     OPC_CheckInteger, 87|128,1/*215*/, 
/*19405*/     OPC_MoveParent,
/*19406*/     OPC_Scope, 34, /*->19442*/ // 3 children in Scope
/*19408*/       OPC_RecordChild1, // #0 = $src1
/*19409*/       OPC_MoveChild, 2,
/*19411*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*19414*/       OPC_RecordMemRef,
/*19415*/       OPC_RecordNode, // #1 = 'ld' chained node
/*19416*/       OPC_CheckFoldableChainNode,
/*19417*/       OPC_RecordChild1, // #2 = $src2
/*19418*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*19420*/       OPC_CheckPredicate, 3, // Predicate_load
/*19422*/       OPC_MoveParent,
/*19423*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*19425*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*19428*/       OPC_EmitMergeInputChains1_1,
/*19429*/       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)
/*19442*/     /*Scope*/ 34, /*->19477*/
/*19443*/       OPC_MoveChild, 1,
/*19445*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*19448*/       OPC_RecordMemRef,
/*19449*/       OPC_RecordNode, // #0 = 'ld' chained node
/*19450*/       OPC_CheckFoldableChainNode,
/*19451*/       OPC_RecordChild1, // #1 = $src2
/*19452*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*19454*/       OPC_CheckPredicate, 3, // Predicate_load
/*19456*/       OPC_MoveParent,
/*19457*/       OPC_RecordChild2, // #2 = $src1
/*19458*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*19460*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*19463*/       OPC_EmitMergeInputChains1_0,
/*19464*/       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)
/*19477*/     /*Scope*/ 13, /*->19491*/
/*19478*/       OPC_RecordChild1, // #0 = $src1
/*19479*/       OPC_RecordChild2, // #1 = $src2
/*19480*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*19482*/       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)
/*19491*/     0, /*End of Scope*/
/*19492*/   /*Scope*/ 90, /*->19583*/
/*19493*/     OPC_CheckInteger, 88|128,1/*216*/, 
/*19496*/     OPC_MoveParent,
/*19497*/     OPC_Scope, 34, /*->19533*/ // 3 children in Scope
/*19499*/       OPC_RecordChild1, // #0 = $src1
/*19500*/       OPC_MoveChild, 2,
/*19502*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*19505*/       OPC_RecordMemRef,
/*19506*/       OPC_RecordNode, // #1 = 'ld' chained node
/*19507*/       OPC_CheckFoldableChainNode,
/*19508*/       OPC_RecordChild1, // #2 = $src2
/*19509*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*19511*/       OPC_CheckPredicate, 3, // Predicate_load
/*19513*/       OPC_MoveParent,
/*19514*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*19516*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*19519*/       OPC_EmitMergeInputChains1_1,
/*19520*/       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)
/*19533*/     /*Scope*/ 34, /*->19568*/
/*19534*/       OPC_MoveChild, 1,
/*19536*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*19539*/       OPC_RecordMemRef,
/*19540*/       OPC_RecordNode, // #0 = 'ld' chained node
/*19541*/       OPC_CheckFoldableChainNode,
/*19542*/       OPC_RecordChild1, // #1 = $src2
/*19543*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*19545*/       OPC_CheckPredicate, 3, // Predicate_load
/*19547*/       OPC_MoveParent,
/*19548*/       OPC_RecordChild2, // #2 = $src1
/*19549*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*19551*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*19554*/       OPC_EmitMergeInputChains1_0,
/*19555*/       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)
/*19568*/     /*Scope*/ 13, /*->19582*/
/*19569*/       OPC_RecordChild1, // #0 = $src1
/*19570*/       OPC_RecordChild2, // #1 = $src2
/*19571*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*19573*/       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)
/*19582*/     0, /*End of Scope*/
/*19583*/   /*Scope*/ 90, /*->19674*/
/*19584*/     OPC_CheckInteger, 89|128,1/*217*/, 
/*19587*/     OPC_MoveParent,
/*19588*/     OPC_Scope, 34, /*->19624*/ // 3 children in Scope
/*19590*/       OPC_RecordChild1, // #0 = $src1
/*19591*/       OPC_MoveChild, 2,
/*19593*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*19596*/       OPC_RecordMemRef,
/*19597*/       OPC_RecordNode, // #1 = 'ld' chained node
/*19598*/       OPC_CheckFoldableChainNode,
/*19599*/       OPC_RecordChild1, // #2 = $src2
/*19600*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*19602*/       OPC_CheckPredicate, 3, // Predicate_load
/*19604*/       OPC_MoveParent,
/*19605*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*19607*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*19610*/       OPC_EmitMergeInputChains1_1,
/*19611*/       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)
/*19624*/     /*Scope*/ 34, /*->19659*/
/*19625*/       OPC_MoveChild, 1,
/*19627*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*19630*/       OPC_RecordMemRef,
/*19631*/       OPC_RecordNode, // #0 = 'ld' chained node
/*19632*/       OPC_CheckFoldableChainNode,
/*19633*/       OPC_RecordChild1, // #1 = $src2
/*19634*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*19636*/       OPC_CheckPredicate, 3, // Predicate_load
/*19638*/       OPC_MoveParent,
/*19639*/       OPC_RecordChild2, // #2 = $src1
/*19640*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*19642*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*19645*/       OPC_EmitMergeInputChains1_0,
/*19646*/       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)
/*19659*/     /*Scope*/ 13, /*->19673*/
/*19660*/       OPC_RecordChild1, // #0 = $src1
/*19661*/       OPC_RecordChild2, // #1 = $src2
/*19662*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*19664*/       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)
/*19673*/     0, /*End of Scope*/
/*19674*/   /*Scope*/ 90, /*->19765*/
/*19675*/     OPC_CheckInteger, 90|128,1/*218*/, 
/*19678*/     OPC_MoveParent,
/*19679*/     OPC_Scope, 34, /*->19715*/ // 3 children in Scope
/*19681*/       OPC_RecordChild1, // #0 = $src1
/*19682*/       OPC_MoveChild, 2,
/*19684*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*19687*/       OPC_RecordMemRef,
/*19688*/       OPC_RecordNode, // #1 = 'ld' chained node
/*19689*/       OPC_CheckFoldableChainNode,
/*19690*/       OPC_RecordChild1, // #2 = $src2
/*19691*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*19693*/       OPC_CheckPredicate, 3, // Predicate_load
/*19695*/       OPC_MoveParent,
/*19696*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*19698*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*19701*/       OPC_EmitMergeInputChains1_1,
/*19702*/       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)
/*19715*/     /*Scope*/ 34, /*->19750*/
/*19716*/       OPC_MoveChild, 1,
/*19718*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*19721*/       OPC_RecordMemRef,
/*19722*/       OPC_RecordNode, // #0 = 'ld' chained node
/*19723*/       OPC_CheckFoldableChainNode,
/*19724*/       OPC_RecordChild1, // #1 = $src2
/*19725*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*19727*/       OPC_CheckPredicate, 3, // Predicate_load
/*19729*/       OPC_MoveParent,
/*19730*/       OPC_RecordChild2, // #2 = $src1
/*19731*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*19733*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*19736*/       OPC_EmitMergeInputChains1_0,
/*19737*/       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)
/*19750*/     /*Scope*/ 13, /*->19764*/
/*19751*/       OPC_RecordChild1, // #0 = $src1
/*19752*/       OPC_RecordChild2, // #1 = $src2
/*19753*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*19755*/       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)
/*19764*/     0, /*End of Scope*/
/*19765*/   /*Scope*/ 56, /*->19822*/
/*19766*/     OPC_CheckInteger, 119|128,3/*503*/, 
/*19769*/     OPC_MoveParent,
/*19770*/     OPC_RecordChild1, // #0 = $src1
/*19771*/     OPC_Scope, 35, /*->19808*/ // 2 children in Scope
/*19773*/       OPC_MoveChild, 2,
/*19775*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*19778*/       OPC_RecordMemRef,
/*19779*/       OPC_RecordNode, // #1 = 'ld' chained node
/*19780*/       OPC_CheckFoldableChainNode,
/*19781*/       OPC_RecordChild1, // #2 = $src2
/*19782*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*19784*/       OPC_CheckPredicate, 3, // Predicate_load
/*19786*/       OPC_CheckPredicate, 22, // Predicate_memop64
/*19788*/       OPC_MoveParent,
/*19789*/       OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*19791*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*19794*/       OPC_EmitMergeInputChains1_1,
/*19795*/       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)
/*19808*/     /*Scope*/ 12, /*->19821*/
/*19809*/       OPC_RecordChild2, // #1 = $src2
/*19810*/       OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*19812*/       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)
/*19821*/     0, /*End of Scope*/
/*19822*/   /*Scope*/ 56, /*->19879*/
/*19823*/     OPC_CheckInteger, 115|128,3/*499*/, 
/*19826*/     OPC_MoveParent,
/*19827*/     OPC_RecordChild1, // #0 = $src1
/*19828*/     OPC_Scope, 35, /*->19865*/ // 2 children in Scope
/*19830*/       OPC_MoveChild, 2,
/*19832*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*19835*/       OPC_RecordMemRef,
/*19836*/       OPC_RecordNode, // #1 = 'ld' chained node
/*19837*/       OPC_CheckFoldableChainNode,
/*19838*/       OPC_RecordChild1, // #2 = $src2
/*19839*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*19841*/       OPC_CheckPredicate, 3, // Predicate_load
/*19843*/       OPC_CheckPredicate, 22, // Predicate_memop64
/*19845*/       OPC_MoveParent,
/*19846*/       OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*19848*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*19851*/       OPC_EmitMergeInputChains1_1,
/*19852*/       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)
/*19865*/     /*Scope*/ 12, /*->19878*/
/*19866*/       OPC_RecordChild2, // #1 = $src2
/*19867*/       OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*19869*/       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)
/*19878*/     0, /*End of Scope*/
/*19879*/   /*Scope*/ 56, /*->19936*/
/*19880*/     OPC_CheckInteger, 117|128,3/*501*/, 
/*19883*/     OPC_MoveParent,
/*19884*/     OPC_RecordChild1, // #0 = $src1
/*19885*/     OPC_Scope, 35, /*->19922*/ // 2 children in Scope
/*19887*/       OPC_MoveChild, 2,
/*19889*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*19892*/       OPC_RecordMemRef,
/*19893*/       OPC_RecordNode, // #1 = 'ld' chained node
/*19894*/       OPC_CheckFoldableChainNode,
/*19895*/       OPC_RecordChild1, // #2 = $src2
/*19896*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*19898*/       OPC_CheckPredicate, 3, // Predicate_load
/*19900*/       OPC_CheckPredicate, 22, // Predicate_memop64
/*19902*/       OPC_MoveParent,
/*19903*/       OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*19905*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*19908*/       OPC_EmitMergeInputChains1_1,
/*19909*/       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)
/*19922*/     /*Scope*/ 12, /*->19935*/
/*19923*/       OPC_RecordChild2, // #1 = $src2
/*19924*/       OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*19926*/       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)
/*19935*/     0, /*End of Scope*/
/*19936*/   /*Scope*/ 54, /*->19991*/
/*19937*/     OPC_CheckInteger, 4|128,2/*260*/, 
/*19940*/     OPC_MoveParent,
/*19941*/     OPC_RecordChild1, // #0 = $src1
/*19942*/     OPC_Scope, 33, /*->19977*/ // 2 children in Scope
/*19944*/       OPC_MoveChild, 2,
/*19946*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*19949*/       OPC_RecordMemRef,
/*19950*/       OPC_RecordNode, // #1 = 'ld' chained node
/*19951*/       OPC_CheckFoldableChainNode,
/*19952*/       OPC_RecordChild1, // #2 = $src2
/*19953*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*19955*/       OPC_CheckPredicate, 3, // Predicate_load
/*19957*/       OPC_MoveParent,
/*19958*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*19960*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*19963*/       OPC_EmitMergeInputChains1_1,
/*19964*/       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)
/*19977*/     /*Scope*/ 12, /*->19990*/
/*19978*/       OPC_RecordChild2, // #1 = $src2
/*19979*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*19981*/       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)
/*19990*/     0, /*End of Scope*/
/*19991*/   /*Scope*/ 54, /*->20046*/
/*19992*/     OPC_CheckInteger, 7|128,2/*263*/, 
/*19995*/     OPC_MoveParent,
/*19996*/     OPC_RecordChild1, // #0 = $src1
/*19997*/     OPC_Scope, 33, /*->20032*/ // 2 children in Scope
/*19999*/       OPC_MoveChild, 2,
/*20001*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*20004*/       OPC_RecordMemRef,
/*20005*/       OPC_RecordNode, // #1 = 'ld' chained node
/*20006*/       OPC_CheckFoldableChainNode,
/*20007*/       OPC_RecordChild1, // #2 = $src2
/*20008*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*20010*/       OPC_CheckPredicate, 3, // Predicate_load
/*20012*/       OPC_MoveParent,
/*20013*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*20015*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*20018*/       OPC_EmitMergeInputChains1_1,
/*20019*/       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)
/*20032*/     /*Scope*/ 12, /*->20045*/
/*20033*/       OPC_RecordChild2, // #1 = $src2
/*20034*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*20036*/       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)
/*20045*/     0, /*End of Scope*/
/*20046*/   /*Scope*/ 54, /*->20101*/
/*20047*/     OPC_CheckInteger, 5|128,2/*261*/, 
/*20050*/     OPC_MoveParent,
/*20051*/     OPC_RecordChild1, // #0 = $src1
/*20052*/     OPC_Scope, 33, /*->20087*/ // 2 children in Scope
/*20054*/       OPC_MoveChild, 2,
/*20056*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*20059*/       OPC_RecordMemRef,
/*20060*/       OPC_RecordNode, // #1 = 'ld' chained node
/*20061*/       OPC_CheckFoldableChainNode,
/*20062*/       OPC_RecordChild1, // #2 = $src2
/*20063*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*20065*/       OPC_CheckPredicate, 3, // Predicate_load
/*20067*/       OPC_MoveParent,
/*20068*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*20070*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*20073*/       OPC_EmitMergeInputChains1_1,
/*20074*/       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)
/*20087*/     /*Scope*/ 12, /*->20100*/
/*20088*/       OPC_RecordChild2, // #1 = $src2
/*20089*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*20091*/       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)
/*20100*/     0, /*End of Scope*/
/*20101*/   /*Scope*/ 54, /*->20156*/
/*20102*/     OPC_CheckInteger, 6|128,2/*262*/, 
/*20105*/     OPC_MoveParent,
/*20106*/     OPC_RecordChild1, // #0 = $src1
/*20107*/     OPC_Scope, 33, /*->20142*/ // 2 children in Scope
/*20109*/       OPC_MoveChild, 2,
/*20111*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*20114*/       OPC_RecordMemRef,
/*20115*/       OPC_RecordNode, // #1 = 'ld' chained node
/*20116*/       OPC_CheckFoldableChainNode,
/*20117*/       OPC_RecordChild1, // #2 = $src2
/*20118*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*20120*/       OPC_CheckPredicate, 3, // Predicate_load
/*20122*/       OPC_MoveParent,
/*20123*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*20125*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*20128*/       OPC_EmitMergeInputChains1_1,
/*20129*/       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)
/*20142*/     /*Scope*/ 12, /*->20155*/
/*20143*/       OPC_RecordChild2, // #1 = $src2
/*20144*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*20146*/       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)
/*20155*/     0, /*End of Scope*/
/*20156*/   /*Scope*/ 54, /*->20211*/
/*20157*/     OPC_CheckInteger, 8|128,2/*264*/, 
/*20160*/     OPC_MoveParent,
/*20161*/     OPC_RecordChild1, // #0 = $src1
/*20162*/     OPC_Scope, 33, /*->20197*/ // 2 children in Scope
/*20164*/       OPC_MoveChild, 2,
/*20166*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*20169*/       OPC_RecordMemRef,
/*20170*/       OPC_RecordNode, // #1 = 'ld' chained node
/*20171*/       OPC_CheckFoldableChainNode,
/*20172*/       OPC_RecordChild1, // #2 = $src2
/*20173*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*20175*/       OPC_CheckPredicate, 3, // Predicate_load
/*20177*/       OPC_MoveParent,
/*20178*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*20180*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*20183*/       OPC_EmitMergeInputChains1_1,
/*20184*/       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)
/*20197*/     /*Scope*/ 12, /*->20210*/
/*20198*/       OPC_RecordChild2, // #1 = $src2
/*20199*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*20201*/       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)
/*20210*/     0, /*End of Scope*/
/*20211*/   /*Scope*/ 54, /*->20266*/
/*20212*/     OPC_CheckInteger, 9|128,2/*265*/, 
/*20215*/     OPC_MoveParent,
/*20216*/     OPC_RecordChild1, // #0 = $src1
/*20217*/     OPC_Scope, 33, /*->20252*/ // 2 children in Scope
/*20219*/       OPC_MoveChild, 2,
/*20221*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*20224*/       OPC_RecordMemRef,
/*20225*/       OPC_RecordNode, // #1 = 'ld' chained node
/*20226*/       OPC_CheckFoldableChainNode,
/*20227*/       OPC_RecordChild1, // #2 = $src2
/*20228*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*20230*/       OPC_CheckPredicate, 3, // Predicate_load
/*20232*/       OPC_MoveParent,
/*20233*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*20235*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*20238*/       OPC_EmitMergeInputChains1_1,
/*20239*/       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)
/*20252*/     /*Scope*/ 12, /*->20265*/
/*20253*/       OPC_RecordChild2, // #1 = $src2
/*20254*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*20256*/       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)
/*20265*/     0, /*End of Scope*/
/*20266*/   /*Scope*/ 54, /*->20321*/
/*20267*/     OPC_CheckInteger, 10|128,2/*266*/, 
/*20270*/     OPC_MoveParent,
/*20271*/     OPC_RecordChild1, // #0 = $src1
/*20272*/     OPC_Scope, 33, /*->20307*/ // 2 children in Scope
/*20274*/       OPC_MoveChild, 2,
/*20276*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*20279*/       OPC_RecordMemRef,
/*20280*/       OPC_RecordNode, // #1 = 'ld' chained node
/*20281*/       OPC_CheckFoldableChainNode,
/*20282*/       OPC_RecordChild1, // #2 = $src2
/*20283*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*20285*/       OPC_CheckPredicate, 3, // Predicate_load
/*20287*/       OPC_MoveParent,
/*20288*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*20290*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*20293*/       OPC_EmitMergeInputChains1_1,
/*20294*/       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)
/*20307*/     /*Scope*/ 12, /*->20320*/
/*20308*/       OPC_RecordChild2, // #1 = $src2
/*20309*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*20311*/       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)
/*20320*/     0, /*End of Scope*/
/*20321*/   /*Scope*/ 54, /*->20376*/
/*20322*/     OPC_CheckInteger, 11|128,2/*267*/, 
/*20325*/     OPC_MoveParent,
/*20326*/     OPC_RecordChild1, // #0 = $src1
/*20327*/     OPC_Scope, 33, /*->20362*/ // 2 children in Scope
/*20329*/       OPC_MoveChild, 2,
/*20331*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*20334*/       OPC_RecordMemRef,
/*20335*/       OPC_RecordNode, // #1 = 'ld' chained node
/*20336*/       OPC_CheckFoldableChainNode,
/*20337*/       OPC_RecordChild1, // #2 = $src2
/*20338*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*20340*/       OPC_CheckPredicate, 3, // Predicate_load
/*20342*/       OPC_MoveParent,
/*20343*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*20345*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*20348*/       OPC_EmitMergeInputChains1_1,
/*20349*/       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)
/*20362*/     /*Scope*/ 12, /*->20375*/
/*20363*/       OPC_RecordChild2, // #1 = $src2
/*20364*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*20366*/       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)
/*20375*/     0, /*End of Scope*/
/*20376*/   /*Scope*/ 56, /*->20433*/
/*20377*/     OPC_CheckInteger, 125|128,3/*509*/, 
/*20380*/     OPC_MoveParent,
/*20381*/     OPC_RecordChild1, // #0 = $src1
/*20382*/     OPC_Scope, 35, /*->20419*/ // 2 children in Scope
/*20384*/       OPC_MoveChild, 2,
/*20386*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*20389*/       OPC_RecordMemRef,
/*20390*/       OPC_RecordNode, // #1 = 'ld' chained node
/*20391*/       OPC_CheckFoldableChainNode,
/*20392*/       OPC_RecordChild1, // #2 = $src2
/*20393*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*20395*/       OPC_CheckPredicate, 3, // Predicate_load
/*20397*/       OPC_CheckPredicate, 22, // Predicate_memop64
/*20399*/       OPC_MoveParent,
/*20400*/       OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*20402*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*20405*/       OPC_EmitMergeInputChains1_1,
/*20406*/       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)
/*20419*/     /*Scope*/ 12, /*->20432*/
/*20420*/       OPC_RecordChild2, // #1 = $src2
/*20421*/       OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*20423*/       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)
/*20432*/     0, /*End of Scope*/
/*20433*/   /*Scope*/ 56, /*->20490*/
/*20434*/     OPC_CheckInteger, 121|128,3/*505*/, 
/*20437*/     OPC_MoveParent,
/*20438*/     OPC_RecordChild1, // #0 = $src1
/*20439*/     OPC_Scope, 35, /*->20476*/ // 2 children in Scope
/*20441*/       OPC_MoveChild, 2,
/*20443*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*20446*/       OPC_RecordMemRef,
/*20447*/       OPC_RecordNode, // #1 = 'ld' chained node
/*20448*/       OPC_CheckFoldableChainNode,
/*20449*/       OPC_RecordChild1, // #2 = $src2
/*20450*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*20452*/       OPC_CheckPredicate, 3, // Predicate_load
/*20454*/       OPC_CheckPredicate, 22, // Predicate_memop64
/*20456*/       OPC_MoveParent,
/*20457*/       OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*20459*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*20462*/       OPC_EmitMergeInputChains1_1,
/*20463*/       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)
/*20476*/     /*Scope*/ 12, /*->20489*/
/*20477*/       OPC_RecordChild2, // #1 = $src2
/*20478*/       OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*20480*/       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)
/*20489*/     0, /*End of Scope*/
/*20490*/   /*Scope*/ 56, /*->20547*/
/*20491*/     OPC_CheckInteger, 123|128,3/*507*/, 
/*20494*/     OPC_MoveParent,
/*20495*/     OPC_RecordChild1, // #0 = $src1
/*20496*/     OPC_Scope, 35, /*->20533*/ // 2 children in Scope
/*20498*/       OPC_MoveChild, 2,
/*20500*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*20503*/       OPC_RecordMemRef,
/*20504*/       OPC_RecordNode, // #1 = 'ld' chained node
/*20505*/       OPC_CheckFoldableChainNode,
/*20506*/       OPC_RecordChild1, // #2 = $src2
/*20507*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*20509*/       OPC_CheckPredicate, 3, // Predicate_load
/*20511*/       OPC_CheckPredicate, 22, // Predicate_memop64
/*20513*/       OPC_MoveParent,
/*20514*/       OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*20516*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*20519*/       OPC_EmitMergeInputChains1_1,
/*20520*/       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)
/*20533*/     /*Scope*/ 12, /*->20546*/
/*20534*/       OPC_RecordChild2, // #1 = $src2
/*20535*/       OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*20537*/       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)
/*20546*/     0, /*End of Scope*/
/*20547*/   /*Scope*/ 90, /*->20638*/
/*20548*/     OPC_CheckInteger, 112|128,1/*240*/, 
/*20551*/     OPC_MoveParent,
/*20552*/     OPC_Scope, 34, /*->20588*/ // 3 children in Scope
/*20554*/       OPC_RecordChild1, // #0 = $src1
/*20555*/       OPC_MoveChild, 2,
/*20557*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*20560*/       OPC_RecordMemRef,
/*20561*/       OPC_RecordNode, // #1 = 'ld' chained node
/*20562*/       OPC_CheckFoldableChainNode,
/*20563*/       OPC_RecordChild1, // #2 = $src2
/*20564*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*20566*/       OPC_CheckPredicate, 3, // Predicate_load
/*20568*/       OPC_MoveParent,
/*20569*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*20571*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*20574*/       OPC_EmitMergeInputChains1_1,
/*20575*/       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)
/*20588*/     /*Scope*/ 34, /*->20623*/
/*20589*/       OPC_MoveChild, 1,
/*20591*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*20594*/       OPC_RecordMemRef,
/*20595*/       OPC_RecordNode, // #0 = 'ld' chained node
/*20596*/       OPC_CheckFoldableChainNode,
/*20597*/       OPC_RecordChild1, // #1 = $src2
/*20598*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*20600*/       OPC_CheckPredicate, 3, // Predicate_load
/*20602*/       OPC_MoveParent,
/*20603*/       OPC_RecordChild2, // #2 = $src1
/*20604*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*20606*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*20609*/       OPC_EmitMergeInputChains1_0,
/*20610*/       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)
/*20623*/     /*Scope*/ 13, /*->20637*/
/*20624*/       OPC_RecordChild1, // #0 = $src1
/*20625*/       OPC_RecordChild2, // #1 = $src2
/*20626*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*20628*/       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)
/*20637*/     0, /*End of Scope*/
/*20638*/   /*Scope*/ 90, /*->20729*/
/*20639*/     OPC_CheckInteger, 110|128,1/*238*/, 
/*20642*/     OPC_MoveParent,
/*20643*/     OPC_Scope, 34, /*->20679*/ // 3 children in Scope
/*20645*/       OPC_RecordChild1, // #0 = $src1
/*20646*/       OPC_MoveChild, 2,
/*20648*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*20651*/       OPC_RecordMemRef,
/*20652*/       OPC_RecordNode, // #1 = 'ld' chained node
/*20653*/       OPC_CheckFoldableChainNode,
/*20654*/       OPC_RecordChild1, // #2 = $src2
/*20655*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*20657*/       OPC_CheckPredicate, 3, // Predicate_load
/*20659*/       OPC_MoveParent,
/*20660*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*20662*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*20665*/       OPC_EmitMergeInputChains1_1,
/*20666*/       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)
/*20679*/     /*Scope*/ 34, /*->20714*/
/*20680*/       OPC_MoveChild, 1,
/*20682*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*20685*/       OPC_RecordMemRef,
/*20686*/       OPC_RecordNode, // #0 = 'ld' chained node
/*20687*/       OPC_CheckFoldableChainNode,
/*20688*/       OPC_RecordChild1, // #1 = $src2
/*20689*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*20691*/       OPC_CheckPredicate, 3, // Predicate_load
/*20693*/       OPC_MoveParent,
/*20694*/       OPC_RecordChild2, // #2 = $src1
/*20695*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*20697*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*20700*/       OPC_EmitMergeInputChains1_0,
/*20701*/       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)
/*20714*/     /*Scope*/ 13, /*->20728*/
/*20715*/       OPC_RecordChild1, // #0 = $src1
/*20716*/       OPC_RecordChild2, // #1 = $src2
/*20717*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*20719*/       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)
/*20728*/     0, /*End of Scope*/
/*20729*/   /*Scope*/ 90, /*->20820*/
/*20730*/     OPC_CheckInteger, 111|128,1/*239*/, 
/*20733*/     OPC_MoveParent,
/*20734*/     OPC_Scope, 34, /*->20770*/ // 3 children in Scope
/*20736*/       OPC_RecordChild1, // #0 = $src1
/*20737*/       OPC_MoveChild, 2,
/*20739*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*20742*/       OPC_RecordMemRef,
/*20743*/       OPC_RecordNode, // #1 = 'ld' chained node
/*20744*/       OPC_CheckFoldableChainNode,
/*20745*/       OPC_RecordChild1, // #2 = $src2
/*20746*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*20748*/       OPC_CheckPredicate, 3, // Predicate_load
/*20750*/       OPC_MoveParent,
/*20751*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*20753*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*20756*/       OPC_EmitMergeInputChains1_1,
/*20757*/       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)
/*20770*/     /*Scope*/ 34, /*->20805*/
/*20771*/       OPC_MoveChild, 1,
/*20773*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*20776*/       OPC_RecordMemRef,
/*20777*/       OPC_RecordNode, // #0 = 'ld' chained node
/*20778*/       OPC_CheckFoldableChainNode,
/*20779*/       OPC_RecordChild1, // #1 = $src2
/*20780*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*20782*/       OPC_CheckPredicate, 3, // Predicate_load
/*20784*/       OPC_MoveParent,
/*20785*/       OPC_RecordChild2, // #2 = $src1
/*20786*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*20788*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*20791*/       OPC_EmitMergeInputChains1_0,
/*20792*/       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)
/*20805*/     /*Scope*/ 13, /*->20819*/
/*20806*/       OPC_RecordChild1, // #0 = $src1
/*20807*/       OPC_RecordChild2, // #1 = $src2
/*20808*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*20810*/       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)
/*20819*/     0, /*End of Scope*/
/*20820*/   /*Scope*/ 90, /*->20911*/
/*20821*/     OPC_CheckInteger, 113|128,1/*241*/, 
/*20824*/     OPC_MoveParent,
/*20825*/     OPC_Scope, 34, /*->20861*/ // 3 children in Scope
/*20827*/       OPC_RecordChild1, // #0 = $src1
/*20828*/       OPC_MoveChild, 2,
/*20830*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*20833*/       OPC_RecordMemRef,
/*20834*/       OPC_RecordNode, // #1 = 'ld' chained node
/*20835*/       OPC_CheckFoldableChainNode,
/*20836*/       OPC_RecordChild1, // #2 = $src2
/*20837*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*20839*/       OPC_CheckPredicate, 3, // Predicate_load
/*20841*/       OPC_MoveParent,
/*20842*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*20844*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*20847*/       OPC_EmitMergeInputChains1_1,
/*20848*/       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)
/*20861*/     /*Scope*/ 34, /*->20896*/
/*20862*/       OPC_MoveChild, 1,
/*20864*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*20867*/       OPC_RecordMemRef,
/*20868*/       OPC_RecordNode, // #0 = 'ld' chained node
/*20869*/       OPC_CheckFoldableChainNode,
/*20870*/       OPC_RecordChild1, // #1 = $src2
/*20871*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*20873*/       OPC_CheckPredicate, 3, // Predicate_load
/*20875*/       OPC_MoveParent,
/*20876*/       OPC_RecordChild2, // #2 = $src1
/*20877*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*20879*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*20882*/       OPC_EmitMergeInputChains1_0,
/*20883*/       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)
/*20896*/     /*Scope*/ 13, /*->20910*/
/*20897*/       OPC_RecordChild1, // #0 = $src1
/*20898*/       OPC_RecordChild2, // #1 = $src2
/*20899*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*20901*/       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)
/*20910*/     0, /*End of Scope*/
/*20911*/   /*Scope*/ 94, /*->21006*/
/*20912*/     OPC_CheckInteger, 1|128,4/*513*/, 
/*20915*/     OPC_MoveParent,
/*20916*/     OPC_Scope, 36, /*->20954*/ // 3 children in Scope
/*20918*/       OPC_RecordChild1, // #0 = $src1
/*20919*/       OPC_MoveChild, 2,
/*20921*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*20924*/       OPC_RecordMemRef,
/*20925*/       OPC_RecordNode, // #1 = 'ld' chained node
/*20926*/       OPC_CheckFoldableChainNode,
/*20927*/       OPC_RecordChild1, // #2 = $src2
/*20928*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*20930*/       OPC_CheckPredicate, 3, // Predicate_load
/*20932*/       OPC_CheckPredicate, 22, // Predicate_memop64
/*20934*/       OPC_MoveParent,
/*20935*/       OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*20937*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*20940*/       OPC_EmitMergeInputChains1_1,
/*20941*/       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)
/*20954*/     /*Scope*/ 36, /*->20991*/
/*20955*/       OPC_MoveChild, 1,
/*20957*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*20960*/       OPC_RecordMemRef,
/*20961*/       OPC_RecordNode, // #0 = 'ld' chained node
/*20962*/       OPC_CheckFoldableChainNode,
/*20963*/       OPC_RecordChild1, // #1 = $src2
/*20964*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*20966*/       OPC_CheckPredicate, 3, // Predicate_load
/*20968*/       OPC_CheckPredicate, 22, // Predicate_memop64
/*20970*/       OPC_MoveParent,
/*20971*/       OPC_RecordChild2, // #2 = $src1
/*20972*/       OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*20974*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*20977*/       OPC_EmitMergeInputChains1_0,
/*20978*/       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)
/*20991*/     /*Scope*/ 13, /*->21005*/
/*20992*/       OPC_RecordChild1, // #0 = $src1
/*20993*/       OPC_RecordChild2, // #1 = $src2
/*20994*/       OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*20996*/       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)
/*21005*/     0, /*End of Scope*/
/*21006*/   /*Scope*/ 90, /*->21097*/
/*21007*/     OPC_CheckInteger, 104|128,1/*232*/, 
/*21010*/     OPC_MoveParent,
/*21011*/     OPC_Scope, 34, /*->21047*/ // 3 children in Scope
/*21013*/       OPC_RecordChild1, // #0 = $src1
/*21014*/       OPC_MoveChild, 2,
/*21016*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*21019*/       OPC_RecordMemRef,
/*21020*/       OPC_RecordNode, // #1 = 'ld' chained node
/*21021*/       OPC_CheckFoldableChainNode,
/*21022*/       OPC_RecordChild1, // #2 = $src2
/*21023*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*21025*/       OPC_CheckPredicate, 3, // Predicate_load
/*21027*/       OPC_MoveParent,
/*21028*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*21030*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*21033*/       OPC_EmitMergeInputChains1_1,
/*21034*/       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)
/*21047*/     /*Scope*/ 34, /*->21082*/
/*21048*/       OPC_MoveChild, 1,
/*21050*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*21053*/       OPC_RecordMemRef,
/*21054*/       OPC_RecordNode, // #0 = 'ld' chained node
/*21055*/       OPC_CheckFoldableChainNode,
/*21056*/       OPC_RecordChild1, // #1 = $src2
/*21057*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*21059*/       OPC_CheckPredicate, 3, // Predicate_load
/*21061*/       OPC_MoveParent,
/*21062*/       OPC_RecordChild2, // #2 = $src1
/*21063*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*21065*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*21068*/       OPC_EmitMergeInputChains1_0,
/*21069*/       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)
/*21082*/     /*Scope*/ 13, /*->21096*/
/*21083*/       OPC_RecordChild1, // #0 = $src1
/*21084*/       OPC_RecordChild2, // #1 = $src2
/*21085*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*21087*/       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)
/*21096*/     0, /*End of Scope*/
/*21097*/   /*Scope*/ 56, /*->21154*/
/*21098*/     OPC_CheckInteger, 127|128,3/*511*/, 
/*21101*/     OPC_MoveParent,
/*21102*/     OPC_RecordChild1, // #0 = $src1
/*21103*/     OPC_Scope, 35, /*->21140*/ // 2 children in Scope
/*21105*/       OPC_MoveChild, 2,
/*21107*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*21110*/       OPC_RecordMemRef,
/*21111*/       OPC_RecordNode, // #1 = 'ld' chained node
/*21112*/       OPC_CheckFoldableChainNode,
/*21113*/       OPC_RecordChild1, // #2 = $src2
/*21114*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*21116*/       OPC_CheckPredicate, 3, // Predicate_load
/*21118*/       OPC_CheckPredicate, 22, // Predicate_memop64
/*21120*/       OPC_MoveParent,
/*21121*/       OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*21123*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*21126*/       OPC_EmitMergeInputChains1_1,
/*21127*/       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)
/*21140*/     /*Scope*/ 12, /*->21153*/
/*21141*/       OPC_RecordChild2, // #1 = $src2
/*21142*/       OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*21144*/       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)
/*21153*/     0, /*End of Scope*/
/*21154*/   /*Scope*/ 90, /*->21245*/
/*21155*/     OPC_CheckInteger, 94|128,1/*222*/, 
/*21158*/     OPC_MoveParent,
/*21159*/     OPC_Scope, 34, /*->21195*/ // 3 children in Scope
/*21161*/       OPC_RecordChild1, // #0 = $src1
/*21162*/       OPC_MoveChild, 2,
/*21164*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*21167*/       OPC_RecordMemRef,
/*21168*/       OPC_RecordNode, // #1 = 'ld' chained node
/*21169*/       OPC_CheckFoldableChainNode,
/*21170*/       OPC_RecordChild1, // #2 = $src2
/*21171*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*21173*/       OPC_CheckPredicate, 3, // Predicate_load
/*21175*/       OPC_MoveParent,
/*21176*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*21178*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*21181*/       OPC_EmitMergeInputChains1_1,
/*21182*/       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)
/*21195*/     /*Scope*/ 34, /*->21230*/
/*21196*/       OPC_MoveChild, 1,
/*21198*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*21201*/       OPC_RecordMemRef,
/*21202*/       OPC_RecordNode, // #0 = 'ld' chained node
/*21203*/       OPC_CheckFoldableChainNode,
/*21204*/       OPC_RecordChild1, // #1 = $src2
/*21205*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*21207*/       OPC_CheckPredicate, 3, // Predicate_load
/*21209*/       OPC_MoveParent,
/*21210*/       OPC_RecordChild2, // #2 = $src1
/*21211*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*21213*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*21216*/       OPC_EmitMergeInputChains1_0,
/*21217*/       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)
/*21230*/     /*Scope*/ 13, /*->21244*/
/*21231*/       OPC_RecordChild1, // #0 = $src1
/*21232*/       OPC_RecordChild2, // #1 = $src2
/*21233*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*21235*/       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)
/*21244*/     0, /*End of Scope*/
/*21245*/   /*Scope*/ 90, /*->21336*/
/*21246*/     OPC_CheckInteger, 95|128,1/*223*/, 
/*21249*/     OPC_MoveParent,
/*21250*/     OPC_Scope, 34, /*->21286*/ // 3 children in Scope
/*21252*/       OPC_RecordChild1, // #0 = $src1
/*21253*/       OPC_MoveChild, 2,
/*21255*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*21258*/       OPC_RecordMemRef,
/*21259*/       OPC_RecordNode, // #1 = 'ld' chained node
/*21260*/       OPC_CheckFoldableChainNode,
/*21261*/       OPC_RecordChild1, // #2 = $src2
/*21262*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*21264*/       OPC_CheckPredicate, 3, // Predicate_load
/*21266*/       OPC_MoveParent,
/*21267*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*21269*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*21272*/       OPC_EmitMergeInputChains1_1,
/*21273*/       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)
/*21286*/     /*Scope*/ 34, /*->21321*/
/*21287*/       OPC_MoveChild, 1,
/*21289*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*21292*/       OPC_RecordMemRef,
/*21293*/       OPC_RecordNode, // #0 = 'ld' chained node
/*21294*/       OPC_CheckFoldableChainNode,
/*21295*/       OPC_RecordChild1, // #1 = $src2
/*21296*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*21298*/       OPC_CheckPredicate, 3, // Predicate_load
/*21300*/       OPC_MoveParent,
/*21301*/       OPC_RecordChild2, // #2 = $src1
/*21302*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*21304*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*21307*/       OPC_EmitMergeInputChains1_0,
/*21308*/       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)
/*21321*/     /*Scope*/ 13, /*->21335*/
/*21322*/       OPC_RecordChild1, // #0 = $src1
/*21323*/       OPC_RecordChild2, // #1 = $src2
/*21324*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*21326*/       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)
/*21335*/     0, /*End of Scope*/
/*21336*/   /*Scope*/ 90, /*->21427*/
/*21337*/     OPC_CheckInteger, 108|128,1/*236*/, 
/*21340*/     OPC_MoveParent,
/*21341*/     OPC_Scope, 34, /*->21377*/ // 3 children in Scope
/*21343*/       OPC_RecordChild1, // #0 = $src1
/*21344*/       OPC_MoveChild, 2,
/*21346*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*21349*/       OPC_RecordMemRef,
/*21350*/       OPC_RecordNode, // #1 = 'ld' chained node
/*21351*/       OPC_CheckFoldableChainNode,
/*21352*/       OPC_RecordChild1, // #2 = $src2
/*21353*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*21355*/       OPC_CheckPredicate, 3, // Predicate_load
/*21357*/       OPC_MoveParent,
/*21358*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*21360*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*21363*/       OPC_EmitMergeInputChains1_1,
/*21364*/       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)
/*21377*/     /*Scope*/ 34, /*->21412*/
/*21378*/       OPC_MoveChild, 1,
/*21380*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*21383*/       OPC_RecordMemRef,
/*21384*/       OPC_RecordNode, // #0 = 'ld' chained node
/*21385*/       OPC_CheckFoldableChainNode,
/*21386*/       OPC_RecordChild1, // #1 = $src2
/*21387*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*21389*/       OPC_CheckPredicate, 3, // Predicate_load
/*21391*/       OPC_MoveParent,
/*21392*/       OPC_RecordChild2, // #2 = $src1
/*21393*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*21395*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*21398*/       OPC_EmitMergeInputChains1_0,
/*21399*/       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)
/*21412*/     /*Scope*/ 13, /*->21426*/
/*21413*/       OPC_RecordChild1, // #0 = $src1
/*21414*/       OPC_RecordChild2, // #1 = $src2
/*21415*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*21417*/       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)
/*21426*/     0, /*End of Scope*/
/*21427*/   /*Scope*/ 90, /*->21518*/
/*21428*/     OPC_CheckInteger, 107|128,1/*235*/, 
/*21431*/     OPC_MoveParent,
/*21432*/     OPC_Scope, 34, /*->21468*/ // 3 children in Scope
/*21434*/       OPC_RecordChild1, // #0 = $src1
/*21435*/       OPC_MoveChild, 2,
/*21437*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*21440*/       OPC_RecordMemRef,
/*21441*/       OPC_RecordNode, // #1 = 'ld' chained node
/*21442*/       OPC_CheckFoldableChainNode,
/*21443*/       OPC_RecordChild1, // #2 = $src2
/*21444*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*21446*/       OPC_CheckPredicate, 3, // Predicate_load
/*21448*/       OPC_MoveParent,
/*21449*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*21451*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*21454*/       OPC_EmitMergeInputChains1_1,
/*21455*/       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)
/*21468*/     /*Scope*/ 34, /*->21503*/
/*21469*/       OPC_MoveChild, 1,
/*21471*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*21474*/       OPC_RecordMemRef,
/*21475*/       OPC_RecordNode, // #0 = 'ld' chained node
/*21476*/       OPC_CheckFoldableChainNode,
/*21477*/       OPC_RecordChild1, // #1 = $src2
/*21478*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*21480*/       OPC_CheckPredicate, 3, // Predicate_load
/*21482*/       OPC_MoveParent,
/*21483*/       OPC_RecordChild2, // #2 = $src1
/*21484*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*21486*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*21489*/       OPC_EmitMergeInputChains1_0,
/*21490*/       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)
/*21503*/     /*Scope*/ 13, /*->21517*/
/*21504*/       OPC_RecordChild1, // #0 = $src1
/*21505*/       OPC_RecordChild2, // #1 = $src2
/*21506*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*21508*/       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)
/*21517*/     0, /*End of Scope*/
/*21518*/   /*Scope*/ 90, /*->21609*/
/*21519*/     OPC_CheckInteger, 106|128,1/*234*/, 
/*21522*/     OPC_MoveParent,
/*21523*/     OPC_Scope, 34, /*->21559*/ // 3 children in Scope
/*21525*/       OPC_RecordChild1, // #0 = $src1
/*21526*/       OPC_MoveChild, 2,
/*21528*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*21531*/       OPC_RecordMemRef,
/*21532*/       OPC_RecordNode, // #1 = 'ld' chained node
/*21533*/       OPC_CheckFoldableChainNode,
/*21534*/       OPC_RecordChild1, // #2 = $src2
/*21535*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*21537*/       OPC_CheckPredicate, 3, // Predicate_load
/*21539*/       OPC_MoveParent,
/*21540*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*21542*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*21545*/       OPC_EmitMergeInputChains1_1,
/*21546*/       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)
/*21559*/     /*Scope*/ 34, /*->21594*/
/*21560*/       OPC_MoveChild, 1,
/*21562*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*21565*/       OPC_RecordMemRef,
/*21566*/       OPC_RecordNode, // #0 = 'ld' chained node
/*21567*/       OPC_CheckFoldableChainNode,
/*21568*/       OPC_RecordChild1, // #1 = $src2
/*21569*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*21571*/       OPC_CheckPredicate, 3, // Predicate_load
/*21573*/       OPC_MoveParent,
/*21574*/       OPC_RecordChild2, // #2 = $src1
/*21575*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*21577*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*21580*/       OPC_EmitMergeInputChains1_0,
/*21581*/       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)
/*21594*/     /*Scope*/ 13, /*->21608*/
/*21595*/       OPC_RecordChild1, // #0 = $src1
/*21596*/       OPC_RecordChild2, // #1 = $src2
/*21597*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*21599*/       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)
/*21608*/     0, /*End of Scope*/
/*21609*/   /*Scope*/ 90, /*->21700*/
/*21610*/     OPC_CheckInteger, 105|128,1/*233*/, 
/*21613*/     OPC_MoveParent,
/*21614*/     OPC_Scope, 34, /*->21650*/ // 3 children in Scope
/*21616*/       OPC_RecordChild1, // #0 = $src1
/*21617*/       OPC_MoveChild, 2,
/*21619*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*21622*/       OPC_RecordMemRef,
/*21623*/       OPC_RecordNode, // #1 = 'ld' chained node
/*21624*/       OPC_CheckFoldableChainNode,
/*21625*/       OPC_RecordChild1, // #2 = $src2
/*21626*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*21628*/       OPC_CheckPredicate, 3, // Predicate_load
/*21630*/       OPC_MoveParent,
/*21631*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*21633*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*21636*/       OPC_EmitMergeInputChains1_1,
/*21637*/       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)
/*21650*/     /*Scope*/ 34, /*->21685*/
/*21651*/       OPC_MoveChild, 1,
/*21653*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*21656*/       OPC_RecordMemRef,
/*21657*/       OPC_RecordNode, // #0 = 'ld' chained node
/*21658*/       OPC_CheckFoldableChainNode,
/*21659*/       OPC_RecordChild1, // #1 = $src2
/*21660*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*21662*/       OPC_CheckPredicate, 3, // Predicate_load
/*21664*/       OPC_MoveParent,
/*21665*/       OPC_RecordChild2, // #2 = $src1
/*21666*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*21668*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*21671*/       OPC_EmitMergeInputChains1_0,
/*21672*/       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)
/*21685*/     /*Scope*/ 13, /*->21699*/
/*21686*/       OPC_RecordChild1, // #0 = $src1
/*21687*/       OPC_RecordChild2, // #1 = $src2
/*21688*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*21690*/       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)
/*21699*/     0, /*End of Scope*/
/*21700*/   /*Scope*/ 90, /*->21791*/
/*21701*/     OPC_CheckInteger, 115|128,1/*243*/, 
/*21704*/     OPC_MoveParent,
/*21705*/     OPC_Scope, 34, /*->21741*/ // 3 children in Scope
/*21707*/       OPC_RecordChild1, // #0 = $src1
/*21708*/       OPC_MoveChild, 2,
/*21710*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*21713*/       OPC_RecordMemRef,
/*21714*/       OPC_RecordNode, // #1 = 'ld' chained node
/*21715*/       OPC_CheckFoldableChainNode,
/*21716*/       OPC_RecordChild1, // #2 = $src2
/*21717*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*21719*/       OPC_CheckPredicate, 3, // Predicate_load
/*21721*/       OPC_MoveParent,
/*21722*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*21724*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*21727*/       OPC_EmitMergeInputChains1_1,
/*21728*/       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)
/*21741*/     /*Scope*/ 34, /*->21776*/
/*21742*/       OPC_MoveChild, 1,
/*21744*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*21747*/       OPC_RecordMemRef,
/*21748*/       OPC_RecordNode, // #0 = 'ld' chained node
/*21749*/       OPC_CheckFoldableChainNode,
/*21750*/       OPC_RecordChild1, // #1 = $src2
/*21751*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*21753*/       OPC_CheckPredicate, 3, // Predicate_load
/*21755*/       OPC_MoveParent,
/*21756*/       OPC_RecordChild2, // #2 = $src1
/*21757*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*21759*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*21762*/       OPC_EmitMergeInputChains1_0,
/*21763*/       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)
/*21776*/     /*Scope*/ 13, /*->21790*/
/*21777*/       OPC_RecordChild1, // #0 = $src1
/*21778*/       OPC_RecordChild2, // #1 = $src2
/*21779*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*21781*/       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)
/*21790*/     0, /*End of Scope*/
/*21791*/   /*Scope*/ 56, /*->21848*/
/*21792*/     OPC_CheckInteger, 5|128,4/*517*/, 
/*21795*/     OPC_MoveParent,
/*21796*/     OPC_RecordChild1, // #0 = $src1
/*21797*/     OPC_Scope, 35, /*->21834*/ // 2 children in Scope
/*21799*/       OPC_MoveChild, 2,
/*21801*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*21804*/       OPC_RecordMemRef,
/*21805*/       OPC_RecordNode, // #1 = 'ld' chained node
/*21806*/       OPC_CheckFoldableChainNode,
/*21807*/       OPC_RecordChild1, // #2 = $src2
/*21808*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*21810*/       OPC_CheckPredicate, 3, // Predicate_load
/*21812*/       OPC_CheckPredicate, 22, // Predicate_memop64
/*21814*/       OPC_MoveParent,
/*21815*/       OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*21817*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*21820*/       OPC_EmitMergeInputChains1_1,
/*21821*/       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)
/*21834*/     /*Scope*/ 12, /*->21847*/
/*21835*/       OPC_RecordChild2, // #1 = $src2
/*21836*/       OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*21838*/       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)
/*21847*/     0, /*End of Scope*/
/*21848*/   /*Scope*/ 56, /*->21905*/
/*21849*/     OPC_CheckInteger, 9|128,4/*521*/, 
/*21852*/     OPC_MoveParent,
/*21853*/     OPC_RecordChild1, // #0 = $src1
/*21854*/     OPC_Scope, 35, /*->21891*/ // 2 children in Scope
/*21856*/       OPC_MoveChild, 2,
/*21858*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*21861*/       OPC_RecordMemRef,
/*21862*/       OPC_RecordNode, // #1 = 'ld' chained node
/*21863*/       OPC_CheckFoldableChainNode,
/*21864*/       OPC_RecordChild1, // #2 = $src2
/*21865*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*21867*/       OPC_CheckPredicate, 3, // Predicate_load
/*21869*/       OPC_CheckPredicate, 22, // Predicate_memop64
/*21871*/       OPC_MoveParent,
/*21872*/       OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*21874*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*21877*/       OPC_EmitMergeInputChains1_1,
/*21878*/       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)
/*21891*/     /*Scope*/ 12, /*->21904*/
/*21892*/       OPC_RecordChild2, // #1 = $src2
/*21893*/       OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*21895*/       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)
/*21904*/     0, /*End of Scope*/
/*21905*/   /*Scope*/ 56, /*->21962*/
/*21906*/     OPC_CheckInteger, 7|128,4/*519*/, 
/*21909*/     OPC_MoveParent,
/*21910*/     OPC_RecordChild1, // #0 = $src1
/*21911*/     OPC_Scope, 35, /*->21948*/ // 2 children in Scope
/*21913*/       OPC_MoveChild, 2,
/*21915*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*21918*/       OPC_RecordMemRef,
/*21919*/       OPC_RecordNode, // #1 = 'ld' chained node
/*21920*/       OPC_CheckFoldableChainNode,
/*21921*/       OPC_RecordChild1, // #2 = $src2
/*21922*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*21924*/       OPC_CheckPredicate, 3, // Predicate_load
/*21926*/       OPC_CheckPredicate, 22, // Predicate_memop64
/*21928*/       OPC_MoveParent,
/*21929*/       OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*21931*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*21934*/       OPC_EmitMergeInputChains1_1,
/*21935*/       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)
/*21948*/     /*Scope*/ 12, /*->21961*/
/*21949*/       OPC_RecordChild2, // #1 = $src2
/*21950*/       OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*21952*/       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)
/*21961*/     0, /*End of Scope*/
/*21962*/   /*Scope*/ 54, /*->22017*/
/*21963*/     OPC_CheckInteger, 92|128,1/*220*/, 
/*21966*/     OPC_MoveParent,
/*21967*/     OPC_RecordChild1, // #0 = $src1
/*21968*/     OPC_Scope, 33, /*->22003*/ // 2 children in Scope
/*21970*/       OPC_MoveChild, 2,
/*21972*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*21975*/       OPC_RecordMemRef,
/*21976*/       OPC_RecordNode, // #1 = 'ld' chained node
/*21977*/       OPC_CheckFoldableChainNode,
/*21978*/       OPC_RecordChild1, // #2 = $src2
/*21979*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*21981*/       OPC_CheckPredicate, 3, // Predicate_load
/*21983*/       OPC_MoveParent,
/*21984*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*21986*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*21989*/       OPC_EmitMergeInputChains1_1,
/*21990*/       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)
/*22003*/     /*Scope*/ 12, /*->22016*/
/*22004*/       OPC_RecordChild2, // #1 = $src2
/*22005*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*22007*/       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)
/*22016*/     0, /*End of Scope*/
/*22017*/   /*Scope*/ 54, /*->22072*/
/*22018*/     OPC_CheckInteger, 114|128,1/*242*/, 
/*22021*/     OPC_MoveParent,
/*22022*/     OPC_RecordChild1, // #0 = $src1
/*22023*/     OPC_Scope, 33, /*->22058*/ // 2 children in Scope
/*22025*/       OPC_MoveChild, 2,
/*22027*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*22030*/       OPC_RecordMemRef,
/*22031*/       OPC_RecordNode, // #1 = 'ld' chained node
/*22032*/       OPC_CheckFoldableChainNode,
/*22033*/       OPC_RecordChild1, // #2 = $src2
/*22034*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*22036*/       OPC_CheckPredicate, 3, // Predicate_load
/*22038*/       OPC_MoveParent,
/*22039*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*22041*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*22044*/       OPC_EmitMergeInputChains1_1,
/*22045*/       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)
/*22058*/     /*Scope*/ 12, /*->22071*/
/*22059*/       OPC_RecordChild2, // #1 = $src2
/*22060*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*22062*/       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)
/*22071*/     0, /*End of Scope*/
/*22072*/   /*Scope*/ 54, /*->22127*/
/*22073*/     OPC_CheckInteger, 18|128,2/*274*/, 
/*22076*/     OPC_MoveParent,
/*22077*/     OPC_RecordChild1, // #0 = $src1
/*22078*/     OPC_Scope, 33, /*->22113*/ // 2 children in Scope
/*22080*/       OPC_MoveChild, 2,
/*22082*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*22085*/       OPC_RecordMemRef,
/*22086*/       OPC_RecordNode, // #1 = 'ld' chained node
/*22087*/       OPC_CheckFoldableChainNode,
/*22088*/       OPC_RecordChild1, // #2 = $src2
/*22089*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*22091*/       OPC_CheckPredicate, 3, // Predicate_load
/*22093*/       OPC_MoveParent,
/*22094*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*22096*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*22099*/       OPC_EmitMergeInputChains1_1,
/*22100*/       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)
/*22113*/     /*Scope*/ 12, /*->22126*/
/*22114*/       OPC_RecordChild2, // #1 = $src2
/*22115*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*22117*/       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)
/*22126*/     0, /*End of Scope*/
/*22127*/   /*Scope*/ 54, /*->22182*/
/*22128*/     OPC_CheckInteger, 93|128,1/*221*/, 
/*22131*/     OPC_MoveParent,
/*22132*/     OPC_RecordChild1, // #0 = $src1
/*22133*/     OPC_Scope, 33, /*->22168*/ // 2 children in Scope
/*22135*/       OPC_MoveChild, 2,
/*22137*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*22140*/       OPC_RecordMemRef,
/*22141*/       OPC_RecordNode, // #1 = 'ld' chained node
/*22142*/       OPC_CheckFoldableChainNode,
/*22143*/       OPC_RecordChild1, // #2 = $src2
/*22144*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*22146*/       OPC_CheckPredicate, 3, // Predicate_load
/*22148*/       OPC_MoveParent,
/*22149*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*22151*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*22154*/       OPC_EmitMergeInputChains1_1,
/*22155*/       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)
/*22168*/     /*Scope*/ 12, /*->22181*/
/*22169*/       OPC_RecordChild2, // #1 = $src2
/*22170*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*22172*/       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)
/*22181*/     0, /*End of Scope*/
/*22182*/   /*Scope*/ 54, /*->22237*/
/*22183*/     OPC_CheckInteger, 0|128,2/*256*/, 
/*22186*/     OPC_MoveParent,
/*22187*/     OPC_RecordChild1, // #0 = $src1
/*22188*/     OPC_Scope, 33, /*->22223*/ // 2 children in Scope
/*22190*/       OPC_MoveChild, 2,
/*22192*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*22195*/       OPC_RecordMemRef,
/*22196*/       OPC_RecordNode, // #1 = 'ld' chained node
/*22197*/       OPC_CheckFoldableChainNode,
/*22198*/       OPC_RecordChild1, // #2 = $src2
/*22199*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*22201*/       OPC_CheckPredicate, 3, // Predicate_load
/*22203*/       OPC_MoveParent,
/*22204*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*22206*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*22209*/       OPC_EmitMergeInputChains1_1,
/*22210*/       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)
/*22223*/     /*Scope*/ 12, /*->22236*/
/*22224*/       OPC_RecordChild2, // #1 = $src2
/*22225*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*22227*/       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)
/*22236*/     0, /*End of Scope*/
/*22237*/   /*Scope*/ 54, /*->22292*/
/*22238*/     OPC_CheckInteger, 126|128,1/*254*/, 
/*22241*/     OPC_MoveParent,
/*22242*/     OPC_RecordChild1, // #0 = $src1
/*22243*/     OPC_Scope, 33, /*->22278*/ // 2 children in Scope
/*22245*/       OPC_MoveChild, 2,
/*22247*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*22250*/       OPC_RecordMemRef,
/*22251*/       OPC_RecordNode, // #1 = 'ld' chained node
/*22252*/       OPC_CheckFoldableChainNode,
/*22253*/       OPC_RecordChild1, // #2 = $src2
/*22254*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*22256*/       OPC_CheckPredicate, 3, // Predicate_load
/*22258*/       OPC_MoveParent,
/*22259*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*22261*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*22264*/       OPC_EmitMergeInputChains1_1,
/*22265*/       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)
/*22278*/     /*Scope*/ 12, /*->22291*/
/*22279*/       OPC_RecordChild2, // #1 = $src2
/*22280*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*22282*/       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)
/*22291*/     0, /*End of Scope*/
/*22292*/   /*Scope*/ 54, /*->22347*/
/*22293*/     OPC_CheckInteger, 127|128,1/*255*/, 
/*22296*/     OPC_MoveParent,
/*22297*/     OPC_RecordChild1, // #0 = $src1
/*22298*/     OPC_Scope, 33, /*->22333*/ // 2 children in Scope
/*22300*/       OPC_MoveChild, 2,
/*22302*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*22305*/       OPC_RecordMemRef,
/*22306*/       OPC_RecordNode, // #1 = 'ld' chained node
/*22307*/       OPC_CheckFoldableChainNode,
/*22308*/       OPC_RecordChild1, // #2 = $src2
/*22309*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*22311*/       OPC_CheckPredicate, 3, // Predicate_load
/*22313*/       OPC_MoveParent,
/*22314*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*22316*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*22319*/       OPC_EmitMergeInputChains1_1,
/*22320*/       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)
/*22333*/     /*Scope*/ 12, /*->22346*/
/*22334*/       OPC_RecordChild2, // #1 = $src2
/*22335*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*22337*/       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)
/*22346*/     0, /*End of Scope*/
/*22347*/   /*Scope*/ 54, /*->22402*/
/*22348*/     OPC_CheckInteger, 118|128,1/*246*/, 
/*22351*/     OPC_MoveParent,
/*22352*/     OPC_RecordChild1, // #0 = $src1
/*22353*/     OPC_Scope, 33, /*->22388*/ // 2 children in Scope
/*22355*/       OPC_MoveChild, 2,
/*22357*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*22360*/       OPC_RecordMemRef,
/*22361*/       OPC_RecordNode, // #1 = 'ld' chained node
/*22362*/       OPC_CheckFoldableChainNode,
/*22363*/       OPC_RecordChild1, // #2 = $src2
/*22364*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*22366*/       OPC_CheckPredicate, 3, // Predicate_load
/*22368*/       OPC_MoveParent,
/*22369*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*22371*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*22374*/       OPC_EmitMergeInputChains1_1,
/*22375*/       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)
/*22388*/     /*Scope*/ 12, /*->22401*/
/*22389*/       OPC_RecordChild2, // #1 = $src2
/*22390*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*22392*/       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)
/*22401*/     0, /*End of Scope*/
/*22402*/   /*Scope*/ 54, /*->22457*/
/*22403*/     OPC_CheckInteger, 116|128,1/*244*/, 
/*22406*/     OPC_MoveParent,
/*22407*/     OPC_RecordChild1, // #0 = $src1
/*22408*/     OPC_Scope, 33, /*->22443*/ // 2 children in Scope
/*22410*/       OPC_MoveChild, 2,
/*22412*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*22415*/       OPC_RecordMemRef,
/*22416*/       OPC_RecordNode, // #1 = 'ld' chained node
/*22417*/       OPC_CheckFoldableChainNode,
/*22418*/       OPC_RecordChild1, // #2 = $src2
/*22419*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*22421*/       OPC_CheckPredicate, 3, // Predicate_load
/*22423*/       OPC_MoveParent,
/*22424*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*22426*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*22429*/       OPC_EmitMergeInputChains1_1,
/*22430*/       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)
/*22443*/     /*Scope*/ 12, /*->22456*/
/*22444*/       OPC_RecordChild2, // #1 = $src2
/*22445*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*22447*/       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)
/*22456*/     0, /*End of Scope*/
/*22457*/   /*Scope*/ 54, /*->22512*/
/*22458*/     OPC_CheckInteger, 117|128,1/*245*/, 
/*22461*/     OPC_MoveParent,
/*22462*/     OPC_RecordChild1, // #0 = $src1
/*22463*/     OPC_Scope, 33, /*->22498*/ // 2 children in Scope
/*22465*/       OPC_MoveChild, 2,
/*22467*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*22470*/       OPC_RecordMemRef,
/*22471*/       OPC_RecordNode, // #1 = 'ld' chained node
/*22472*/       OPC_CheckFoldableChainNode,
/*22473*/       OPC_RecordChild1, // #2 = $src2
/*22474*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*22476*/       OPC_CheckPredicate, 3, // Predicate_load
/*22478*/       OPC_MoveParent,
/*22479*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*22481*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*22484*/       OPC_EmitMergeInputChains1_1,
/*22485*/       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)
/*22498*/     /*Scope*/ 12, /*->22511*/
/*22499*/       OPC_RecordChild2, // #1 = $src2
/*22500*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*22502*/       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)
/*22511*/     0, /*End of Scope*/
/*22512*/   /*Scope*/ 54, /*->22567*/
/*22513*/     OPC_CheckInteger, 123|128,1/*251*/, 
/*22516*/     OPC_MoveParent,
/*22517*/     OPC_RecordChild1, // #0 = $src1
/*22518*/     OPC_Scope, 33, /*->22553*/ // 2 children in Scope
/*22520*/       OPC_MoveChild, 2,
/*22522*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*22525*/       OPC_RecordMemRef,
/*22526*/       OPC_RecordNode, // #1 = 'ld' chained node
/*22527*/       OPC_CheckFoldableChainNode,
/*22528*/       OPC_RecordChild1, // #2 = $src2
/*22529*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*22531*/       OPC_CheckPredicate, 3, // Predicate_load
/*22533*/       OPC_MoveParent,
/*22534*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*22536*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*22539*/       OPC_EmitMergeInputChains1_1,
/*22540*/       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)
/*22553*/     /*Scope*/ 12, /*->22566*/
/*22554*/       OPC_RecordChild2, // #1 = $src2
/*22555*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*22557*/       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)
/*22566*/     0, /*End of Scope*/
/*22567*/   /*Scope*/ 54, /*->22622*/
/*22568*/     OPC_CheckInteger, 122|128,1/*250*/, 
/*22571*/     OPC_MoveParent,
/*22572*/     OPC_RecordChild1, // #0 = $src1
/*22573*/     OPC_Scope, 33, /*->22608*/ // 2 children in Scope
/*22575*/       OPC_MoveChild, 2,
/*22577*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*22580*/       OPC_RecordMemRef,
/*22581*/       OPC_RecordNode, // #1 = 'ld' chained node
/*22582*/       OPC_CheckFoldableChainNode,
/*22583*/       OPC_RecordChild1, // #2 = $src2
/*22584*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*22586*/       OPC_CheckPredicate, 3, // Predicate_load
/*22588*/       OPC_MoveParent,
/*22589*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*22591*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*22594*/       OPC_EmitMergeInputChains1_1,
/*22595*/       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)
/*22608*/     /*Scope*/ 12, /*->22621*/
/*22609*/       OPC_RecordChild2, // #1 = $src2
/*22610*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*22612*/       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)
/*22621*/     0, /*End of Scope*/
/*22622*/   /*Scope*/ 54, /*->22677*/
/*22623*/     OPC_CheckInteger, 96|128,1/*224*/, 
/*22626*/     OPC_MoveParent,
/*22627*/     OPC_RecordChild1, // #0 = $src1
/*22628*/     OPC_Scope, 33, /*->22663*/ // 2 children in Scope
/*22630*/       OPC_MoveChild, 2,
/*22632*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*22635*/       OPC_RecordMemRef,
/*22636*/       OPC_RecordNode, // #1 = 'ld' chained node
/*22637*/       OPC_CheckFoldableChainNode,
/*22638*/       OPC_RecordChild1, // #2 = $src2
/*22639*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*22641*/       OPC_CheckPredicate, 3, // Predicate_load
/*22643*/       OPC_MoveParent,
/*22644*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*22646*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*22649*/       OPC_EmitMergeInputChains1_1,
/*22650*/       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)
/*22663*/     /*Scope*/ 12, /*->22676*/
/*22664*/       OPC_RecordChild2, // #1 = $src2
/*22665*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*22667*/       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)
/*22676*/     0, /*End of Scope*/
/*22677*/   /*Scope*/ 54, /*->22732*/
/*22678*/     OPC_CheckInteger, 98|128,1/*226*/, 
/*22681*/     OPC_MoveParent,
/*22682*/     OPC_RecordChild1, // #0 = $src1
/*22683*/     OPC_Scope, 33, /*->22718*/ // 2 children in Scope
/*22685*/       OPC_MoveChild, 2,
/*22687*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*22690*/       OPC_RecordMemRef,
/*22691*/       OPC_RecordNode, // #1 = 'ld' chained node
/*22692*/       OPC_CheckFoldableChainNode,
/*22693*/       OPC_RecordChild1, // #2 = $src2
/*22694*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*22696*/       OPC_CheckPredicate, 3, // Predicate_load
/*22698*/       OPC_MoveParent,
/*22699*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*22701*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*22704*/       OPC_EmitMergeInputChains1_1,
/*22705*/       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)
/*22718*/     /*Scope*/ 12, /*->22731*/
/*22719*/       OPC_RecordChild2, // #1 = $src2
/*22720*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*22722*/       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)
/*22731*/     0, /*End of Scope*/
/*22732*/   /*Scope*/ 54, /*->22787*/
/*22733*/     OPC_CheckInteger, 97|128,1/*225*/, 
/*22736*/     OPC_MoveParent,
/*22737*/     OPC_RecordChild1, // #0 = $src1
/*22738*/     OPC_Scope, 33, /*->22773*/ // 2 children in Scope
/*22740*/       OPC_MoveChild, 2,
/*22742*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*22745*/       OPC_RecordMemRef,
/*22746*/       OPC_RecordNode, // #1 = 'ld' chained node
/*22747*/       OPC_CheckFoldableChainNode,
/*22748*/       OPC_RecordChild1, // #2 = $src2
/*22749*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*22751*/       OPC_CheckPredicate, 3, // Predicate_load
/*22753*/       OPC_MoveParent,
/*22754*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*22756*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*22759*/       OPC_EmitMergeInputChains1_1,
/*22760*/       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)
/*22773*/     /*Scope*/ 12, /*->22786*/
/*22774*/       OPC_RecordChild2, // #1 = $src2
/*22775*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*22777*/       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)
/*22786*/     0, /*End of Scope*/
/*22787*/   /*Scope*/ 54, /*->22842*/
/*22788*/     OPC_CheckInteger, 99|128,1/*227*/, 
/*22791*/     OPC_MoveParent,
/*22792*/     OPC_RecordChild1, // #0 = $src1
/*22793*/     OPC_Scope, 33, /*->22828*/ // 2 children in Scope
/*22795*/       OPC_MoveChild, 2,
/*22797*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*22800*/       OPC_RecordMemRef,
/*22801*/       OPC_RecordNode, // #1 = 'ld' chained node
/*22802*/       OPC_CheckFoldableChainNode,
/*22803*/       OPC_RecordChild1, // #2 = $src2
/*22804*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*22806*/       OPC_CheckPredicate, 3, // Predicate_load
/*22808*/       OPC_MoveParent,
/*22809*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*22811*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*22814*/       OPC_EmitMergeInputChains1_1,
/*22815*/       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)
/*22828*/     /*Scope*/ 12, /*->22841*/
/*22829*/       OPC_RecordChild2, // #1 = $src2
/*22830*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*22832*/       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)
/*22841*/     0, /*End of Scope*/
/*22842*/   /*Scope*/ 54, /*->22897*/
/*22843*/     OPC_CheckInteger, 101|128,1/*229*/, 
/*22846*/     OPC_MoveParent,
/*22847*/     OPC_RecordChild1, // #0 = $src1
/*22848*/     OPC_Scope, 33, /*->22883*/ // 2 children in Scope
/*22850*/       OPC_MoveChild, 2,
/*22852*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*22855*/       OPC_RecordMemRef,
/*22856*/       OPC_RecordNode, // #1 = 'ld' chained node
/*22857*/       OPC_CheckFoldableChainNode,
/*22858*/       OPC_RecordChild1, // #2 = $src2
/*22859*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*22861*/       OPC_CheckPredicate, 3, // Predicate_load
/*22863*/       OPC_MoveParent,
/*22864*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*22866*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*22869*/       OPC_EmitMergeInputChains1_1,
/*22870*/       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)
/*22883*/     /*Scope*/ 12, /*->22896*/
/*22884*/       OPC_RecordChild2, // #1 = $src2
/*22885*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*22887*/       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)
/*22896*/     0, /*End of Scope*/
/*22897*/   /*Scope*/ 54, /*->22952*/
/*22898*/     OPC_CheckInteger, 100|128,1/*228*/, 
/*22901*/     OPC_MoveParent,
/*22902*/     OPC_RecordChild1, // #0 = $src1
/*22903*/     OPC_Scope, 33, /*->22938*/ // 2 children in Scope
/*22905*/       OPC_MoveChild, 2,
/*22907*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*22910*/       OPC_RecordMemRef,
/*22911*/       OPC_RecordNode, // #1 = 'ld' chained node
/*22912*/       OPC_CheckFoldableChainNode,
/*22913*/       OPC_RecordChild1, // #2 = $src2
/*22914*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*22916*/       OPC_CheckPredicate, 3, // Predicate_load
/*22918*/       OPC_MoveParent,
/*22919*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*22921*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*22924*/       OPC_EmitMergeInputChains1_1,
/*22925*/       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)
/*22938*/     /*Scope*/ 12, /*->22951*/
/*22939*/       OPC_RecordChild2, // #1 = $src2
/*22940*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*22942*/       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)
/*22951*/     0, /*End of Scope*/
/*22952*/   /*Scope*/ 54, /*->23007*/
/*22953*/     OPC_CheckInteger, 12|128,2/*268*/, 
/*22956*/     OPC_MoveParent,
/*22957*/     OPC_RecordChild1, // #0 = $src1
/*22958*/     OPC_Scope, 33, /*->22993*/ // 2 children in Scope
/*22960*/       OPC_MoveChild, 2,
/*22962*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*22965*/       OPC_RecordMemRef,
/*22966*/       OPC_RecordNode, // #1 = 'ld' chained node
/*22967*/       OPC_CheckFoldableChainNode,
/*22968*/       OPC_RecordChild1, // #2 = $src2
/*22969*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*22971*/       OPC_CheckPredicate, 3, // Predicate_load
/*22973*/       OPC_MoveParent,
/*22974*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*22976*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*22979*/       OPC_EmitMergeInputChains1_1,
/*22980*/       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)
/*22993*/     /*Scope*/ 12, /*->23006*/
/*22994*/       OPC_RecordChild2, // #1 = $src2
/*22995*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*22997*/       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)
/*23006*/     0, /*End of Scope*/
/*23007*/   /*Scope*/ 54, /*->23062*/
/*23008*/     OPC_CheckInteger, 14|128,2/*270*/, 
/*23011*/     OPC_MoveParent,
/*23012*/     OPC_RecordChild1, // #0 = $src1
/*23013*/     OPC_Scope, 33, /*->23048*/ // 2 children in Scope
/*23015*/       OPC_MoveChild, 2,
/*23017*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*23020*/       OPC_RecordMemRef,
/*23021*/       OPC_RecordNode, // #1 = 'ld' chained node
/*23022*/       OPC_CheckFoldableChainNode,
/*23023*/       OPC_RecordChild1, // #2 = $src2
/*23024*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*23026*/       OPC_CheckPredicate, 3, // Predicate_load
/*23028*/       OPC_MoveParent,
/*23029*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*23031*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*23034*/       OPC_EmitMergeInputChains1_1,
/*23035*/       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)
/*23048*/     /*Scope*/ 12, /*->23061*/
/*23049*/       OPC_RecordChild2, // #1 = $src2
/*23050*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*23052*/       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)
/*23061*/     0, /*End of Scope*/
/*23062*/   /*Scope*/ 54, /*->23117*/
/*23063*/     OPC_CheckInteger, 13|128,2/*269*/, 
/*23066*/     OPC_MoveParent,
/*23067*/     OPC_RecordChild1, // #0 = $src1
/*23068*/     OPC_Scope, 33, /*->23103*/ // 2 children in Scope
/*23070*/       OPC_MoveChild, 2,
/*23072*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*23075*/       OPC_RecordMemRef,
/*23076*/       OPC_RecordNode, // #1 = 'ld' chained node
/*23077*/       OPC_CheckFoldableChainNode,
/*23078*/       OPC_RecordChild1, // #2 = $src2
/*23079*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*23081*/       OPC_CheckPredicate, 3, // Predicate_load
/*23083*/       OPC_MoveParent,
/*23084*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*23086*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*23089*/       OPC_EmitMergeInputChains1_1,
/*23090*/       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)
/*23103*/     /*Scope*/ 12, /*->23116*/
/*23104*/       OPC_RecordChild2, // #1 = $src2
/*23105*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*23107*/       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)
/*23116*/     0, /*End of Scope*/
/*23117*/   /*Scope*/ 54, /*->23172*/
/*23118*/     OPC_CheckInteger, 15|128,2/*271*/, 
/*23121*/     OPC_MoveParent,
/*23122*/     OPC_RecordChild1, // #0 = $src1
/*23123*/     OPC_Scope, 33, /*->23158*/ // 2 children in Scope
/*23125*/       OPC_MoveChild, 2,
/*23127*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*23130*/       OPC_RecordMemRef,
/*23131*/       OPC_RecordNode, // #1 = 'ld' chained node
/*23132*/       OPC_CheckFoldableChainNode,
/*23133*/       OPC_RecordChild1, // #2 = $src2
/*23134*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*23136*/       OPC_CheckPredicate, 3, // Predicate_load
/*23138*/       OPC_MoveParent,
/*23139*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*23141*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*23144*/       OPC_EmitMergeInputChains1_1,
/*23145*/       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)
/*23158*/     /*Scope*/ 12, /*->23171*/
/*23159*/       OPC_RecordChild2, // #1 = $src2
/*23160*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*23162*/       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)
/*23171*/     0, /*End of Scope*/
/*23172*/   /*Scope*/ 54, /*->23227*/
/*23173*/     OPC_CheckInteger, 17|128,2/*273*/, 
/*23176*/     OPC_MoveParent,
/*23177*/     OPC_RecordChild1, // #0 = $src1
/*23178*/     OPC_Scope, 33, /*->23213*/ // 2 children in Scope
/*23180*/       OPC_MoveChild, 2,
/*23182*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*23185*/       OPC_RecordMemRef,
/*23186*/       OPC_RecordNode, // #1 = 'ld' chained node
/*23187*/       OPC_CheckFoldableChainNode,
/*23188*/       OPC_RecordChild1, // #2 = $src2
/*23189*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*23191*/       OPC_CheckPredicate, 3, // Predicate_load
/*23193*/       OPC_MoveParent,
/*23194*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*23196*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*23199*/       OPC_EmitMergeInputChains1_1,
/*23200*/       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)
/*23213*/     /*Scope*/ 12, /*->23226*/
/*23214*/       OPC_RecordChild2, // #1 = $src2
/*23215*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*23217*/       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)
/*23226*/     0, /*End of Scope*/
/*23227*/   /*Scope*/ 54, /*->23282*/
/*23228*/     OPC_CheckInteger, 16|128,2/*272*/, 
/*23231*/     OPC_MoveParent,
/*23232*/     OPC_RecordChild1, // #0 = $src1
/*23233*/     OPC_Scope, 33, /*->23268*/ // 2 children in Scope
/*23235*/       OPC_MoveChild, 2,
/*23237*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*23240*/       OPC_RecordMemRef,
/*23241*/       OPC_RecordNode, // #1 = 'ld' chained node
/*23242*/       OPC_CheckFoldableChainNode,
/*23243*/       OPC_RecordChild1, // #2 = $src2
/*23244*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*23246*/       OPC_CheckPredicate, 3, // Predicate_load
/*23248*/       OPC_MoveParent,
/*23249*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*23251*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*23254*/       OPC_EmitMergeInputChains1_1,
/*23255*/       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)
/*23268*/     /*Scope*/ 12, /*->23281*/
/*23269*/       OPC_RecordChild2, // #1 = $src2
/*23270*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*23272*/       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)
/*23281*/     0, /*End of Scope*/
/*23282*/   /*Scope*/ 54, /*->23337*/
/*23283*/     OPC_CheckInteger, 81|128,1/*209*/, 
/*23286*/     OPC_MoveParent,
/*23287*/     OPC_RecordChild1, // #0 = $src1
/*23288*/     OPC_Scope, 33, /*->23323*/ // 2 children in Scope
/*23290*/       OPC_MoveChild, 2,
/*23292*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*23295*/       OPC_RecordMemRef,
/*23296*/       OPC_RecordNode, // #1 = 'ld' chained node
/*23297*/       OPC_CheckFoldableChainNode,
/*23298*/       OPC_RecordChild1, // #2 = $src2
/*23299*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*23301*/       OPC_CheckPredicate, 3, // Predicate_load
/*23303*/       OPC_MoveParent,
/*23304*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*23306*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*23309*/       OPC_EmitMergeInputChains1_1,
/*23310*/       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)
/*23323*/     /*Scope*/ 12, /*->23336*/
/*23324*/       OPC_RecordChild2, // #1 = $src2
/*23325*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*23327*/       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)
/*23336*/     0, /*End of Scope*/
/*23337*/   /*Scope*/ 54, /*->23392*/
/*23338*/     OPC_CheckInteger, 80|128,1/*208*/, 
/*23341*/     OPC_MoveParent,
/*23342*/     OPC_RecordChild1, // #0 = $src1
/*23343*/     OPC_Scope, 33, /*->23378*/ // 2 children in Scope
/*23345*/       OPC_MoveChild, 2,
/*23347*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*23350*/       OPC_RecordMemRef,
/*23351*/       OPC_RecordNode, // #1 = 'ld' chained node
/*23352*/       OPC_CheckFoldableChainNode,
/*23353*/       OPC_RecordChild1, // #2 = $src2
/*23354*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*23356*/       OPC_CheckPredicate, 3, // Predicate_load
/*23358*/       OPC_MoveParent,
/*23359*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*23361*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*23364*/       OPC_EmitMergeInputChains1_1,
/*23365*/       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)
/*23378*/     /*Scope*/ 12, /*->23391*/
/*23379*/       OPC_RecordChild2, // #1 = $src2
/*23380*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*23382*/       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)
/*23391*/     0, /*End of Scope*/
/*23392*/   /*Scope*/ 54, /*->23447*/
/*23393*/     OPC_CheckInteger, 82|128,1/*210*/, 
/*23396*/     OPC_MoveParent,
/*23397*/     OPC_RecordChild1, // #0 = $src1
/*23398*/     OPC_Scope, 33, /*->23433*/ // 2 children in Scope
/*23400*/       OPC_MoveChild, 2,
/*23402*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*23405*/       OPC_RecordMemRef,
/*23406*/       OPC_RecordNode, // #1 = 'ld' chained node
/*23407*/       OPC_CheckFoldableChainNode,
/*23408*/       OPC_RecordChild1, // #2 = $src2
/*23409*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*23411*/       OPC_CheckPredicate, 3, // Predicate_load
/*23413*/       OPC_MoveParent,
/*23414*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*23416*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*23419*/       OPC_EmitMergeInputChains1_1,
/*23420*/       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)
/*23433*/     /*Scope*/ 12, /*->23446*/
/*23434*/       OPC_RecordChild2, // #1 = $src2
/*23435*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*23437*/       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)
/*23446*/     0, /*End of Scope*/
/*23447*/   /*Scope*/ 56, /*->23504*/
/*23448*/     OPC_CheckInteger, 3|128,4/*515*/, 
/*23451*/     OPC_MoveParent,
/*23452*/     OPC_RecordChild1, // #0 = $src1
/*23453*/     OPC_Scope, 35, /*->23490*/ // 2 children in Scope
/*23455*/       OPC_MoveChild, 2,
/*23457*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*23460*/       OPC_RecordMemRef,
/*23461*/       OPC_RecordNode, // #1 = 'ld' chained node
/*23462*/       OPC_CheckFoldableChainNode,
/*23463*/       OPC_RecordChild1, // #2 = $src2
/*23464*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*23466*/       OPC_CheckPredicate, 3, // Predicate_load
/*23468*/       OPC_CheckPredicate, 22, // Predicate_memop64
/*23470*/       OPC_MoveParent,
/*23471*/       OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*23473*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*23476*/       OPC_EmitMergeInputChains1_1,
/*23477*/       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)
/*23490*/     /*Scope*/ 12, /*->23503*/
/*23491*/       OPC_RecordChild2, // #1 = $src2
/*23492*/       OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*23494*/       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)
/*23503*/     0, /*End of Scope*/
/*23504*/   /*Scope*/ 51, /*->23556*/
/*23505*/     OPC_CheckInteger, 75|128,3/*459*/, 
/*23508*/     OPC_MoveParent,
/*23509*/     OPC_Scope, 32, /*->23543*/ // 2 children in Scope
/*23511*/       OPC_MoveChild, 1,
/*23513*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*23516*/       OPC_RecordMemRef,
/*23517*/       OPC_RecordNode, // #0 = 'ld' chained node
/*23518*/       OPC_CheckFoldableChainNode,
/*23519*/       OPC_RecordChild1, // #1 = $src
/*23520*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*23522*/       OPC_CheckPredicate, 3, // Predicate_load
/*23524*/       OPC_MoveParent,
/*23525*/       OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*23527*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*23530*/       OPC_EmitMergeInputChains1_0,
/*23531*/       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)
/*23543*/     /*Scope*/ 11, /*->23555*/
/*23544*/       OPC_RecordChild1, // #0 = $src
/*23545*/       OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*23547*/       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)
/*23555*/     0, /*End of Scope*/
/*23556*/   /*Scope*/ 53, /*->23610*/
/*23557*/     OPC_CheckInteger, 72|128,3/*456*/, 
/*23560*/     OPC_MoveParent,
/*23561*/     OPC_Scope, 34, /*->23597*/ // 2 children in Scope
/*23563*/       OPC_MoveChild, 1,
/*23565*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*23568*/       OPC_RecordMemRef,
/*23569*/       OPC_RecordNode, // #0 = 'ld' chained node
/*23570*/       OPC_CheckFoldableChainNode,
/*23571*/       OPC_RecordChild1, // #1 = $src
/*23572*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*23574*/       OPC_CheckPredicate, 3, // Predicate_load
/*23576*/       OPC_CheckPredicate, 23, // Predicate_memop
/*23578*/       OPC_MoveParent,
/*23579*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*23581*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*23584*/       OPC_EmitMergeInputChains1_0,
/*23585*/       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)
/*23597*/     /*Scope*/ 11, /*->23609*/
/*23598*/       OPC_RecordChild1, // #0 = $src
/*23599*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*23601*/       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)
/*23609*/     0, /*End of Scope*/
/*23610*/   /*Scope*/ 51, /*->23662*/
/*23611*/     OPC_CheckInteger, 81|128,3/*465*/, 
/*23614*/     OPC_MoveParent,
/*23615*/     OPC_Scope, 32, /*->23649*/ // 2 children in Scope
/*23617*/       OPC_MoveChild, 1,
/*23619*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*23622*/       OPC_RecordMemRef,
/*23623*/       OPC_RecordNode, // #0 = 'ld' chained node
/*23624*/       OPC_CheckFoldableChainNode,
/*23625*/       OPC_RecordChild1, // #1 = $src
/*23626*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*23628*/       OPC_CheckPredicate, 3, // Predicate_load
/*23630*/       OPC_MoveParent,
/*23631*/       OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*23633*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*23636*/       OPC_EmitMergeInputChains1_0,
/*23637*/       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)
/*23649*/     /*Scope*/ 11, /*->23661*/
/*23650*/       OPC_RecordChild1, // #0 = $src
/*23651*/       OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*23653*/       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)
/*23661*/     0, /*End of Scope*/
/*23662*/   /*Scope*/ 53, /*->23716*/
/*23663*/     OPC_CheckInteger, 80|128,3/*464*/, 
/*23666*/     OPC_MoveParent,
/*23667*/     OPC_Scope, 34, /*->23703*/ // 2 children in Scope
/*23669*/       OPC_MoveChild, 1,
/*23671*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*23674*/       OPC_RecordMemRef,
/*23675*/       OPC_RecordNode, // #0 = 'ld' chained node
/*23676*/       OPC_CheckFoldableChainNode,
/*23677*/       OPC_RecordChild1, // #1 = $src
/*23678*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*23680*/       OPC_CheckPredicate, 3, // Predicate_load
/*23682*/       OPC_CheckPredicate, 23, // Predicate_memop
/*23684*/       OPC_MoveParent,
/*23685*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*23687*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*23690*/       OPC_EmitMergeInputChains1_0,
/*23691*/       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)
/*23703*/     /*Scope*/ 11, /*->23715*/
/*23704*/       OPC_RecordChild1, // #0 = $src
/*23705*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*23707*/       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)
/*23715*/     0, /*End of Scope*/
/*23716*/   /*Scope*/ 53, /*->23770*/
/*23717*/     OPC_CheckInteger, 83, 
/*23719*/     OPC_MoveParent,
/*23720*/     OPC_RecordChild1, // #0 = $src1
/*23721*/     OPC_Scope, 33, /*->23756*/ // 2 children in Scope
/*23723*/       OPC_MoveChild, 2,
/*23725*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*23728*/       OPC_RecordMemRef,
/*23729*/       OPC_RecordNode, // #1 = 'ld' chained node
/*23730*/       OPC_CheckFoldableChainNode,
/*23731*/       OPC_RecordChild1, // #2 = $src2
/*23732*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*23734*/       OPC_CheckPredicate, 3, // Predicate_load
/*23736*/       OPC_MoveParent,
/*23737*/       OPC_CheckPatternPredicate, 13, // (Subtarget->has3DNow())
/*23739*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*23742*/       OPC_EmitMergeInputChains1_1,
/*23743*/       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)
/*23756*/     /*Scope*/ 12, /*->23769*/
/*23757*/       OPC_RecordChild2, // #1 = $src2
/*23758*/       OPC_CheckPatternPredicate, 13, // (Subtarget->has3DNow())
/*23760*/       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)
/*23769*/     0, /*End of Scope*/
/*23770*/   /*Scope*/ 50, /*->23821*/
/*23771*/     OPC_CheckInteger, 84, 
/*23773*/     OPC_MoveParent,
/*23774*/     OPC_Scope, 32, /*->23808*/ // 2 children in Scope
/*23776*/       OPC_MoveChild, 1,
/*23778*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*23781*/       OPC_RecordMemRef,
/*23782*/       OPC_RecordNode, // #0 = 'ld' chained node
/*23783*/       OPC_CheckFoldableChainNode,
/*23784*/       OPC_RecordChild1, // #1 = $src
/*23785*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*23787*/       OPC_CheckPredicate, 3, // Predicate_load
/*23789*/       OPC_MoveParent,
/*23790*/       OPC_CheckPatternPredicate, 13, // (Subtarget->has3DNow())
/*23792*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*23795*/       OPC_EmitMergeInputChains1_0,
/*23796*/       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)
/*23808*/     /*Scope*/ 11, /*->23820*/
/*23809*/       OPC_RecordChild1, // #0 = $src
/*23810*/       OPC_CheckPatternPredicate, 13, // (Subtarget->has3DNow())
/*23812*/       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)
/*23820*/     0, /*End of Scope*/
/*23821*/   /*Scope*/ 53, /*->23875*/
/*23822*/     OPC_CheckInteger, 85, 
/*23824*/     OPC_MoveParent,
/*23825*/     OPC_RecordChild1, // #0 = $src1
/*23826*/     OPC_Scope, 33, /*->23861*/ // 2 children in Scope
/*23828*/       OPC_MoveChild, 2,
/*23830*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*23833*/       OPC_RecordMemRef,
/*23834*/       OPC_RecordNode, // #1 = 'ld' chained node
/*23835*/       OPC_CheckFoldableChainNode,
/*23836*/       OPC_RecordChild1, // #2 = $src2
/*23837*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*23839*/       OPC_CheckPredicate, 3, // Predicate_load
/*23841*/       OPC_MoveParent,
/*23842*/       OPC_CheckPatternPredicate, 13, // (Subtarget->has3DNow())
/*23844*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*23847*/       OPC_EmitMergeInputChains1_1,
/*23848*/       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)
/*23861*/     /*Scope*/ 12, /*->23874*/
/*23862*/       OPC_RecordChild2, // #1 = $src2
/*23863*/       OPC_CheckPatternPredicate, 13, // (Subtarget->has3DNow())
/*23865*/       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)
/*23874*/     0, /*End of Scope*/
/*23875*/   /*Scope*/ 53, /*->23929*/
/*23876*/     OPC_CheckInteger, 86, 
/*23878*/     OPC_MoveParent,
/*23879*/     OPC_RecordChild1, // #0 = $src1
/*23880*/     OPC_Scope, 33, /*->23915*/ // 2 children in Scope
/*23882*/       OPC_MoveChild, 2,
/*23884*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*23887*/       OPC_RecordMemRef,
/*23888*/       OPC_RecordNode, // #1 = 'ld' chained node
/*23889*/       OPC_CheckFoldableChainNode,
/*23890*/       OPC_RecordChild1, // #2 = $src2
/*23891*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*23893*/       OPC_CheckPredicate, 3, // Predicate_load
/*23895*/       OPC_MoveParent,
/*23896*/       OPC_CheckPatternPredicate, 13, // (Subtarget->has3DNow())
/*23898*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*23901*/       OPC_EmitMergeInputChains1_1,
/*23902*/       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)
/*23915*/     /*Scope*/ 12, /*->23928*/
/*23916*/       OPC_RecordChild2, // #1 = $src2
/*23917*/       OPC_CheckPatternPredicate, 13, // (Subtarget->has3DNow())
/*23919*/       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)
/*23928*/     0, /*End of Scope*/
/*23929*/   /*Scope*/ 53, /*->23983*/
/*23930*/     OPC_CheckInteger, 87, 
/*23932*/     OPC_MoveParent,
/*23933*/     OPC_RecordChild1, // #0 = $src1
/*23934*/     OPC_Scope, 33, /*->23969*/ // 2 children in Scope
/*23936*/       OPC_MoveChild, 2,
/*23938*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*23941*/       OPC_RecordMemRef,
/*23942*/       OPC_RecordNode, // #1 = 'ld' chained node
/*23943*/       OPC_CheckFoldableChainNode,
/*23944*/       OPC_RecordChild1, // #2 = $src2
/*23945*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*23947*/       OPC_CheckPredicate, 3, // Predicate_load
/*23949*/       OPC_MoveParent,
/*23950*/       OPC_CheckPatternPredicate, 13, // (Subtarget->has3DNow())
/*23952*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*23955*/       OPC_EmitMergeInputChains1_1,
/*23956*/       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)
/*23969*/     /*Scope*/ 12, /*->23982*/
/*23970*/       OPC_RecordChild2, // #1 = $src2
/*23971*/       OPC_CheckPatternPredicate, 13, // (Subtarget->has3DNow())
/*23973*/       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)
/*23982*/     0, /*End of Scope*/
/*23983*/   /*Scope*/ 53, /*->24037*/
/*23984*/     OPC_CheckInteger, 88, 
/*23986*/     OPC_MoveParent,
/*23987*/     OPC_RecordChild1, // #0 = $src1
/*23988*/     OPC_Scope, 33, /*->24023*/ // 2 children in Scope
/*23990*/       OPC_MoveChild, 2,
/*23992*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*23995*/       OPC_RecordMemRef,
/*23996*/       OPC_RecordNode, // #1 = 'ld' chained node
/*23997*/       OPC_CheckFoldableChainNode,
/*23998*/       OPC_RecordChild1, // #2 = $src2
/*23999*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*24001*/       OPC_CheckPredicate, 3, // Predicate_load
/*24003*/       OPC_MoveParent,
/*24004*/       OPC_CheckPatternPredicate, 13, // (Subtarget->has3DNow())
/*24006*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*24009*/       OPC_EmitMergeInputChains1_1,
/*24010*/       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)
/*24023*/     /*Scope*/ 12, /*->24036*/
/*24024*/       OPC_RecordChild2, // #1 = $src2
/*24025*/       OPC_CheckPatternPredicate, 13, // (Subtarget->has3DNow())
/*24027*/       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)
/*24036*/     0, /*End of Scope*/
/*24037*/   /*Scope*/ 53, /*->24091*/
/*24038*/     OPC_CheckInteger, 89, 
/*24040*/     OPC_MoveParent,
/*24041*/     OPC_RecordChild1, // #0 = $src1
/*24042*/     OPC_Scope, 33, /*->24077*/ // 2 children in Scope
/*24044*/       OPC_MoveChild, 2,
/*24046*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*24049*/       OPC_RecordMemRef,
/*24050*/       OPC_RecordNode, // #1 = 'ld' chained node
/*24051*/       OPC_CheckFoldableChainNode,
/*24052*/       OPC_RecordChild1, // #2 = $src2
/*24053*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*24055*/       OPC_CheckPredicate, 3, // Predicate_load
/*24057*/       OPC_MoveParent,
/*24058*/       OPC_CheckPatternPredicate, 13, // (Subtarget->has3DNow())
/*24060*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*24063*/       OPC_EmitMergeInputChains1_1,
/*24064*/       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)
/*24077*/     /*Scope*/ 12, /*->24090*/
/*24078*/       OPC_RecordChild2, // #1 = $src2
/*24079*/       OPC_CheckPatternPredicate, 13, // (Subtarget->has3DNow())
/*24081*/       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)
/*24090*/     0, /*End of Scope*/
/*24091*/   /*Scope*/ 53, /*->24145*/
/*24092*/     OPC_CheckInteger, 90, 
/*24094*/     OPC_MoveParent,
/*24095*/     OPC_RecordChild1, // #0 = $src1
/*24096*/     OPC_Scope, 33, /*->24131*/ // 2 children in Scope
/*24098*/       OPC_MoveChild, 2,
/*24100*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*24103*/       OPC_RecordMemRef,
/*24104*/       OPC_RecordNode, // #1 = 'ld' chained node
/*24105*/       OPC_CheckFoldableChainNode,
/*24106*/       OPC_RecordChild1, // #2 = $src2
/*24107*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*24109*/       OPC_CheckPredicate, 3, // Predicate_load
/*24111*/       OPC_MoveParent,
/*24112*/       OPC_CheckPatternPredicate, 13, // (Subtarget->has3DNow())
/*24114*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*24117*/       OPC_EmitMergeInputChains1_1,
/*24118*/       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)
/*24131*/     /*Scope*/ 12, /*->24144*/
/*24132*/       OPC_RecordChild2, // #1 = $src2
/*24133*/       OPC_CheckPatternPredicate, 13, // (Subtarget->has3DNow())
/*24135*/       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)
/*24144*/     0, /*End of Scope*/
/*24145*/   /*Scope*/ 53, /*->24199*/
/*24146*/     OPC_CheckInteger, 91, 
/*24148*/     OPC_MoveParent,
/*24149*/     OPC_RecordChild1, // #0 = $src1
/*24150*/     OPC_Scope, 33, /*->24185*/ // 2 children in Scope
/*24152*/       OPC_MoveChild, 2,
/*24154*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*24157*/       OPC_RecordMemRef,
/*24158*/       OPC_RecordNode, // #1 = 'ld' chained node
/*24159*/       OPC_CheckFoldableChainNode,
/*24160*/       OPC_RecordChild1, // #2 = $src2
/*24161*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*24163*/       OPC_CheckPredicate, 3, // Predicate_load
/*24165*/       OPC_MoveParent,
/*24166*/       OPC_CheckPatternPredicate, 13, // (Subtarget->has3DNow())
/*24168*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*24171*/       OPC_EmitMergeInputChains1_1,
/*24172*/       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)
/*24185*/     /*Scope*/ 12, /*->24198*/
/*24186*/       OPC_RecordChild2, // #1 = $src2
/*24187*/       OPC_CheckPatternPredicate, 13, // (Subtarget->has3DNow())
/*24189*/       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)
/*24198*/     0, /*End of Scope*/
/*24199*/   /*Scope*/ 53, /*->24253*/
/*24200*/     OPC_CheckInteger, 92, 
/*24202*/     OPC_MoveParent,
/*24203*/     OPC_RecordChild1, // #0 = $src1
/*24204*/     OPC_Scope, 33, /*->24239*/ // 2 children in Scope
/*24206*/       OPC_MoveChild, 2,
/*24208*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*24211*/       OPC_RecordMemRef,
/*24212*/       OPC_RecordNode, // #1 = 'ld' chained node
/*24213*/       OPC_CheckFoldableChainNode,
/*24214*/       OPC_RecordChild1, // #2 = $src2
/*24215*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*24217*/       OPC_CheckPredicate, 3, // Predicate_load
/*24219*/       OPC_MoveParent,
/*24220*/       OPC_CheckPatternPredicate, 13, // (Subtarget->has3DNow())
/*24222*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*24225*/       OPC_EmitMergeInputChains1_1,
/*24226*/       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)
/*24239*/     /*Scope*/ 12, /*->24252*/
/*24240*/       OPC_RecordChild2, // #1 = $src2
/*24241*/       OPC_CheckPatternPredicate, 13, // (Subtarget->has3DNow())
/*24243*/       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)
/*24252*/     0, /*End of Scope*/
/*24253*/   /*Scope*/ 50, /*->24304*/
/*24254*/     OPC_CheckInteger, 93, 
/*24256*/     OPC_MoveParent,
/*24257*/     OPC_Scope, 32, /*->24291*/ // 2 children in Scope
/*24259*/       OPC_MoveChild, 1,
/*24261*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*24264*/       OPC_RecordMemRef,
/*24265*/       OPC_RecordNode, // #0 = 'ld' chained node
/*24266*/       OPC_CheckFoldableChainNode,
/*24267*/       OPC_RecordChild1, // #1 = $src
/*24268*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*24270*/       OPC_CheckPredicate, 3, // Predicate_load
/*24272*/       OPC_MoveParent,
/*24273*/       OPC_CheckPatternPredicate, 13, // (Subtarget->has3DNow())
/*24275*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*24278*/       OPC_EmitMergeInputChains1_0,
/*24279*/       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)
/*24291*/     /*Scope*/ 11, /*->24303*/
/*24292*/       OPC_RecordChild1, // #0 = $src
/*24293*/       OPC_CheckPatternPredicate, 13, // (Subtarget->has3DNow())
/*24295*/       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)
/*24303*/     0, /*End of Scope*/
/*24304*/   /*Scope*/ 53, /*->24358*/
/*24305*/     OPC_CheckInteger, 94, 
/*24307*/     OPC_MoveParent,
/*24308*/     OPC_RecordChild1, // #0 = $src1
/*24309*/     OPC_Scope, 33, /*->24344*/ // 2 children in Scope
/*24311*/       OPC_MoveChild, 2,
/*24313*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*24316*/       OPC_RecordMemRef,
/*24317*/       OPC_RecordNode, // #1 = 'ld' chained node
/*24318*/       OPC_CheckFoldableChainNode,
/*24319*/       OPC_RecordChild1, // #2 = $src2
/*24320*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*24322*/       OPC_CheckPredicate, 3, // Predicate_load
/*24324*/       OPC_MoveParent,
/*24325*/       OPC_CheckPatternPredicate, 13, // (Subtarget->has3DNow())
/*24327*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*24330*/       OPC_EmitMergeInputChains1_1,
/*24331*/       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)
/*24344*/     /*Scope*/ 12, /*->24357*/
/*24345*/       OPC_RecordChild2, // #1 = $src2
/*24346*/       OPC_CheckPatternPredicate, 13, // (Subtarget->has3DNow())
/*24348*/       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)
/*24357*/     0, /*End of Scope*/
/*24358*/   /*Scope*/ 53, /*->24412*/
/*24359*/     OPC_CheckInteger, 95, 
/*24361*/     OPC_MoveParent,
/*24362*/     OPC_RecordChild1, // #0 = $src1
/*24363*/     OPC_Scope, 33, /*->24398*/ // 2 children in Scope
/*24365*/       OPC_MoveChild, 2,
/*24367*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*24370*/       OPC_RecordMemRef,
/*24371*/       OPC_RecordNode, // #1 = 'ld' chained node
/*24372*/       OPC_CheckFoldableChainNode,
/*24373*/       OPC_RecordChild1, // #2 = $src2
/*24374*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*24376*/       OPC_CheckPredicate, 3, // Predicate_load
/*24378*/       OPC_MoveParent,
/*24379*/       OPC_CheckPatternPredicate, 13, // (Subtarget->has3DNow())
/*24381*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*24384*/       OPC_EmitMergeInputChains1_1,
/*24385*/       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)
/*24398*/     /*Scope*/ 12, /*->24411*/
/*24399*/       OPC_RecordChild2, // #1 = $src2
/*24400*/       OPC_CheckPatternPredicate, 13, // (Subtarget->has3DNow())
/*24402*/       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)
/*24411*/     0, /*End of Scope*/
/*24412*/   /*Scope*/ 53, /*->24466*/
/*24413*/     OPC_CheckInteger, 96, 
/*24415*/     OPC_MoveParent,
/*24416*/     OPC_RecordChild1, // #0 = $src1
/*24417*/     OPC_Scope, 33, /*->24452*/ // 2 children in Scope
/*24419*/       OPC_MoveChild, 2,
/*24421*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*24424*/       OPC_RecordMemRef,
/*24425*/       OPC_RecordNode, // #1 = 'ld' chained node
/*24426*/       OPC_CheckFoldableChainNode,
/*24427*/       OPC_RecordChild1, // #2 = $src2
/*24428*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*24430*/       OPC_CheckPredicate, 3, // Predicate_load
/*24432*/       OPC_MoveParent,
/*24433*/       OPC_CheckPatternPredicate, 13, // (Subtarget->has3DNow())
/*24435*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*24438*/       OPC_EmitMergeInputChains1_1,
/*24439*/       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)
/*24452*/     /*Scope*/ 12, /*->24465*/
/*24453*/       OPC_RecordChild2, // #1 = $src2
/*24454*/       OPC_CheckPatternPredicate, 13, // (Subtarget->has3DNow())
/*24456*/       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)
/*24465*/     0, /*End of Scope*/
/*24466*/   /*Scope*/ 50, /*->24517*/
/*24467*/     OPC_CheckInteger, 97, 
/*24469*/     OPC_MoveParent,
/*24470*/     OPC_Scope, 32, /*->24504*/ // 2 children in Scope
/*24472*/       OPC_MoveChild, 1,
/*24474*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*24477*/       OPC_RecordMemRef,
/*24478*/       OPC_RecordNode, // #0 = 'ld' chained node
/*24479*/       OPC_CheckFoldableChainNode,
/*24480*/       OPC_RecordChild1, // #1 = $src
/*24481*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*24483*/       OPC_CheckPredicate, 3, // Predicate_load
/*24485*/       OPC_MoveParent,
/*24486*/       OPC_CheckPatternPredicate, 13, // (Subtarget->has3DNow())
/*24488*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*24491*/       OPC_EmitMergeInputChains1_0,
/*24492*/       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)
/*24504*/     /*Scope*/ 11, /*->24516*/
/*24505*/       OPC_RecordChild1, // #0 = $src
/*24506*/       OPC_CheckPatternPredicate, 13, // (Subtarget->has3DNow())
/*24508*/       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)
/*24516*/     0, /*End of Scope*/
/*24517*/   /*Scope*/ 53, /*->24571*/
/*24518*/     OPC_CheckInteger, 98, 
/*24520*/     OPC_MoveParent,
/*24521*/     OPC_RecordChild1, // #0 = $src1
/*24522*/     OPC_Scope, 33, /*->24557*/ // 2 children in Scope
/*24524*/       OPC_MoveChild, 2,
/*24526*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*24529*/       OPC_RecordMemRef,
/*24530*/       OPC_RecordNode, // #1 = 'ld' chained node
/*24531*/       OPC_CheckFoldableChainNode,
/*24532*/       OPC_RecordChild1, // #2 = $src2
/*24533*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*24535*/       OPC_CheckPredicate, 3, // Predicate_load
/*24537*/       OPC_MoveParent,
/*24538*/       OPC_CheckPatternPredicate, 13, // (Subtarget->has3DNow())
/*24540*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*24543*/       OPC_EmitMergeInputChains1_1,
/*24544*/       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)
/*24557*/     /*Scope*/ 12, /*->24570*/
/*24558*/       OPC_RecordChild2, // #1 = $src2
/*24559*/       OPC_CheckPatternPredicate, 13, // (Subtarget->has3DNow())
/*24561*/       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)
/*24570*/     0, /*End of Scope*/
/*24571*/   /*Scope*/ 53, /*->24625*/
/*24572*/     OPC_CheckInteger, 99, 
/*24574*/     OPC_MoveParent,
/*24575*/     OPC_RecordChild1, // #0 = $src1
/*24576*/     OPC_Scope, 33, /*->24611*/ // 2 children in Scope
/*24578*/       OPC_MoveChild, 2,
/*24580*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*24583*/       OPC_RecordMemRef,
/*24584*/       OPC_RecordNode, // #1 = 'ld' chained node
/*24585*/       OPC_CheckFoldableChainNode,
/*24586*/       OPC_RecordChild1, // #2 = $src2
/*24587*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*24589*/       OPC_CheckPredicate, 3, // Predicate_load
/*24591*/       OPC_MoveParent,
/*24592*/       OPC_CheckPatternPredicate, 13, // (Subtarget->has3DNow())
/*24594*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*24597*/       OPC_EmitMergeInputChains1_1,
/*24598*/       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)
/*24611*/     /*Scope*/ 12, /*->24624*/
/*24612*/       OPC_RecordChild2, // #1 = $src2
/*24613*/       OPC_CheckPatternPredicate, 13, // (Subtarget->has3DNow())
/*24615*/       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)
/*24624*/     0, /*End of Scope*/
/*24625*/   /*Scope*/ 50, /*->24676*/
/*24626*/     OPC_CheckInteger, 100, 
/*24628*/     OPC_MoveParent,
/*24629*/     OPC_Scope, 32, /*->24663*/ // 2 children in Scope
/*24631*/       OPC_MoveChild, 1,
/*24633*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*24636*/       OPC_RecordMemRef,
/*24637*/       OPC_RecordNode, // #0 = 'ld' chained node
/*24638*/       OPC_CheckFoldableChainNode,
/*24639*/       OPC_RecordChild1, // #1 = $src
/*24640*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*24642*/       OPC_CheckPredicate, 3, // Predicate_load
/*24644*/       OPC_MoveParent,
/*24645*/       OPC_CheckPatternPredicate, 13, // (Subtarget->has3DNow())
/*24647*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*24650*/       OPC_EmitMergeInputChains1_0,
/*24651*/       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)
/*24663*/     /*Scope*/ 11, /*->24675*/
/*24664*/       OPC_RecordChild1, // #0 = $src
/*24665*/       OPC_CheckPatternPredicate, 13, // (Subtarget->has3DNow())
/*24667*/       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)
/*24675*/     0, /*End of Scope*/
/*24676*/   /*Scope*/ 53, /*->24730*/
/*24677*/     OPC_CheckInteger, 101, 
/*24679*/     OPC_MoveParent,
/*24680*/     OPC_RecordChild1, // #0 = $src1
/*24681*/     OPC_Scope, 33, /*->24716*/ // 2 children in Scope
/*24683*/       OPC_MoveChild, 2,
/*24685*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*24688*/       OPC_RecordMemRef,
/*24689*/       OPC_RecordNode, // #1 = 'ld' chained node
/*24690*/       OPC_CheckFoldableChainNode,
/*24691*/       OPC_RecordChild1, // #2 = $src2
/*24692*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*24694*/       OPC_CheckPredicate, 3, // Predicate_load
/*24696*/       OPC_MoveParent,
/*24697*/       OPC_CheckPatternPredicate, 13, // (Subtarget->has3DNow())
/*24699*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*24702*/       OPC_EmitMergeInputChains1_1,
/*24703*/       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)
/*24716*/     /*Scope*/ 12, /*->24729*/
/*24717*/       OPC_RecordChild2, // #1 = $src2
/*24718*/       OPC_CheckPatternPredicate, 13, // (Subtarget->has3DNow())
/*24720*/       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)
/*24729*/     0, /*End of Scope*/
/*24730*/   /*Scope*/ 50, /*->24781*/
/*24731*/     OPC_CheckInteger, 102, 
/*24733*/     OPC_MoveParent,
/*24734*/     OPC_Scope, 32, /*->24768*/ // 2 children in Scope
/*24736*/       OPC_MoveChild, 1,
/*24738*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*24741*/       OPC_RecordMemRef,
/*24742*/       OPC_RecordNode, // #0 = 'ld' chained node
/*24743*/       OPC_CheckFoldableChainNode,
/*24744*/       OPC_RecordChild1, // #1 = $src
/*24745*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*24747*/       OPC_CheckPredicate, 3, // Predicate_load
/*24749*/       OPC_MoveParent,
/*24750*/       OPC_CheckPatternPredicate, 13, // (Subtarget->has3DNow())
/*24752*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*24755*/       OPC_EmitMergeInputChains1_0,
/*24756*/       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)
/*24768*/     /*Scope*/ 11, /*->24780*/
/*24769*/       OPC_RecordChild1, // #0 = $src
/*24770*/       OPC_CheckPatternPredicate, 13, // (Subtarget->has3DNow())
/*24772*/       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)
/*24780*/     0, /*End of Scope*/
/*24781*/   /*Scope*/ 50, /*->24832*/
/*24782*/     OPC_CheckInteger, 105, 
/*24784*/     OPC_MoveParent,
/*24785*/     OPC_Scope, 32, /*->24819*/ // 2 children in Scope
/*24787*/       OPC_MoveChild, 1,
/*24789*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*24792*/       OPC_RecordMemRef,
/*24793*/       OPC_RecordNode, // #0 = 'ld' chained node
/*24794*/       OPC_CheckFoldableChainNode,
/*24795*/       OPC_RecordChild1, // #1 = $src
/*24796*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*24798*/       OPC_CheckPredicate, 3, // Predicate_load
/*24800*/       OPC_MoveParent,
/*24801*/       OPC_CheckPatternPredicate, 13, // (Subtarget->has3DNow())
/*24803*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*24806*/       OPC_EmitMergeInputChains1_0,
/*24807*/       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)
/*24819*/     /*Scope*/ 11, /*->24831*/
/*24820*/       OPC_RecordChild1, // #0 = $src
/*24821*/       OPC_CheckPatternPredicate, 13, // (Subtarget->has3DNow())
/*24823*/       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)
/*24831*/     0, /*End of Scope*/
/*24832*/   /*Scope*/ 53, /*->24886*/
/*24833*/     OPC_CheckInteger, 103, 
/*24835*/     OPC_MoveParent,
/*24836*/     OPC_RecordChild1, // #0 = $src1
/*24837*/     OPC_Scope, 33, /*->24872*/ // 2 children in Scope
/*24839*/       OPC_MoveChild, 2,
/*24841*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*24844*/       OPC_RecordMemRef,
/*24845*/       OPC_RecordNode, // #1 = 'ld' chained node
/*24846*/       OPC_CheckFoldableChainNode,
/*24847*/       OPC_RecordChild1, // #2 = $src2
/*24848*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*24850*/       OPC_CheckPredicate, 3, // Predicate_load
/*24852*/       OPC_MoveParent,
/*24853*/       OPC_CheckPatternPredicate, 13, // (Subtarget->has3DNow())
/*24855*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*24858*/       OPC_EmitMergeInputChains1_1,
/*24859*/       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)
/*24872*/     /*Scope*/ 12, /*->24885*/
/*24873*/       OPC_RecordChild2, // #1 = $src2
/*24874*/       OPC_CheckPatternPredicate, 13, // (Subtarget->has3DNow())
/*24876*/       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)
/*24885*/     0, /*End of Scope*/
/*24886*/   /*Scope*/ 53, /*->24940*/
/*24887*/     OPC_CheckInteger, 104, 
/*24889*/     OPC_MoveParent,
/*24890*/     OPC_RecordChild1, // #0 = $src1
/*24891*/     OPC_Scope, 33, /*->24926*/ // 2 children in Scope
/*24893*/       OPC_MoveChild, 2,
/*24895*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*24898*/       OPC_RecordMemRef,
/*24899*/       OPC_RecordNode, // #1 = 'ld' chained node
/*24900*/       OPC_CheckFoldableChainNode,
/*24901*/       OPC_RecordChild1, // #2 = $src2
/*24902*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*24904*/       OPC_CheckPredicate, 3, // Predicate_load
/*24906*/       OPC_MoveParent,
/*24907*/       OPC_CheckPatternPredicate, 13, // (Subtarget->has3DNow())
/*24909*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*24912*/       OPC_EmitMergeInputChains1_1,
/*24913*/       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)
/*24926*/     /*Scope*/ 12, /*->24939*/
/*24927*/       OPC_RecordChild2, // #1 = $src2
/*24928*/       OPC_CheckPatternPredicate, 13, // (Subtarget->has3DNow())
/*24930*/       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)
/*24939*/     0, /*End of Scope*/
/*24940*/   /*Scope*/ 50, /*->24991*/
/*24941*/     OPC_CheckInteger, 106, 
/*24943*/     OPC_MoveParent,
/*24944*/     OPC_Scope, 32, /*->24978*/ // 2 children in Scope
/*24946*/       OPC_MoveChild, 1,
/*24948*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*24951*/       OPC_RecordMemRef,
/*24952*/       OPC_RecordNode, // #0 = 'ld' chained node
/*24953*/       OPC_CheckFoldableChainNode,
/*24954*/       OPC_RecordChild1, // #1 = $src
/*24955*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*24957*/       OPC_CheckPredicate, 3, // Predicate_load
/*24959*/       OPC_MoveParent,
/*24960*/       OPC_CheckPatternPredicate, 13, // (Subtarget->has3DNow())
/*24962*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*24965*/       OPC_EmitMergeInputChains1_0,
/*24966*/       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)
/*24978*/     /*Scope*/ 11, /*->24990*/
/*24979*/       OPC_RecordChild1, // #0 = $src
/*24980*/       OPC_CheckPatternPredicate, 13, // (Subtarget->has3DNow())
/*24982*/       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)
/*24990*/     0, /*End of Scope*/
/*24991*/   /*Scope*/ 25, /*->25017*/
/*24992*/     OPC_CheckInteger, 3|128,2/*259*/, 
/*24995*/     OPC_MoveParent,
/*24996*/     OPC_RecordChild1, // #0 = $src1
/*24997*/     OPC_RecordChild2, // #1 = $src2
/*24998*/     OPC_MoveChild, 2,
/*25000*/     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*25003*/     OPC_MoveParent,
/*25004*/     OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*25006*/     OPC_EmitConvertToTarget, 1,
/*25008*/     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)
/*25017*/   /*Scope*/ 25, /*->25043*/
/*25018*/     OPC_CheckInteger, 1|128,2/*257*/, 
/*25021*/     OPC_MoveParent,
/*25022*/     OPC_RecordChild1, // #0 = $src1
/*25023*/     OPC_RecordChild2, // #1 = $src2
/*25024*/     OPC_MoveChild, 2,
/*25026*/     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*25029*/     OPC_MoveParent,
/*25030*/     OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*25032*/     OPC_EmitConvertToTarget, 1,
/*25034*/     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)
/*25043*/   /*Scope*/ 25, /*->25069*/
/*25044*/     OPC_CheckInteger, 2|128,2/*258*/, 
/*25047*/     OPC_MoveParent,
/*25048*/     OPC_RecordChild1, // #0 = $src1
/*25049*/     OPC_RecordChild2, // #1 = $src2
/*25050*/     OPC_MoveChild, 2,
/*25052*/     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*25055*/     OPC_MoveParent,
/*25056*/     OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*25058*/     OPC_EmitConvertToTarget, 1,
/*25060*/     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)
/*25069*/   /*Scope*/ 25, /*->25095*/
/*25070*/     OPC_CheckInteger, 121|128,1/*249*/, 
/*25073*/     OPC_MoveParent,
/*25074*/     OPC_RecordChild1, // #0 = $src1
/*25075*/     OPC_RecordChild2, // #1 = $src2
/*25076*/     OPC_MoveChild, 2,
/*25078*/     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*25081*/     OPC_MoveParent,
/*25082*/     OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*25084*/     OPC_EmitConvertToTarget, 1,
/*25086*/     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)
/*25095*/   /*Scope*/ 25, /*->25121*/
/*25096*/     OPC_CheckInteger, 119|128,1/*247*/, 
/*25099*/     OPC_MoveParent,
/*25100*/     OPC_RecordChild1, // #0 = $src1
/*25101*/     OPC_RecordChild2, // #1 = $src2
/*25102*/     OPC_MoveChild, 2,
/*25104*/     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*25107*/     OPC_MoveParent,
/*25108*/     OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*25110*/     OPC_EmitConvertToTarget, 1,
/*25112*/     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)
/*25121*/   /*Scope*/ 25, /*->25147*/
/*25122*/     OPC_CheckInteger, 120|128,1/*248*/, 
/*25125*/     OPC_MoveParent,
/*25126*/     OPC_RecordChild1, // #0 = $src1
/*25127*/     OPC_RecordChild2, // #1 = $src2
/*25128*/     OPC_MoveChild, 2,
/*25130*/     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*25133*/     OPC_MoveParent,
/*25134*/     OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*25136*/     OPC_EmitConvertToTarget, 1,
/*25138*/     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)
/*25147*/   /*Scope*/ 25, /*->25173*/
/*25148*/     OPC_CheckInteger, 125|128,1/*253*/, 
/*25151*/     OPC_MoveParent,
/*25152*/     OPC_RecordChild1, // #0 = $src1
/*25153*/     OPC_RecordChild2, // #1 = $src2
/*25154*/     OPC_MoveChild, 2,
/*25156*/     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*25159*/     OPC_MoveParent,
/*25160*/     OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*25162*/     OPC_EmitConvertToTarget, 1,
/*25164*/     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)
/*25173*/   /*Scope*/ 25, /*->25199*/
/*25174*/     OPC_CheckInteger, 124|128,1/*252*/, 
/*25177*/     OPC_MoveParent,
/*25178*/     OPC_RecordChild1, // #0 = $src1
/*25179*/     OPC_RecordChild2, // #1 = $src2
/*25180*/     OPC_MoveChild, 2,
/*25182*/     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*25185*/     OPC_MoveParent,
/*25186*/     OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*25188*/     OPC_EmitConvertToTarget, 1,
/*25190*/     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)
/*25199*/   /*Scope*/ 25, /*->25225*/
/*25200*/     OPC_CheckInteger, 102|128,1/*230*/, 
/*25203*/     OPC_MoveParent,
/*25204*/     OPC_RecordChild1, // #0 = $src1
/*25205*/     OPC_RecordChild2, // #1 = $src2
/*25206*/     OPC_MoveChild, 2,
/*25208*/     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*25211*/     OPC_MoveParent,
/*25212*/     OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*25214*/     OPC_EmitConvertToTarget, 1,
/*25216*/     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)
/*25225*/   /*Scope*/ 29, /*->25255*/
/*25226*/     OPC_CheckInteger, 90|128,3/*474*/, 
/*25229*/     OPC_MoveParent,
/*25230*/     OPC_RecordChild1, // #0 = $src
/*25231*/     OPC_Scope, 10, /*->25243*/ // 2 children in Scope
/*25233*/       OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*25235*/       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)
/*25243*/     /*Scope*/ 10, /*->25254*/
/*25244*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*25246*/       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)
/*25254*/     0, /*End of Scope*/
/*25255*/   /*Scope*/ 29, /*->25285*/
/*25256*/     OPC_CheckInteger, 53|128,2/*309*/, 
/*25259*/     OPC_MoveParent,
/*25260*/     OPC_RecordChild1, // #0 = $src
/*25261*/     OPC_Scope, 10, /*->25273*/ // 2 children in Scope
/*25263*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*25265*/       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)
/*25273*/     /*Scope*/ 10, /*->25284*/
/*25274*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*25276*/       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)
/*25284*/     0, /*End of Scope*/
/*25285*/   /*Scope*/ 15, /*->25301*/
/*25286*/     OPC_CheckInteger, 23|128,1/*151*/, 
/*25289*/     OPC_MoveParent,
/*25290*/     OPC_RecordChild1, // #0 = $src
/*25291*/     OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*25293*/     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)
/*25301*/   /*Scope*/ 15, /*->25317*/
/*25302*/     OPC_CheckInteger, 22|128,1/*150*/, 
/*25305*/     OPC_MoveParent,
/*25306*/     OPC_RecordChild1, // #0 = $src
/*25307*/     OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*25309*/     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)
/*25317*/   /*Scope*/ 29, /*->25347*/
/*25318*/     OPC_CheckInteger, 75|128,2/*331*/, 
/*25321*/     OPC_MoveParent,
/*25322*/     OPC_RecordChild1, // #0 = $src
/*25323*/     OPC_Scope, 10, /*->25335*/ // 2 children in Scope
/*25325*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*25327*/       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)
/*25335*/     /*Scope*/ 10, /*->25346*/
/*25336*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*25338*/       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)
/*25346*/     0, /*End of Scope*/
/*25347*/   /*Scope*/ 15, /*->25363*/
/*25348*/     OPC_CheckInteger, 109|128,1/*237*/, 
/*25351*/     OPC_MoveParent,
/*25352*/     OPC_RecordChild1, // #0 = $src
/*25353*/     OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*25355*/     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)
/*25363*/   /*Scope*/ 31|128,1/*159*/, /*->25524*/
/*25365*/     OPC_CheckInteger, 109, 
/*25367*/     OPC_MoveParent,
/*25368*/     OPC_RecordChild1, // #0 = $src1
/*25369*/     OPC_Scope, 124, /*->25495*/ // 2 children in Scope
/*25371*/       OPC_MoveChild, 2,
/*25373*/       OPC_SwitchOpcode /*2 cases */, 53,  TARGET_VAL(ISD::LOAD),// ->25430
/*25377*/         OPC_RecordMemRef,
/*25378*/         OPC_RecordNode, // #1 = 'ld' chained node
/*25379*/         OPC_CheckFoldableChainNode,
/*25380*/         OPC_RecordChild1, // #2 = $src2
/*25381*/         OPC_CheckPredicate, 2, // Predicate_unindexedload
/*25383*/         OPC_CheckPredicate, 3, // Predicate_load
/*25385*/         OPC_CheckPredicate, 23, // Predicate_memop
/*25387*/         OPC_MoveParent,
/*25388*/         OPC_Scope, 19, /*->25409*/ // 2 children in Scope
/*25390*/           OPC_CheckPatternPredicate, 14, // (Subtarget->hasAVX()) && (Subtarget->hasAES())
/*25392*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*25395*/           OPC_EmitMergeInputChains1_1,
/*25396*/           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)
/*25409*/         /*Scope*/ 19, /*->25429*/
/*25410*/           OPC_CheckPatternPredicate, 15, // (Subtarget->hasAES())
/*25412*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*25415*/           OPC_EmitMergeInputChains1_1,
/*25416*/           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)
/*25429*/         0, /*End of Scope*/
                /*SwitchOpcode*/ 61,  TARGET_VAL(ISD::BITCAST),// ->25494
/*25433*/         OPC_MoveChild, 0,
/*25435*/         OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*25438*/         OPC_RecordMemRef,
/*25439*/         OPC_RecordNode, // #1 = 'ld' chained node
/*25440*/         OPC_CheckFoldableChainNode,
/*25441*/         OPC_RecordChild1, // #2 = $src2
/*25442*/         OPC_CheckPredicate, 2, // Predicate_unindexedload
/*25444*/         OPC_CheckPredicate, 3, // Predicate_load
/*25446*/         OPC_CheckPredicate, 23, // Predicate_memop
/*25448*/         OPC_CheckType, MVT::v16i8,
/*25450*/         OPC_MoveParent,
/*25451*/         OPC_MoveParent,
/*25452*/         OPC_Scope, 19, /*->25473*/ // 2 children in Scope
/*25454*/           OPC_CheckPatternPredicate, 14, // (Subtarget->hasAVX()) && (Subtarget->hasAES())
/*25456*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*25459*/           OPC_EmitMergeInputChains1_1,
/*25460*/           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)
/*25473*/         /*Scope*/ 19, /*->25493*/
/*25474*/           OPC_CheckPatternPredicate, 15, // (Subtarget->hasAES())
/*25476*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*25479*/           OPC_EmitMergeInputChains1_1,
/*25480*/           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)
/*25493*/         0, /*End of Scope*/
                0, // EndSwitchOpcode
/*25495*/     /*Scope*/ 27, /*->25523*/
/*25496*/       OPC_RecordChild2, // #1 = $src2
/*25497*/       OPC_Scope, 11, /*->25510*/ // 2 children in Scope
/*25499*/         OPC_CheckPatternPredicate, 14, // (Subtarget->hasAVX()) && (Subtarget->hasAES())
/*25501*/         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)
/*25510*/       /*Scope*/ 11, /*->25522*/
/*25511*/         OPC_CheckPatternPredicate, 15, // (Subtarget->hasAES())
/*25513*/         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)
/*25522*/       0, /*End of Scope*/
/*25523*/     0, /*End of Scope*/
/*25524*/   /*Scope*/ 31|128,1/*159*/, /*->25685*/
/*25526*/     OPC_CheckInteger, 110, 
/*25528*/     OPC_MoveParent,
/*25529*/     OPC_RecordChild1, // #0 = $src1
/*25530*/     OPC_Scope, 124, /*->25656*/ // 2 children in Scope
/*25532*/       OPC_MoveChild, 2,
/*25534*/       OPC_SwitchOpcode /*2 cases */, 53,  TARGET_VAL(ISD::LOAD),// ->25591
/*25538*/         OPC_RecordMemRef,
/*25539*/         OPC_RecordNode, // #1 = 'ld' chained node
/*25540*/         OPC_CheckFoldableChainNode,
/*25541*/         OPC_RecordChild1, // #2 = $src2
/*25542*/         OPC_CheckPredicate, 2, // Predicate_unindexedload
/*25544*/         OPC_CheckPredicate, 3, // Predicate_load
/*25546*/         OPC_CheckPredicate, 23, // Predicate_memop
/*25548*/         OPC_MoveParent,
/*25549*/         OPC_Scope, 19, /*->25570*/ // 2 children in Scope
/*25551*/           OPC_CheckPatternPredicate, 14, // (Subtarget->hasAVX()) && (Subtarget->hasAES())
/*25553*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*25556*/           OPC_EmitMergeInputChains1_1,
/*25557*/           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)
/*25570*/         /*Scope*/ 19, /*->25590*/
/*25571*/           OPC_CheckPatternPredicate, 15, // (Subtarget->hasAES())
/*25573*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*25576*/           OPC_EmitMergeInputChains1_1,
/*25577*/           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)
/*25590*/         0, /*End of Scope*/
                /*SwitchOpcode*/ 61,  TARGET_VAL(ISD::BITCAST),// ->25655
/*25594*/         OPC_MoveChild, 0,
/*25596*/         OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*25599*/         OPC_RecordMemRef,
/*25600*/         OPC_RecordNode, // #1 = 'ld' chained node
/*25601*/         OPC_CheckFoldableChainNode,
/*25602*/         OPC_RecordChild1, // #2 = $src2
/*25603*/         OPC_CheckPredicate, 2, // Predicate_unindexedload
/*25605*/         OPC_CheckPredicate, 3, // Predicate_load
/*25607*/         OPC_CheckPredicate, 23, // Predicate_memop
/*25609*/         OPC_CheckType, MVT::v16i8,
/*25611*/         OPC_MoveParent,
/*25612*/         OPC_MoveParent,
/*25613*/         OPC_Scope, 19, /*->25634*/ // 2 children in Scope
/*25615*/           OPC_CheckPatternPredicate, 14, // (Subtarget->hasAVX()) && (Subtarget->hasAES())
/*25617*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*25620*/           OPC_EmitMergeInputChains1_1,
/*25621*/           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)
/*25634*/         /*Scope*/ 19, /*->25654*/
/*25635*/           OPC_CheckPatternPredicate, 15, // (Subtarget->hasAES())
/*25637*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*25640*/           OPC_EmitMergeInputChains1_1,
/*25641*/           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)
/*25654*/         0, /*End of Scope*/
                0, // EndSwitchOpcode
/*25656*/     /*Scope*/ 27, /*->25684*/
/*25657*/       OPC_RecordChild2, // #1 = $src2
/*25658*/       OPC_Scope, 11, /*->25671*/ // 2 children in Scope
/*25660*/         OPC_CheckPatternPredicate, 14, // (Subtarget->hasAVX()) && (Subtarget->hasAES())
/*25662*/         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)
/*25671*/       /*Scope*/ 11, /*->25683*/
/*25672*/         OPC_CheckPatternPredicate, 15, // (Subtarget->hasAES())
/*25674*/         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)
/*25683*/       0, /*End of Scope*/
/*25684*/     0, /*End of Scope*/
/*25685*/   /*Scope*/ 31|128,1/*159*/, /*->25846*/
/*25687*/     OPC_CheckInteger, 107, 
/*25689*/     OPC_MoveParent,
/*25690*/     OPC_RecordChild1, // #0 = $src1
/*25691*/     OPC_Scope, 124, /*->25817*/ // 2 children in Scope
/*25693*/       OPC_MoveChild, 2,
/*25695*/       OPC_SwitchOpcode /*2 cases */, 53,  TARGET_VAL(ISD::LOAD),// ->25752
/*25699*/         OPC_RecordMemRef,
/*25700*/         OPC_RecordNode, // #1 = 'ld' chained node
/*25701*/         OPC_CheckFoldableChainNode,
/*25702*/         OPC_RecordChild1, // #2 = $src2
/*25703*/         OPC_CheckPredicate, 2, // Predicate_unindexedload
/*25705*/         OPC_CheckPredicate, 3, // Predicate_load
/*25707*/         OPC_CheckPredicate, 23, // Predicate_memop
/*25709*/         OPC_MoveParent,
/*25710*/         OPC_Scope, 19, /*->25731*/ // 2 children in Scope
/*25712*/           OPC_CheckPatternPredicate, 14, // (Subtarget->hasAVX()) && (Subtarget->hasAES())
/*25714*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*25717*/           OPC_EmitMergeInputChains1_1,
/*25718*/           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)
/*25731*/         /*Scope*/ 19, /*->25751*/
/*25732*/           OPC_CheckPatternPredicate, 15, // (Subtarget->hasAES())
/*25734*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*25737*/           OPC_EmitMergeInputChains1_1,
/*25738*/           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)
/*25751*/         0, /*End of Scope*/
                /*SwitchOpcode*/ 61,  TARGET_VAL(ISD::BITCAST),// ->25816
/*25755*/         OPC_MoveChild, 0,
/*25757*/         OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*25760*/         OPC_RecordMemRef,
/*25761*/         OPC_RecordNode, // #1 = 'ld' chained node
/*25762*/         OPC_CheckFoldableChainNode,
/*25763*/         OPC_RecordChild1, // #2 = $src2
/*25764*/         OPC_CheckPredicate, 2, // Predicate_unindexedload
/*25766*/         OPC_CheckPredicate, 3, // Predicate_load
/*25768*/         OPC_CheckPredicate, 23, // Predicate_memop
/*25770*/         OPC_CheckType, MVT::v16i8,
/*25772*/         OPC_MoveParent,
/*25773*/         OPC_MoveParent,
/*25774*/         OPC_Scope, 19, /*->25795*/ // 2 children in Scope
/*25776*/           OPC_CheckPatternPredicate, 14, // (Subtarget->hasAVX()) && (Subtarget->hasAES())
/*25778*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*25781*/           OPC_EmitMergeInputChains1_1,
/*25782*/           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)
/*25795*/         /*Scope*/ 19, /*->25815*/
/*25796*/           OPC_CheckPatternPredicate, 15, // (Subtarget->hasAES())
/*25798*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*25801*/           OPC_EmitMergeInputChains1_1,
/*25802*/           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)
/*25815*/         0, /*End of Scope*/
                0, // EndSwitchOpcode
/*25817*/     /*Scope*/ 27, /*->25845*/
/*25818*/       OPC_RecordChild2, // #1 = $src2
/*25819*/       OPC_Scope, 11, /*->25832*/ // 2 children in Scope
/*25821*/         OPC_CheckPatternPredicate, 14, // (Subtarget->hasAVX()) && (Subtarget->hasAES())
/*25823*/         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)
/*25832*/       /*Scope*/ 11, /*->25844*/
/*25833*/         OPC_CheckPatternPredicate, 15, // (Subtarget->hasAES())
/*25835*/         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)
/*25844*/       0, /*End of Scope*/
/*25845*/     0, /*End of Scope*/
/*25846*/   /*Scope*/ 31|128,1/*159*/, /*->26007*/
/*25848*/     OPC_CheckInteger, 108, 
/*25850*/     OPC_MoveParent,
/*25851*/     OPC_RecordChild1, // #0 = $src1
/*25852*/     OPC_Scope, 124, /*->25978*/ // 2 children in Scope
/*25854*/       OPC_MoveChild, 2,
/*25856*/       OPC_SwitchOpcode /*2 cases */, 53,  TARGET_VAL(ISD::LOAD),// ->25913
/*25860*/         OPC_RecordMemRef,
/*25861*/         OPC_RecordNode, // #1 = 'ld' chained node
/*25862*/         OPC_CheckFoldableChainNode,
/*25863*/         OPC_RecordChild1, // #2 = $src2
/*25864*/         OPC_CheckPredicate, 2, // Predicate_unindexedload
/*25866*/         OPC_CheckPredicate, 3, // Predicate_load
/*25868*/         OPC_CheckPredicate, 23, // Predicate_memop
/*25870*/         OPC_MoveParent,
/*25871*/         OPC_Scope, 19, /*->25892*/ // 2 children in Scope
/*25873*/           OPC_CheckPatternPredicate, 14, // (Subtarget->hasAVX()) && (Subtarget->hasAES())
/*25875*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*25878*/           OPC_EmitMergeInputChains1_1,
/*25879*/           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)
/*25892*/         /*Scope*/ 19, /*->25912*/
/*25893*/           OPC_CheckPatternPredicate, 15, // (Subtarget->hasAES())
/*25895*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*25898*/           OPC_EmitMergeInputChains1_1,
/*25899*/           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)
/*25912*/         0, /*End of Scope*/
                /*SwitchOpcode*/ 61,  TARGET_VAL(ISD::BITCAST),// ->25977
/*25916*/         OPC_MoveChild, 0,
/*25918*/         OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*25921*/         OPC_RecordMemRef,
/*25922*/         OPC_RecordNode, // #1 = 'ld' chained node
/*25923*/         OPC_CheckFoldableChainNode,
/*25924*/         OPC_RecordChild1, // #2 = $src2
/*25925*/         OPC_CheckPredicate, 2, // Predicate_unindexedload
/*25927*/         OPC_CheckPredicate, 3, // Predicate_load
/*25929*/         OPC_CheckPredicate, 23, // Predicate_memop
/*25931*/         OPC_CheckType, MVT::v16i8,
/*25933*/         OPC_MoveParent,
/*25934*/         OPC_MoveParent,
/*25935*/         OPC_Scope, 19, /*->25956*/ // 2 children in Scope
/*25937*/           OPC_CheckPatternPredicate, 14, // (Subtarget->hasAVX()) && (Subtarget->hasAES())
/*25939*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*25942*/           OPC_EmitMergeInputChains1_1,
/*25943*/           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)
/*25956*/         /*Scope*/ 19, /*->25976*/
/*25957*/           OPC_CheckPatternPredicate, 15, // (Subtarget->hasAES())
/*25959*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*25962*/           OPC_EmitMergeInputChains1_1,
/*25963*/           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)
/*25976*/         0, /*End of Scope*/
                0, // EndSwitchOpcode
/*25978*/     /*Scope*/ 27, /*->26006*/
/*25979*/       OPC_RecordChild2, // #1 = $src2
/*25980*/       OPC_Scope, 11, /*->25993*/ // 2 children in Scope
/*25982*/         OPC_CheckPatternPredicate, 14, // (Subtarget->hasAVX()) && (Subtarget->hasAES())
/*25984*/         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)
/*25993*/       /*Scope*/ 11, /*->26005*/
/*25994*/         OPC_CheckPatternPredicate, 15, // (Subtarget->hasAES())
/*25996*/         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)
/*26005*/       0, /*End of Scope*/
/*26006*/     0, /*End of Scope*/
/*26007*/   /*Scope*/ 98|128,1/*226*/, /*->26235*/
/*26009*/     OPC_CheckInteger, 25|128,3/*409*/, 
/*26012*/     OPC_MoveParent,
/*26013*/     OPC_Scope, 64|128,1/*192*/, /*->26208*/ // 2 children in Scope
/*26016*/       OPC_MoveChild, 1,
/*26018*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*26021*/       OPC_MoveChild, 0,
/*26023*/       OPC_SwitchOpcode /*3 cases */, 66,  TARGET_VAL(X86ISD::VZEXT_MOVL),// ->26093
/*26027*/         OPC_MoveChild, 0,
/*26029*/         OPC_CheckOpcode, TARGET_VAL(ISD::SCALAR_TO_VECTOR),
/*26032*/         OPC_MoveChild, 0,
/*26034*/         OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*26037*/         OPC_RecordMemRef,
/*26038*/         OPC_RecordNode, // #0 = 'ld' chained node
/*26039*/         OPC_CheckFoldableChainNode,
/*26040*/         OPC_RecordChild1, // #1 = $src
/*26041*/         OPC_CheckPredicate, 2, // Predicate_unindexedload
/*26043*/         OPC_CheckPredicate, 3, // Predicate_load
/*26045*/         OPC_CheckType, MVT::i64,
/*26047*/         OPC_MoveParent,
/*26048*/         OPC_MoveParent,
/*26049*/         OPC_CheckType, MVT::v2i64,
/*26051*/         OPC_MoveParent,
/*26052*/         OPC_MoveParent,
/*26053*/         OPC_Scope, 18, /*->26073*/ // 2 children in Scope
/*26055*/           OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*26057*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*26060*/           OPC_EmitMergeInputChains1_0,
/*26061*/           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)
/*26073*/         /*Scope*/ 18, /*->26092*/
/*26074*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*26076*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*26079*/           OPC_EmitMergeInputChains1_0,
/*26080*/           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)
/*26092*/         0, /*End of Scope*/
                /*SwitchOpcode*/ 60,  TARGET_VAL(ISD::SCALAR_TO_VECTOR),// ->26156
/*26096*/         OPC_MoveChild, 0,
/*26098*/         OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*26101*/         OPC_RecordMemRef,
/*26102*/         OPC_RecordNode, // #0 = 'ld' chained node
/*26103*/         OPC_CheckFoldableChainNode,
/*26104*/         OPC_RecordChild1, // #1 = $src
/*26105*/         OPC_CheckPredicate, 2, // Predicate_unindexedload
/*26107*/         OPC_CheckPredicate, 3, // Predicate_load
/*26109*/         OPC_CheckType, MVT::i64,
/*26111*/         OPC_MoveParent,
/*26112*/         OPC_CheckType, MVT::v2i64,
/*26114*/         OPC_MoveParent,
/*26115*/         OPC_MoveParent,
/*26116*/         OPC_Scope, 18, /*->26136*/ // 2 children in Scope
/*26118*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*26120*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*26123*/           OPC_EmitMergeInputChains1_0,
/*26124*/           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)
/*26136*/         /*Scope*/ 18, /*->26155*/
/*26137*/           OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*26139*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*26142*/           OPC_EmitMergeInputChains1_0,
/*26143*/           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)
/*26155*/         0, /*End of Scope*/
                /*SwitchOpcode*/ 48,  TARGET_VAL(X86ISD::VZEXT_LOAD),// ->26207
/*26159*/         OPC_RecordMemRef,
/*26160*/         OPC_RecordNode, // #0 = 'X86vzload' chained node
/*26161*/         OPC_CheckFoldableChainNode,
/*26162*/         OPC_RecordChild1, // #1 = $src
/*26163*/         OPC_CheckType, MVT::v2i64,
/*26165*/         OPC_MoveParent,
/*26166*/         OPC_MoveParent,
/*26167*/         OPC_Scope, 18, /*->26187*/ // 2 children in Scope
/*26169*/           OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*26171*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*26174*/           OPC_EmitMergeInputChains1_0,
/*26175*/           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)
/*26187*/         /*Scope*/ 18, /*->26206*/
/*26188*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*26190*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*26193*/           OPC_EmitMergeInputChains1_0,
/*26194*/           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)
/*26206*/         0, /*End of Scope*/
                0, // EndSwitchOpcode
/*26208*/     /*Scope*/ 25, /*->26234*/
/*26209*/       OPC_RecordChild1, // #0 = $src
/*26210*/       OPC_Scope, 10, /*->26222*/ // 2 children in Scope
/*26212*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*26214*/         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)
/*26222*/       /*Scope*/ 10, /*->26233*/
/*26223*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*26225*/         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)
/*26233*/       0, /*End of Scope*/
/*26234*/     0, /*End of Scope*/
/*26235*/   /*Scope*/ 98|128,1/*226*/, /*->26463*/
/*26237*/     OPC_CheckInteger, 27|128,3/*411*/, 
/*26240*/     OPC_MoveParent,
/*26241*/     OPC_Scope, 64|128,1/*192*/, /*->26436*/ // 2 children in Scope
/*26244*/       OPC_MoveChild, 1,
/*26246*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*26249*/       OPC_MoveChild, 0,
/*26251*/       OPC_SwitchOpcode /*3 cases */, 66,  TARGET_VAL(X86ISD::VZEXT_MOVL),// ->26321
/*26255*/         OPC_MoveChild, 0,
/*26257*/         OPC_CheckOpcode, TARGET_VAL(ISD::SCALAR_TO_VECTOR),
/*26260*/         OPC_MoveChild, 0,
/*26262*/         OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*26265*/         OPC_RecordMemRef,
/*26266*/         OPC_RecordNode, // #0 = 'ld' chained node
/*26267*/         OPC_CheckFoldableChainNode,
/*26268*/         OPC_RecordChild1, // #1 = $src
/*26269*/         OPC_CheckPredicate, 2, // Predicate_unindexedload
/*26271*/         OPC_CheckPredicate, 3, // Predicate_load
/*26273*/         OPC_CheckType, MVT::i64,
/*26275*/         OPC_MoveParent,
/*26276*/         OPC_MoveParent,
/*26277*/         OPC_CheckType, MVT::v2i64,
/*26279*/         OPC_MoveParent,
/*26280*/         OPC_MoveParent,
/*26281*/         OPC_Scope, 18, /*->26301*/ // 2 children in Scope
/*26283*/           OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*26285*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*26288*/           OPC_EmitMergeInputChains1_0,
/*26289*/           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)
/*26301*/         /*Scope*/ 18, /*->26320*/
/*26302*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*26304*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*26307*/           OPC_EmitMergeInputChains1_0,
/*26308*/           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)
/*26320*/         0, /*End of Scope*/
                /*SwitchOpcode*/ 60,  TARGET_VAL(ISD::SCALAR_TO_VECTOR),// ->26384
/*26324*/         OPC_MoveChild, 0,
/*26326*/         OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*26329*/         OPC_RecordMemRef,
/*26330*/         OPC_RecordNode, // #0 = 'ld' chained node
/*26331*/         OPC_CheckFoldableChainNode,
/*26332*/         OPC_RecordChild1, // #1 = $src
/*26333*/         OPC_CheckPredicate, 2, // Predicate_unindexedload
/*26335*/         OPC_CheckPredicate, 3, // Predicate_load
/*26337*/         OPC_CheckType, MVT::i64,
/*26339*/         OPC_MoveParent,
/*26340*/         OPC_CheckType, MVT::v2i64,
/*26342*/         OPC_MoveParent,
/*26343*/         OPC_MoveParent,
/*26344*/         OPC_Scope, 18, /*->26364*/ // 2 children in Scope
/*26346*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*26348*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*26351*/           OPC_EmitMergeInputChains1_0,
/*26352*/           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)
/*26364*/         /*Scope*/ 18, /*->26383*/
/*26365*/           OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*26367*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*26370*/           OPC_EmitMergeInputChains1_0,
/*26371*/           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)
/*26383*/         0, /*End of Scope*/
                /*SwitchOpcode*/ 48,  TARGET_VAL(X86ISD::VZEXT_LOAD),// ->26435
/*26387*/         OPC_RecordMemRef,
/*26388*/         OPC_RecordNode, // #0 = 'X86vzload' chained node
/*26389*/         OPC_CheckFoldableChainNode,
/*26390*/         OPC_RecordChild1, // #1 = $src
/*26391*/         OPC_CheckType, MVT::v2i64,
/*26393*/         OPC_MoveParent,
/*26394*/         OPC_MoveParent,
/*26395*/         OPC_Scope, 18, /*->26415*/ // 2 children in Scope
/*26397*/           OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*26399*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*26402*/           OPC_EmitMergeInputChains1_0,
/*26403*/           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)
/*26415*/         /*Scope*/ 18, /*->26434*/
/*26416*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*26418*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*26421*/           OPC_EmitMergeInputChains1_0,
/*26422*/           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)
/*26434*/         0, /*End of Scope*/
                0, // EndSwitchOpcode
/*26436*/     /*Scope*/ 25, /*->26462*/
/*26437*/       OPC_RecordChild1, // #0 = $src
/*26438*/       OPC_Scope, 10, /*->26450*/ // 2 children in Scope
/*26440*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*26442*/         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)
/*26450*/       /*Scope*/ 10, /*->26461*/
/*26451*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*26453*/         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)
/*26461*/       0, /*End of Scope*/
/*26462*/     0, /*End of Scope*/
/*26463*/   /*Scope*/ 98|128,1/*226*/, /*->26691*/
/*26465*/     OPC_CheckInteger, 26|128,3/*410*/, 
/*26468*/     OPC_MoveParent,
/*26469*/     OPC_Scope, 64|128,1/*192*/, /*->26664*/ // 2 children in Scope
/*26472*/       OPC_MoveChild, 1,
/*26474*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*26477*/       OPC_MoveChild, 0,
/*26479*/       OPC_SwitchOpcode /*3 cases */, 66,  TARGET_VAL(X86ISD::VZEXT_MOVL),// ->26549
/*26483*/         OPC_MoveChild, 0,
/*26485*/         OPC_CheckOpcode, TARGET_VAL(ISD::SCALAR_TO_VECTOR),
/*26488*/         OPC_MoveChild, 0,
/*26490*/         OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*26493*/         OPC_RecordMemRef,
/*26494*/         OPC_RecordNode, // #0 = 'ld' chained node
/*26495*/         OPC_CheckFoldableChainNode,
/*26496*/         OPC_RecordChild1, // #1 = $src
/*26497*/         OPC_CheckPredicate, 2, // Predicate_unindexedload
/*26499*/         OPC_CheckPredicate, 3, // Predicate_load
/*26501*/         OPC_CheckType, MVT::i64,
/*26503*/         OPC_MoveParent,
/*26504*/         OPC_MoveParent,
/*26505*/         OPC_CheckType, MVT::v2i64,
/*26507*/         OPC_MoveParent,
/*26508*/         OPC_MoveParent,
/*26509*/         OPC_Scope, 18, /*->26529*/ // 2 children in Scope
/*26511*/           OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*26513*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*26516*/           OPC_EmitMergeInputChains1_0,
/*26517*/           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)
/*26529*/         /*Scope*/ 18, /*->26548*/
/*26530*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*26532*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*26535*/           OPC_EmitMergeInputChains1_0,
/*26536*/           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)
/*26548*/         0, /*End of Scope*/
                /*SwitchOpcode*/ 60,  TARGET_VAL(ISD::SCALAR_TO_VECTOR),// ->26612
/*26552*/         OPC_MoveChild, 0,
/*26554*/         OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*26557*/         OPC_RecordMemRef,
/*26558*/         OPC_RecordNode, // #0 = 'ld' chained node
/*26559*/         OPC_CheckFoldableChainNode,
/*26560*/         OPC_RecordChild1, // #1 = $src
/*26561*/         OPC_CheckPredicate, 2, // Predicate_unindexedload
/*26563*/         OPC_CheckPredicate, 3, // Predicate_load
/*26565*/         OPC_CheckType, MVT::i64,
/*26567*/         OPC_MoveParent,
/*26568*/         OPC_CheckType, MVT::v2i64,
/*26570*/         OPC_MoveParent,
/*26571*/         OPC_MoveParent,
/*26572*/         OPC_Scope, 18, /*->26592*/ // 2 children in Scope
/*26574*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*26576*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*26579*/           OPC_EmitMergeInputChains1_0,
/*26580*/           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)
/*26592*/         /*Scope*/ 18, /*->26611*/
/*26593*/           OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*26595*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*26598*/           OPC_EmitMergeInputChains1_0,
/*26599*/           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)
/*26611*/         0, /*End of Scope*/
                /*SwitchOpcode*/ 48,  TARGET_VAL(X86ISD::VZEXT_LOAD),// ->26663
/*26615*/         OPC_RecordMemRef,
/*26616*/         OPC_RecordNode, // #0 = 'X86vzload' chained node
/*26617*/         OPC_CheckFoldableChainNode,
/*26618*/         OPC_RecordChild1, // #1 = $src
/*26619*/         OPC_CheckType, MVT::v2i64,
/*26621*/         OPC_MoveParent,
/*26622*/         OPC_MoveParent,
/*26623*/         OPC_Scope, 18, /*->26643*/ // 2 children in Scope
/*26625*/           OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*26627*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*26630*/           OPC_EmitMergeInputChains1_0,
/*26631*/           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)
/*26643*/         /*Scope*/ 18, /*->26662*/
/*26644*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*26646*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*26649*/           OPC_EmitMergeInputChains1_0,
/*26650*/           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)
/*26662*/         0, /*End of Scope*/
                0, // EndSwitchOpcode
/*26664*/     /*Scope*/ 25, /*->26690*/
/*26665*/       OPC_RecordChild1, // #0 = $src
/*26666*/       OPC_Scope, 10, /*->26678*/ // 2 children in Scope
/*26668*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*26670*/         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)
/*26678*/       /*Scope*/ 10, /*->26689*/
/*26679*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*26681*/         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)
/*26689*/       0, /*End of Scope*/
/*26690*/     0, /*End of Scope*/
/*26691*/   /*Scope*/ 98|128,1/*226*/, /*->26919*/
/*26693*/     OPC_CheckInteger, 31|128,3/*415*/, 
/*26696*/     OPC_MoveParent,
/*26697*/     OPC_Scope, 64|128,1/*192*/, /*->26892*/ // 2 children in Scope
/*26700*/       OPC_MoveChild, 1,
/*26702*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*26705*/       OPC_MoveChild, 0,
/*26707*/       OPC_SwitchOpcode /*3 cases */, 66,  TARGET_VAL(X86ISD::VZEXT_MOVL),// ->26777
/*26711*/         OPC_MoveChild, 0,
/*26713*/         OPC_CheckOpcode, TARGET_VAL(ISD::SCALAR_TO_VECTOR),
/*26716*/         OPC_MoveChild, 0,
/*26718*/         OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*26721*/         OPC_RecordMemRef,
/*26722*/         OPC_RecordNode, // #0 = 'ld' chained node
/*26723*/         OPC_CheckFoldableChainNode,
/*26724*/         OPC_RecordChild1, // #1 = $src
/*26725*/         OPC_CheckPredicate, 2, // Predicate_unindexedload
/*26727*/         OPC_CheckPredicate, 3, // Predicate_load
/*26729*/         OPC_CheckType, MVT::i64,
/*26731*/         OPC_MoveParent,
/*26732*/         OPC_MoveParent,
/*26733*/         OPC_CheckType, MVT::v2i64,
/*26735*/         OPC_MoveParent,
/*26736*/         OPC_MoveParent,
/*26737*/         OPC_Scope, 18, /*->26757*/ // 2 children in Scope
/*26739*/           OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*26741*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*26744*/           OPC_EmitMergeInputChains1_0,
/*26745*/           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)
/*26757*/         /*Scope*/ 18, /*->26776*/
/*26758*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*26760*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*26763*/           OPC_EmitMergeInputChains1_0,
/*26764*/           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)
/*26776*/         0, /*End of Scope*/
                /*SwitchOpcode*/ 60,  TARGET_VAL(ISD::SCALAR_TO_VECTOR),// ->26840
/*26780*/         OPC_MoveChild, 0,
/*26782*/         OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*26785*/         OPC_RecordMemRef,
/*26786*/         OPC_RecordNode, // #0 = 'ld' chained node
/*26787*/         OPC_CheckFoldableChainNode,
/*26788*/         OPC_RecordChild1, // #1 = $src
/*26789*/         OPC_CheckPredicate, 2, // Predicate_unindexedload
/*26791*/         OPC_CheckPredicate, 3, // Predicate_load
/*26793*/         OPC_CheckType, MVT::i64,
/*26795*/         OPC_MoveParent,
/*26796*/         OPC_CheckType, MVT::v2i64,
/*26798*/         OPC_MoveParent,
/*26799*/         OPC_MoveParent,
/*26800*/         OPC_Scope, 18, /*->26820*/ // 2 children in Scope
/*26802*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*26804*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*26807*/           OPC_EmitMergeInputChains1_0,
/*26808*/           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)
/*26820*/         /*Scope*/ 18, /*->26839*/
/*26821*/           OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*26823*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*26826*/           OPC_EmitMergeInputChains1_0,
/*26827*/           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)
/*26839*/         0, /*End of Scope*/
                /*SwitchOpcode*/ 48,  TARGET_VAL(X86ISD::VZEXT_LOAD),// ->26891
/*26843*/         OPC_RecordMemRef,
/*26844*/         OPC_RecordNode, // #0 = 'X86vzload' chained node
/*26845*/         OPC_CheckFoldableChainNode,
/*26846*/         OPC_RecordChild1, // #1 = $src
/*26847*/         OPC_CheckType, MVT::v2i64,
/*26849*/         OPC_MoveParent,
/*26850*/         OPC_MoveParent,
/*26851*/         OPC_Scope, 18, /*->26871*/ // 2 children in Scope
/*26853*/           OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*26855*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*26858*/           OPC_EmitMergeInputChains1_0,
/*26859*/           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)
/*26871*/         /*Scope*/ 18, /*->26890*/
/*26872*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*26874*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*26877*/           OPC_EmitMergeInputChains1_0,
/*26878*/           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)
/*26890*/         0, /*End of Scope*/
                0, // EndSwitchOpcode
/*26892*/     /*Scope*/ 25, /*->26918*/
/*26893*/       OPC_RecordChild1, // #0 = $src
/*26894*/       OPC_Scope, 10, /*->26906*/ // 2 children in Scope
/*26896*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*26898*/         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)
/*26906*/       /*Scope*/ 10, /*->26917*/
/*26907*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*26909*/         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)
/*26917*/       0, /*End of Scope*/
/*26918*/     0, /*End of Scope*/
/*26919*/   /*Scope*/ 98|128,1/*226*/, /*->27147*/
/*26921*/     OPC_CheckInteger, 33|128,3/*417*/, 
/*26924*/     OPC_MoveParent,
/*26925*/     OPC_Scope, 64|128,1/*192*/, /*->27120*/ // 2 children in Scope
/*26928*/       OPC_MoveChild, 1,
/*26930*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*26933*/       OPC_MoveChild, 0,
/*26935*/       OPC_SwitchOpcode /*3 cases */, 66,  TARGET_VAL(X86ISD::VZEXT_MOVL),// ->27005
/*26939*/         OPC_MoveChild, 0,
/*26941*/         OPC_CheckOpcode, TARGET_VAL(ISD::SCALAR_TO_VECTOR),
/*26944*/         OPC_MoveChild, 0,
/*26946*/         OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*26949*/         OPC_RecordMemRef,
/*26950*/         OPC_RecordNode, // #0 = 'ld' chained node
/*26951*/         OPC_CheckFoldableChainNode,
/*26952*/         OPC_RecordChild1, // #1 = $src
/*26953*/         OPC_CheckPredicate, 2, // Predicate_unindexedload
/*26955*/         OPC_CheckPredicate, 3, // Predicate_load
/*26957*/         OPC_CheckType, MVT::i64,
/*26959*/         OPC_MoveParent,
/*26960*/         OPC_MoveParent,
/*26961*/         OPC_CheckType, MVT::v2i64,
/*26963*/         OPC_MoveParent,
/*26964*/         OPC_MoveParent,
/*26965*/         OPC_Scope, 18, /*->26985*/ // 2 children in Scope
/*26967*/           OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*26969*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*26972*/           OPC_EmitMergeInputChains1_0,
/*26973*/           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)
/*26985*/         /*Scope*/ 18, /*->27004*/
/*26986*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*26988*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*26991*/           OPC_EmitMergeInputChains1_0,
/*26992*/           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)
/*27004*/         0, /*End of Scope*/
                /*SwitchOpcode*/ 60,  TARGET_VAL(ISD::SCALAR_TO_VECTOR),// ->27068
/*27008*/         OPC_MoveChild, 0,
/*27010*/         OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*27013*/         OPC_RecordMemRef,
/*27014*/         OPC_RecordNode, // #0 = 'ld' chained node
/*27015*/         OPC_CheckFoldableChainNode,
/*27016*/         OPC_RecordChild1, // #1 = $src
/*27017*/         OPC_CheckPredicate, 2, // Predicate_unindexedload
/*27019*/         OPC_CheckPredicate, 3, // Predicate_load
/*27021*/         OPC_CheckType, MVT::i64,
/*27023*/         OPC_MoveParent,
/*27024*/         OPC_CheckType, MVT::v2i64,
/*27026*/         OPC_MoveParent,
/*27027*/         OPC_MoveParent,
/*27028*/         OPC_Scope, 18, /*->27048*/ // 2 children in Scope
/*27030*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*27032*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*27035*/           OPC_EmitMergeInputChains1_0,
/*27036*/           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)
/*27048*/         /*Scope*/ 18, /*->27067*/
/*27049*/           OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*27051*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*27054*/           OPC_EmitMergeInputChains1_0,
/*27055*/           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)
/*27067*/         0, /*End of Scope*/
                /*SwitchOpcode*/ 48,  TARGET_VAL(X86ISD::VZEXT_LOAD),// ->27119
/*27071*/         OPC_RecordMemRef,
/*27072*/         OPC_RecordNode, // #0 = 'X86vzload' chained node
/*27073*/         OPC_CheckFoldableChainNode,
/*27074*/         OPC_RecordChild1, // #1 = $src
/*27075*/         OPC_CheckType, MVT::v2i64,
/*27077*/         OPC_MoveParent,
/*27078*/         OPC_MoveParent,
/*27079*/         OPC_Scope, 18, /*->27099*/ // 2 children in Scope
/*27081*/           OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*27083*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*27086*/           OPC_EmitMergeInputChains1_0,
/*27087*/           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)
/*27099*/         /*Scope*/ 18, /*->27118*/
/*27100*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*27102*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*27105*/           OPC_EmitMergeInputChains1_0,
/*27106*/           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)
/*27118*/         0, /*End of Scope*/
                0, // EndSwitchOpcode
/*27120*/     /*Scope*/ 25, /*->27146*/
/*27121*/       OPC_RecordChild1, // #0 = $src
/*27122*/       OPC_Scope, 10, /*->27134*/ // 2 children in Scope
/*27124*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*27126*/         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)
/*27134*/       /*Scope*/ 10, /*->27145*/
/*27135*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*27137*/         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)
/*27145*/       0, /*End of Scope*/
/*27146*/     0, /*End of Scope*/
/*27147*/   /*Scope*/ 98|128,1/*226*/, /*->27375*/
/*27149*/     OPC_CheckInteger, 32|128,3/*416*/, 
/*27152*/     OPC_MoveParent,
/*27153*/     OPC_Scope, 64|128,1/*192*/, /*->27348*/ // 2 children in Scope
/*27156*/       OPC_MoveChild, 1,
/*27158*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*27161*/       OPC_MoveChild, 0,
/*27163*/       OPC_SwitchOpcode /*3 cases */, 66,  TARGET_VAL(X86ISD::VZEXT_MOVL),// ->27233
/*27167*/         OPC_MoveChild, 0,
/*27169*/         OPC_CheckOpcode, TARGET_VAL(ISD::SCALAR_TO_VECTOR),
/*27172*/         OPC_MoveChild, 0,
/*27174*/         OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*27177*/         OPC_RecordMemRef,
/*27178*/         OPC_RecordNode, // #0 = 'ld' chained node
/*27179*/         OPC_CheckFoldableChainNode,
/*27180*/         OPC_RecordChild1, // #1 = $src
/*27181*/         OPC_CheckPredicate, 2, // Predicate_unindexedload
/*27183*/         OPC_CheckPredicate, 3, // Predicate_load
/*27185*/         OPC_CheckType, MVT::i64,
/*27187*/         OPC_MoveParent,
/*27188*/         OPC_MoveParent,
/*27189*/         OPC_CheckType, MVT::v2i64,
/*27191*/         OPC_MoveParent,
/*27192*/         OPC_MoveParent,
/*27193*/         OPC_Scope, 18, /*->27213*/ // 2 children in Scope
/*27195*/           OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*27197*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*27200*/           OPC_EmitMergeInputChains1_0,
/*27201*/           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)
/*27213*/         /*Scope*/ 18, /*->27232*/
/*27214*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*27216*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*27219*/           OPC_EmitMergeInputChains1_0,
/*27220*/           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)
/*27232*/         0, /*End of Scope*/
                /*SwitchOpcode*/ 60,  TARGET_VAL(ISD::SCALAR_TO_VECTOR),// ->27296
/*27236*/         OPC_MoveChild, 0,
/*27238*/         OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*27241*/         OPC_RecordMemRef,
/*27242*/         OPC_RecordNode, // #0 = 'ld' chained node
/*27243*/         OPC_CheckFoldableChainNode,
/*27244*/         OPC_RecordChild1, // #1 = $src
/*27245*/         OPC_CheckPredicate, 2, // Predicate_unindexedload
/*27247*/         OPC_CheckPredicate, 3, // Predicate_load
/*27249*/         OPC_CheckType, MVT::i64,
/*27251*/         OPC_MoveParent,
/*27252*/         OPC_CheckType, MVT::v2i64,
/*27254*/         OPC_MoveParent,
/*27255*/         OPC_MoveParent,
/*27256*/         OPC_Scope, 18, /*->27276*/ // 2 children in Scope
/*27258*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*27260*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*27263*/           OPC_EmitMergeInputChains1_0,
/*27264*/           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)
/*27276*/         /*Scope*/ 18, /*->27295*/
/*27277*/           OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*27279*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*27282*/           OPC_EmitMergeInputChains1_0,
/*27283*/           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)
/*27295*/         0, /*End of Scope*/
                /*SwitchOpcode*/ 48,  TARGET_VAL(X86ISD::VZEXT_LOAD),// ->27347
/*27299*/         OPC_RecordMemRef,
/*27300*/         OPC_RecordNode, // #0 = 'X86vzload' chained node
/*27301*/         OPC_CheckFoldableChainNode,
/*27302*/         OPC_RecordChild1, // #1 = $src
/*27303*/         OPC_CheckType, MVT::v2i64,
/*27305*/         OPC_MoveParent,
/*27306*/         OPC_MoveParent,
/*27307*/         OPC_Scope, 18, /*->27327*/ // 2 children in Scope
/*27309*/           OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*27311*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*27314*/           OPC_EmitMergeInputChains1_0,
/*27315*/           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)
/*27327*/         /*Scope*/ 18, /*->27346*/
/*27328*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*27330*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*27333*/           OPC_EmitMergeInputChains1_0,
/*27334*/           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)
/*27346*/         0, /*End of Scope*/
                0, // EndSwitchOpcode
/*27348*/     /*Scope*/ 25, /*->27374*/
/*27349*/       OPC_RecordChild1, // #0 = $src
/*27350*/       OPC_Scope, 10, /*->27362*/ // 2 children in Scope
/*27352*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*27354*/         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)
/*27362*/       /*Scope*/ 10, /*->27373*/
/*27363*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*27365*/         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)
/*27373*/       0, /*End of Scope*/
/*27374*/     0, /*End of Scope*/
/*27375*/   /*Scope*/ 47|128,1/*175*/, /*->27552*/
/*27377*/     OPC_CheckInteger, 23|128,3/*407*/, 
/*27380*/     OPC_MoveParent,
/*27381*/     OPC_Scope, 13|128,1/*141*/, /*->27525*/ // 2 children in Scope
/*27384*/       OPC_MoveChild, 1,
/*27386*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*27389*/       OPC_MoveChild, 0,
/*27391*/       OPC_SwitchOpcode /*2 cases */, 66,  TARGET_VAL(X86ISD::VZEXT_MOVL),// ->27461
/*27395*/         OPC_MoveChild, 0,
/*27397*/         OPC_CheckOpcode, TARGET_VAL(ISD::SCALAR_TO_VECTOR),
/*27400*/         OPC_MoveChild, 0,
/*27402*/         OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*27405*/         OPC_RecordMemRef,
/*27406*/         OPC_RecordNode, // #0 = 'ld' chained node
/*27407*/         OPC_CheckFoldableChainNode,
/*27408*/         OPC_RecordChild1, // #1 = $src
/*27409*/         OPC_CheckPredicate, 2, // Predicate_unindexedload
/*27411*/         OPC_CheckPredicate, 7, // Predicate_loadi32
/*27413*/         OPC_CheckType, MVT::i32,
/*27415*/         OPC_MoveParent,
/*27416*/         OPC_MoveParent,
/*27417*/         OPC_CheckType, MVT::v4i32,
/*27419*/         OPC_MoveParent,
/*27420*/         OPC_MoveParent,
/*27421*/         OPC_Scope, 18, /*->27441*/ // 2 children in Scope
/*27423*/           OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*27425*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*27428*/           OPC_EmitMergeInputChains1_0,
/*27429*/           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)
/*27441*/         /*Scope*/ 18, /*->27460*/
/*27442*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*27444*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*27447*/           OPC_EmitMergeInputChains1_0,
/*27448*/           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)
/*27460*/         0, /*End of Scope*/
                /*SwitchOpcode*/ 60,  TARGET_VAL(ISD::SCALAR_TO_VECTOR),// ->27524
/*27464*/         OPC_MoveChild, 0,
/*27466*/         OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*27469*/         OPC_RecordMemRef,
/*27470*/         OPC_RecordNode, // #0 = 'ld' chained node
/*27471*/         OPC_CheckFoldableChainNode,
/*27472*/         OPC_RecordChild1, // #1 = $src
/*27473*/         OPC_CheckPredicate, 2, // Predicate_unindexedload
/*27475*/         OPC_CheckPredicate, 7, // Predicate_loadi32
/*27477*/         OPC_CheckType, MVT::i32,
/*27479*/         OPC_MoveParent,
/*27480*/         OPC_CheckType, MVT::v4i32,
/*27482*/         OPC_MoveParent,
/*27483*/         OPC_MoveParent,
/*27484*/         OPC_Scope, 18, /*->27504*/ // 2 children in Scope
/*27486*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*27488*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*27491*/           OPC_EmitMergeInputChains1_0,
/*27492*/           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)
/*27504*/         /*Scope*/ 18, /*->27523*/
/*27505*/           OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*27507*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*27510*/           OPC_EmitMergeInputChains1_0,
/*27511*/           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)
/*27523*/         0, /*End of Scope*/
                0, // EndSwitchOpcode
/*27525*/     /*Scope*/ 25, /*->27551*/
/*27526*/       OPC_RecordChild1, // #0 = $src
/*27527*/       OPC_Scope, 10, /*->27539*/ // 2 children in Scope
/*27529*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*27531*/         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)
/*27539*/       /*Scope*/ 10, /*->27550*/
/*27540*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*27542*/         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)
/*27550*/       0, /*End of Scope*/
/*27551*/     0, /*End of Scope*/
/*27552*/   /*Scope*/ 47|128,1/*175*/, /*->27729*/
/*27554*/     OPC_CheckInteger, 28|128,3/*412*/, 
/*27557*/     OPC_MoveParent,
/*27558*/     OPC_Scope, 13|128,1/*141*/, /*->27702*/ // 2 children in Scope
/*27561*/       OPC_MoveChild, 1,
/*27563*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*27566*/       OPC_MoveChild, 0,
/*27568*/       OPC_SwitchOpcode /*2 cases */, 66,  TARGET_VAL(X86ISD::VZEXT_MOVL),// ->27638
/*27572*/         OPC_MoveChild, 0,
/*27574*/         OPC_CheckOpcode, TARGET_VAL(ISD::SCALAR_TO_VECTOR),
/*27577*/         OPC_MoveChild, 0,
/*27579*/         OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*27582*/         OPC_RecordMemRef,
/*27583*/         OPC_RecordNode, // #0 = 'ld' chained node
/*27584*/         OPC_CheckFoldableChainNode,
/*27585*/         OPC_RecordChild1, // #1 = $src
/*27586*/         OPC_CheckPredicate, 2, // Predicate_unindexedload
/*27588*/         OPC_CheckPredicate, 7, // Predicate_loadi32
/*27590*/         OPC_CheckType, MVT::i32,
/*27592*/         OPC_MoveParent,
/*27593*/         OPC_MoveParent,
/*27594*/         OPC_CheckType, MVT::v4i32,
/*27596*/         OPC_MoveParent,
/*27597*/         OPC_MoveParent,
/*27598*/         OPC_Scope, 18, /*->27618*/ // 2 children in Scope
/*27600*/           OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*27602*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*27605*/           OPC_EmitMergeInputChains1_0,
/*27606*/           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)
/*27618*/         /*Scope*/ 18, /*->27637*/
/*27619*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*27621*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*27624*/           OPC_EmitMergeInputChains1_0,
/*27625*/           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)
/*27637*/         0, /*End of Scope*/
                /*SwitchOpcode*/ 60,  TARGET_VAL(ISD::SCALAR_TO_VECTOR),// ->27701
/*27641*/         OPC_MoveChild, 0,
/*27643*/         OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*27646*/         OPC_RecordMemRef,
/*27647*/         OPC_RecordNode, // #0 = 'ld' chained node
/*27648*/         OPC_CheckFoldableChainNode,
/*27649*/         OPC_RecordChild1, // #1 = $src
/*27650*/         OPC_CheckPredicate, 2, // Predicate_unindexedload
/*27652*/         OPC_CheckPredicate, 7, // Predicate_loadi32
/*27654*/         OPC_CheckType, MVT::i32,
/*27656*/         OPC_MoveParent,
/*27657*/         OPC_CheckType, MVT::v4i32,
/*27659*/         OPC_MoveParent,
/*27660*/         OPC_MoveParent,
/*27661*/         OPC_Scope, 18, /*->27681*/ // 2 children in Scope
/*27663*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*27665*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*27668*/           OPC_EmitMergeInputChains1_0,
/*27669*/           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)
/*27681*/         /*Scope*/ 18, /*->27700*/
/*27682*/           OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*27684*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*27687*/           OPC_EmitMergeInputChains1_0,
/*27688*/           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)
/*27700*/         0, /*End of Scope*/
                0, // EndSwitchOpcode
/*27702*/     /*Scope*/ 25, /*->27728*/
/*27703*/       OPC_RecordChild1, // #0 = $src
/*27704*/       OPC_Scope, 10, /*->27716*/ // 2 children in Scope
/*27706*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*27708*/         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)
/*27716*/       /*Scope*/ 10, /*->27727*/
/*27717*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*27719*/         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)
/*27727*/       0, /*End of Scope*/
/*27728*/     0, /*End of Scope*/
/*27729*/   /*Scope*/ 47|128,1/*175*/, /*->27906*/
/*27731*/     OPC_CheckInteger, 29|128,3/*413*/, 
/*27734*/     OPC_MoveParent,
/*27735*/     OPC_Scope, 13|128,1/*141*/, /*->27879*/ // 2 children in Scope
/*27738*/       OPC_MoveChild, 1,
/*27740*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*27743*/       OPC_MoveChild, 0,
/*27745*/       OPC_SwitchOpcode /*2 cases */, 66,  TARGET_VAL(X86ISD::VZEXT_MOVL),// ->27815
/*27749*/         OPC_MoveChild, 0,
/*27751*/         OPC_CheckOpcode, TARGET_VAL(ISD::SCALAR_TO_VECTOR),
/*27754*/         OPC_MoveChild, 0,
/*27756*/         OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*27759*/         OPC_RecordMemRef,
/*27760*/         OPC_RecordNode, // #0 = 'ld' chained node
/*27761*/         OPC_CheckFoldableChainNode,
/*27762*/         OPC_RecordChild1, // #1 = $src
/*27763*/         OPC_CheckPredicate, 2, // Predicate_unindexedload
/*27765*/         OPC_CheckPredicate, 7, // Predicate_loadi32
/*27767*/         OPC_CheckType, MVT::i32,
/*27769*/         OPC_MoveParent,
/*27770*/         OPC_MoveParent,
/*27771*/         OPC_CheckType, MVT::v4i32,
/*27773*/         OPC_MoveParent,
/*27774*/         OPC_MoveParent,
/*27775*/         OPC_Scope, 18, /*->27795*/ // 2 children in Scope
/*27777*/           OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*27779*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*27782*/           OPC_EmitMergeInputChains1_0,
/*27783*/           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)
/*27795*/         /*Scope*/ 18, /*->27814*/
/*27796*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*27798*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*27801*/           OPC_EmitMergeInputChains1_0,
/*27802*/           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)
/*27814*/         0, /*End of Scope*/
                /*SwitchOpcode*/ 60,  TARGET_VAL(ISD::SCALAR_TO_VECTOR),// ->27878
/*27818*/         OPC_MoveChild, 0,
/*27820*/         OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*27823*/         OPC_RecordMemRef,
/*27824*/         OPC_RecordNode, // #0 = 'ld' chained node
/*27825*/         OPC_CheckFoldableChainNode,
/*27826*/         OPC_RecordChild1, // #1 = $src
/*27827*/         OPC_CheckPredicate, 2, // Predicate_unindexedload
/*27829*/         OPC_CheckPredicate, 7, // Predicate_loadi32
/*27831*/         OPC_CheckType, MVT::i32,
/*27833*/         OPC_MoveParent,
/*27834*/         OPC_CheckType, MVT::v4i32,
/*27836*/         OPC_MoveParent,
/*27837*/         OPC_MoveParent,
/*27838*/         OPC_Scope, 18, /*->27858*/ // 2 children in Scope
/*27840*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*27842*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*27845*/           OPC_EmitMergeInputChains1_0,
/*27846*/           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)
/*27858*/         /*Scope*/ 18, /*->27877*/
/*27859*/           OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*27861*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*27864*/           OPC_EmitMergeInputChains1_0,
/*27865*/           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)
/*27877*/         0, /*End of Scope*/
                0, // EndSwitchOpcode
/*27879*/     /*Scope*/ 25, /*->27905*/
/*27880*/       OPC_RecordChild1, // #0 = $src
/*27881*/       OPC_Scope, 10, /*->27893*/ // 2 children in Scope
/*27883*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*27885*/         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)
/*27893*/       /*Scope*/ 10, /*->27904*/
/*27894*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*27896*/         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)
/*27904*/       0, /*End of Scope*/
/*27905*/     0, /*End of Scope*/
/*27906*/   /*Scope*/ 47|128,1/*175*/, /*->28083*/
/*27908*/     OPC_CheckInteger, 34|128,3/*418*/, 
/*27911*/     OPC_MoveParent,
/*27912*/     OPC_Scope, 13|128,1/*141*/, /*->28056*/ // 2 children in Scope
/*27915*/       OPC_MoveChild, 1,
/*27917*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*27920*/       OPC_MoveChild, 0,
/*27922*/       OPC_SwitchOpcode /*2 cases */, 66,  TARGET_VAL(X86ISD::VZEXT_MOVL),// ->27992
/*27926*/         OPC_MoveChild, 0,
/*27928*/         OPC_CheckOpcode, TARGET_VAL(ISD::SCALAR_TO_VECTOR),
/*27931*/         OPC_MoveChild, 0,
/*27933*/         OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*27936*/         OPC_RecordMemRef,
/*27937*/         OPC_RecordNode, // #0 = 'ld' chained node
/*27938*/         OPC_CheckFoldableChainNode,
/*27939*/         OPC_RecordChild1, // #1 = $src
/*27940*/         OPC_CheckPredicate, 2, // Predicate_unindexedload
/*27942*/         OPC_CheckPredicate, 7, // Predicate_loadi32
/*27944*/         OPC_CheckType, MVT::i32,
/*27946*/         OPC_MoveParent,
/*27947*/         OPC_MoveParent,
/*27948*/         OPC_CheckType, MVT::v4i32,
/*27950*/         OPC_MoveParent,
/*27951*/         OPC_MoveParent,
/*27952*/         OPC_Scope, 18, /*->27972*/ // 2 children in Scope
/*27954*/           OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*27956*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*27959*/           OPC_EmitMergeInputChains1_0,
/*27960*/           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)
/*27972*/         /*Scope*/ 18, /*->27991*/
/*27973*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*27975*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*27978*/           OPC_EmitMergeInputChains1_0,
/*27979*/           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)
/*27991*/         0, /*End of Scope*/
                /*SwitchOpcode*/ 60,  TARGET_VAL(ISD::SCALAR_TO_VECTOR),// ->28055
/*27995*/         OPC_MoveChild, 0,
/*27997*/         OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*28000*/         OPC_RecordMemRef,
/*28001*/         OPC_RecordNode, // #0 = 'ld' chained node
/*28002*/         OPC_CheckFoldableChainNode,
/*28003*/         OPC_RecordChild1, // #1 = $src
/*28004*/         OPC_CheckPredicate, 2, // Predicate_unindexedload
/*28006*/         OPC_CheckPredicate, 7, // Predicate_loadi32
/*28008*/         OPC_CheckType, MVT::i32,
/*28010*/         OPC_MoveParent,
/*28011*/         OPC_CheckType, MVT::v4i32,
/*28013*/         OPC_MoveParent,
/*28014*/         OPC_MoveParent,
/*28015*/         OPC_Scope, 18, /*->28035*/ // 2 children in Scope
/*28017*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*28019*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*28022*/           OPC_EmitMergeInputChains1_0,
/*28023*/           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)
/*28035*/         /*Scope*/ 18, /*->28054*/
/*28036*/           OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*28038*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*28041*/           OPC_EmitMergeInputChains1_0,
/*28042*/           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)
/*28054*/         0, /*End of Scope*/
                0, // EndSwitchOpcode
/*28056*/     /*Scope*/ 25, /*->28082*/
/*28057*/       OPC_RecordChild1, // #0 = $src
/*28058*/       OPC_Scope, 10, /*->28070*/ // 2 children in Scope
/*28060*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*28062*/         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)
/*28070*/       /*Scope*/ 10, /*->28081*/
/*28071*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*28073*/         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)
/*28081*/       0, /*End of Scope*/
/*28082*/     0, /*End of Scope*/
/*28083*/   /*Scope*/ 47|128,1/*175*/, /*->28260*/
/*28085*/     OPC_CheckInteger, 24|128,3/*408*/, 
/*28088*/     OPC_MoveParent,
/*28089*/     OPC_Scope, 13|128,1/*141*/, /*->28233*/ // 2 children in Scope
/*28092*/       OPC_MoveChild, 1,
/*28094*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*28097*/       OPC_MoveChild, 0,
/*28099*/       OPC_SwitchOpcode /*2 cases */, 66,  TARGET_VAL(X86ISD::VZEXT_MOVL),// ->28169
/*28103*/         OPC_MoveChild, 0,
/*28105*/         OPC_CheckOpcode, TARGET_VAL(ISD::SCALAR_TO_VECTOR),
/*28108*/         OPC_MoveChild, 0,
/*28110*/         OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*28113*/         OPC_RecordMemRef,
/*28114*/         OPC_RecordNode, // #0 = 'ld' chained node
/*28115*/         OPC_CheckFoldableChainNode,
/*28116*/         OPC_RecordChild1, // #1 = $src
/*28117*/         OPC_CheckPredicate, 2, // Predicate_unindexedload
/*28119*/         OPC_CheckPredicate, 7, // Predicate_loadi32
/*28121*/         OPC_CheckType, MVT::i32,
/*28123*/         OPC_MoveParent,
/*28124*/         OPC_MoveParent,
/*28125*/         OPC_CheckType, MVT::v4i32,
/*28127*/         OPC_MoveParent,
/*28128*/         OPC_MoveParent,
/*28129*/         OPC_Scope, 18, /*->28149*/ // 2 children in Scope
/*28131*/           OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*28133*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*28136*/           OPC_EmitMergeInputChains1_0,
/*28137*/           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)
/*28149*/         /*Scope*/ 18, /*->28168*/
/*28150*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*28152*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*28155*/           OPC_EmitMergeInputChains1_0,
/*28156*/           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)
/*28168*/         0, /*End of Scope*/
                /*SwitchOpcode*/ 60,  TARGET_VAL(ISD::SCALAR_TO_VECTOR),// ->28232
/*28172*/         OPC_MoveChild, 0,
/*28174*/         OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*28177*/         OPC_RecordMemRef,
/*28178*/         OPC_RecordNode, // #0 = 'ld' chained node
/*28179*/         OPC_CheckFoldableChainNode,
/*28180*/         OPC_RecordChild1, // #1 = $src
/*28181*/         OPC_CheckPredicate, 2, // Predicate_unindexedload
/*28183*/         OPC_CheckPredicate, 24, // Predicate_loadi16_anyext
/*28185*/         OPC_CheckType, MVT::i32,
/*28187*/         OPC_MoveParent,
/*28188*/         OPC_CheckType, MVT::v4i32,
/*28190*/         OPC_MoveParent,
/*28191*/         OPC_MoveParent,
/*28192*/         OPC_Scope, 18, /*->28212*/ // 2 children in Scope
/*28194*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*28196*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*28199*/           OPC_EmitMergeInputChains1_0,
/*28200*/           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)
/*28212*/         /*Scope*/ 18, /*->28231*/
/*28213*/           OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*28215*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*28218*/           OPC_EmitMergeInputChains1_0,
/*28219*/           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)
/*28231*/         0, /*End of Scope*/
                0, // EndSwitchOpcode
/*28233*/     /*Scope*/ 25, /*->28259*/
/*28234*/       OPC_RecordChild1, // #0 = $src
/*28235*/       OPC_Scope, 10, /*->28247*/ // 2 children in Scope
/*28237*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*28239*/         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)
/*28247*/       /*Scope*/ 10, /*->28258*/
/*28248*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*28250*/         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)
/*28258*/       0, /*End of Scope*/
/*28259*/     0, /*End of Scope*/
/*28260*/   /*Scope*/ 47|128,1/*175*/, /*->28437*/
/*28262*/     OPC_CheckInteger, 30|128,3/*414*/, 
/*28265*/     OPC_MoveParent,
/*28266*/     OPC_Scope, 13|128,1/*141*/, /*->28410*/ // 2 children in Scope
/*28269*/       OPC_MoveChild, 1,
/*28271*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*28274*/       OPC_MoveChild, 0,
/*28276*/       OPC_SwitchOpcode /*2 cases */, 66,  TARGET_VAL(X86ISD::VZEXT_MOVL),// ->28346
/*28280*/         OPC_MoveChild, 0,
/*28282*/         OPC_CheckOpcode, TARGET_VAL(ISD::SCALAR_TO_VECTOR),
/*28285*/         OPC_MoveChild, 0,
/*28287*/         OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*28290*/         OPC_RecordMemRef,
/*28291*/         OPC_RecordNode, // #0 = 'ld' chained node
/*28292*/         OPC_CheckFoldableChainNode,
/*28293*/         OPC_RecordChild1, // #1 = $src
/*28294*/         OPC_CheckPredicate, 2, // Predicate_unindexedload
/*28296*/         OPC_CheckPredicate, 7, // Predicate_loadi32
/*28298*/         OPC_CheckType, MVT::i32,
/*28300*/         OPC_MoveParent,
/*28301*/         OPC_MoveParent,
/*28302*/         OPC_CheckType, MVT::v4i32,
/*28304*/         OPC_MoveParent,
/*28305*/         OPC_MoveParent,
/*28306*/         OPC_Scope, 18, /*->28326*/ // 2 children in Scope
/*28308*/           OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*28310*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*28313*/           OPC_EmitMergeInputChains1_0,
/*28314*/           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)
/*28326*/         /*Scope*/ 18, /*->28345*/
/*28327*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*28329*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*28332*/           OPC_EmitMergeInputChains1_0,
/*28333*/           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)
/*28345*/         0, /*End of Scope*/
                /*SwitchOpcode*/ 60,  TARGET_VAL(ISD::SCALAR_TO_VECTOR),// ->28409
/*28349*/         OPC_MoveChild, 0,
/*28351*/         OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*28354*/         OPC_RecordMemRef,
/*28355*/         OPC_RecordNode, // #0 = 'ld' chained node
/*28356*/         OPC_CheckFoldableChainNode,
/*28357*/         OPC_RecordChild1, // #1 = $src
/*28358*/         OPC_CheckPredicate, 2, // Predicate_unindexedload
/*28360*/         OPC_CheckPredicate, 24, // Predicate_loadi16_anyext
/*28362*/         OPC_CheckType, MVT::i32,
/*28364*/         OPC_MoveParent,
/*28365*/         OPC_CheckType, MVT::v4i32,
/*28367*/         OPC_MoveParent,
/*28368*/         OPC_MoveParent,
/*28369*/         OPC_Scope, 18, /*->28389*/ // 2 children in Scope
/*28371*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*28373*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*28376*/           OPC_EmitMergeInputChains1_0,
/*28377*/           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)
/*28389*/         /*Scope*/ 18, /*->28408*/
/*28390*/           OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*28392*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*28395*/           OPC_EmitMergeInputChains1_0,
/*28396*/           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)
/*28408*/         0, /*End of Scope*/
                0, // EndSwitchOpcode
/*28410*/     /*Scope*/ 25, /*->28436*/
/*28411*/       OPC_RecordChild1, // #0 = $src
/*28412*/       OPC_Scope, 10, /*->28424*/ // 2 children in Scope
/*28414*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*28416*/         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)
/*28424*/       /*Scope*/ 10, /*->28435*/
/*28425*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*28427*/         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)
/*28435*/       0, /*End of Scope*/
/*28436*/     0, /*End of Scope*/
/*28437*/   /*Scope*/ 0|128,1/*128*/, /*->28567*/
/*28439*/     OPC_CheckInteger, 9|128,3/*393*/, 
/*28442*/     OPC_MoveParent,
/*28443*/     OPC_RecordChild1, // #0 = $src1
/*28444*/     OPC_Scope, 79, /*->28525*/ // 2 children in Scope
/*28446*/       OPC_MoveChild, 2,
/*28448*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*28451*/       OPC_MoveChild, 0,
/*28453*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*28456*/       OPC_RecordMemRef,
/*28457*/       OPC_RecordNode, // #1 = 'ld' chained node
/*28458*/       OPC_CheckFoldableChainNode,
/*28459*/       OPC_RecordChild1, // #2 = $src2
/*28460*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*28462*/       OPC_CheckPredicate, 3, // Predicate_load
/*28464*/       OPC_CheckPredicate, 23, // Predicate_memop
/*28466*/       OPC_CheckType, MVT::v16i8,
/*28468*/       OPC_MoveParent,
/*28469*/       OPC_MoveParent,
/*28470*/       OPC_RecordChild3, // #3 = $src3
/*28471*/       OPC_MoveChild, 3,
/*28473*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*28476*/       OPC_MoveParent,
/*28477*/       OPC_Scope, 22, /*->28501*/ // 2 children in Scope
/*28479*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*28481*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*28484*/         OPC_EmitMergeInputChains1_1,
/*28485*/         OPC_EmitConvertToTarget, 3,
/*28487*/         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)
/*28501*/       /*Scope*/ 22, /*->28524*/
/*28502*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*28504*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*28507*/         OPC_EmitMergeInputChains1_1,
/*28508*/         OPC_EmitConvertToTarget, 3,
/*28510*/         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)
/*28524*/       0, /*End of Scope*/
/*28525*/     /*Scope*/ 40, /*->28566*/
/*28526*/       OPC_RecordChild2, // #1 = $src2
/*28527*/       OPC_RecordChild3, // #2 = $src3
/*28528*/       OPC_MoveChild, 3,
/*28530*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*28533*/       OPC_MoveParent,
/*28534*/       OPC_Scope, 14, /*->28550*/ // 2 children in Scope
/*28536*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*28538*/         OPC_EmitConvertToTarget, 2,
/*28540*/         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)
/*28550*/       /*Scope*/ 14, /*->28565*/
/*28551*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*28553*/         OPC_EmitConvertToTarget, 2,
/*28555*/         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)
/*28565*/       0, /*End of Scope*/
/*28566*/     0, /*End of Scope*/
/*28567*/   /*Scope*/ 102, /*->28670*/
/*28568*/     OPC_CheckInteger, 100|128,2/*356*/, 
/*28571*/     OPC_MoveParent,
/*28572*/     OPC_RecordChild1, // #0 = $src1
/*28573*/     OPC_Scope, 66, /*->28641*/ // 2 children in Scope
/*28575*/       OPC_MoveChild, 2,
/*28577*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*28580*/       OPC_MoveChild, 0,
/*28582*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*28585*/       OPC_RecordMemRef,
/*28586*/       OPC_RecordNode, // #1 = 'ld' chained node
/*28587*/       OPC_CheckFoldableChainNode,
/*28588*/       OPC_RecordChild1, // #2 = $src2
/*28589*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*28591*/       OPC_CheckPredicate, 3, // Predicate_load
/*28593*/       OPC_CheckPredicate, 23, // Predicate_memop
/*28595*/       OPC_CheckType, MVT::v2i64,
/*28597*/       OPC_MoveParent,
/*28598*/       OPC_MoveParent,
/*28599*/       OPC_Scope, 19, /*->28620*/ // 2 children in Scope
/*28601*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*28603*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*28606*/         OPC_EmitMergeInputChains1_1,
/*28607*/         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)
/*28620*/       /*Scope*/ 19, /*->28640*/
/*28621*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*28623*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*28626*/         OPC_EmitMergeInputChains1_1,
/*28627*/         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)
/*28640*/       0, /*End of Scope*/
/*28641*/     /*Scope*/ 27, /*->28669*/
/*28642*/       OPC_RecordChild2, // #1 = $src2
/*28643*/       OPC_Scope, 11, /*->28656*/ // 2 children in Scope
/*28645*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*28647*/         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)
/*28656*/       /*Scope*/ 11, /*->28668*/
/*28657*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*28659*/         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)
/*28668*/       0, /*End of Scope*/
/*28669*/     0, /*End of Scope*/
/*28670*/   /*Scope*/ 102, /*->28773*/
/*28671*/     OPC_CheckInteger, 101|128,2/*357*/, 
/*28674*/     OPC_MoveParent,
/*28675*/     OPC_RecordChild1, // #0 = $src1
/*28676*/     OPC_Scope, 66, /*->28744*/ // 2 children in Scope
/*28678*/       OPC_MoveChild, 2,
/*28680*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*28683*/       OPC_MoveChild, 0,
/*28685*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*28688*/       OPC_RecordMemRef,
/*28689*/       OPC_RecordNode, // #1 = 'ld' chained node
/*28690*/       OPC_CheckFoldableChainNode,
/*28691*/       OPC_RecordChild1, // #2 = $src2
/*28692*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*28694*/       OPC_CheckPredicate, 3, // Predicate_load
/*28696*/       OPC_CheckPredicate, 23, // Predicate_memop
/*28698*/       OPC_CheckType, MVT::v2i64,
/*28700*/       OPC_MoveParent,
/*28701*/       OPC_MoveParent,
/*28702*/       OPC_Scope, 19, /*->28723*/ // 2 children in Scope
/*28704*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*28706*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*28709*/         OPC_EmitMergeInputChains1_1,
/*28710*/         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)
/*28723*/       /*Scope*/ 19, /*->28743*/
/*28724*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*28726*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*28729*/         OPC_EmitMergeInputChains1_1,
/*28730*/         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)
/*28743*/       0, /*End of Scope*/
/*28744*/     /*Scope*/ 27, /*->28772*/
/*28745*/       OPC_RecordChild2, // #1 = $src2
/*28746*/       OPC_Scope, 11, /*->28759*/ // 2 children in Scope
/*28748*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*28750*/         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)
/*28759*/       /*Scope*/ 11, /*->28771*/
/*28760*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*28762*/         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)
/*28771*/       0, /*End of Scope*/
/*28772*/     0, /*End of Scope*/
/*28773*/   /*Scope*/ 102, /*->28876*/
/*28774*/     OPC_CheckInteger, 102|128,2/*358*/, 
/*28777*/     OPC_MoveParent,
/*28778*/     OPC_RecordChild1, // #0 = $src1
/*28779*/     OPC_Scope, 66, /*->28847*/ // 2 children in Scope
/*28781*/       OPC_MoveChild, 2,
/*28783*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*28786*/       OPC_MoveChild, 0,
/*28788*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*28791*/       OPC_RecordMemRef,
/*28792*/       OPC_RecordNode, // #1 = 'ld' chained node
/*28793*/       OPC_CheckFoldableChainNode,
/*28794*/       OPC_RecordChild1, // #2 = $src2
/*28795*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*28797*/       OPC_CheckPredicate, 3, // Predicate_load
/*28799*/       OPC_CheckPredicate, 23, // Predicate_memop
/*28801*/       OPC_CheckType, MVT::v2i64,
/*28803*/       OPC_MoveParent,
/*28804*/       OPC_MoveParent,
/*28805*/       OPC_Scope, 19, /*->28826*/ // 2 children in Scope
/*28807*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*28809*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*28812*/         OPC_EmitMergeInputChains1_1,
/*28813*/         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)
/*28826*/       /*Scope*/ 19, /*->28846*/
/*28827*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*28829*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*28832*/         OPC_EmitMergeInputChains1_1,
/*28833*/         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)
/*28846*/       0, /*End of Scope*/
/*28847*/     /*Scope*/ 27, /*->28875*/
/*28848*/       OPC_RecordChild2, // #1 = $src2
/*28849*/       OPC_Scope, 11, /*->28862*/ // 2 children in Scope
/*28851*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*28853*/         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)
/*28862*/       /*Scope*/ 11, /*->28874*/
/*28863*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*28865*/         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)
/*28874*/       0, /*End of Scope*/
/*28875*/     0, /*End of Scope*/
/*28876*/   /*Scope*/ 102, /*->28979*/
/*28877*/     OPC_CheckInteger, 103|128,2/*359*/, 
/*28880*/     OPC_MoveParent,
/*28881*/     OPC_RecordChild1, // #0 = $src1
/*28882*/     OPC_Scope, 66, /*->28950*/ // 2 children in Scope
/*28884*/       OPC_MoveChild, 2,
/*28886*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*28889*/       OPC_MoveChild, 0,
/*28891*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*28894*/       OPC_RecordMemRef,
/*28895*/       OPC_RecordNode, // #1 = 'ld' chained node
/*28896*/       OPC_CheckFoldableChainNode,
/*28897*/       OPC_RecordChild1, // #2 = $src2
/*28898*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*28900*/       OPC_CheckPredicate, 3, // Predicate_load
/*28902*/       OPC_CheckPredicate, 23, // Predicate_memop
/*28904*/       OPC_CheckType, MVT::v2i64,
/*28906*/       OPC_MoveParent,
/*28907*/       OPC_MoveParent,
/*28908*/       OPC_Scope, 19, /*->28929*/ // 2 children in Scope
/*28910*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*28912*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*28915*/         OPC_EmitMergeInputChains1_1,
/*28916*/         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)
/*28929*/       /*Scope*/ 19, /*->28949*/
/*28930*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*28932*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*28935*/         OPC_EmitMergeInputChains1_1,
/*28936*/         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)
/*28949*/       0, /*End of Scope*/
/*28950*/     /*Scope*/ 27, /*->28978*/
/*28951*/       OPC_RecordChild2, // #1 = $src2
/*28952*/       OPC_Scope, 11, /*->28965*/ // 2 children in Scope
/*28954*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*28956*/         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)
/*28965*/       /*Scope*/ 11, /*->28977*/
/*28966*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*28968*/         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)
/*28977*/       0, /*End of Scope*/
/*28978*/     0, /*End of Scope*/
/*28979*/   /*Scope*/ 43|128,1/*171*/, /*->29152*/
/*28981*/     OPC_CheckInteger, 58|128,2/*314*/, 
/*28984*/     OPC_MoveParent,
/*28985*/     OPC_Scope, 67, /*->29054*/ // 3 children in Scope
/*28987*/       OPC_RecordChild1, // #0 = $src1
/*28988*/       OPC_MoveChild, 2,
/*28990*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*28993*/       OPC_MoveChild, 0,
/*28995*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*28998*/       OPC_RecordMemRef,
/*28999*/       OPC_RecordNode, // #1 = 'ld' chained node
/*29000*/       OPC_CheckFoldableChainNode,
/*29001*/       OPC_RecordChild1, // #2 = $src2
/*29002*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*29004*/       OPC_CheckPredicate, 3, // Predicate_load
/*29006*/       OPC_CheckPredicate, 23, // Predicate_memop
/*29008*/       OPC_CheckType, MVT::v2i64,
/*29010*/       OPC_MoveParent,
/*29011*/       OPC_MoveParent,
/*29012*/       OPC_Scope, 19, /*->29033*/ // 2 children in Scope
/*29014*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*29016*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*29019*/         OPC_EmitMergeInputChains1_1,
/*29020*/         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)
/*29033*/       /*Scope*/ 19, /*->29053*/
/*29034*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*29036*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*29039*/         OPC_EmitMergeInputChains1_1,
/*29040*/         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)
/*29053*/       0, /*End of Scope*/
/*29054*/     /*Scope*/ 67, /*->29122*/
/*29055*/       OPC_MoveChild, 1,
/*29057*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*29060*/       OPC_MoveChild, 0,
/*29062*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*29065*/       OPC_RecordMemRef,
/*29066*/       OPC_RecordNode, // #0 = 'ld' chained node
/*29067*/       OPC_CheckFoldableChainNode,
/*29068*/       OPC_RecordChild1, // #1 = $src2
/*29069*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*29071*/       OPC_CheckPredicate, 3, // Predicate_load
/*29073*/       OPC_CheckPredicate, 23, // Predicate_memop
/*29075*/       OPC_CheckType, MVT::v2i64,
/*29077*/       OPC_MoveParent,
/*29078*/       OPC_MoveParent,
/*29079*/       OPC_RecordChild2, // #2 = $src1
/*29080*/       OPC_Scope, 19, /*->29101*/ // 2 children in Scope
/*29082*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*29084*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*29087*/         OPC_EmitMergeInputChains1_0,
/*29088*/         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)
/*29101*/       /*Scope*/ 19, /*->29121*/
/*29102*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*29104*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*29107*/         OPC_EmitMergeInputChains1_0,
/*29108*/         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)
/*29121*/       0, /*End of Scope*/
/*29122*/     /*Scope*/ 28, /*->29151*/
/*29123*/       OPC_RecordChild1, // #0 = $src1
/*29124*/       OPC_RecordChild2, // #1 = $src2
/*29125*/       OPC_Scope, 11, /*->29138*/ // 2 children in Scope
/*29127*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*29129*/         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)
/*29138*/       /*Scope*/ 11, /*->29150*/
/*29139*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*29141*/         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)
/*29150*/       0, /*End of Scope*/
/*29151*/     0, /*End of Scope*/
/*29152*/   /*Scope*/ 43|128,1/*171*/, /*->29325*/
/*29154*/     OPC_CheckInteger, 59|128,2/*315*/, 
/*29157*/     OPC_MoveParent,
/*29158*/     OPC_Scope, 67, /*->29227*/ // 3 children in Scope
/*29160*/       OPC_RecordChild1, // #0 = $src1
/*29161*/       OPC_MoveChild, 2,
/*29163*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*29166*/       OPC_MoveChild, 0,
/*29168*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*29171*/       OPC_RecordMemRef,
/*29172*/       OPC_RecordNode, // #1 = 'ld' chained node
/*29173*/       OPC_CheckFoldableChainNode,
/*29174*/       OPC_RecordChild1, // #2 = $src2
/*29175*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*29177*/       OPC_CheckPredicate, 3, // Predicate_load
/*29179*/       OPC_CheckPredicate, 23, // Predicate_memop
/*29181*/       OPC_CheckType, MVT::v2i64,
/*29183*/       OPC_MoveParent,
/*29184*/       OPC_MoveParent,
/*29185*/       OPC_Scope, 19, /*->29206*/ // 2 children in Scope
/*29187*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*29189*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*29192*/         OPC_EmitMergeInputChains1_1,
/*29193*/         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)
/*29206*/       /*Scope*/ 19, /*->29226*/
/*29207*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*29209*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*29212*/         OPC_EmitMergeInputChains1_1,
/*29213*/         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)
/*29226*/       0, /*End of Scope*/
/*29227*/     /*Scope*/ 67, /*->29295*/
/*29228*/       OPC_MoveChild, 1,
/*29230*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*29233*/       OPC_MoveChild, 0,
/*29235*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*29238*/       OPC_RecordMemRef,
/*29239*/       OPC_RecordNode, // #0 = 'ld' chained node
/*29240*/       OPC_CheckFoldableChainNode,
/*29241*/       OPC_RecordChild1, // #1 = $src2
/*29242*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*29244*/       OPC_CheckPredicate, 3, // Predicate_load
/*29246*/       OPC_CheckPredicate, 23, // Predicate_memop
/*29248*/       OPC_CheckType, MVT::v2i64,
/*29250*/       OPC_MoveParent,
/*29251*/       OPC_MoveParent,
/*29252*/       OPC_RecordChild2, // #2 = $src1
/*29253*/       OPC_Scope, 19, /*->29274*/ // 2 children in Scope
/*29255*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*29257*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*29260*/         OPC_EmitMergeInputChains1_0,
/*29261*/         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)
/*29274*/       /*Scope*/ 19, /*->29294*/
/*29275*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*29277*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*29280*/         OPC_EmitMergeInputChains1_0,
/*29281*/         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)
/*29294*/       0, /*End of Scope*/
/*29295*/     /*Scope*/ 28, /*->29324*/
/*29296*/       OPC_RecordChild1, // #0 = $src1
/*29297*/       OPC_RecordChild2, // #1 = $src2
/*29298*/       OPC_Scope, 11, /*->29311*/ // 2 children in Scope
/*29300*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*29302*/         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)
/*29311*/       /*Scope*/ 11, /*->29323*/
/*29312*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*29314*/         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)
/*29323*/       0, /*End of Scope*/
/*29324*/     0, /*End of Scope*/
/*29325*/   /*Scope*/ 43|128,1/*171*/, /*->29498*/
/*29327*/     OPC_CheckInteger, 60|128,2/*316*/, 
/*29330*/     OPC_MoveParent,
/*29331*/     OPC_Scope, 67, /*->29400*/ // 3 children in Scope
/*29333*/       OPC_RecordChild1, // #0 = $src1
/*29334*/       OPC_MoveChild, 2,
/*29336*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*29339*/       OPC_MoveChild, 0,
/*29341*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*29344*/       OPC_RecordMemRef,
/*29345*/       OPC_RecordNode, // #1 = 'ld' chained node
/*29346*/       OPC_CheckFoldableChainNode,
/*29347*/       OPC_RecordChild1, // #2 = $src2
/*29348*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*29350*/       OPC_CheckPredicate, 3, // Predicate_load
/*29352*/       OPC_CheckPredicate, 23, // Predicate_memop
/*29354*/       OPC_CheckType, MVT::v2i64,
/*29356*/       OPC_MoveParent,
/*29357*/       OPC_MoveParent,
/*29358*/       OPC_Scope, 19, /*->29379*/ // 2 children in Scope
/*29360*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*29362*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*29365*/         OPC_EmitMergeInputChains1_1,
/*29366*/         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)
/*29379*/       /*Scope*/ 19, /*->29399*/
/*29380*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*29382*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*29385*/         OPC_EmitMergeInputChains1_1,
/*29386*/         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)
/*29399*/       0, /*End of Scope*/
/*29400*/     /*Scope*/ 67, /*->29468*/
/*29401*/       OPC_MoveChild, 1,
/*29403*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*29406*/       OPC_MoveChild, 0,
/*29408*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*29411*/       OPC_RecordMemRef,
/*29412*/       OPC_RecordNode, // #0 = 'ld' chained node
/*29413*/       OPC_CheckFoldableChainNode,
/*29414*/       OPC_RecordChild1, // #1 = $src2
/*29415*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*29417*/       OPC_CheckPredicate, 3, // Predicate_load
/*29419*/       OPC_CheckPredicate, 23, // Predicate_memop
/*29421*/       OPC_CheckType, MVT::v2i64,
/*29423*/       OPC_MoveParent,
/*29424*/       OPC_MoveParent,
/*29425*/       OPC_RecordChild2, // #2 = $src1
/*29426*/       OPC_Scope, 19, /*->29447*/ // 2 children in Scope
/*29428*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*29430*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*29433*/         OPC_EmitMergeInputChains1_0,
/*29434*/         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)
/*29447*/       /*Scope*/ 19, /*->29467*/
/*29448*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*29450*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*29453*/         OPC_EmitMergeInputChains1_0,
/*29454*/         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)
/*29467*/       0, /*End of Scope*/
/*29468*/     /*Scope*/ 28, /*->29497*/
/*29469*/       OPC_RecordChild1, // #0 = $src1
/*29470*/       OPC_RecordChild2, // #1 = $src2
/*29471*/       OPC_Scope, 11, /*->29484*/ // 2 children in Scope
/*29473*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*29475*/         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)
/*29484*/       /*Scope*/ 11, /*->29496*/
/*29485*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*29487*/         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)
/*29496*/       0, /*End of Scope*/
/*29497*/     0, /*End of Scope*/
/*29498*/   /*Scope*/ 43|128,1/*171*/, /*->29671*/
/*29500*/     OPC_CheckInteger, 61|128,2/*317*/, 
/*29503*/     OPC_MoveParent,
/*29504*/     OPC_Scope, 67, /*->29573*/ // 3 children in Scope
/*29506*/       OPC_RecordChild1, // #0 = $src1
/*29507*/       OPC_MoveChild, 2,
/*29509*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*29512*/       OPC_MoveChild, 0,
/*29514*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*29517*/       OPC_RecordMemRef,
/*29518*/       OPC_RecordNode, // #1 = 'ld' chained node
/*29519*/       OPC_CheckFoldableChainNode,
/*29520*/       OPC_RecordChild1, // #2 = $src2
/*29521*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*29523*/       OPC_CheckPredicate, 3, // Predicate_load
/*29525*/       OPC_CheckPredicate, 23, // Predicate_memop
/*29527*/       OPC_CheckType, MVT::v2i64,
/*29529*/       OPC_MoveParent,
/*29530*/       OPC_MoveParent,
/*29531*/       OPC_Scope, 19, /*->29552*/ // 2 children in Scope
/*29533*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*29535*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*29538*/         OPC_EmitMergeInputChains1_1,
/*29539*/         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)
/*29552*/       /*Scope*/ 19, /*->29572*/
/*29553*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*29555*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*29558*/         OPC_EmitMergeInputChains1_1,
/*29559*/         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)
/*29572*/       0, /*End of Scope*/
/*29573*/     /*Scope*/ 67, /*->29641*/
/*29574*/       OPC_MoveChild, 1,
/*29576*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*29579*/       OPC_MoveChild, 0,
/*29581*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*29584*/       OPC_RecordMemRef,
/*29585*/       OPC_RecordNode, // #0 = 'ld' chained node
/*29586*/       OPC_CheckFoldableChainNode,
/*29587*/       OPC_RecordChild1, // #1 = $src2
/*29588*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*29590*/       OPC_CheckPredicate, 3, // Predicate_load
/*29592*/       OPC_CheckPredicate, 23, // Predicate_memop
/*29594*/       OPC_CheckType, MVT::v2i64,
/*29596*/       OPC_MoveParent,
/*29597*/       OPC_MoveParent,
/*29598*/       OPC_RecordChild2, // #2 = $src1
/*29599*/       OPC_Scope, 19, /*->29620*/ // 2 children in Scope
/*29601*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*29603*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*29606*/         OPC_EmitMergeInputChains1_0,
/*29607*/         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)
/*29620*/       /*Scope*/ 19, /*->29640*/
/*29621*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*29623*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*29626*/         OPC_EmitMergeInputChains1_0,
/*29627*/         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)
/*29640*/       0, /*End of Scope*/
/*29641*/     /*Scope*/ 28, /*->29670*/
/*29642*/       OPC_RecordChild1, // #0 = $src1
/*29643*/       OPC_RecordChild2, // #1 = $src2
/*29644*/       OPC_Scope, 11, /*->29657*/ // 2 children in Scope
/*29646*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*29648*/         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)
/*29657*/       /*Scope*/ 11, /*->29669*/
/*29658*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*29660*/         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)
/*29669*/       0, /*End of Scope*/
/*29670*/     0, /*End of Scope*/
/*29671*/   /*Scope*/ 43|128,1/*171*/, /*->29844*/
/*29673*/     OPC_CheckInteger, 77|128,2/*333*/, 
/*29676*/     OPC_MoveParent,
/*29677*/     OPC_Scope, 67, /*->29746*/ // 3 children in Scope
/*29679*/       OPC_RecordChild1, // #0 = $src1
/*29680*/       OPC_MoveChild, 2,
/*29682*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*29685*/       OPC_MoveChild, 0,
/*29687*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*29690*/       OPC_RecordMemRef,
/*29691*/       OPC_RecordNode, // #1 = 'ld' chained node
/*29692*/       OPC_CheckFoldableChainNode,
/*29693*/       OPC_RecordChild1, // #2 = $src2
/*29694*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*29696*/       OPC_CheckPredicate, 3, // Predicate_load
/*29698*/       OPC_CheckPredicate, 23, // Predicate_memop
/*29700*/       OPC_CheckType, MVT::v2i64,
/*29702*/       OPC_MoveParent,
/*29703*/       OPC_MoveParent,
/*29704*/       OPC_Scope, 19, /*->29725*/ // 2 children in Scope
/*29706*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*29708*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*29711*/         OPC_EmitMergeInputChains1_1,
/*29712*/         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)
/*29725*/       /*Scope*/ 19, /*->29745*/
/*29726*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*29728*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*29731*/         OPC_EmitMergeInputChains1_1,
/*29732*/         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)
/*29745*/       0, /*End of Scope*/
/*29746*/     /*Scope*/ 67, /*->29814*/
/*29747*/       OPC_MoveChild, 1,
/*29749*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*29752*/       OPC_MoveChild, 0,
/*29754*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*29757*/       OPC_RecordMemRef,
/*29758*/       OPC_RecordNode, // #0 = 'ld' chained node
/*29759*/       OPC_CheckFoldableChainNode,
/*29760*/       OPC_RecordChild1, // #1 = $src2
/*29761*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*29763*/       OPC_CheckPredicate, 3, // Predicate_load
/*29765*/       OPC_CheckPredicate, 23, // Predicate_memop
/*29767*/       OPC_CheckType, MVT::v2i64,
/*29769*/       OPC_MoveParent,
/*29770*/       OPC_MoveParent,
/*29771*/       OPC_RecordChild2, // #2 = $src1
/*29772*/       OPC_Scope, 19, /*->29793*/ // 2 children in Scope
/*29774*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*29776*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*29779*/         OPC_EmitMergeInputChains1_0,
/*29780*/         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)
/*29793*/       /*Scope*/ 19, /*->29813*/
/*29794*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*29796*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*29799*/         OPC_EmitMergeInputChains1_0,
/*29800*/         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)
/*29813*/       0, /*End of Scope*/
/*29814*/     /*Scope*/ 28, /*->29843*/
/*29815*/       OPC_RecordChild1, // #0 = $src1
/*29816*/       OPC_RecordChild2, // #1 = $src2
/*29817*/       OPC_Scope, 11, /*->29830*/ // 2 children in Scope
/*29819*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*29821*/         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)
/*29830*/       /*Scope*/ 11, /*->29842*/
/*29831*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*29833*/         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)
/*29842*/       0, /*End of Scope*/
/*29843*/     0, /*End of Scope*/
/*29844*/   /*Scope*/ 43|128,1/*171*/, /*->30017*/
/*29846*/     OPC_CheckInteger, 76|128,2/*332*/, 
/*29849*/     OPC_MoveParent,
/*29850*/     OPC_Scope, 67, /*->29919*/ // 3 children in Scope
/*29852*/       OPC_RecordChild1, // #0 = $src1
/*29853*/       OPC_MoveChild, 2,
/*29855*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*29858*/       OPC_MoveChild, 0,
/*29860*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*29863*/       OPC_RecordMemRef,
/*29864*/       OPC_RecordNode, // #1 = 'ld' chained node
/*29865*/       OPC_CheckFoldableChainNode,
/*29866*/       OPC_RecordChild1, // #2 = $src2
/*29867*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*29869*/       OPC_CheckPredicate, 3, // Predicate_load
/*29871*/       OPC_CheckPredicate, 23, // Predicate_memop
/*29873*/       OPC_CheckType, MVT::v2i64,
/*29875*/       OPC_MoveParent,
/*29876*/       OPC_MoveParent,
/*29877*/       OPC_Scope, 19, /*->29898*/ // 2 children in Scope
/*29879*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*29881*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*29884*/         OPC_EmitMergeInputChains1_1,
/*29885*/         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)
/*29898*/       /*Scope*/ 19, /*->29918*/
/*29899*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*29901*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*29904*/         OPC_EmitMergeInputChains1_1,
/*29905*/         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)
/*29918*/       0, /*End of Scope*/
/*29919*/     /*Scope*/ 67, /*->29987*/
/*29920*/       OPC_MoveChild, 1,
/*29922*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*29925*/       OPC_MoveChild, 0,
/*29927*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*29930*/       OPC_RecordMemRef,
/*29931*/       OPC_RecordNode, // #0 = 'ld' chained node
/*29932*/       OPC_CheckFoldableChainNode,
/*29933*/       OPC_RecordChild1, // #1 = $src2
/*29934*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*29936*/       OPC_CheckPredicate, 3, // Predicate_load
/*29938*/       OPC_CheckPredicate, 23, // Predicate_memop
/*29940*/       OPC_CheckType, MVT::v2i64,
/*29942*/       OPC_MoveParent,
/*29943*/       OPC_MoveParent,
/*29944*/       OPC_RecordChild2, // #2 = $src1
/*29945*/       OPC_Scope, 19, /*->29966*/ // 2 children in Scope
/*29947*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*29949*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*29952*/         OPC_EmitMergeInputChains1_0,
/*29953*/         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)
/*29966*/       /*Scope*/ 19, /*->29986*/
/*29967*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*29969*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*29972*/         OPC_EmitMergeInputChains1_0,
/*29973*/         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)
/*29986*/       0, /*End of Scope*/
/*29987*/     /*Scope*/ 28, /*->30016*/
/*29988*/       OPC_RecordChild1, // #0 = $src1
/*29989*/       OPC_RecordChild2, // #1 = $src2
/*29990*/       OPC_Scope, 11, /*->30003*/ // 2 children in Scope
/*29992*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*29994*/         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)
/*30003*/       /*Scope*/ 11, /*->30015*/
/*30004*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*30006*/         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)
/*30015*/       0, /*End of Scope*/
/*30016*/     0, /*End of Scope*/
/*30017*/   /*Scope*/ 43|128,1/*171*/, /*->30190*/
/*30019*/     OPC_CheckInteger, 78|128,2/*334*/, 
/*30022*/     OPC_MoveParent,
/*30023*/     OPC_Scope, 67, /*->30092*/ // 3 children in Scope
/*30025*/       OPC_RecordChild1, // #0 = $src1
/*30026*/       OPC_MoveChild, 2,
/*30028*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*30031*/       OPC_MoveChild, 0,
/*30033*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*30036*/       OPC_RecordMemRef,
/*30037*/       OPC_RecordNode, // #1 = 'ld' chained node
/*30038*/       OPC_CheckFoldableChainNode,
/*30039*/       OPC_RecordChild1, // #2 = $src2
/*30040*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*30042*/       OPC_CheckPredicate, 3, // Predicate_load
/*30044*/       OPC_CheckPredicate, 23, // Predicate_memop
/*30046*/       OPC_CheckType, MVT::v2i64,
/*30048*/       OPC_MoveParent,
/*30049*/       OPC_MoveParent,
/*30050*/       OPC_Scope, 19, /*->30071*/ // 2 children in Scope
/*30052*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*30054*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*30057*/         OPC_EmitMergeInputChains1_1,
/*30058*/         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)
/*30071*/       /*Scope*/ 19, /*->30091*/
/*30072*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*30074*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*30077*/         OPC_EmitMergeInputChains1_1,
/*30078*/         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)
/*30091*/       0, /*End of Scope*/
/*30092*/     /*Scope*/ 67, /*->30160*/
/*30093*/       OPC_MoveChild, 1,
/*30095*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*30098*/       OPC_MoveChild, 0,
/*30100*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*30103*/       OPC_RecordMemRef,
/*30104*/       OPC_RecordNode, // #0 = 'ld' chained node
/*30105*/       OPC_CheckFoldableChainNode,
/*30106*/       OPC_RecordChild1, // #1 = $src2
/*30107*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*30109*/       OPC_CheckPredicate, 3, // Predicate_load
/*30111*/       OPC_CheckPredicate, 23, // Predicate_memop
/*30113*/       OPC_CheckType, MVT::v2i64,
/*30115*/       OPC_MoveParent,
/*30116*/       OPC_MoveParent,
/*30117*/       OPC_RecordChild2, // #2 = $src1
/*30118*/       OPC_Scope, 19, /*->30139*/ // 2 children in Scope
/*30120*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*30122*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*30125*/         OPC_EmitMergeInputChains1_0,
/*30126*/         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)
/*30139*/       /*Scope*/ 19, /*->30159*/
/*30140*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*30142*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*30145*/         OPC_EmitMergeInputChains1_0,
/*30146*/         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)
/*30159*/       0, /*End of Scope*/
/*30160*/     /*Scope*/ 28, /*->30189*/
/*30161*/       OPC_RecordChild1, // #0 = $src1
/*30162*/       OPC_RecordChild2, // #1 = $src2
/*30163*/       OPC_Scope, 11, /*->30176*/ // 2 children in Scope
/*30165*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*30167*/         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)
/*30176*/       /*Scope*/ 11, /*->30188*/
/*30177*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*30179*/         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)
/*30188*/       0, /*End of Scope*/
/*30189*/     0, /*End of Scope*/
/*30190*/   /*Scope*/ 43|128,1/*171*/, /*->30363*/
/*30192*/     OPC_CheckInteger, 70|128,2/*326*/, 
/*30195*/     OPC_MoveParent,
/*30196*/     OPC_Scope, 67, /*->30265*/ // 3 children in Scope
/*30198*/       OPC_RecordChild1, // #0 = $src1
/*30199*/       OPC_MoveChild, 2,
/*30201*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*30204*/       OPC_MoveChild, 0,
/*30206*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*30209*/       OPC_RecordMemRef,
/*30210*/       OPC_RecordNode, // #1 = 'ld' chained node
/*30211*/       OPC_CheckFoldableChainNode,
/*30212*/       OPC_RecordChild1, // #2 = $src2
/*30213*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*30215*/       OPC_CheckPredicate, 3, // Predicate_load
/*30217*/       OPC_CheckPredicate, 23, // Predicate_memop
/*30219*/       OPC_CheckType, MVT::v2i64,
/*30221*/       OPC_MoveParent,
/*30222*/       OPC_MoveParent,
/*30223*/       OPC_Scope, 19, /*->30244*/ // 2 children in Scope
/*30225*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*30227*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*30230*/         OPC_EmitMergeInputChains1_1,
/*30231*/         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)
/*30244*/       /*Scope*/ 19, /*->30264*/
/*30245*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*30247*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*30250*/         OPC_EmitMergeInputChains1_1,
/*30251*/         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)
/*30264*/       0, /*End of Scope*/
/*30265*/     /*Scope*/ 67, /*->30333*/
/*30266*/       OPC_MoveChild, 1,
/*30268*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*30271*/       OPC_MoveChild, 0,
/*30273*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*30276*/       OPC_RecordMemRef,
/*30277*/       OPC_RecordNode, // #0 = 'ld' chained node
/*30278*/       OPC_CheckFoldableChainNode,
/*30279*/       OPC_RecordChild1, // #1 = $src2
/*30280*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*30282*/       OPC_CheckPredicate, 3, // Predicate_load
/*30284*/       OPC_CheckPredicate, 23, // Predicate_memop
/*30286*/       OPC_CheckType, MVT::v2i64,
/*30288*/       OPC_MoveParent,
/*30289*/       OPC_MoveParent,
/*30290*/       OPC_RecordChild2, // #2 = $src1
/*30291*/       OPC_Scope, 19, /*->30312*/ // 2 children in Scope
/*30293*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*30295*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*30298*/         OPC_EmitMergeInputChains1_0,
/*30299*/         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)
/*30312*/       /*Scope*/ 19, /*->30332*/
/*30313*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*30315*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*30318*/         OPC_EmitMergeInputChains1_0,
/*30319*/         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)
/*30332*/       0, /*End of Scope*/
/*30333*/     /*Scope*/ 28, /*->30362*/
/*30334*/       OPC_RecordChild1, // #0 = $src1
/*30335*/       OPC_RecordChild2, // #1 = $src2
/*30336*/       OPC_Scope, 11, /*->30349*/ // 2 children in Scope
/*30338*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*30340*/         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)
/*30349*/       /*Scope*/ 11, /*->30361*/
/*30350*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*30352*/         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)
/*30361*/       0, /*End of Scope*/
/*30362*/     0, /*End of Scope*/
/*30363*/   /*Scope*/ 43|128,1/*171*/, /*->30536*/
/*30365*/     OPC_CheckInteger, 62|128,2/*318*/, 
/*30368*/     OPC_MoveParent,
/*30369*/     OPC_Scope, 67, /*->30438*/ // 3 children in Scope
/*30371*/       OPC_RecordChild1, // #0 = $src1
/*30372*/       OPC_MoveChild, 2,
/*30374*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*30377*/       OPC_MoveChild, 0,
/*30379*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*30382*/       OPC_RecordMemRef,
/*30383*/       OPC_RecordNode, // #1 = 'ld' chained node
/*30384*/       OPC_CheckFoldableChainNode,
/*30385*/       OPC_RecordChild1, // #2 = $src2
/*30386*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*30388*/       OPC_CheckPredicate, 3, // Predicate_load
/*30390*/       OPC_CheckPredicate, 23, // Predicate_memop
/*30392*/       OPC_CheckType, MVT::v2i64,
/*30394*/       OPC_MoveParent,
/*30395*/       OPC_MoveParent,
/*30396*/       OPC_Scope, 19, /*->30417*/ // 2 children in Scope
/*30398*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*30400*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*30403*/         OPC_EmitMergeInputChains1_1,
/*30404*/         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)
/*30417*/       /*Scope*/ 19, /*->30437*/
/*30418*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*30420*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*30423*/         OPC_EmitMergeInputChains1_1,
/*30424*/         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)
/*30437*/       0, /*End of Scope*/
/*30438*/     /*Scope*/ 67, /*->30506*/
/*30439*/       OPC_MoveChild, 1,
/*30441*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*30444*/       OPC_MoveChild, 0,
/*30446*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*30449*/       OPC_RecordMemRef,
/*30450*/       OPC_RecordNode, // #0 = 'ld' chained node
/*30451*/       OPC_CheckFoldableChainNode,
/*30452*/       OPC_RecordChild1, // #1 = $src2
/*30453*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*30455*/       OPC_CheckPredicate, 3, // Predicate_load
/*30457*/       OPC_CheckPredicate, 23, // Predicate_memop
/*30459*/       OPC_CheckType, MVT::v2i64,
/*30461*/       OPC_MoveParent,
/*30462*/       OPC_MoveParent,
/*30463*/       OPC_RecordChild2, // #2 = $src1
/*30464*/       OPC_Scope, 19, /*->30485*/ // 2 children in Scope
/*30466*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*30468*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*30471*/         OPC_EmitMergeInputChains1_0,
/*30472*/         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)
/*30485*/       /*Scope*/ 19, /*->30505*/
/*30486*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*30488*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*30491*/         OPC_EmitMergeInputChains1_0,
/*30492*/         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)
/*30505*/       0, /*End of Scope*/
/*30506*/     /*Scope*/ 28, /*->30535*/
/*30507*/       OPC_RecordChild1, // #0 = $src1
/*30508*/       OPC_RecordChild2, // #1 = $src2
/*30509*/       OPC_Scope, 11, /*->30522*/ // 2 children in Scope
/*30511*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*30513*/         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)
/*30522*/       /*Scope*/ 11, /*->30534*/
/*30523*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*30525*/         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)
/*30534*/       0, /*End of Scope*/
/*30535*/     0, /*End of Scope*/
/*30536*/   /*Scope*/ 43|128,1/*171*/, /*->30709*/
/*30538*/     OPC_CheckInteger, 63|128,2/*319*/, 
/*30541*/     OPC_MoveParent,
/*30542*/     OPC_Scope, 67, /*->30611*/ // 3 children in Scope
/*30544*/       OPC_RecordChild1, // #0 = $src1
/*30545*/       OPC_MoveChild, 2,
/*30547*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*30550*/       OPC_MoveChild, 0,
/*30552*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*30555*/       OPC_RecordMemRef,
/*30556*/       OPC_RecordNode, // #1 = 'ld' chained node
/*30557*/       OPC_CheckFoldableChainNode,
/*30558*/       OPC_RecordChild1, // #2 = $src2
/*30559*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*30561*/       OPC_CheckPredicate, 3, // Predicate_load
/*30563*/       OPC_CheckPredicate, 23, // Predicate_memop
/*30565*/       OPC_CheckType, MVT::v2i64,
/*30567*/       OPC_MoveParent,
/*30568*/       OPC_MoveParent,
/*30569*/       OPC_Scope, 19, /*->30590*/ // 2 children in Scope
/*30571*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*30573*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*30576*/         OPC_EmitMergeInputChains1_1,
/*30577*/         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)
/*30590*/       /*Scope*/ 19, /*->30610*/
/*30591*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*30593*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*30596*/         OPC_EmitMergeInputChains1_1,
/*30597*/         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)
/*30610*/       0, /*End of Scope*/
/*30611*/     /*Scope*/ 67, /*->30679*/
/*30612*/       OPC_MoveChild, 1,
/*30614*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*30617*/       OPC_MoveChild, 0,
/*30619*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*30622*/       OPC_RecordMemRef,
/*30623*/       OPC_RecordNode, // #0 = 'ld' chained node
/*30624*/       OPC_CheckFoldableChainNode,
/*30625*/       OPC_RecordChild1, // #1 = $src2
/*30626*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*30628*/       OPC_CheckPredicate, 3, // Predicate_load
/*30630*/       OPC_CheckPredicate, 23, // Predicate_memop
/*30632*/       OPC_CheckType, MVT::v2i64,
/*30634*/       OPC_MoveParent,
/*30635*/       OPC_MoveParent,
/*30636*/       OPC_RecordChild2, // #2 = $src1
/*30637*/       OPC_Scope, 19, /*->30658*/ // 2 children in Scope
/*30639*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*30641*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*30644*/         OPC_EmitMergeInputChains1_0,
/*30645*/         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)
/*30658*/       /*Scope*/ 19, /*->30678*/
/*30659*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*30661*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*30664*/         OPC_EmitMergeInputChains1_0,
/*30665*/         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)
/*30678*/       0, /*End of Scope*/
/*30679*/     /*Scope*/ 28, /*->30708*/
/*30680*/       OPC_RecordChild1, // #0 = $src1
/*30681*/       OPC_RecordChild2, // #1 = $src2
/*30682*/       OPC_Scope, 11, /*->30695*/ // 2 children in Scope
/*30684*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*30686*/         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)
/*30695*/       /*Scope*/ 11, /*->30707*/
/*30696*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*30698*/         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)
/*30707*/       0, /*End of Scope*/
/*30708*/     0, /*End of Scope*/
/*30709*/   /*Scope*/ 43|128,1/*171*/, /*->30882*/
/*30711*/     OPC_CheckInteger, 74|128,2/*330*/, 
/*30714*/     OPC_MoveParent,
/*30715*/     OPC_Scope, 67, /*->30784*/ // 3 children in Scope
/*30717*/       OPC_RecordChild1, // #0 = $src1
/*30718*/       OPC_MoveChild, 2,
/*30720*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*30723*/       OPC_MoveChild, 0,
/*30725*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*30728*/       OPC_RecordMemRef,
/*30729*/       OPC_RecordNode, // #1 = 'ld' chained node
/*30730*/       OPC_CheckFoldableChainNode,
/*30731*/       OPC_RecordChild1, // #2 = $src2
/*30732*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*30734*/       OPC_CheckPredicate, 3, // Predicate_load
/*30736*/       OPC_CheckPredicate, 23, // Predicate_memop
/*30738*/       OPC_CheckType, MVT::v2i64,
/*30740*/       OPC_MoveParent,
/*30741*/       OPC_MoveParent,
/*30742*/       OPC_Scope, 19, /*->30763*/ // 2 children in Scope
/*30744*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*30746*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*30749*/         OPC_EmitMergeInputChains1_1,
/*30750*/         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)
/*30763*/       /*Scope*/ 19, /*->30783*/
/*30764*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*30766*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*30769*/         OPC_EmitMergeInputChains1_1,
/*30770*/         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)
/*30783*/       0, /*End of Scope*/
/*30784*/     /*Scope*/ 67, /*->30852*/
/*30785*/       OPC_MoveChild, 1,
/*30787*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*30790*/       OPC_MoveChild, 0,
/*30792*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*30795*/       OPC_RecordMemRef,
/*30796*/       OPC_RecordNode, // #0 = 'ld' chained node
/*30797*/       OPC_CheckFoldableChainNode,
/*30798*/       OPC_RecordChild1, // #1 = $src2
/*30799*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*30801*/       OPC_CheckPredicate, 3, // Predicate_load
/*30803*/       OPC_CheckPredicate, 23, // Predicate_memop
/*30805*/       OPC_CheckType, MVT::v2i64,
/*30807*/       OPC_MoveParent,
/*30808*/       OPC_MoveParent,
/*30809*/       OPC_RecordChild2, // #2 = $src1
/*30810*/       OPC_Scope, 19, /*->30831*/ // 2 children in Scope
/*30812*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*30814*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*30817*/         OPC_EmitMergeInputChains1_0,
/*30818*/         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)
/*30831*/       /*Scope*/ 19, /*->30851*/
/*30832*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*30834*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*30837*/         OPC_EmitMergeInputChains1_0,
/*30838*/         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)
/*30851*/       0, /*End of Scope*/
/*30852*/     /*Scope*/ 28, /*->30881*/
/*30853*/       OPC_RecordChild1, // #0 = $src1
/*30854*/       OPC_RecordChild2, // #1 = $src2
/*30855*/       OPC_Scope, 11, /*->30868*/ // 2 children in Scope
/*30857*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*30859*/         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)
/*30868*/       /*Scope*/ 11, /*->30880*/
/*30869*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*30871*/         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)
/*30880*/       0, /*End of Scope*/
/*30881*/     0, /*End of Scope*/
/*30882*/   /*Scope*/ 43|128,1/*171*/, /*->31055*/
/*30884*/     OPC_CheckInteger, 73|128,2/*329*/, 
/*30887*/     OPC_MoveParent,
/*30888*/     OPC_Scope, 67, /*->30957*/ // 3 children in Scope
/*30890*/       OPC_RecordChild1, // #0 = $src1
/*30891*/       OPC_MoveChild, 2,
/*30893*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*30896*/       OPC_MoveChild, 0,
/*30898*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*30901*/       OPC_RecordMemRef,
/*30902*/       OPC_RecordNode, // #1 = 'ld' chained node
/*30903*/       OPC_CheckFoldableChainNode,
/*30904*/       OPC_RecordChild1, // #2 = $src2
/*30905*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*30907*/       OPC_CheckPredicate, 3, // Predicate_load
/*30909*/       OPC_CheckPredicate, 23, // Predicate_memop
/*30911*/       OPC_CheckType, MVT::v2i64,
/*30913*/       OPC_MoveParent,
/*30914*/       OPC_MoveParent,
/*30915*/       OPC_Scope, 19, /*->30936*/ // 2 children in Scope
/*30917*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*30919*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*30922*/         OPC_EmitMergeInputChains1_1,
/*30923*/         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)
/*30936*/       /*Scope*/ 19, /*->30956*/
/*30937*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*30939*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*30942*/         OPC_EmitMergeInputChains1_1,
/*30943*/         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)
/*30956*/       0, /*End of Scope*/
/*30957*/     /*Scope*/ 67, /*->31025*/
/*30958*/       OPC_MoveChild, 1,
/*30960*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*30963*/       OPC_MoveChild, 0,
/*30965*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*30968*/       OPC_RecordMemRef,
/*30969*/       OPC_RecordNode, // #0 = 'ld' chained node
/*30970*/       OPC_CheckFoldableChainNode,
/*30971*/       OPC_RecordChild1, // #1 = $src2
/*30972*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*30974*/       OPC_CheckPredicate, 3, // Predicate_load
/*30976*/       OPC_CheckPredicate, 23, // Predicate_memop
/*30978*/       OPC_CheckType, MVT::v2i64,
/*30980*/       OPC_MoveParent,
/*30981*/       OPC_MoveParent,
/*30982*/       OPC_RecordChild2, // #2 = $src1
/*30983*/       OPC_Scope, 19, /*->31004*/ // 2 children in Scope
/*30985*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*30987*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*30990*/         OPC_EmitMergeInputChains1_0,
/*30991*/         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)
/*31004*/       /*Scope*/ 19, /*->31024*/
/*31005*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*31007*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*31010*/         OPC_EmitMergeInputChains1_0,
/*31011*/         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)
/*31024*/       0, /*End of Scope*/
/*31025*/     /*Scope*/ 28, /*->31054*/
/*31026*/       OPC_RecordChild1, // #0 = $src1
/*31027*/       OPC_RecordChild2, // #1 = $src2
/*31028*/       OPC_Scope, 11, /*->31041*/ // 2 children in Scope
/*31030*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*31032*/         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)
/*31041*/       /*Scope*/ 11, /*->31053*/
/*31042*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*31044*/         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)
/*31053*/       0, /*End of Scope*/
/*31054*/     0, /*End of Scope*/
/*31055*/   /*Scope*/ 43|128,1/*171*/, /*->31228*/
/*31057*/     OPC_CheckInteger, 72|128,2/*328*/, 
/*31060*/     OPC_MoveParent,
/*31061*/     OPC_Scope, 67, /*->31130*/ // 3 children in Scope
/*31063*/       OPC_RecordChild1, // #0 = $src1
/*31064*/       OPC_MoveChild, 2,
/*31066*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*31069*/       OPC_MoveChild, 0,
/*31071*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*31074*/       OPC_RecordMemRef,
/*31075*/       OPC_RecordNode, // #1 = 'ld' chained node
/*31076*/       OPC_CheckFoldableChainNode,
/*31077*/       OPC_RecordChild1, // #2 = $src2
/*31078*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*31080*/       OPC_CheckPredicate, 3, // Predicate_load
/*31082*/       OPC_CheckPredicate, 23, // Predicate_memop
/*31084*/       OPC_CheckType, MVT::v2i64,
/*31086*/       OPC_MoveParent,
/*31087*/       OPC_MoveParent,
/*31088*/       OPC_Scope, 19, /*->31109*/ // 2 children in Scope
/*31090*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*31092*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*31095*/         OPC_EmitMergeInputChains1_1,
/*31096*/         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)
/*31109*/       /*Scope*/ 19, /*->31129*/
/*31110*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*31112*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*31115*/         OPC_EmitMergeInputChains1_1,
/*31116*/         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)
/*31129*/       0, /*End of Scope*/
/*31130*/     /*Scope*/ 67, /*->31198*/
/*31131*/       OPC_MoveChild, 1,
/*31133*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*31136*/       OPC_MoveChild, 0,
/*31138*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*31141*/       OPC_RecordMemRef,
/*31142*/       OPC_RecordNode, // #0 = 'ld' chained node
/*31143*/       OPC_CheckFoldableChainNode,
/*31144*/       OPC_RecordChild1, // #1 = $src2
/*31145*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*31147*/       OPC_CheckPredicate, 3, // Predicate_load
/*31149*/       OPC_CheckPredicate, 23, // Predicate_memop
/*31151*/       OPC_CheckType, MVT::v2i64,
/*31153*/       OPC_MoveParent,
/*31154*/       OPC_MoveParent,
/*31155*/       OPC_RecordChild2, // #2 = $src1
/*31156*/       OPC_Scope, 19, /*->31177*/ // 2 children in Scope
/*31158*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*31160*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*31163*/         OPC_EmitMergeInputChains1_0,
/*31164*/         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)
/*31177*/       /*Scope*/ 19, /*->31197*/
/*31178*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*31180*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*31183*/         OPC_EmitMergeInputChains1_0,
/*31184*/         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)
/*31197*/       0, /*End of Scope*/
/*31198*/     /*Scope*/ 28, /*->31227*/
/*31199*/       OPC_RecordChild1, // #0 = $src1
/*31200*/       OPC_RecordChild2, // #1 = $src2
/*31201*/       OPC_Scope, 11, /*->31214*/ // 2 children in Scope
/*31203*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*31205*/         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)
/*31214*/       /*Scope*/ 11, /*->31226*/
/*31215*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*31217*/         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)
/*31226*/       0, /*End of Scope*/
/*31227*/     0, /*End of Scope*/
/*31228*/   /*Scope*/ 43|128,1/*171*/, /*->31401*/
/*31230*/     OPC_CheckInteger, 71|128,2/*327*/, 
/*31233*/     OPC_MoveParent,
/*31234*/     OPC_Scope, 67, /*->31303*/ // 3 children in Scope
/*31236*/       OPC_RecordChild1, // #0 = $src1
/*31237*/       OPC_MoveChild, 2,
/*31239*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*31242*/       OPC_MoveChild, 0,
/*31244*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*31247*/       OPC_RecordMemRef,
/*31248*/       OPC_RecordNode, // #1 = 'ld' chained node
/*31249*/       OPC_CheckFoldableChainNode,
/*31250*/       OPC_RecordChild1, // #2 = $src2
/*31251*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*31253*/       OPC_CheckPredicate, 3, // Predicate_load
/*31255*/       OPC_CheckPredicate, 23, // Predicate_memop
/*31257*/       OPC_CheckType, MVT::v2i64,
/*31259*/       OPC_MoveParent,
/*31260*/       OPC_MoveParent,
/*31261*/       OPC_Scope, 19, /*->31282*/ // 2 children in Scope
/*31263*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*31265*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*31268*/         OPC_EmitMergeInputChains1_1,
/*31269*/         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)
/*31282*/       /*Scope*/ 19, /*->31302*/
/*31283*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*31285*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*31288*/         OPC_EmitMergeInputChains1_1,
/*31289*/         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)
/*31302*/       0, /*End of Scope*/
/*31303*/     /*Scope*/ 67, /*->31371*/
/*31304*/       OPC_MoveChild, 1,
/*31306*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*31309*/       OPC_MoveChild, 0,
/*31311*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*31314*/       OPC_RecordMemRef,
/*31315*/       OPC_RecordNode, // #0 = 'ld' chained node
/*31316*/       OPC_CheckFoldableChainNode,
/*31317*/       OPC_RecordChild1, // #1 = $src2
/*31318*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*31320*/       OPC_CheckPredicate, 3, // Predicate_load
/*31322*/       OPC_CheckPredicate, 23, // Predicate_memop
/*31324*/       OPC_CheckType, MVT::v2i64,
/*31326*/       OPC_MoveParent,
/*31327*/       OPC_MoveParent,
/*31328*/       OPC_RecordChild2, // #2 = $src1
/*31329*/       OPC_Scope, 19, /*->31350*/ // 2 children in Scope
/*31331*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*31333*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*31336*/         OPC_EmitMergeInputChains1_0,
/*31337*/         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)
/*31350*/       /*Scope*/ 19, /*->31370*/
/*31351*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*31353*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*31356*/         OPC_EmitMergeInputChains1_0,
/*31357*/         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)
/*31370*/       0, /*End of Scope*/
/*31371*/     /*Scope*/ 28, /*->31400*/
/*31372*/       OPC_RecordChild1, // #0 = $src1
/*31373*/       OPC_RecordChild2, // #1 = $src2
/*31374*/       OPC_Scope, 11, /*->31387*/ // 2 children in Scope
/*31376*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*31378*/         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)
/*31387*/       /*Scope*/ 11, /*->31399*/
/*31388*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*31390*/         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)
/*31399*/       0, /*End of Scope*/
/*31400*/     0, /*End of Scope*/
/*31401*/   /*Scope*/ 43|128,1/*171*/, /*->31574*/
/*31403*/     OPC_CheckInteger, 79|128,2/*335*/, 
/*31406*/     OPC_MoveParent,
/*31407*/     OPC_Scope, 67, /*->31476*/ // 3 children in Scope
/*31409*/       OPC_RecordChild1, // #0 = $src1
/*31410*/       OPC_MoveChild, 2,
/*31412*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*31415*/       OPC_MoveChild, 0,
/*31417*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*31420*/       OPC_RecordMemRef,
/*31421*/       OPC_RecordNode, // #1 = 'ld' chained node
/*31422*/       OPC_CheckFoldableChainNode,
/*31423*/       OPC_RecordChild1, // #2 = $src2
/*31424*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*31426*/       OPC_CheckPredicate, 3, // Predicate_load
/*31428*/       OPC_CheckPredicate, 23, // Predicate_memop
/*31430*/       OPC_CheckType, MVT::v2i64,
/*31432*/       OPC_MoveParent,
/*31433*/       OPC_MoveParent,
/*31434*/       OPC_Scope, 19, /*->31455*/ // 2 children in Scope
/*31436*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*31438*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*31441*/         OPC_EmitMergeInputChains1_1,
/*31442*/         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)
/*31455*/       /*Scope*/ 19, /*->31475*/
/*31456*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*31458*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*31461*/         OPC_EmitMergeInputChains1_1,
/*31462*/         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)
/*31475*/       0, /*End of Scope*/
/*31476*/     /*Scope*/ 67, /*->31544*/
/*31477*/       OPC_MoveChild, 1,
/*31479*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*31482*/       OPC_MoveChild, 0,
/*31484*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*31487*/       OPC_RecordMemRef,
/*31488*/       OPC_RecordNode, // #0 = 'ld' chained node
/*31489*/       OPC_CheckFoldableChainNode,
/*31490*/       OPC_RecordChild1, // #1 = $src2
/*31491*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*31493*/       OPC_CheckPredicate, 3, // Predicate_load
/*31495*/       OPC_CheckPredicate, 23, // Predicate_memop
/*31497*/       OPC_CheckType, MVT::v2i64,
/*31499*/       OPC_MoveParent,
/*31500*/       OPC_MoveParent,
/*31501*/       OPC_RecordChild2, // #2 = $src1
/*31502*/       OPC_Scope, 19, /*->31523*/ // 2 children in Scope
/*31504*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*31506*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*31509*/         OPC_EmitMergeInputChains1_0,
/*31510*/         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)
/*31523*/       /*Scope*/ 19, /*->31543*/
/*31524*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*31526*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*31529*/         OPC_EmitMergeInputChains1_0,
/*31530*/         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)
/*31543*/       0, /*End of Scope*/
/*31544*/     /*Scope*/ 28, /*->31573*/
/*31545*/       OPC_RecordChild1, // #0 = $src1
/*31546*/       OPC_RecordChild2, // #1 = $src2
/*31547*/       OPC_Scope, 11, /*->31560*/ // 2 children in Scope
/*31549*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*31551*/         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)
/*31560*/       /*Scope*/ 11, /*->31572*/
/*31561*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*31563*/         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)
/*31572*/       0, /*End of Scope*/
/*31573*/     0, /*End of Scope*/
/*31574*/   /*Scope*/ 102, /*->31677*/
/*31575*/     OPC_CheckInteger, 84|128,2/*340*/, 
/*31578*/     OPC_MoveParent,
/*31579*/     OPC_RecordChild1, // #0 = $src1
/*31580*/     OPC_Scope, 66, /*->31648*/ // 2 children in Scope
/*31582*/       OPC_MoveChild, 2,
/*31584*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*31587*/       OPC_MoveChild, 0,
/*31589*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*31592*/       OPC_RecordMemRef,
/*31593*/       OPC_RecordNode, // #1 = 'ld' chained node
/*31594*/       OPC_CheckFoldableChainNode,
/*31595*/       OPC_RecordChild1, // #2 = $src2
/*31596*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*31598*/       OPC_CheckPredicate, 3, // Predicate_load
/*31600*/       OPC_CheckPredicate, 23, // Predicate_memop
/*31602*/       OPC_CheckType, MVT::v2i64,
/*31604*/       OPC_MoveParent,
/*31605*/       OPC_MoveParent,
/*31606*/       OPC_Scope, 19, /*->31627*/ // 2 children in Scope
/*31608*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*31610*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*31613*/         OPC_EmitMergeInputChains1_1,
/*31614*/         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)
/*31627*/       /*Scope*/ 19, /*->31647*/
/*31628*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*31630*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*31633*/         OPC_EmitMergeInputChains1_1,
/*31634*/         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)
/*31647*/       0, /*End of Scope*/
/*31648*/     /*Scope*/ 27, /*->31676*/
/*31649*/       OPC_RecordChild2, // #1 = $src2
/*31650*/       OPC_Scope, 11, /*->31663*/ // 2 children in Scope
/*31652*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*31654*/         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)
/*31663*/       /*Scope*/ 11, /*->31675*/
/*31664*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*31666*/         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)
/*31675*/       0, /*End of Scope*/
/*31676*/     0, /*End of Scope*/
/*31677*/   /*Scope*/ 102, /*->31780*/
/*31678*/     OPC_CheckInteger, 80|128,2/*336*/, 
/*31681*/     OPC_MoveParent,
/*31682*/     OPC_RecordChild1, // #0 = $src1
/*31683*/     OPC_Scope, 66, /*->31751*/ // 2 children in Scope
/*31685*/       OPC_MoveChild, 2,
/*31687*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*31690*/       OPC_MoveChild, 0,
/*31692*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*31695*/       OPC_RecordMemRef,
/*31696*/       OPC_RecordNode, // #1 = 'ld' chained node
/*31697*/       OPC_CheckFoldableChainNode,
/*31698*/       OPC_RecordChild1, // #2 = $src2
/*31699*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*31701*/       OPC_CheckPredicate, 3, // Predicate_load
/*31703*/       OPC_CheckPredicate, 23, // Predicate_memop
/*31705*/       OPC_CheckType, MVT::v2i64,
/*31707*/       OPC_MoveParent,
/*31708*/       OPC_MoveParent,
/*31709*/       OPC_Scope, 19, /*->31730*/ // 2 children in Scope
/*31711*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*31713*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*31716*/         OPC_EmitMergeInputChains1_1,
/*31717*/         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)
/*31730*/       /*Scope*/ 19, /*->31750*/
/*31731*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*31733*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*31736*/         OPC_EmitMergeInputChains1_1,
/*31737*/         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)
/*31750*/       0, /*End of Scope*/
/*31751*/     /*Scope*/ 27, /*->31779*/
/*31752*/       OPC_RecordChild2, // #1 = $src2
/*31753*/       OPC_Scope, 11, /*->31766*/ // 2 children in Scope
/*31755*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*31757*/         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)
/*31766*/       /*Scope*/ 11, /*->31778*/
/*31767*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*31769*/         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)
/*31778*/       0, /*End of Scope*/
/*31779*/     0, /*End of Scope*/
/*31780*/   /*Scope*/ 102, /*->31883*/
/*31781*/     OPC_CheckInteger, 96|128,2/*352*/, 
/*31784*/     OPC_MoveParent,
/*31785*/     OPC_RecordChild1, // #0 = $src1
/*31786*/     OPC_Scope, 66, /*->31854*/ // 2 children in Scope
/*31788*/       OPC_MoveChild, 2,
/*31790*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*31793*/       OPC_MoveChild, 0,
/*31795*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*31798*/       OPC_RecordMemRef,
/*31799*/       OPC_RecordNode, // #1 = 'ld' chained node
/*31800*/       OPC_CheckFoldableChainNode,
/*31801*/       OPC_RecordChild1, // #2 = $src2
/*31802*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*31804*/       OPC_CheckPredicate, 3, // Predicate_load
/*31806*/       OPC_CheckPredicate, 23, // Predicate_memop
/*31808*/       OPC_CheckType, MVT::v2i64,
/*31810*/       OPC_MoveParent,
/*31811*/       OPC_MoveParent,
/*31812*/       OPC_Scope, 19, /*->31833*/ // 2 children in Scope
/*31814*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*31816*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*31819*/         OPC_EmitMergeInputChains1_1,
/*31820*/         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)
/*31833*/       /*Scope*/ 19, /*->31853*/
/*31834*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*31836*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*31839*/         OPC_EmitMergeInputChains1_1,
/*31840*/         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)
/*31853*/       0, /*End of Scope*/
/*31854*/     /*Scope*/ 27, /*->31882*/
/*31855*/       OPC_RecordChild2, // #1 = $src2
/*31856*/       OPC_Scope, 11, /*->31869*/ // 2 children in Scope
/*31858*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*31860*/         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)
/*31869*/       /*Scope*/ 11, /*->31881*/
/*31870*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*31872*/         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)
/*31881*/       0, /*End of Scope*/
/*31882*/     0, /*End of Scope*/
/*31883*/   /*Scope*/ 102, /*->31986*/
/*31884*/     OPC_CheckInteger, 92|128,2/*348*/, 
/*31887*/     OPC_MoveParent,
/*31888*/     OPC_RecordChild1, // #0 = $src1
/*31889*/     OPC_Scope, 66, /*->31957*/ // 2 children in Scope
/*31891*/       OPC_MoveChild, 2,
/*31893*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*31896*/       OPC_MoveChild, 0,
/*31898*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*31901*/       OPC_RecordMemRef,
/*31902*/       OPC_RecordNode, // #1 = 'ld' chained node
/*31903*/       OPC_CheckFoldableChainNode,
/*31904*/       OPC_RecordChild1, // #2 = $src2
/*31905*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*31907*/       OPC_CheckPredicate, 3, // Predicate_load
/*31909*/       OPC_CheckPredicate, 23, // Predicate_memop
/*31911*/       OPC_CheckType, MVT::v2i64,
/*31913*/       OPC_MoveParent,
/*31914*/       OPC_MoveParent,
/*31915*/       OPC_Scope, 19, /*->31936*/ // 2 children in Scope
/*31917*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*31919*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*31922*/         OPC_EmitMergeInputChains1_1,
/*31923*/         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)
/*31936*/       /*Scope*/ 19, /*->31956*/
/*31937*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*31939*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*31942*/         OPC_EmitMergeInputChains1_1,
/*31943*/         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)
/*31956*/       0, /*End of Scope*/
/*31957*/     /*Scope*/ 27, /*->31985*/
/*31958*/       OPC_RecordChild2, // #1 = $src2
/*31959*/       OPC_Scope, 11, /*->31972*/ // 2 children in Scope
/*31961*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*31963*/         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)
/*31972*/       /*Scope*/ 11, /*->31984*/
/*31973*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*31975*/         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)
/*31984*/       0, /*End of Scope*/
/*31985*/     0, /*End of Scope*/
/*31986*/   /*Scope*/ 102, /*->32089*/
/*31987*/     OPC_CheckInteger, 89|128,2/*345*/, 
/*31990*/     OPC_MoveParent,
/*31991*/     OPC_RecordChild1, // #0 = $src1
/*31992*/     OPC_Scope, 66, /*->32060*/ // 2 children in Scope
/*31994*/       OPC_MoveChild, 2,
/*31996*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*31999*/       OPC_MoveChild, 0,
/*32001*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*32004*/       OPC_RecordMemRef,
/*32005*/       OPC_RecordNode, // #1 = 'ld' chained node
/*32006*/       OPC_CheckFoldableChainNode,
/*32007*/       OPC_RecordChild1, // #2 = $src2
/*32008*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*32010*/       OPC_CheckPredicate, 3, // Predicate_load
/*32012*/       OPC_CheckPredicate, 23, // Predicate_memop
/*32014*/       OPC_CheckType, MVT::v2i64,
/*32016*/       OPC_MoveParent,
/*32017*/       OPC_MoveParent,
/*32018*/       OPC_Scope, 19, /*->32039*/ // 2 children in Scope
/*32020*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*32022*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*32025*/         OPC_EmitMergeInputChains1_1,
/*32026*/         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)
/*32039*/       /*Scope*/ 19, /*->32059*/
/*32040*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*32042*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*32045*/         OPC_EmitMergeInputChains1_1,
/*32046*/         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)
/*32059*/       0, /*End of Scope*/
/*32060*/     /*Scope*/ 27, /*->32088*/
/*32061*/       OPC_RecordChild2, // #1 = $src2
/*32062*/       OPC_Scope, 11, /*->32075*/ // 2 children in Scope
/*32064*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*32066*/         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)
/*32075*/       /*Scope*/ 11, /*->32087*/
/*32076*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*32078*/         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)
/*32087*/       0, /*End of Scope*/
/*32088*/     0, /*End of Scope*/
/*32089*/   /*Scope*/ 102, /*->32192*/
/*32090*/     OPC_CheckInteger, 88|128,2/*344*/, 
/*32093*/     OPC_MoveParent,
/*32094*/     OPC_RecordChild1, // #0 = $src1
/*32095*/     OPC_Scope, 66, /*->32163*/ // 2 children in Scope
/*32097*/       OPC_MoveChild, 2,
/*32099*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*32102*/       OPC_MoveChild, 0,
/*32104*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*32107*/       OPC_RecordMemRef,
/*32108*/       OPC_RecordNode, // #1 = 'ld' chained node
/*32109*/       OPC_CheckFoldableChainNode,
/*32110*/       OPC_RecordChild1, // #2 = $src2
/*32111*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*32113*/       OPC_CheckPredicate, 3, // Predicate_load
/*32115*/       OPC_CheckPredicate, 23, // Predicate_memop
/*32117*/       OPC_CheckType, MVT::v2i64,
/*32119*/       OPC_MoveParent,
/*32120*/       OPC_MoveParent,
/*32121*/       OPC_Scope, 19, /*->32142*/ // 2 children in Scope
/*32123*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*32125*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*32128*/         OPC_EmitMergeInputChains1_1,
/*32129*/         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)
/*32142*/       /*Scope*/ 19, /*->32162*/
/*32143*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*32145*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*32148*/         OPC_EmitMergeInputChains1_1,
/*32149*/         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)
/*32162*/       0, /*End of Scope*/
/*32163*/     /*Scope*/ 27, /*->32191*/
/*32164*/       OPC_RecordChild2, // #1 = $src2
/*32165*/       OPC_Scope, 11, /*->32178*/ // 2 children in Scope
/*32167*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*32169*/         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)
/*32178*/       /*Scope*/ 11, /*->32190*/
/*32179*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*32181*/         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)
/*32190*/       0, /*End of Scope*/
/*32191*/     0, /*End of Scope*/
/*32192*/   /*Scope*/ 102, /*->32295*/
/*32193*/     OPC_CheckInteger, 64|128,2/*320*/, 
/*32196*/     OPC_MoveParent,
/*32197*/     OPC_RecordChild1, // #0 = $src1
/*32198*/     OPC_Scope, 66, /*->32266*/ // 2 children in Scope
/*32200*/       OPC_MoveChild, 2,
/*32202*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*32205*/       OPC_MoveChild, 0,
/*32207*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*32210*/       OPC_RecordMemRef,
/*32211*/       OPC_RecordNode, // #1 = 'ld' chained node
/*32212*/       OPC_CheckFoldableChainNode,
/*32213*/       OPC_RecordChild1, // #2 = $src2
/*32214*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*32216*/       OPC_CheckPredicate, 3, // Predicate_load
/*32218*/       OPC_CheckPredicate, 23, // Predicate_memop
/*32220*/       OPC_CheckType, MVT::v2i64,
/*32222*/       OPC_MoveParent,
/*32223*/       OPC_MoveParent,
/*32224*/       OPC_Scope, 19, /*->32245*/ // 2 children in Scope
/*32226*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*32228*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*32231*/         OPC_EmitMergeInputChains1_1,
/*32232*/         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)
/*32245*/       /*Scope*/ 19, /*->32265*/
/*32246*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*32248*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*32251*/         OPC_EmitMergeInputChains1_1,
/*32252*/         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)
/*32265*/       0, /*End of Scope*/
/*32266*/     /*Scope*/ 27, /*->32294*/
/*32267*/       OPC_RecordChild2, // #1 = $src2
/*32268*/       OPC_Scope, 11, /*->32281*/ // 2 children in Scope
/*32270*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*32272*/         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)
/*32281*/       /*Scope*/ 11, /*->32293*/
/*32282*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*32284*/         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)
/*32293*/       0, /*End of Scope*/
/*32294*/     0, /*End of Scope*/
/*32295*/   /*Scope*/ 102, /*->32398*/
/*32296*/     OPC_CheckInteger, 66|128,2/*322*/, 
/*32299*/     OPC_MoveParent,
/*32300*/     OPC_RecordChild1, // #0 = $src1
/*32301*/     OPC_Scope, 66, /*->32369*/ // 2 children in Scope
/*32303*/       OPC_MoveChild, 2,
/*32305*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*32308*/       OPC_MoveChild, 0,
/*32310*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*32313*/       OPC_RecordMemRef,
/*32314*/       OPC_RecordNode, // #1 = 'ld' chained node
/*32315*/       OPC_CheckFoldableChainNode,
/*32316*/       OPC_RecordChild1, // #2 = $src2
/*32317*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*32319*/       OPC_CheckPredicate, 3, // Predicate_load
/*32321*/       OPC_CheckPredicate, 23, // Predicate_memop
/*32323*/       OPC_CheckType, MVT::v2i64,
/*32325*/       OPC_MoveParent,
/*32326*/       OPC_MoveParent,
/*32327*/       OPC_Scope, 19, /*->32348*/ // 2 children in Scope
/*32329*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*32331*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*32334*/         OPC_EmitMergeInputChains1_1,
/*32335*/         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)
/*32348*/       /*Scope*/ 19, /*->32368*/
/*32349*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*32351*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*32354*/         OPC_EmitMergeInputChains1_1,
/*32355*/         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)
/*32368*/       0, /*End of Scope*/
/*32369*/     /*Scope*/ 27, /*->32397*/
/*32370*/       OPC_RecordChild2, // #1 = $src2
/*32371*/       OPC_Scope, 11, /*->32384*/ // 2 children in Scope
/*32373*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*32375*/         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)
/*32384*/       /*Scope*/ 11, /*->32396*/
/*32385*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*32387*/         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)
/*32396*/       0, /*End of Scope*/
/*32397*/     0, /*End of Scope*/
/*32398*/   /*Scope*/ 102, /*->32501*/
/*32399*/     OPC_CheckInteger, 65|128,2/*321*/, 
/*32402*/     OPC_MoveParent,
/*32403*/     OPC_RecordChild1, // #0 = $src1
/*32404*/     OPC_Scope, 66, /*->32472*/ // 2 children in Scope
/*32406*/       OPC_MoveChild, 2,
/*32408*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*32411*/       OPC_MoveChild, 0,
/*32413*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*32416*/       OPC_RecordMemRef,
/*32417*/       OPC_RecordNode, // #1 = 'ld' chained node
/*32418*/       OPC_CheckFoldableChainNode,
/*32419*/       OPC_RecordChild1, // #2 = $src2
/*32420*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*32422*/       OPC_CheckPredicate, 3, // Predicate_load
/*32424*/       OPC_CheckPredicate, 23, // Predicate_memop
/*32426*/       OPC_CheckType, MVT::v2i64,
/*32428*/       OPC_MoveParent,
/*32429*/       OPC_MoveParent,
/*32430*/       OPC_Scope, 19, /*->32451*/ // 2 children in Scope
/*32432*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*32434*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*32437*/         OPC_EmitMergeInputChains1_1,
/*32438*/         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)
/*32451*/       /*Scope*/ 19, /*->32471*/
/*32452*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*32454*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*32457*/         OPC_EmitMergeInputChains1_1,
/*32458*/         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)
/*32471*/       0, /*End of Scope*/
/*32472*/     /*Scope*/ 27, /*->32500*/
/*32473*/       OPC_RecordChild2, // #1 = $src2
/*32474*/       OPC_Scope, 11, /*->32487*/ // 2 children in Scope
/*32476*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*32478*/         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)
/*32487*/       /*Scope*/ 11, /*->32499*/
/*32488*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*32490*/         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)
/*32499*/       0, /*End of Scope*/
/*32500*/     0, /*End of Scope*/
/*32501*/   /*Scope*/ 102, /*->32604*/
/*32502*/     OPC_CheckInteger, 67|128,2/*323*/, 
/*32505*/     OPC_MoveParent,
/*32506*/     OPC_RecordChild1, // #0 = $src1
/*32507*/     OPC_Scope, 66, /*->32575*/ // 2 children in Scope
/*32509*/       OPC_MoveChild, 2,
/*32511*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*32514*/       OPC_MoveChild, 0,
/*32516*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*32519*/       OPC_RecordMemRef,
/*32520*/       OPC_RecordNode, // #1 = 'ld' chained node
/*32521*/       OPC_CheckFoldableChainNode,
/*32522*/       OPC_RecordChild1, // #2 = $src2
/*32523*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*32525*/       OPC_CheckPredicate, 3, // Predicate_load
/*32527*/       OPC_CheckPredicate, 23, // Predicate_memop
/*32529*/       OPC_CheckType, MVT::v2i64,
/*32531*/       OPC_MoveParent,
/*32532*/       OPC_MoveParent,
/*32533*/       OPC_Scope, 19, /*->32554*/ // 2 children in Scope
/*32535*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*32537*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*32540*/         OPC_EmitMergeInputChains1_1,
/*32541*/         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)
/*32554*/       /*Scope*/ 19, /*->32574*/
/*32555*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*32557*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*32560*/         OPC_EmitMergeInputChains1_1,
/*32561*/         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)
/*32574*/       0, /*End of Scope*/
/*32575*/     /*Scope*/ 27, /*->32603*/
/*32576*/       OPC_RecordChild2, // #1 = $src2
/*32577*/       OPC_Scope, 11, /*->32590*/ // 2 children in Scope
/*32579*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*32581*/         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)
/*32590*/       /*Scope*/ 11, /*->32602*/
/*32591*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*32593*/         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)
/*32602*/       0, /*End of Scope*/
/*32603*/     0, /*End of Scope*/
/*32604*/   /*Scope*/ 102, /*->32707*/
/*32605*/     OPC_CheckInteger, 69|128,2/*325*/, 
/*32608*/     OPC_MoveParent,
/*32609*/     OPC_RecordChild1, // #0 = $src1
/*32610*/     OPC_Scope, 66, /*->32678*/ // 2 children in Scope
/*32612*/       OPC_MoveChild, 2,
/*32614*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*32617*/       OPC_MoveChild, 0,
/*32619*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*32622*/       OPC_RecordMemRef,
/*32623*/       OPC_RecordNode, // #1 = 'ld' chained node
/*32624*/       OPC_CheckFoldableChainNode,
/*32625*/       OPC_RecordChild1, // #2 = $src2
/*32626*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*32628*/       OPC_CheckPredicate, 3, // Predicate_load
/*32630*/       OPC_CheckPredicate, 23, // Predicate_memop
/*32632*/       OPC_CheckType, MVT::v2i64,
/*32634*/       OPC_MoveParent,
/*32635*/       OPC_MoveParent,
/*32636*/       OPC_Scope, 19, /*->32657*/ // 2 children in Scope
/*32638*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*32640*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*32643*/         OPC_EmitMergeInputChains1_1,
/*32644*/         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)
/*32657*/       /*Scope*/ 19, /*->32677*/
/*32658*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*32660*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*32663*/         OPC_EmitMergeInputChains1_1,
/*32664*/         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)
/*32677*/       0, /*End of Scope*/
/*32678*/     /*Scope*/ 27, /*->32706*/
/*32679*/       OPC_RecordChild2, // #1 = $src2
/*32680*/       OPC_Scope, 11, /*->32693*/ // 2 children in Scope
/*32682*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*32684*/         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)
/*32693*/       /*Scope*/ 11, /*->32705*/
/*32694*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*32696*/         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)
/*32705*/       0, /*End of Scope*/
/*32706*/     0, /*End of Scope*/
/*32707*/   /*Scope*/ 102, /*->32810*/
/*32708*/     OPC_CheckInteger, 68|128,2/*324*/, 
/*32711*/     OPC_MoveParent,
/*32712*/     OPC_RecordChild1, // #0 = $src1
/*32713*/     OPC_Scope, 66, /*->32781*/ // 2 children in Scope
/*32715*/       OPC_MoveChild, 2,
/*32717*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*32720*/       OPC_MoveChild, 0,
/*32722*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*32725*/       OPC_RecordMemRef,
/*32726*/       OPC_RecordNode, // #1 = 'ld' chained node
/*32727*/       OPC_CheckFoldableChainNode,
/*32728*/       OPC_RecordChild1, // #2 = $src2
/*32729*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*32731*/       OPC_CheckPredicate, 3, // Predicate_load
/*32733*/       OPC_CheckPredicate, 23, // Predicate_memop
/*32735*/       OPC_CheckType, MVT::v2i64,
/*32737*/       OPC_MoveParent,
/*32738*/       OPC_MoveParent,
/*32739*/       OPC_Scope, 19, /*->32760*/ // 2 children in Scope
/*32741*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*32743*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*32746*/         OPC_EmitMergeInputChains1_1,
/*32747*/         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)
/*32760*/       /*Scope*/ 19, /*->32780*/
/*32761*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*32763*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*32766*/         OPC_EmitMergeInputChains1_1,
/*32767*/         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)
/*32780*/       0, /*End of Scope*/
/*32781*/     /*Scope*/ 27, /*->32809*/
/*32782*/       OPC_RecordChild2, // #1 = $src2
/*32783*/       OPC_Scope, 11, /*->32796*/ // 2 children in Scope
/*32785*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*32787*/         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)
/*32796*/       /*Scope*/ 11, /*->32808*/
/*32797*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*32799*/         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)
/*32808*/       0, /*End of Scope*/
/*32809*/     0, /*End of Scope*/
/*32810*/   /*Scope*/ 102, /*->32913*/
/*32811*/     OPC_CheckInteger, 56|128,2/*312*/, 
/*32814*/     OPC_MoveParent,
/*32815*/     OPC_RecordChild1, // #0 = $src1
/*32816*/     OPC_Scope, 66, /*->32884*/ // 2 children in Scope
/*32818*/       OPC_MoveChild, 2,
/*32820*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*32823*/       OPC_MoveChild, 0,
/*32825*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*32828*/       OPC_RecordMemRef,
/*32829*/       OPC_RecordNode, // #1 = 'ld' chained node
/*32830*/       OPC_CheckFoldableChainNode,
/*32831*/       OPC_RecordChild1, // #2 = $src2
/*32832*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*32834*/       OPC_CheckPredicate, 3, // Predicate_load
/*32836*/       OPC_CheckPredicate, 23, // Predicate_memop
/*32838*/       OPC_CheckType, MVT::v2i64,
/*32840*/       OPC_MoveParent,
/*32841*/       OPC_MoveParent,
/*32842*/       OPC_Scope, 19, /*->32863*/ // 2 children in Scope
/*32844*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*32846*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*32849*/         OPC_EmitMergeInputChains1_1,
/*32850*/         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)
/*32863*/       /*Scope*/ 19, /*->32883*/
/*32864*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*32866*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*32869*/         OPC_EmitMergeInputChains1_1,
/*32870*/         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)
/*32883*/       0, /*End of Scope*/
/*32884*/     /*Scope*/ 27, /*->32912*/
/*32885*/       OPC_RecordChild2, // #1 = $src2
/*32886*/       OPC_Scope, 11, /*->32899*/ // 2 children in Scope
/*32888*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*32890*/         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)
/*32899*/       /*Scope*/ 11, /*->32911*/
/*32900*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*32902*/         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)
/*32911*/       0, /*End of Scope*/
/*32912*/     0, /*End of Scope*/
/*32913*/   /*Scope*/ 102, /*->33016*/
/*32914*/     OPC_CheckInteger, 55|128,2/*311*/, 
/*32917*/     OPC_MoveParent,
/*32918*/     OPC_RecordChild1, // #0 = $src1
/*32919*/     OPC_Scope, 66, /*->32987*/ // 2 children in Scope
/*32921*/       OPC_MoveChild, 2,
/*32923*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*32926*/       OPC_MoveChild, 0,
/*32928*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*32931*/       OPC_RecordMemRef,
/*32932*/       OPC_RecordNode, // #1 = 'ld' chained node
/*32933*/       OPC_CheckFoldableChainNode,
/*32934*/       OPC_RecordChild1, // #2 = $src2
/*32935*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*32937*/       OPC_CheckPredicate, 3, // Predicate_load
/*32939*/       OPC_CheckPredicate, 23, // Predicate_memop
/*32941*/       OPC_CheckType, MVT::v2i64,
/*32943*/       OPC_MoveParent,
/*32944*/       OPC_MoveParent,
/*32945*/       OPC_Scope, 19, /*->32966*/ // 2 children in Scope
/*32947*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*32949*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*32952*/         OPC_EmitMergeInputChains1_1,
/*32953*/         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)
/*32966*/       /*Scope*/ 19, /*->32986*/
/*32967*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*32969*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*32972*/         OPC_EmitMergeInputChains1_1,
/*32973*/         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)
/*32986*/       0, /*End of Scope*/
/*32987*/     /*Scope*/ 27, /*->33015*/
/*32988*/       OPC_RecordChild2, // #1 = $src2
/*32989*/       OPC_Scope, 11, /*->33002*/ // 2 children in Scope
/*32991*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*32993*/         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)
/*33002*/       /*Scope*/ 11, /*->33014*/
/*33003*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*33005*/         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)
/*33014*/       0, /*End of Scope*/
/*33015*/     0, /*End of Scope*/
/*33016*/   /*Scope*/ 102, /*->33119*/
/*33017*/     OPC_CheckInteger, 57|128,2/*313*/, 
/*33020*/     OPC_MoveParent,
/*33021*/     OPC_RecordChild1, // #0 = $src1
/*33022*/     OPC_Scope, 66, /*->33090*/ // 2 children in Scope
/*33024*/       OPC_MoveChild, 2,
/*33026*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*33029*/       OPC_MoveChild, 0,
/*33031*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*33034*/       OPC_RecordMemRef,
/*33035*/       OPC_RecordNode, // #1 = 'ld' chained node
/*33036*/       OPC_CheckFoldableChainNode,
/*33037*/       OPC_RecordChild1, // #2 = $src2
/*33038*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*33040*/       OPC_CheckPredicate, 3, // Predicate_load
/*33042*/       OPC_CheckPredicate, 23, // Predicate_memop
/*33044*/       OPC_CheckType, MVT::v2i64,
/*33046*/       OPC_MoveParent,
/*33047*/       OPC_MoveParent,
/*33048*/       OPC_Scope, 19, /*->33069*/ // 2 children in Scope
/*33050*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*33052*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*33055*/         OPC_EmitMergeInputChains1_1,
/*33056*/         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)
/*33069*/       /*Scope*/ 19, /*->33089*/
/*33070*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*33072*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*33075*/         OPC_EmitMergeInputChains1_1,
/*33076*/         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)
/*33089*/       0, /*End of Scope*/
/*33090*/     /*Scope*/ 27, /*->33118*/
/*33091*/       OPC_RecordChild2, // #1 = $src2
/*33092*/       OPC_Scope, 11, /*->33105*/ // 2 children in Scope
/*33094*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*33096*/         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)
/*33105*/       /*Scope*/ 11, /*->33117*/
/*33106*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*33108*/         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)
/*33117*/       0, /*End of Scope*/
/*33118*/     0, /*End of Scope*/
/*33119*/   /*Scope*/ 102, /*->33222*/
/*33120*/     OPC_CheckInteger, 120|128,3/*504*/, 
/*33123*/     OPC_MoveParent,
/*33124*/     OPC_RecordChild1, // #0 = $src1
/*33125*/     OPC_Scope, 66, /*->33193*/ // 2 children in Scope
/*33127*/       OPC_MoveChild, 2,
/*33129*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*33132*/       OPC_MoveChild, 0,
/*33134*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*33137*/       OPC_RecordMemRef,
/*33138*/       OPC_RecordNode, // #1 = 'ld' chained node
/*33139*/       OPC_CheckFoldableChainNode,
/*33140*/       OPC_RecordChild1, // #2 = $src2
/*33141*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*33143*/       OPC_CheckPredicate, 3, // Predicate_load
/*33145*/       OPC_CheckPredicate, 23, // Predicate_memop
/*33147*/       OPC_CheckType, MVT::v16i8,
/*33149*/       OPC_MoveParent,
/*33150*/       OPC_MoveParent,
/*33151*/       OPC_Scope, 19, /*->33172*/ // 2 children in Scope
/*33153*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*33155*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*33158*/         OPC_EmitMergeInputChains1_1,
/*33159*/         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)
/*33172*/       /*Scope*/ 19, /*->33192*/
/*33173*/         OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*33175*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*33178*/         OPC_EmitMergeInputChains1_1,
/*33179*/         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)
/*33192*/       0, /*End of Scope*/
/*33193*/     /*Scope*/ 27, /*->33221*/
/*33194*/       OPC_RecordChild2, // #1 = $src2
/*33195*/       OPC_Scope, 11, /*->33208*/ // 2 children in Scope
/*33197*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*33199*/         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)
/*33208*/       /*Scope*/ 11, /*->33220*/
/*33209*/         OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*33211*/         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)
/*33220*/       0, /*End of Scope*/
/*33221*/     0, /*End of Scope*/
/*33222*/   /*Scope*/ 102, /*->33325*/
/*33223*/     OPC_CheckInteger, 116|128,3/*500*/, 
/*33226*/     OPC_MoveParent,
/*33227*/     OPC_RecordChild1, // #0 = $src1
/*33228*/     OPC_Scope, 66, /*->33296*/ // 2 children in Scope
/*33230*/       OPC_MoveChild, 2,
/*33232*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*33235*/       OPC_MoveChild, 0,
/*33237*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*33240*/       OPC_RecordMemRef,
/*33241*/       OPC_RecordNode, // #1 = 'ld' chained node
/*33242*/       OPC_CheckFoldableChainNode,
/*33243*/       OPC_RecordChild1, // #2 = $src2
/*33244*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*33246*/       OPC_CheckPredicate, 3, // Predicate_load
/*33248*/       OPC_CheckPredicate, 23, // Predicate_memop
/*33250*/       OPC_CheckType, MVT::v16i8,
/*33252*/       OPC_MoveParent,
/*33253*/       OPC_MoveParent,
/*33254*/       OPC_Scope, 19, /*->33275*/ // 2 children in Scope
/*33256*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*33258*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*33261*/         OPC_EmitMergeInputChains1_1,
/*33262*/         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)
/*33275*/       /*Scope*/ 19, /*->33295*/
/*33276*/         OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*33278*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*33281*/         OPC_EmitMergeInputChains1_1,
/*33282*/         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)
/*33295*/       0, /*End of Scope*/
/*33296*/     /*Scope*/ 27, /*->33324*/
/*33297*/       OPC_RecordChild2, // #1 = $src2
/*33298*/       OPC_Scope, 11, /*->33311*/ // 2 children in Scope
/*33300*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*33302*/         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)
/*33311*/       /*Scope*/ 11, /*->33323*/
/*33312*/         OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*33314*/         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)
/*33323*/       0, /*End of Scope*/
/*33324*/     0, /*End of Scope*/
/*33325*/   /*Scope*/ 102, /*->33428*/
/*33326*/     OPC_CheckInteger, 118|128,3/*502*/, 
/*33329*/     OPC_MoveParent,
/*33330*/     OPC_RecordChild1, // #0 = $src1
/*33331*/     OPC_Scope, 66, /*->33399*/ // 2 children in Scope
/*33333*/       OPC_MoveChild, 2,
/*33335*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*33338*/       OPC_MoveChild, 0,
/*33340*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*33343*/       OPC_RecordMemRef,
/*33344*/       OPC_RecordNode, // #1 = 'ld' chained node
/*33345*/       OPC_CheckFoldableChainNode,
/*33346*/       OPC_RecordChild1, // #2 = $src2
/*33347*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*33349*/       OPC_CheckPredicate, 3, // Predicate_load
/*33351*/       OPC_CheckPredicate, 23, // Predicate_memop
/*33353*/       OPC_CheckType, MVT::v16i8,
/*33355*/       OPC_MoveParent,
/*33356*/       OPC_MoveParent,
/*33357*/       OPC_Scope, 19, /*->33378*/ // 2 children in Scope
/*33359*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*33361*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*33364*/         OPC_EmitMergeInputChains1_1,
/*33365*/         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)
/*33378*/       /*Scope*/ 19, /*->33398*/
/*33379*/         OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*33381*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*33384*/         OPC_EmitMergeInputChains1_1,
/*33385*/         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)
/*33398*/       0, /*End of Scope*/
/*33399*/     /*Scope*/ 27, /*->33427*/
/*33400*/       OPC_RecordChild2, // #1 = $src2
/*33401*/       OPC_Scope, 11, /*->33414*/ // 2 children in Scope
/*33403*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*33405*/         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)
/*33414*/       /*Scope*/ 11, /*->33426*/
/*33415*/         OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*33417*/         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)
/*33426*/       0, /*End of Scope*/
/*33427*/     0, /*End of Scope*/
/*33428*/   /*Scope*/ 102, /*->33531*/
/*33429*/     OPC_CheckInteger, 126|128,3/*510*/, 
/*33432*/     OPC_MoveParent,
/*33433*/     OPC_RecordChild1, // #0 = $src1
/*33434*/     OPC_Scope, 66, /*->33502*/ // 2 children in Scope
/*33436*/       OPC_MoveChild, 2,
/*33438*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*33441*/       OPC_MoveChild, 0,
/*33443*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*33446*/       OPC_RecordMemRef,
/*33447*/       OPC_RecordNode, // #1 = 'ld' chained node
/*33448*/       OPC_CheckFoldableChainNode,
/*33449*/       OPC_RecordChild1, // #2 = $src2
/*33450*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*33452*/       OPC_CheckPredicate, 3, // Predicate_load
/*33454*/       OPC_CheckPredicate, 23, // Predicate_memop
/*33456*/       OPC_CheckType, MVT::v16i8,
/*33458*/       OPC_MoveParent,
/*33459*/       OPC_MoveParent,
/*33460*/       OPC_Scope, 19, /*->33481*/ // 2 children in Scope
/*33462*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*33464*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*33467*/         OPC_EmitMergeInputChains1_1,
/*33468*/         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)
/*33481*/       /*Scope*/ 19, /*->33501*/
/*33482*/         OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*33484*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*33487*/         OPC_EmitMergeInputChains1_1,
/*33488*/         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)
/*33501*/       0, /*End of Scope*/
/*33502*/     /*Scope*/ 27, /*->33530*/
/*33503*/       OPC_RecordChild2, // #1 = $src2
/*33504*/       OPC_Scope, 11, /*->33517*/ // 2 children in Scope
/*33506*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*33508*/         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)
/*33517*/       /*Scope*/ 11, /*->33529*/
/*33518*/         OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*33520*/         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)
/*33529*/       0, /*End of Scope*/
/*33530*/     0, /*End of Scope*/
/*33531*/   /*Scope*/ 102, /*->33634*/
/*33532*/     OPC_CheckInteger, 122|128,3/*506*/, 
/*33535*/     OPC_MoveParent,
/*33536*/     OPC_RecordChild1, // #0 = $src1
/*33537*/     OPC_Scope, 66, /*->33605*/ // 2 children in Scope
/*33539*/       OPC_MoveChild, 2,
/*33541*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*33544*/       OPC_MoveChild, 0,
/*33546*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*33549*/       OPC_RecordMemRef,
/*33550*/       OPC_RecordNode, // #1 = 'ld' chained node
/*33551*/       OPC_CheckFoldableChainNode,
/*33552*/       OPC_RecordChild1, // #2 = $src2
/*33553*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*33555*/       OPC_CheckPredicate, 3, // Predicate_load
/*33557*/       OPC_CheckPredicate, 23, // Predicate_memop
/*33559*/       OPC_CheckType, MVT::v16i8,
/*33561*/       OPC_MoveParent,
/*33562*/       OPC_MoveParent,
/*33563*/       OPC_Scope, 19, /*->33584*/ // 2 children in Scope
/*33565*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*33567*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*33570*/         OPC_EmitMergeInputChains1_1,
/*33571*/         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)
/*33584*/       /*Scope*/ 19, /*->33604*/
/*33585*/         OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*33587*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*33590*/         OPC_EmitMergeInputChains1_1,
/*33591*/         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)
/*33604*/       0, /*End of Scope*/
/*33605*/     /*Scope*/ 27, /*->33633*/
/*33606*/       OPC_RecordChild2, // #1 = $src2
/*33607*/       OPC_Scope, 11, /*->33620*/ // 2 children in Scope
/*33609*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*33611*/         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)
/*33620*/       /*Scope*/ 11, /*->33632*/
/*33621*/         OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*33623*/         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)
/*33632*/       0, /*End of Scope*/
/*33633*/     0, /*End of Scope*/
/*33634*/   /*Scope*/ 102, /*->33737*/
/*33635*/     OPC_CheckInteger, 124|128,3/*508*/, 
/*33638*/     OPC_MoveParent,
/*33639*/     OPC_RecordChild1, // #0 = $src1
/*33640*/     OPC_Scope, 66, /*->33708*/ // 2 children in Scope
/*33642*/       OPC_MoveChild, 2,
/*33644*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*33647*/       OPC_MoveChild, 0,
/*33649*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*33652*/       OPC_RecordMemRef,
/*33653*/       OPC_RecordNode, // #1 = 'ld' chained node
/*33654*/       OPC_CheckFoldableChainNode,
/*33655*/       OPC_RecordChild1, // #2 = $src2
/*33656*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*33658*/       OPC_CheckPredicate, 3, // Predicate_load
/*33660*/       OPC_CheckPredicate, 23, // Predicate_memop
/*33662*/       OPC_CheckType, MVT::v16i8,
/*33664*/       OPC_MoveParent,
/*33665*/       OPC_MoveParent,
/*33666*/       OPC_Scope, 19, /*->33687*/ // 2 children in Scope
/*33668*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*33670*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*33673*/         OPC_EmitMergeInputChains1_1,
/*33674*/         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)
/*33687*/       /*Scope*/ 19, /*->33707*/
/*33688*/         OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*33690*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*33693*/         OPC_EmitMergeInputChains1_1,
/*33694*/         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)
/*33707*/       0, /*End of Scope*/
/*33708*/     /*Scope*/ 27, /*->33736*/
/*33709*/       OPC_RecordChild2, // #1 = $src2
/*33710*/       OPC_Scope, 11, /*->33723*/ // 2 children in Scope
/*33712*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*33714*/         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)
/*33723*/       /*Scope*/ 11, /*->33735*/
/*33724*/         OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*33726*/         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)
/*33735*/       0, /*End of Scope*/
/*33736*/     0, /*End of Scope*/
/*33737*/   /*Scope*/ 102, /*->33840*/
/*33738*/     OPC_CheckInteger, 0|128,4/*512*/, 
/*33741*/     OPC_MoveParent,
/*33742*/     OPC_RecordChild1, // #0 = $src1
/*33743*/     OPC_Scope, 66, /*->33811*/ // 2 children in Scope
/*33745*/       OPC_MoveChild, 2,
/*33747*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*33750*/       OPC_MoveChild, 0,
/*33752*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*33755*/       OPC_RecordMemRef,
/*33756*/       OPC_RecordNode, // #1 = 'ld' chained node
/*33757*/       OPC_CheckFoldableChainNode,
/*33758*/       OPC_RecordChild1, // #2 = $src2
/*33759*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*33761*/       OPC_CheckPredicate, 3, // Predicate_load
/*33763*/       OPC_CheckPredicate, 23, // Predicate_memop
/*33765*/       OPC_CheckType, MVT::v16i8,
/*33767*/       OPC_MoveParent,
/*33768*/       OPC_MoveParent,
/*33769*/       OPC_Scope, 19, /*->33790*/ // 2 children in Scope
/*33771*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*33773*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*33776*/         OPC_EmitMergeInputChains1_1,
/*33777*/         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)
/*33790*/       /*Scope*/ 19, /*->33810*/
/*33791*/         OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*33793*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*33796*/         OPC_EmitMergeInputChains1_1,
/*33797*/         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)
/*33810*/       0, /*End of Scope*/
/*33811*/     /*Scope*/ 27, /*->33839*/
/*33812*/       OPC_RecordChild2, // #1 = $src2
/*33813*/       OPC_Scope, 11, /*->33826*/ // 2 children in Scope
/*33815*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*33817*/         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)
/*33826*/       /*Scope*/ 11, /*->33838*/
/*33827*/         OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*33829*/         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)
/*33838*/       0, /*End of Scope*/
/*33839*/     0, /*End of Scope*/
/*33840*/   /*Scope*/ 102, /*->33943*/
/*33841*/     OPC_CheckInteger, 10|128,4/*522*/, 
/*33844*/     OPC_MoveParent,
/*33845*/     OPC_RecordChild1, // #0 = $src1
/*33846*/     OPC_Scope, 66, /*->33914*/ // 2 children in Scope
/*33848*/       OPC_MoveChild, 2,
/*33850*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*33853*/       OPC_MoveChild, 0,
/*33855*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*33858*/       OPC_RecordMemRef,
/*33859*/       OPC_RecordNode, // #1 = 'ld' chained node
/*33860*/       OPC_CheckFoldableChainNode,
/*33861*/       OPC_RecordChild1, // #2 = $src2
/*33862*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*33864*/       OPC_CheckPredicate, 3, // Predicate_load
/*33866*/       OPC_CheckPredicate, 23, // Predicate_memop
/*33868*/       OPC_CheckType, MVT::v16i8,
/*33870*/       OPC_MoveParent,
/*33871*/       OPC_MoveParent,
/*33872*/       OPC_Scope, 19, /*->33893*/ // 2 children in Scope
/*33874*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*33876*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*33879*/         OPC_EmitMergeInputChains1_1,
/*33880*/         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)
/*33893*/       /*Scope*/ 19, /*->33913*/
/*33894*/         OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*33896*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*33899*/         OPC_EmitMergeInputChains1_1,
/*33900*/         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)
/*33913*/       0, /*End of Scope*/
/*33914*/     /*Scope*/ 27, /*->33942*/
/*33915*/       OPC_RecordChild2, // #1 = $src2
/*33916*/       OPC_Scope, 11, /*->33929*/ // 2 children in Scope
/*33918*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*33920*/         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)
/*33929*/       /*Scope*/ 11, /*->33941*/
/*33930*/         OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*33932*/         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)
/*33941*/       0, /*End of Scope*/
/*33942*/     0, /*End of Scope*/
/*33943*/   /*Scope*/ 102, /*->34046*/
/*33944*/     OPC_CheckInteger, 8|128,4/*520*/, 
/*33947*/     OPC_MoveParent,
/*33948*/     OPC_RecordChild1, // #0 = $src1
/*33949*/     OPC_Scope, 66, /*->34017*/ // 2 children in Scope
/*33951*/       OPC_MoveChild, 2,
/*33953*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*33956*/       OPC_MoveChild, 0,
/*33958*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*33961*/       OPC_RecordMemRef,
/*33962*/       OPC_RecordNode, // #1 = 'ld' chained node
/*33963*/       OPC_CheckFoldableChainNode,
/*33964*/       OPC_RecordChild1, // #2 = $src2
/*33965*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*33967*/       OPC_CheckPredicate, 3, // Predicate_load
/*33969*/       OPC_CheckPredicate, 23, // Predicate_memop
/*33971*/       OPC_CheckType, MVT::v16i8,
/*33973*/       OPC_MoveParent,
/*33974*/       OPC_MoveParent,
/*33975*/       OPC_Scope, 19, /*->33996*/ // 2 children in Scope
/*33977*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*33979*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*33982*/         OPC_EmitMergeInputChains1_1,
/*33983*/         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)
/*33996*/       /*Scope*/ 19, /*->34016*/
/*33997*/         OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*33999*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*34002*/         OPC_EmitMergeInputChains1_1,
/*34003*/         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)
/*34016*/       0, /*End of Scope*/
/*34017*/     /*Scope*/ 27, /*->34045*/
/*34018*/       OPC_RecordChild2, // #1 = $src2
/*34019*/       OPC_Scope, 11, /*->34032*/ // 2 children in Scope
/*34021*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*34023*/         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)
/*34032*/       /*Scope*/ 11, /*->34044*/
/*34033*/         OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*34035*/         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)
/*34044*/       0, /*End of Scope*/
/*34045*/     0, /*End of Scope*/
/*34046*/   /*Scope*/ 43|128,1/*171*/, /*->34219*/
/*34048*/     OPC_CheckInteger, 2|128,4/*514*/, 
/*34051*/     OPC_MoveParent,
/*34052*/     OPC_Scope, 67, /*->34121*/ // 3 children in Scope
/*34054*/       OPC_RecordChild1, // #0 = $src1
/*34055*/       OPC_MoveChild, 2,
/*34057*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*34060*/       OPC_MoveChild, 0,
/*34062*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*34065*/       OPC_RecordMemRef,
/*34066*/       OPC_RecordNode, // #1 = 'ld' chained node
/*34067*/       OPC_CheckFoldableChainNode,
/*34068*/       OPC_RecordChild1, // #2 = $src2
/*34069*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*34071*/       OPC_CheckPredicate, 3, // Predicate_load
/*34073*/       OPC_CheckPredicate, 23, // Predicate_memop
/*34075*/       OPC_CheckType, MVT::v16i8,
/*34077*/       OPC_MoveParent,
/*34078*/       OPC_MoveParent,
/*34079*/       OPC_Scope, 19, /*->34100*/ // 2 children in Scope
/*34081*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*34083*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*34086*/         OPC_EmitMergeInputChains1_1,
/*34087*/         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)
/*34100*/       /*Scope*/ 19, /*->34120*/
/*34101*/         OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*34103*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*34106*/         OPC_EmitMergeInputChains1_1,
/*34107*/         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)
/*34120*/       0, /*End of Scope*/
/*34121*/     /*Scope*/ 67, /*->34189*/
/*34122*/       OPC_MoveChild, 1,
/*34124*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*34127*/       OPC_MoveChild, 0,
/*34129*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*34132*/       OPC_RecordMemRef,
/*34133*/       OPC_RecordNode, // #0 = 'ld' chained node
/*34134*/       OPC_CheckFoldableChainNode,
/*34135*/       OPC_RecordChild1, // #1 = $src2
/*34136*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*34138*/       OPC_CheckPredicate, 3, // Predicate_load
/*34140*/       OPC_CheckPredicate, 23, // Predicate_memop
/*34142*/       OPC_CheckType, MVT::v16i8,
/*34144*/       OPC_MoveParent,
/*34145*/       OPC_MoveParent,
/*34146*/       OPC_RecordChild2, // #2 = $src1
/*34147*/       OPC_Scope, 19, /*->34168*/ // 2 children in Scope
/*34149*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*34151*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*34154*/         OPC_EmitMergeInputChains1_0,
/*34155*/         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)
/*34168*/       /*Scope*/ 19, /*->34188*/
/*34169*/         OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*34171*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*34174*/         OPC_EmitMergeInputChains1_0,
/*34175*/         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)
/*34188*/       0, /*End of Scope*/
/*34189*/     /*Scope*/ 28, /*->34218*/
/*34190*/       OPC_RecordChild1, // #0 = $src1
/*34191*/       OPC_RecordChild2, // #1 = $src2
/*34192*/       OPC_Scope, 11, /*->34205*/ // 2 children in Scope
/*34194*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*34196*/         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)
/*34205*/       /*Scope*/ 11, /*->34217*/
/*34206*/         OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*34208*/         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)
/*34217*/       0, /*End of Scope*/
/*34218*/     0, /*End of Scope*/
/*34219*/   /*Scope*/ 102, /*->34322*/
/*34220*/     OPC_CheckInteger, 7|128,3/*391*/, 
/*34223*/     OPC_MoveParent,
/*34224*/     OPC_RecordChild1, // #0 = $src1
/*34225*/     OPC_Scope, 66, /*->34293*/ // 2 children in Scope
/*34227*/       OPC_MoveChild, 2,
/*34229*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*34232*/       OPC_MoveChild, 0,
/*34234*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*34237*/       OPC_RecordMemRef,
/*34238*/       OPC_RecordNode, // #1 = 'ld' chained node
/*34239*/       OPC_CheckFoldableChainNode,
/*34240*/       OPC_RecordChild1, // #2 = $src2
/*34241*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*34243*/       OPC_CheckPredicate, 3, // Predicate_load
/*34245*/       OPC_CheckPredicate, 23, // Predicate_memop
/*34247*/       OPC_CheckType, MVT::v16i8,
/*34249*/       OPC_MoveParent,
/*34250*/       OPC_MoveParent,
/*34251*/       OPC_Scope, 19, /*->34272*/ // 2 children in Scope
/*34253*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*34255*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*34258*/         OPC_EmitMergeInputChains1_1,
/*34259*/         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)
/*34272*/       /*Scope*/ 19, /*->34292*/
/*34273*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*34275*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*34278*/         OPC_EmitMergeInputChains1_1,
/*34279*/         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)
/*34292*/       0, /*End of Scope*/
/*34293*/     /*Scope*/ 27, /*->34321*/
/*34294*/       OPC_RecordChild2, // #1 = $src2
/*34295*/       OPC_Scope, 11, /*->34308*/ // 2 children in Scope
/*34297*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*34299*/         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)
/*34308*/       /*Scope*/ 11, /*->34320*/
/*34309*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*34311*/         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)
/*34320*/       0, /*End of Scope*/
/*34321*/     0, /*End of Scope*/
/*34322*/   /*Scope*/ 43|128,1/*171*/, /*->34495*/
/*34324*/     OPC_CheckInteger, 10|128,3/*394*/, 
/*34327*/     OPC_MoveParent,
/*34328*/     OPC_Scope, 67, /*->34397*/ // 3 children in Scope
/*34330*/       OPC_RecordChild1, // #0 = $src1
/*34331*/       OPC_MoveChild, 2,
/*34333*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*34336*/       OPC_MoveChild, 0,
/*34338*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*34341*/       OPC_RecordMemRef,
/*34342*/       OPC_RecordNode, // #1 = 'ld' chained node
/*34343*/       OPC_CheckFoldableChainNode,
/*34344*/       OPC_RecordChild1, // #2 = $src2
/*34345*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*34347*/       OPC_CheckPredicate, 3, // Predicate_load
/*34349*/       OPC_CheckPredicate, 23, // Predicate_memop
/*34351*/       OPC_CheckType, MVT::v16i8,
/*34353*/       OPC_MoveParent,
/*34354*/       OPC_MoveParent,
/*34355*/       OPC_Scope, 19, /*->34376*/ // 2 children in Scope
/*34357*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*34359*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*34362*/         OPC_EmitMergeInputChains1_1,
/*34363*/         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)
/*34376*/       /*Scope*/ 19, /*->34396*/
/*34377*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*34379*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*34382*/         OPC_EmitMergeInputChains1_1,
/*34383*/         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)
/*34396*/       0, /*End of Scope*/
/*34397*/     /*Scope*/ 67, /*->34465*/
/*34398*/       OPC_MoveChild, 1,
/*34400*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*34403*/       OPC_MoveChild, 0,
/*34405*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*34408*/       OPC_RecordMemRef,
/*34409*/       OPC_RecordNode, // #0 = 'ld' chained node
/*34410*/       OPC_CheckFoldableChainNode,
/*34411*/       OPC_RecordChild1, // #1 = $src2
/*34412*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*34414*/       OPC_CheckPredicate, 3, // Predicate_load
/*34416*/       OPC_CheckPredicate, 23, // Predicate_memop
/*34418*/       OPC_CheckType, MVT::v16i8,
/*34420*/       OPC_MoveParent,
/*34421*/       OPC_MoveParent,
/*34422*/       OPC_RecordChild2, // #2 = $src1
/*34423*/       OPC_Scope, 19, /*->34444*/ // 2 children in Scope
/*34425*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*34427*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*34430*/         OPC_EmitMergeInputChains1_0,
/*34431*/         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)
/*34444*/       /*Scope*/ 19, /*->34464*/
/*34445*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*34447*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*34450*/         OPC_EmitMergeInputChains1_0,
/*34451*/         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)
/*34464*/       0, /*End of Scope*/
/*34465*/     /*Scope*/ 28, /*->34494*/
/*34466*/       OPC_RecordChild1, // #0 = $src1
/*34467*/       OPC_RecordChild2, // #1 = $src2
/*34468*/       OPC_Scope, 11, /*->34481*/ // 2 children in Scope
/*34470*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*34472*/         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)
/*34481*/       /*Scope*/ 11, /*->34493*/
/*34482*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*34484*/         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)
/*34493*/       0, /*End of Scope*/
/*34494*/     0, /*End of Scope*/
/*34495*/   /*Scope*/ 43|128,1/*171*/, /*->34668*/
/*34497*/     OPC_CheckInteger, 20|128,3/*404*/, 
/*34500*/     OPC_MoveParent,
/*34501*/     OPC_Scope, 67, /*->34570*/ // 3 children in Scope
/*34503*/       OPC_RecordChild1, // #0 = $src1
/*34504*/       OPC_MoveChild, 2,
/*34506*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*34509*/       OPC_MoveChild, 0,
/*34511*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*34514*/       OPC_RecordMemRef,
/*34515*/       OPC_RecordNode, // #1 = 'ld' chained node
/*34516*/       OPC_CheckFoldableChainNode,
/*34517*/       OPC_RecordChild1, // #2 = $src2
/*34518*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*34520*/       OPC_CheckPredicate, 3, // Predicate_load
/*34522*/       OPC_CheckPredicate, 23, // Predicate_memop
/*34524*/       OPC_CheckType, MVT::v16i8,
/*34526*/       OPC_MoveParent,
/*34527*/       OPC_MoveParent,
/*34528*/       OPC_Scope, 19, /*->34549*/ // 2 children in Scope
/*34530*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*34532*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*34535*/         OPC_EmitMergeInputChains1_1,
/*34536*/         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)
/*34549*/       /*Scope*/ 19, /*->34569*/
/*34550*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*34552*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*34555*/         OPC_EmitMergeInputChains1_1,
/*34556*/         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)
/*34569*/       0, /*End of Scope*/
/*34570*/     /*Scope*/ 67, /*->34638*/
/*34571*/       OPC_MoveChild, 1,
/*34573*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*34576*/       OPC_MoveChild, 0,
/*34578*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*34581*/       OPC_RecordMemRef,
/*34582*/       OPC_RecordNode, // #0 = 'ld' chained node
/*34583*/       OPC_CheckFoldableChainNode,
/*34584*/       OPC_RecordChild1, // #1 = $src2
/*34585*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*34587*/       OPC_CheckPredicate, 3, // Predicate_load
/*34589*/       OPC_CheckPredicate, 23, // Predicate_memop
/*34591*/       OPC_CheckType, MVT::v16i8,
/*34593*/       OPC_MoveParent,
/*34594*/       OPC_MoveParent,
/*34595*/       OPC_RecordChild2, // #2 = $src1
/*34596*/       OPC_Scope, 19, /*->34617*/ // 2 children in Scope
/*34598*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*34600*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*34603*/         OPC_EmitMergeInputChains1_0,
/*34604*/         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)
/*34617*/       /*Scope*/ 19, /*->34637*/
/*34618*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*34620*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*34623*/         OPC_EmitMergeInputChains1_0,
/*34624*/         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)
/*34637*/       0, /*End of Scope*/
/*34638*/     /*Scope*/ 28, /*->34667*/
/*34639*/       OPC_RecordChild1, // #0 = $src1
/*34640*/       OPC_RecordChild2, // #1 = $src2
/*34641*/       OPC_Scope, 11, /*->34654*/ // 2 children in Scope
/*34643*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*34645*/         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)
/*34654*/       /*Scope*/ 11, /*->34666*/
/*34655*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*34657*/         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)
/*34666*/       0, /*End of Scope*/
/*34667*/     0, /*End of Scope*/
/*34668*/   /*Scope*/ 43|128,1/*171*/, /*->34841*/
/*34670*/     OPC_CheckInteger, 21|128,3/*405*/, 
/*34673*/     OPC_MoveParent,
/*34674*/     OPC_Scope, 67, /*->34743*/ // 3 children in Scope
/*34676*/       OPC_RecordChild1, // #0 = $src1
/*34677*/       OPC_MoveChild, 2,
/*34679*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*34682*/       OPC_MoveChild, 0,
/*34684*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*34687*/       OPC_RecordMemRef,
/*34688*/       OPC_RecordNode, // #1 = 'ld' chained node
/*34689*/       OPC_CheckFoldableChainNode,
/*34690*/       OPC_RecordChild1, // #2 = $src2
/*34691*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*34693*/       OPC_CheckPredicate, 3, // Predicate_load
/*34695*/       OPC_CheckPredicate, 23, // Predicate_memop
/*34697*/       OPC_CheckType, MVT::v16i8,
/*34699*/       OPC_MoveParent,
/*34700*/       OPC_MoveParent,
/*34701*/       OPC_Scope, 19, /*->34722*/ // 2 children in Scope
/*34703*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*34705*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*34708*/         OPC_EmitMergeInputChains1_1,
/*34709*/         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)
/*34722*/       /*Scope*/ 19, /*->34742*/
/*34723*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*34725*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*34728*/         OPC_EmitMergeInputChains1_1,
/*34729*/         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)
/*34742*/       0, /*End of Scope*/
/*34743*/     /*Scope*/ 67, /*->34811*/
/*34744*/       OPC_MoveChild, 1,
/*34746*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*34749*/       OPC_MoveChild, 0,
/*34751*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*34754*/       OPC_RecordMemRef,
/*34755*/       OPC_RecordNode, // #0 = 'ld' chained node
/*34756*/       OPC_CheckFoldableChainNode,
/*34757*/       OPC_RecordChild1, // #1 = $src2
/*34758*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*34760*/       OPC_CheckPredicate, 3, // Predicate_load
/*34762*/       OPC_CheckPredicate, 23, // Predicate_memop
/*34764*/       OPC_CheckType, MVT::v16i8,
/*34766*/       OPC_MoveParent,
/*34767*/       OPC_MoveParent,
/*34768*/       OPC_RecordChild2, // #2 = $src1
/*34769*/       OPC_Scope, 19, /*->34790*/ // 2 children in Scope
/*34771*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*34773*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*34776*/         OPC_EmitMergeInputChains1_0,
/*34777*/         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)
/*34790*/       /*Scope*/ 19, /*->34810*/
/*34791*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*34793*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*34796*/         OPC_EmitMergeInputChains1_0,
/*34797*/         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)
/*34810*/       0, /*End of Scope*/
/*34811*/     /*Scope*/ 28, /*->34840*/
/*34812*/       OPC_RecordChild1, // #0 = $src1
/*34813*/       OPC_RecordChild2, // #1 = $src2
/*34814*/       OPC_Scope, 11, /*->34827*/ // 2 children in Scope
/*34816*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*34818*/         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)
/*34827*/       /*Scope*/ 11, /*->34839*/
/*34828*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*34830*/         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)
/*34839*/       0, /*End of Scope*/
/*34840*/     0, /*End of Scope*/
/*34841*/   /*Scope*/ 43|128,1/*171*/, /*->35014*/
/*34843*/     OPC_CheckInteger, 22|128,3/*406*/, 
/*34846*/     OPC_MoveParent,
/*34847*/     OPC_Scope, 67, /*->34916*/ // 3 children in Scope
/*34849*/       OPC_RecordChild1, // #0 = $src1
/*34850*/       OPC_MoveChild, 2,
/*34852*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*34855*/       OPC_MoveChild, 0,
/*34857*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*34860*/       OPC_RecordMemRef,
/*34861*/       OPC_RecordNode, // #1 = 'ld' chained node
/*34862*/       OPC_CheckFoldableChainNode,
/*34863*/       OPC_RecordChild1, // #2 = $src2
/*34864*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*34866*/       OPC_CheckPredicate, 3, // Predicate_load
/*34868*/       OPC_CheckPredicate, 23, // Predicate_memop
/*34870*/       OPC_CheckType, MVT::v16i8,
/*34872*/       OPC_MoveParent,
/*34873*/       OPC_MoveParent,
/*34874*/       OPC_Scope, 19, /*->34895*/ // 2 children in Scope
/*34876*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*34878*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*34881*/         OPC_EmitMergeInputChains1_1,
/*34882*/         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)
/*34895*/       /*Scope*/ 19, /*->34915*/
/*34896*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*34898*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*34901*/         OPC_EmitMergeInputChains1_1,
/*34902*/         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)
/*34915*/       0, /*End of Scope*/
/*34916*/     /*Scope*/ 67, /*->34984*/
/*34917*/       OPC_MoveChild, 1,
/*34919*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*34922*/       OPC_MoveChild, 0,
/*34924*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*34927*/       OPC_RecordMemRef,
/*34928*/       OPC_RecordNode, // #0 = 'ld' chained node
/*34929*/       OPC_CheckFoldableChainNode,
/*34930*/       OPC_RecordChild1, // #1 = $src2
/*34931*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*34933*/       OPC_CheckPredicate, 3, // Predicate_load
/*34935*/       OPC_CheckPredicate, 23, // Predicate_memop
/*34937*/       OPC_CheckType, MVT::v16i8,
/*34939*/       OPC_MoveParent,
/*34940*/       OPC_MoveParent,
/*34941*/       OPC_RecordChild2, // #2 = $src1
/*34942*/       OPC_Scope, 19, /*->34963*/ // 2 children in Scope
/*34944*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*34946*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*34949*/         OPC_EmitMergeInputChains1_0,
/*34950*/         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)
/*34963*/       /*Scope*/ 19, /*->34983*/
/*34964*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*34966*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*34969*/         OPC_EmitMergeInputChains1_0,
/*34970*/         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)
/*34983*/       0, /*End of Scope*/
/*34984*/     /*Scope*/ 28, /*->35013*/
/*34985*/       OPC_RecordChild1, // #0 = $src1
/*34986*/       OPC_RecordChild2, // #1 = $src2
/*34987*/       OPC_Scope, 11, /*->35000*/ // 2 children in Scope
/*34989*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*34991*/         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)
/*35000*/       /*Scope*/ 11, /*->35012*/
/*35001*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*35003*/         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)
/*35012*/       0, /*End of Scope*/
/*35013*/     0, /*End of Scope*/
/*35014*/   /*Scope*/ 43|128,1/*171*/, /*->35187*/
/*35016*/     OPC_CheckInteger, 16|128,3/*400*/, 
/*35019*/     OPC_MoveParent,
/*35020*/     OPC_Scope, 67, /*->35089*/ // 3 children in Scope
/*35022*/       OPC_RecordChild1, // #0 = $src1
/*35023*/       OPC_MoveChild, 2,
/*35025*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*35028*/       OPC_MoveChild, 0,
/*35030*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*35033*/       OPC_RecordMemRef,
/*35034*/       OPC_RecordNode, // #1 = 'ld' chained node
/*35035*/       OPC_CheckFoldableChainNode,
/*35036*/       OPC_RecordChild1, // #2 = $src2
/*35037*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*35039*/       OPC_CheckPredicate, 3, // Predicate_load
/*35041*/       OPC_CheckPredicate, 23, // Predicate_memop
/*35043*/       OPC_CheckType, MVT::v16i8,
/*35045*/       OPC_MoveParent,
/*35046*/       OPC_MoveParent,
/*35047*/       OPC_Scope, 19, /*->35068*/ // 2 children in Scope
/*35049*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*35051*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*35054*/         OPC_EmitMergeInputChains1_1,
/*35055*/         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)
/*35068*/       /*Scope*/ 19, /*->35088*/
/*35069*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*35071*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*35074*/         OPC_EmitMergeInputChains1_1,
/*35075*/         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)
/*35088*/       0, /*End of Scope*/
/*35089*/     /*Scope*/ 67, /*->35157*/
/*35090*/       OPC_MoveChild, 1,
/*35092*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*35095*/       OPC_MoveChild, 0,
/*35097*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*35100*/       OPC_RecordMemRef,
/*35101*/       OPC_RecordNode, // #0 = 'ld' chained node
/*35102*/       OPC_CheckFoldableChainNode,
/*35103*/       OPC_RecordChild1, // #1 = $src2
/*35104*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*35106*/       OPC_CheckPredicate, 3, // Predicate_load
/*35108*/       OPC_CheckPredicate, 23, // Predicate_memop
/*35110*/       OPC_CheckType, MVT::v16i8,
/*35112*/       OPC_MoveParent,
/*35113*/       OPC_MoveParent,
/*35114*/       OPC_RecordChild2, // #2 = $src1
/*35115*/       OPC_Scope, 19, /*->35136*/ // 2 children in Scope
/*35117*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*35119*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*35122*/         OPC_EmitMergeInputChains1_0,
/*35123*/         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)
/*35136*/       /*Scope*/ 19, /*->35156*/
/*35137*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*35139*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*35142*/         OPC_EmitMergeInputChains1_0,
/*35143*/         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)
/*35156*/       0, /*End of Scope*/
/*35157*/     /*Scope*/ 28, /*->35186*/
/*35158*/       OPC_RecordChild1, // #0 = $src1
/*35159*/       OPC_RecordChild2, // #1 = $src2
/*35160*/       OPC_Scope, 11, /*->35173*/ // 2 children in Scope
/*35162*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*35164*/         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)
/*35173*/       /*Scope*/ 11, /*->35185*/
/*35174*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*35176*/         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)
/*35185*/       0, /*End of Scope*/
/*35186*/     0, /*End of Scope*/
/*35187*/   /*Scope*/ 43|128,1/*171*/, /*->35360*/
/*35189*/     OPC_CheckInteger, 17|128,3/*401*/, 
/*35192*/     OPC_MoveParent,
/*35193*/     OPC_Scope, 67, /*->35262*/ // 3 children in Scope
/*35195*/       OPC_RecordChild1, // #0 = $src1
/*35196*/       OPC_MoveChild, 2,
/*35198*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*35201*/       OPC_MoveChild, 0,
/*35203*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*35206*/       OPC_RecordMemRef,
/*35207*/       OPC_RecordNode, // #1 = 'ld' chained node
/*35208*/       OPC_CheckFoldableChainNode,
/*35209*/       OPC_RecordChild1, // #2 = $src2
/*35210*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*35212*/       OPC_CheckPredicate, 3, // Predicate_load
/*35214*/       OPC_CheckPredicate, 23, // Predicate_memop
/*35216*/       OPC_CheckType, MVT::v16i8,
/*35218*/       OPC_MoveParent,
/*35219*/       OPC_MoveParent,
/*35220*/       OPC_Scope, 19, /*->35241*/ // 2 children in Scope
/*35222*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*35224*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*35227*/         OPC_EmitMergeInputChains1_1,
/*35228*/         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)
/*35241*/       /*Scope*/ 19, /*->35261*/
/*35242*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*35244*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*35247*/         OPC_EmitMergeInputChains1_1,
/*35248*/         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)
/*35261*/       0, /*End of Scope*/
/*35262*/     /*Scope*/ 67, /*->35330*/
/*35263*/       OPC_MoveChild, 1,
/*35265*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*35268*/       OPC_MoveChild, 0,
/*35270*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*35273*/       OPC_RecordMemRef,
/*35274*/       OPC_RecordNode, // #0 = 'ld' chained node
/*35275*/       OPC_CheckFoldableChainNode,
/*35276*/       OPC_RecordChild1, // #1 = $src2
/*35277*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*35279*/       OPC_CheckPredicate, 3, // Predicate_load
/*35281*/       OPC_CheckPredicate, 23, // Predicate_memop
/*35283*/       OPC_CheckType, MVT::v16i8,
/*35285*/       OPC_MoveParent,
/*35286*/       OPC_MoveParent,
/*35287*/       OPC_RecordChild2, // #2 = $src1
/*35288*/       OPC_Scope, 19, /*->35309*/ // 2 children in Scope
/*35290*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*35292*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*35295*/         OPC_EmitMergeInputChains1_0,
/*35296*/         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)
/*35309*/       /*Scope*/ 19, /*->35329*/
/*35310*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*35312*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*35315*/         OPC_EmitMergeInputChains1_0,
/*35316*/         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)
/*35329*/       0, /*End of Scope*/
/*35330*/     /*Scope*/ 28, /*->35359*/
/*35331*/       OPC_RecordChild1, // #0 = $src1
/*35332*/       OPC_RecordChild2, // #1 = $src2
/*35333*/       OPC_Scope, 11, /*->35346*/ // 2 children in Scope
/*35335*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*35337*/         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)
/*35346*/       /*Scope*/ 11, /*->35358*/
/*35347*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*35349*/         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)
/*35358*/       0, /*End of Scope*/
/*35359*/     0, /*End of Scope*/
/*35360*/   /*Scope*/ 43|128,1/*171*/, /*->35533*/
/*35362*/     OPC_CheckInteger, 18|128,3/*402*/, 
/*35365*/     OPC_MoveParent,
/*35366*/     OPC_Scope, 67, /*->35435*/ // 3 children in Scope
/*35368*/       OPC_RecordChild1, // #0 = $src1
/*35369*/       OPC_MoveChild, 2,
/*35371*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*35374*/       OPC_MoveChild, 0,
/*35376*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*35379*/       OPC_RecordMemRef,
/*35380*/       OPC_RecordNode, // #1 = 'ld' chained node
/*35381*/       OPC_CheckFoldableChainNode,
/*35382*/       OPC_RecordChild1, // #2 = $src2
/*35383*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*35385*/       OPC_CheckPredicate, 3, // Predicate_load
/*35387*/       OPC_CheckPredicate, 23, // Predicate_memop
/*35389*/       OPC_CheckType, MVT::v16i8,
/*35391*/       OPC_MoveParent,
/*35392*/       OPC_MoveParent,
/*35393*/       OPC_Scope, 19, /*->35414*/ // 2 children in Scope
/*35395*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*35397*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*35400*/         OPC_EmitMergeInputChains1_1,
/*35401*/         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)
/*35414*/       /*Scope*/ 19, /*->35434*/
/*35415*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*35417*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*35420*/         OPC_EmitMergeInputChains1_1,
/*35421*/         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)
/*35434*/       0, /*End of Scope*/
/*35435*/     /*Scope*/ 67, /*->35503*/
/*35436*/       OPC_MoveChild, 1,
/*35438*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*35441*/       OPC_MoveChild, 0,
/*35443*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*35446*/       OPC_RecordMemRef,
/*35447*/       OPC_RecordNode, // #0 = 'ld' chained node
/*35448*/       OPC_CheckFoldableChainNode,
/*35449*/       OPC_RecordChild1, // #1 = $src2
/*35450*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*35452*/       OPC_CheckPredicate, 3, // Predicate_load
/*35454*/       OPC_CheckPredicate, 23, // Predicate_memop
/*35456*/       OPC_CheckType, MVT::v16i8,
/*35458*/       OPC_MoveParent,
/*35459*/       OPC_MoveParent,
/*35460*/       OPC_RecordChild2, // #2 = $src1
/*35461*/       OPC_Scope, 19, /*->35482*/ // 2 children in Scope
/*35463*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*35465*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*35468*/         OPC_EmitMergeInputChains1_0,
/*35469*/         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)
/*35482*/       /*Scope*/ 19, /*->35502*/
/*35483*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*35485*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*35488*/         OPC_EmitMergeInputChains1_0,
/*35489*/         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)
/*35502*/       0, /*End of Scope*/
/*35503*/     /*Scope*/ 28, /*->35532*/
/*35504*/       OPC_RecordChild1, // #0 = $src1
/*35505*/       OPC_RecordChild2, // #1 = $src2
/*35506*/       OPC_Scope, 11, /*->35519*/ // 2 children in Scope
/*35508*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*35510*/         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)
/*35519*/       /*Scope*/ 11, /*->35531*/
/*35520*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*35522*/         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)
/*35531*/       0, /*End of Scope*/
/*35532*/     0, /*End of Scope*/
/*35533*/   /*Scope*/ 43|128,1/*171*/, /*->35706*/
/*35535*/     OPC_CheckInteger, 35|128,3/*419*/, 
/*35538*/     OPC_MoveParent,
/*35539*/     OPC_Scope, 67, /*->35608*/ // 3 children in Scope
/*35541*/       OPC_RecordChild1, // #0 = $src1
/*35542*/       OPC_MoveChild, 2,
/*35544*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*35547*/       OPC_MoveChild, 0,
/*35549*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*35552*/       OPC_RecordMemRef,
/*35553*/       OPC_RecordNode, // #1 = 'ld' chained node
/*35554*/       OPC_CheckFoldableChainNode,
/*35555*/       OPC_RecordChild1, // #2 = $src2
/*35556*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*35558*/       OPC_CheckPredicate, 3, // Predicate_load
/*35560*/       OPC_CheckPredicate, 23, // Predicate_memop
/*35562*/       OPC_CheckType, MVT::v16i8,
/*35564*/       OPC_MoveParent,
/*35565*/       OPC_MoveParent,
/*35566*/       OPC_Scope, 19, /*->35587*/ // 2 children in Scope
/*35568*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*35570*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*35573*/         OPC_EmitMergeInputChains1_1,
/*35574*/         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)
/*35587*/       /*Scope*/ 19, /*->35607*/
/*35588*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*35590*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*35593*/         OPC_EmitMergeInputChains1_1,
/*35594*/         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)
/*35607*/       0, /*End of Scope*/
/*35608*/     /*Scope*/ 67, /*->35676*/
/*35609*/       OPC_MoveChild, 1,
/*35611*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*35614*/       OPC_MoveChild, 0,
/*35616*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*35619*/       OPC_RecordMemRef,
/*35620*/       OPC_RecordNode, // #0 = 'ld' chained node
/*35621*/       OPC_CheckFoldableChainNode,
/*35622*/       OPC_RecordChild1, // #1 = $src2
/*35623*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*35625*/       OPC_CheckPredicate, 3, // Predicate_load
/*35627*/       OPC_CheckPredicate, 23, // Predicate_memop
/*35629*/       OPC_CheckType, MVT::v16i8,
/*35631*/       OPC_MoveParent,
/*35632*/       OPC_MoveParent,
/*35633*/       OPC_RecordChild2, // #2 = $src1
/*35634*/       OPC_Scope, 19, /*->35655*/ // 2 children in Scope
/*35636*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*35638*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*35641*/         OPC_EmitMergeInputChains1_0,
/*35642*/         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)
/*35655*/       /*Scope*/ 19, /*->35675*/
/*35656*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*35658*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*35661*/         OPC_EmitMergeInputChains1_0,
/*35662*/         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)
/*35675*/       0, /*End of Scope*/
/*35676*/     /*Scope*/ 28, /*->35705*/
/*35677*/       OPC_RecordChild1, // #0 = $src1
/*35678*/       OPC_RecordChild2, // #1 = $src2
/*35679*/       OPC_Scope, 11, /*->35692*/ // 2 children in Scope
/*35681*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*35683*/         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)
/*35692*/       /*Scope*/ 11, /*->35704*/
/*35693*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*35695*/         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)
/*35704*/       0, /*End of Scope*/
/*35705*/     0, /*End of Scope*/
/*35706*/   /*Scope*/ 66|128,1/*194*/, /*->35902*/
/*35708*/     OPC_CheckInteger, 6|128,3/*390*/, 
/*35711*/     OPC_MoveParent,
/*35712*/     OPC_Scope, 72, /*->35786*/ // 3 children in Scope
/*35714*/       OPC_RecordChild1, // #0 = $src1
/*35715*/       OPC_MoveChild, 2,
/*35717*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*35720*/       OPC_RecordMemRef,
/*35721*/       OPC_RecordNode, // #1 = 'ld' chained node
/*35722*/       OPC_CheckFoldableChainNode,
/*35723*/       OPC_RecordChild1, // #2 = $src2
/*35724*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*35726*/       OPC_CheckPredicate, 3, // Predicate_load
/*35728*/       OPC_CheckPredicate, 23, // Predicate_memop
/*35730*/       OPC_MoveParent,
/*35731*/       OPC_RecordChild3, // #3 = $src3
/*35732*/       OPC_MoveChild, 3,
/*35734*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*35737*/       OPC_MoveParent,
/*35738*/       OPC_Scope, 22, /*->35762*/ // 2 children in Scope
/*35740*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*35742*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*35745*/         OPC_EmitMergeInputChains1_1,
/*35746*/         OPC_EmitConvertToTarget, 3,
/*35748*/         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)
/*35762*/       /*Scope*/ 22, /*->35785*/
/*35763*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*35765*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*35768*/         OPC_EmitMergeInputChains1_1,
/*35769*/         OPC_EmitConvertToTarget, 3,
/*35771*/         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)
/*35785*/       0, /*End of Scope*/
/*35786*/     /*Scope*/ 72, /*->35859*/
/*35787*/       OPC_MoveChild, 1,
/*35789*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*35792*/       OPC_RecordMemRef,
/*35793*/       OPC_RecordNode, // #0 = 'ld' chained node
/*35794*/       OPC_CheckFoldableChainNode,
/*35795*/       OPC_RecordChild1, // #1 = $src2
/*35796*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*35798*/       OPC_CheckPredicate, 3, // Predicate_load
/*35800*/       OPC_CheckPredicate, 23, // Predicate_memop
/*35802*/       OPC_MoveParent,
/*35803*/       OPC_RecordChild2, // #2 = $src1
/*35804*/       OPC_RecordChild3, // #3 = $src3
/*35805*/       OPC_MoveChild, 3,
/*35807*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*35810*/       OPC_MoveParent,
/*35811*/       OPC_Scope, 22, /*->35835*/ // 2 children in Scope
/*35813*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*35815*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*35818*/         OPC_EmitMergeInputChains1_0,
/*35819*/         OPC_EmitConvertToTarget, 3,
/*35821*/         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)
/*35835*/       /*Scope*/ 22, /*->35858*/
/*35836*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*35838*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*35841*/         OPC_EmitMergeInputChains1_0,
/*35842*/         OPC_EmitConvertToTarget, 3,
/*35844*/         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)
/*35858*/       0, /*End of Scope*/
/*35859*/     /*Scope*/ 41, /*->35901*/
/*35860*/       OPC_RecordChild1, // #0 = $src1
/*35861*/       OPC_RecordChild2, // #1 = $src2
/*35862*/       OPC_RecordChild3, // #2 = $src3
/*35863*/       OPC_MoveChild, 3,
/*35865*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*35868*/       OPC_MoveParent,
/*35869*/       OPC_Scope, 14, /*->35885*/ // 2 children in Scope
/*35871*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*35873*/         OPC_EmitConvertToTarget, 2,
/*35875*/         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)
/*35885*/       /*Scope*/ 14, /*->35900*/
/*35886*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*35888*/         OPC_EmitConvertToTarget, 2,
/*35890*/         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)
/*35900*/       0, /*End of Scope*/
/*35901*/     0, /*End of Scope*/
/*35902*/   /*Scope*/ 102, /*->36005*/
/*35903*/     OPC_CheckInteger, 55|128,3/*439*/, 
/*35906*/     OPC_MoveParent,
/*35907*/     OPC_RecordChild1, // #0 = $src1
/*35908*/     OPC_Scope, 66, /*->35976*/ // 2 children in Scope
/*35910*/       OPC_MoveChild, 2,
/*35912*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*35915*/       OPC_MoveChild, 0,
/*35917*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*35920*/       OPC_RecordMemRef,
/*35921*/       OPC_RecordNode, // #1 = 'ld' chained node
/*35922*/       OPC_CheckFoldableChainNode,
/*35923*/       OPC_RecordChild1, // #2 = $src2
/*35924*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*35926*/       OPC_CheckPredicate, 3, // Predicate_load
/*35928*/       OPC_CheckPredicate, 23, // Predicate_memop
/*35930*/       OPC_CheckType, MVT::v16i8,
/*35932*/       OPC_MoveParent,
/*35933*/       OPC_MoveParent,
/*35934*/       OPC_Scope, 19, /*->35955*/ // 2 children in Scope
/*35936*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*35938*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*35941*/         OPC_EmitMergeInputChains1_1,
/*35942*/         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)
/*35955*/       /*Scope*/ 19, /*->35975*/
/*35956*/         OPC_CheckPatternPredicate, 11, // (Subtarget->hasSSE42())
/*35958*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*35961*/         OPC_EmitMergeInputChains1_1,
/*35962*/         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)
/*35975*/       0, /*End of Scope*/
/*35976*/     /*Scope*/ 27, /*->36004*/
/*35977*/       OPC_RecordChild2, // #1 = $src2
/*35978*/       OPC_Scope, 11, /*->35991*/ // 2 children in Scope
/*35980*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*35982*/         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)
/*35991*/       /*Scope*/ 11, /*->36003*/
/*35992*/         OPC_CheckPatternPredicate, 11, // (Subtarget->hasSSE42())
/*35994*/         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)
/*36003*/       0, /*End of Scope*/
/*36004*/     0, /*End of Scope*/
/*36005*/   /*Scope*/ 114, /*->36120*/
/*36006*/     OPC_CheckInteger, 112, 
/*36008*/     OPC_MoveParent,
/*36009*/     OPC_Scope, 69, /*->36080*/ // 2 children in Scope
/*36011*/       OPC_MoveChild, 1,
/*36013*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*36016*/       OPC_RecordMemRef,
/*36017*/       OPC_RecordNode, // #0 = 'ld' chained node
/*36018*/       OPC_CheckFoldableChainNode,
/*36019*/       OPC_RecordChild1, // #1 = $src1
/*36020*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*36022*/       OPC_CheckPredicate, 3, // Predicate_load
/*36024*/       OPC_CheckPredicate, 23, // Predicate_memop
/*36026*/       OPC_MoveParent,
/*36027*/       OPC_RecordChild2, // #2 = $src2
/*36028*/       OPC_MoveChild, 2,
/*36030*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*36033*/       OPC_MoveParent,
/*36034*/       OPC_Scope, 21, /*->36057*/ // 2 children in Scope
/*36036*/         OPC_CheckPatternPredicate, 14, // (Subtarget->hasAVX()) && (Subtarget->hasAES())
/*36038*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #3 #4 #5 #6 #7
/*36041*/         OPC_EmitMergeInputChains1_0,
/*36042*/         OPC_EmitConvertToTarget, 2,
/*36044*/         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)
/*36057*/       /*Scope*/ 21, /*->36079*/
/*36058*/         OPC_CheckPatternPredicate, 15, // (Subtarget->hasAES())
/*36060*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #3 #4 #5 #6 #7
/*36063*/         OPC_EmitMergeInputChains1_0,
/*36064*/         OPC_EmitConvertToTarget, 2,
/*36066*/         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)
/*36079*/       0, /*End of Scope*/
/*36080*/     /*Scope*/ 38, /*->36119*/
/*36081*/       OPC_RecordChild1, // #0 = $src1
/*36082*/       OPC_RecordChild2, // #1 = $src2
/*36083*/       OPC_MoveChild, 2,
/*36085*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*36088*/       OPC_MoveParent,
/*36089*/       OPC_Scope, 13, /*->36104*/ // 2 children in Scope
/*36091*/         OPC_CheckPatternPredicate, 14, // (Subtarget->hasAVX()) && (Subtarget->hasAES())
/*36093*/         OPC_EmitConvertToTarget, 1,
/*36095*/         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)
/*36104*/       /*Scope*/ 13, /*->36118*/
/*36105*/         OPC_CheckPatternPredicate, 15, // (Subtarget->hasAES())
/*36107*/         OPC_EmitConvertToTarget, 1,
/*36109*/         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)
/*36118*/       0, /*End of Scope*/
/*36119*/     0, /*End of Scope*/
/*36120*/   /*Scope*/ 72, /*->36193*/
/*36121*/     OPC_CheckInteger, 52|128,1/*180*/, 
/*36124*/     OPC_MoveParent,
/*36125*/     OPC_RecordChild1, // #0 = $src1
/*36126*/     OPC_Scope, 43, /*->36171*/ // 2 children in Scope
/*36128*/       OPC_MoveChild, 2,
/*36130*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*36133*/       OPC_RecordMemRef,
/*36134*/       OPC_RecordNode, // #1 = 'ld' chained node
/*36135*/       OPC_CheckFoldableChainNode,
/*36136*/       OPC_RecordChild1, // #2 = $src2
/*36137*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*36139*/       OPC_CheckPredicate, 3, // Predicate_load
/*36141*/       OPC_CheckPredicate, 23, // Predicate_memop
/*36143*/       OPC_MoveParent,
/*36144*/       OPC_RecordChild3, // #3 = $src3
/*36145*/       OPC_MoveChild, 3,
/*36147*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*36150*/       OPC_MoveParent,
/*36151*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*36154*/       OPC_EmitMergeInputChains1_1,
/*36155*/       OPC_EmitConvertToTarget, 3,
/*36157*/       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)
/*36171*/     /*Scope*/ 20, /*->36192*/
/*36172*/       OPC_RecordChild2, // #1 = $src2
/*36173*/       OPC_RecordChild3, // #2 = $src3
/*36174*/       OPC_MoveChild, 3,
/*36176*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*36179*/       OPC_MoveParent,
/*36180*/       OPC_EmitConvertToTarget, 2,
/*36182*/       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)
/*36192*/     0, /*End of Scope*/
/*36193*/   /*Scope*/ 122, /*->36316*/
/*36194*/     OPC_CheckInteger, 62|128,3/*446*/, 
/*36197*/     OPC_MoveParent,
/*36198*/     OPC_RecordChild1, // #0 = $src1
/*36199*/     OPC_Scope, 71, /*->36272*/ // 2 children in Scope
/*36201*/       OPC_MoveChild, 2,
/*36203*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*36206*/       OPC_RecordMemRef,
/*36207*/       OPC_RecordNode, // #1 = 'ld' chained node
/*36208*/       OPC_CheckFoldableChainNode,
/*36209*/       OPC_RecordChild1, // #2 = $src2
/*36210*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*36212*/       OPC_CheckPredicate, 3, // Predicate_load
/*36214*/       OPC_MoveParent,
/*36215*/       OPC_RecordChild3, // #3 = $src3
/*36216*/       OPC_MoveChild, 3,
/*36218*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*36221*/       OPC_MoveParent,
/*36222*/       OPC_Scope, 23, /*->36247*/ // 2 children in Scope
/*36224*/         OPC_CheckPatternPredicate, 11, // (Subtarget->hasSSE42())
/*36226*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*36229*/         OPC_EmitMergeInputChains1_1,
/*36230*/         OPC_EmitConvertToTarget, 3,
/*36232*/         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)
/*36247*/       /*Scope*/ 23, /*->36271*/
/*36248*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*36250*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*36253*/         OPC_EmitMergeInputChains1_1,
/*36254*/         OPC_EmitConvertToTarget, 3,
/*36256*/         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)
/*36271*/       0, /*End of Scope*/
/*36272*/     /*Scope*/ 42, /*->36315*/
/*36273*/       OPC_RecordChild2, // #1 = $src2
/*36274*/       OPC_RecordChild3, // #2 = $src3
/*36275*/       OPC_MoveChild, 3,
/*36277*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*36280*/       OPC_MoveParent,
/*36281*/       OPC_Scope, 15, /*->36298*/ // 2 children in Scope
/*36283*/         OPC_CheckPatternPredicate, 11, // (Subtarget->hasSSE42())
/*36285*/         OPC_EmitConvertToTarget, 2,
/*36287*/         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)
/*36298*/       /*Scope*/ 15, /*->36314*/
/*36299*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*36301*/         OPC_EmitConvertToTarget, 2,
/*36303*/         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)
/*36314*/       0, /*End of Scope*/
/*36315*/     0, /*End of Scope*/
/*36316*/   /*Scope*/ 25|128,1/*153*/, /*->36471*/
/*36318*/     OPC_CheckInteger, 54|128,3/*438*/, 
/*36321*/     OPC_MoveParent,
/*36322*/     OPC_RecordChild1, // #0 = $src1
/*36323*/     OPC_RecordChild2, // #1 = physreg input EAX
/*36324*/     OPC_Scope, 88, /*->36414*/ // 2 children in Scope
/*36326*/       OPC_MoveChild, 3,
/*36328*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*36331*/       OPC_RecordMemRef,
/*36332*/       OPC_RecordNode, // #2 = 'ld' chained node
/*36333*/       OPC_CheckFoldableChainNode,
/*36334*/       OPC_RecordChild1, // #3 = $src3
/*36335*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*36337*/       OPC_CheckPredicate, 3, // Predicate_load
/*36339*/       OPC_MoveParent,
/*36340*/       OPC_RecordChild4, // #4 = physreg input EDX
/*36341*/       OPC_RecordChild5, // #5 = $src5
/*36342*/       OPC_MoveChild, 5,
/*36344*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*36347*/       OPC_MoveParent,
/*36348*/       OPC_Scope, 31, /*->36381*/ // 2 children in Scope
/*36350*/         OPC_CheckPatternPredicate, 11, // (Subtarget->hasSSE42())
/*36352*/         OPC_CheckComplexPat, /*CP*/0, /*#*/3, // SelectAddr:$src3 #6 #7 #8 #9 #10
/*36355*/         OPC_EmitMergeInputChains, 1, 2, 
/*36358*/         OPC_EmitConvertToTarget, 5,
/*36360*/         OPC_EmitCopyToReg, 1, X86::EAX,
/*36363*/         OPC_EmitCopyToReg, 4, X86::EDX,
/*36366*/         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)
/*36381*/       /*Scope*/ 31, /*->36413*/
/*36382*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*36384*/         OPC_CheckComplexPat, /*CP*/0, /*#*/3, // SelectAddr:$src3 #6 #7 #8 #9 #10
/*36387*/         OPC_EmitMergeInputChains, 1, 2, 
/*36390*/         OPC_EmitConvertToTarget, 5,
/*36392*/         OPC_EmitCopyToReg, 1, X86::EAX,
/*36395*/         OPC_EmitCopyToReg, 4, X86::EDX,
/*36398*/         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)
/*36413*/       0, /*End of Scope*/
/*36414*/     /*Scope*/ 55, /*->36470*/
/*36415*/       OPC_RecordChild3, // #2 = $src3
/*36416*/       OPC_RecordChild4, // #3 = physreg input EDX
/*36417*/       OPC_RecordChild5, // #4 = $src5
/*36418*/       OPC_MoveChild, 5,
/*36420*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*36423*/       OPC_MoveParent,
/*36424*/       OPC_Scope, 21, /*->36447*/ // 2 children in Scope
/*36426*/         OPC_CheckPatternPredicate, 11, // (Subtarget->hasSSE42())
/*36428*/         OPC_EmitConvertToTarget, 4,
/*36430*/         OPC_EmitCopyToReg, 1, X86::EAX,
/*36433*/         OPC_EmitCopyToReg, 3, X86::EDX,
/*36436*/         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)
/*36447*/       /*Scope*/ 21, /*->36469*/
/*36448*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*36450*/         OPC_EmitConvertToTarget, 4,
/*36452*/         OPC_EmitCopyToReg, 1, X86::EAX,
/*36455*/         OPC_EmitCopyToReg, 3, X86::EDX,
/*36458*/         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)
/*36469*/       0, /*End of Scope*/
/*36470*/     0, /*End of Scope*/
/*36471*/   /*Scope*/ 89, /*->36561*/
/*36472*/     OPC_CheckInteger, 33|128,2/*289*/, 
/*36475*/     OPC_MoveParent,
/*36476*/     OPC_Scope, 56, /*->36534*/ // 2 children in Scope
/*36478*/       OPC_MoveChild, 1,
/*36480*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*36483*/       OPC_RecordMemRef,
/*36484*/       OPC_RecordNode, // #0 = 'ld' chained node
/*36485*/       OPC_CheckFoldableChainNode,
/*36486*/       OPC_RecordChild1, // #1 = $src
/*36487*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*36489*/       OPC_CheckPredicate, 3, // Predicate_load
/*36491*/       OPC_CheckPredicate, 23, // Predicate_memop
/*36493*/       OPC_MoveParent,
/*36494*/       OPC_Scope, 18, /*->36514*/ // 2 children in Scope
/*36496*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*36498*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*36501*/         OPC_EmitMergeInputChains1_0,
/*36502*/         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)
/*36514*/       /*Scope*/ 18, /*->36533*/
/*36515*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*36517*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*36520*/         OPC_EmitMergeInputChains1_0,
/*36521*/         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)
/*36533*/       0, /*End of Scope*/
/*36534*/     /*Scope*/ 25, /*->36560*/
/*36535*/       OPC_RecordChild1, // #0 = $src
/*36536*/       OPC_Scope, 10, /*->36548*/ // 2 children in Scope
/*36538*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*36540*/         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)
/*36548*/       /*Scope*/ 10, /*->36559*/
/*36549*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*36551*/         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)
/*36559*/       0, /*End of Scope*/
/*36560*/     0, /*End of Scope*/
/*36561*/   /*Scope*/ 89, /*->36651*/
/*36562*/     OPC_CheckInteger, 31|128,2/*287*/, 
/*36565*/     OPC_MoveParent,
/*36566*/     OPC_Scope, 56, /*->36624*/ // 2 children in Scope
/*36568*/       OPC_MoveChild, 1,
/*36570*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*36573*/       OPC_RecordMemRef,
/*36574*/       OPC_RecordNode, // #0 = 'ld' chained node
/*36575*/       OPC_CheckFoldableChainNode,
/*36576*/       OPC_RecordChild1, // #1 = $src
/*36577*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*36579*/       OPC_CheckPredicate, 3, // Predicate_load
/*36581*/       OPC_CheckPredicate, 23, // Predicate_memop
/*36583*/       OPC_MoveParent,
/*36584*/       OPC_Scope, 18, /*->36604*/ // 2 children in Scope
/*36586*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*36588*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*36591*/         OPC_EmitMergeInputChains1_0,
/*36592*/         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)
/*36604*/       /*Scope*/ 18, /*->36623*/
/*36605*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*36607*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*36610*/         OPC_EmitMergeInputChains1_0,
/*36611*/         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)
/*36623*/       0, /*End of Scope*/
/*36624*/     /*Scope*/ 25, /*->36650*/
/*36625*/       OPC_RecordChild1, // #0 = $src
/*36626*/       OPC_Scope, 10, /*->36638*/ // 2 children in Scope
/*36628*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*36630*/         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)
/*36638*/       /*Scope*/ 10, /*->36649*/
/*36639*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*36641*/         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)
/*36649*/       0, /*End of Scope*/
/*36650*/     0, /*End of Scope*/
/*36651*/   /*Scope*/ 89, /*->36741*/
/*36652*/     OPC_CheckInteger, 42|128,2/*298*/, 
/*36655*/     OPC_MoveParent,
/*36656*/     OPC_Scope, 56, /*->36714*/ // 2 children in Scope
/*36658*/       OPC_MoveChild, 1,
/*36660*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*36663*/       OPC_RecordMemRef,
/*36664*/       OPC_RecordNode, // #0 = 'ld' chained node
/*36665*/       OPC_CheckFoldableChainNode,
/*36666*/       OPC_RecordChild1, // #1 = $src
/*36667*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*36669*/       OPC_CheckPredicate, 3, // Predicate_load
/*36671*/       OPC_CheckPredicate, 23, // Predicate_memop
/*36673*/       OPC_MoveParent,
/*36674*/       OPC_Scope, 18, /*->36694*/ // 2 children in Scope
/*36676*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*36678*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*36681*/         OPC_EmitMergeInputChains1_0,
/*36682*/         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)
/*36694*/       /*Scope*/ 18, /*->36713*/
/*36695*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*36697*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*36700*/         OPC_EmitMergeInputChains1_0,
/*36701*/         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)
/*36713*/       0, /*End of Scope*/
/*36714*/     /*Scope*/ 25, /*->36740*/
/*36715*/       OPC_RecordChild1, // #0 = $src
/*36716*/       OPC_Scope, 10, /*->36728*/ // 2 children in Scope
/*36718*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*36720*/         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)
/*36728*/       /*Scope*/ 10, /*->36739*/
/*36729*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*36731*/         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)
/*36739*/       0, /*End of Scope*/
/*36740*/     0, /*End of Scope*/
/*36741*/   /*Scope*/ 89, /*->36831*/
/*36742*/     OPC_CheckInteger, 41|128,2/*297*/, 
/*36745*/     OPC_MoveParent,
/*36746*/     OPC_Scope, 56, /*->36804*/ // 2 children in Scope
/*36748*/       OPC_MoveChild, 1,
/*36750*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*36753*/       OPC_RecordMemRef,
/*36754*/       OPC_RecordNode, // #0 = 'ld' chained node
/*36755*/       OPC_CheckFoldableChainNode,
/*36756*/       OPC_RecordChild1, // #1 = $src
/*36757*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*36759*/       OPC_CheckPredicate, 3, // Predicate_load
/*36761*/       OPC_CheckPredicate, 23, // Predicate_memop
/*36763*/       OPC_MoveParent,
/*36764*/       OPC_Scope, 18, /*->36784*/ // 2 children in Scope
/*36766*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*36768*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*36771*/         OPC_EmitMergeInputChains1_0,
/*36772*/         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)
/*36784*/       /*Scope*/ 18, /*->36803*/
/*36785*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*36787*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*36790*/         OPC_EmitMergeInputChains1_0,
/*36791*/         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)
/*36803*/       0, /*End of Scope*/
/*36804*/     /*Scope*/ 25, /*->36830*/
/*36805*/       OPC_RecordChild1, // #0 = $src
/*36806*/       OPC_Scope, 10, /*->36818*/ // 2 children in Scope
/*36808*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*36810*/         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)
/*36818*/       /*Scope*/ 10, /*->36829*/
/*36819*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*36821*/         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)
/*36829*/       0, /*End of Scope*/
/*36830*/     0, /*End of Scope*/
/*36831*/   /*Scope*/ 48, /*->36880*/
/*36832*/     OPC_CheckInteger, 124, 
/*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::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)
/*36869*/     /*Scope*/ 9, /*->36879*/
/*36870*/       OPC_RecordChild1, // #0 = $src
/*36871*/       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)
/*36879*/     0, /*End of Scope*/
/*36880*/   /*Scope*/ 48, /*->36929*/
/*36881*/     OPC_CheckInteger, 127, 
/*36883*/     OPC_MoveParent,
/*36884*/     OPC_Scope, 32, /*->36918*/ // 2 children in Scope
/*36886*/       OPC_MoveChild, 1,
/*36888*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*36891*/       OPC_RecordMemRef,
/*36892*/       OPC_RecordNode, // #0 = 'ld' chained node
/*36893*/       OPC_CheckFoldableChainNode,
/*36894*/       OPC_RecordChild1, // #1 = $src
/*36895*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*36897*/       OPC_CheckPredicate, 3, // Predicate_load
/*36899*/       OPC_CheckPredicate, 23, // Predicate_memop
/*36901*/       OPC_MoveParent,
/*36902*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*36905*/       OPC_EmitMergeInputChains1_0,
/*36906*/       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)
/*36918*/     /*Scope*/ 9, /*->36928*/
/*36919*/       OPC_RecordChild1, // #0 = $src
/*36920*/       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)
/*36928*/     0, /*End of Scope*/
/*36929*/   /*Scope*/ 49, /*->36979*/
/*36930*/     OPC_CheckInteger, 0|128,1/*128*/, 
/*36933*/     OPC_MoveParent,
/*36934*/     OPC_Scope, 32, /*->36968*/ // 2 children in Scope
/*36936*/       OPC_MoveChild, 1,
/*36938*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*36941*/       OPC_RecordMemRef,
/*36942*/       OPC_RecordNode, // #0 = 'ld' chained node
/*36943*/       OPC_CheckFoldableChainNode,
/*36944*/       OPC_RecordChild1, // #1 = $src
/*36945*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*36947*/       OPC_CheckPredicate, 3, // Predicate_load
/*36949*/       OPC_CheckPredicate, 23, // Predicate_memop
/*36951*/       OPC_MoveParent,
/*36952*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*36955*/       OPC_EmitMergeInputChains1_0,
/*36956*/       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)
/*36968*/     /*Scope*/ 9, /*->36978*/
/*36969*/       OPC_RecordChild1, // #0 = $src
/*36970*/       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)
/*36978*/     0, /*End of Scope*/
/*36979*/   /*Scope*/ 94, /*->37074*/
/*36980*/     OPC_CheckInteger, 83|128,2/*339*/, 
/*36983*/     OPC_MoveParent,
/*36984*/     OPC_RecordChild1, // #0 = $src1
/*36985*/     OPC_Scope, 58, /*->37045*/ // 2 children in Scope
/*36987*/       OPC_MoveChild, 2,
/*36989*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*36992*/       OPC_RecordMemRef,
/*36993*/       OPC_RecordNode, // #1 = 'ld' chained node
/*36994*/       OPC_CheckFoldableChainNode,
/*36995*/       OPC_RecordChild1, // #2 = $src2
/*36996*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*36998*/       OPC_CheckPredicate, 3, // Predicate_load
/*37000*/       OPC_CheckPredicate, 23, // Predicate_memop
/*37002*/       OPC_MoveParent,
/*37003*/       OPC_Scope, 19, /*->37024*/ // 2 children in Scope
/*37005*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*37007*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*37010*/         OPC_EmitMergeInputChains1_1,
/*37011*/         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)
/*37024*/       /*Scope*/ 19, /*->37044*/
/*37025*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*37027*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*37030*/         OPC_EmitMergeInputChains1_1,
/*37031*/         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)
/*37044*/       0, /*End of Scope*/
/*37045*/     /*Scope*/ 27, /*->37073*/
/*37046*/       OPC_RecordChild2, // #1 = $src2
/*37047*/       OPC_Scope, 11, /*->37060*/ // 2 children in Scope
/*37049*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*37051*/         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)
/*37060*/       /*Scope*/ 11, /*->37072*/
/*37061*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*37063*/         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)
/*37072*/       0, /*End of Scope*/
/*37073*/     0, /*End of Scope*/
/*37074*/   /*Scope*/ 94, /*->37169*/
/*37075*/     OPC_CheckInteger, 95|128,2/*351*/, 
/*37078*/     OPC_MoveParent,
/*37079*/     OPC_RecordChild1, // #0 = $src1
/*37080*/     OPC_Scope, 58, /*->37140*/ // 2 children in Scope
/*37082*/       OPC_MoveChild, 2,
/*37084*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*37087*/       OPC_RecordMemRef,
/*37088*/       OPC_RecordNode, // #1 = 'ld' chained node
/*37089*/       OPC_CheckFoldableChainNode,
/*37090*/       OPC_RecordChild1, // #2 = $src2
/*37091*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*37093*/       OPC_CheckPredicate, 3, // Predicate_load
/*37095*/       OPC_CheckPredicate, 23, // Predicate_memop
/*37097*/       OPC_MoveParent,
/*37098*/       OPC_Scope, 19, /*->37119*/ // 2 children in Scope
/*37100*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*37102*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*37105*/         OPC_EmitMergeInputChains1_1,
/*37106*/         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)
/*37119*/       /*Scope*/ 19, /*->37139*/
/*37120*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*37122*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*37125*/         OPC_EmitMergeInputChains1_1,
/*37126*/         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)
/*37139*/       0, /*End of Scope*/
/*37140*/     /*Scope*/ 27, /*->37168*/
/*37141*/       OPC_RecordChild2, // #1 = $src2
/*37142*/       OPC_Scope, 11, /*->37155*/ // 2 children in Scope
/*37144*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*37146*/         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)
/*37155*/       /*Scope*/ 11, /*->37167*/
/*37156*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*37158*/         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)
/*37167*/       0, /*End of Scope*/
/*37168*/     0, /*End of Scope*/
/*37169*/   /*Scope*/ 48, /*->37218*/
/*37170*/     OPC_CheckInteger, 122, 
/*37172*/     OPC_MoveParent,
/*37173*/     OPC_Scope, 32, /*->37207*/ // 2 children in Scope
/*37175*/       OPC_MoveChild, 1,
/*37177*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*37180*/       OPC_RecordMemRef,
/*37181*/       OPC_RecordNode, // #0 = 'ld' chained node
/*37182*/       OPC_CheckFoldableChainNode,
/*37183*/       OPC_RecordChild1, // #1 = $src
/*37184*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*37186*/       OPC_CheckPredicate, 3, // Predicate_load
/*37188*/       OPC_CheckPredicate, 23, // Predicate_memop
/*37190*/       OPC_MoveParent,
/*37191*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*37194*/       OPC_EmitMergeInputChains1_0,
/*37195*/       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)
/*37207*/     /*Scope*/ 9, /*->37217*/
/*37208*/       OPC_RecordChild1, // #0 = $src
/*37209*/       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)
/*37217*/     0, /*End of Scope*/
/*37218*/   /*Scope*/ 89, /*->37308*/
/*37219*/     OPC_CheckInteger, 110|128,3/*494*/, 
/*37222*/     OPC_MoveParent,
/*37223*/     OPC_Scope, 56, /*->37281*/ // 2 children in Scope
/*37225*/       OPC_MoveChild, 1,
/*37227*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*37230*/       OPC_RecordMemRef,
/*37231*/       OPC_RecordNode, // #0 = 'ld' chained node
/*37232*/       OPC_CheckFoldableChainNode,
/*37233*/       OPC_RecordChild1, // #1 = $src
/*37234*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*37236*/       OPC_CheckPredicate, 3, // Predicate_load
/*37238*/       OPC_CheckPredicate, 23, // Predicate_memop
/*37240*/       OPC_MoveParent,
/*37241*/       OPC_Scope, 18, /*->37261*/ // 2 children in Scope
/*37243*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*37245*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*37248*/         OPC_EmitMergeInputChains1_0,
/*37249*/         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)
/*37261*/       /*Scope*/ 18, /*->37280*/
/*37262*/         OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*37264*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*37267*/         OPC_EmitMergeInputChains1_0,
/*37268*/         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)
/*37280*/       0, /*End of Scope*/
/*37281*/     /*Scope*/ 25, /*->37307*/
/*37282*/       OPC_RecordChild1, // #0 = $src
/*37283*/       OPC_Scope, 10, /*->37295*/ // 2 children in Scope
/*37285*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*37287*/         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)
/*37295*/       /*Scope*/ 10, /*->37306*/
/*37296*/         OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*37298*/         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)
/*37306*/       0, /*End of Scope*/
/*37307*/     0, /*End of Scope*/
/*37308*/   /*Scope*/ 89, /*->37398*/
/*37309*/     OPC_CheckInteger, 114|128,3/*498*/, 
/*37312*/     OPC_MoveParent,
/*37313*/     OPC_Scope, 56, /*->37371*/ // 2 children in Scope
/*37315*/       OPC_MoveChild, 1,
/*37317*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*37320*/       OPC_RecordMemRef,
/*37321*/       OPC_RecordNode, // #0 = 'ld' chained node
/*37322*/       OPC_CheckFoldableChainNode,
/*37323*/       OPC_RecordChild1, // #1 = $src
/*37324*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*37326*/       OPC_CheckPredicate, 3, // Predicate_load
/*37328*/       OPC_CheckPredicate, 23, // Predicate_memop
/*37330*/       OPC_MoveParent,
/*37331*/       OPC_Scope, 18, /*->37351*/ // 2 children in Scope
/*37333*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*37335*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*37338*/         OPC_EmitMergeInputChains1_0,
/*37339*/         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)
/*37351*/       /*Scope*/ 18, /*->37370*/
/*37352*/         OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*37354*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*37357*/         OPC_EmitMergeInputChains1_0,
/*37358*/         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)
/*37370*/       0, /*End of Scope*/
/*37371*/     /*Scope*/ 25, /*->37397*/
/*37372*/       OPC_RecordChild1, // #0 = $src
/*37373*/       OPC_Scope, 10, /*->37385*/ // 2 children in Scope
/*37375*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*37377*/         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)
/*37385*/       /*Scope*/ 10, /*->37396*/
/*37386*/         OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*37388*/         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)
/*37396*/       0, /*End of Scope*/
/*37397*/     0, /*End of Scope*/
/*37398*/   /*Scope*/ 89, /*->37488*/
/*37399*/     OPC_CheckInteger, 112|128,3/*496*/, 
/*37402*/     OPC_MoveParent,
/*37403*/     OPC_Scope, 56, /*->37461*/ // 2 children in Scope
/*37405*/       OPC_MoveChild, 1,
/*37407*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*37410*/       OPC_RecordMemRef,
/*37411*/       OPC_RecordNode, // #0 = 'ld' chained node
/*37412*/       OPC_CheckFoldableChainNode,
/*37413*/       OPC_RecordChild1, // #1 = $src
/*37414*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*37416*/       OPC_CheckPredicate, 3, // Predicate_load
/*37418*/       OPC_CheckPredicate, 23, // Predicate_memop
/*37420*/       OPC_MoveParent,
/*37421*/       OPC_Scope, 18, /*->37441*/ // 2 children in Scope
/*37423*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*37425*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*37428*/         OPC_EmitMergeInputChains1_0,
/*37429*/         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)
/*37441*/       /*Scope*/ 18, /*->37460*/
/*37442*/         OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*37444*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*37447*/         OPC_EmitMergeInputChains1_0,
/*37448*/         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)
/*37460*/       0, /*End of Scope*/
/*37461*/     /*Scope*/ 25, /*->37487*/
/*37462*/       OPC_RecordChild1, // #0 = $src
/*37463*/       OPC_Scope, 10, /*->37475*/ // 2 children in Scope
/*37465*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*37467*/         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)
/*37475*/       /*Scope*/ 10, /*->37486*/
/*37476*/         OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*37478*/         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)
/*37486*/       0, /*End of Scope*/
/*37487*/     0, /*End of Scope*/
/*37488*/   /*Scope*/ 94, /*->37583*/
/*37489*/     OPC_CheckInteger, 4|128,4/*516*/, 
/*37492*/     OPC_MoveParent,
/*37493*/     OPC_RecordChild1, // #0 = $src1
/*37494*/     OPC_Scope, 58, /*->37554*/ // 2 children in Scope
/*37496*/       OPC_MoveChild, 2,
/*37498*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*37501*/       OPC_RecordMemRef,
/*37502*/       OPC_RecordNode, // #1 = 'ld' chained node
/*37503*/       OPC_CheckFoldableChainNode,
/*37504*/       OPC_RecordChild1, // #2 = $src2
/*37505*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*37507*/       OPC_CheckPredicate, 3, // Predicate_load
/*37509*/       OPC_CheckPredicate, 23, // Predicate_memop
/*37511*/       OPC_MoveParent,
/*37512*/       OPC_Scope, 19, /*->37533*/ // 2 children in Scope
/*37514*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*37516*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*37519*/         OPC_EmitMergeInputChains1_1,
/*37520*/         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)
/*37533*/       /*Scope*/ 19, /*->37553*/
/*37534*/         OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*37536*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*37539*/         OPC_EmitMergeInputChains1_1,
/*37540*/         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)
/*37553*/       0, /*End of Scope*/
/*37554*/     /*Scope*/ 27, /*->37582*/
/*37555*/       OPC_RecordChild2, // #1 = $src2
/*37556*/       OPC_Scope, 11, /*->37569*/ // 2 children in Scope
/*37558*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*37560*/         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)
/*37569*/       /*Scope*/ 11, /*->37581*/
/*37570*/         OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*37572*/         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)
/*37581*/       0, /*End of Scope*/
/*37582*/     0, /*End of Scope*/
/*37583*/   /*Scope*/ 94, /*->37678*/
/*37584*/     OPC_CheckInteger, 6|128,4/*518*/, 
/*37587*/     OPC_MoveParent,
/*37588*/     OPC_RecordChild1, // #0 = $src1
/*37589*/     OPC_Scope, 58, /*->37649*/ // 2 children in Scope
/*37591*/       OPC_MoveChild, 2,
/*37593*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*37596*/       OPC_RecordMemRef,
/*37597*/       OPC_RecordNode, // #1 = 'ld' chained node
/*37598*/       OPC_CheckFoldableChainNode,
/*37599*/       OPC_RecordChild1, // #2 = $src2
/*37600*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*37602*/       OPC_CheckPredicate, 3, // Predicate_load
/*37604*/       OPC_CheckPredicate, 23, // Predicate_memop
/*37606*/       OPC_MoveParent,
/*37607*/       OPC_Scope, 19, /*->37628*/ // 2 children in Scope
/*37609*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*37611*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*37614*/         OPC_EmitMergeInputChains1_1,
/*37615*/         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)
/*37628*/       /*Scope*/ 19, /*->37648*/
/*37629*/         OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*37631*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*37634*/         OPC_EmitMergeInputChains1_1,
/*37635*/         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)
/*37648*/       0, /*End of Scope*/
/*37649*/     /*Scope*/ 27, /*->37677*/
/*37650*/       OPC_RecordChild2, // #1 = $src2
/*37651*/       OPC_Scope, 11, /*->37664*/ // 2 children in Scope
/*37653*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*37655*/         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)
/*37664*/       /*Scope*/ 11, /*->37676*/
/*37665*/         OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*37667*/         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)
/*37676*/       0, /*End of Scope*/
/*37677*/     0, /*End of Scope*/
/*37678*/   /*Scope*/ 89, /*->37768*/
/*37679*/     OPC_CheckInteger, 14|128,3/*398*/, 
/*37682*/     OPC_MoveParent,
/*37683*/     OPC_Scope, 56, /*->37741*/ // 2 children in Scope
/*37685*/       OPC_MoveChild, 1,
/*37687*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*37690*/       OPC_RecordMemRef,
/*37691*/       OPC_RecordNode, // #0 = 'ld' chained node
/*37692*/       OPC_CheckFoldableChainNode,
/*37693*/       OPC_RecordChild1, // #1 = $src
/*37694*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*37696*/       OPC_CheckPredicate, 3, // Predicate_load
/*37698*/       OPC_CheckPredicate, 23, // Predicate_memop
/*37700*/       OPC_MoveParent,
/*37701*/       OPC_Scope, 18, /*->37721*/ // 2 children in Scope
/*37703*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*37705*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*37708*/         OPC_EmitMergeInputChains1_0,
/*37709*/         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)
/*37721*/       /*Scope*/ 18, /*->37740*/
/*37722*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*37724*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*37727*/         OPC_EmitMergeInputChains1_0,
/*37728*/         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)
/*37740*/       0, /*End of Scope*/
/*37741*/     /*Scope*/ 25, /*->37767*/
/*37742*/       OPC_RecordChild1, // #0 = $src
/*37743*/       OPC_Scope, 10, /*->37755*/ // 2 children in Scope
/*37745*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*37747*/         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)
/*37755*/       /*Scope*/ 10, /*->37766*/
/*37756*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*37758*/         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)
/*37766*/       0, /*End of Scope*/
/*37767*/     0, /*End of Scope*/
/*37768*/   /*Scope*/ 27|128,1/*155*/, /*->37925*/
/*37770*/     OPC_CheckInteger, 19|128,3/*403*/, 
/*37773*/     OPC_MoveParent,
/*37774*/     OPC_Scope, 59, /*->37835*/ // 3 children in Scope
/*37776*/       OPC_RecordChild1, // #0 = $src1
/*37777*/       OPC_MoveChild, 2,
/*37779*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*37782*/       OPC_RecordMemRef,
/*37783*/       OPC_RecordNode, // #1 = 'ld' chained node
/*37784*/       OPC_CheckFoldableChainNode,
/*37785*/       OPC_RecordChild1, // #2 = $src2
/*37786*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*37788*/       OPC_CheckPredicate, 3, // Predicate_load
/*37790*/       OPC_CheckPredicate, 23, // Predicate_memop
/*37792*/       OPC_MoveParent,
/*37793*/       OPC_Scope, 19, /*->37814*/ // 2 children in Scope
/*37795*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*37797*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*37800*/         OPC_EmitMergeInputChains1_1,
/*37801*/         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)
/*37814*/       /*Scope*/ 19, /*->37834*/
/*37815*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*37817*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*37820*/         OPC_EmitMergeInputChains1_1,
/*37821*/         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)
/*37834*/       0, /*End of Scope*/
/*37835*/     /*Scope*/ 59, /*->37895*/
/*37836*/       OPC_MoveChild, 1,
/*37838*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*37841*/       OPC_RecordMemRef,
/*37842*/       OPC_RecordNode, // #0 = 'ld' chained node
/*37843*/       OPC_CheckFoldableChainNode,
/*37844*/       OPC_RecordChild1, // #1 = $src2
/*37845*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*37847*/       OPC_CheckPredicate, 3, // Predicate_load
/*37849*/       OPC_CheckPredicate, 23, // Predicate_memop
/*37851*/       OPC_MoveParent,
/*37852*/       OPC_RecordChild2, // #2 = $src1
/*37853*/       OPC_Scope, 19, /*->37874*/ // 2 children in Scope
/*37855*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*37857*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*37860*/         OPC_EmitMergeInputChains1_0,
/*37861*/         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)
/*37874*/       /*Scope*/ 19, /*->37894*/
/*37875*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*37877*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*37880*/         OPC_EmitMergeInputChains1_0,
/*37881*/         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)
/*37894*/       0, /*End of Scope*/
/*37895*/     /*Scope*/ 28, /*->37924*/
/*37896*/       OPC_RecordChild1, // #0 = $src1
/*37897*/       OPC_RecordChild2, // #1 = $src2
/*37898*/       OPC_Scope, 11, /*->37911*/ // 2 children in Scope
/*37900*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*37902*/         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)
/*37911*/       /*Scope*/ 11, /*->37923*/
/*37912*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*37914*/         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)
/*37923*/       0, /*End of Scope*/
/*37924*/     0, /*End of Scope*/
/*37925*/   /*Scope*/ 27|128,1/*155*/, /*->38082*/
/*37927*/     OPC_CheckInteger, 15|128,3/*399*/, 
/*37930*/     OPC_MoveParent,
/*37931*/     OPC_Scope, 59, /*->37992*/ // 3 children in Scope
/*37933*/       OPC_RecordChild1, // #0 = $src1
/*37934*/       OPC_MoveChild, 2,
/*37936*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*37939*/       OPC_RecordMemRef,
/*37940*/       OPC_RecordNode, // #1 = 'ld' chained node
/*37941*/       OPC_CheckFoldableChainNode,
/*37942*/       OPC_RecordChild1, // #2 = $src2
/*37943*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*37945*/       OPC_CheckPredicate, 3, // Predicate_load
/*37947*/       OPC_CheckPredicate, 23, // Predicate_memop
/*37949*/       OPC_MoveParent,
/*37950*/       OPC_Scope, 19, /*->37971*/ // 2 children in Scope
/*37952*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*37954*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*37957*/         OPC_EmitMergeInputChains1_1,
/*37958*/         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)
/*37971*/       /*Scope*/ 19, /*->37991*/
/*37972*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*37974*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*37977*/         OPC_EmitMergeInputChains1_1,
/*37978*/         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)
/*37991*/       0, /*End of Scope*/
/*37992*/     /*Scope*/ 59, /*->38052*/
/*37993*/       OPC_MoveChild, 1,
/*37995*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*37998*/       OPC_RecordMemRef,
/*37999*/       OPC_RecordNode, // #0 = 'ld' chained node
/*38000*/       OPC_CheckFoldableChainNode,
/*38001*/       OPC_RecordChild1, // #1 = $src2
/*38002*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*38004*/       OPC_CheckPredicate, 3, // Predicate_load
/*38006*/       OPC_CheckPredicate, 23, // Predicate_memop
/*38008*/       OPC_MoveParent,
/*38009*/       OPC_RecordChild2, // #2 = $src1
/*38010*/       OPC_Scope, 19, /*->38031*/ // 2 children in Scope
/*38012*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*38014*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*38017*/         OPC_EmitMergeInputChains1_0,
/*38018*/         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)
/*38031*/       /*Scope*/ 19, /*->38051*/
/*38032*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*38034*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*38037*/         OPC_EmitMergeInputChains1_0,
/*38038*/         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)
/*38051*/       0, /*End of Scope*/
/*38052*/     /*Scope*/ 28, /*->38081*/
/*38053*/       OPC_RecordChild1, // #0 = $src1
/*38054*/       OPC_RecordChild2, // #1 = $src2
/*38055*/       OPC_Scope, 11, /*->38068*/ // 2 children in Scope
/*38057*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*38059*/         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)
/*38068*/       /*Scope*/ 11, /*->38080*/
/*38069*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*38071*/         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)
/*38080*/       0, /*End of Scope*/
/*38081*/     0, /*End of Scope*/
/*38082*/   /*Scope*/ 104, /*->38187*/
/*38083*/     OPC_CheckInteger, 8|128,3/*392*/, 
/*38086*/     OPC_MoveParent,
/*38087*/     OPC_RecordChild1, // #0 = $src1
/*38088*/     OPC_Scope, 63, /*->38153*/ // 2 children in Scope
/*38090*/       OPC_MoveChild, 2,
/*38092*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*38095*/       OPC_RecordMemRef,
/*38096*/       OPC_RecordNode, // #1 = 'ld' chained node
/*38097*/       OPC_CheckFoldableChainNode,
/*38098*/       OPC_RecordChild1, // #2 = $src2
/*38099*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*38101*/       OPC_CheckPredicate, 3, // Predicate_load
/*38103*/       OPC_CheckPredicate, 23, // Predicate_memop
/*38105*/       OPC_MoveParent,
/*38106*/       OPC_RecordChild3, // #3 = $src3
/*38107*/       OPC_Scope, 20, /*->38129*/ // 2 children in Scope
/*38109*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*38111*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*38114*/         OPC_EmitMergeInputChains1_1,
/*38115*/         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)
/*38129*/       /*Scope*/ 22, /*->38152*/
/*38130*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*38132*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*38135*/         OPC_EmitMergeInputChains1_1,
/*38136*/         OPC_EmitCopyToReg, 3, X86::XMM0,
/*38139*/         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)
/*38152*/       0, /*End of Scope*/
/*38153*/     /*Scope*/ 32, /*->38186*/
/*38154*/       OPC_RecordChild2, // #1 = $src2
/*38155*/       OPC_RecordChild3, // #2 = $src3
/*38156*/       OPC_Scope, 12, /*->38170*/ // 2 children in Scope
/*38158*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*38160*/         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)
/*38170*/       /*Scope*/ 14, /*->38185*/
/*38171*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*38173*/         OPC_EmitCopyToReg, 2, X86::XMM0,
/*38176*/         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)
/*38185*/       0, /*End of Scope*/
/*38186*/     0, /*End of Scope*/
/*38187*/   /*Scope*/ 88, /*->38276*/
/*38188*/     OPC_CheckInteger, 111, 
/*38190*/     OPC_MoveParent,
/*38191*/     OPC_Scope, 56, /*->38249*/ // 2 children in Scope
/*38193*/       OPC_MoveChild, 1,
/*38195*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*38198*/       OPC_RecordMemRef,
/*38199*/       OPC_RecordNode, // #0 = 'ld' chained node
/*38200*/       OPC_CheckFoldableChainNode,
/*38201*/       OPC_RecordChild1, // #1 = $src1
/*38202*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*38204*/       OPC_CheckPredicate, 3, // Predicate_load
/*38206*/       OPC_CheckPredicate, 23, // Predicate_memop
/*38208*/       OPC_MoveParent,
/*38209*/       OPC_Scope, 18, /*->38229*/ // 2 children in Scope
/*38211*/         OPC_CheckPatternPredicate, 14, // (Subtarget->hasAVX()) && (Subtarget->hasAES())
/*38213*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #2 #3 #4 #5 #6
/*38216*/         OPC_EmitMergeInputChains1_0,
/*38217*/         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)
/*38229*/       /*Scope*/ 18, /*->38248*/
/*38230*/         OPC_CheckPatternPredicate, 15, // (Subtarget->hasAES())
/*38232*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #2 #3 #4 #5 #6
/*38235*/         OPC_EmitMergeInputChains1_0,
/*38236*/         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)
/*38248*/       0, /*End of Scope*/
/*38249*/     /*Scope*/ 25, /*->38275*/
/*38250*/       OPC_RecordChild1, // #0 = $src1
/*38251*/       OPC_Scope, 10, /*->38263*/ // 2 children in Scope
/*38253*/         OPC_CheckPatternPredicate, 14, // (Subtarget->hasAVX()) && (Subtarget->hasAES())
/*38255*/         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)
/*38263*/       /*Scope*/ 10, /*->38274*/
/*38264*/         OPC_CheckPatternPredicate, 15, // (Subtarget->hasAES())
/*38266*/         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)
/*38274*/       0, /*End of Scope*/
/*38275*/     0, /*End of Scope*/
/*38276*/   /*Scope*/ 42, /*->38319*/
/*38277*/     OPC_CheckInteger, 87|128,2/*343*/, 
/*38280*/     OPC_MoveParent,
/*38281*/     OPC_RecordChild1, // #0 = $src1
/*38282*/     OPC_RecordChild2, // #1 = $src2
/*38283*/     OPC_MoveChild, 2,
/*38285*/     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*38288*/     OPC_MoveParent,
/*38289*/     OPC_Scope, 13, /*->38304*/ // 2 children in Scope
/*38291*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*38293*/       OPC_EmitConvertToTarget, 1,
/*38295*/       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)
/*38304*/     /*Scope*/ 13, /*->38318*/
/*38305*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*38307*/       OPC_EmitConvertToTarget, 1,
/*38309*/       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)
/*38318*/     0, /*End of Scope*/
/*38319*/   /*Scope*/ 42, /*->38362*/
/*38320*/     OPC_CheckInteger, 85|128,2/*341*/, 
/*38323*/     OPC_MoveParent,
/*38324*/     OPC_RecordChild1, // #0 = $src1
/*38325*/     OPC_RecordChild2, // #1 = $src2
/*38326*/     OPC_MoveChild, 2,
/*38328*/     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*38331*/     OPC_MoveParent,
/*38332*/     OPC_Scope, 13, /*->38347*/ // 2 children in Scope
/*38334*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*38336*/       OPC_EmitConvertToTarget, 1,
/*38338*/       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)
/*38347*/     /*Scope*/ 13, /*->38361*/
/*38348*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*38350*/       OPC_EmitConvertToTarget, 1,
/*38352*/       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)
/*38361*/     0, /*End of Scope*/
/*38362*/   /*Scope*/ 42, /*->38405*/
/*38363*/     OPC_CheckInteger, 86|128,2/*342*/, 
/*38366*/     OPC_MoveParent,
/*38367*/     OPC_RecordChild1, // #0 = $src1
/*38368*/     OPC_RecordChild2, // #1 = $src2
/*38369*/     OPC_MoveChild, 2,
/*38371*/     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*38374*/     OPC_MoveParent,
/*38375*/     OPC_Scope, 13, /*->38390*/ // 2 children in Scope
/*38377*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*38379*/       OPC_EmitConvertToTarget, 1,
/*38381*/       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)
/*38390*/     /*Scope*/ 13, /*->38404*/
/*38391*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*38393*/       OPC_EmitConvertToTarget, 1,
/*38395*/       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)
/*38404*/     0, /*End of Scope*/
/*38405*/   /*Scope*/ 42, /*->38448*/
/*38406*/     OPC_CheckInteger, 99|128,2/*355*/, 
/*38409*/     OPC_MoveParent,
/*38410*/     OPC_RecordChild1, // #0 = $src1
/*38411*/     OPC_RecordChild2, // #1 = $src2
/*38412*/     OPC_MoveChild, 2,
/*38414*/     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*38417*/     OPC_MoveParent,
/*38418*/     OPC_Scope, 13, /*->38433*/ // 2 children in Scope
/*38420*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*38422*/       OPC_EmitConvertToTarget, 1,
/*38424*/       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)
/*38433*/     /*Scope*/ 13, /*->38447*/
/*38434*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*38436*/       OPC_EmitConvertToTarget, 1,
/*38438*/       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)
/*38447*/     0, /*End of Scope*/
/*38448*/   /*Scope*/ 42, /*->38491*/
/*38449*/     OPC_CheckInteger, 97|128,2/*353*/, 
/*38452*/     OPC_MoveParent,
/*38453*/     OPC_RecordChild1, // #0 = $src1
/*38454*/     OPC_RecordChild2, // #1 = $src2
/*38455*/     OPC_MoveChild, 2,
/*38457*/     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*38460*/     OPC_MoveParent,
/*38461*/     OPC_Scope, 13, /*->38476*/ // 2 children in Scope
/*38463*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*38465*/       OPC_EmitConvertToTarget, 1,
/*38467*/       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)
/*38476*/     /*Scope*/ 13, /*->38490*/
/*38477*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*38479*/       OPC_EmitConvertToTarget, 1,
/*38481*/       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)
/*38490*/     0, /*End of Scope*/
/*38491*/   /*Scope*/ 42, /*->38534*/
/*38492*/     OPC_CheckInteger, 98|128,2/*354*/, 
/*38495*/     OPC_MoveParent,
/*38496*/     OPC_RecordChild1, // #0 = $src1
/*38497*/     OPC_RecordChild2, // #1 = $src2
/*38498*/     OPC_MoveChild, 2,
/*38500*/     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*38503*/     OPC_MoveParent,
/*38504*/     OPC_Scope, 13, /*->38519*/ // 2 children in Scope
/*38506*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*38508*/       OPC_EmitConvertToTarget, 1,
/*38510*/       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)
/*38519*/     /*Scope*/ 13, /*->38533*/
/*38520*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*38522*/       OPC_EmitConvertToTarget, 1,
/*38524*/       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)
/*38533*/     0, /*End of Scope*/
/*38534*/   /*Scope*/ 42, /*->38577*/
/*38535*/     OPC_CheckInteger, 91|128,2/*347*/, 
/*38538*/     OPC_MoveParent,
/*38539*/     OPC_RecordChild1, // #0 = $src1
/*38540*/     OPC_RecordChild2, // #1 = $src2
/*38541*/     OPC_MoveChild, 2,
/*38543*/     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*38546*/     OPC_MoveParent,
/*38547*/     OPC_Scope, 13, /*->38562*/ // 2 children in Scope
/*38549*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*38551*/       OPC_EmitConvertToTarget, 1,
/*38553*/       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)
/*38562*/     /*Scope*/ 13, /*->38576*/
/*38563*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*38565*/       OPC_EmitConvertToTarget, 1,
/*38567*/       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)
/*38576*/     0, /*End of Scope*/
/*38577*/   /*Scope*/ 42, /*->38620*/
/*38578*/     OPC_CheckInteger, 90|128,2/*346*/, 
/*38581*/     OPC_MoveParent,
/*38582*/     OPC_RecordChild1, // #0 = $src1
/*38583*/     OPC_RecordChild2, // #1 = $src2
/*38584*/     OPC_MoveChild, 2,
/*38586*/     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*38589*/     OPC_MoveParent,
/*38590*/     OPC_Scope, 13, /*->38605*/ // 2 children in Scope
/*38592*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*38594*/       OPC_EmitConvertToTarget, 1,
/*38596*/       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)
/*38605*/     /*Scope*/ 13, /*->38619*/
/*38606*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*38608*/       OPC_EmitConvertToTarget, 1,
/*38610*/       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)
/*38619*/     0, /*End of Scope*/
/*38620*/   /*Scope*/ 48, /*->38669*/
/*38621*/     OPC_CheckInteger, 81|128,2/*337*/, 
/*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::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))
/*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::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))
/*38668*/     0, /*End of Scope*/
/*38669*/   /*Scope*/ 48, /*->38718*/
/*38670*/     OPC_CheckInteger, 93|128,2/*349*/, 
/*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, 16, /*->38700*/ // 2 children in Scope
/*38684*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*38686*/       OPC_EmitConvertToTarget, 1,
/*38688*/       OPC_EmitNodeXForm, 0, 2, // BYTE_imm
/*38691*/       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))
/*38700*/     /*Scope*/ 16, /*->38717*/
/*38701*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*38703*/       OPC_EmitConvertToTarget, 1,
/*38705*/       OPC_EmitNodeXForm, 0, 2, // BYTE_imm
/*38708*/       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))
/*38717*/     0, /*End of Scope*/
/*38718*/   /*Scope*/ 42, /*->38761*/
/*38719*/     OPC_CheckInteger, 82|128,2/*338*/, 
/*38722*/     OPC_MoveParent,
/*38723*/     OPC_RecordChild1, // #0 = $src1
/*38724*/     OPC_RecordChild2, // #1 = $src2
/*38725*/     OPC_MoveChild, 2,
/*38727*/     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*38730*/     OPC_MoveParent,
/*38731*/     OPC_Scope, 13, /*->38746*/ // 2 children in Scope
/*38733*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*38735*/       OPC_EmitConvertToTarget, 1,
/*38737*/       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)
/*38746*/     /*Scope*/ 13, /*->38760*/
/*38747*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*38749*/       OPC_EmitConvertToTarget, 1,
/*38751*/       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)
/*38760*/     0, /*End of Scope*/
/*38761*/   /*Scope*/ 42, /*->38804*/
/*38762*/     OPC_CheckInteger, 94|128,2/*350*/, 
/*38765*/     OPC_MoveParent,
/*38766*/     OPC_RecordChild1, // #0 = $src1
/*38767*/     OPC_RecordChild2, // #1 = $src2
/*38768*/     OPC_MoveChild, 2,
/*38770*/     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*38773*/     OPC_MoveParent,
/*38774*/     OPC_Scope, 13, /*->38789*/ // 2 children in Scope
/*38776*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*38778*/       OPC_EmitConvertToTarget, 1,
/*38780*/       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)
/*38789*/     /*Scope*/ 13, /*->38803*/
/*38790*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*38792*/       OPC_EmitConvertToTarget, 1,
/*38794*/       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)
/*38803*/     0, /*End of Scope*/
/*38804*/   /*Scope*/ 25, /*->38830*/
/*38805*/     OPC_CheckInteger, 49|128,1/*177*/, 
/*38808*/     OPC_MoveParent,
/*38809*/     OPC_RecordChild1, // #0 = $src1
/*38810*/     OPC_RecordChild2, // #1 = $src2
/*38811*/     OPC_RecordChild3, // #2 = $src3
/*38812*/     OPC_MoveChild, 3,
/*38814*/     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*38817*/     OPC_MoveParent,
/*38818*/     OPC_EmitConvertToTarget, 2,
/*38820*/     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)
/*38830*/   /*Scope*/ 23, /*->38854*/
/*38831*/     OPC_CheckInteger, 46|128,1/*174*/, 
/*38834*/     OPC_MoveParent,
/*38835*/     OPC_RecordChild1, // #0 = $src1
/*38836*/     OPC_RecordChild2, // #1 = $src2
/*38837*/     OPC_MoveChild, 2,
/*38839*/     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*38842*/     OPC_MoveParent,
/*38843*/     OPC_EmitConvertToTarget, 1,
/*38845*/     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)
/*38854*/   /*Scope*/ 0|128,1/*128*/, /*->38984*/
/*38856*/     OPC_CheckInteger, 126|128,2/*382*/, 
/*38859*/     OPC_MoveParent,
/*38860*/     OPC_RecordChild1, // #0 = $src1
/*38861*/     OPC_Scope, 79, /*->38942*/ // 2 children in Scope
/*38863*/       OPC_MoveChild, 2,
/*38865*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*38868*/       OPC_MoveChild, 0,
/*38870*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*38873*/       OPC_RecordMemRef,
/*38874*/       OPC_RecordNode, // #1 = 'ld' chained node
/*38875*/       OPC_CheckFoldableChainNode,
/*38876*/       OPC_RecordChild1, // #2 = $src2
/*38877*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*38879*/       OPC_CheckPredicate, 3, // Predicate_load
/*38881*/       OPC_CheckPredicate, 23, // Predicate_memop
/*38883*/       OPC_CheckType, MVT::v16i8,
/*38885*/       OPC_MoveParent,
/*38886*/       OPC_MoveParent,
/*38887*/       OPC_RecordChild3, // #3 = $src3
/*38888*/       OPC_MoveChild, 3,
/*38890*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*38893*/       OPC_MoveParent,
/*38894*/       OPC_Scope, 22, /*->38918*/ // 2 children in Scope
/*38896*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*38898*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*38901*/         OPC_EmitMergeInputChains1_1,
/*38902*/         OPC_EmitConvertToTarget, 3,
/*38904*/         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)
/*38918*/       /*Scope*/ 22, /*->38941*/
/*38919*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*38921*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*38924*/         OPC_EmitMergeInputChains1_1,
/*38925*/         OPC_EmitConvertToTarget, 3,
/*38927*/         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)
/*38941*/       0, /*End of Scope*/
/*38942*/     /*Scope*/ 40, /*->38983*/
/*38943*/       OPC_RecordChild2, // #1 = $src2
/*38944*/       OPC_RecordChild3, // #2 = $src3
/*38945*/       OPC_MoveChild, 3,
/*38947*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*38950*/       OPC_MoveParent,
/*38951*/       OPC_Scope, 14, /*->38967*/ // 2 children in Scope
/*38953*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*38955*/         OPC_EmitConvertToTarget, 2,
/*38957*/         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)
/*38967*/       /*Scope*/ 14, /*->38982*/
/*38968*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*38970*/         OPC_EmitConvertToTarget, 2,
/*38972*/         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)
/*38982*/       0, /*End of Scope*/
/*38983*/     0, /*End of Scope*/
/*38984*/   /*Scope*/ 0|128,1/*128*/, /*->39114*/
/*38986*/     OPC_CheckInteger, 125|128,2/*381*/, 
/*38989*/     OPC_MoveParent,
/*38990*/     OPC_RecordChild1, // #0 = $src1
/*38991*/     OPC_Scope, 79, /*->39072*/ // 2 children in Scope
/*38993*/       OPC_MoveChild, 2,
/*38995*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*38998*/       OPC_MoveChild, 0,
/*39000*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*39003*/       OPC_RecordMemRef,
/*39004*/       OPC_RecordNode, // #1 = 'ld' chained node
/*39005*/       OPC_CheckFoldableChainNode,
/*39006*/       OPC_RecordChild1, // #2 = $src2
/*39007*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*39009*/       OPC_CheckPredicate, 3, // Predicate_load
/*39011*/       OPC_CheckPredicate, 23, // Predicate_memop
/*39013*/       OPC_CheckType, MVT::v16i8,
/*39015*/       OPC_MoveParent,
/*39016*/       OPC_MoveParent,
/*39017*/       OPC_RecordChild3, // #3 = $src3
/*39018*/       OPC_MoveChild, 3,
/*39020*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*39023*/       OPC_MoveParent,
/*39024*/       OPC_Scope, 22, /*->39048*/ // 2 children in Scope
/*39026*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*39028*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*39031*/         OPC_EmitMergeInputChains1_1,
/*39032*/         OPC_EmitConvertToTarget, 3,
/*39034*/         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)
/*39048*/       /*Scope*/ 22, /*->39071*/
/*39049*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*39051*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*39054*/         OPC_EmitMergeInputChains1_1,
/*39055*/         OPC_EmitConvertToTarget, 3,
/*39057*/         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)
/*39071*/       0, /*End of Scope*/
/*39072*/     /*Scope*/ 40, /*->39113*/
/*39073*/       OPC_RecordChild2, // #1 = $src2
/*39074*/       OPC_RecordChild3, // #2 = $src3
/*39075*/       OPC_MoveChild, 3,
/*39077*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*39080*/       OPC_MoveParent,
/*39081*/       OPC_Scope, 14, /*->39097*/ // 2 children in Scope
/*39083*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*39085*/         OPC_EmitConvertToTarget, 2,
/*39087*/         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)
/*39097*/       /*Scope*/ 14, /*->39112*/
/*39098*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*39100*/         OPC_EmitConvertToTarget, 2,
/*39102*/         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)
/*39112*/       0, /*End of Scope*/
/*39113*/     0, /*End of Scope*/
/*39114*/   /*Scope*/ 83, /*->39198*/
/*39115*/     OPC_CheckInteger, 116, 
/*39117*/     OPC_MoveParent,
/*39118*/     OPC_RecordChild1, // #0 = $src1
/*39119*/     OPC_Scope, 53, /*->39174*/ // 2 children in Scope
/*39121*/       OPC_MoveChild, 2,
/*39123*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*39126*/       OPC_MoveChild, 0,
/*39128*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*39131*/       OPC_RecordMemRef,
/*39132*/       OPC_RecordNode, // #1 = 'ld' chained node
/*39133*/       OPC_CheckFoldableChainNode,
/*39134*/       OPC_RecordChild1, // #2 = $src2
/*39135*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*39137*/       OPC_CheckPredicate, 3, // Predicate_load
/*39139*/       OPC_CheckPredicate, 23, // Predicate_memop
/*39141*/       OPC_CheckType, MVT::v32i8,
/*39143*/       OPC_MoveParent,
/*39144*/       OPC_MoveParent,
/*39145*/       OPC_RecordChild3, // #3 = $src3
/*39146*/       OPC_MoveChild, 3,
/*39148*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*39151*/       OPC_MoveParent,
/*39152*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*39154*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*39157*/       OPC_EmitMergeInputChains1_1,
/*39158*/       OPC_EmitConvertToTarget, 3,
/*39160*/       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)
/*39174*/     /*Scope*/ 22, /*->39197*/
/*39175*/       OPC_RecordChild2, // #1 = $src2
/*39176*/       OPC_RecordChild3, // #2 = $src3
/*39177*/       OPC_MoveChild, 3,
/*39179*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*39182*/       OPC_MoveParent,
/*39183*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*39185*/       OPC_EmitConvertToTarget, 2,
/*39187*/       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)
/*39197*/     0, /*End of Scope*/
/*39198*/   /*Scope*/ 83, /*->39282*/
/*39199*/     OPC_CheckInteger, 115, 
/*39201*/     OPC_MoveParent,
/*39202*/     OPC_RecordChild1, // #0 = $src1
/*39203*/     OPC_Scope, 53, /*->39258*/ // 2 children in Scope
/*39205*/       OPC_MoveChild, 2,
/*39207*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*39210*/       OPC_MoveChild, 0,
/*39212*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*39215*/       OPC_RecordMemRef,
/*39216*/       OPC_RecordNode, // #1 = 'ld' chained node
/*39217*/       OPC_CheckFoldableChainNode,
/*39218*/       OPC_RecordChild1, // #2 = $src2
/*39219*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*39221*/       OPC_CheckPredicate, 3, // Predicate_load
/*39223*/       OPC_CheckPredicate, 23, // Predicate_memop
/*39225*/       OPC_CheckType, MVT::v32i8,
/*39227*/       OPC_MoveParent,
/*39228*/       OPC_MoveParent,
/*39229*/       OPC_RecordChild3, // #3 = $src3
/*39230*/       OPC_MoveChild, 3,
/*39232*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*39235*/       OPC_MoveParent,
/*39236*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*39238*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*39241*/       OPC_EmitMergeInputChains1_1,
/*39242*/       OPC_EmitConvertToTarget, 3,
/*39244*/       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)
/*39258*/     /*Scope*/ 22, /*->39281*/
/*39259*/       OPC_RecordChild2, // #1 = $src2
/*39260*/       OPC_RecordChild3, // #2 = $src3
/*39261*/       OPC_MoveChild, 3,
/*39263*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*39266*/       OPC_MoveParent,
/*39267*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*39269*/       OPC_EmitConvertToTarget, 2,
/*39271*/       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)
/*39281*/     0, /*End of Scope*/
/*39282*/   /*Scope*/ 82|128,1/*210*/, /*->39494*/
/*39284*/     OPC_CheckInteger, 2|128,3/*386*/, 
/*39287*/     OPC_MoveParent,
/*39288*/     OPC_Scope, 80, /*->39370*/ // 3 children in Scope
/*39290*/       OPC_RecordChild1, // #0 = $src1
/*39291*/       OPC_MoveChild, 2,
/*39293*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*39296*/       OPC_MoveChild, 0,
/*39298*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*39301*/       OPC_RecordMemRef,
/*39302*/       OPC_RecordNode, // #1 = 'ld' chained node
/*39303*/       OPC_CheckFoldableChainNode,
/*39304*/       OPC_RecordChild1, // #2 = $src2
/*39305*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*39307*/       OPC_CheckPredicate, 3, // Predicate_load
/*39309*/       OPC_CheckPredicate, 23, // Predicate_memop
/*39311*/       OPC_CheckType, MVT::v16i8,
/*39313*/       OPC_MoveParent,
/*39314*/       OPC_MoveParent,
/*39315*/       OPC_RecordChild3, // #3 = $src3
/*39316*/       OPC_MoveChild, 3,
/*39318*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*39321*/       OPC_MoveParent,
/*39322*/       OPC_Scope, 22, /*->39346*/ // 2 children in Scope
/*39324*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*39326*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*39329*/         OPC_EmitMergeInputChains1_1,
/*39330*/         OPC_EmitConvertToTarget, 3,
/*39332*/         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)
/*39346*/       /*Scope*/ 22, /*->39369*/
/*39347*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*39349*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*39352*/         OPC_EmitMergeInputChains1_1,
/*39353*/         OPC_EmitConvertToTarget, 3,
/*39355*/         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)
/*39369*/       0, /*End of Scope*/
/*39370*/     /*Scope*/ 80, /*->39451*/
/*39371*/       OPC_MoveChild, 1,
/*39373*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*39376*/       OPC_MoveChild, 0,
/*39378*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*39381*/       OPC_RecordMemRef,
/*39382*/       OPC_RecordNode, // #0 = 'ld' chained node
/*39383*/       OPC_CheckFoldableChainNode,
/*39384*/       OPC_RecordChild1, // #1 = $src2
/*39385*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*39387*/       OPC_CheckPredicate, 3, // Predicate_load
/*39389*/       OPC_CheckPredicate, 23, // Predicate_memop
/*39391*/       OPC_CheckType, MVT::v16i8,
/*39393*/       OPC_MoveParent,
/*39394*/       OPC_MoveParent,
/*39395*/       OPC_RecordChild2, // #2 = $src1
/*39396*/       OPC_RecordChild3, // #3 = $src3
/*39397*/       OPC_MoveChild, 3,
/*39399*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*39402*/       OPC_MoveParent,
/*39403*/       OPC_Scope, 22, /*->39427*/ // 2 children in Scope
/*39405*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*39407*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*39410*/         OPC_EmitMergeInputChains1_0,
/*39411*/         OPC_EmitConvertToTarget, 3,
/*39413*/         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)
/*39427*/       /*Scope*/ 22, /*->39450*/
/*39428*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*39430*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*39433*/         OPC_EmitMergeInputChains1_0,
/*39434*/         OPC_EmitConvertToTarget, 3,
/*39436*/         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)
/*39450*/       0, /*End of Scope*/
/*39451*/     /*Scope*/ 41, /*->39493*/
/*39452*/       OPC_RecordChild1, // #0 = $src1
/*39453*/       OPC_RecordChild2, // #1 = $src2
/*39454*/       OPC_RecordChild3, // #2 = $src3
/*39455*/       OPC_MoveChild, 3,
/*39457*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*39460*/       OPC_MoveParent,
/*39461*/       OPC_Scope, 14, /*->39477*/ // 2 children in Scope
/*39463*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*39465*/         OPC_EmitConvertToTarget, 2,
/*39467*/         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)
/*39477*/       /*Scope*/ 14, /*->39492*/
/*39478*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*39480*/         OPC_EmitConvertToTarget, 2,
/*39482*/         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)
/*39492*/       0, /*End of Scope*/
/*39493*/     0, /*End of Scope*/
/*39494*/   /*Scope*/ 82|128,1/*210*/, /*->39706*/
/*39496*/     OPC_CheckInteger, 1|128,3/*385*/, 
/*39499*/     OPC_MoveParent,
/*39500*/     OPC_Scope, 80, /*->39582*/ // 3 children in Scope
/*39502*/       OPC_RecordChild1, // #0 = $src1
/*39503*/       OPC_MoveChild, 2,
/*39505*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*39508*/       OPC_MoveChild, 0,
/*39510*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*39513*/       OPC_RecordMemRef,
/*39514*/       OPC_RecordNode, // #1 = 'ld' chained node
/*39515*/       OPC_CheckFoldableChainNode,
/*39516*/       OPC_RecordChild1, // #2 = $src2
/*39517*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*39519*/       OPC_CheckPredicate, 3, // Predicate_load
/*39521*/       OPC_CheckPredicate, 23, // Predicate_memop
/*39523*/       OPC_CheckType, MVT::v16i8,
/*39525*/       OPC_MoveParent,
/*39526*/       OPC_MoveParent,
/*39527*/       OPC_RecordChild3, // #3 = $src3
/*39528*/       OPC_MoveChild, 3,
/*39530*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*39533*/       OPC_MoveParent,
/*39534*/       OPC_Scope, 22, /*->39558*/ // 2 children in Scope
/*39536*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*39538*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*39541*/         OPC_EmitMergeInputChains1_1,
/*39542*/         OPC_EmitConvertToTarget, 3,
/*39544*/         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)
/*39558*/       /*Scope*/ 22, /*->39581*/
/*39559*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*39561*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*39564*/         OPC_EmitMergeInputChains1_1,
/*39565*/         OPC_EmitConvertToTarget, 3,
/*39567*/         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)
/*39581*/       0, /*End of Scope*/
/*39582*/     /*Scope*/ 80, /*->39663*/
/*39583*/       OPC_MoveChild, 1,
/*39585*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*39588*/       OPC_MoveChild, 0,
/*39590*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*39593*/       OPC_RecordMemRef,
/*39594*/       OPC_RecordNode, // #0 = 'ld' chained node
/*39595*/       OPC_CheckFoldableChainNode,
/*39596*/       OPC_RecordChild1, // #1 = $src2
/*39597*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*39599*/       OPC_CheckPredicate, 3, // Predicate_load
/*39601*/       OPC_CheckPredicate, 23, // Predicate_memop
/*39603*/       OPC_CheckType, MVT::v16i8,
/*39605*/       OPC_MoveParent,
/*39606*/       OPC_MoveParent,
/*39607*/       OPC_RecordChild2, // #2 = $src1
/*39608*/       OPC_RecordChild3, // #3 = $src3
/*39609*/       OPC_MoveChild, 3,
/*39611*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*39614*/       OPC_MoveParent,
/*39615*/       OPC_Scope, 22, /*->39639*/ // 2 children in Scope
/*39617*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*39619*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*39622*/         OPC_EmitMergeInputChains1_0,
/*39623*/         OPC_EmitConvertToTarget, 3,
/*39625*/         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)
/*39639*/       /*Scope*/ 22, /*->39662*/
/*39640*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*39642*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*39645*/         OPC_EmitMergeInputChains1_0,
/*39646*/         OPC_EmitConvertToTarget, 3,
/*39648*/         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)
/*39662*/       0, /*End of Scope*/
/*39663*/     /*Scope*/ 41, /*->39705*/
/*39664*/       OPC_RecordChild1, // #0 = $src1
/*39665*/       OPC_RecordChild2, // #1 = $src2
/*39666*/       OPC_RecordChild3, // #2 = $src3
/*39667*/       OPC_MoveChild, 3,
/*39669*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*39672*/       OPC_MoveParent,
/*39673*/       OPC_Scope, 14, /*->39689*/ // 2 children in Scope
/*39675*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*39677*/         OPC_EmitConvertToTarget, 2,
/*39679*/         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)
/*39689*/       /*Scope*/ 14, /*->39704*/
/*39690*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*39692*/         OPC_EmitConvertToTarget, 2,
/*39694*/         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)
/*39704*/       0, /*End of Scope*/
/*39705*/     0, /*End of Scope*/
/*39706*/   /*Scope*/ 84, /*->39791*/
/*39707*/     OPC_CheckInteger, 1|128,1/*129*/, 
/*39710*/     OPC_MoveParent,
/*39711*/     OPC_RecordChild1, // #0 = $src1
/*39712*/     OPC_Scope, 53, /*->39767*/ // 2 children in Scope
/*39714*/       OPC_MoveChild, 2,
/*39716*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*39719*/       OPC_MoveChild, 0,
/*39721*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*39724*/       OPC_RecordMemRef,
/*39725*/       OPC_RecordNode, // #1 = 'ld' chained node
/*39726*/       OPC_CheckFoldableChainNode,
/*39727*/       OPC_RecordChild1, // #2 = $src2
/*39728*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*39730*/       OPC_CheckPredicate, 3, // Predicate_load
/*39732*/       OPC_CheckPredicate, 23, // Predicate_memop
/*39734*/       OPC_CheckType, MVT::v32i8,
/*39736*/       OPC_MoveParent,
/*39737*/       OPC_MoveParent,
/*39738*/       OPC_RecordChild3, // #3 = $src3
/*39739*/       OPC_MoveChild, 3,
/*39741*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*39744*/       OPC_MoveParent,
/*39745*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*39747*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*39750*/       OPC_EmitMergeInputChains1_1,
/*39751*/       OPC_EmitConvertToTarget, 3,
/*39753*/       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)
/*39767*/     /*Scope*/ 22, /*->39790*/
/*39768*/       OPC_RecordChild2, // #1 = $src2
/*39769*/       OPC_RecordChild3, // #2 = $src3
/*39770*/       OPC_MoveChild, 3,
/*39772*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*39775*/       OPC_MoveParent,
/*39776*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*39778*/       OPC_EmitConvertToTarget, 2,
/*39780*/       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)
/*39790*/     0, /*End of Scope*/
/*39791*/   /*Scope*/ 97, /*->39889*/
/*39792*/     OPC_CheckInteger, 30|128,2/*286*/, 
/*39795*/     OPC_MoveParent,
/*39796*/     OPC_Scope, 64, /*->39862*/ // 2 children in Scope
/*39798*/       OPC_MoveChild, 1,
/*39800*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*39803*/       OPC_MoveChild, 0,
/*39805*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*39808*/       OPC_RecordMemRef,
/*39809*/       OPC_RecordNode, // #0 = 'ld' chained node
/*39810*/       OPC_CheckFoldableChainNode,
/*39811*/       OPC_RecordChild1, // #1 = $src
/*39812*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*39814*/       OPC_CheckPredicate, 3, // Predicate_load
/*39816*/       OPC_CheckPredicate, 23, // Predicate_memop
/*39818*/       OPC_CheckType, MVT::v2i64,
/*39820*/       OPC_MoveParent,
/*39821*/       OPC_MoveParent,
/*39822*/       OPC_Scope, 18, /*->39842*/ // 2 children in Scope
/*39824*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*39826*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*39829*/         OPC_EmitMergeInputChains1_0,
/*39830*/         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)
/*39842*/       /*Scope*/ 18, /*->39861*/
/*39843*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*39845*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*39848*/         OPC_EmitMergeInputChains1_0,
/*39849*/         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)
/*39861*/       0, /*End of Scope*/
/*39862*/     /*Scope*/ 25, /*->39888*/
/*39863*/       OPC_RecordChild1, // #0 = $src
/*39864*/       OPC_Scope, 10, /*->39876*/ // 2 children in Scope
/*39866*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*39868*/         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)
/*39876*/       /*Scope*/ 10, /*->39887*/
/*39877*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*39879*/         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)
/*39887*/       0, /*End of Scope*/
/*39888*/     0, /*End of Scope*/
/*39889*/   /*Scope*/ 97, /*->39987*/
/*39890*/     OPC_CheckInteger, 29|128,2/*285*/, 
/*39893*/     OPC_MoveParent,
/*39894*/     OPC_Scope, 64, /*->39960*/ // 2 children in Scope
/*39896*/       OPC_MoveChild, 1,
/*39898*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*39901*/       OPC_MoveChild, 0,
/*39903*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*39906*/       OPC_RecordMemRef,
/*39907*/       OPC_RecordNode, // #0 = 'ld' chained node
/*39908*/       OPC_CheckFoldableChainNode,
/*39909*/       OPC_RecordChild1, // #1 = $src
/*39910*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*39912*/       OPC_CheckPredicate, 3, // Predicate_load
/*39914*/       OPC_CheckPredicate, 23, // Predicate_memop
/*39916*/       OPC_CheckType, MVT::v2i64,
/*39918*/       OPC_MoveParent,
/*39919*/       OPC_MoveParent,
/*39920*/       OPC_Scope, 18, /*->39940*/ // 2 children in Scope
/*39922*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*39924*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*39927*/         OPC_EmitMergeInputChains1_0,
/*39928*/         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)
/*39940*/       /*Scope*/ 18, /*->39959*/
/*39941*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*39943*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*39946*/         OPC_EmitMergeInputChains1_0,
/*39947*/         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)
/*39959*/       0, /*End of Scope*/
/*39960*/     /*Scope*/ 25, /*->39986*/
/*39961*/       OPC_RecordChild1, // #0 = $src
/*39962*/       OPC_Scope, 10, /*->39974*/ // 2 children in Scope
/*39964*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*39966*/         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)
/*39974*/       /*Scope*/ 10, /*->39985*/
/*39975*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*39977*/         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)
/*39985*/       0, /*End of Scope*/
/*39986*/     0, /*End of Scope*/
/*39987*/   /*Scope*/ 118, /*->40106*/
/*39988*/     OPC_CheckInteger, 65|128,3/*449*/, 
/*39991*/     OPC_MoveParent,
/*39992*/     OPC_RecordChild1, // #0 = $src1
/*39993*/     OPC_Scope, 69, /*->40064*/ // 2 children in Scope
/*39995*/       OPC_MoveChild, 2,
/*39997*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*40000*/       OPC_RecordMemRef,
/*40001*/       OPC_RecordNode, // #1 = 'ld' chained node
/*40002*/       OPC_CheckFoldableChainNode,
/*40003*/       OPC_RecordChild1, // #2 = $src
/*40004*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*40006*/       OPC_CheckPredicate, 3, // Predicate_load
/*40008*/       OPC_MoveParent,
/*40009*/       OPC_RecordChild3, // #3 = $cc
/*40010*/       OPC_MoveChild, 3,
/*40012*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*40015*/       OPC_MoveParent,
/*40016*/       OPC_Scope, 22, /*->40040*/ // 2 children in Scope
/*40018*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*40020*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src #4 #5 #6 #7 #8
/*40023*/         OPC_EmitMergeInputChains1_1,
/*40024*/         OPC_EmitConvertToTarget, 3,
/*40026*/         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)
/*40040*/       /*Scope*/ 22, /*->40063*/
/*40041*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*40043*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src #4 #5 #6 #7 #8
/*40046*/         OPC_EmitMergeInputChains1_1,
/*40047*/         OPC_EmitConvertToTarget, 3,
/*40049*/         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)
/*40063*/       0, /*End of Scope*/
/*40064*/     /*Scope*/ 40, /*->40105*/
/*40065*/       OPC_RecordChild2, // #1 = $src
/*40066*/       OPC_RecordChild3, // #2 = $cc
/*40067*/       OPC_MoveChild, 3,
/*40069*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*40072*/       OPC_MoveParent,
/*40073*/       OPC_Scope, 14, /*->40089*/ // 2 children in Scope
/*40075*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*40077*/         OPC_EmitConvertToTarget, 2,
/*40079*/         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)
/*40089*/       /*Scope*/ 14, /*->40104*/
/*40090*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*40092*/         OPC_EmitConvertToTarget, 2,
/*40094*/         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)
/*40104*/       0, /*End of Scope*/
/*40105*/     0, /*End of Scope*/
/*40106*/   /*Scope*/ 118, /*->40225*/
/*40107*/     OPC_CheckInteger, 22|128,2/*278*/, 
/*40110*/     OPC_MoveParent,
/*40111*/     OPC_RecordChild1, // #0 = $src1
/*40112*/     OPC_Scope, 69, /*->40183*/ // 2 children in Scope
/*40114*/       OPC_MoveChild, 2,
/*40116*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*40119*/       OPC_RecordMemRef,
/*40120*/       OPC_RecordNode, // #1 = 'ld' chained node
/*40121*/       OPC_CheckFoldableChainNode,
/*40122*/       OPC_RecordChild1, // #2 = $src
/*40123*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*40125*/       OPC_CheckPredicate, 3, // Predicate_load
/*40127*/       OPC_MoveParent,
/*40128*/       OPC_RecordChild3, // #3 = $cc
/*40129*/       OPC_MoveChild, 3,
/*40131*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*40134*/       OPC_MoveParent,
/*40135*/       OPC_Scope, 22, /*->40159*/ // 2 children in Scope
/*40137*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*40139*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src #4 #5 #6 #7 #8
/*40142*/         OPC_EmitMergeInputChains1_1,
/*40143*/         OPC_EmitConvertToTarget, 3,
/*40145*/         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)
/*40159*/       /*Scope*/ 22, /*->40182*/
/*40160*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*40162*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src #4 #5 #6 #7 #8
/*40165*/         OPC_EmitMergeInputChains1_1,
/*40166*/         OPC_EmitConvertToTarget, 3,
/*40168*/         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)
/*40182*/       0, /*End of Scope*/
/*40183*/     /*Scope*/ 40, /*->40224*/
/*40184*/       OPC_RecordChild2, // #1 = $src
/*40185*/       OPC_RecordChild3, // #2 = $cc
/*40186*/       OPC_MoveChild, 3,
/*40188*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*40191*/       OPC_MoveParent,
/*40192*/       OPC_Scope, 14, /*->40208*/ // 2 children in Scope
/*40194*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*40196*/         OPC_EmitConvertToTarget, 2,
/*40198*/         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)
/*40208*/       /*Scope*/ 14, /*->40223*/
/*40209*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*40211*/         OPC_EmitConvertToTarget, 2,
/*40213*/         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)
/*40223*/       0, /*End of Scope*/
/*40224*/     0, /*End of Scope*/
/*40225*/   /*Scope*/ 120, /*->40346*/
/*40226*/     OPC_CheckInteger, 64|128,3/*448*/, 
/*40229*/     OPC_MoveParent,
/*40230*/     OPC_RecordChild1, // #0 = $src1
/*40231*/     OPC_Scope, 71, /*->40304*/ // 2 children in Scope
/*40233*/       OPC_MoveChild, 2,
/*40235*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*40238*/       OPC_RecordMemRef,
/*40239*/       OPC_RecordNode, // #1 = 'ld' chained node
/*40240*/       OPC_CheckFoldableChainNode,
/*40241*/       OPC_RecordChild1, // #2 = $src2
/*40242*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*40244*/       OPC_CheckPredicate, 3, // Predicate_load
/*40246*/       OPC_CheckPredicate, 23, // Predicate_memop
/*40248*/       OPC_MoveParent,
/*40249*/       OPC_RecordChild3, // #3 = $cc
/*40250*/       OPC_MoveChild, 3,
/*40252*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*40255*/       OPC_MoveParent,
/*40256*/       OPC_Scope, 22, /*->40280*/ // 2 children in Scope
/*40258*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*40260*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*40263*/         OPC_EmitMergeInputChains1_1,
/*40264*/         OPC_EmitConvertToTarget, 3,
/*40266*/         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)
/*40280*/       /*Scope*/ 22, /*->40303*/
/*40281*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*40283*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*40286*/         OPC_EmitMergeInputChains1_1,
/*40287*/         OPC_EmitConvertToTarget, 3,
/*40289*/         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)
/*40303*/       0, /*End of Scope*/
/*40304*/     /*Scope*/ 40, /*->40345*/
/*40305*/       OPC_RecordChild2, // #1 = $src2
/*40306*/       OPC_RecordChild3, // #2 = $cc
/*40307*/       OPC_MoveChild, 3,
/*40309*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*40312*/       OPC_MoveParent,
/*40313*/       OPC_Scope, 14, /*->40329*/ // 2 children in Scope
/*40315*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*40317*/         OPC_EmitConvertToTarget, 2,
/*40319*/         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)
/*40329*/       /*Scope*/ 14, /*->40344*/
/*40330*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*40332*/         OPC_EmitConvertToTarget, 2,
/*40334*/         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)
/*40344*/       0, /*End of Scope*/
/*40345*/     0, /*End of Scope*/
/*40346*/   /*Scope*/ 120, /*->40467*/
/*40347*/     OPC_CheckInteger, 21|128,2/*277*/, 
/*40350*/     OPC_MoveParent,
/*40351*/     OPC_RecordChild1, // #0 = $src1
/*40352*/     OPC_Scope, 71, /*->40425*/ // 2 children in Scope
/*40354*/       OPC_MoveChild, 2,
/*40356*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*40359*/       OPC_RecordMemRef,
/*40360*/       OPC_RecordNode, // #1 = 'ld' chained node
/*40361*/       OPC_CheckFoldableChainNode,
/*40362*/       OPC_RecordChild1, // #2 = $src2
/*40363*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*40365*/       OPC_CheckPredicate, 3, // Predicate_load
/*40367*/       OPC_CheckPredicate, 23, // Predicate_memop
/*40369*/       OPC_MoveParent,
/*40370*/       OPC_RecordChild3, // #3 = $cc
/*40371*/       OPC_MoveChild, 3,
/*40373*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*40376*/       OPC_MoveParent,
/*40377*/       OPC_Scope, 22, /*->40401*/ // 2 children in Scope
/*40379*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*40381*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*40384*/         OPC_EmitMergeInputChains1_1,
/*40385*/         OPC_EmitConvertToTarget, 3,
/*40387*/         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)
/*40401*/       /*Scope*/ 22, /*->40424*/
/*40402*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*40404*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*40407*/         OPC_EmitMergeInputChains1_1,
/*40408*/         OPC_EmitConvertToTarget, 3,
/*40410*/         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)
/*40424*/       0, /*End of Scope*/
/*40425*/     /*Scope*/ 40, /*->40466*/
/*40426*/       OPC_RecordChild2, // #1 = $src2
/*40427*/       OPC_RecordChild3, // #2 = $cc
/*40428*/       OPC_MoveChild, 3,
/*40430*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*40433*/       OPC_MoveParent,
/*40434*/       OPC_Scope, 14, /*->40450*/ // 2 children in Scope
/*40436*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*40438*/         OPC_EmitConvertToTarget, 2,
/*40440*/         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)
/*40450*/       /*Scope*/ 14, /*->40465*/
/*40451*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*40453*/         OPC_EmitConvertToTarget, 2,
/*40455*/         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)
/*40465*/       0, /*End of Scope*/
/*40466*/     0, /*End of Scope*/
/*40467*/   /*Scope*/ 75, /*->40543*/
/*40468*/     OPC_CheckInteger, 120, 
/*40470*/     OPC_MoveParent,
/*40471*/     OPC_RecordChild1, // #0 = $src1
/*40472*/     OPC_Scope, 45, /*->40519*/ // 2 children in Scope
/*40474*/       OPC_MoveChild, 2,
/*40476*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*40479*/       OPC_RecordMemRef,
/*40480*/       OPC_RecordNode, // #1 = 'ld' chained node
/*40481*/       OPC_CheckFoldableChainNode,
/*40482*/       OPC_RecordChild1, // #2 = $src2
/*40483*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*40485*/       OPC_CheckPredicate, 3, // Predicate_load
/*40487*/       OPC_CheckPredicate, 23, // Predicate_memop
/*40489*/       OPC_MoveParent,
/*40490*/       OPC_RecordChild3, // #3 = $cc
/*40491*/       OPC_MoveChild, 3,
/*40493*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*40496*/       OPC_MoveParent,
/*40497*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*40499*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*40502*/       OPC_EmitMergeInputChains1_1,
/*40503*/       OPC_EmitConvertToTarget, 3,
/*40505*/       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)
/*40519*/     /*Scope*/ 22, /*->40542*/
/*40520*/       OPC_RecordChild2, // #1 = $src2
/*40521*/       OPC_RecordChild3, // #2 = $cc
/*40522*/       OPC_MoveChild, 3,
/*40524*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*40527*/       OPC_MoveParent,
/*40528*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*40530*/       OPC_EmitConvertToTarget, 2,
/*40532*/       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)
/*40542*/     0, /*End of Scope*/
/*40543*/   /*Scope*/ 75, /*->40619*/
/*40544*/     OPC_CheckInteger, 119, 
/*40546*/     OPC_MoveParent,
/*40547*/     OPC_RecordChild1, // #0 = $src1
/*40548*/     OPC_Scope, 45, /*->40595*/ // 2 children in Scope
/*40550*/       OPC_MoveChild, 2,
/*40552*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*40555*/       OPC_RecordMemRef,
/*40556*/       OPC_RecordNode, // #1 = 'ld' chained node
/*40557*/       OPC_CheckFoldableChainNode,
/*40558*/       OPC_RecordChild1, // #2 = $src2
/*40559*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*40561*/       OPC_CheckPredicate, 3, // Predicate_load
/*40563*/       OPC_CheckPredicate, 23, // Predicate_memop
/*40565*/       OPC_MoveParent,
/*40566*/       OPC_RecordChild3, // #3 = $cc
/*40567*/       OPC_MoveChild, 3,
/*40569*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*40572*/       OPC_MoveParent,
/*40573*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*40575*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*40578*/       OPC_EmitMergeInputChains1_1,
/*40579*/       OPC_EmitConvertToTarget, 3,
/*40581*/       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)
/*40595*/     /*Scope*/ 22, /*->40618*/
/*40596*/       OPC_RecordChild2, // #1 = $src2
/*40597*/       OPC_RecordChild3, // #2 = $cc
/*40598*/       OPC_MoveChild, 3,
/*40600*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*40603*/       OPC_MoveParent,
/*40604*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*40606*/       OPC_EmitConvertToTarget, 2,
/*40608*/       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)
/*40618*/     0, /*End of Scope*/
/*40619*/   /*Scope*/ 115, /*->40735*/
/*40620*/     OPC_CheckInteger, 40|128,3/*424*/, 
/*40623*/     OPC_MoveParent,
/*40624*/     OPC_Scope, 69, /*->40695*/ // 2 children in Scope
/*40626*/       OPC_MoveChild, 1,
/*40628*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*40631*/       OPC_RecordMemRef,
/*40632*/       OPC_RecordNode, // #0 = 'ld' chained node
/*40633*/       OPC_CheckFoldableChainNode,
/*40634*/       OPC_RecordChild1, // #1 = $src1
/*40635*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*40637*/       OPC_CheckPredicate, 3, // Predicate_load
/*40639*/       OPC_CheckPredicate, 23, // Predicate_memop
/*40641*/       OPC_MoveParent,
/*40642*/       OPC_RecordChild2, // #2 = $src2
/*40643*/       OPC_MoveChild, 2,
/*40645*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*40648*/       OPC_MoveParent,
/*40649*/       OPC_Scope, 21, /*->40672*/ // 2 children in Scope
/*40651*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*40653*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #3 #4 #5 #6 #7
/*40656*/         OPC_EmitMergeInputChains1_0,
/*40657*/         OPC_EmitConvertToTarget, 2,
/*40659*/         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)
/*40672*/       /*Scope*/ 21, /*->40694*/
/*40673*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*40675*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #3 #4 #5 #6 #7
/*40678*/         OPC_EmitMergeInputChains1_0,
/*40679*/         OPC_EmitConvertToTarget, 2,
/*40681*/         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)
/*40694*/       0, /*End of Scope*/
/*40695*/     /*Scope*/ 38, /*->40734*/
/*40696*/       OPC_RecordChild1, // #0 = $src1
/*40697*/       OPC_RecordChild2, // #1 = $src2
/*40698*/       OPC_MoveChild, 2,
/*40700*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*40703*/       OPC_MoveParent,
/*40704*/       OPC_Scope, 13, /*->40719*/ // 2 children in Scope
/*40706*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*40708*/         OPC_EmitConvertToTarget, 1,
/*40710*/         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)
/*40719*/       /*Scope*/ 13, /*->40733*/
/*40720*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*40722*/         OPC_EmitConvertToTarget, 1,
/*40724*/         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)
/*40733*/       0, /*End of Scope*/
/*40734*/     0, /*End of Scope*/
/*40735*/   /*Scope*/ 115, /*->40851*/
/*40736*/     OPC_CheckInteger, 39|128,3/*423*/, 
/*40739*/     OPC_MoveParent,
/*40740*/     OPC_Scope, 69, /*->40811*/ // 2 children in Scope
/*40742*/       OPC_MoveChild, 1,
/*40744*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*40747*/       OPC_RecordMemRef,
/*40748*/       OPC_RecordNode, // #0 = 'ld' chained node
/*40749*/       OPC_CheckFoldableChainNode,
/*40750*/       OPC_RecordChild1, // #1 = $src1
/*40751*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*40753*/       OPC_CheckPredicate, 3, // Predicate_load
/*40755*/       OPC_CheckPredicate, 23, // Predicate_memop
/*40757*/       OPC_MoveParent,
/*40758*/       OPC_RecordChild2, // #2 = $src2
/*40759*/       OPC_MoveChild, 2,
/*40761*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*40764*/       OPC_MoveParent,
/*40765*/       OPC_Scope, 21, /*->40788*/ // 2 children in Scope
/*40767*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*40769*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #3 #4 #5 #6 #7
/*40772*/         OPC_EmitMergeInputChains1_0,
/*40773*/         OPC_EmitConvertToTarget, 2,
/*40775*/         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)
/*40788*/       /*Scope*/ 21, /*->40810*/
/*40789*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*40791*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #3 #4 #5 #6 #7
/*40794*/         OPC_EmitMergeInputChains1_0,
/*40795*/         OPC_EmitConvertToTarget, 2,
/*40797*/         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)
/*40810*/       0, /*End of Scope*/
/*40811*/     /*Scope*/ 38, /*->40850*/
/*40812*/       OPC_RecordChild1, // #0 = $src1
/*40813*/       OPC_RecordChild2, // #1 = $src2
/*40814*/       OPC_MoveChild, 2,
/*40816*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*40819*/       OPC_MoveParent,
/*40820*/       OPC_Scope, 13, /*->40835*/ // 2 children in Scope
/*40822*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*40824*/         OPC_EmitConvertToTarget, 1,
/*40826*/         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)
/*40835*/       /*Scope*/ 13, /*->40849*/
/*40836*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*40838*/         OPC_EmitConvertToTarget, 1,
/*40840*/         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)
/*40849*/       0, /*End of Scope*/
/*40850*/     0, /*End of Scope*/
/*40851*/   /*Scope*/ 73, /*->40925*/
/*40852*/     OPC_CheckInteger, 32|128,1/*160*/, 
/*40855*/     OPC_MoveParent,
/*40856*/     OPC_Scope, 44, /*->40902*/ // 2 children in Scope
/*40858*/       OPC_MoveChild, 1,
/*40860*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*40863*/       OPC_RecordMemRef,
/*40864*/       OPC_RecordNode, // #0 = 'ld' chained node
/*40865*/       OPC_CheckFoldableChainNode,
/*40866*/       OPC_RecordChild1, // #1 = $src1
/*40867*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*40869*/       OPC_CheckPredicate, 3, // Predicate_load
/*40871*/       OPC_CheckPredicate, 23, // Predicate_memop
/*40873*/       OPC_MoveParent,
/*40874*/       OPC_RecordChild2, // #2 = $src2
/*40875*/       OPC_MoveChild, 2,
/*40877*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*40880*/       OPC_MoveParent,
/*40881*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*40883*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #3 #4 #5 #6 #7
/*40886*/       OPC_EmitMergeInputChains1_0,
/*40887*/       OPC_EmitConvertToTarget, 2,
/*40889*/       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)
/*40902*/     /*Scope*/ 21, /*->40924*/
/*40903*/       OPC_RecordChild1, // #0 = $src1
/*40904*/       OPC_RecordChild2, // #1 = $src2
/*40905*/       OPC_MoveChild, 2,
/*40907*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*40910*/       OPC_MoveParent,
/*40911*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*40913*/       OPC_EmitConvertToTarget, 1,
/*40915*/       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)
/*40924*/     0, /*End of Scope*/
/*40925*/   /*Scope*/ 73, /*->40999*/
/*40926*/     OPC_CheckInteger, 31|128,1/*159*/, 
/*40929*/     OPC_MoveParent,
/*40930*/     OPC_Scope, 44, /*->40976*/ // 2 children in Scope
/*40932*/       OPC_MoveChild, 1,
/*40934*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*40937*/       OPC_RecordMemRef,
/*40938*/       OPC_RecordNode, // #0 = 'ld' chained node
/*40939*/       OPC_CheckFoldableChainNode,
/*40940*/       OPC_RecordChild1, // #1 = $src1
/*40941*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*40943*/       OPC_CheckPredicate, 3, // Predicate_load
/*40945*/       OPC_CheckPredicate, 23, // Predicate_memop
/*40947*/       OPC_MoveParent,
/*40948*/       OPC_RecordChild2, // #2 = $src2
/*40949*/       OPC_MoveChild, 2,
/*40951*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*40954*/       OPC_MoveParent,
/*40955*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*40957*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #3 #4 #5 #6 #7
/*40960*/       OPC_EmitMergeInputChains1_0,
/*40961*/       OPC_EmitConvertToTarget, 2,
/*40963*/       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)
/*40976*/     /*Scope*/ 21, /*->40998*/
/*40977*/       OPC_RecordChild1, // #0 = $src1
/*40978*/       OPC_RecordChild2, // #1 = $src2
/*40979*/       OPC_MoveChild, 2,
/*40981*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*40984*/       OPC_MoveParent,
/*40985*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*40987*/       OPC_EmitConvertToTarget, 1,
/*40989*/       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)
/*40998*/     0, /*End of Scope*/
/*40999*/   /*Scope*/ 112, /*->41112*/
/*41000*/     OPC_CheckInteger, 127|128,2/*383*/, 
/*41003*/     OPC_MoveParent,
/*41004*/     OPC_RecordChild1, // #0 = $src1
/*41005*/     OPC_Scope, 71, /*->41078*/ // 2 children in Scope
/*41007*/       OPC_MoveChild, 2,
/*41009*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*41012*/       OPC_MoveChild, 0,
/*41014*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*41017*/       OPC_RecordMemRef,
/*41018*/       OPC_RecordNode, // #1 = 'ld' chained node
/*41019*/       OPC_CheckFoldableChainNode,
/*41020*/       OPC_RecordChild1, // #2 = $src2
/*41021*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*41023*/       OPC_CheckPredicate, 3, // Predicate_load
/*41025*/       OPC_CheckPredicate, 23, // Predicate_memop
/*41027*/       OPC_CheckType, MVT::v16i8,
/*41029*/       OPC_MoveParent,
/*41030*/       OPC_MoveParent,
/*41031*/       OPC_RecordChild3, // #3 = $src3
/*41032*/       OPC_Scope, 20, /*->41054*/ // 2 children in Scope
/*41034*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*41036*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*41039*/         OPC_EmitMergeInputChains1_1,
/*41040*/         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)
/*41054*/       /*Scope*/ 22, /*->41077*/
/*41055*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*41057*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*41060*/         OPC_EmitMergeInputChains1_1,
/*41061*/         OPC_EmitCopyToReg, 3, X86::XMM0,
/*41064*/         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)
/*41077*/       0, /*End of Scope*/
/*41078*/     /*Scope*/ 32, /*->41111*/
/*41079*/       OPC_RecordChild2, // #1 = $src2
/*41080*/       OPC_RecordChild3, // #2 = $src3
/*41081*/       OPC_Scope, 12, /*->41095*/ // 2 children in Scope
/*41083*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*41085*/         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)
/*41095*/       /*Scope*/ 14, /*->41110*/
/*41096*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*41098*/         OPC_EmitCopyToReg, 2, X86::XMM0,
/*41101*/         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)
/*41110*/       0, /*End of Scope*/
/*41111*/     0, /*End of Scope*/
/*41112*/   /*Scope*/ 112, /*->41225*/
/*41113*/     OPC_CheckInteger, 0|128,3/*384*/, 
/*41116*/     OPC_MoveParent,
/*41117*/     OPC_RecordChild1, // #0 = $src1
/*41118*/     OPC_Scope, 71, /*->41191*/ // 2 children in Scope
/*41120*/       OPC_MoveChild, 2,
/*41122*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*41125*/       OPC_MoveChild, 0,
/*41127*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*41130*/       OPC_RecordMemRef,
/*41131*/       OPC_RecordNode, // #1 = 'ld' chained node
/*41132*/       OPC_CheckFoldableChainNode,
/*41133*/       OPC_RecordChild1, // #2 = $src2
/*41134*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*41136*/       OPC_CheckPredicate, 3, // Predicate_load
/*41138*/       OPC_CheckPredicate, 23, // Predicate_memop
/*41140*/       OPC_CheckType, MVT::v16i8,
/*41142*/       OPC_MoveParent,
/*41143*/       OPC_MoveParent,
/*41144*/       OPC_RecordChild3, // #3 = $src3
/*41145*/       OPC_Scope, 20, /*->41167*/ // 2 children in Scope
/*41147*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*41149*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*41152*/         OPC_EmitMergeInputChains1_1,
/*41153*/         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)
/*41167*/       /*Scope*/ 22, /*->41190*/
/*41168*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*41170*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*41173*/         OPC_EmitMergeInputChains1_1,
/*41174*/         OPC_EmitCopyToReg, 3, X86::XMM0,
/*41177*/         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)
/*41190*/       0, /*End of Scope*/
/*41191*/     /*Scope*/ 32, /*->41224*/
/*41192*/       OPC_RecordChild2, // #1 = $src2
/*41193*/       OPC_RecordChild3, // #2 = $src3
/*41194*/       OPC_Scope, 12, /*->41208*/ // 2 children in Scope
/*41196*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*41198*/         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)
/*41208*/       /*Scope*/ 14, /*->41223*/
/*41209*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*41211*/         OPC_EmitCopyToReg, 2, X86::XMM0,
/*41214*/         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)
/*41223*/       0, /*End of Scope*/
/*41224*/     0, /*End of Scope*/
/*41225*/   /*Scope*/ 67, /*->41293*/
/*41226*/     OPC_CheckInteger, 117, 
/*41228*/     OPC_MoveParent,
/*41229*/     OPC_RecordChild1, // #0 = $src1
/*41230*/     OPC_Scope, 45, /*->41277*/ // 2 children in Scope
/*41232*/       OPC_MoveChild, 2,
/*41234*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*41237*/       OPC_MoveChild, 0,
/*41239*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*41242*/       OPC_RecordMemRef,
/*41243*/       OPC_RecordNode, // #1 = 'ld' chained node
/*41244*/       OPC_CheckFoldableChainNode,
/*41245*/       OPC_RecordChild1, // #2 = $src2
/*41246*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*41248*/       OPC_CheckPredicate, 3, // Predicate_load
/*41250*/       OPC_CheckPredicate, 23, // Predicate_memop
/*41252*/       OPC_CheckType, MVT::v32i8,
/*41254*/       OPC_MoveParent,
/*41255*/       OPC_MoveParent,
/*41256*/       OPC_RecordChild3, // #3 = $src3
/*41257*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*41259*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*41262*/       OPC_EmitMergeInputChains1_1,
/*41263*/       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)
/*41277*/     /*Scope*/ 14, /*->41292*/
/*41278*/       OPC_RecordChild2, // #1 = $src2
/*41279*/       OPC_RecordChild3, // #2 = $src3
/*41280*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*41282*/       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)
/*41292*/     0, /*End of Scope*/
/*41293*/   /*Scope*/ 67, /*->41361*/
/*41294*/     OPC_CheckInteger, 118, 
/*41296*/     OPC_MoveParent,
/*41297*/     OPC_RecordChild1, // #0 = $src1
/*41298*/     OPC_Scope, 45, /*->41345*/ // 2 children in Scope
/*41300*/       OPC_MoveChild, 2,
/*41302*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*41305*/       OPC_MoveChild, 0,
/*41307*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*41310*/       OPC_RecordMemRef,
/*41311*/       OPC_RecordNode, // #1 = 'ld' chained node
/*41312*/       OPC_CheckFoldableChainNode,
/*41313*/       OPC_RecordChild1, // #2 = $src2
/*41314*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*41316*/       OPC_CheckPredicate, 3, // Predicate_load
/*41318*/       OPC_CheckPredicate, 23, // Predicate_memop
/*41320*/       OPC_CheckType, MVT::v32i8,
/*41322*/       OPC_MoveParent,
/*41323*/       OPC_MoveParent,
/*41324*/       OPC_RecordChild3, // #3 = $src3
/*41325*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*41327*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*41330*/       OPC_EmitMergeInputChains1_1,
/*41331*/       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)
/*41345*/     /*Scope*/ 14, /*->41360*/
/*41346*/       OPC_RecordChild2, // #1 = $src2
/*41347*/       OPC_RecordChild3, // #2 = $src3
/*41348*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*41350*/       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)
/*41360*/     0, /*End of Scope*/
/*41361*/   /*Scope*/ 73, /*->41435*/
/*41362*/     OPC_CheckInteger, 55|128,1/*183*/, 
/*41365*/     OPC_MoveParent,
/*41366*/     OPC_Scope, 44, /*->41412*/ // 2 children in Scope
/*41368*/       OPC_MoveChild, 1,
/*41370*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*41373*/       OPC_RecordMemRef,
/*41374*/       OPC_RecordNode, // #0 = 'ld' chained node
/*41375*/       OPC_CheckFoldableChainNode,
/*41376*/       OPC_RecordChild1, // #1 = $src1
/*41377*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*41379*/       OPC_CheckPredicate, 3, // Predicate_load
/*41381*/       OPC_CheckPredicate, 23, // Predicate_memop
/*41383*/       OPC_MoveParent,
/*41384*/       OPC_RecordChild2, // #2 = $src2
/*41385*/       OPC_MoveChild, 2,
/*41387*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*41390*/       OPC_MoveParent,
/*41391*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*41393*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #3 #4 #5 #6 #7
/*41396*/       OPC_EmitMergeInputChains1_0,
/*41397*/       OPC_EmitConvertToTarget, 2,
/*41399*/       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)
/*41412*/     /*Scope*/ 21, /*->41434*/
/*41413*/       OPC_RecordChild1, // #0 = $src1
/*41414*/       OPC_RecordChild2, // #1 = $src2
/*41415*/       OPC_MoveChild, 2,
/*41417*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*41420*/       OPC_MoveParent,
/*41421*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*41423*/       OPC_EmitConvertToTarget, 1,
/*41425*/       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)
/*41434*/     0, /*End of Scope*/
/*41435*/   /*Scope*/ 73, /*->41509*/
/*41436*/     OPC_CheckInteger, 56|128,1/*184*/, 
/*41439*/     OPC_MoveParent,
/*41440*/     OPC_Scope, 44, /*->41486*/ // 2 children in Scope
/*41442*/       OPC_MoveChild, 1,
/*41444*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*41447*/       OPC_RecordMemRef,
/*41448*/       OPC_RecordNode, // #0 = 'ld' chained node
/*41449*/       OPC_CheckFoldableChainNode,
/*41450*/       OPC_RecordChild1, // #1 = $src1
/*41451*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*41453*/       OPC_CheckPredicate, 3, // Predicate_load
/*41455*/       OPC_CheckPredicate, 23, // Predicate_memop
/*41457*/       OPC_MoveParent,
/*41458*/       OPC_RecordChild2, // #2 = $src2
/*41459*/       OPC_MoveChild, 2,
/*41461*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*41464*/       OPC_MoveParent,
/*41465*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*41467*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #3 #4 #5 #6 #7
/*41470*/       OPC_EmitMergeInputChains1_0,
/*41471*/       OPC_EmitConvertToTarget, 2,
/*41473*/       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)
/*41486*/     /*Scope*/ 21, /*->41508*/
/*41487*/       OPC_RecordChild1, // #0 = $src1
/*41488*/       OPC_RecordChild2, // #1 = $src2
/*41489*/       OPC_MoveChild, 2,
/*41491*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*41494*/       OPC_MoveParent,
/*41495*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*41497*/       OPC_EmitConvertToTarget, 1,
/*41499*/       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)
/*41508*/     0, /*End of Scope*/
/*41509*/   /*Scope*/ 73, /*->41583*/
/*41510*/     OPC_CheckInteger, 53|128,1/*181*/, 
/*41513*/     OPC_MoveParent,
/*41514*/     OPC_Scope, 44, /*->41560*/ // 2 children in Scope
/*41516*/       OPC_MoveChild, 1,
/*41518*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*41521*/       OPC_RecordMemRef,
/*41522*/       OPC_RecordNode, // #0 = 'ld' chained node
/*41523*/       OPC_CheckFoldableChainNode,
/*41524*/       OPC_RecordChild1, // #1 = $src1
/*41525*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*41527*/       OPC_CheckPredicate, 3, // Predicate_load
/*41529*/       OPC_CheckPredicate, 23, // Predicate_memop
/*41531*/       OPC_MoveParent,
/*41532*/       OPC_RecordChild2, // #2 = $src2
/*41533*/       OPC_MoveChild, 2,
/*41535*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*41538*/       OPC_MoveParent,
/*41539*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*41541*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #3 #4 #5 #6 #7
/*41544*/       OPC_EmitMergeInputChains1_0,
/*41545*/       OPC_EmitConvertToTarget, 2,
/*41547*/       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)
/*41560*/     /*Scope*/ 21, /*->41582*/
/*41561*/       OPC_RecordChild1, // #0 = $src1
/*41562*/       OPC_RecordChild2, // #1 = $src2
/*41563*/       OPC_MoveChild, 2,
/*41565*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*41568*/       OPC_MoveParent,
/*41569*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*41571*/       OPC_EmitConvertToTarget, 1,
/*41573*/       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)
/*41582*/     0, /*End of Scope*/
/*41583*/   /*Scope*/ 73, /*->41657*/
/*41584*/     OPC_CheckInteger, 54|128,1/*182*/, 
/*41587*/     OPC_MoveParent,
/*41588*/     OPC_Scope, 44, /*->41634*/ // 2 children in Scope
/*41590*/       OPC_MoveChild, 1,
/*41592*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*41595*/       OPC_RecordMemRef,
/*41596*/       OPC_RecordNode, // #0 = 'ld' chained node
/*41597*/       OPC_CheckFoldableChainNode,
/*41598*/       OPC_RecordChild1, // #1 = $src1
/*41599*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*41601*/       OPC_CheckPredicate, 3, // Predicate_load
/*41603*/       OPC_CheckPredicate, 23, // Predicate_memop
/*41605*/       OPC_MoveParent,
/*41606*/       OPC_RecordChild2, // #2 = $src2
/*41607*/       OPC_MoveChild, 2,
/*41609*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*41612*/       OPC_MoveParent,
/*41613*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*41615*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #3 #4 #5 #6 #7
/*41618*/       OPC_EmitMergeInputChains1_0,
/*41619*/       OPC_EmitConvertToTarget, 2,
/*41621*/       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)
/*41634*/     /*Scope*/ 21, /*->41656*/
/*41635*/       OPC_RecordChild1, // #0 = $src1
/*41636*/       OPC_RecordChild2, // #1 = $src2
/*41637*/       OPC_MoveChild, 2,
/*41639*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*41642*/       OPC_MoveParent,
/*41643*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*41645*/       OPC_EmitConvertToTarget, 1,
/*41647*/       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)
/*41656*/     0, /*End of Scope*/
/*41657*/   /*Scope*/ 72, /*->41730*/
/*41658*/     OPC_CheckInteger, 51|128,1/*179*/, 
/*41661*/     OPC_MoveParent,
/*41662*/     OPC_RecordChild1, // #0 = $src1
/*41663*/     OPC_Scope, 43, /*->41708*/ // 2 children in Scope
/*41665*/       OPC_MoveChild, 2,
/*41667*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*41670*/       OPC_RecordMemRef,
/*41671*/       OPC_RecordNode, // #1 = 'ld' chained node
/*41672*/       OPC_CheckFoldableChainNode,
/*41673*/       OPC_RecordChild1, // #2 = $src2
/*41674*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*41676*/       OPC_CheckPredicate, 3, // Predicate_load
/*41678*/       OPC_CheckPredicate, 23, // Predicate_memop
/*41680*/       OPC_MoveParent,
/*41681*/       OPC_RecordChild3, // #3 = $src3
/*41682*/       OPC_MoveChild, 3,
/*41684*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*41687*/       OPC_MoveParent,
/*41688*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*41691*/       OPC_EmitMergeInputChains1_1,
/*41692*/       OPC_EmitConvertToTarget, 3,
/*41694*/       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)
/*41708*/     /*Scope*/ 20, /*->41729*/
/*41709*/       OPC_RecordChild2, // #1 = $src2
/*41710*/       OPC_RecordChild3, // #2 = $src3
/*41711*/       OPC_MoveChild, 3,
/*41713*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*41716*/       OPC_MoveParent,
/*41717*/       OPC_EmitConvertToTarget, 2,
/*41719*/       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)
/*41729*/     0, /*End of Scope*/
/*41730*/   /*Scope*/ 72, /*->41803*/
/*41731*/     OPC_CheckInteger, 50|128,1/*178*/, 
/*41734*/     OPC_MoveParent,
/*41735*/     OPC_RecordChild1, // #0 = $src1
/*41736*/     OPC_Scope, 43, /*->41781*/ // 2 children in Scope
/*41738*/       OPC_MoveChild, 2,
/*41740*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*41743*/       OPC_RecordMemRef,
/*41744*/       OPC_RecordNode, // #1 = 'ld' chained node
/*41745*/       OPC_CheckFoldableChainNode,
/*41746*/       OPC_RecordChild1, // #2 = $src2
/*41747*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*41749*/       OPC_CheckPredicate, 3, // Predicate_load
/*41751*/       OPC_CheckPredicate, 23, // Predicate_memop
/*41753*/       OPC_MoveParent,
/*41754*/       OPC_RecordChild3, // #3 = $src3
/*41755*/       OPC_MoveChild, 3,
/*41757*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*41760*/       OPC_MoveParent,
/*41761*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*41764*/       OPC_EmitMergeInputChains1_1,
/*41765*/       OPC_EmitConvertToTarget, 3,
/*41767*/       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)
/*41781*/     /*Scope*/ 20, /*->41802*/
/*41782*/       OPC_RecordChild2, // #1 = $src2
/*41783*/       OPC_RecordChild3, // #2 = $src3
/*41784*/       OPC_MoveChild, 3,
/*41786*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*41789*/       OPC_MoveParent,
/*41790*/       OPC_EmitConvertToTarget, 2,
/*41792*/       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)
/*41802*/     0, /*End of Scope*/
/*41803*/   /*Scope*/ 92, /*->41896*/
/*41804*/     OPC_CheckInteger, 76|128,3/*460*/, 
/*41807*/     OPC_MoveParent,
/*41808*/     OPC_RecordChild1, // #0 = $src1
/*41809*/     OPC_Scope, 56, /*->41867*/ // 2 children in Scope
/*41811*/       OPC_MoveChild, 2,
/*41813*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*41816*/       OPC_RecordMemRef,
/*41817*/       OPC_RecordNode, // #1 = 'ld' chained node
/*41818*/       OPC_CheckFoldableChainNode,
/*41819*/       OPC_RecordChild1, // #2 = $src2
/*41820*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*41822*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*41824*/       OPC_MoveParent,
/*41825*/       OPC_Scope, 19, /*->41846*/ // 2 children in Scope
/*41827*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*41829*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*41832*/         OPC_EmitMergeInputChains1_1,
/*41833*/         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)
/*41846*/       /*Scope*/ 19, /*->41866*/
/*41847*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*41849*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*41852*/         OPC_EmitMergeInputChains1_1,
/*41853*/         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)
/*41866*/       0, /*End of Scope*/
/*41867*/     /*Scope*/ 27, /*->41895*/
/*41868*/       OPC_RecordChild2, // #1 = $src2
/*41869*/       OPC_Scope, 11, /*->41882*/ // 2 children in Scope
/*41871*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*41873*/         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)
/*41882*/       /*Scope*/ 11, /*->41894*/
/*41883*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*41885*/         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)
/*41894*/       0, /*End of Scope*/
/*41895*/     0, /*End of Scope*/
/*41896*/   /*Scope*/ 92, /*->41989*/
/*41897*/     OPC_CheckInteger, 77|128,3/*461*/, 
/*41900*/     OPC_MoveParent,
/*41901*/     OPC_RecordChild1, // #0 = $src1
/*41902*/     OPC_Scope, 56, /*->41960*/ // 2 children in Scope
/*41904*/       OPC_MoveChild, 2,
/*41906*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*41909*/       OPC_RecordMemRef,
/*41910*/       OPC_RecordNode, // #1 = 'ld' chained node
/*41911*/       OPC_CheckFoldableChainNode,
/*41912*/       OPC_RecordChild1, // #2 = $src2
/*41913*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*41915*/       OPC_CheckPredicate, 3, // Predicate_load
/*41917*/       OPC_MoveParent,
/*41918*/       OPC_Scope, 19, /*->41939*/ // 2 children in Scope
/*41920*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*41922*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*41925*/         OPC_EmitMergeInputChains1_1,
/*41926*/         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)
/*41939*/       /*Scope*/ 19, /*->41959*/
/*41940*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*41942*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*41945*/         OPC_EmitMergeInputChains1_1,
/*41946*/         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)
/*41959*/       0, /*End of Scope*/
/*41960*/     /*Scope*/ 27, /*->41988*/
/*41961*/       OPC_RecordChild2, // #1 = $src2
/*41962*/       OPC_Scope, 11, /*->41975*/ // 2 children in Scope
/*41964*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*41966*/         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)
/*41975*/       /*Scope*/ 11, /*->41987*/
/*41976*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*41978*/         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)
/*41987*/       0, /*End of Scope*/
/*41988*/     0, /*End of Scope*/
/*41989*/   /*Scope*/ 92, /*->42082*/
/*41990*/     OPC_CheckInteger, 38|128,2/*294*/, 
/*41993*/     OPC_MoveParent,
/*41994*/     OPC_RecordChild1, // #0 = $src1
/*41995*/     OPC_Scope, 56, /*->42053*/ // 2 children in Scope
/*41997*/       OPC_MoveChild, 2,
/*41999*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*42002*/       OPC_RecordMemRef,
/*42003*/       OPC_RecordNode, // #1 = 'ld' chained node
/*42004*/       OPC_CheckFoldableChainNode,
/*42005*/       OPC_RecordChild1, // #2 = $src2
/*42006*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*42008*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*42010*/       OPC_MoveParent,
/*42011*/       OPC_Scope, 19, /*->42032*/ // 2 children in Scope
/*42013*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*42015*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*42018*/         OPC_EmitMergeInputChains1_1,
/*42019*/         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)
/*42032*/       /*Scope*/ 19, /*->42052*/
/*42033*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*42035*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*42038*/         OPC_EmitMergeInputChains1_1,
/*42039*/         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)
/*42052*/       0, /*End of Scope*/
/*42053*/     /*Scope*/ 27, /*->42081*/
/*42054*/       OPC_RecordChild2, // #1 = $src2
/*42055*/       OPC_Scope, 11, /*->42068*/ // 2 children in Scope
/*42057*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*42059*/         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)
/*42068*/       /*Scope*/ 11, /*->42080*/
/*42069*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*42071*/         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)
/*42080*/       0, /*End of Scope*/
/*42081*/     0, /*End of Scope*/
/*42082*/   /*Scope*/ 92, /*->42175*/
/*42083*/     OPC_CheckInteger, 39|128,2/*295*/, 
/*42086*/     OPC_MoveParent,
/*42087*/     OPC_RecordChild1, // #0 = $src1
/*42088*/     OPC_Scope, 56, /*->42146*/ // 2 children in Scope
/*42090*/       OPC_MoveChild, 2,
/*42092*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*42095*/       OPC_RecordMemRef,
/*42096*/       OPC_RecordNode, // #1 = 'ld' chained node
/*42097*/       OPC_CheckFoldableChainNode,
/*42098*/       OPC_RecordChild1, // #2 = $src2
/*42099*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*42101*/       OPC_CheckPredicate, 3, // Predicate_load
/*42103*/       OPC_MoveParent,
/*42104*/       OPC_Scope, 19, /*->42125*/ // 2 children in Scope
/*42106*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*42108*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*42111*/         OPC_EmitMergeInputChains1_1,
/*42112*/         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)
/*42125*/       /*Scope*/ 19, /*->42145*/
/*42126*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*42128*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*42131*/         OPC_EmitMergeInputChains1_1,
/*42132*/         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)
/*42145*/       0, /*End of Scope*/
/*42146*/     /*Scope*/ 27, /*->42174*/
/*42147*/       OPC_RecordChild2, // #1 = $src2
/*42148*/       OPC_Scope, 11, /*->42161*/ // 2 children in Scope
/*42150*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*42152*/         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)
/*42161*/       /*Scope*/ 11, /*->42173*/
/*42162*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*42164*/         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)
/*42173*/       0, /*End of Scope*/
/*42174*/     0, /*End of Scope*/
/*42175*/   /*Scope*/ 92, /*->42268*/
/*42176*/     OPC_CheckInteger, 37|128,2/*293*/, 
/*42179*/     OPC_MoveParent,
/*42180*/     OPC_RecordChild1, // #0 = $src1
/*42181*/     OPC_Scope, 56, /*->42239*/ // 2 children in Scope
/*42183*/       OPC_MoveChild, 2,
/*42185*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*42188*/       OPC_RecordMemRef,
/*42189*/       OPC_RecordNode, // #1 = 'ld' chained node
/*42190*/       OPC_CheckFoldableChainNode,
/*42191*/       OPC_RecordChild1, // #2 = $src2
/*42192*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*42194*/       OPC_CheckPredicate, 3, // Predicate_load
/*42196*/       OPC_MoveParent,
/*42197*/       OPC_Scope, 19, /*->42218*/ // 2 children in Scope
/*42199*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*42201*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*42204*/         OPC_EmitMergeInputChains1_1,
/*42205*/         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)
/*42218*/       /*Scope*/ 19, /*->42238*/
/*42219*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*42221*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*42224*/         OPC_EmitMergeInputChains1_1,
/*42225*/         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)
/*42238*/       0, /*End of Scope*/
/*42239*/     /*Scope*/ 27, /*->42267*/
/*42240*/       OPC_RecordChild2, // #1 = $src2
/*42241*/       OPC_Scope, 11, /*->42254*/ // 2 children in Scope
/*42243*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*42245*/         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)
/*42254*/       /*Scope*/ 11, /*->42266*/
/*42255*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*42257*/         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)
/*42266*/       0, /*End of Scope*/
/*42267*/     0, /*End of Scope*/
/*42268*/   /*Scope*/ 92, /*->42361*/
/*42269*/     OPC_CheckInteger, 40|128,2/*296*/, 
/*42272*/     OPC_MoveParent,
/*42273*/     OPC_RecordChild1, // #0 = $src1
/*42274*/     OPC_Scope, 56, /*->42332*/ // 2 children in Scope
/*42276*/       OPC_MoveChild, 2,
/*42278*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*42281*/       OPC_RecordMemRef,
/*42282*/       OPC_RecordNode, // #1 = 'ld' chained node
/*42283*/       OPC_CheckFoldableChainNode,
/*42284*/       OPC_RecordChild1, // #2 = $src2
/*42285*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*42287*/       OPC_CheckPredicate, 3, // Predicate_load
/*42289*/       OPC_MoveParent,
/*42290*/       OPC_Scope, 19, /*->42311*/ // 2 children in Scope
/*42292*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*42294*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*42297*/         OPC_EmitMergeInputChains1_1,
/*42298*/         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)
/*42311*/       /*Scope*/ 19, /*->42331*/
/*42312*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*42314*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*42317*/         OPC_EmitMergeInputChains1_1,
/*42318*/         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)
/*42331*/       0, /*End of Scope*/
/*42332*/     /*Scope*/ 27, /*->42360*/
/*42333*/       OPC_RecordChild2, // #1 = $src2
/*42334*/       OPC_Scope, 11, /*->42347*/ // 2 children in Scope
/*42336*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*42338*/         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)
/*42347*/       /*Scope*/ 11, /*->42359*/
/*42348*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*42350*/         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)
/*42359*/       0, /*End of Scope*/
/*42360*/     0, /*End of Scope*/
/*42361*/   /*Scope*/ 87, /*->42449*/
/*42362*/     OPC_CheckInteger, 34|128,2/*290*/, 
/*42365*/     OPC_MoveParent,
/*42366*/     OPC_Scope, 54, /*->42422*/ // 2 children in Scope
/*42368*/       OPC_MoveChild, 1,
/*42370*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*42373*/       OPC_RecordMemRef,
/*42374*/       OPC_RecordNode, // #0 = 'ld' chained node
/*42375*/       OPC_CheckFoldableChainNode,
/*42376*/       OPC_RecordChild1, // #1 = $src
/*42377*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*42379*/       OPC_CheckPredicate, 3, // Predicate_load
/*42381*/       OPC_MoveParent,
/*42382*/       OPC_Scope, 18, /*->42402*/ // 2 children in Scope
/*42384*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*42386*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*42389*/         OPC_EmitMergeInputChains1_0,
/*42390*/         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)
/*42402*/       /*Scope*/ 18, /*->42421*/
/*42403*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*42405*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*42408*/         OPC_EmitMergeInputChains1_0,
/*42409*/         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)
/*42421*/       0, /*End of Scope*/
/*42422*/     /*Scope*/ 25, /*->42448*/
/*42423*/       OPC_RecordChild1, // #0 = $src
/*42424*/       OPC_Scope, 10, /*->42436*/ // 2 children in Scope
/*42426*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*42428*/         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)
/*42436*/       /*Scope*/ 10, /*->42447*/
/*42437*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*42439*/         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)
/*42447*/       0, /*End of Scope*/
/*42448*/     0, /*End of Scope*/
/*42449*/   /*Scope*/ 89, /*->42539*/
/*42450*/     OPC_CheckInteger, 32|128,2/*288*/, 
/*42453*/     OPC_MoveParent,
/*42454*/     OPC_Scope, 56, /*->42512*/ // 2 children in Scope
/*42456*/       OPC_MoveChild, 1,
/*42458*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*42461*/       OPC_RecordMemRef,
/*42462*/       OPC_RecordNode, // #0 = 'ld' chained node
/*42463*/       OPC_CheckFoldableChainNode,
/*42464*/       OPC_RecordChild1, // #1 = $src
/*42465*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*42467*/       OPC_CheckPredicate, 3, // Predicate_load
/*42469*/       OPC_CheckPredicate, 23, // Predicate_memop
/*42471*/       OPC_MoveParent,
/*42472*/       OPC_Scope, 18, /*->42492*/ // 2 children in Scope
/*42474*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*42476*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*42479*/         OPC_EmitMergeInputChains1_0,
/*42480*/         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)
/*42492*/       /*Scope*/ 18, /*->42511*/
/*42493*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*42495*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*42498*/         OPC_EmitMergeInputChains1_0,
/*42499*/         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)
/*42511*/       0, /*End of Scope*/
/*42512*/     /*Scope*/ 25, /*->42538*/
/*42513*/       OPC_RecordChild1, // #0 = $src
/*42514*/       OPC_Scope, 10, /*->42526*/ // 2 children in Scope
/*42516*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*42518*/         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)
/*42526*/       /*Scope*/ 10, /*->42537*/
/*42527*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*42529*/         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)
/*42537*/       0, /*End of Scope*/
/*42538*/     0, /*End of Scope*/
/*42539*/   /*Scope*/ 48, /*->42588*/
/*42540*/     OPC_CheckInteger, 126, 
/*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::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)
/*42577*/     /*Scope*/ 9, /*->42587*/
/*42578*/       OPC_RecordChild1, // #0 = $src
/*42579*/       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)
/*42587*/     0, /*End of Scope*/
/*42588*/   /*Scope*/ 48, /*->42637*/
/*42589*/     OPC_CheckInteger, 121, 
/*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::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)
/*42626*/     /*Scope*/ 9, /*->42636*/
/*42627*/       OPC_RecordChild1, // #0 = $src
/*42628*/       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)
/*42636*/     0, /*End of Scope*/
/*42637*/   /*Scope*/ 48, /*->42686*/
/*42638*/     OPC_CheckInteger, 123, 
/*42640*/     OPC_MoveParent,
/*42641*/     OPC_Scope, 32, /*->42675*/ // 2 children in Scope
/*42643*/       OPC_MoveChild, 1,
/*42645*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*42648*/       OPC_RecordMemRef,
/*42649*/       OPC_RecordNode, // #0 = 'ld' chained node
/*42650*/       OPC_CheckFoldableChainNode,
/*42651*/       OPC_RecordChild1, // #1 = $src
/*42652*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*42654*/       OPC_CheckPredicate, 3, // Predicate_load
/*42656*/       OPC_CheckPredicate, 23, // Predicate_memop
/*42658*/       OPC_MoveParent,
/*42659*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*42662*/       OPC_EmitMergeInputChains1_0,
/*42663*/       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)
/*42675*/     /*Scope*/ 9, /*->42685*/
/*42676*/       OPC_RecordChild1, // #0 = $src
/*42677*/       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)
/*42685*/     0, /*End of Scope*/
/*42686*/   /*Scope*/ 94, /*->42781*/
/*42687*/     OPC_CheckInteger, 86|128,3/*470*/, 
/*42690*/     OPC_MoveParent,
/*42691*/     OPC_RecordChild1, // #0 = $src1
/*42692*/     OPC_Scope, 58, /*->42752*/ // 2 children in Scope
/*42694*/       OPC_MoveChild, 2,
/*42696*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*42699*/       OPC_RecordMemRef,
/*42700*/       OPC_RecordNode, // #1 = 'ld' chained node
/*42701*/       OPC_CheckFoldableChainNode,
/*42702*/       OPC_RecordChild1, // #2 = $src2
/*42703*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*42705*/       OPC_CheckPredicate, 3, // Predicate_load
/*42707*/       OPC_CheckPredicate, 23, // Predicate_memop
/*42709*/       OPC_MoveParent,
/*42710*/       OPC_Scope, 19, /*->42731*/ // 2 children in Scope
/*42712*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*42714*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*42717*/         OPC_EmitMergeInputChains1_1,
/*42718*/         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)
/*42731*/       /*Scope*/ 19, /*->42751*/
/*42732*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*42734*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*42737*/         OPC_EmitMergeInputChains1_1,
/*42738*/         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)
/*42751*/       0, /*End of Scope*/
/*42752*/     /*Scope*/ 27, /*->42780*/
/*42753*/       OPC_RecordChild2, // #1 = $src2
/*42754*/       OPC_Scope, 11, /*->42767*/ // 2 children in Scope
/*42756*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*42758*/         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)
/*42767*/       /*Scope*/ 11, /*->42779*/
/*42768*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*42770*/         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)
/*42779*/       0, /*End of Scope*/
/*42780*/     0, /*End of Scope*/
/*42781*/   /*Scope*/ 94, /*->42876*/
/*42782*/     OPC_CheckInteger, 48|128,2/*304*/, 
/*42785*/     OPC_MoveParent,
/*42786*/     OPC_RecordChild1, // #0 = $src1
/*42787*/     OPC_Scope, 58, /*->42847*/ // 2 children in Scope
/*42789*/       OPC_MoveChild, 2,
/*42791*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*42794*/       OPC_RecordMemRef,
/*42795*/       OPC_RecordNode, // #1 = 'ld' chained node
/*42796*/       OPC_CheckFoldableChainNode,
/*42797*/       OPC_RecordChild1, // #2 = $src2
/*42798*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*42800*/       OPC_CheckPredicate, 3, // Predicate_load
/*42802*/       OPC_CheckPredicate, 23, // Predicate_memop
/*42804*/       OPC_MoveParent,
/*42805*/       OPC_Scope, 19, /*->42826*/ // 2 children in Scope
/*42807*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*42809*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*42812*/         OPC_EmitMergeInputChains1_1,
/*42813*/         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)
/*42826*/       /*Scope*/ 19, /*->42846*/
/*42827*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*42829*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*42832*/         OPC_EmitMergeInputChains1_1,
/*42833*/         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)
/*42846*/       0, /*End of Scope*/
/*42847*/     /*Scope*/ 27, /*->42875*/
/*42848*/       OPC_RecordChild2, // #1 = $src2
/*42849*/       OPC_Scope, 11, /*->42862*/ // 2 children in Scope
/*42851*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*42853*/         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)
/*42862*/       /*Scope*/ 11, /*->42874*/
/*42863*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*42865*/         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)
/*42874*/       0, /*End of Scope*/
/*42875*/     0, /*End of Scope*/
/*42876*/   /*Scope*/ 56, /*->42933*/
/*42877*/     OPC_CheckInteger, 19|128,1/*147*/, 
/*42880*/     OPC_MoveParent,
/*42881*/     OPC_RecordChild1, // #0 = $src1
/*42882*/     OPC_Scope, 35, /*->42919*/ // 2 children in Scope
/*42884*/       OPC_MoveChild, 2,
/*42886*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*42889*/       OPC_RecordMemRef,
/*42890*/       OPC_RecordNode, // #1 = 'ld' chained node
/*42891*/       OPC_CheckFoldableChainNode,
/*42892*/       OPC_RecordChild1, // #2 = $src2
/*42893*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*42895*/       OPC_CheckPredicate, 3, // Predicate_load
/*42897*/       OPC_CheckPredicate, 23, // Predicate_memop
/*42899*/       OPC_MoveParent,
/*42900*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*42902*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*42905*/       OPC_EmitMergeInputChains1_1,
/*42906*/       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)
/*42919*/     /*Scope*/ 12, /*->42932*/
/*42920*/       OPC_RecordChild2, // #1 = $src2
/*42921*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*42923*/       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)
/*42932*/     0, /*End of Scope*/
/*42933*/   /*Scope*/ 56, /*->42990*/
/*42934*/     OPC_CheckInteger, 18|128,1/*146*/, 
/*42937*/     OPC_MoveParent,
/*42938*/     OPC_RecordChild1, // #0 = $src1
/*42939*/     OPC_Scope, 35, /*->42976*/ // 2 children in Scope
/*42941*/       OPC_MoveChild, 2,
/*42943*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*42946*/       OPC_RecordMemRef,
/*42947*/       OPC_RecordNode, // #1 = 'ld' chained node
/*42948*/       OPC_CheckFoldableChainNode,
/*42949*/       OPC_RecordChild1, // #2 = $src2
/*42950*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*42952*/       OPC_CheckPredicate, 3, // Predicate_load
/*42954*/       OPC_CheckPredicate, 23, // Predicate_memop
/*42956*/       OPC_MoveParent,
/*42957*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*42959*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*42962*/       OPC_EmitMergeInputChains1_1,
/*42963*/       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)
/*42976*/     /*Scope*/ 12, /*->42989*/
/*42977*/       OPC_RecordChild2, // #1 = $src2
/*42978*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*42980*/       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)
/*42989*/     0, /*End of Scope*/
/*42990*/   /*Scope*/ 94, /*->43085*/
/*42991*/     OPC_CheckInteger, 88|128,3/*472*/, 
/*42994*/     OPC_MoveParent,
/*42995*/     OPC_RecordChild1, // #0 = $src1
/*42996*/     OPC_Scope, 58, /*->43056*/ // 2 children in Scope
/*42998*/       OPC_MoveChild, 2,
/*43000*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*43003*/       OPC_RecordMemRef,
/*43004*/       OPC_RecordNode, // #1 = 'ld' chained node
/*43005*/       OPC_CheckFoldableChainNode,
/*43006*/       OPC_RecordChild1, // #2 = $src2
/*43007*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*43009*/       OPC_CheckPredicate, 3, // Predicate_load
/*43011*/       OPC_CheckPredicate, 23, // Predicate_memop
/*43013*/       OPC_MoveParent,
/*43014*/       OPC_Scope, 19, /*->43035*/ // 2 children in Scope
/*43016*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*43018*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*43021*/         OPC_EmitMergeInputChains1_1,
/*43022*/         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)
/*43035*/       /*Scope*/ 19, /*->43055*/
/*43036*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*43038*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*43041*/         OPC_EmitMergeInputChains1_1,
/*43042*/         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)
/*43055*/       0, /*End of Scope*/
/*43056*/     /*Scope*/ 27, /*->43084*/
/*43057*/       OPC_RecordChild2, // #1 = $src2
/*43058*/       OPC_Scope, 11, /*->43071*/ // 2 children in Scope
/*43060*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*43062*/         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)
/*43071*/       /*Scope*/ 11, /*->43083*/
/*43072*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*43074*/         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)
/*43083*/       0, /*End of Scope*/
/*43084*/     0, /*End of Scope*/
/*43085*/   /*Scope*/ 94, /*->43180*/
/*43086*/     OPC_CheckInteger, 51|128,2/*307*/, 
/*43089*/     OPC_MoveParent,
/*43090*/     OPC_RecordChild1, // #0 = $src1
/*43091*/     OPC_Scope, 58, /*->43151*/ // 2 children in Scope
/*43093*/       OPC_MoveChild, 2,
/*43095*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*43098*/       OPC_RecordMemRef,
/*43099*/       OPC_RecordNode, // #1 = 'ld' chained node
/*43100*/       OPC_CheckFoldableChainNode,
/*43101*/       OPC_RecordChild1, // #2 = $src2
/*43102*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*43104*/       OPC_CheckPredicate, 3, // Predicate_load
/*43106*/       OPC_CheckPredicate, 23, // Predicate_memop
/*43108*/       OPC_MoveParent,
/*43109*/       OPC_Scope, 19, /*->43130*/ // 2 children in Scope
/*43111*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*43113*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*43116*/         OPC_EmitMergeInputChains1_1,
/*43117*/         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)
/*43130*/       /*Scope*/ 19, /*->43150*/
/*43131*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*43133*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*43136*/         OPC_EmitMergeInputChains1_1,
/*43137*/         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)
/*43150*/       0, /*End of Scope*/
/*43151*/     /*Scope*/ 27, /*->43179*/
/*43152*/       OPC_RecordChild2, // #1 = $src2
/*43153*/       OPC_Scope, 11, /*->43166*/ // 2 children in Scope
/*43155*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*43157*/         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)
/*43166*/       /*Scope*/ 11, /*->43178*/
/*43167*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*43169*/         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)
/*43178*/       0, /*End of Scope*/
/*43179*/     0, /*End of Scope*/
/*43180*/   /*Scope*/ 56, /*->43237*/
/*43181*/     OPC_CheckInteger, 21|128,1/*149*/, 
/*43184*/     OPC_MoveParent,
/*43185*/     OPC_RecordChild1, // #0 = $src1
/*43186*/     OPC_Scope, 35, /*->43223*/ // 2 children in Scope
/*43188*/       OPC_MoveChild, 2,
/*43190*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*43193*/       OPC_RecordMemRef,
/*43194*/       OPC_RecordNode, // #1 = 'ld' chained node
/*43195*/       OPC_CheckFoldableChainNode,
/*43196*/       OPC_RecordChild1, // #2 = $src2
/*43197*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*43199*/       OPC_CheckPredicate, 3, // Predicate_load
/*43201*/       OPC_CheckPredicate, 23, // Predicate_memop
/*43203*/       OPC_MoveParent,
/*43204*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*43206*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*43209*/       OPC_EmitMergeInputChains1_1,
/*43210*/       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)
/*43223*/     /*Scope*/ 12, /*->43236*/
/*43224*/       OPC_RecordChild2, // #1 = $src2
/*43225*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*43227*/       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)
/*43236*/     0, /*End of Scope*/
/*43237*/   /*Scope*/ 56, /*->43294*/
/*43238*/     OPC_CheckInteger, 20|128,1/*148*/, 
/*43241*/     OPC_MoveParent,
/*43242*/     OPC_RecordChild1, // #0 = $src1
/*43243*/     OPC_Scope, 35, /*->43280*/ // 2 children in Scope
/*43245*/       OPC_MoveChild, 2,
/*43247*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*43250*/       OPC_RecordMemRef,
/*43251*/       OPC_RecordNode, // #1 = 'ld' chained node
/*43252*/       OPC_CheckFoldableChainNode,
/*43253*/       OPC_RecordChild1, // #2 = $src2
/*43254*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*43256*/       OPC_CheckPredicate, 3, // Predicate_load
/*43258*/       OPC_CheckPredicate, 23, // Predicate_memop
/*43260*/       OPC_MoveParent,
/*43261*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*43263*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*43266*/       OPC_EmitMergeInputChains1_1,
/*43267*/       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)
/*43280*/     /*Scope*/ 12, /*->43293*/
/*43281*/       OPC_RecordChild2, // #1 = $src2
/*43282*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*43284*/       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)
/*43293*/     0, /*End of Scope*/
/*43294*/   /*Scope*/ 89, /*->43384*/
/*43295*/     OPC_CheckInteger, 98|128,3/*482*/, 
/*43298*/     OPC_MoveParent,
/*43299*/     OPC_Scope, 56, /*->43357*/ // 2 children in Scope
/*43301*/       OPC_MoveChild, 1,
/*43303*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*43306*/       OPC_RecordMemRef,
/*43307*/       OPC_RecordNode, // #0 = 'ld' chained node
/*43308*/       OPC_CheckFoldableChainNode,
/*43309*/       OPC_RecordChild1, // #1 = $src
/*43310*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*43312*/       OPC_CheckPredicate, 3, // Predicate_load
/*43314*/       OPC_CheckPredicate, 23, // Predicate_memop
/*43316*/       OPC_MoveParent,
/*43317*/       OPC_Scope, 18, /*->43337*/ // 2 children in Scope
/*43319*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*43321*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*43324*/         OPC_EmitMergeInputChains1_0,
/*43325*/         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)
/*43337*/       /*Scope*/ 18, /*->43356*/
/*43338*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*43340*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*43343*/         OPC_EmitMergeInputChains1_0,
/*43344*/         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)
/*43356*/       0, /*End of Scope*/
/*43357*/     /*Scope*/ 25, /*->43383*/
/*43358*/       OPC_RecordChild1, // #0 = $src
/*43359*/       OPC_Scope, 10, /*->43371*/ // 2 children in Scope
/*43361*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*43363*/         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)
/*43371*/       /*Scope*/ 10, /*->43382*/
/*43372*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*43374*/         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)
/*43382*/       0, /*End of Scope*/
/*43383*/     0, /*End of Scope*/
/*43384*/   /*Scope*/ 89, /*->43474*/
/*43385*/     OPC_CheckInteger, 104|128,2/*360*/, 
/*43388*/     OPC_MoveParent,
/*43389*/     OPC_Scope, 56, /*->43447*/ // 2 children in Scope
/*43391*/       OPC_MoveChild, 1,
/*43393*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*43396*/       OPC_RecordMemRef,
/*43397*/       OPC_RecordNode, // #0 = 'ld' chained node
/*43398*/       OPC_CheckFoldableChainNode,
/*43399*/       OPC_RecordChild1, // #1 = $src
/*43400*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*43402*/       OPC_CheckPredicate, 3, // Predicate_load
/*43404*/       OPC_CheckPredicate, 23, // Predicate_memop
/*43406*/       OPC_MoveParent,
/*43407*/       OPC_Scope, 18, /*->43427*/ // 2 children in Scope
/*43409*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*43411*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*43414*/         OPC_EmitMergeInputChains1_0,
/*43415*/         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)
/*43427*/       /*Scope*/ 18, /*->43446*/
/*43428*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*43430*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*43433*/         OPC_EmitMergeInputChains1_0,
/*43434*/         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)
/*43446*/       0, /*End of Scope*/
/*43447*/     /*Scope*/ 25, /*->43473*/
/*43448*/       OPC_RecordChild1, // #0 = $src
/*43449*/       OPC_Scope, 10, /*->43461*/ // 2 children in Scope
/*43451*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*43453*/         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)
/*43461*/       /*Scope*/ 10, /*->43472*/
/*43462*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*43464*/         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)
/*43472*/       0, /*End of Scope*/
/*43473*/     0, /*End of Scope*/
/*43474*/   /*Scope*/ 53, /*->43528*/
/*43475*/     OPC_CheckInteger, 35|128,1/*163*/, 
/*43478*/     OPC_MoveParent,
/*43479*/     OPC_Scope, 34, /*->43515*/ // 2 children in Scope
/*43481*/       OPC_MoveChild, 1,
/*43483*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*43486*/       OPC_RecordMemRef,
/*43487*/       OPC_RecordNode, // #0 = 'ld' chained node
/*43488*/       OPC_CheckFoldableChainNode,
/*43489*/       OPC_RecordChild1, // #1 = $src
/*43490*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*43492*/       OPC_CheckPredicate, 3, // Predicate_load
/*43494*/       OPC_CheckPredicate, 23, // Predicate_memop
/*43496*/       OPC_MoveParent,
/*43497*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*43499*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*43502*/       OPC_EmitMergeInputChains1_0,
/*43503*/       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)
/*43515*/     /*Scope*/ 11, /*->43527*/
/*43516*/       OPC_RecordChild1, // #0 = $src
/*43517*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*43519*/       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)
/*43527*/     0, /*End of Scope*/
/*43528*/   /*Scope*/ 53, /*->43582*/
/*43529*/     OPC_CheckInteger, 34|128,1/*162*/, 
/*43532*/     OPC_MoveParent,
/*43533*/     OPC_Scope, 34, /*->43569*/ // 2 children in Scope
/*43535*/       OPC_MoveChild, 1,
/*43537*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*43540*/       OPC_RecordMemRef,
/*43541*/       OPC_RecordNode, // #0 = 'ld' chained node
/*43542*/       OPC_CheckFoldableChainNode,
/*43543*/       OPC_RecordChild1, // #1 = $src
/*43544*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*43546*/       OPC_CheckPredicate, 3, // Predicate_load
/*43548*/       OPC_CheckPredicate, 23, // Predicate_memop
/*43550*/       OPC_MoveParent,
/*43551*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*43553*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*43556*/       OPC_EmitMergeInputChains1_0,
/*43557*/       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)
/*43569*/     /*Scope*/ 11, /*->43581*/
/*43570*/       OPC_RecordChild1, // #0 = $src
/*43571*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*43573*/       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)
/*43581*/     0, /*End of Scope*/
/*43582*/   /*Scope*/ 53, /*->43636*/
/*43583*/     OPC_CheckInteger, 33|128,1/*161*/, 
/*43586*/     OPC_MoveParent,
/*43587*/     OPC_Scope, 34, /*->43623*/ // 2 children in Scope
/*43589*/       OPC_MoveChild, 1,
/*43591*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*43594*/       OPC_RecordMemRef,
/*43595*/       OPC_RecordNode, // #0 = 'ld' chained node
/*43596*/       OPC_CheckFoldableChainNode,
/*43597*/       OPC_RecordChild1, // #1 = $src
/*43598*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*43600*/       OPC_CheckPredicate, 3, // Predicate_load
/*43602*/       OPC_CheckPredicate, 23, // Predicate_memop
/*43604*/       OPC_MoveParent,
/*43605*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*43607*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*43610*/       OPC_EmitMergeInputChains1_0,
/*43611*/       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)
/*43623*/     /*Scope*/ 11, /*->43635*/
/*43624*/       OPC_RecordChild1, // #0 = $src
/*43625*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*43627*/       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)
/*43635*/     0, /*End of Scope*/
/*43636*/   /*Scope*/ 89, /*->43726*/
/*43637*/     OPC_CheckInteger, 95|128,3/*479*/, 
/*43640*/     OPC_MoveParent,
/*43641*/     OPC_Scope, 56, /*->43699*/ // 2 children in Scope
/*43643*/       OPC_MoveChild, 1,
/*43645*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*43648*/       OPC_RecordMemRef,
/*43649*/       OPC_RecordNode, // #0 = 'ld' chained node
/*43650*/       OPC_CheckFoldableChainNode,
/*43651*/       OPC_RecordChild1, // #1 = $src
/*43652*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*43654*/       OPC_CheckPredicate, 3, // Predicate_load
/*43656*/       OPC_CheckPredicate, 23, // Predicate_memop
/*43658*/       OPC_MoveParent,
/*43659*/       OPC_Scope, 18, /*->43679*/ // 2 children in Scope
/*43661*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*43663*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*43666*/         OPC_EmitMergeInputChains1_0,
/*43667*/         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)
/*43679*/       /*Scope*/ 18, /*->43698*/
/*43680*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*43682*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*43685*/         OPC_EmitMergeInputChains1_0,
/*43686*/         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)
/*43698*/       0, /*End of Scope*/
/*43699*/     /*Scope*/ 25, /*->43725*/
/*43700*/       OPC_RecordChild1, // #0 = $src
/*43701*/       OPC_Scope, 10, /*->43713*/ // 2 children in Scope
/*43703*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*43705*/         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)
/*43713*/       /*Scope*/ 10, /*->43724*/
/*43714*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*43716*/         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)
/*43724*/       0, /*End of Scope*/
/*43725*/     0, /*End of Scope*/
/*43726*/   /*Scope*/ 53, /*->43780*/
/*43727*/     OPC_CheckInteger, 30|128,1/*158*/, 
/*43730*/     OPC_MoveParent,
/*43731*/     OPC_Scope, 34, /*->43767*/ // 2 children in Scope
/*43733*/       OPC_MoveChild, 1,
/*43735*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*43738*/       OPC_RecordMemRef,
/*43739*/       OPC_RecordNode, // #0 = 'ld' chained node
/*43740*/       OPC_CheckFoldableChainNode,
/*43741*/       OPC_RecordChild1, // #1 = $src
/*43742*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*43744*/       OPC_CheckPredicate, 3, // Predicate_load
/*43746*/       OPC_CheckPredicate, 23, // Predicate_memop
/*43748*/       OPC_MoveParent,
/*43749*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*43751*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*43754*/       OPC_EmitMergeInputChains1_0,
/*43755*/       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)
/*43767*/     /*Scope*/ 11, /*->43779*/
/*43768*/       OPC_RecordChild1, // #0 = $src
/*43769*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*43771*/       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)
/*43779*/     0, /*End of Scope*/
/*43780*/   /*Scope*/ 89, /*->43870*/
/*43781*/     OPC_CheckInteger, 93|128,3/*477*/, 
/*43784*/     OPC_MoveParent,
/*43785*/     OPC_Scope, 56, /*->43843*/ // 2 children in Scope
/*43787*/       OPC_MoveChild, 1,
/*43789*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*43792*/       OPC_RecordMemRef,
/*43793*/       OPC_RecordNode, // #0 = 'ld' chained node
/*43794*/       OPC_CheckFoldableChainNode,
/*43795*/       OPC_RecordChild1, // #1 = $src
/*43796*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*43798*/       OPC_CheckPredicate, 3, // Predicate_load
/*43800*/       OPC_CheckPredicate, 23, // Predicate_memop
/*43802*/       OPC_MoveParent,
/*43803*/       OPC_Scope, 18, /*->43823*/ // 2 children in Scope
/*43805*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*43807*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*43810*/         OPC_EmitMergeInputChains1_0,
/*43811*/         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)
/*43823*/       /*Scope*/ 18, /*->43842*/
/*43824*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*43826*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*43829*/         OPC_EmitMergeInputChains1_0,
/*43830*/         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)
/*43842*/       0, /*End of Scope*/
/*43843*/     /*Scope*/ 25, /*->43869*/
/*43844*/       OPC_RecordChild1, // #0 = $src
/*43845*/       OPC_Scope, 10, /*->43857*/ // 2 children in Scope
/*43847*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*43849*/         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)
/*43857*/       /*Scope*/ 10, /*->43868*/
/*43858*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*43860*/         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)
/*43868*/       0, /*End of Scope*/
/*43869*/     0, /*End of Scope*/
/*43870*/   /*Scope*/ 48, /*->43919*/
/*43871*/     OPC_CheckInteger, 125, 
/*43873*/     OPC_MoveParent,
/*43874*/     OPC_Scope, 32, /*->43908*/ // 2 children in Scope
/*43876*/       OPC_MoveChild, 1,
/*43878*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*43881*/       OPC_RecordMemRef,
/*43882*/       OPC_RecordNode, // #0 = 'ld' chained node
/*43883*/       OPC_CheckFoldableChainNode,
/*43884*/       OPC_RecordChild1, // #1 = $src
/*43885*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*43887*/       OPC_CheckPredicate, 3, // Predicate_load
/*43889*/       OPC_CheckPredicate, 23, // Predicate_memop
/*43891*/       OPC_MoveParent,
/*43892*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*43895*/       OPC_EmitMergeInputChains1_0,
/*43896*/       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)
/*43908*/     /*Scope*/ 9, /*->43918*/
/*43909*/       OPC_RecordChild1, // #0 = $src
/*43910*/       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)
/*43918*/     0, /*End of Scope*/
/*43919*/   /*Scope*/ 94, /*->44014*/
/*43920*/     OPC_CheckInteger, 117|128,2/*373*/, 
/*43923*/     OPC_MoveParent,
/*43924*/     OPC_RecordChild1, // #0 = $src1
/*43925*/     OPC_Scope, 58, /*->43985*/ // 2 children in Scope
/*43927*/       OPC_MoveChild, 2,
/*43929*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*43932*/       OPC_RecordMemRef,
/*43933*/       OPC_RecordNode, // #1 = 'ld' chained node
/*43934*/       OPC_CheckFoldableChainNode,
/*43935*/       OPC_RecordChild1, // #2 = $src2
/*43936*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*43938*/       OPC_CheckPredicate, 3, // Predicate_load
/*43940*/       OPC_CheckPredicate, 23, // Predicate_memop
/*43942*/       OPC_MoveParent,
/*43943*/       OPC_Scope, 19, /*->43964*/ // 2 children in Scope
/*43945*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*43947*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*43950*/         OPC_EmitMergeInputChains1_1,
/*43951*/         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)
/*43964*/       /*Scope*/ 19, /*->43984*/
/*43965*/         OPC_CheckPatternPredicate, 16, // (Subtarget->hasSSE3())
/*43967*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*43970*/         OPC_EmitMergeInputChains1_1,
/*43971*/         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)
/*43984*/       0, /*End of Scope*/
/*43985*/     /*Scope*/ 27, /*->44013*/
/*43986*/       OPC_RecordChild2, // #1 = $src2
/*43987*/       OPC_Scope, 11, /*->44000*/ // 2 children in Scope
/*43989*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*43991*/         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)
/*44000*/       /*Scope*/ 11, /*->44012*/
/*44001*/         OPC_CheckPatternPredicate, 16, // (Subtarget->hasSSE3())
/*44003*/         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)
/*44012*/       0, /*End of Scope*/
/*44013*/     0, /*End of Scope*/
/*44014*/   /*Scope*/ 94, /*->44109*/
/*44015*/     OPC_CheckInteger, 116|128,2/*372*/, 
/*44018*/     OPC_MoveParent,
/*44019*/     OPC_RecordChild1, // #0 = $src1
/*44020*/     OPC_Scope, 58, /*->44080*/ // 2 children in Scope
/*44022*/       OPC_MoveChild, 2,
/*44024*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*44027*/       OPC_RecordMemRef,
/*44028*/       OPC_RecordNode, // #1 = 'ld' chained node
/*44029*/       OPC_CheckFoldableChainNode,
/*44030*/       OPC_RecordChild1, // #2 = $src2
/*44031*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*44033*/       OPC_CheckPredicate, 3, // Predicate_load
/*44035*/       OPC_CheckPredicate, 23, // Predicate_memop
/*44037*/       OPC_MoveParent,
/*44038*/       OPC_Scope, 19, /*->44059*/ // 2 children in Scope
/*44040*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*44042*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*44045*/         OPC_EmitMergeInputChains1_1,
/*44046*/         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)
/*44059*/       /*Scope*/ 19, /*->44079*/
/*44060*/         OPC_CheckPatternPredicate, 16, // (Subtarget->hasSSE3())
/*44062*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*44065*/         OPC_EmitMergeInputChains1_1,
/*44066*/         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)
/*44079*/       0, /*End of Scope*/
/*44080*/     /*Scope*/ 27, /*->44108*/
/*44081*/       OPC_RecordChild2, // #1 = $src2
/*44082*/       OPC_Scope, 11, /*->44095*/ // 2 children in Scope
/*44084*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*44086*/         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)
/*44095*/       /*Scope*/ 11, /*->44107*/
/*44096*/         OPC_CheckPatternPredicate, 16, // (Subtarget->hasSSE3())
/*44098*/         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)
/*44107*/       0, /*End of Scope*/
/*44108*/     0, /*End of Scope*/
/*44109*/   /*Scope*/ 55, /*->44165*/
/*44110*/     OPC_CheckInteger, 114, 
/*44112*/     OPC_MoveParent,
/*44113*/     OPC_RecordChild1, // #0 = $src1
/*44114*/     OPC_Scope, 35, /*->44151*/ // 2 children in Scope
/*44116*/       OPC_MoveChild, 2,
/*44118*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*44121*/       OPC_RecordMemRef,
/*44122*/       OPC_RecordNode, // #1 = 'ld' chained node
/*44123*/       OPC_CheckFoldableChainNode,
/*44124*/       OPC_RecordChild1, // #2 = $src2
/*44125*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*44127*/       OPC_CheckPredicate, 3, // Predicate_load
/*44129*/       OPC_CheckPredicate, 23, // Predicate_memop
/*44131*/       OPC_MoveParent,
/*44132*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*44134*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*44137*/       OPC_EmitMergeInputChains1_1,
/*44138*/       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)
/*44151*/     /*Scope*/ 12, /*->44164*/
/*44152*/       OPC_RecordChild2, // #1 = $src2
/*44153*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*44155*/       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)
/*44164*/     0, /*End of Scope*/
/*44165*/   /*Scope*/ 55, /*->44221*/
/*44166*/     OPC_CheckInteger, 113, 
/*44168*/     OPC_MoveParent,
/*44169*/     OPC_RecordChild1, // #0 = $src1
/*44170*/     OPC_Scope, 35, /*->44207*/ // 2 children in Scope
/*44172*/       OPC_MoveChild, 2,
/*44174*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*44177*/       OPC_RecordMemRef,
/*44178*/       OPC_RecordNode, // #1 = 'ld' chained node
/*44179*/       OPC_CheckFoldableChainNode,
/*44180*/       OPC_RecordChild1, // #2 = $src2
/*44181*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*44183*/       OPC_CheckPredicate, 3, // Predicate_load
/*44185*/       OPC_CheckPredicate, 23, // Predicate_memop
/*44187*/       OPC_MoveParent,
/*44188*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*44190*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*44193*/       OPC_EmitMergeInputChains1_1,
/*44194*/       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)
/*44207*/     /*Scope*/ 12, /*->44220*/
/*44208*/       OPC_RecordChild2, // #1 = $src2
/*44209*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*44211*/       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)
/*44220*/     0, /*End of Scope*/
/*44221*/   /*Scope*/ 56, /*->44278*/
/*44222*/     OPC_CheckInteger, 59|128,1/*187*/, 
/*44225*/     OPC_MoveParent,
/*44226*/     OPC_RecordChild1, // #0 = $src1
/*44227*/     OPC_Scope, 35, /*->44264*/ // 2 children in Scope
/*44229*/       OPC_MoveChild, 2,
/*44231*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*44234*/       OPC_RecordMemRef,
/*44235*/       OPC_RecordNode, // #1 = 'ld' chained node
/*44236*/       OPC_CheckFoldableChainNode,
/*44237*/       OPC_RecordChild1, // #2 = $src2
/*44238*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*44240*/       OPC_CheckPredicate, 3, // Predicate_load
/*44242*/       OPC_CheckPredicate, 23, // Predicate_memop
/*44244*/       OPC_MoveParent,
/*44245*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*44247*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*44250*/       OPC_EmitMergeInputChains1_1,
/*44251*/       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)
/*44264*/     /*Scope*/ 12, /*->44277*/
/*44265*/       OPC_RecordChild2, // #1 = $src2
/*44266*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*44268*/       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)
/*44277*/     0, /*End of Scope*/
/*44278*/   /*Scope*/ 56, /*->44335*/
/*44279*/     OPC_CheckInteger, 60|128,1/*188*/, 
/*44282*/     OPC_MoveParent,
/*44283*/     OPC_RecordChild1, // #0 = $src1
/*44284*/     OPC_Scope, 35, /*->44321*/ // 2 children in Scope
/*44286*/       OPC_MoveChild, 2,
/*44288*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*44291*/       OPC_RecordMemRef,
/*44292*/       OPC_RecordNode, // #1 = 'ld' chained node
/*44293*/       OPC_CheckFoldableChainNode,
/*44294*/       OPC_RecordChild1, // #2 = $src2
/*44295*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*44297*/       OPC_CheckPredicate, 3, // Predicate_load
/*44299*/       OPC_CheckPredicate, 23, // Predicate_memop
/*44301*/       OPC_MoveParent,
/*44302*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*44304*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*44307*/       OPC_EmitMergeInputChains1_1,
/*44308*/       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)
/*44321*/     /*Scope*/ 12, /*->44334*/
/*44322*/       OPC_RecordChild2, // #1 = $src2
/*44323*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*44325*/       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)
/*44334*/     0, /*End of Scope*/
/*44335*/   /*Scope*/ 56, /*->44392*/
/*44336*/     OPC_CheckInteger, 57|128,1/*185*/, 
/*44339*/     OPC_MoveParent,
/*44340*/     OPC_RecordChild1, // #0 = $src1
/*44341*/     OPC_Scope, 35, /*->44378*/ // 2 children in Scope
/*44343*/       OPC_MoveChild, 2,
/*44345*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*44348*/       OPC_RecordMemRef,
/*44349*/       OPC_RecordNode, // #1 = 'ld' chained node
/*44350*/       OPC_CheckFoldableChainNode,
/*44351*/       OPC_RecordChild1, // #2 = $src2
/*44352*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*44354*/       OPC_CheckPredicate, 3, // Predicate_load
/*44356*/       OPC_CheckPredicate, 23, // Predicate_memop
/*44358*/       OPC_MoveParent,
/*44359*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*44361*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*44364*/       OPC_EmitMergeInputChains1_1,
/*44365*/       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)
/*44378*/     /*Scope*/ 12, /*->44391*/
/*44379*/       OPC_RecordChild2, // #1 = $src2
/*44380*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*44382*/       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)
/*44391*/     0, /*End of Scope*/
/*44392*/   /*Scope*/ 56, /*->44449*/
/*44393*/     OPC_CheckInteger, 58|128,1/*186*/, 
/*44396*/     OPC_MoveParent,
/*44397*/     OPC_RecordChild1, // #0 = $src1
/*44398*/     OPC_Scope, 35, /*->44435*/ // 2 children in Scope
/*44400*/       OPC_MoveChild, 2,
/*44402*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*44405*/       OPC_RecordMemRef,
/*44406*/       OPC_RecordNode, // #1 = 'ld' chained node
/*44407*/       OPC_CheckFoldableChainNode,
/*44408*/       OPC_RecordChild1, // #2 = $src2
/*44409*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*44411*/       OPC_CheckPredicate, 3, // Predicate_load
/*44413*/       OPC_CheckPredicate, 23, // Predicate_memop
/*44415*/       OPC_MoveParent,
/*44416*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*44418*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*44421*/       OPC_EmitMergeInputChains1_1,
/*44422*/       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)
/*44435*/     /*Scope*/ 12, /*->44448*/
/*44436*/       OPC_RecordChild2, // #1 = $src2
/*44437*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*44439*/       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)
/*44448*/     0, /*End of Scope*/
/*44449*/   /*Scope*/ 51, /*->44501*/
/*44450*/     OPC_CheckInteger, 73|128,3/*457*/, 
/*44453*/     OPC_MoveParent,
/*44454*/     OPC_Scope, 32, /*->44488*/ // 2 children in Scope
/*44456*/       OPC_MoveChild, 1,
/*44458*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*44461*/       OPC_RecordMemRef,
/*44462*/       OPC_RecordNode, // #0 = 'ld' chained node
/*44463*/       OPC_CheckFoldableChainNode,
/*44464*/       OPC_RecordChild1, // #1 = $src
/*44465*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*44467*/       OPC_CheckPredicate, 3, // Predicate_load
/*44469*/       OPC_MoveParent,
/*44470*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*44472*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*44475*/       OPC_EmitMergeInputChains1_0,
/*44476*/       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)
/*44488*/     /*Scope*/ 11, /*->44500*/
/*44489*/       OPC_RecordChild1, // #0 = $src
/*44490*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*44492*/       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)
/*44500*/     0, /*End of Scope*/
/*44501*/   /*Scope*/ 54, /*->44556*/
/*44502*/     OPC_CheckInteger, 74|128,3/*458*/, 
/*44505*/     OPC_MoveParent,
/*44506*/     OPC_RecordChild1, // #0 = $src1
/*44507*/     OPC_Scope, 33, /*->44542*/ // 2 children in Scope
/*44509*/       OPC_MoveChild, 2,
/*44511*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*44514*/       OPC_RecordMemRef,
/*44515*/       OPC_RecordNode, // #1 = 'ld' chained node
/*44516*/       OPC_CheckFoldableChainNode,
/*44517*/       OPC_RecordChild1, // #2 = $src2
/*44518*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*44520*/       OPC_CheckPredicate, 3, // Predicate_load
/*44522*/       OPC_MoveParent,
/*44523*/       OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*44525*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*44528*/       OPC_EmitMergeInputChains1_1,
/*44529*/       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)
/*44542*/     /*Scope*/ 12, /*->44555*/
/*44543*/       OPC_RecordChild2, // #1 = $src2
/*44544*/       OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*44546*/       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)
/*44555*/     0, /*End of Scope*/
/*44556*/   /*Scope*/ 95, /*->44652*/
/*44557*/     OPC_CheckInteger, 42|128,3/*426*/, 
/*44560*/     OPC_MoveParent,
/*44561*/     OPC_RecordChild1, // #0 = $src1
/*44562*/     OPC_RecordChild2, // #1 = $src2
/*44563*/     OPC_RecordChild3, // #2 = $src3
/*44564*/     OPC_MoveChild, 3,
/*44566*/     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*44569*/     OPC_MoveParent,
/*44570*/     OPC_Scope, 24, /*->44596*/ // 4 children in Scope
/*44572*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*44574*/       OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectScalarSSELoad:$src2 #3 #4 #5 #6 #7 + chain result
/*44577*/       OPC_EmitMergeInputChains, 1, 8, 
/*44580*/       OPC_EmitConvertToTarget, 2,
/*44582*/       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)
/*44596*/     /*Scope*/ 24, /*->44621*/
/*44597*/       OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*44599*/       OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectScalarSSELoad:$src2 #3 #4 #5 #6 #7 + chain result
/*44602*/       OPC_EmitMergeInputChains, 1, 8, 
/*44605*/       OPC_EmitConvertToTarget, 2,
/*44607*/       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)
/*44621*/     /*Scope*/ 14, /*->44636*/
/*44622*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*44624*/       OPC_EmitConvertToTarget, 2,
/*44626*/       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)
/*44636*/     /*Scope*/ 14, /*->44651*/
/*44637*/       OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*44639*/       OPC_EmitConvertToTarget, 2,
/*44641*/       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)
/*44651*/     0, /*End of Scope*/
/*44652*/   /*Scope*/ 95, /*->44748*/
/*44653*/     OPC_CheckInteger, 41|128,3/*425*/, 
/*44656*/     OPC_MoveParent,
/*44657*/     OPC_RecordChild1, // #0 = $src1
/*44658*/     OPC_RecordChild2, // #1 = $src2
/*44659*/     OPC_RecordChild3, // #2 = $src3
/*44660*/     OPC_MoveChild, 3,
/*44662*/     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*44665*/     OPC_MoveParent,
/*44666*/     OPC_Scope, 24, /*->44692*/ // 4 children in Scope
/*44668*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*44670*/       OPC_CheckComplexPat, /*CP*/2, /*#*/1, // SelectScalarSSELoad:$src2 #3 #4 #5 #6 #7 + chain result
/*44673*/       OPC_EmitMergeInputChains, 1, 8, 
/*44676*/       OPC_EmitConvertToTarget, 2,
/*44678*/       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)
/*44692*/     /*Scope*/ 24, /*->44717*/
/*44693*/       OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*44695*/       OPC_CheckComplexPat, /*CP*/2, /*#*/1, // SelectScalarSSELoad:$src2 #3 #4 #5 #6 #7 + chain result
/*44698*/       OPC_EmitMergeInputChains, 1, 8, 
/*44701*/       OPC_EmitConvertToTarget, 2,
/*44703*/       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)
/*44717*/     /*Scope*/ 14, /*->44732*/
/*44718*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*44720*/       OPC_EmitConvertToTarget, 2,
/*44722*/       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)
/*44732*/     /*Scope*/ 14, /*->44747*/
/*44733*/       OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*44735*/       OPC_EmitConvertToTarget, 2,
/*44737*/       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)
/*44747*/     0, /*End of Scope*/
/*44748*/   /*Scope*/ 76, /*->44825*/
/*44749*/     OPC_CheckInteger, 63|128,3/*447*/, 
/*44752*/     OPC_MoveParent,
/*44753*/     OPC_RecordChild1, // #0 = $src1
/*44754*/     OPC_RecordChild2, // #1 = $src2
/*44755*/     OPC_Scope, 21, /*->44778*/ // 4 children in Scope
/*44757*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*44759*/       OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*44762*/       OPC_EmitMergeInputChains, 1, 7, 
/*44765*/       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)
/*44778*/     /*Scope*/ 21, /*->44800*/
/*44779*/       OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*44781*/       OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*44784*/       OPC_EmitMergeInputChains, 1, 7, 
/*44787*/       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)
/*44800*/     /*Scope*/ 11, /*->44812*/
/*44801*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*44803*/       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)
/*44812*/     /*Scope*/ 11, /*->44824*/
/*44813*/       OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*44815*/       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)
/*44824*/     0, /*End of Scope*/
/*44825*/   /*Scope*/ 76, /*->44902*/
/*44826*/     OPC_CheckInteger, 19|128,2/*275*/, 
/*44829*/     OPC_MoveParent,
/*44830*/     OPC_RecordChild1, // #0 = $src1
/*44831*/     OPC_RecordChild2, // #1 = $src2
/*44832*/     OPC_Scope, 21, /*->44855*/ // 4 children in Scope
/*44834*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*44836*/       OPC_CheckComplexPat, /*CP*/2, /*#*/1, // SelectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*44839*/       OPC_EmitMergeInputChains, 1, 7, 
/*44842*/       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)
/*44855*/     /*Scope*/ 21, /*->44877*/
/*44856*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*44858*/       OPC_CheckComplexPat, /*CP*/2, /*#*/1, // SelectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*44861*/       OPC_EmitMergeInputChains, 1, 7, 
/*44864*/       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)
/*44877*/     /*Scope*/ 11, /*->44889*/
/*44878*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*44880*/       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)
/*44889*/     /*Scope*/ 11, /*->44901*/
/*44890*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*44892*/       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)
/*44901*/     0, /*End of Scope*/
/*44902*/   /*Scope*/ 76, /*->44979*/
/*44903*/     OPC_CheckInteger, 91|128,3/*475*/, 
/*44906*/     OPC_MoveParent,
/*44907*/     OPC_RecordChild1, // #0 = $src1
/*44908*/     OPC_RecordChild2, // #1 = $src2
/*44909*/     OPC_Scope, 21, /*->44932*/ // 4 children in Scope
/*44911*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*44913*/       OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*44916*/       OPC_EmitMergeInputChains, 1, 7, 
/*44919*/       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)
/*44932*/     /*Scope*/ 21, /*->44954*/
/*44933*/       OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*44935*/       OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*44938*/       OPC_EmitMergeInputChains, 1, 7, 
/*44941*/       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)
/*44954*/     /*Scope*/ 11, /*->44966*/
/*44955*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*44957*/       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)
/*44966*/     /*Scope*/ 11, /*->44978*/
/*44967*/       OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*44969*/       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)
/*44978*/     0, /*End of Scope*/
/*44979*/   /*Scope*/ 76, /*->45056*/
/*44980*/     OPC_CheckInteger, 54|128,2/*310*/, 
/*44983*/     OPC_MoveParent,
/*44984*/     OPC_RecordChild1, // #0 = $src1
/*44985*/     OPC_RecordChild2, // #1 = $src2
/*44986*/     OPC_Scope, 21, /*->45009*/ // 4 children in Scope
/*44988*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*44990*/       OPC_CheckComplexPat, /*CP*/2, /*#*/1, // SelectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*44993*/       OPC_EmitMergeInputChains, 1, 7, 
/*44996*/       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)
/*45009*/     /*Scope*/ 21, /*->45031*/
/*45010*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*45012*/       OPC_CheckComplexPat, /*CP*/2, /*#*/1, // SelectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*45015*/       OPC_EmitMergeInputChains, 1, 7, 
/*45018*/       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)
/*45031*/     /*Scope*/ 11, /*->45043*/
/*45032*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*45034*/       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)
/*45043*/     /*Scope*/ 11, /*->45055*/
/*45044*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*45046*/       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)
/*45055*/     0, /*End of Scope*/
/*45056*/   /*Scope*/ 76, /*->45133*/
/*45057*/     OPC_CheckInteger, 102|128,3/*486*/, 
/*45060*/     OPC_MoveParent,
/*45061*/     OPC_RecordChild1, // #0 = $src1
/*45062*/     OPC_RecordChild2, // #1 = $src2
/*45063*/     OPC_Scope, 21, /*->45086*/ // 4 children in Scope
/*45065*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*45067*/       OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*45070*/       OPC_EmitMergeInputChains, 1, 7, 
/*45073*/       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)
/*45086*/     /*Scope*/ 21, /*->45108*/
/*45087*/       OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*45089*/       OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*45092*/       OPC_EmitMergeInputChains, 1, 7, 
/*45095*/       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)
/*45108*/     /*Scope*/ 11, /*->45120*/
/*45109*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*45111*/       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)
/*45120*/     /*Scope*/ 11, /*->45132*/
/*45121*/       OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*45123*/       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)
/*45132*/     0, /*End of Scope*/
/*45133*/   /*Scope*/ 76, /*->45210*/
/*45134*/     OPC_CheckInteger, 109|128,2/*365*/, 
/*45137*/     OPC_MoveParent,
/*45138*/     OPC_RecordChild1, // #0 = $src1
/*45139*/     OPC_RecordChild2, // #1 = $src2
/*45140*/     OPC_Scope, 21, /*->45163*/ // 4 children in Scope
/*45142*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*45144*/       OPC_CheckComplexPat, /*CP*/2, /*#*/1, // SelectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*45147*/       OPC_EmitMergeInputChains, 1, 7, 
/*45150*/       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)
/*45163*/     /*Scope*/ 21, /*->45185*/
/*45164*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*45166*/       OPC_CheckComplexPat, /*CP*/2, /*#*/1, // SelectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*45169*/       OPC_EmitMergeInputChains, 1, 7, 
/*45172*/       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)
/*45185*/     /*Scope*/ 11, /*->45197*/
/*45186*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*45188*/       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)
/*45197*/     /*Scope*/ 11, /*->45209*/
/*45198*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*45200*/       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)
/*45209*/     0, /*End of Scope*/
/*45210*/   /*Scope*/ 76, /*->45287*/
/*45211*/     OPC_CheckInteger, 84|128,3/*468*/, 
/*45214*/     OPC_MoveParent,
/*45215*/     OPC_RecordChild1, // #0 = $src1
/*45216*/     OPC_RecordChild2, // #1 = $src2
/*45217*/     OPC_Scope, 21, /*->45240*/ // 4 children in Scope
/*45219*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*45221*/       OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*45224*/       OPC_EmitMergeInputChains, 1, 7, 
/*45227*/       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)
/*45240*/     /*Scope*/ 21, /*->45262*/
/*45241*/       OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*45243*/       OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*45246*/       OPC_EmitMergeInputChains, 1, 7, 
/*45249*/       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)
/*45262*/     /*Scope*/ 11, /*->45274*/
/*45263*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*45265*/       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)
/*45274*/     /*Scope*/ 11, /*->45286*/
/*45275*/       OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*45277*/       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)
/*45286*/     0, /*End of Scope*/
/*45287*/   /*Scope*/ 76, /*->45364*/
/*45288*/     OPC_CheckInteger, 45|128,2/*301*/, 
/*45291*/     OPC_MoveParent,
/*45292*/     OPC_RecordChild1, // #0 = $src1
/*45293*/     OPC_RecordChild2, // #1 = $src2
/*45294*/     OPC_Scope, 21, /*->45317*/ // 4 children in Scope
/*45296*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*45298*/       OPC_CheckComplexPat, /*CP*/2, /*#*/1, // SelectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*45301*/       OPC_EmitMergeInputChains, 1, 7, 
/*45304*/       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)
/*45317*/     /*Scope*/ 21, /*->45339*/
/*45318*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*45320*/       OPC_CheckComplexPat, /*CP*/2, /*#*/1, // SelectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*45323*/       OPC_EmitMergeInputChains, 1, 7, 
/*45326*/       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)
/*45339*/     /*Scope*/ 11, /*->45351*/
/*45340*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*45342*/       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)
/*45351*/     /*Scope*/ 11, /*->45363*/
/*45352*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*45354*/       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)
/*45363*/     0, /*End of Scope*/
/*45364*/   /*Scope*/ 76, /*->45441*/
/*45365*/     OPC_CheckInteger, 87|128,3/*471*/, 
/*45368*/     OPC_MoveParent,
/*45369*/     OPC_RecordChild1, // #0 = $src1
/*45370*/     OPC_RecordChild2, // #1 = $src2
/*45371*/     OPC_Scope, 21, /*->45394*/ // 4 children in Scope
/*45373*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*45375*/       OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*45378*/       OPC_EmitMergeInputChains, 1, 7, 
/*45381*/       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)
/*45394*/     /*Scope*/ 21, /*->45416*/
/*45395*/       OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*45397*/       OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*45400*/       OPC_EmitMergeInputChains, 1, 7, 
/*45403*/       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)
/*45416*/     /*Scope*/ 11, /*->45428*/
/*45417*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*45419*/       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)
/*45428*/     /*Scope*/ 11, /*->45440*/
/*45429*/       OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*45431*/       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)
/*45440*/     0, /*End of Scope*/
/*45441*/   /*Scope*/ 76, /*->45518*/
/*45442*/     OPC_CheckInteger, 49|128,2/*305*/, 
/*45445*/     OPC_MoveParent,
/*45446*/     OPC_RecordChild1, // #0 = $src1
/*45447*/     OPC_RecordChild2, // #1 = $src2
/*45448*/     OPC_Scope, 21, /*->45471*/ // 4 children in Scope
/*45450*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*45452*/       OPC_CheckComplexPat, /*CP*/2, /*#*/1, // SelectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*45455*/       OPC_EmitMergeInputChains, 1, 7, 
/*45458*/       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)
/*45471*/     /*Scope*/ 21, /*->45493*/
/*45472*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*45474*/       OPC_CheckComplexPat, /*CP*/2, /*#*/1, // SelectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*45477*/       OPC_EmitMergeInputChains, 1, 7, 
/*45480*/       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)
/*45493*/     /*Scope*/ 11, /*->45505*/
/*45494*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*45496*/       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)
/*45505*/     /*Scope*/ 11, /*->45517*/
/*45506*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*45508*/       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)
/*45517*/     0, /*End of Scope*/
/*45518*/   /*Scope*/ 76, /*->45595*/
/*45519*/     OPC_CheckInteger, 89|128,3/*473*/, 
/*45522*/     OPC_MoveParent,
/*45523*/     OPC_RecordChild1, // #0 = $src1
/*45524*/     OPC_RecordChild2, // #1 = $src2
/*45525*/     OPC_Scope, 21, /*->45548*/ // 4 children in Scope
/*45527*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*45529*/       OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*45532*/       OPC_EmitMergeInputChains, 1, 7, 
/*45535*/       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)
/*45548*/     /*Scope*/ 21, /*->45570*/
/*45549*/       OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*45551*/       OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*45554*/       OPC_EmitMergeInputChains, 1, 7, 
/*45557*/       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)
/*45570*/     /*Scope*/ 11, /*->45582*/
/*45571*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*45573*/       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)
/*45582*/     /*Scope*/ 11, /*->45594*/
/*45583*/       OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*45585*/       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)
/*45594*/     0, /*End of Scope*/
/*45595*/   /*Scope*/ 76, /*->45672*/
/*45596*/     OPC_CheckInteger, 52|128,2/*308*/, 
/*45599*/     OPC_MoveParent,
/*45600*/     OPC_RecordChild1, // #0 = $src1
/*45601*/     OPC_RecordChild2, // #1 = $src2
/*45602*/     OPC_Scope, 21, /*->45625*/ // 4 children in Scope
/*45604*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*45606*/       OPC_CheckComplexPat, /*CP*/2, /*#*/1, // SelectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*45609*/       OPC_EmitMergeInputChains, 1, 7, 
/*45612*/       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)
/*45625*/     /*Scope*/ 21, /*->45647*/
/*45626*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*45628*/       OPC_CheckComplexPat, /*CP*/2, /*#*/1, // SelectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*45631*/       OPC_EmitMergeInputChains, 1, 7, 
/*45634*/       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)
/*45647*/     /*Scope*/ 11, /*->45659*/
/*45648*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*45650*/       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)
/*45659*/     /*Scope*/ 11, /*->45671*/
/*45660*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*45662*/       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)
/*45671*/     0, /*End of Scope*/
/*45672*/   /*Scope*/ 119, /*->45792*/
/*45673*/     OPC_CheckInteger, 99|128,3/*483*/, 
/*45676*/     OPC_MoveParent,
/*45677*/     OPC_RecordChild1, // #0 = $src
/*45678*/     OPC_Scope, 20, /*->45700*/ // 4 children in Scope
/*45680*/       OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*45682*/       OPC_CheckComplexPat, /*CP*/1, /*#*/0, // SelectScalarSSELoad:$src #1 #2 #3 #4 #5 + chain result
/*45685*/       OPC_EmitMergeInputChains, 1, 6, 
/*45688*/       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)
/*45700*/     /*Scope*/ 28, /*->45729*/
/*45701*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*45703*/       OPC_CheckComplexPat, /*CP*/1, /*#*/0, // SelectScalarSSELoad:$src #1 #2 #3 #4 #5 + chain result
/*45706*/       OPC_EmitMergeInputChains, 1, 6, 
/*45709*/       OPC_EmitNode, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    1/*#VTs*/, MVT::v4f32, 0/*#Ops*/,  // Results = #7 
/*45716*/       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)
/*45729*/     /*Scope*/ 10, /*->45740*/
/*45730*/       OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*45732*/       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)
/*45740*/     /*Scope*/ 50, /*->45791*/
/*45741*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*45743*/       OPC_EmitNode, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    1/*#VTs*/, MVT::v4f32, 0/*#Ops*/,  // Results = #1 
/*45750*/       OPC_EmitNode, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    1/*#VTs*/, MVT::f32, 0/*#Ops*/,  // Results = #2 
/*45757*/       OPC_EmitInteger, MVT::i32, X86::sub_ss,
/*45760*/       OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                    1/*#VTs*/, MVT::f32, 2/*#Ops*/, 0, 3,  // Results = #4 
/*45769*/       OPC_EmitNode, TARGET_VAL(X86::VSQRTSSr), 0,
                    1/*#VTs*/, MVT::f32, 2/*#Ops*/, 2, 4,  // Results = #5 
/*45778*/       OPC_EmitInteger, MVT::i32, X86::sub_ss,
/*45781*/       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)
/*45791*/     0, /*End of Scope*/
/*45792*/   /*Scope*/ 119, /*->45912*/
/*45793*/     OPC_CheckInteger, 105|128,2/*361*/, 
/*45796*/     OPC_MoveParent,
/*45797*/     OPC_RecordChild1, // #0 = $src
/*45798*/     OPC_Scope, 20, /*->45820*/ // 4 children in Scope
/*45800*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*45802*/       OPC_CheckComplexPat, /*CP*/2, /*#*/0, // SelectScalarSSELoad:$src #1 #2 #3 #4 #5 + chain result
/*45805*/       OPC_EmitMergeInputChains, 1, 6, 
/*45808*/       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)
/*45820*/     /*Scope*/ 28, /*->45849*/
/*45821*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*45823*/       OPC_CheckComplexPat, /*CP*/2, /*#*/0, // SelectScalarSSELoad:$src #1 #2 #3 #4 #5 + chain result
/*45826*/       OPC_EmitMergeInputChains, 1, 6, 
/*45829*/       OPC_EmitNode, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    1/*#VTs*/, MVT::v2f64, 0/*#Ops*/,  // Results = #7 
/*45836*/       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)
/*45849*/     /*Scope*/ 10, /*->45860*/
/*45850*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*45852*/       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)
/*45860*/     /*Scope*/ 50, /*->45911*/
/*45861*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*45863*/       OPC_EmitNode, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    1/*#VTs*/, MVT::v2f64, 0/*#Ops*/,  // Results = #1 
/*45870*/       OPC_EmitNode, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    1/*#VTs*/, MVT::f64, 0/*#Ops*/,  // Results = #2 
/*45877*/       OPC_EmitInteger, MVT::i32, X86::sub_sd,
/*45880*/       OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                    1/*#VTs*/, MVT::f64, 2/*#Ops*/, 0, 3,  // Results = #4 
/*45889*/       OPC_EmitNode, TARGET_VAL(X86::VSQRTSDr), 0,
                    1/*#VTs*/, MVT::f64, 2/*#Ops*/, 2, 4,  // Results = #5 
/*45898*/       OPC_EmitInteger, MVT::i32, X86::sub_sd,
/*45901*/       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)
/*45911*/     0, /*End of Scope*/
/*45912*/   /*Scope*/ 119, /*->46032*/
/*45913*/     OPC_CheckInteger, 96|128,3/*480*/, 
/*45916*/     OPC_MoveParent,
/*45917*/     OPC_RecordChild1, // #0 = $src
/*45918*/     OPC_Scope, 20, /*->45940*/ // 4 children in Scope
/*45920*/       OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*45922*/       OPC_CheckComplexPat, /*CP*/1, /*#*/0, // SelectScalarSSELoad:$src #1 #2 #3 #4 #5 + chain result
/*45925*/       OPC_EmitMergeInputChains, 1, 6, 
/*45928*/       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)
/*45940*/     /*Scope*/ 28, /*->45969*/
/*45941*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*45943*/       OPC_CheckComplexPat, /*CP*/1, /*#*/0, // SelectScalarSSELoad:$src #1 #2 #3 #4 #5 + chain result
/*45946*/       OPC_EmitMergeInputChains, 1, 6, 
/*45949*/       OPC_EmitNode, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    1/*#VTs*/, MVT::v4f32, 0/*#Ops*/,  // Results = #7 
/*45956*/       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)
/*45969*/     /*Scope*/ 10, /*->45980*/
/*45970*/       OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*45972*/       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)
/*45980*/     /*Scope*/ 50, /*->46031*/
/*45981*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*45983*/       OPC_EmitNode, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    1/*#VTs*/, MVT::v4f32, 0/*#Ops*/,  // Results = #1 
/*45990*/       OPC_EmitNode, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    1/*#VTs*/, MVT::f32, 0/*#Ops*/,  // Results = #2 
/*45997*/       OPC_EmitInteger, MVT::i32, X86::sub_ss,
/*46000*/       OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                    1/*#VTs*/, MVT::f32, 2/*#Ops*/, 0, 3,  // Results = #4 
/*46009*/       OPC_EmitNode, TARGET_VAL(X86::VRSQRTSSr), 0,
                    1/*#VTs*/, MVT::f32, 2/*#Ops*/, 2, 4,  // Results = #5 
/*46018*/       OPC_EmitInteger, MVT::i32, X86::sub_ss,
/*46021*/       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)
/*46031*/     0, /*End of Scope*/
/*46032*/   /*Scope*/ 119, /*->46152*/
/*46033*/     OPC_CheckInteger, 94|128,3/*478*/, 
/*46036*/     OPC_MoveParent,
/*46037*/     OPC_RecordChild1, // #0 = $src
/*46038*/     OPC_Scope, 20, /*->46060*/ // 4 children in Scope
/*46040*/       OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*46042*/       OPC_CheckComplexPat, /*CP*/1, /*#*/0, // SelectScalarSSELoad:$src #1 #2 #3 #4 #5 + chain result
/*46045*/       OPC_EmitMergeInputChains, 1, 6, 
/*46048*/       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)
/*46060*/     /*Scope*/ 28, /*->46089*/
/*46061*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*46063*/       OPC_CheckComplexPat, /*CP*/1, /*#*/0, // SelectScalarSSELoad:$src #1 #2 #3 #4 #5 + chain result
/*46066*/       OPC_EmitMergeInputChains, 1, 6, 
/*46069*/       OPC_EmitNode, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    1/*#VTs*/, MVT::v4f32, 0/*#Ops*/,  // Results = #7 
/*46076*/       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)
/*46089*/     /*Scope*/ 10, /*->46100*/
/*46090*/       OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*46092*/       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)
/*46100*/     /*Scope*/ 50, /*->46151*/
/*46101*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*46103*/       OPC_EmitNode, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    1/*#VTs*/, MVT::v4f32, 0/*#Ops*/,  // Results = #1 
/*46110*/       OPC_EmitNode, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    1/*#VTs*/, MVT::f32, 0/*#Ops*/,  // Results = #2 
/*46117*/       OPC_EmitInteger, MVT::i32, X86::sub_ss,
/*46120*/       OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                    1/*#VTs*/, MVT::f32, 2/*#Ops*/, 0, 3,  // Results = #4 
/*46129*/       OPC_EmitNode, TARGET_VAL(X86::VRCPSSr), 0,
                    1/*#VTs*/, MVT::f32, 2/*#Ops*/, 2, 4,  // Results = #5 
/*46138*/       OPC_EmitInteger, MVT::i32, X86::sub_ss,
/*46141*/       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)
/*46151*/     0, /*End of Scope*/
/*46152*/   /*Scope*/ 45, /*->46198*/
/*46153*/     OPC_CheckInteger, 4|128,3/*388*/, 
/*46156*/     OPC_MoveParent,
/*46157*/     OPC_RecordChild1, // #0 = $src1
/*46158*/     OPC_RecordChild2, // #1 = $src2
/*46159*/     OPC_RecordChild3, // #2 = $src3
/*46160*/     OPC_MoveChild, 3,
/*46162*/     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*46165*/     OPC_MoveParent,
/*46166*/     OPC_Scope, 14, /*->46182*/ // 2 children in Scope
/*46168*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*46170*/       OPC_EmitConvertToTarget, 2,
/*46172*/       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)
/*46182*/     /*Scope*/ 14, /*->46197*/
/*46183*/       OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*46185*/       OPC_EmitConvertToTarget, 2,
/*46187*/       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)
/*46197*/     0, /*End of Scope*/
/*46198*/   /*Scope*/ 25, /*->46224*/
/*46199*/     OPC_CheckInteger, 47|128,1/*175*/, 
/*46202*/     OPC_MoveParent,
/*46203*/     OPC_RecordChild1, // #0 = $src1
/*46204*/     OPC_RecordChild2, // #1 = $src2
/*46205*/     OPC_RecordChild3, // #2 = $src3
/*46206*/     OPC_MoveChild, 3,
/*46208*/     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*46211*/     OPC_MoveParent,
/*46212*/     OPC_EmitConvertToTarget, 2,
/*46214*/     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)
/*46224*/   /*Scope*/ 25, /*->46250*/
/*46225*/     OPC_CheckInteger, 48|128,1/*176*/, 
/*46228*/     OPC_MoveParent,
/*46229*/     OPC_RecordChild1, // #0 = $src1
/*46230*/     OPC_RecordChild2, // #1 = $src2
/*46231*/     OPC_RecordChild3, // #2 = $src3
/*46232*/     OPC_MoveChild, 3,
/*46234*/     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*46237*/     OPC_MoveParent,
/*46238*/     OPC_EmitConvertToTarget, 2,
/*46240*/     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)
/*46250*/   /*Scope*/ 23, /*->46274*/
/*46251*/     OPC_CheckInteger, 44|128,1/*172*/, 
/*46254*/     OPC_MoveParent,
/*46255*/     OPC_RecordChild1, // #0 = $src1
/*46256*/     OPC_RecordChild2, // #1 = $src2
/*46257*/     OPC_MoveChild, 2,
/*46259*/     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*46262*/     OPC_MoveParent,
/*46263*/     OPC_EmitConvertToTarget, 1,
/*46265*/     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)
/*46274*/   /*Scope*/ 23, /*->46298*/
/*46275*/     OPC_CheckInteger, 45|128,1/*173*/, 
/*46278*/     OPC_MoveParent,
/*46279*/     OPC_RecordChild1, // #0 = $src1
/*46280*/     OPC_RecordChild2, // #1 = $src2
/*46281*/     OPC_MoveChild, 2,
/*46283*/     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*46286*/     OPC_MoveParent,
/*46287*/     OPC_EmitConvertToTarget, 1,
/*46289*/     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)
/*46298*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 119,  TARGET_VAL(ISD::PREFETCH),// ->46421
/*46302*/   OPC_RecordMemRef,
/*46303*/   OPC_RecordNode,   // #0 = 'prefetch' chained node
/*46304*/   OPC_RecordChild1, // #1 = $src
/*46305*/   OPC_MoveChild, 2,
/*46307*/   OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*46310*/   OPC_CheckType, MVT::i32,
/*46312*/   OPC_MoveParent,
/*46313*/   OPC_MoveChild, 3,
/*46315*/   OPC_Scope, 25, /*->46342*/ // 4 children in Scope
/*46317*/     OPC_CheckInteger, 3, 
/*46319*/     OPC_MoveParent,
/*46320*/     OPC_MoveChild, 4,
/*46322*/     OPC_CheckInteger, 1, 
/*46324*/     OPC_MoveParent,
/*46325*/     OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*46327*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*46330*/     OPC_EmitMergeInputChains1_0,
/*46331*/     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)
/*46342*/   /*Scope*/ 25, /*->46368*/
/*46343*/     OPC_CheckInteger, 2, 
/*46345*/     OPC_MoveParent,
/*46346*/     OPC_MoveChild, 4,
/*46348*/     OPC_CheckInteger, 1, 
/*46350*/     OPC_MoveParent,
/*46351*/     OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*46353*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*46356*/     OPC_EmitMergeInputChains1_0,
/*46357*/     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)
/*46368*/   /*Scope*/ 25, /*->46394*/
/*46369*/     OPC_CheckInteger, 1, 
/*46371*/     OPC_MoveParent,
/*46372*/     OPC_MoveChild, 4,
/*46374*/     OPC_CheckInteger, 1, 
/*46376*/     OPC_MoveParent,
/*46377*/     OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*46379*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*46382*/     OPC_EmitMergeInputChains1_0,
/*46383*/     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)
/*46394*/   /*Scope*/ 25, /*->46420*/
/*46395*/     OPC_CheckInteger, 0, 
/*46397*/     OPC_MoveParent,
/*46398*/     OPC_MoveChild, 4,
/*46400*/     OPC_CheckInteger, 1, 
/*46402*/     OPC_MoveParent,
/*46403*/     OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*46405*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*46408*/     OPC_EmitMergeInputChains1_0,
/*46409*/     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)
/*46420*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 126|128,37/*4862*/,  TARGET_VAL(X86ISD::CMOV),// ->51287
/*46425*/   OPC_Scope, 110|128,12/*1646*/, /*->48074*/ // 3 children in Scope
/*46428*/     OPC_RecordChild0, // #0 = $src1
/*46429*/     OPC_MoveChild, 1,
/*46431*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*46434*/     OPC_RecordMemRef,
/*46435*/     OPC_RecordNode, // #1 = 'ld' chained node
/*46436*/     OPC_CheckFoldableChainNode,
/*46437*/     OPC_RecordChild1, // #2 = $src2
/*46438*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*46440*/     OPC_Scope, 33, /*->46475*/ // 48 children in Scope
/*46442*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*46444*/       OPC_MoveParent,
/*46445*/       OPC_MoveChild, 2,
/*46447*/       OPC_CheckInteger, 13, 
/*46449*/       OPC_MoveParent,
/*46450*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*46451*/       OPC_CheckType, MVT::i16,
/*46453*/       OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*46455*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*46458*/       OPC_EmitMergeInputChains1_1,
/*46459*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*46462*/       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)
/*46475*/     /*Scope*/ 33, /*->46509*/
/*46476*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*46478*/       OPC_MoveParent,
/*46479*/       OPC_MoveChild, 2,
/*46481*/       OPC_CheckInteger, 13, 
/*46483*/       OPC_MoveParent,
/*46484*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*46485*/       OPC_CheckType, MVT::i32,
/*46487*/       OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*46489*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*46492*/       OPC_EmitMergeInputChains1_1,
/*46493*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*46496*/       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)
/*46509*/     /*Scope*/ 33, /*->46543*/
/*46510*/       OPC_CheckPredicate, 3, // Predicate_load
/*46512*/       OPC_MoveParent,
/*46513*/       OPC_MoveChild, 2,
/*46515*/       OPC_CheckInteger, 13, 
/*46517*/       OPC_MoveParent,
/*46518*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*46519*/       OPC_CheckType, MVT::i64,
/*46521*/       OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*46523*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*46526*/       OPC_EmitMergeInputChains1_1,
/*46527*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*46530*/       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)
/*46543*/     /*Scope*/ 33, /*->46577*/
/*46544*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*46546*/       OPC_MoveParent,
/*46547*/       OPC_MoveChild, 2,
/*46549*/       OPC_CheckInteger, 10, 
/*46551*/       OPC_MoveParent,
/*46552*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*46553*/       OPC_CheckType, MVT::i16,
/*46555*/       OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*46557*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*46560*/       OPC_EmitMergeInputChains1_1,
/*46561*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*46564*/       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)
/*46577*/     /*Scope*/ 33, /*->46611*/
/*46578*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*46580*/       OPC_MoveParent,
/*46581*/       OPC_MoveChild, 2,
/*46583*/       OPC_CheckInteger, 10, 
/*46585*/       OPC_MoveParent,
/*46586*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*46587*/       OPC_CheckType, MVT::i32,
/*46589*/       OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*46591*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*46594*/       OPC_EmitMergeInputChains1_1,
/*46595*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*46598*/       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)
/*46611*/     /*Scope*/ 33, /*->46645*/
/*46612*/       OPC_CheckPredicate, 3, // Predicate_load
/*46614*/       OPC_MoveParent,
/*46615*/       OPC_MoveChild, 2,
/*46617*/       OPC_CheckInteger, 10, 
/*46619*/       OPC_MoveParent,
/*46620*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*46621*/       OPC_CheckType, MVT::i64,
/*46623*/       OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*46625*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*46628*/       OPC_EmitMergeInputChains1_1,
/*46629*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*46632*/       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)
/*46645*/     /*Scope*/ 33, /*->46679*/
/*46646*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*46648*/       OPC_MoveParent,
/*46649*/       OPC_MoveChild, 2,
/*46651*/       OPC_CheckInteger, 2, 
/*46653*/       OPC_MoveParent,
/*46654*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*46655*/       OPC_CheckType, MVT::i16,
/*46657*/       OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*46659*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*46662*/       OPC_EmitMergeInputChains1_1,
/*46663*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*46666*/       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)
/*46679*/     /*Scope*/ 33, /*->46713*/
/*46680*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*46682*/       OPC_MoveParent,
/*46683*/       OPC_MoveChild, 2,
/*46685*/       OPC_CheckInteger, 2, 
/*46687*/       OPC_MoveParent,
/*46688*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*46689*/       OPC_CheckType, MVT::i32,
/*46691*/       OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*46693*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*46696*/       OPC_EmitMergeInputChains1_1,
/*46697*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*46700*/       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)
/*46713*/     /*Scope*/ 33, /*->46747*/
/*46714*/       OPC_CheckPredicate, 3, // Predicate_load
/*46716*/       OPC_MoveParent,
/*46717*/       OPC_MoveChild, 2,
/*46719*/       OPC_CheckInteger, 2, 
/*46721*/       OPC_MoveParent,
/*46722*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*46723*/       OPC_CheckType, MVT::i64,
/*46725*/       OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*46727*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*46730*/       OPC_EmitMergeInputChains1_1,
/*46731*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*46734*/       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)
/*46747*/     /*Scope*/ 33, /*->46781*/
/*46748*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*46750*/       OPC_MoveParent,
/*46751*/       OPC_MoveChild, 2,
/*46753*/       OPC_CheckInteger, 1, 
/*46755*/       OPC_MoveParent,
/*46756*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*46757*/       OPC_CheckType, MVT::i16,
/*46759*/       OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*46761*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*46764*/       OPC_EmitMergeInputChains1_1,
/*46765*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*46768*/       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)
/*46781*/     /*Scope*/ 33, /*->46815*/
/*46782*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*46784*/       OPC_MoveParent,
/*46785*/       OPC_MoveChild, 2,
/*46787*/       OPC_CheckInteger, 1, 
/*46789*/       OPC_MoveParent,
/*46790*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*46791*/       OPC_CheckType, MVT::i32,
/*46793*/       OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*46795*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*46798*/       OPC_EmitMergeInputChains1_1,
/*46799*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*46802*/       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)
/*46815*/     /*Scope*/ 33, /*->46849*/
/*46816*/       OPC_CheckPredicate, 3, // Predicate_load
/*46818*/       OPC_MoveParent,
/*46819*/       OPC_MoveChild, 2,
/*46821*/       OPC_CheckInteger, 1, 
/*46823*/       OPC_MoveParent,
/*46824*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*46825*/       OPC_CheckType, MVT::i64,
/*46827*/       OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*46829*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*46832*/       OPC_EmitMergeInputChains1_1,
/*46833*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*46836*/       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)
/*46849*/     /*Scope*/ 33, /*->46883*/
/*46850*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*46852*/       OPC_MoveParent,
/*46853*/       OPC_MoveChild, 2,
/*46855*/       OPC_CheckInteger, 4, 
/*46857*/       OPC_MoveParent,
/*46858*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*46859*/       OPC_CheckType, MVT::i16,
/*46861*/       OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*46863*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*46866*/       OPC_EmitMergeInputChains1_1,
/*46867*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*46870*/       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)
/*46883*/     /*Scope*/ 33, /*->46917*/
/*46884*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*46886*/       OPC_MoveParent,
/*46887*/       OPC_MoveChild, 2,
/*46889*/       OPC_CheckInteger, 4, 
/*46891*/       OPC_MoveParent,
/*46892*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*46893*/       OPC_CheckType, MVT::i32,
/*46895*/       OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*46897*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*46900*/       OPC_EmitMergeInputChains1_1,
/*46901*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*46904*/       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)
/*46917*/     /*Scope*/ 33, /*->46951*/
/*46918*/       OPC_CheckPredicate, 3, // Predicate_load
/*46920*/       OPC_MoveParent,
/*46921*/       OPC_MoveChild, 2,
/*46923*/       OPC_CheckInteger, 4, 
/*46925*/       OPC_MoveParent,
/*46926*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*46927*/       OPC_CheckType, MVT::i64,
/*46929*/       OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*46931*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*46934*/       OPC_EmitMergeInputChains1_1,
/*46935*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*46938*/       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)
/*46951*/     /*Scope*/ 33, /*->46985*/
/*46952*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*46954*/       OPC_MoveParent,
/*46955*/       OPC_MoveChild, 2,
/*46957*/       OPC_CheckInteger, 9, 
/*46959*/       OPC_MoveParent,
/*46960*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*46961*/       OPC_CheckType, MVT::i16,
/*46963*/       OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*46965*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*46968*/       OPC_EmitMergeInputChains1_1,
/*46969*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*46972*/       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)
/*46985*/     /*Scope*/ 33, /*->47019*/
/*46986*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*46988*/       OPC_MoveParent,
/*46989*/       OPC_MoveChild, 2,
/*46991*/       OPC_CheckInteger, 9, 
/*46993*/       OPC_MoveParent,
/*46994*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*46995*/       OPC_CheckType, MVT::i32,
/*46997*/       OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*46999*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*47002*/       OPC_EmitMergeInputChains1_1,
/*47003*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*47006*/       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)
/*47019*/     /*Scope*/ 33, /*->47053*/
/*47020*/       OPC_CheckPredicate, 3, // Predicate_load
/*47022*/       OPC_MoveParent,
/*47023*/       OPC_MoveChild, 2,
/*47025*/       OPC_CheckInteger, 9, 
/*47027*/       OPC_MoveParent,
/*47028*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*47029*/       OPC_CheckType, MVT::i64,
/*47031*/       OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*47033*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*47036*/       OPC_EmitMergeInputChains1_1,
/*47037*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*47040*/       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)
/*47053*/     /*Scope*/ 33, /*->47087*/
/*47054*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*47056*/       OPC_MoveParent,
/*47057*/       OPC_MoveChild, 2,
/*47059*/       OPC_CheckInteger, 3, 
/*47061*/       OPC_MoveParent,
/*47062*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*47063*/       OPC_CheckType, MVT::i16,
/*47065*/       OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*47067*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*47070*/       OPC_EmitMergeInputChains1_1,
/*47071*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*47074*/       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)
/*47087*/     /*Scope*/ 33, /*->47121*/
/*47088*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*47090*/       OPC_MoveParent,
/*47091*/       OPC_MoveChild, 2,
/*47093*/       OPC_CheckInteger, 3, 
/*47095*/       OPC_MoveParent,
/*47096*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*47097*/       OPC_CheckType, MVT::i32,
/*47099*/       OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*47101*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*47104*/       OPC_EmitMergeInputChains1_1,
/*47105*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*47108*/       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)
/*47121*/     /*Scope*/ 33, /*->47155*/
/*47122*/       OPC_CheckPredicate, 3, // Predicate_load
/*47124*/       OPC_MoveParent,
/*47125*/       OPC_MoveChild, 2,
/*47127*/       OPC_CheckInteger, 3, 
/*47129*/       OPC_MoveParent,
/*47130*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*47131*/       OPC_CheckType, MVT::i64,
/*47133*/       OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*47135*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*47138*/       OPC_EmitMergeInputChains1_1,
/*47139*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*47142*/       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)
/*47155*/     /*Scope*/ 33, /*->47189*/
/*47156*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*47158*/       OPC_MoveParent,
/*47159*/       OPC_MoveChild, 2,
/*47161*/       OPC_CheckInteger, 0, 
/*47163*/       OPC_MoveParent,
/*47164*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*47165*/       OPC_CheckType, MVT::i16,
/*47167*/       OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*47169*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*47172*/       OPC_EmitMergeInputChains1_1,
/*47173*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*47176*/       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)
/*47189*/     /*Scope*/ 33, /*->47223*/
/*47190*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*47192*/       OPC_MoveParent,
/*47193*/       OPC_MoveChild, 2,
/*47195*/       OPC_CheckInteger, 0, 
/*47197*/       OPC_MoveParent,
/*47198*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*47199*/       OPC_CheckType, MVT::i32,
/*47201*/       OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*47203*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*47206*/       OPC_EmitMergeInputChains1_1,
/*47207*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*47210*/       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)
/*47223*/     /*Scope*/ 33, /*->47257*/
/*47224*/       OPC_CheckPredicate, 3, // Predicate_load
/*47226*/       OPC_MoveParent,
/*47227*/       OPC_MoveChild, 2,
/*47229*/       OPC_CheckInteger, 0, 
/*47231*/       OPC_MoveParent,
/*47232*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*47233*/       OPC_CheckType, MVT::i64,
/*47235*/       OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*47237*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*47240*/       OPC_EmitMergeInputChains1_1,
/*47241*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*47244*/       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)
/*47257*/     /*Scope*/ 33, /*->47291*/
/*47258*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*47260*/       OPC_MoveParent,
/*47261*/       OPC_MoveChild, 2,
/*47263*/       OPC_CheckInteger, 15, 
/*47265*/       OPC_MoveParent,
/*47266*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*47267*/       OPC_CheckType, MVT::i16,
/*47269*/       OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*47271*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*47274*/       OPC_EmitMergeInputChains1_1,
/*47275*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*47278*/       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)
/*47291*/     /*Scope*/ 33, /*->47325*/
/*47292*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*47294*/       OPC_MoveParent,
/*47295*/       OPC_MoveChild, 2,
/*47297*/       OPC_CheckInteger, 15, 
/*47299*/       OPC_MoveParent,
/*47300*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*47301*/       OPC_CheckType, MVT::i32,
/*47303*/       OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*47305*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*47308*/       OPC_EmitMergeInputChains1_1,
/*47309*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*47312*/       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)
/*47325*/     /*Scope*/ 33, /*->47359*/
/*47326*/       OPC_CheckPredicate, 3, // Predicate_load
/*47328*/       OPC_MoveParent,
/*47329*/       OPC_MoveChild, 2,
/*47331*/       OPC_CheckInteger, 15, 
/*47333*/       OPC_MoveParent,
/*47334*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*47335*/       OPC_CheckType, MVT::i64,
/*47337*/       OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*47339*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*47342*/       OPC_EmitMergeInputChains1_1,
/*47343*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*47346*/       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)
/*47359*/     /*Scope*/ 33, /*->47393*/
/*47360*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*47362*/       OPC_MoveParent,
/*47363*/       OPC_MoveChild, 2,
/*47365*/       OPC_CheckInteger, 12, 
/*47367*/       OPC_MoveParent,
/*47368*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*47369*/       OPC_CheckType, MVT::i16,
/*47371*/       OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*47373*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*47376*/       OPC_EmitMergeInputChains1_1,
/*47377*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*47380*/       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)
/*47393*/     /*Scope*/ 33, /*->47427*/
/*47394*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*47396*/       OPC_MoveParent,
/*47397*/       OPC_MoveChild, 2,
/*47399*/       OPC_CheckInteger, 12, 
/*47401*/       OPC_MoveParent,
/*47402*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*47403*/       OPC_CheckType, MVT::i32,
/*47405*/       OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*47407*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*47410*/       OPC_EmitMergeInputChains1_1,
/*47411*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*47414*/       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)
/*47427*/     /*Scope*/ 33, /*->47461*/
/*47428*/       OPC_CheckPredicate, 3, // Predicate_load
/*47430*/       OPC_MoveParent,
/*47431*/       OPC_MoveChild, 2,
/*47433*/       OPC_CheckInteger, 12, 
/*47435*/       OPC_MoveParent,
/*47436*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*47437*/       OPC_CheckType, MVT::i64,
/*47439*/       OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*47441*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*47444*/       OPC_EmitMergeInputChains1_1,
/*47445*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*47448*/       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)
/*47461*/     /*Scope*/ 33, /*->47495*/
/*47462*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*47464*/       OPC_MoveParent,
/*47465*/       OPC_MoveChild, 2,
/*47467*/       OPC_CheckInteger, 14, 
/*47469*/       OPC_MoveParent,
/*47470*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*47471*/       OPC_CheckType, MVT::i16,
/*47473*/       OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*47475*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*47478*/       OPC_EmitMergeInputChains1_1,
/*47479*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*47482*/       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)
/*47495*/     /*Scope*/ 33, /*->47529*/
/*47496*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*47498*/       OPC_MoveParent,
/*47499*/       OPC_MoveChild, 2,
/*47501*/       OPC_CheckInteger, 14, 
/*47503*/       OPC_MoveParent,
/*47504*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*47505*/       OPC_CheckType, MVT::i32,
/*47507*/       OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*47509*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*47512*/       OPC_EmitMergeInputChains1_1,
/*47513*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*47516*/       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)
/*47529*/     /*Scope*/ 33, /*->47563*/
/*47530*/       OPC_CheckPredicate, 3, // Predicate_load
/*47532*/       OPC_MoveParent,
/*47533*/       OPC_MoveChild, 2,
/*47535*/       OPC_CheckInteger, 14, 
/*47537*/       OPC_MoveParent,
/*47538*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*47539*/       OPC_CheckType, MVT::i64,
/*47541*/       OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*47543*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*47546*/       OPC_EmitMergeInputChains1_1,
/*47547*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*47550*/       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)
/*47563*/     /*Scope*/ 33, /*->47597*/
/*47564*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*47566*/       OPC_MoveParent,
/*47567*/       OPC_MoveChild, 2,
/*47569*/       OPC_CheckInteger, 11, 
/*47571*/       OPC_MoveParent,
/*47572*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*47573*/       OPC_CheckType, MVT::i16,
/*47575*/       OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*47577*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*47580*/       OPC_EmitMergeInputChains1_1,
/*47581*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*47584*/       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)
/*47597*/     /*Scope*/ 33, /*->47631*/
/*47598*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*47600*/       OPC_MoveParent,
/*47601*/       OPC_MoveChild, 2,
/*47603*/       OPC_CheckInteger, 11, 
/*47605*/       OPC_MoveParent,
/*47606*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*47607*/       OPC_CheckType, MVT::i32,
/*47609*/       OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*47611*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*47614*/       OPC_EmitMergeInputChains1_1,
/*47615*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*47618*/       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)
/*47631*/     /*Scope*/ 33, /*->47665*/
/*47632*/       OPC_CheckPredicate, 3, // Predicate_load
/*47634*/       OPC_MoveParent,
/*47635*/       OPC_MoveChild, 2,
/*47637*/       OPC_CheckInteger, 11, 
/*47639*/       OPC_MoveParent,
/*47640*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*47641*/       OPC_CheckType, MVT::i64,
/*47643*/       OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*47645*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*47648*/       OPC_EmitMergeInputChains1_1,
/*47649*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*47652*/       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)
/*47665*/     /*Scope*/ 33, /*->47699*/
/*47666*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*47668*/       OPC_MoveParent,
/*47669*/       OPC_MoveChild, 2,
/*47671*/       OPC_CheckInteger, 7, 
/*47673*/       OPC_MoveParent,
/*47674*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*47675*/       OPC_CheckType, MVT::i16,
/*47677*/       OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*47679*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*47682*/       OPC_EmitMergeInputChains1_1,
/*47683*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*47686*/       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)
/*47699*/     /*Scope*/ 33, /*->47733*/
/*47700*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*47702*/       OPC_MoveParent,
/*47703*/       OPC_MoveChild, 2,
/*47705*/       OPC_CheckInteger, 7, 
/*47707*/       OPC_MoveParent,
/*47708*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*47709*/       OPC_CheckType, MVT::i32,
/*47711*/       OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*47713*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*47716*/       OPC_EmitMergeInputChains1_1,
/*47717*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*47720*/       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)
/*47733*/     /*Scope*/ 33, /*->47767*/
/*47734*/       OPC_CheckPredicate, 3, // Predicate_load
/*47736*/       OPC_MoveParent,
/*47737*/       OPC_MoveChild, 2,
/*47739*/       OPC_CheckInteger, 7, 
/*47741*/       OPC_MoveParent,
/*47742*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*47743*/       OPC_CheckType, MVT::i64,
/*47745*/       OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*47747*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*47750*/       OPC_EmitMergeInputChains1_1,
/*47751*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*47754*/       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)
/*47767*/     /*Scope*/ 33, /*->47801*/
/*47768*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*47770*/       OPC_MoveParent,
/*47771*/       OPC_MoveChild, 2,
/*47773*/       OPC_CheckInteger, 6, 
/*47775*/       OPC_MoveParent,
/*47776*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*47777*/       OPC_CheckType, MVT::i16,
/*47779*/       OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*47781*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*47784*/       OPC_EmitMergeInputChains1_1,
/*47785*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*47788*/       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)
/*47801*/     /*Scope*/ 33, /*->47835*/
/*47802*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*47804*/       OPC_MoveParent,
/*47805*/       OPC_MoveChild, 2,
/*47807*/       OPC_CheckInteger, 6, 
/*47809*/       OPC_MoveParent,
/*47810*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*47811*/       OPC_CheckType, MVT::i32,
/*47813*/       OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*47815*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*47818*/       OPC_EmitMergeInputChains1_1,
/*47819*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*47822*/       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)
/*47835*/     /*Scope*/ 33, /*->47869*/
/*47836*/       OPC_CheckPredicate, 3, // Predicate_load
/*47838*/       OPC_MoveParent,
/*47839*/       OPC_MoveChild, 2,
/*47841*/       OPC_CheckInteger, 6, 
/*47843*/       OPC_MoveParent,
/*47844*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*47845*/       OPC_CheckType, MVT::i64,
/*47847*/       OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*47849*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*47852*/       OPC_EmitMergeInputChains1_1,
/*47853*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*47856*/       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)
/*47869*/     /*Scope*/ 33, /*->47903*/
/*47870*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*47872*/       OPC_MoveParent,
/*47873*/       OPC_MoveChild, 2,
/*47875*/       OPC_CheckInteger, 8, 
/*47877*/       OPC_MoveParent,
/*47878*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*47879*/       OPC_CheckType, MVT::i16,
/*47881*/       OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*47883*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*47886*/       OPC_EmitMergeInputChains1_1,
/*47887*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*47890*/       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)
/*47903*/     /*Scope*/ 33, /*->47937*/
/*47904*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*47906*/       OPC_MoveParent,
/*47907*/       OPC_MoveChild, 2,
/*47909*/       OPC_CheckInteger, 8, 
/*47911*/       OPC_MoveParent,
/*47912*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*47913*/       OPC_CheckType, MVT::i32,
/*47915*/       OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*47917*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*47920*/       OPC_EmitMergeInputChains1_1,
/*47921*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*47924*/       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)
/*47937*/     /*Scope*/ 33, /*->47971*/
/*47938*/       OPC_CheckPredicate, 3, // Predicate_load
/*47940*/       OPC_MoveParent,
/*47941*/       OPC_MoveChild, 2,
/*47943*/       OPC_CheckInteger, 8, 
/*47945*/       OPC_MoveParent,
/*47946*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*47947*/       OPC_CheckType, MVT::i64,
/*47949*/       OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*47951*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*47954*/       OPC_EmitMergeInputChains1_1,
/*47955*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*47958*/       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)
/*47971*/     /*Scope*/ 33, /*->48005*/
/*47972*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*47974*/       OPC_MoveParent,
/*47975*/       OPC_MoveChild, 2,
/*47977*/       OPC_CheckInteger, 5, 
/*47979*/       OPC_MoveParent,
/*47980*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*47981*/       OPC_CheckType, MVT::i16,
/*47983*/       OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*47985*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*47988*/       OPC_EmitMergeInputChains1_1,
/*47989*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*47992*/       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)
/*48005*/     /*Scope*/ 33, /*->48039*/
/*48006*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*48008*/       OPC_MoveParent,
/*48009*/       OPC_MoveChild, 2,
/*48011*/       OPC_CheckInteger, 5, 
/*48013*/       OPC_MoveParent,
/*48014*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*48015*/       OPC_CheckType, MVT::i32,
/*48017*/       OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*48019*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*48022*/       OPC_EmitMergeInputChains1_1,
/*48023*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*48026*/       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)
/*48039*/     /*Scope*/ 33, /*->48073*/
/*48040*/       OPC_CheckPredicate, 3, // Predicate_load
/*48042*/       OPC_MoveParent,
/*48043*/       OPC_MoveChild, 2,
/*48045*/       OPC_CheckInteger, 5, 
/*48047*/       OPC_MoveParent,
/*48048*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*48049*/       OPC_CheckType, MVT::i64,
/*48051*/       OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*48053*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*48056*/       OPC_EmitMergeInputChains1_1,
/*48057*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*48060*/       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)
/*48073*/     0, /*End of Scope*/
/*48074*/   /*Scope*/ 61|128,12/*1597*/, /*->49673*/
/*48076*/     OPC_MoveChild, 0,
/*48078*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*48081*/     OPC_RecordMemRef,
/*48082*/     OPC_RecordNode, // #0 = 'ld' chained node
/*48083*/     OPC_CheckFoldableChainNode,
/*48084*/     OPC_RecordChild1, // #1 = $src1
/*48085*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*48087*/     OPC_Scope, 32, /*->48121*/ // 48 children in Scope
/*48089*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*48091*/       OPC_MoveParent,
/*48092*/       OPC_RecordChild1, // #2 = $src2
/*48093*/       OPC_MoveChild, 2,
/*48095*/       OPC_CheckInteger, 2, 
/*48097*/       OPC_MoveParent,
/*48098*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*48099*/       OPC_CheckType, MVT::i16,
/*48101*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #4 #5 #6 #7 #8
/*48104*/       OPC_EmitMergeInputChains1_0,
/*48105*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*48108*/       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)
/*48121*/     /*Scope*/ 32, /*->48154*/
/*48122*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*48124*/       OPC_MoveParent,
/*48125*/       OPC_RecordChild1, // #2 = $src2
/*48126*/       OPC_MoveChild, 2,
/*48128*/       OPC_CheckInteger, 2, 
/*48130*/       OPC_MoveParent,
/*48131*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*48132*/       OPC_CheckType, MVT::i32,
/*48134*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #4 #5 #6 #7 #8
/*48137*/       OPC_EmitMergeInputChains1_0,
/*48138*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*48141*/       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)
/*48154*/     /*Scope*/ 32, /*->48187*/
/*48155*/       OPC_CheckPredicate, 3, // Predicate_load
/*48157*/       OPC_MoveParent,
/*48158*/       OPC_RecordChild1, // #2 = $src2
/*48159*/       OPC_MoveChild, 2,
/*48161*/       OPC_CheckInteger, 2, 
/*48163*/       OPC_MoveParent,
/*48164*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*48165*/       OPC_CheckType, MVT::i64,
/*48167*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #4 #5 #6 #7 #8
/*48170*/       OPC_EmitMergeInputChains1_0,
/*48171*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*48174*/       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)
/*48187*/     /*Scope*/ 32, /*->48220*/
/*48188*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*48190*/       OPC_MoveParent,
/*48191*/       OPC_RecordChild1, // #2 = $src2
/*48192*/       OPC_MoveChild, 2,
/*48194*/       OPC_CheckInteger, 1, 
/*48196*/       OPC_MoveParent,
/*48197*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*48198*/       OPC_CheckType, MVT::i16,
/*48200*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #4 #5 #6 #7 #8
/*48203*/       OPC_EmitMergeInputChains1_0,
/*48204*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*48207*/       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)
/*48220*/     /*Scope*/ 32, /*->48253*/
/*48221*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*48223*/       OPC_MoveParent,
/*48224*/       OPC_RecordChild1, // #2 = $src2
/*48225*/       OPC_MoveChild, 2,
/*48227*/       OPC_CheckInteger, 1, 
/*48229*/       OPC_MoveParent,
/*48230*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*48231*/       OPC_CheckType, MVT::i32,
/*48233*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #4 #5 #6 #7 #8
/*48236*/       OPC_EmitMergeInputChains1_0,
/*48237*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*48240*/       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)
/*48253*/     /*Scope*/ 32, /*->48286*/
/*48254*/       OPC_CheckPredicate, 3, // Predicate_load
/*48256*/       OPC_MoveParent,
/*48257*/       OPC_RecordChild1, // #2 = $src2
/*48258*/       OPC_MoveChild, 2,
/*48260*/       OPC_CheckInteger, 1, 
/*48262*/       OPC_MoveParent,
/*48263*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*48264*/       OPC_CheckType, MVT::i64,
/*48266*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #4 #5 #6 #7 #8
/*48269*/       OPC_EmitMergeInputChains1_0,
/*48270*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*48273*/       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)
/*48286*/     /*Scope*/ 32, /*->48319*/
/*48287*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*48289*/       OPC_MoveParent,
/*48290*/       OPC_RecordChild1, // #2 = $src2
/*48291*/       OPC_MoveChild, 2,
/*48293*/       OPC_CheckInteger, 4, 
/*48295*/       OPC_MoveParent,
/*48296*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*48297*/       OPC_CheckType, MVT::i16,
/*48299*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #4 #5 #6 #7 #8
/*48302*/       OPC_EmitMergeInputChains1_0,
/*48303*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*48306*/       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)
/*48319*/     /*Scope*/ 32, /*->48352*/
/*48320*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*48322*/       OPC_MoveParent,
/*48323*/       OPC_RecordChild1, // #2 = $src2
/*48324*/       OPC_MoveChild, 2,
/*48326*/       OPC_CheckInteger, 4, 
/*48328*/       OPC_MoveParent,
/*48329*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*48330*/       OPC_CheckType, MVT::i32,
/*48332*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #4 #5 #6 #7 #8
/*48335*/       OPC_EmitMergeInputChains1_0,
/*48336*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*48339*/       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)
/*48352*/     /*Scope*/ 32, /*->48385*/
/*48353*/       OPC_CheckPredicate, 3, // Predicate_load
/*48355*/       OPC_MoveParent,
/*48356*/       OPC_RecordChild1, // #2 = $src2
/*48357*/       OPC_MoveChild, 2,
/*48359*/       OPC_CheckInteger, 4, 
/*48361*/       OPC_MoveParent,
/*48362*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*48363*/       OPC_CheckType, MVT::i64,
/*48365*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #4 #5 #6 #7 #8
/*48368*/       OPC_EmitMergeInputChains1_0,
/*48369*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*48372*/       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)
/*48385*/     /*Scope*/ 32, /*->48418*/
/*48386*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*48388*/       OPC_MoveParent,
/*48389*/       OPC_RecordChild1, // #2 = $src2
/*48390*/       OPC_MoveChild, 2,
/*48392*/       OPC_CheckInteger, 9, 
/*48394*/       OPC_MoveParent,
/*48395*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*48396*/       OPC_CheckType, MVT::i16,
/*48398*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #4 #5 #6 #7 #8
/*48401*/       OPC_EmitMergeInputChains1_0,
/*48402*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*48405*/       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)
/*48418*/     /*Scope*/ 32, /*->48451*/
/*48419*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*48421*/       OPC_MoveParent,
/*48422*/       OPC_RecordChild1, // #2 = $src2
/*48423*/       OPC_MoveChild, 2,
/*48425*/       OPC_CheckInteger, 9, 
/*48427*/       OPC_MoveParent,
/*48428*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*48429*/       OPC_CheckType, MVT::i32,
/*48431*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #4 #5 #6 #7 #8
/*48434*/       OPC_EmitMergeInputChains1_0,
/*48435*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*48438*/       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)
/*48451*/     /*Scope*/ 32, /*->48484*/
/*48452*/       OPC_CheckPredicate, 3, // Predicate_load
/*48454*/       OPC_MoveParent,
/*48455*/       OPC_RecordChild1, // #2 = $src2
/*48456*/       OPC_MoveChild, 2,
/*48458*/       OPC_CheckInteger, 9, 
/*48460*/       OPC_MoveParent,
/*48461*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*48462*/       OPC_CheckType, MVT::i64,
/*48464*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #4 #5 #6 #7 #8
/*48467*/       OPC_EmitMergeInputChains1_0,
/*48468*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*48471*/       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)
/*48484*/     /*Scope*/ 32, /*->48517*/
/*48485*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*48487*/       OPC_MoveParent,
/*48488*/       OPC_RecordChild1, // #2 = $src2
/*48489*/       OPC_MoveChild, 2,
/*48491*/       OPC_CheckInteger, 3, 
/*48493*/       OPC_MoveParent,
/*48494*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*48495*/       OPC_CheckType, MVT::i16,
/*48497*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #4 #5 #6 #7 #8
/*48500*/       OPC_EmitMergeInputChains1_0,
/*48501*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*48504*/       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)
/*48517*/     /*Scope*/ 32, /*->48550*/
/*48518*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*48520*/       OPC_MoveParent,
/*48521*/       OPC_RecordChild1, // #2 = $src2
/*48522*/       OPC_MoveChild, 2,
/*48524*/       OPC_CheckInteger, 3, 
/*48526*/       OPC_MoveParent,
/*48527*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*48528*/       OPC_CheckType, MVT::i32,
/*48530*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #4 #5 #6 #7 #8
/*48533*/       OPC_EmitMergeInputChains1_0,
/*48534*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*48537*/       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)
/*48550*/     /*Scope*/ 32, /*->48583*/
/*48551*/       OPC_CheckPredicate, 3, // Predicate_load
/*48553*/       OPC_MoveParent,
/*48554*/       OPC_RecordChild1, // #2 = $src2
/*48555*/       OPC_MoveChild, 2,
/*48557*/       OPC_CheckInteger, 3, 
/*48559*/       OPC_MoveParent,
/*48560*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*48561*/       OPC_CheckType, MVT::i64,
/*48563*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #4 #5 #6 #7 #8
/*48566*/       OPC_EmitMergeInputChains1_0,
/*48567*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*48570*/       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)
/*48583*/     /*Scope*/ 32, /*->48616*/
/*48584*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*48586*/       OPC_MoveParent,
/*48587*/       OPC_RecordChild1, // #2 = $src2
/*48588*/       OPC_MoveChild, 2,
/*48590*/       OPC_CheckInteger, 0, 
/*48592*/       OPC_MoveParent,
/*48593*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*48594*/       OPC_CheckType, MVT::i16,
/*48596*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #4 #5 #6 #7 #8
/*48599*/       OPC_EmitMergeInputChains1_0,
/*48600*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*48603*/       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)
/*48616*/     /*Scope*/ 32, /*->48649*/
/*48617*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*48619*/       OPC_MoveParent,
/*48620*/       OPC_RecordChild1, // #2 = $src2
/*48621*/       OPC_MoveChild, 2,
/*48623*/       OPC_CheckInteger, 0, 
/*48625*/       OPC_MoveParent,
/*48626*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*48627*/       OPC_CheckType, MVT::i32,
/*48629*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #4 #5 #6 #7 #8
/*48632*/       OPC_EmitMergeInputChains1_0,
/*48633*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*48636*/       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)
/*48649*/     /*Scope*/ 32, /*->48682*/
/*48650*/       OPC_CheckPredicate, 3, // Predicate_load
/*48652*/       OPC_MoveParent,
/*48653*/       OPC_RecordChild1, // #2 = $src2
/*48654*/       OPC_MoveChild, 2,
/*48656*/       OPC_CheckInteger, 0, 
/*48658*/       OPC_MoveParent,
/*48659*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*48660*/       OPC_CheckType, MVT::i64,
/*48662*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #4 #5 #6 #7 #8
/*48665*/       OPC_EmitMergeInputChains1_0,
/*48666*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*48669*/       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)
/*48682*/     /*Scope*/ 32, /*->48715*/
/*48683*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*48685*/       OPC_MoveParent,
/*48686*/       OPC_RecordChild1, // #2 = $src2
/*48687*/       OPC_MoveChild, 2,
/*48689*/       OPC_CheckInteger, 7, 
/*48691*/       OPC_MoveParent,
/*48692*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*48693*/       OPC_CheckType, MVT::i16,
/*48695*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #4 #5 #6 #7 #8
/*48698*/       OPC_EmitMergeInputChains1_0,
/*48699*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*48702*/       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)
/*48715*/     /*Scope*/ 32, /*->48748*/
/*48716*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*48718*/       OPC_MoveParent,
/*48719*/       OPC_RecordChild1, // #2 = $src2
/*48720*/       OPC_MoveChild, 2,
/*48722*/       OPC_CheckInteger, 7, 
/*48724*/       OPC_MoveParent,
/*48725*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*48726*/       OPC_CheckType, MVT::i32,
/*48728*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #4 #5 #6 #7 #8
/*48731*/       OPC_EmitMergeInputChains1_0,
/*48732*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*48735*/       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)
/*48748*/     /*Scope*/ 32, /*->48781*/
/*48749*/       OPC_CheckPredicate, 3, // Predicate_load
/*48751*/       OPC_MoveParent,
/*48752*/       OPC_RecordChild1, // #2 = $src2
/*48753*/       OPC_MoveChild, 2,
/*48755*/       OPC_CheckInteger, 7, 
/*48757*/       OPC_MoveParent,
/*48758*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*48759*/       OPC_CheckType, MVT::i64,
/*48761*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #4 #5 #6 #7 #8
/*48764*/       OPC_EmitMergeInputChains1_0,
/*48765*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*48768*/       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)
/*48781*/     /*Scope*/ 32, /*->48814*/
/*48782*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*48784*/       OPC_MoveParent,
/*48785*/       OPC_RecordChild1, // #2 = $src2
/*48786*/       OPC_MoveChild, 2,
/*48788*/       OPC_CheckInteger, 6, 
/*48790*/       OPC_MoveParent,
/*48791*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*48792*/       OPC_CheckType, MVT::i16,
/*48794*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #4 #5 #6 #7 #8
/*48797*/       OPC_EmitMergeInputChains1_0,
/*48798*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*48801*/       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)
/*48814*/     /*Scope*/ 32, /*->48847*/
/*48815*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*48817*/       OPC_MoveParent,
/*48818*/       OPC_RecordChild1, // #2 = $src2
/*48819*/       OPC_MoveChild, 2,
/*48821*/       OPC_CheckInteger, 6, 
/*48823*/       OPC_MoveParent,
/*48824*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*48825*/       OPC_CheckType, MVT::i32,
/*48827*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #4 #5 #6 #7 #8
/*48830*/       OPC_EmitMergeInputChains1_0,
/*48831*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*48834*/       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)
/*48847*/     /*Scope*/ 32, /*->48880*/
/*48848*/       OPC_CheckPredicate, 3, // Predicate_load
/*48850*/       OPC_MoveParent,
/*48851*/       OPC_RecordChild1, // #2 = $src2
/*48852*/       OPC_MoveChild, 2,
/*48854*/       OPC_CheckInteger, 6, 
/*48856*/       OPC_MoveParent,
/*48857*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*48858*/       OPC_CheckType, MVT::i64,
/*48860*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #4 #5 #6 #7 #8
/*48863*/       OPC_EmitMergeInputChains1_0,
/*48864*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*48867*/       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)
/*48880*/     /*Scope*/ 32, /*->48913*/
/*48881*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*48883*/       OPC_MoveParent,
/*48884*/       OPC_RecordChild1, // #2 = $src2
/*48885*/       OPC_MoveChild, 2,
/*48887*/       OPC_CheckInteger, 8, 
/*48889*/       OPC_MoveParent,
/*48890*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*48891*/       OPC_CheckType, MVT::i16,
/*48893*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #4 #5 #6 #7 #8
/*48896*/       OPC_EmitMergeInputChains1_0,
/*48897*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*48900*/       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)
/*48913*/     /*Scope*/ 32, /*->48946*/
/*48914*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*48916*/       OPC_MoveParent,
/*48917*/       OPC_RecordChild1, // #2 = $src2
/*48918*/       OPC_MoveChild, 2,
/*48920*/       OPC_CheckInteger, 8, 
/*48922*/       OPC_MoveParent,
/*48923*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*48924*/       OPC_CheckType, MVT::i32,
/*48926*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #4 #5 #6 #7 #8
/*48929*/       OPC_EmitMergeInputChains1_0,
/*48930*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*48933*/       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)
/*48946*/     /*Scope*/ 32, /*->48979*/
/*48947*/       OPC_CheckPredicate, 3, // Predicate_load
/*48949*/       OPC_MoveParent,
/*48950*/       OPC_RecordChild1, // #2 = $src2
/*48951*/       OPC_MoveChild, 2,
/*48953*/       OPC_CheckInteger, 8, 
/*48955*/       OPC_MoveParent,
/*48956*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*48957*/       OPC_CheckType, MVT::i64,
/*48959*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #4 #5 #6 #7 #8
/*48962*/       OPC_EmitMergeInputChains1_0,
/*48963*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*48966*/       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)
/*48979*/     /*Scope*/ 32, /*->49012*/
/*48980*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*48982*/       OPC_MoveParent,
/*48983*/       OPC_RecordChild1, // #2 = $src2
/*48984*/       OPC_MoveChild, 2,
/*48986*/       OPC_CheckInteger, 5, 
/*48988*/       OPC_MoveParent,
/*48989*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*48990*/       OPC_CheckType, MVT::i16,
/*48992*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #4 #5 #6 #7 #8
/*48995*/       OPC_EmitMergeInputChains1_0,
/*48996*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*48999*/       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)
/*49012*/     /*Scope*/ 32, /*->49045*/
/*49013*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*49015*/       OPC_MoveParent,
/*49016*/       OPC_RecordChild1, // #2 = $src2
/*49017*/       OPC_MoveChild, 2,
/*49019*/       OPC_CheckInteger, 5, 
/*49021*/       OPC_MoveParent,
/*49022*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*49023*/       OPC_CheckType, MVT::i32,
/*49025*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #4 #5 #6 #7 #8
/*49028*/       OPC_EmitMergeInputChains1_0,
/*49029*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*49032*/       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)
/*49045*/     /*Scope*/ 32, /*->49078*/
/*49046*/       OPC_CheckPredicate, 3, // Predicate_load
/*49048*/       OPC_MoveParent,
/*49049*/       OPC_RecordChild1, // #2 = $src2
/*49050*/       OPC_MoveChild, 2,
/*49052*/       OPC_CheckInteger, 5, 
/*49054*/       OPC_MoveParent,
/*49055*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*49056*/       OPC_CheckType, MVT::i64,
/*49058*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #4 #5 #6 #7 #8
/*49061*/       OPC_EmitMergeInputChains1_0,
/*49062*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*49065*/       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)
/*49078*/     /*Scope*/ 32, /*->49111*/
/*49079*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*49081*/       OPC_MoveParent,
/*49082*/       OPC_RecordChild1, // #2 = $src2
/*49083*/       OPC_MoveChild, 2,
/*49085*/       OPC_CheckInteger, 14, 
/*49087*/       OPC_MoveParent,
/*49088*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*49089*/       OPC_CheckType, MVT::i16,
/*49091*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #4 #5 #6 #7 #8
/*49094*/       OPC_EmitMergeInputChains1_0,
/*49095*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*49098*/       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)
/*49111*/     /*Scope*/ 32, /*->49144*/
/*49112*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*49114*/       OPC_MoveParent,
/*49115*/       OPC_RecordChild1, // #2 = $src2
/*49116*/       OPC_MoveChild, 2,
/*49118*/       OPC_CheckInteger, 14, 
/*49120*/       OPC_MoveParent,
/*49121*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*49122*/       OPC_CheckType, MVT::i32,
/*49124*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #4 #5 #6 #7 #8
/*49127*/       OPC_EmitMergeInputChains1_0,
/*49128*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*49131*/       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)
/*49144*/     /*Scope*/ 32, /*->49177*/
/*49145*/       OPC_CheckPredicate, 3, // Predicate_load
/*49147*/       OPC_MoveParent,
/*49148*/       OPC_RecordChild1, // #2 = $src2
/*49149*/       OPC_MoveChild, 2,
/*49151*/       OPC_CheckInteger, 14, 
/*49153*/       OPC_MoveParent,
/*49154*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*49155*/       OPC_CheckType, MVT::i64,
/*49157*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #4 #5 #6 #7 #8
/*49160*/       OPC_EmitMergeInputChains1_0,
/*49161*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*49164*/       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)
/*49177*/     /*Scope*/ 32, /*->49210*/
/*49178*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*49180*/       OPC_MoveParent,
/*49181*/       OPC_RecordChild1, // #2 = $src2
/*49182*/       OPC_MoveChild, 2,
/*49184*/       OPC_CheckInteger, 11, 
/*49186*/       OPC_MoveParent,
/*49187*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*49188*/       OPC_CheckType, MVT::i16,
/*49190*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #4 #5 #6 #7 #8
/*49193*/       OPC_EmitMergeInputChains1_0,
/*49194*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*49197*/       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)
/*49210*/     /*Scope*/ 32, /*->49243*/
/*49211*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*49213*/       OPC_MoveParent,
/*49214*/       OPC_RecordChild1, // #2 = $src2
/*49215*/       OPC_MoveChild, 2,
/*49217*/       OPC_CheckInteger, 11, 
/*49219*/       OPC_MoveParent,
/*49220*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*49221*/       OPC_CheckType, MVT::i32,
/*49223*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #4 #5 #6 #7 #8
/*49226*/       OPC_EmitMergeInputChains1_0,
/*49227*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*49230*/       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)
/*49243*/     /*Scope*/ 32, /*->49276*/
/*49244*/       OPC_CheckPredicate, 3, // Predicate_load
/*49246*/       OPC_MoveParent,
/*49247*/       OPC_RecordChild1, // #2 = $src2
/*49248*/       OPC_MoveChild, 2,
/*49250*/       OPC_CheckInteger, 11, 
/*49252*/       OPC_MoveParent,
/*49253*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*49254*/       OPC_CheckType, MVT::i64,
/*49256*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #4 #5 #6 #7 #8
/*49259*/       OPC_EmitMergeInputChains1_0,
/*49260*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*49263*/       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)
/*49276*/     /*Scope*/ 32, /*->49309*/
/*49277*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*49279*/       OPC_MoveParent,
/*49280*/       OPC_RecordChild1, // #2 = $src2
/*49281*/       OPC_MoveChild, 2,
/*49283*/       OPC_CheckInteger, 15, 
/*49285*/       OPC_MoveParent,
/*49286*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*49287*/       OPC_CheckType, MVT::i16,
/*49289*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #4 #5 #6 #7 #8
/*49292*/       OPC_EmitMergeInputChains1_0,
/*49293*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*49296*/       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)
/*49309*/     /*Scope*/ 32, /*->49342*/
/*49310*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*49312*/       OPC_MoveParent,
/*49313*/       OPC_RecordChild1, // #2 = $src2
/*49314*/       OPC_MoveChild, 2,
/*49316*/       OPC_CheckInteger, 15, 
/*49318*/       OPC_MoveParent,
/*49319*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*49320*/       OPC_CheckType, MVT::i32,
/*49322*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #4 #5 #6 #7 #8
/*49325*/       OPC_EmitMergeInputChains1_0,
/*49326*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*49329*/       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)
/*49342*/     /*Scope*/ 32, /*->49375*/
/*49343*/       OPC_CheckPredicate, 3, // Predicate_load
/*49345*/       OPC_MoveParent,
/*49346*/       OPC_RecordChild1, // #2 = $src2
/*49347*/       OPC_MoveChild, 2,
/*49349*/       OPC_CheckInteger, 15, 
/*49351*/       OPC_MoveParent,
/*49352*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*49353*/       OPC_CheckType, MVT::i64,
/*49355*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #4 #5 #6 #7 #8
/*49358*/       OPC_EmitMergeInputChains1_0,
/*49359*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*49362*/       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)
/*49375*/     /*Scope*/ 32, /*->49408*/
/*49376*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*49378*/       OPC_MoveParent,
/*49379*/       OPC_RecordChild1, // #2 = $src2
/*49380*/       OPC_MoveChild, 2,
/*49382*/       OPC_CheckInteger, 12, 
/*49384*/       OPC_MoveParent,
/*49385*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*49386*/       OPC_CheckType, MVT::i16,
/*49388*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #4 #5 #6 #7 #8
/*49391*/       OPC_EmitMergeInputChains1_0,
/*49392*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*49395*/       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)
/*49408*/     /*Scope*/ 32, /*->49441*/
/*49409*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*49411*/       OPC_MoveParent,
/*49412*/       OPC_RecordChild1, // #2 = $src2
/*49413*/       OPC_MoveChild, 2,
/*49415*/       OPC_CheckInteger, 12, 
/*49417*/       OPC_MoveParent,
/*49418*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*49419*/       OPC_CheckType, MVT::i32,
/*49421*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #4 #5 #6 #7 #8
/*49424*/       OPC_EmitMergeInputChains1_0,
/*49425*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*49428*/       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)
/*49441*/     /*Scope*/ 32, /*->49474*/
/*49442*/       OPC_CheckPredicate, 3, // Predicate_load
/*49444*/       OPC_MoveParent,
/*49445*/       OPC_RecordChild1, // #2 = $src2
/*49446*/       OPC_MoveChild, 2,
/*49448*/       OPC_CheckInteger, 12, 
/*49450*/       OPC_MoveParent,
/*49451*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*49452*/       OPC_CheckType, MVT::i64,
/*49454*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #4 #5 #6 #7 #8
/*49457*/       OPC_EmitMergeInputChains1_0,
/*49458*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*49461*/       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)
/*49474*/     /*Scope*/ 32, /*->49507*/
/*49475*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*49477*/       OPC_MoveParent,
/*49478*/       OPC_RecordChild1, // #2 = $src2
/*49479*/       OPC_MoveChild, 2,
/*49481*/       OPC_CheckInteger, 13, 
/*49483*/       OPC_MoveParent,
/*49484*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*49485*/       OPC_CheckType, MVT::i16,
/*49487*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #4 #5 #6 #7 #8
/*49490*/       OPC_EmitMergeInputChains1_0,
/*49491*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*49494*/       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)
/*49507*/     /*Scope*/ 32, /*->49540*/
/*49508*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*49510*/       OPC_MoveParent,
/*49511*/       OPC_RecordChild1, // #2 = $src2
/*49512*/       OPC_MoveChild, 2,
/*49514*/       OPC_CheckInteger, 13, 
/*49516*/       OPC_MoveParent,
/*49517*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*49518*/       OPC_CheckType, MVT::i32,
/*49520*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #4 #5 #6 #7 #8
/*49523*/       OPC_EmitMergeInputChains1_0,
/*49524*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*49527*/       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)
/*49540*/     /*Scope*/ 32, /*->49573*/
/*49541*/       OPC_CheckPredicate, 3, // Predicate_load
/*49543*/       OPC_MoveParent,
/*49544*/       OPC_RecordChild1, // #2 = $src2
/*49545*/       OPC_MoveChild, 2,
/*49547*/       OPC_CheckInteger, 13, 
/*49549*/       OPC_MoveParent,
/*49550*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*49551*/       OPC_CheckType, MVT::i64,
/*49553*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #4 #5 #6 #7 #8
/*49556*/       OPC_EmitMergeInputChains1_0,
/*49557*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*49560*/       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)
/*49573*/     /*Scope*/ 32, /*->49606*/
/*49574*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*49576*/       OPC_MoveParent,
/*49577*/       OPC_RecordChild1, // #2 = $src2
/*49578*/       OPC_MoveChild, 2,
/*49580*/       OPC_CheckInteger, 10, 
/*49582*/       OPC_MoveParent,
/*49583*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*49584*/       OPC_CheckType, MVT::i16,
/*49586*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #4 #5 #6 #7 #8
/*49589*/       OPC_EmitMergeInputChains1_0,
/*49590*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*49593*/       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)
/*49606*/     /*Scope*/ 32, /*->49639*/
/*49607*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*49609*/       OPC_MoveParent,
/*49610*/       OPC_RecordChild1, // #2 = $src2
/*49611*/       OPC_MoveChild, 2,
/*49613*/       OPC_CheckInteger, 10, 
/*49615*/       OPC_MoveParent,
/*49616*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*49617*/       OPC_CheckType, MVT::i32,
/*49619*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #4 #5 #6 #7 #8
/*49622*/       OPC_EmitMergeInputChains1_0,
/*49623*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*49626*/       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)
/*49639*/     /*Scope*/ 32, /*->49672*/
/*49640*/       OPC_CheckPredicate, 3, // Predicate_load
/*49642*/       OPC_MoveParent,
/*49643*/       OPC_RecordChild1, // #2 = $src2
/*49644*/       OPC_MoveChild, 2,
/*49646*/       OPC_CheckInteger, 10, 
/*49648*/       OPC_MoveParent,
/*49649*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*49650*/       OPC_CheckType, MVT::i64,
/*49652*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #4 #5 #6 #7 #8
/*49655*/       OPC_EmitMergeInputChains1_0,
/*49656*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*49659*/       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)
/*49672*/     0, /*End of Scope*/
/*49673*/   /*Scope*/ 75|128,12/*1611*/, /*->51286*/
/*49675*/     OPC_RecordChild0, // #0 = $src1
/*49676*/     OPC_RecordChild1, // #1 = $src2
/*49677*/     OPC_Scope, 116|128,6/*884*/, /*->50564*/ // 4 children in Scope
/*49680*/       OPC_MoveChild, 2,
/*49682*/       OPC_Scope, 54, /*->49738*/ // 16 children in Scope
/*49684*/         OPC_CheckInteger, 13, 
/*49686*/         OPC_MoveParent,
/*49687*/         OPC_RecordChild3, // #2 = physreg input EFLAGS
/*49688*/         OPC_SwitchType /*3 cases */, 14,  MVT::i16,// ->49705
/*49691*/           OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*49693*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*49696*/           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,// ->49721
/*49707*/           OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*49709*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*49712*/           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,// ->49737
/*49723*/           OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*49725*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*49728*/           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
/*49738*/       /*Scope*/ 54, /*->49793*/
/*49739*/         OPC_CheckInteger, 10, 
/*49741*/         OPC_MoveParent,
/*49742*/         OPC_RecordChild3, // #2 = physreg input EFLAGS
/*49743*/         OPC_SwitchType /*3 cases */, 14,  MVT::i16,// ->49760
/*49746*/           OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*49748*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*49751*/           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,// ->49776
/*49762*/           OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*49764*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*49767*/           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,// ->49792
/*49778*/           OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*49780*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*49783*/           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
/*49793*/       /*Scope*/ 54, /*->49848*/
/*49794*/         OPC_CheckInteger, 2, 
/*49796*/         OPC_MoveParent,
/*49797*/         OPC_RecordChild3, // #2 = physreg input EFLAGS
/*49798*/         OPC_SwitchType /*3 cases */, 14,  MVT::i16,// ->49815
/*49801*/           OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*49803*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*49806*/           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,// ->49831
/*49817*/           OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*49819*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*49822*/           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,// ->49847
/*49833*/           OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*49835*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*49838*/           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
/*49848*/       /*Scope*/ 54, /*->49903*/
/*49849*/         OPC_CheckInteger, 1, 
/*49851*/         OPC_MoveParent,
/*49852*/         OPC_RecordChild3, // #2 = physreg input EFLAGS
/*49853*/         OPC_SwitchType /*3 cases */, 14,  MVT::i16,// ->49870
/*49856*/           OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*49858*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*49861*/           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,// ->49886
/*49872*/           OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*49874*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*49877*/           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,// ->49902
/*49888*/           OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*49890*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*49893*/           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
/*49903*/       /*Scope*/ 54, /*->49958*/
/*49904*/         OPC_CheckInteger, 4, 
/*49906*/         OPC_MoveParent,
/*49907*/         OPC_RecordChild3, // #2 = physreg input EFLAGS
/*49908*/         OPC_SwitchType /*3 cases */, 14,  MVT::i16,// ->49925
/*49911*/           OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*49913*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*49916*/           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,// ->49941
/*49927*/           OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*49929*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*49932*/           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,// ->49957
/*49943*/           OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*49945*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*49948*/           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
/*49958*/       /*Scope*/ 54, /*->50013*/
/*49959*/         OPC_CheckInteger, 9, 
/*49961*/         OPC_MoveParent,
/*49962*/         OPC_RecordChild3, // #2 = physreg input EFLAGS
/*49963*/         OPC_SwitchType /*3 cases */, 14,  MVT::i16,// ->49980
/*49966*/           OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*49968*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*49971*/           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,// ->49996
/*49982*/           OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*49984*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*49987*/           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,// ->50012
/*49998*/           OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*50000*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*50003*/           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
/*50013*/       /*Scope*/ 54, /*->50068*/
/*50014*/         OPC_CheckInteger, 3, 
/*50016*/         OPC_MoveParent,
/*50017*/         OPC_RecordChild3, // #2 = physreg input EFLAGS
/*50018*/         OPC_SwitchType /*3 cases */, 14,  MVT::i16,// ->50035
/*50021*/           OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*50023*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*50026*/           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,// ->50051
/*50037*/           OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*50039*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*50042*/           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,// ->50067
/*50053*/           OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*50055*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*50058*/           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
/*50068*/       /*Scope*/ 54, /*->50123*/
/*50069*/         OPC_CheckInteger, 0, 
/*50071*/         OPC_MoveParent,
/*50072*/         OPC_RecordChild3, // #2 = physreg input EFLAGS
/*50073*/         OPC_SwitchType /*3 cases */, 14,  MVT::i16,// ->50090
/*50076*/           OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*50078*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*50081*/           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,// ->50106
/*50092*/           OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*50094*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*50097*/           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,// ->50122
/*50108*/           OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*50110*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*50113*/           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
/*50123*/       /*Scope*/ 54, /*->50178*/
/*50124*/         OPC_CheckInteger, 15, 
/*50126*/         OPC_MoveParent,
/*50127*/         OPC_RecordChild3, // #2 = physreg input EFLAGS
/*50128*/         OPC_SwitchType /*3 cases */, 14,  MVT::i16,// ->50145
/*50131*/           OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*50133*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*50136*/           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,// ->50161
/*50147*/           OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*50149*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*50152*/           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,// ->50177
/*50163*/           OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*50165*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*50168*/           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
/*50178*/       /*Scope*/ 54, /*->50233*/
/*50179*/         OPC_CheckInteger, 12, 
/*50181*/         OPC_MoveParent,
/*50182*/         OPC_RecordChild3, // #2 = physreg input EFLAGS
/*50183*/         OPC_SwitchType /*3 cases */, 14,  MVT::i16,// ->50200
/*50186*/           OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*50188*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*50191*/           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,// ->50216
/*50202*/           OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*50204*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*50207*/           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,// ->50232
/*50218*/           OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*50220*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*50223*/           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
/*50233*/       /*Scope*/ 54, /*->50288*/
/*50234*/         OPC_CheckInteger, 14, 
/*50236*/         OPC_MoveParent,
/*50237*/         OPC_RecordChild3, // #2 = physreg input EFLAGS
/*50238*/         OPC_SwitchType /*3 cases */, 14,  MVT::i16,// ->50255
/*50241*/           OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*50243*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*50246*/           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,// ->50271
/*50257*/           OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*50259*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*50262*/           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,// ->50287
/*50273*/           OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*50275*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*50278*/           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
/*50288*/       /*Scope*/ 54, /*->50343*/
/*50289*/         OPC_CheckInteger, 11, 
/*50291*/         OPC_MoveParent,
/*50292*/         OPC_RecordChild3, // #2 = physreg input EFLAGS
/*50293*/         OPC_SwitchType /*3 cases */, 14,  MVT::i16,// ->50310
/*50296*/           OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*50298*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*50301*/           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,// ->50326
/*50312*/           OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*50314*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*50317*/           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,// ->50342
/*50328*/           OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*50330*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*50333*/           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
/*50343*/       /*Scope*/ 54, /*->50398*/
/*50344*/         OPC_CheckInteger, 7, 
/*50346*/         OPC_MoveParent,
/*50347*/         OPC_RecordChild3, // #2 = physreg input EFLAGS
/*50348*/         OPC_SwitchType /*3 cases */, 14,  MVT::i16,// ->50365
/*50351*/           OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*50353*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*50356*/           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,// ->50381
/*50367*/           OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*50369*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*50372*/           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,// ->50397
/*50383*/           OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*50385*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*50388*/           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
/*50398*/       /*Scope*/ 54, /*->50453*/
/*50399*/         OPC_CheckInteger, 6, 
/*50401*/         OPC_MoveParent,
/*50402*/         OPC_RecordChild3, // #2 = physreg input EFLAGS
/*50403*/         OPC_SwitchType /*3 cases */, 14,  MVT::i16,// ->50420
/*50406*/           OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*50408*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*50411*/           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,// ->50436
/*50422*/           OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*50424*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*50427*/           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,// ->50452
/*50438*/           OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*50440*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*50443*/           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
/*50453*/       /*Scope*/ 54, /*->50508*/
/*50454*/         OPC_CheckInteger, 8, 
/*50456*/         OPC_MoveParent,
/*50457*/         OPC_RecordChild3, // #2 = physreg input EFLAGS
/*50458*/         OPC_SwitchType /*3 cases */, 14,  MVT::i16,// ->50475
/*50461*/           OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*50463*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*50466*/           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,// ->50491
/*50477*/           OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*50479*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*50482*/           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,// ->50507
/*50493*/           OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*50495*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*50498*/           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
/*50508*/       /*Scope*/ 54, /*->50563*/
/*50509*/         OPC_CheckInteger, 5, 
/*50511*/         OPC_MoveParent,
/*50512*/         OPC_RecordChild3, // #2 = physreg input EFLAGS
/*50513*/         OPC_SwitchType /*3 cases */, 14,  MVT::i16,// ->50530
/*50516*/           OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*50518*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*50521*/           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,// ->50546
/*50532*/           OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*50534*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*50537*/           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,// ->50562
/*50548*/           OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*50550*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*50553*/           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
/*50563*/       0, /*End of Scope*/
/*50564*/     /*Scope*/ 65, /*->50630*/
/*50565*/       OPC_RecordChild2, // #2 = $cond
/*50566*/       OPC_MoveChild, 2,
/*50568*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*50571*/       OPC_MoveParent,
/*50572*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*50573*/       OPC_SwitchType /*3 cases */, 15,  MVT::i8,// ->50591
/*50576*/         OPC_EmitConvertToTarget, 2,
/*50578*/         OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*50581*/         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,// ->50610
/*50593*/         OPC_CheckPatternPredicate, 18, // (!Subtarget->hasCMov())
/*50595*/         OPC_EmitConvertToTarget, 2,
/*50597*/         OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*50600*/         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,// ->50629
/*50612*/         OPC_CheckPatternPredicate, 18, // (!Subtarget->hasCMov())
/*50614*/         OPC_EmitConvertToTarget, 2,
/*50616*/         OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*50619*/         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
/*50630*/     /*Scope*/ 60|128,3/*444*/, /*->51076*/
/*50632*/       OPC_MoveChild, 2,
/*50634*/       OPC_Scope, 54, /*->50690*/ // 8 children in Scope
/*50636*/         OPC_CheckInteger, 2, 
/*50638*/         OPC_MoveParent,
/*50639*/         OPC_RecordChild3, // #2 = physreg input EFLAGS
/*50640*/         OPC_SwitchType /*3 cases */, 14,  MVT::f32,// ->50657
/*50643*/           OPC_CheckPatternPredicate, 19, // (!Subtarget->hasXMM()) && (Subtarget->hasCMov())
/*50645*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*50648*/           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,// ->50673
/*50659*/           OPC_CheckPatternPredicate, 20, // (!Subtarget->hasXMMInt()) && (Subtarget->hasCMov())
/*50661*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*50664*/           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,// ->50689
/*50675*/           OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*50677*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*50680*/           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
/*50690*/       /*Scope*/ 54, /*->50745*/
/*50691*/         OPC_CheckInteger, 3, 
/*50693*/         OPC_MoveParent,
/*50694*/         OPC_RecordChild3, // #2 = physreg input EFLAGS
/*50695*/         OPC_SwitchType /*3 cases */, 14,  MVT::f32,// ->50712
/*50698*/           OPC_CheckPatternPredicate, 19, // (!Subtarget->hasXMM()) && (Subtarget->hasCMov())
/*50700*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*50703*/           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,// ->50728
/*50714*/           OPC_CheckPatternPredicate, 20, // (!Subtarget->hasXMMInt()) && (Subtarget->hasCMov())
/*50716*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*50719*/           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,// ->50744
/*50730*/           OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*50732*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*50735*/           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
/*50745*/       /*Scope*/ 54, /*->50800*/
/*50746*/         OPC_CheckInteger, 4, 
/*50748*/         OPC_MoveParent,
/*50749*/         OPC_RecordChild3, // #2 = physreg input EFLAGS
/*50750*/         OPC_SwitchType /*3 cases */, 14,  MVT::f32,// ->50767
/*50753*/           OPC_CheckPatternPredicate, 19, // (!Subtarget->hasXMM()) && (Subtarget->hasCMov())
/*50755*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*50758*/           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,// ->50783
/*50769*/           OPC_CheckPatternPredicate, 20, // (!Subtarget->hasXMMInt()) && (Subtarget->hasCMov())
/*50771*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*50774*/           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,// ->50799
/*50785*/           OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*50787*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*50790*/           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
/*50800*/       /*Scope*/ 54, /*->50855*/
/*50801*/         OPC_CheckInteger, 14, 
/*50803*/         OPC_MoveParent,
/*50804*/         OPC_RecordChild3, // #2 = physreg input EFLAGS
/*50805*/         OPC_SwitchType /*3 cases */, 14,  MVT::f32,// ->50822
/*50808*/           OPC_CheckPatternPredicate, 19, // (!Subtarget->hasXMM()) && (Subtarget->hasCMov())
/*50810*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*50813*/           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,// ->50838
/*50824*/           OPC_CheckPatternPredicate, 20, // (!Subtarget->hasXMMInt()) && (Subtarget->hasCMov())
/*50826*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*50829*/           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,// ->50854
/*50840*/           OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*50842*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*50845*/           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
/*50855*/       /*Scope*/ 54, /*->50910*/
/*50856*/         OPC_CheckInteger, 1, 
/*50858*/         OPC_MoveParent,
/*50859*/         OPC_RecordChild3, // #2 = physreg input EFLAGS
/*50860*/         OPC_SwitchType /*3 cases */, 14,  MVT::f32,// ->50877
/*50863*/           OPC_CheckPatternPredicate, 19, // (!Subtarget->hasXMM()) && (Subtarget->hasCMov())
/*50865*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*50868*/           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,// ->50893
/*50879*/           OPC_CheckPatternPredicate, 20, // (!Subtarget->hasXMMInt()) && (Subtarget->hasCMov())
/*50881*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*50884*/           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,// ->50909
/*50895*/           OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*50897*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*50900*/           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
/*50910*/       /*Scope*/ 54, /*->50965*/
/*50911*/         OPC_CheckInteger, 0, 
/*50913*/         OPC_MoveParent,
/*50914*/         OPC_RecordChild3, // #2 = physreg input EFLAGS
/*50915*/         OPC_SwitchType /*3 cases */, 14,  MVT::f32,// ->50932
/*50918*/           OPC_CheckPatternPredicate, 19, // (!Subtarget->hasXMM()) && (Subtarget->hasCMov())
/*50920*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*50923*/           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,// ->50948
/*50934*/           OPC_CheckPatternPredicate, 20, // (!Subtarget->hasXMMInt()) && (Subtarget->hasCMov())
/*50936*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*50939*/           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,// ->50964
/*50950*/           OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*50952*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*50955*/           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
/*50965*/       /*Scope*/ 54, /*->51020*/
/*50966*/         OPC_CheckInteger, 9, 
/*50968*/         OPC_MoveParent,
/*50969*/         OPC_RecordChild3, // #2 = physreg input EFLAGS
/*50970*/         OPC_SwitchType /*3 cases */, 14,  MVT::f32,// ->50987
/*50973*/           OPC_CheckPatternPredicate, 19, // (!Subtarget->hasXMM()) && (Subtarget->hasCMov())
/*50975*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*50978*/           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,// ->51003
/*50989*/           OPC_CheckPatternPredicate, 20, // (!Subtarget->hasXMMInt()) && (Subtarget->hasCMov())
/*50991*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*50994*/           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,// ->51019
/*51005*/           OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*51007*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*51010*/           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
/*51020*/       /*Scope*/ 54, /*->51075*/
/*51021*/         OPC_CheckInteger, 11, 
/*51023*/         OPC_MoveParent,
/*51024*/         OPC_RecordChild3, // #2 = physreg input EFLAGS
/*51025*/         OPC_SwitchType /*3 cases */, 14,  MVT::f32,// ->51042
/*51028*/           OPC_CheckPatternPredicate, 19, // (!Subtarget->hasXMM()) && (Subtarget->hasCMov())
/*51030*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*51033*/           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,// ->51058
/*51044*/           OPC_CheckPatternPredicate, 20, // (!Subtarget->hasXMMInt()) && (Subtarget->hasCMov())
/*51046*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*51049*/           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,// ->51074
/*51060*/           OPC_CheckPatternPredicate, 17, // (Subtarget->hasCMov())
/*51062*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*51065*/           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
/*51075*/       0, /*End of Scope*/
/*51076*/     /*Scope*/ 79|128,1/*207*/, /*->51285*/
/*51078*/       OPC_RecordChild2, // #2 = $cond
/*51079*/       OPC_MoveChild, 2,
/*51081*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*51084*/       OPC_MoveParent,
/*51085*/       OPC_RecordChild3, // #3 = physreg input EFLAGS
/*51086*/       OPC_SwitchType /*9 cases */, 36,  MVT::f32,// ->51125
/*51089*/         OPC_Scope, 17, /*->51108*/ // 2 children in Scope
/*51091*/           OPC_CheckPatternPredicate, 18, // (!Subtarget->hasCMov())
/*51093*/           OPC_EmitConvertToTarget, 2,
/*51095*/           OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*51098*/           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)
/*51108*/         /*Scope*/ 15, /*->51124*/
/*51109*/           OPC_EmitConvertToTarget, 2,
/*51111*/           OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*51114*/           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)
/*51124*/         0, /*End of Scope*/
                /*SwitchType*/ 36,  MVT::f64,// ->51163
/*51127*/         OPC_Scope, 17, /*->51146*/ // 2 children in Scope
/*51129*/           OPC_CheckPatternPredicate, 18, // (!Subtarget->hasCMov())
/*51131*/           OPC_EmitConvertToTarget, 2,
/*51133*/           OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*51136*/           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)
/*51146*/         /*Scope*/ 15, /*->51162*/
/*51147*/           OPC_EmitConvertToTarget, 2,
/*51149*/           OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*51152*/           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)
/*51162*/         0, /*End of Scope*/
                /*SwitchType*/ 17,  MVT::f80,// ->51182
/*51165*/         OPC_CheckPatternPredicate, 18, // (!Subtarget->hasCMov())
/*51167*/         OPC_EmitConvertToTarget, 2,
/*51169*/         OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*51172*/         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,// ->51199
/*51184*/         OPC_EmitConvertToTarget, 2,
/*51186*/         OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*51189*/         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,// ->51216
/*51201*/         OPC_EmitConvertToTarget, 2,
/*51203*/         OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*51206*/         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,// ->51233
/*51218*/         OPC_EmitConvertToTarget, 2,
/*51220*/         OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*51223*/         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,// ->51250
/*51235*/         OPC_EmitConvertToTarget, 2,
/*51237*/         OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*51240*/         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,// ->51267
/*51252*/         OPC_EmitConvertToTarget, 2,
/*51254*/         OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*51257*/         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,// ->51284
/*51269*/         OPC_EmitConvertToTarget, 2,
/*51271*/         OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*51274*/         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
/*51285*/     0, /*End of Scope*/
/*51286*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 52,  TARGET_VAL(X86ISD::VAARG_64),// ->51342
/*51290*/   OPC_RecordMemRef,
/*51291*/   OPC_RecordNode,   // #0 = 'X86vaarg64' chained node
/*51292*/   OPC_RecordChild1, // #1 = $ap
/*51293*/   OPC_RecordChild2, // #2 = $size
/*51294*/   OPC_MoveChild, 2,
/*51296*/   OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*51299*/   OPC_MoveParent,
/*51300*/   OPC_RecordChild3, // #3 = $mode
/*51301*/   OPC_MoveChild, 3,
/*51303*/   OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*51306*/   OPC_MoveParent,
/*51307*/   OPC_RecordChild4, // #4 = $align
/*51308*/   OPC_MoveChild, 4,
/*51310*/   OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*51313*/   OPC_MoveParent,
/*51314*/   OPC_CheckType, MVT::i64,
/*51316*/   OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$ap #5 #6 #7 #8 #9
/*51319*/   OPC_EmitMergeInputChains1_0,
/*51320*/   OPC_EmitConvertToTarget, 2,
/*51322*/   OPC_EmitConvertToTarget, 3,
/*51324*/   OPC_EmitConvertToTarget, 4,
/*51326*/   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),// ->51573
/*51346*/   OPC_Scope, 112, /*->51460*/ // 2 children in Scope
/*51348*/     OPC_MoveChild, 0,
/*51350*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*51353*/     OPC_RecordMemRef,
/*51354*/     OPC_RecordNode, // #0 = 'ld' chained node
/*51355*/     OPC_CheckFoldableChainNode,
/*51356*/     OPC_RecordChild1, // #1 = $src1
/*51357*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*51359*/     OPC_SwitchType /*3 cases */, 31,  MVT::i16,// ->51393
/*51362*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*51364*/       OPC_MoveParent,
/*51365*/       OPC_RecordChild1, // #2 = $src2
/*51366*/       OPC_MoveChild, 1,
/*51368*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*51371*/       OPC_CheckPredicate, 8, // Predicate_i16immSExt8
/*51373*/       OPC_MoveParent,
/*51374*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #3 #4 #5 #6 #7
/*51377*/       OPC_EmitMergeInputChains1_0,
/*51378*/       OPC_EmitConvertToTarget, 2,
/*51380*/       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,// ->51426
/*51395*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*51397*/       OPC_MoveParent,
/*51398*/       OPC_RecordChild1, // #2 = $src2
/*51399*/       OPC_MoveChild, 1,
/*51401*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*51404*/       OPC_CheckPredicate, 9, // Predicate_i32immSExt8
/*51406*/       OPC_MoveParent,
/*51407*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #3 #4 #5 #6 #7
/*51410*/       OPC_EmitMergeInputChains1_0,
/*51411*/       OPC_EmitConvertToTarget, 2,
/*51413*/       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,// ->51459
/*51428*/       OPC_CheckPredicate, 3, // Predicate_load
/*51430*/       OPC_MoveParent,
/*51431*/       OPC_RecordChild1, // #2 = $src2
/*51432*/       OPC_MoveChild, 1,
/*51434*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*51437*/       OPC_CheckPredicate, 10, // Predicate_i64immSExt8
/*51439*/       OPC_MoveParent,
/*51440*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #3 #4 #5 #6 #7
/*51443*/       OPC_EmitMergeInputChains1_0,
/*51444*/       OPC_EmitConvertToTarget, 2,
/*51446*/       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
/*51460*/   /*Scope*/ 111, /*->51572*/
/*51461*/     OPC_RecordChild0, // #0 = $src1
/*51462*/     OPC_Scope, 35, /*->51499*/ // 3 children in Scope
/*51464*/       OPC_CheckChild0Type, MVT::i16,
/*51466*/       OPC_RecordChild1, // #1 = $src2
/*51467*/       OPC_Scope, 19, /*->51488*/ // 2 children in Scope
/*51469*/         OPC_MoveChild, 1,
/*51471*/         OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*51474*/         OPC_CheckPredicate, 8, // Predicate_i16immSExt8
/*51476*/         OPC_MoveParent,
/*51477*/         OPC_EmitConvertToTarget, 1,
/*51479*/         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)
/*51488*/       /*Scope*/ 9, /*->51498*/
/*51489*/         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)
/*51498*/       0, /*End of Scope*/
/*51499*/     /*Scope*/ 35, /*->51535*/
/*51500*/       OPC_CheckChild0Type, MVT::i32,
/*51502*/       OPC_RecordChild1, // #1 = $src2
/*51503*/       OPC_Scope, 19, /*->51524*/ // 2 children in Scope
/*51505*/         OPC_MoveChild, 1,
/*51507*/         OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*51510*/         OPC_CheckPredicate, 9, // Predicate_i32immSExt8
/*51512*/         OPC_MoveParent,
/*51513*/         OPC_EmitConvertToTarget, 1,
/*51515*/         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)
/*51524*/       /*Scope*/ 9, /*->51534*/
/*51525*/         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)
/*51534*/       0, /*End of Scope*/
/*51535*/     /*Scope*/ 35, /*->51571*/
/*51536*/       OPC_CheckChild0Type, MVT::i64,
/*51538*/       OPC_RecordChild1, // #1 = $src2
/*51539*/       OPC_Scope, 19, /*->51560*/ // 2 children in Scope
/*51541*/         OPC_MoveChild, 1,
/*51543*/         OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*51546*/         OPC_CheckPredicate, 10, // Predicate_i64immSExt8
/*51548*/         OPC_MoveParent,
/*51549*/         OPC_EmitConvertToTarget, 1,
/*51551*/         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)
/*51560*/       /*Scope*/ 9, /*->51570*/
/*51561*/         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)
/*51570*/       0, /*End of Scope*/
/*51571*/     0, /*End of Scope*/
/*51572*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 107|128,3/*491*/,  TARGET_VAL(X86ISD::SMUL),// ->52068
/*51577*/   OPC_Scope, 46|128,1/*174*/, /*->51754*/ // 4 children in Scope
/*51580*/     OPC_MoveChild, 0,
/*51582*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*51585*/     OPC_RecordMemRef,
/*51586*/     OPC_RecordNode, // #0 = 'ld' chained node
/*51587*/     OPC_CheckFoldableChainNode,
/*51588*/     OPC_RecordChild1, // #1 = $src1
/*51589*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*51591*/     OPC_CheckPredicate, 3, // Predicate_load
/*51593*/     OPC_MoveParent,
/*51594*/     OPC_RecordChild1, // #2 = $src2
/*51595*/     OPC_MoveChild, 1,
/*51597*/     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*51600*/     OPC_Scope, 25, /*->51627*/ // 5 children in Scope
/*51602*/       OPC_CheckPredicate, 8, // Predicate_i16immSExt8
/*51604*/       OPC_MoveParent,
/*51605*/       OPC_CheckType, MVT::i16,
/*51607*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #3 #4 #5 #6 #7
/*51610*/       OPC_EmitMergeInputChains1_0,
/*51611*/       OPC_EmitConvertToTarget, 2,
/*51613*/       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)
/*51627*/     /*Scope*/ 25, /*->51653*/
/*51628*/       OPC_CheckPredicate, 9, // Predicate_i32immSExt8
/*51630*/       OPC_MoveParent,
/*51631*/       OPC_CheckType, MVT::i32,
/*51633*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #3 #4 #5 #6 #7
/*51636*/       OPC_EmitMergeInputChains1_0,
/*51637*/       OPC_EmitConvertToTarget, 2,
/*51639*/       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)
/*51653*/     /*Scope*/ 25, /*->51679*/
/*51654*/       OPC_CheckPredicate, 11, // Predicate_i64immSExt32
/*51656*/       OPC_MoveParent,
/*51657*/       OPC_CheckType, MVT::i64,
/*51659*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #3 #4 #5 #6 #7
/*51662*/       OPC_EmitMergeInputChains1_0,
/*51663*/       OPC_EmitConvertToTarget, 2,
/*51665*/       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)
/*51679*/     /*Scope*/ 25, /*->51705*/
/*51680*/       OPC_CheckPredicate, 10, // Predicate_i64immSExt8
/*51682*/       OPC_MoveParent,
/*51683*/       OPC_CheckType, MVT::i64,
/*51685*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #3 #4 #5 #6 #7
/*51688*/       OPC_EmitMergeInputChains1_0,
/*51689*/       OPC_EmitConvertToTarget, 2,
/*51691*/       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)
/*51705*/     /*Scope*/ 47, /*->51753*/
/*51706*/       OPC_MoveParent,
/*51707*/       OPC_SwitchType /*2 cases */, 20,  MVT::i16,// ->51730
/*51710*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #3 #4 #5 #6 #7
/*51713*/         OPC_EmitMergeInputChains1_0,
/*51714*/         OPC_EmitConvertToTarget, 2,
/*51716*/         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,// ->51752
/*51732*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #3 #4 #5 #6 #7
/*51735*/         OPC_EmitMergeInputChains1_0,
/*51736*/         OPC_EmitConvertToTarget, 2,
/*51738*/         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
/*51753*/     0, /*End of Scope*/
/*51754*/   /*Scope*/ 77, /*->51832*/
/*51755*/     OPC_RecordChild0, // #0 = $src1
/*51756*/     OPC_MoveChild, 1,
/*51758*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*51761*/     OPC_RecordMemRef,
/*51762*/     OPC_RecordNode, // #1 = 'ld' chained node
/*51763*/     OPC_CheckFoldableChainNode,
/*51764*/     OPC_RecordChild1, // #2 = $src2
/*51765*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*51767*/     OPC_CheckPredicate, 3, // Predicate_load
/*51769*/     OPC_MoveParent,
/*51770*/     OPC_SwitchType /*3 cases */, 18,  MVT::i16,// ->51791
/*51773*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*51776*/       OPC_EmitMergeInputChains1_1,
/*51777*/       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,// ->51811
/*51793*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*51796*/       OPC_EmitMergeInputChains1_1,
/*51797*/       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,// ->51831
/*51813*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*51816*/       OPC_EmitMergeInputChains1_1,
/*51817*/       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
/*51832*/   /*Scope*/ 77, /*->51910*/
/*51833*/     OPC_MoveChild, 0,
/*51835*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*51838*/     OPC_RecordMemRef,
/*51839*/     OPC_RecordNode, // #0 = 'ld' chained node
/*51840*/     OPC_CheckFoldableChainNode,
/*51841*/     OPC_RecordChild1, // #1 = $src2
/*51842*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*51844*/     OPC_CheckPredicate, 3, // Predicate_load
/*51846*/     OPC_MoveParent,
/*51847*/     OPC_RecordChild1, // #2 = $src1
/*51848*/     OPC_SwitchType /*3 cases */, 18,  MVT::i16,// ->51869
/*51851*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*51854*/       OPC_EmitMergeInputChains1_0,
/*51855*/       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,// ->51889
/*51871*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*51874*/       OPC_EmitMergeInputChains1_0,
/*51875*/       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,// ->51909
/*51891*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*51894*/       OPC_EmitMergeInputChains1_0,
/*51895*/       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
/*51910*/   /*Scope*/ 27|128,1/*155*/, /*->52067*/
/*51912*/     OPC_RecordChild0, // #0 = $src1
/*51913*/     OPC_RecordChild1, // #1 = $src2
/*51914*/     OPC_Scope, 111, /*->52027*/ // 4 children in Scope
/*51916*/       OPC_MoveChild, 1,
/*51918*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*51921*/       OPC_Scope, 17, /*->51940*/ // 5 children in Scope
/*51923*/         OPC_CheckPredicate, 8, // Predicate_i16immSExt8
/*51925*/         OPC_MoveParent,
/*51926*/         OPC_CheckType, MVT::i16,
/*51928*/         OPC_EmitConvertToTarget, 1,
/*51930*/         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)
/*51940*/       /*Scope*/ 17, /*->51958*/
/*51941*/         OPC_CheckPredicate, 9, // Predicate_i32immSExt8
/*51943*/         OPC_MoveParent,
/*51944*/         OPC_CheckType, MVT::i32,
/*51946*/         OPC_EmitConvertToTarget, 1,
/*51948*/         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)
/*51958*/       /*Scope*/ 17, /*->51976*/
/*51959*/         OPC_CheckPredicate, 11, // Predicate_i64immSExt32
/*51961*/         OPC_MoveParent,
/*51962*/         OPC_CheckType, MVT::i64,
/*51964*/         OPC_EmitConvertToTarget, 1,
/*51966*/         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)
/*51976*/       /*Scope*/ 17, /*->51994*/
/*51977*/         OPC_CheckPredicate, 10, // Predicate_i64immSExt8
/*51979*/         OPC_MoveParent,
/*51980*/         OPC_CheckType, MVT::i64,
/*51982*/         OPC_EmitConvertToTarget, 1,
/*51984*/         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)
/*51994*/       /*Scope*/ 31, /*->52026*/
/*51995*/         OPC_MoveParent,
/*51996*/         OPC_SwitchType /*2 cases */, 12,  MVT::i16,// ->52011
/*51999*/           OPC_EmitConvertToTarget, 1,
/*52001*/           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,// ->52025
/*52013*/           OPC_EmitConvertToTarget, 1,
/*52015*/           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
/*52026*/       0, /*End of Scope*/
/*52027*/     /*Scope*/ 12, /*->52040*/
/*52028*/       OPC_CheckType, MVT::i16,
/*52030*/       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)
/*52040*/     /*Scope*/ 12, /*->52053*/
/*52041*/       OPC_CheckType, MVT::i32,
/*52043*/       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)
/*52053*/     /*Scope*/ 12, /*->52066*/
/*52054*/       OPC_CheckType, MVT::i64,
/*52056*/       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)
/*52066*/     0, /*End of Scope*/
/*52067*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 52|128,7/*948*/,  TARGET_VAL(ISD::MUL),// ->53020
/*52072*/   OPC_Scope, 85|128,1/*213*/, /*->52288*/ // 7 children in Scope
/*52075*/     OPC_MoveChild, 0,
/*52077*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*52080*/     OPC_RecordMemRef,
/*52081*/     OPC_RecordNode, // #0 = 'ld' chained node
/*52082*/     OPC_CheckFoldableChainNode,
/*52083*/     OPC_RecordChild1, // #1 = $src1
/*52084*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*52086*/     OPC_Scope, 34, /*->52122*/ // 5 children in Scope
/*52088*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*52090*/       OPC_MoveParent,
/*52091*/       OPC_RecordChild1, // #2 = $src2
/*52092*/       OPC_MoveChild, 1,
/*52094*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*52097*/       OPC_CheckPredicate, 8, // Predicate_i16immSExt8
/*52099*/       OPC_MoveParent,
/*52100*/       OPC_CheckType, MVT::i16,
/*52102*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #3 #4 #5 #6 #7
/*52105*/       OPC_EmitMergeInputChains1_0,
/*52106*/       OPC_EmitConvertToTarget, 2,
/*52108*/       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)
/*52122*/     /*Scope*/ 34, /*->52157*/
/*52123*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*52125*/       OPC_MoveParent,
/*52126*/       OPC_RecordChild1, // #2 = $src2
/*52127*/       OPC_MoveChild, 1,
/*52129*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*52132*/       OPC_CheckPredicate, 9, // Predicate_i32immSExt8
/*52134*/       OPC_MoveParent,
/*52135*/       OPC_CheckType, MVT::i32,
/*52137*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #3 #4 #5 #6 #7
/*52140*/       OPC_EmitMergeInputChains1_0,
/*52141*/       OPC_EmitConvertToTarget, 2,
/*52143*/       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)
/*52157*/     /*Scope*/ 63, /*->52221*/
/*52158*/       OPC_CheckPredicate, 3, // Predicate_load
/*52160*/       OPC_MoveParent,
/*52161*/       OPC_RecordChild1, // #2 = $src2
/*52162*/       OPC_MoveChild, 1,
/*52164*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*52167*/       OPC_Scope, 25, /*->52194*/ // 2 children in Scope
/*52169*/         OPC_CheckPredicate, 10, // Predicate_i64immSExt8
/*52171*/         OPC_MoveParent,
/*52172*/         OPC_CheckType, MVT::i64,
/*52174*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #3 #4 #5 #6 #7
/*52177*/         OPC_EmitMergeInputChains1_0,
/*52178*/         OPC_EmitConvertToTarget, 2,
/*52180*/         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)
/*52194*/       /*Scope*/ 25, /*->52220*/
/*52195*/         OPC_CheckPredicate, 11, // Predicate_i64immSExt32
/*52197*/         OPC_MoveParent,
/*52198*/         OPC_CheckType, MVT::i64,
/*52200*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #3 #4 #5 #6 #7
/*52203*/         OPC_EmitMergeInputChains1_0,
/*52204*/         OPC_EmitConvertToTarget, 2,
/*52206*/         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)
/*52220*/       0, /*End of Scope*/
/*52221*/     /*Scope*/ 32, /*->52254*/
/*52222*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*52224*/       OPC_MoveParent,
/*52225*/       OPC_RecordChild1, // #2 = $src2
/*52226*/       OPC_MoveChild, 1,
/*52228*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*52231*/       OPC_MoveParent,
/*52232*/       OPC_CheckType, MVT::i16,
/*52234*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #3 #4 #5 #6 #7
/*52237*/       OPC_EmitMergeInputChains1_0,
/*52238*/       OPC_EmitConvertToTarget, 2,
/*52240*/       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)
/*52254*/     /*Scope*/ 32, /*->52287*/
/*52255*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*52257*/       OPC_MoveParent,
/*52258*/       OPC_RecordChild1, // #2 = $src2
/*52259*/       OPC_MoveChild, 1,
/*52261*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*52264*/       OPC_MoveParent,
/*52265*/       OPC_CheckType, MVT::i32,
/*52267*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #3 #4 #5 #6 #7
/*52270*/       OPC_EmitMergeInputChains1_0,
/*52271*/       OPC_EmitConvertToTarget, 2,
/*52273*/       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)
/*52287*/     0, /*End of Scope*/
/*52288*/   /*Scope*/ 112, /*->52401*/
/*52289*/     OPC_RecordChild0, // #0 = physreg input AL
/*52290*/     OPC_MoveChild, 1,
/*52292*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*52295*/     OPC_RecordMemRef,
/*52296*/     OPC_RecordNode, // #1 = 'ld' chained node
/*52297*/     OPC_CheckFoldableChainNode,
/*52298*/     OPC_RecordChild1, // #2 = $src
/*52299*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*52301*/     OPC_Scope, 25, /*->52328*/ // 4 children in Scope
/*52303*/       OPC_CheckPredicate, 3, // Predicate_load
/*52305*/       OPC_MoveParent,
/*52306*/       OPC_CheckType, MVT::i8,
/*52308*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src #3 #4 #5 #6 #7
/*52311*/       OPC_EmitMergeInputChains1_1,
/*52312*/       OPC_EmitCopyToReg, 0, X86::AL,
/*52315*/       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)
/*52328*/     /*Scope*/ 23, /*->52352*/
/*52329*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*52331*/       OPC_MoveParent,
/*52332*/       OPC_CheckType, MVT::i16,
/*52334*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*52337*/       OPC_EmitMergeInputChains1_1,
/*52338*/       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)
/*52352*/     /*Scope*/ 23, /*->52376*/
/*52353*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*52355*/       OPC_MoveParent,
/*52356*/       OPC_CheckType, MVT::i32,
/*52358*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*52361*/       OPC_EmitMergeInputChains1_1,
/*52362*/       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)
/*52376*/     /*Scope*/ 23, /*->52400*/
/*52377*/       OPC_CheckPredicate, 3, // Predicate_load
/*52379*/       OPC_MoveParent,
/*52380*/       OPC_CheckType, MVT::i64,
/*52382*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*52385*/       OPC_EmitMergeInputChains1_1,
/*52386*/       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)
/*52400*/     0, /*End of Scope*/
/*52401*/   /*Scope*/ 88, /*->52490*/
/*52402*/     OPC_MoveChild, 0,
/*52404*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*52407*/     OPC_RecordMemRef,
/*52408*/     OPC_RecordNode, // #0 = 'ld' chained node
/*52409*/     OPC_CheckFoldableChainNode,
/*52410*/     OPC_RecordChild1, // #1 = $src2
/*52411*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*52413*/     OPC_Scope, 24, /*->52439*/ // 3 children in Scope
/*52415*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*52417*/       OPC_MoveParent,
/*52418*/       OPC_RecordChild1, // #2 = $src1
/*52419*/       OPC_CheckType, MVT::i16,
/*52421*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*52424*/       OPC_EmitMergeInputChains1_0,
/*52425*/       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)
/*52439*/     /*Scope*/ 24, /*->52464*/
/*52440*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*52442*/       OPC_MoveParent,
/*52443*/       OPC_RecordChild1, // #2 = $src1
/*52444*/       OPC_CheckType, MVT::i32,
/*52446*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*52449*/       OPC_EmitMergeInputChains1_0,
/*52450*/       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)
/*52464*/     /*Scope*/ 24, /*->52489*/
/*52465*/       OPC_CheckPredicate, 3, // Predicate_load
/*52467*/       OPC_MoveParent,
/*52468*/       OPC_RecordChild1, // #2 = $src1
/*52469*/       OPC_CheckType, MVT::i64,
/*52471*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*52474*/       OPC_EmitMergeInputChains1_0,
/*52475*/       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)
/*52489*/     0, /*End of Scope*/
/*52490*/   /*Scope*/ 60, /*->52551*/
/*52491*/     OPC_RecordNode, // #0 = $src
/*52492*/     OPC_SwitchType /*2 cases */, 38,  MVT::i32,// ->52533
/*52495*/       OPC_Scope, 17, /*->52514*/ // 2 children in Scope
/*52497*/         OPC_CheckPatternPredicate, 3, // (!Subtarget->is64Bit())
/*52499*/         OPC_CheckComplexPat, /*CP*/3, /*#*/0, // SelectLEAAddr:$src #1 #2 #3 #4 #5
/*52502*/         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)
/*52514*/       /*Scope*/ 17, /*->52532*/
/*52515*/         OPC_CheckPatternPredicate, 4, // (Subtarget->is64Bit())
/*52517*/         OPC_CheckComplexPat, /*CP*/3, /*#*/0, // SelectLEAAddr:$src #1 #2 #3 #4 #5
/*52520*/         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)
/*52532*/       0, /*End of Scope*/
              /*SwitchType*/ 15,  MVT::i64,// ->52550
/*52535*/       OPC_CheckComplexPat, /*CP*/4, /*#*/0, // SelectLEAAddr:$src #1 #2 #3 #4 #5
/*52538*/       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
/*52551*/   /*Scope*/ 33|128,2/*289*/, /*->52842*/
/*52553*/     OPC_RecordChild0, // #0 = $src1
/*52554*/     OPC_Scope, 41|128,1/*169*/, /*->52726*/ // 2 children in Scope
/*52557*/       OPC_RecordChild1, // #1 = $src2
/*52558*/       OPC_Scope, 111, /*->52671*/ // 5 children in Scope
/*52560*/         OPC_MoveChild, 1,
/*52562*/         OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*52565*/         OPC_Scope, 17, /*->52584*/ // 5 children in Scope
/*52567*/           OPC_CheckPredicate, 8, // Predicate_i16immSExt8
/*52569*/           OPC_MoveParent,
/*52570*/           OPC_CheckType, MVT::i16,
/*52572*/           OPC_EmitConvertToTarget, 1,
/*52574*/           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)
/*52584*/         /*Scope*/ 17, /*->52602*/
/*52585*/           OPC_CheckPredicate, 9, // Predicate_i32immSExt8
/*52587*/           OPC_MoveParent,
/*52588*/           OPC_CheckType, MVT::i32,
/*52590*/           OPC_EmitConvertToTarget, 1,
/*52592*/           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)
/*52602*/         /*Scope*/ 17, /*->52620*/
/*52603*/           OPC_CheckPredicate, 10, // Predicate_i64immSExt8
/*52605*/           OPC_MoveParent,
/*52606*/           OPC_CheckType, MVT::i64,
/*52608*/           OPC_EmitConvertToTarget, 1,
/*52610*/           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)
/*52620*/         /*Scope*/ 17, /*->52638*/
/*52621*/           OPC_CheckPredicate, 11, // Predicate_i64immSExt32
/*52623*/           OPC_MoveParent,
/*52624*/           OPC_CheckType, MVT::i64,
/*52626*/           OPC_EmitConvertToTarget, 1,
/*52628*/           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)
/*52638*/         /*Scope*/ 31, /*->52670*/
/*52639*/           OPC_MoveParent,
/*52640*/           OPC_SwitchType /*2 cases */, 12,  MVT::i16,// ->52655
/*52643*/             OPC_EmitConvertToTarget, 1,
/*52645*/             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,// ->52669
/*52657*/             OPC_EmitConvertToTarget, 1,
/*52659*/             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
/*52670*/         0, /*End of Scope*/
/*52671*/       /*Scope*/ 14, /*->52686*/
/*52672*/         OPC_CheckType, MVT::i8,
/*52674*/         OPC_EmitCopyToReg, 0, X86::AL,
/*52677*/         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)
/*52686*/       /*Scope*/ 12, /*->52699*/
/*52687*/         OPC_CheckType, MVT::i16,
/*52689*/         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)
/*52699*/       /*Scope*/ 12, /*->52712*/
/*52700*/         OPC_CheckType, MVT::i32,
/*52702*/         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)
/*52712*/       /*Scope*/ 12, /*->52725*/
/*52713*/         OPC_CheckType, MVT::i64,
/*52715*/         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)
/*52725*/       0, /*End of Scope*/
/*52726*/     /*Scope*/ 114, /*->52841*/
/*52727*/       OPC_MoveChild, 1,
/*52729*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*52732*/       OPC_MoveChild, 0,
/*52734*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*52737*/       OPC_RecordMemRef,
/*52738*/       OPC_RecordNode, // #1 = 'ld' chained node
/*52739*/       OPC_CheckFoldableChainNode,
/*52740*/       OPC_RecordChild1, // #2 = $src2
/*52741*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*52743*/       OPC_CheckPredicate, 3, // Predicate_load
/*52745*/       OPC_CheckPredicate, 23, // Predicate_memop
/*52747*/       OPC_CheckType, MVT::v2i64,
/*52749*/       OPC_MoveParent,
/*52750*/       OPC_MoveParent,
/*52751*/       OPC_SwitchType /*2 cases */, 42,  MVT::v8i16,// ->52796
/*52754*/         OPC_Scope, 19, /*->52775*/ // 2 children in Scope
/*52756*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*52758*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*52761*/           OPC_EmitMergeInputChains1_1,
/*52762*/           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)
/*52775*/         /*Scope*/ 19, /*->52795*/
/*52776*/           OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*52778*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*52781*/           OPC_EmitMergeInputChains1_1,
/*52782*/           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)
/*52795*/         0, /*End of Scope*/
                /*SwitchType*/ 42,  MVT::v4i32,// ->52840
/*52798*/         OPC_Scope, 19, /*->52819*/ // 2 children in Scope
/*52800*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*52802*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*52805*/           OPC_EmitMergeInputChains1_1,
/*52806*/           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)
/*52819*/         /*Scope*/ 19, /*->52839*/
/*52820*/           OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*52822*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*52825*/           OPC_EmitMergeInputChains1_1,
/*52826*/           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)
/*52839*/         0, /*End of Scope*/
                0, // EndSwitchType
/*52841*/     0, /*End of Scope*/
/*52842*/   /*Scope*/ 115, /*->52958*/
/*52843*/     OPC_MoveChild, 0,
/*52845*/     OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*52848*/     OPC_MoveChild, 0,
/*52850*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*52853*/     OPC_RecordMemRef,
/*52854*/     OPC_RecordNode, // #0 = 'ld' chained node
/*52855*/     OPC_CheckFoldableChainNode,
/*52856*/     OPC_RecordChild1, // #1 = $src2
/*52857*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*52859*/     OPC_CheckPredicate, 3, // Predicate_load
/*52861*/     OPC_CheckPredicate, 23, // Predicate_memop
/*52863*/     OPC_CheckType, MVT::v2i64,
/*52865*/     OPC_MoveParent,
/*52866*/     OPC_MoveParent,
/*52867*/     OPC_RecordChild1, // #2 = $src1
/*52868*/     OPC_SwitchType /*2 cases */, 42,  MVT::v8i16,// ->52913
/*52871*/       OPC_Scope, 19, /*->52892*/ // 2 children in Scope
/*52873*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*52875*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*52878*/         OPC_EmitMergeInputChains1_0,
/*52879*/         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)
/*52892*/       /*Scope*/ 19, /*->52912*/
/*52893*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*52895*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*52898*/         OPC_EmitMergeInputChains1_0,
/*52899*/         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)
/*52912*/       0, /*End of Scope*/
              /*SwitchType*/ 42,  MVT::v4i32,// ->52957
/*52915*/       OPC_Scope, 19, /*->52936*/ // 2 children in Scope
/*52917*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*52919*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*52922*/         OPC_EmitMergeInputChains1_0,
/*52923*/         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)
/*52936*/       /*Scope*/ 19, /*->52956*/
/*52937*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*52939*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*52942*/         OPC_EmitMergeInputChains1_0,
/*52943*/         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)
/*52956*/       0, /*End of Scope*/
              0, // EndSwitchType
/*52958*/   /*Scope*/ 60, /*->53019*/
/*52959*/     OPC_RecordChild0, // #0 = $src1
/*52960*/     OPC_RecordChild1, // #1 = $src2
/*52961*/     OPC_SwitchType /*2 cases */, 26,  MVT::v8i16,// ->52990
/*52964*/       OPC_Scope, 11, /*->52977*/ // 2 children in Scope
/*52966*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*52968*/         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)
/*52977*/       /*Scope*/ 11, /*->52989*/
/*52978*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*52980*/         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)
/*52989*/       0, /*End of Scope*/
              /*SwitchType*/ 26,  MVT::v4i32,// ->53018
/*52992*/       OPC_Scope, 11, /*->53005*/ // 2 children in Scope
/*52994*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*52996*/         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)
/*53005*/       /*Scope*/ 11, /*->53017*/
/*53006*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*53008*/         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)
/*53017*/       0, /*End of Scope*/
              0, // EndSwitchType
/*53019*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 112|128,1/*240*/,  TARGET_VAL(X86ISD::TC_RETURN),// ->53264
/*53024*/   OPC_RecordNode,   // #0 = 'X86tcret' chained node
/*53025*/   OPC_CaptureGlueInput,
/*53026*/   OPC_Scope, 73, /*->53101*/ // 2 children in Scope
/*53028*/     OPC_MoveChild, 1,
/*53030*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*53033*/     OPC_RecordMemRef,
/*53034*/     OPC_RecordNode, // #1 = 'ld' chained node
/*53035*/     OPC_CheckFoldableChainNode,
/*53036*/     OPC_RecordChild1, // #2 = $dst
/*53037*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*53039*/     OPC_CheckPredicate, 3, // Predicate_load
/*53041*/     OPC_MoveParent,
/*53042*/     OPC_RecordChild2, // #3 = $off
/*53043*/     OPC_MoveChild, 2,
/*53045*/     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*53048*/     OPC_MoveParent,
/*53049*/     OPC_Scope, 24, /*->53075*/ // 2 children in Scope
/*53051*/       OPC_CheckPatternPredicate, 21, // (!Subtarget->is64Bit()) && (TM.getRelocationModel() != Reloc::PIC_)
/*53053*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #4 #5 #6 #7 #8
/*53056*/       OPC_EmitMergeInputChains, 2, 0, 1, 
/*53060*/       OPC_EmitConvertToTarget, 3,
/*53062*/       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)
/*53075*/     /*Scope*/ 24, /*->53100*/
/*53076*/       OPC_CheckPatternPredicate, 4, // (Subtarget->is64Bit())
/*53078*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #4 #5 #6 #7 #8
/*53081*/       OPC_EmitMergeInputChains, 2, 0, 1, 
/*53085*/       OPC_EmitConvertToTarget, 3,
/*53087*/       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)
/*53100*/     0, /*End of Scope*/
/*53101*/   /*Scope*/ 32|128,1/*160*/, /*->53263*/
/*53103*/     OPC_RecordChild1, // #1 = $dst
/*53104*/     OPC_Scope, 110, /*->53216*/ // 3 children in Scope
/*53106*/       OPC_MoveChild, 1,
/*53108*/       OPC_SwitchOpcode /*2 cases */, 50,  TARGET_VAL(ISD::TargetGlobalAddress),// ->53162
/*53112*/         OPC_SwitchType /*2 cases */, 22,  MVT::i32,// ->53137
/*53115*/           OPC_MoveParent,
/*53116*/           OPC_RecordChild2, // #2 = $off
/*53117*/           OPC_MoveChild, 2,
/*53119*/           OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*53122*/           OPC_MoveParent,
/*53123*/           OPC_CheckPatternPredicate, 3, // (!Subtarget->is64Bit())
/*53125*/           OPC_EmitMergeInputChains1_0,
/*53126*/           OPC_EmitConvertToTarget, 2,
/*53128*/           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,// ->53161
/*53139*/           OPC_MoveParent,
/*53140*/           OPC_RecordChild2, // #2 = $off
/*53141*/           OPC_MoveChild, 2,
/*53143*/           OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*53146*/           OPC_MoveParent,
/*53147*/           OPC_CheckPatternPredicate, 4, // (Subtarget->is64Bit())
/*53149*/           OPC_EmitMergeInputChains1_0,
/*53150*/           OPC_EmitConvertToTarget, 2,
/*53152*/           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),// ->53215
/*53165*/         OPC_SwitchType /*2 cases */, 22,  MVT::i32,// ->53190
/*53168*/           OPC_MoveParent,
/*53169*/           OPC_RecordChild2, // #2 = $off
/*53170*/           OPC_MoveChild, 2,
/*53172*/           OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*53175*/           OPC_MoveParent,
/*53176*/           OPC_CheckPatternPredicate, 3, // (!Subtarget->is64Bit())
/*53178*/           OPC_EmitMergeInputChains1_0,
/*53179*/           OPC_EmitConvertToTarget, 2,
/*53181*/           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,// ->53214
/*53192*/           OPC_MoveParent,
/*53193*/           OPC_RecordChild2, // #2 = $off
/*53194*/           OPC_MoveChild, 2,
/*53196*/           OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*53199*/           OPC_MoveParent,
/*53200*/           OPC_CheckPatternPredicate, 4, // (Subtarget->is64Bit())
/*53202*/           OPC_EmitMergeInputChains1_0,
/*53203*/           OPC_EmitConvertToTarget, 2,
/*53205*/           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
/*53216*/     /*Scope*/ 23, /*->53240*/
/*53217*/       OPC_CheckChild1Type, MVT::i32,
/*53219*/       OPC_RecordChild2, // #2 = $off
/*53220*/       OPC_MoveChild, 2,
/*53222*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*53225*/       OPC_MoveParent,
/*53226*/       OPC_CheckPatternPredicate, 3, // (!Subtarget->is64Bit())
/*53228*/       OPC_EmitMergeInputChains1_0,
/*53229*/       OPC_EmitConvertToTarget, 2,
/*53231*/       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)
/*53240*/     /*Scope*/ 21, /*->53262*/
/*53241*/       OPC_RecordChild2, // #2 = $off
/*53242*/       OPC_MoveChild, 2,
/*53244*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*53247*/       OPC_MoveParent,
/*53248*/       OPC_CheckPatternPredicate, 4, // (Subtarget->is64Bit())
/*53250*/       OPC_EmitMergeInputChains1_0,
/*53251*/       OPC_EmitConvertToTarget, 2,
/*53253*/       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)
/*53262*/     0, /*End of Scope*/
/*53263*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 110|128,6/*878*/,  TARGET_VAL(ISD::INTRINSIC_VOID),// ->54146
/*53268*/   OPC_RecordNode,   // #0 = 'intrinsic_void' chained node
/*53269*/   OPC_MoveChild, 1,
/*53271*/   OPC_Scope, 22, /*->53295*/ // 30 children in Scope
/*53273*/     OPC_CheckInteger, 38|128,1/*166*/, 
/*53276*/     OPC_MoveParent,
/*53277*/     OPC_RecordChild2, // #1 = $dst
/*53278*/     OPC_RecordChild3, // #2 = $src
/*53279*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$dst #3 #4 #5 #6 #7
/*53282*/     OPC_EmitMergeInputChains1_0,
/*53283*/     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)
/*53295*/   /*Scope*/ 22, /*->53318*/
/*53296*/     OPC_CheckInteger, 37|128,1/*165*/, 
/*53299*/     OPC_MoveParent,
/*53300*/     OPC_RecordChild2, // #1 = $dst
/*53301*/     OPC_RecordChild3, // #2 = $src
/*53302*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$dst #3 #4 #5 #6 #7
/*53305*/     OPC_EmitMergeInputChains1_0,
/*53306*/     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)
/*53318*/   /*Scope*/ 46, /*->53365*/
/*53319*/     OPC_CheckInteger, 101|128,3/*485*/, 
/*53322*/     OPC_MoveParent,
/*53323*/     OPC_RecordChild2, // #1 = $dst
/*53324*/     OPC_RecordChild3, // #2 = $src
/*53325*/     OPC_Scope, 18, /*->53345*/ // 2 children in Scope
/*53327*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*53329*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$dst #3 #4 #5 #6 #7
/*53332*/       OPC_EmitMergeInputChains1_0,
/*53333*/       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)
/*53345*/     /*Scope*/ 18, /*->53364*/
/*53346*/       OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*53348*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$dst #3 #4 #5 #6 #7
/*53351*/       OPC_EmitMergeInputChains1_0,
/*53352*/       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)
/*53364*/     0, /*End of Scope*/
/*53365*/   /*Scope*/ 46, /*->53412*/
/*53366*/     OPC_CheckInteger, 108|128,2/*364*/, 
/*53369*/     OPC_MoveParent,
/*53370*/     OPC_RecordChild2, // #1 = $dst
/*53371*/     OPC_RecordChild3, // #2 = $src
/*53372*/     OPC_Scope, 18, /*->53392*/ // 2 children in Scope
/*53374*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*53376*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$dst #3 #4 #5 #6 #7
/*53379*/       OPC_EmitMergeInputChains1_0,
/*53380*/       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)
/*53392*/     /*Scope*/ 18, /*->53411*/
/*53393*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*53395*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$dst #3 #4 #5 #6 #7
/*53398*/       OPC_EmitMergeInputChains1_0,
/*53399*/       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)
/*53411*/     0, /*End of Scope*/
/*53412*/   /*Scope*/ 22, /*->53435*/
/*53413*/     OPC_CheckInteger, 24|128,1/*152*/, 
/*53416*/     OPC_MoveParent,
/*53417*/     OPC_RecordChild2, // #1 = $dst
/*53418*/     OPC_RecordChild3, // #2 = $src
/*53419*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$dst #3 #4 #5 #6 #7
/*53422*/     OPC_EmitMergeInputChains1_0,
/*53423*/     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)
/*53435*/   /*Scope*/ 22, /*->53458*/
/*53436*/     OPC_CheckInteger, 25|128,1/*153*/, 
/*53439*/     OPC_MoveParent,
/*53440*/     OPC_RecordChild2, // #1 = $dst
/*53441*/     OPC_RecordChild3, // #2 = $src
/*53442*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$dst #3 #4 #5 #6 #7
/*53445*/     OPC_EmitMergeInputChains1_0,
/*53446*/     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)
/*53458*/   /*Scope*/ 22, /*->53481*/
/*53459*/     OPC_CheckInteger, 26|128,1/*154*/, 
/*53462*/     OPC_MoveParent,
/*53463*/     OPC_RecordChild2, // #1 = $dst
/*53464*/     OPC_RecordChild3, // #2 = $src
/*53465*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$dst #3 #4 #5 #6 #7
/*53468*/     OPC_EmitMergeInputChains1_0,
/*53469*/     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)
/*53481*/   /*Scope*/ 22, /*->53504*/
/*53482*/     OPC_CheckInteger, 20|128,2/*276*/, 
/*53485*/     OPC_MoveParent,
/*53486*/     OPC_RecordChild2, // #1 = $src
/*53487*/     OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*53489*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*53492*/     OPC_EmitMergeInputChains1_0,
/*53493*/     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)
/*53504*/   /*Scope*/ 43, /*->53548*/
/*53505*/     OPC_CheckInteger, 85|128,3/*469*/, 
/*53508*/     OPC_MoveParent,
/*53509*/     OPC_RecordChild2, // #1 = $src
/*53510*/     OPC_Scope, 17, /*->53529*/ // 2 children in Scope
/*53512*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*53514*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*53517*/       OPC_EmitMergeInputChains1_0,
/*53518*/       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)
/*53529*/     /*Scope*/ 17, /*->53547*/
/*53530*/       OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*53532*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*53535*/       OPC_EmitMergeInputChains1_0,
/*53536*/       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)
/*53547*/     0, /*End of Scope*/
/*53548*/   /*Scope*/ 43, /*->53592*/
/*53549*/     OPC_CheckInteger, 100|128,3/*484*/, 
/*53552*/     OPC_MoveParent,
/*53553*/     OPC_RecordChild2, // #1 = $dst
/*53554*/     OPC_Scope, 17, /*->53573*/ // 2 children in Scope
/*53556*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*53558*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$dst #2 #3 #4 #5 #6
/*53561*/       OPC_EmitMergeInputChains1_0,
/*53562*/       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)
/*53573*/     /*Scope*/ 17, /*->53591*/
/*53574*/       OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*53576*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$dst #2 #3 #4 #5 #6
/*53579*/       OPC_EmitMergeInputChains1_0,
/*53580*/       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)
/*53591*/     0, /*End of Scope*/
/*53592*/   /*Scope*/ 46, /*->53639*/
/*53593*/     OPC_CheckInteger, 107|128,2/*363*/, 
/*53596*/     OPC_MoveParent,
/*53597*/     OPC_RecordChild2, // #1 = $dst
/*53598*/     OPC_RecordChild3, // #2 = $src
/*53599*/     OPC_Scope, 18, /*->53619*/ // 2 children in Scope
/*53601*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*53603*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$dst #3 #4 #5 #6 #7
/*53606*/       OPC_EmitMergeInputChains1_0,
/*53607*/       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)
/*53619*/     /*Scope*/ 18, /*->53638*/
/*53620*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*53622*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$dst #3 #4 #5 #6 #7
/*53625*/       OPC_EmitMergeInputChains1_0,
/*53626*/       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)
/*53638*/     0, /*End of Scope*/
/*53639*/   /*Scope*/ 24, /*->53664*/
/*53640*/     OPC_CheckInteger, 36|128,1/*164*/, 
/*53643*/     OPC_MoveParent,
/*53644*/     OPC_RecordChild2, // #1 = $dst
/*53645*/     OPC_RecordChild3, // #2 = $src
/*53646*/     OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*53648*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$dst #3 #4 #5 #6 #7
/*53651*/     OPC_EmitMergeInputChains1_0,
/*53652*/     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)
/*53664*/   /*Scope*/ 46, /*->53711*/
/*53665*/     OPC_CheckInteger, 106|128,2/*362*/, 
/*53668*/     OPC_MoveParent,
/*53669*/     OPC_RecordChild2, // #1 = $dst
/*53670*/     OPC_RecordChild3, // #2 = $src
/*53671*/     OPC_Scope, 18, /*->53691*/ // 2 children in Scope
/*53673*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*53675*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$dst #3 #4 #5 #6 #7
/*53678*/       OPC_EmitMergeInputChains1_0,
/*53679*/       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)
/*53691*/     /*Scope*/ 18, /*->53710*/
/*53692*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*53694*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$dst #3 #4 #5 #6 #7
/*53697*/       OPC_EmitMergeInputChains1_0,
/*53698*/       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)
/*53710*/     0, /*End of Scope*/
/*53711*/   /*Scope*/ 26, /*->53738*/
/*53712*/     OPC_CheckInteger, 16|128,1/*144*/, 
/*53715*/     OPC_MoveParent,
/*53716*/     OPC_RecordChild2, // #1 = $dst
/*53717*/     OPC_RecordChild3, // #2 = $src1
/*53718*/     OPC_RecordChild4, // #3 = $src2
/*53719*/     OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*53721*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$dst #4 #5 #6 #7 #8
/*53724*/     OPC_EmitMergeInputChains1_0,
/*53725*/     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)
/*53738*/   /*Scope*/ 26, /*->53765*/
/*53739*/     OPC_CheckInteger, 17|128,1/*145*/, 
/*53742*/     OPC_MoveParent,
/*53743*/     OPC_RecordChild2, // #1 = $dst
/*53744*/     OPC_RecordChild3, // #2 = $src1
/*53745*/     OPC_RecordChild4, // #3 = $src2
/*53746*/     OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*53748*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$dst #4 #5 #6 #7 #8
/*53751*/     OPC_EmitMergeInputChains1_0,
/*53752*/     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)
/*53765*/   /*Scope*/ 26, /*->53792*/
/*53766*/     OPC_CheckInteger, 14|128,1/*142*/, 
/*53769*/     OPC_MoveParent,
/*53770*/     OPC_RecordChild2, // #1 = $dst
/*53771*/     OPC_RecordChild3, // #2 = $src1
/*53772*/     OPC_RecordChild4, // #3 = $src2
/*53773*/     OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*53775*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$dst #4 #5 #6 #7 #8
/*53778*/     OPC_EmitMergeInputChains1_0,
/*53779*/     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)
/*53792*/   /*Scope*/ 26, /*->53819*/
/*53793*/     OPC_CheckInteger, 15|128,1/*143*/, 
/*53796*/     OPC_MoveParent,
/*53797*/     OPC_RecordChild2, // #1 = $dst
/*53798*/     OPC_RecordChild3, // #2 = $src1
/*53799*/     OPC_RecordChild4, // #3 = $src2
/*53800*/     OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*53802*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$dst #4 #5 #6 #7 #8
/*53805*/     OPC_EmitMergeInputChains1_0,
/*53806*/     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)
/*53819*/   /*Scope*/ 24, /*->53844*/
/*53820*/     OPC_CheckInteger, 79|128,1/*207*/, 
/*53823*/     OPC_MoveParent,
/*53824*/     OPC_RecordChild2, // #1 = $dst
/*53825*/     OPC_RecordChild3, // #2 = $src
/*53826*/     OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*53828*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$dst #3 #4 #5 #6 #7
/*53831*/     OPC_EmitMergeInputChains1_0,
/*53832*/     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)
/*53844*/   /*Scope*/ 24, /*->53869*/
/*53845*/     OPC_CheckInteger, 123|128,2/*379*/, 
/*53848*/     OPC_MoveParent,
/*53849*/     OPC_RecordChild2, // #1 = $src1
/*53850*/     OPC_RecordChild3, // #2 = $src2
/*53851*/     OPC_RecordChild4, // #3 = $src3
/*53852*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #4 #5 #6 #7 #8
/*53855*/     OPC_EmitMergeInputChains1_0,
/*53856*/     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)
/*53869*/   /*Scope*/ 37, /*->53907*/
/*53870*/     OPC_CheckInteger, 75|128,1/*203*/, 
/*53873*/     OPC_MoveParent,
/*53874*/     OPC_Scope, 12, /*->53888*/ // 2 children in Scope
/*53876*/       OPC_MoveChild, 2,
/*53878*/       OPC_CheckInteger, 3, 
/*53880*/       OPC_MoveParent,
/*53881*/       OPC_EmitMergeInputChains1_0,
/*53882*/       OPC_MorphNodeTo, TARGET_VAL(X86::INT3), 0|OPFL_Chain,
                    0/*#VTs*/, 0/*#Ops*/, 
                // Src: (intrinsic_void 203:iPTR, 3:i8) - Complexity = 13
                // Dst: (INT3)
/*53888*/     /*Scope*/ 17, /*->53906*/
/*53889*/       OPC_RecordChild2, // #1 = $trap
/*53890*/       OPC_MoveChild, 2,
/*53892*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*53895*/       OPC_MoveParent,
/*53896*/       OPC_EmitMergeInputChains1_0,
/*53897*/       OPC_EmitConvertToTarget, 1,
/*53899*/       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)
/*53906*/     0, /*End of Scope*/
/*53907*/   /*Scope*/ 13, /*->53921*/
/*53908*/     OPC_CheckInteger, 97|128,3/*481*/, 
/*53911*/     OPC_MoveParent,
/*53912*/     OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*53914*/     OPC_EmitMergeInputChains1_0,
/*53915*/     OPC_MorphNodeTo, TARGET_VAL(X86::SFENCE), 0|OPFL_Chain,
                  0/*#VTs*/, 0/*#Ops*/, 
              // Src: (intrinsic_void 481:iPTR) - Complexity = 8
              // Dst: (SFENCE)
/*53921*/   /*Scope*/ 13, /*->53935*/
/*53922*/     OPC_CheckInteger, 46|128,2/*302*/, 
/*53925*/     OPC_MoveParent,
/*53926*/     OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*53928*/     OPC_EmitMergeInputChains1_0,
/*53929*/     OPC_MorphNodeTo, TARGET_VAL(X86::LFENCE), 0|OPFL_Chain,
                  0/*#VTs*/, 0/*#Ops*/, 
              // Src: (intrinsic_void 302:iPTR) - Complexity = 8
              // Dst: (LFENCE)
/*53935*/   /*Scope*/ 13, /*->53949*/
/*53936*/     OPC_CheckInteger, 50|128,2/*306*/, 
/*53939*/     OPC_MoveParent,
/*53940*/     OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*53942*/     OPC_EmitMergeInputChains1_0,
/*53943*/     OPC_MorphNodeTo, TARGET_VAL(X86::MFENCE), 0|OPFL_Chain,
                  0/*#VTs*/, 0/*#Ops*/, 
              // Src: (intrinsic_void 306:iPTR) - Complexity = 8
              // Dst: (MFENCE)
/*53949*/   /*Scope*/ 79, /*->54029*/
/*53950*/     OPC_CheckInteger, 47|128,2/*303*/, 
/*53953*/     OPC_MoveParent,
/*53954*/     OPC_RecordChild2, // #1 = $src
/*53955*/     OPC_RecordChild3, // #2 = $mask
/*53956*/     OPC_RecordChild4, // #3 = physreg input EDI
/*53957*/     OPC_Scope, 34, /*->53993*/ // 2 children in Scope
/*53959*/       OPC_CheckChild4Type, MVT::i32,
/*53961*/       OPC_Scope, 14, /*->53977*/ // 2 children in Scope
/*53963*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*53965*/         OPC_EmitMergeInputChains1_0,
/*53966*/         OPC_EmitCopyToReg, 3, X86::EDI,
/*53969*/         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)
/*53977*/       /*Scope*/ 14, /*->53992*/
/*53978*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*53980*/         OPC_EmitMergeInputChains1_0,
/*53981*/         OPC_EmitCopyToReg, 3, X86::EDI,
/*53984*/         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)
/*53992*/       0, /*End of Scope*/
/*53993*/     /*Scope*/ 34, /*->54028*/
/*53994*/       OPC_CheckChild4Type, MVT::i64,
/*53996*/       OPC_Scope, 14, /*->54012*/ // 2 children in Scope
/*53998*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*54000*/         OPC_EmitMergeInputChains1_0,
/*54001*/         OPC_EmitCopyToReg, 3, X86::RDI,
/*54004*/         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)
/*54012*/       /*Scope*/ 14, /*->54027*/
/*54013*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*54015*/         OPC_EmitMergeInputChains1_0,
/*54016*/         OPC_EmitCopyToReg, 3, X86::RDI,
/*54019*/         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)
/*54027*/       0, /*End of Scope*/
/*54028*/     0, /*End of Scope*/
/*54029*/   /*Scope*/ 13, /*->54043*/
/*54030*/     OPC_CheckInteger, 73|128,1/*201*/, 
/*54033*/     OPC_MoveParent,
/*54034*/     OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*54036*/     OPC_EmitMergeInputChains1_0,
/*54037*/     OPC_MorphNodeTo, TARGET_VAL(X86::VZEROALL), 0|OPFL_Chain,
                  0/*#VTs*/, 0/*#Ops*/, 
              // Src: (intrinsic_void 201:iPTR) - Complexity = 8
              // Dst: (VZEROALL)
/*54043*/   /*Scope*/ 13, /*->54057*/
/*54044*/     OPC_CheckInteger, 74|128,1/*202*/, 
/*54047*/     OPC_MoveParent,
/*54048*/     OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*54050*/     OPC_EmitMergeInputChains1_0,
/*54051*/     OPC_MorphNodeTo, TARGET_VAL(X86::VZEROUPPER), 0|OPFL_Chain,
                  0/*#VTs*/, 0/*#Ops*/, 
              // Src: (intrinsic_void 202:iPTR) - Complexity = 8
              // Dst: (VZEROUPPER)
/*54057*/   /*Scope*/ 13, /*->54071*/
/*54058*/     OPC_CheckInteger, 76|128,1/*204*/, 
/*54061*/     OPC_MoveParent,
/*54062*/     OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*54064*/     OPC_EmitMergeInputChains1_0,
/*54065*/     OPC_MorphNodeTo, TARGET_VAL(X86::MMX_EMMS), 0|OPFL_Chain,
                  0/*#VTs*/, 0/*#Ops*/, 
              // Src: (intrinsic_void 204:iPTR) - Complexity = 8
              // Dst: (MMX_EMMS)
/*54071*/   /*Scope*/ 43, /*->54115*/
/*54072*/     OPC_CheckInteger, 78|128,1/*206*/, 
/*54075*/     OPC_MoveParent,
/*54076*/     OPC_RecordChild2, // #1 = $src
/*54077*/     OPC_RecordChild3, // #2 = $mask
/*54078*/     OPC_RecordChild4, // #3 = physreg input EDI
/*54079*/     OPC_Scope, 16, /*->54097*/ // 2 children in Scope
/*54081*/       OPC_CheckChild4Type, MVT::i32,
/*54083*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*54085*/       OPC_EmitMergeInputChains1_0,
/*54086*/       OPC_EmitCopyToReg, 3, X86::EDI,
/*54089*/       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)
/*54097*/     /*Scope*/ 16, /*->54114*/
/*54098*/       OPC_CheckChild4Type, MVT::i64,
/*54100*/       OPC_CheckPatternPredicate, 22, // (Subtarget->hasMMX()) && (Subtarget->is64Bit())
/*54102*/       OPC_EmitMergeInputChains1_0,
/*54103*/       OPC_EmitCopyToReg, 3, X86::RDI,
/*54106*/       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)
/*54114*/     0, /*End of Scope*/
/*54115*/   /*Scope*/ 13, /*->54129*/
/*54116*/     OPC_CheckInteger, 77|128,1/*205*/, 
/*54119*/     OPC_MoveParent,
/*54120*/     OPC_CheckPatternPredicate, 13, // (Subtarget->has3DNow())
/*54122*/     OPC_EmitMergeInputChains1_0,
/*54123*/     OPC_MorphNodeTo, TARGET_VAL(X86::FEMMS), 0|OPFL_Chain,
                  0/*#VTs*/, 0/*#Ops*/, 
              // Src: (intrinsic_void 205:iPTR) - Complexity = 8
              // Dst: (FEMMS)
/*54129*/   /*Scope*/ 15, /*->54145*/
/*54130*/     OPC_CheckInteger, 124|128,2/*380*/, 
/*54133*/     OPC_MoveParent,
/*54134*/     OPC_RecordChild2, // #1 = $src1
/*54135*/     OPC_RecordChild3, // #2 = $src2
/*54136*/     OPC_EmitMergeInputChains1_0,
/*54137*/     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)
/*54145*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 107,  TARGET_VAL(X86ISD::LCMPXCHG_DAG),// ->54256
/*54149*/   OPC_RecordMemRef,
/*54150*/   OPC_RecordNode,   // #0 = 'X86cas' chained node
/*54151*/   OPC_CaptureGlueInput,
/*54152*/   OPC_RecordChild1, // #1 = $ptr
/*54153*/   OPC_RecordChild2, // #2 = $swap
/*54154*/   OPC_Scope, 24, /*->54180*/ // 4 children in Scope
/*54156*/     OPC_CheckChild2Type, MVT::i8,
/*54158*/     OPC_MoveChild, 3,
/*54160*/     OPC_CheckInteger, 1, 
/*54162*/     OPC_MoveParent,
/*54163*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$ptr #3 #4 #5 #6 #7
/*54166*/     OPC_EmitMergeInputChains1_0,
/*54167*/     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)
/*54180*/   /*Scope*/ 24, /*->54205*/
/*54181*/     OPC_CheckChild2Type, MVT::i16,
/*54183*/     OPC_MoveChild, 3,
/*54185*/     OPC_CheckInteger, 2, 
/*54187*/     OPC_MoveParent,
/*54188*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$ptr #3 #4 #5 #6 #7
/*54191*/     OPC_EmitMergeInputChains1_0,
/*54192*/     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)
/*54205*/   /*Scope*/ 24, /*->54230*/
/*54206*/     OPC_CheckChild2Type, MVT::i32,
/*54208*/     OPC_MoveChild, 3,
/*54210*/     OPC_CheckInteger, 4, 
/*54212*/     OPC_MoveParent,
/*54213*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$ptr #3 #4 #5 #6 #7
/*54216*/     OPC_EmitMergeInputChains1_0,
/*54217*/     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)
/*54230*/   /*Scope*/ 24, /*->54255*/
/*54231*/     OPC_CheckChild2Type, MVT::i64,
/*54233*/     OPC_MoveChild, 3,
/*54235*/     OPC_CheckInteger, 8, 
/*54237*/     OPC_MoveParent,
/*54238*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$ptr #3 #4 #5 #6 #7
/*54241*/     OPC_EmitMergeInputChains1_0,
/*54242*/     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)
/*54255*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 2|128,1/*130*/,  TARGET_VAL(X86ISD::BSF),// ->54390
/*54260*/   OPC_Scope, 84, /*->54346*/ // 2 children in Scope
/*54262*/     OPC_MoveChild, 0,
/*54264*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*54267*/     OPC_RecordMemRef,
/*54268*/     OPC_RecordNode, // #0 = 'ld' chained node
/*54269*/     OPC_RecordChild1, // #1 = $src
/*54270*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*54272*/     OPC_SwitchType /*3 cases */, 22,  MVT::i16,// ->54297
/*54275*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*54277*/       OPC_MoveParent,
/*54278*/       OPC_CheckType, MVT::i16,
/*54280*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*54283*/       OPC_EmitMergeInputChains1_0,
/*54284*/       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,// ->54321
/*54299*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*54301*/       OPC_MoveParent,
/*54302*/       OPC_CheckType, MVT::i32,
/*54304*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*54307*/       OPC_EmitMergeInputChains1_0,
/*54308*/       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,// ->54345
/*54323*/       OPC_CheckPredicate, 3, // Predicate_load
/*54325*/       OPC_MoveParent,
/*54326*/       OPC_CheckType, MVT::i64,
/*54328*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*54331*/       OPC_EmitMergeInputChains1_0,
/*54332*/       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
/*54346*/   /*Scope*/ 42, /*->54389*/
/*54347*/     OPC_RecordChild0, // #0 = $src
/*54348*/     OPC_SwitchType /*3 cases */, 11,  MVT::i16,// ->54362
/*54351*/       OPC_CheckChild0Type, MVT::i16,
/*54353*/       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,// ->54375
/*54364*/       OPC_CheckChild0Type, MVT::i32,
/*54366*/       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,// ->54388
/*54377*/       OPC_CheckChild0Type, MVT::i64,
/*54379*/       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
/*54389*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 2|128,1/*130*/,  TARGET_VAL(X86ISD::BSR),// ->54524
/*54394*/   OPC_Scope, 84, /*->54480*/ // 2 children in Scope
/*54396*/     OPC_MoveChild, 0,
/*54398*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*54401*/     OPC_RecordMemRef,
/*54402*/     OPC_RecordNode, // #0 = 'ld' chained node
/*54403*/     OPC_RecordChild1, // #1 = $src
/*54404*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*54406*/     OPC_SwitchType /*3 cases */, 22,  MVT::i16,// ->54431
/*54409*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*54411*/       OPC_MoveParent,
/*54412*/       OPC_CheckType, MVT::i16,
/*54414*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*54417*/       OPC_EmitMergeInputChains1_0,
/*54418*/       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,// ->54455
/*54433*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*54435*/       OPC_MoveParent,
/*54436*/       OPC_CheckType, MVT::i32,
/*54438*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*54441*/       OPC_EmitMergeInputChains1_0,
/*54442*/       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,// ->54479
/*54457*/       OPC_CheckPredicate, 3, // Predicate_load
/*54459*/       OPC_MoveParent,
/*54460*/       OPC_CheckType, MVT::i64,
/*54462*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*54465*/       OPC_EmitMergeInputChains1_0,
/*54466*/       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
/*54480*/   /*Scope*/ 42, /*->54523*/
/*54481*/     OPC_RecordChild0, // #0 = $src
/*54482*/     OPC_SwitchType /*3 cases */, 11,  MVT::i16,// ->54496
/*54485*/       OPC_CheckChild0Type, MVT::i16,
/*54487*/       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,// ->54509
/*54498*/       OPC_CheckChild0Type, MVT::i32,
/*54500*/       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,// ->54522
/*54511*/       OPC_CheckChild0Type, MVT::i64,
/*54513*/       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
/*54523*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 111,  TARGET_VAL(ISD::BSWAP),// ->54638
/*54527*/   OPC_Scope, 84, /*->54613*/ // 2 children in Scope
/*54529*/     OPC_MoveChild, 0,
/*54531*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*54534*/     OPC_RecordMemRef,
/*54535*/     OPC_RecordNode, // #0 = 'ld' chained node
/*54536*/     OPC_RecordChild1, // #1 = $src
/*54537*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*54539*/     OPC_Scope, 23, /*->54564*/ // 3 children in Scope
/*54541*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*54543*/       OPC_MoveParent,
/*54544*/       OPC_CheckType, MVT::i16,
/*54546*/       OPC_CheckPatternPredicate, 7, // (Subtarget->hasMOVBE())
/*54548*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*54551*/       OPC_EmitMergeInputChains1_0,
/*54552*/       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)
/*54564*/     /*Scope*/ 23, /*->54588*/
/*54565*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*54567*/       OPC_MoveParent,
/*54568*/       OPC_CheckType, MVT::i32,
/*54570*/       OPC_CheckPatternPredicate, 7, // (Subtarget->hasMOVBE())
/*54572*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*54575*/       OPC_EmitMergeInputChains1_0,
/*54576*/       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)
/*54588*/     /*Scope*/ 23, /*->54612*/
/*54589*/       OPC_CheckPredicate, 3, // Predicate_load
/*54591*/       OPC_MoveParent,
/*54592*/       OPC_CheckType, MVT::i64,
/*54594*/       OPC_CheckPatternPredicate, 7, // (Subtarget->hasMOVBE())
/*54596*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*54599*/       OPC_EmitMergeInputChains1_0,
/*54600*/       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)
/*54612*/     0, /*End of Scope*/
/*54613*/   /*Scope*/ 23, /*->54637*/
/*54614*/     OPC_RecordChild0, // #0 = $src
/*54615*/     OPC_SwitchType /*2 cases */, 8,  MVT::i32,// ->54626
/*54618*/       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,// ->54636
/*54628*/       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
/*54637*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 5|128,1/*133*/,  TARGET_VAL(ISD::CTLZ),// ->54775
/*54642*/   OPC_Scope, 87, /*->54731*/ // 2 children in Scope
/*54644*/     OPC_MoveChild, 0,
/*54646*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*54649*/     OPC_RecordMemRef,
/*54650*/     OPC_RecordNode, // #0 = 'ld' chained node
/*54651*/     OPC_RecordChild1, // #1 = $src
/*54652*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*54654*/     OPC_Scope, 24, /*->54680*/ // 3 children in Scope
/*54656*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*54658*/       OPC_MoveParent,
/*54659*/       OPC_CheckType, MVT::i16,
/*54661*/       OPC_CheckPatternPredicate, 23, // (Subtarget->hasLZCNT())
/*54663*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*54666*/       OPC_EmitMergeInputChains1_0,
/*54667*/       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)
/*54680*/     /*Scope*/ 24, /*->54705*/
/*54681*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*54683*/       OPC_MoveParent,
/*54684*/       OPC_CheckType, MVT::i32,
/*54686*/       OPC_CheckPatternPredicate, 23, // (Subtarget->hasLZCNT())
/*54688*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*54691*/       OPC_EmitMergeInputChains1_0,
/*54692*/       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)
/*54705*/     /*Scope*/ 24, /*->54730*/
/*54706*/       OPC_CheckPredicate, 3, // Predicate_load
/*54708*/       OPC_MoveParent,
/*54709*/       OPC_CheckType, MVT::i64,
/*54711*/       OPC_CheckPatternPredicate, 23, // (Subtarget->hasLZCNT())
/*54713*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*54716*/       OPC_EmitMergeInputChains1_0,
/*54717*/       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)
/*54730*/     0, /*End of Scope*/
/*54731*/   /*Scope*/ 42, /*->54774*/
/*54732*/     OPC_RecordChild0, // #0 = $src
/*54733*/     OPC_SwitchType /*3 cases */, 11,  MVT::i16,// ->54747
/*54736*/       OPC_CheckPatternPredicate, 23, // (Subtarget->hasLZCNT())
/*54738*/       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,// ->54760
/*54749*/       OPC_CheckPatternPredicate, 23, // (Subtarget->hasLZCNT())
/*54751*/       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,// ->54773
/*54762*/       OPC_CheckPatternPredicate, 23, // (Subtarget->hasLZCNT())
/*54764*/       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
/*54774*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 5|128,1/*133*/,  TARGET_VAL(ISD::CTTZ),// ->54912
/*54779*/   OPC_Scope, 87, /*->54868*/ // 2 children in Scope
/*54781*/     OPC_MoveChild, 0,
/*54783*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*54786*/     OPC_RecordMemRef,
/*54787*/     OPC_RecordNode, // #0 = 'ld' chained node
/*54788*/     OPC_RecordChild1, // #1 = $src
/*54789*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*54791*/     OPC_Scope, 24, /*->54817*/ // 3 children in Scope
/*54793*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*54795*/       OPC_MoveParent,
/*54796*/       OPC_CheckType, MVT::i16,
/*54798*/       OPC_CheckPatternPredicate, 24, // (Subtarget->hasBMI())
/*54800*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*54803*/       OPC_EmitMergeInputChains1_0,
/*54804*/       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)
/*54817*/     /*Scope*/ 24, /*->54842*/
/*54818*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*54820*/       OPC_MoveParent,
/*54821*/       OPC_CheckType, MVT::i32,
/*54823*/       OPC_CheckPatternPredicate, 24, // (Subtarget->hasBMI())
/*54825*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*54828*/       OPC_EmitMergeInputChains1_0,
/*54829*/       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)
/*54842*/     /*Scope*/ 24, /*->54867*/
/*54843*/       OPC_CheckPredicate, 3, // Predicate_load
/*54845*/       OPC_MoveParent,
/*54846*/       OPC_CheckType, MVT::i64,
/*54848*/       OPC_CheckPatternPredicate, 24, // (Subtarget->hasBMI())
/*54850*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*54853*/       OPC_EmitMergeInputChains1_0,
/*54854*/       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)
/*54867*/     0, /*End of Scope*/
/*54868*/   /*Scope*/ 42, /*->54911*/
/*54869*/     OPC_RecordChild0, // #0 = $src
/*54870*/     OPC_SwitchType /*3 cases */, 11,  MVT::i16,// ->54884
/*54873*/       OPC_CheckPatternPredicate, 24, // (Subtarget->hasBMI())
/*54875*/       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,// ->54897
/*54886*/       OPC_CheckPatternPredicate, 24, // (Subtarget->hasBMI())
/*54888*/       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,// ->54910
/*54899*/       OPC_CheckPatternPredicate, 24, // (Subtarget->hasBMI())
/*54901*/       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
/*54911*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 27|128,3/*411*/,  TARGET_VAL(X86ISD::AND),// ->55327
/*54916*/   OPC_Scope, 110, /*->55028*/ // 3 children in Scope
/*54918*/     OPC_RecordChild0, // #0 = $src1
/*54919*/     OPC_MoveChild, 1,
/*54921*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*54924*/     OPC_RecordMemRef,
/*54925*/     OPC_RecordNode, // #1 = 'ld' chained node
/*54926*/     OPC_CheckFoldableChainNode,
/*54927*/     OPC_RecordChild1, // #2 = $src2
/*54928*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*54930*/     OPC_Scope, 23, /*->54955*/ // 4 children in Scope
/*54932*/       OPC_CheckPredicate, 3, // Predicate_load
/*54934*/       OPC_MoveParent,
/*54935*/       OPC_CheckType, MVT::i8,
/*54937*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*54940*/       OPC_EmitMergeInputChains1_1,
/*54941*/       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)
/*54955*/     /*Scope*/ 23, /*->54979*/
/*54956*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*54958*/       OPC_MoveParent,
/*54959*/       OPC_CheckType, MVT::i16,
/*54961*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*54964*/       OPC_EmitMergeInputChains1_1,
/*54965*/       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)
/*54979*/     /*Scope*/ 23, /*->55003*/
/*54980*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*54982*/       OPC_MoveParent,
/*54983*/       OPC_CheckType, MVT::i32,
/*54985*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*54988*/       OPC_EmitMergeInputChains1_1,
/*54989*/       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)
/*55003*/     /*Scope*/ 23, /*->55027*/
/*55004*/       OPC_CheckPredicate, 3, // Predicate_load
/*55006*/       OPC_MoveParent,
/*55007*/       OPC_CheckType, MVT::i64,
/*55009*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*55012*/       OPC_EmitMergeInputChains1_1,
/*55013*/       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)
/*55027*/     0, /*End of Scope*/
/*55028*/   /*Scope*/ 113, /*->55142*/
/*55029*/     OPC_MoveChild, 0,
/*55031*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*55034*/     OPC_RecordMemRef,
/*55035*/     OPC_RecordNode, // #0 = 'ld' chained node
/*55036*/     OPC_CheckFoldableChainNode,
/*55037*/     OPC_RecordChild1, // #1 = $src2
/*55038*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*55040*/     OPC_Scope, 24, /*->55066*/ // 4 children in Scope
/*55042*/       OPC_CheckPredicate, 3, // Predicate_load
/*55044*/       OPC_MoveParent,
/*55045*/       OPC_RecordChild1, // #2 = $src1
/*55046*/       OPC_CheckType, MVT::i8,
/*55048*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*55051*/       OPC_EmitMergeInputChains1_0,
/*55052*/       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)
/*55066*/     /*Scope*/ 24, /*->55091*/
/*55067*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*55069*/       OPC_MoveParent,
/*55070*/       OPC_RecordChild1, // #2 = $src1
/*55071*/       OPC_CheckType, MVT::i16,
/*55073*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*55076*/       OPC_EmitMergeInputChains1_0,
/*55077*/       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)
/*55091*/     /*Scope*/ 24, /*->55116*/
/*55092*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*55094*/       OPC_MoveParent,
/*55095*/       OPC_RecordChild1, // #2 = $src1
/*55096*/       OPC_CheckType, MVT::i32,
/*55098*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*55101*/       OPC_EmitMergeInputChains1_0,
/*55102*/       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)
/*55116*/     /*Scope*/ 24, /*->55141*/
/*55117*/       OPC_CheckPredicate, 3, // Predicate_load
/*55119*/       OPC_MoveParent,
/*55120*/       OPC_RecordChild1, // #2 = $src1
/*55121*/       OPC_CheckType, MVT::i64,
/*55123*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*55126*/       OPC_EmitMergeInputChains1_0,
/*55127*/       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)
/*55141*/     0, /*End of Scope*/
/*55142*/   /*Scope*/ 54|128,1/*182*/, /*->55326*/
/*55144*/     OPC_RecordChild0, // #0 = $src1
/*55145*/     OPC_RecordChild1, // #1 = $src2
/*55146*/     OPC_Scope, 125, /*->55273*/ // 5 children in Scope
/*55148*/       OPC_MoveChild, 1,
/*55150*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*55153*/       OPC_Scope, 17, /*->55172*/ // 5 children in Scope
/*55155*/         OPC_CheckPredicate, 8, // Predicate_i16immSExt8
/*55157*/         OPC_MoveParent,
/*55158*/         OPC_CheckType, MVT::i16,
/*55160*/         OPC_EmitConvertToTarget, 1,
/*55162*/         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)
/*55172*/       /*Scope*/ 17, /*->55190*/
/*55173*/         OPC_CheckPredicate, 9, // Predicate_i32immSExt8
/*55175*/         OPC_MoveParent,
/*55176*/         OPC_CheckType, MVT::i32,
/*55178*/         OPC_EmitConvertToTarget, 1,
/*55180*/         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)
/*55190*/       /*Scope*/ 17, /*->55208*/
/*55191*/         OPC_CheckPredicate, 10, // Predicate_i64immSExt8
/*55193*/         OPC_MoveParent,
/*55194*/         OPC_CheckType, MVT::i64,
/*55196*/         OPC_EmitConvertToTarget, 1,
/*55198*/         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)
/*55208*/       /*Scope*/ 17, /*->55226*/
/*55209*/         OPC_CheckPredicate, 11, // Predicate_i64immSExt32
/*55211*/         OPC_MoveParent,
/*55212*/         OPC_CheckType, MVT::i64,
/*55214*/         OPC_EmitConvertToTarget, 1,
/*55216*/         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)
/*55226*/       /*Scope*/ 45, /*->55272*/
/*55227*/         OPC_MoveParent,
/*55228*/         OPC_SwitchType /*3 cases */, 12,  MVT::i8,// ->55243
/*55231*/           OPC_EmitConvertToTarget, 1,
/*55233*/           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,// ->55257
/*55245*/           OPC_EmitConvertToTarget, 1,
/*55247*/           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,// ->55271
/*55259*/           OPC_EmitConvertToTarget, 1,
/*55261*/           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
/*55272*/       0, /*End of Scope*/
/*55273*/     /*Scope*/ 12, /*->55286*/
/*55274*/       OPC_CheckType, MVT::i8,
/*55276*/       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)
/*55286*/     /*Scope*/ 12, /*->55299*/
/*55287*/       OPC_CheckType, MVT::i16,
/*55289*/       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)
/*55299*/     /*Scope*/ 12, /*->55312*/
/*55300*/       OPC_CheckType, MVT::i32,
/*55302*/       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)
/*55312*/     /*Scope*/ 12, /*->55325*/
/*55313*/       OPC_CheckType, MVT::i64,
/*55315*/       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)
/*55325*/     0, /*End of Scope*/
/*55326*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 27|128,3/*411*/,  TARGET_VAL(X86ISD::OR),// ->55742
/*55331*/   OPC_Scope, 110, /*->55443*/ // 3 children in Scope
/*55333*/     OPC_RecordChild0, // #0 = $src1
/*55334*/     OPC_MoveChild, 1,
/*55336*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*55339*/     OPC_RecordMemRef,
/*55340*/     OPC_RecordNode, // #1 = 'ld' chained node
/*55341*/     OPC_CheckFoldableChainNode,
/*55342*/     OPC_RecordChild1, // #2 = $src2
/*55343*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*55345*/     OPC_Scope, 23, /*->55370*/ // 4 children in Scope
/*55347*/       OPC_CheckPredicate, 3, // Predicate_load
/*55349*/       OPC_MoveParent,
/*55350*/       OPC_CheckType, MVT::i8,
/*55352*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*55355*/       OPC_EmitMergeInputChains1_1,
/*55356*/       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)
/*55370*/     /*Scope*/ 23, /*->55394*/
/*55371*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*55373*/       OPC_MoveParent,
/*55374*/       OPC_CheckType, MVT::i16,
/*55376*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*55379*/       OPC_EmitMergeInputChains1_1,
/*55380*/       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)
/*55394*/     /*Scope*/ 23, /*->55418*/
/*55395*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*55397*/       OPC_MoveParent,
/*55398*/       OPC_CheckType, MVT::i32,
/*55400*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*55403*/       OPC_EmitMergeInputChains1_1,
/*55404*/       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)
/*55418*/     /*Scope*/ 23, /*->55442*/
/*55419*/       OPC_CheckPredicate, 3, // Predicate_load
/*55421*/       OPC_MoveParent,
/*55422*/       OPC_CheckType, MVT::i64,
/*55424*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*55427*/       OPC_EmitMergeInputChains1_1,
/*55428*/       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)
/*55442*/     0, /*End of Scope*/
/*55443*/   /*Scope*/ 113, /*->55557*/
/*55444*/     OPC_MoveChild, 0,
/*55446*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*55449*/     OPC_RecordMemRef,
/*55450*/     OPC_RecordNode, // #0 = 'ld' chained node
/*55451*/     OPC_CheckFoldableChainNode,
/*55452*/     OPC_RecordChild1, // #1 = $src2
/*55453*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*55455*/     OPC_Scope, 24, /*->55481*/ // 4 children in Scope
/*55457*/       OPC_CheckPredicate, 3, // Predicate_load
/*55459*/       OPC_MoveParent,
/*55460*/       OPC_RecordChild1, // #2 = $src1
/*55461*/       OPC_CheckType, MVT::i8,
/*55463*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*55466*/       OPC_EmitMergeInputChains1_0,
/*55467*/       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)
/*55481*/     /*Scope*/ 24, /*->55506*/
/*55482*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*55484*/       OPC_MoveParent,
/*55485*/       OPC_RecordChild1, // #2 = $src1
/*55486*/       OPC_CheckType, MVT::i16,
/*55488*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*55491*/       OPC_EmitMergeInputChains1_0,
/*55492*/       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)
/*55506*/     /*Scope*/ 24, /*->55531*/
/*55507*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*55509*/       OPC_MoveParent,
/*55510*/       OPC_RecordChild1, // #2 = $src1
/*55511*/       OPC_CheckType, MVT::i32,
/*55513*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*55516*/       OPC_EmitMergeInputChains1_0,
/*55517*/       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)
/*55531*/     /*Scope*/ 24, /*->55556*/
/*55532*/       OPC_CheckPredicate, 3, // Predicate_load
/*55534*/       OPC_MoveParent,
/*55535*/       OPC_RecordChild1, // #2 = $src1
/*55536*/       OPC_CheckType, MVT::i64,
/*55538*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*55541*/       OPC_EmitMergeInputChains1_0,
/*55542*/       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)
/*55556*/     0, /*End of Scope*/
/*55557*/   /*Scope*/ 54|128,1/*182*/, /*->55741*/
/*55559*/     OPC_RecordChild0, // #0 = $src1
/*55560*/     OPC_RecordChild1, // #1 = $src2
/*55561*/     OPC_Scope, 125, /*->55688*/ // 5 children in Scope
/*55563*/       OPC_MoveChild, 1,
/*55565*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*55568*/       OPC_Scope, 17, /*->55587*/ // 5 children in Scope
/*55570*/         OPC_CheckPredicate, 8, // Predicate_i16immSExt8
/*55572*/         OPC_MoveParent,
/*55573*/         OPC_CheckType, MVT::i16,
/*55575*/         OPC_EmitConvertToTarget, 1,
/*55577*/         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)
/*55587*/       /*Scope*/ 17, /*->55605*/
/*55588*/         OPC_CheckPredicate, 9, // Predicate_i32immSExt8
/*55590*/         OPC_MoveParent,
/*55591*/         OPC_CheckType, MVT::i32,
/*55593*/         OPC_EmitConvertToTarget, 1,
/*55595*/         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)
/*55605*/       /*Scope*/ 17, /*->55623*/
/*55606*/         OPC_CheckPredicate, 10, // Predicate_i64immSExt8
/*55608*/         OPC_MoveParent,
/*55609*/         OPC_CheckType, MVT::i64,
/*55611*/         OPC_EmitConvertToTarget, 1,
/*55613*/         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)
/*55623*/       /*Scope*/ 17, /*->55641*/
/*55624*/         OPC_CheckPredicate, 11, // Predicate_i64immSExt32
/*55626*/         OPC_MoveParent,
/*55627*/         OPC_CheckType, MVT::i64,
/*55629*/         OPC_EmitConvertToTarget, 1,
/*55631*/         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)
/*55641*/       /*Scope*/ 45, /*->55687*/
/*55642*/         OPC_MoveParent,
/*55643*/         OPC_SwitchType /*3 cases */, 12,  MVT::i8,// ->55658
/*55646*/           OPC_EmitConvertToTarget, 1,
/*55648*/           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,// ->55672
/*55660*/           OPC_EmitConvertToTarget, 1,
/*55662*/           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,// ->55686
/*55674*/           OPC_EmitConvertToTarget, 1,
/*55676*/           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
/*55687*/       0, /*End of Scope*/
/*55688*/     /*Scope*/ 12, /*->55701*/
/*55689*/       OPC_CheckType, MVT::i8,
/*55691*/       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)
/*55701*/     /*Scope*/ 12, /*->55714*/
/*55702*/       OPC_CheckType, MVT::i16,
/*55704*/       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)
/*55714*/     /*Scope*/ 12, /*->55727*/
/*55715*/       OPC_CheckType, MVT::i32,
/*55717*/       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)
/*55727*/     /*Scope*/ 12, /*->55740*/
/*55728*/       OPC_CheckType, MVT::i64,
/*55730*/       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)
/*55740*/     0, /*End of Scope*/
/*55741*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 27|128,3/*411*/,  TARGET_VAL(X86ISD::XOR),// ->56157
/*55746*/   OPC_Scope, 110, /*->55858*/ // 3 children in Scope
/*55748*/     OPC_RecordChild0, // #0 = $src1
/*55749*/     OPC_MoveChild, 1,
/*55751*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*55754*/     OPC_RecordMemRef,
/*55755*/     OPC_RecordNode, // #1 = 'ld' chained node
/*55756*/     OPC_CheckFoldableChainNode,
/*55757*/     OPC_RecordChild1, // #2 = $src2
/*55758*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*55760*/     OPC_Scope, 23, /*->55785*/ // 4 children in Scope
/*55762*/       OPC_CheckPredicate, 3, // Predicate_load
/*55764*/       OPC_MoveParent,
/*55765*/       OPC_CheckType, MVT::i8,
/*55767*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*55770*/       OPC_EmitMergeInputChains1_1,
/*55771*/       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)
/*55785*/     /*Scope*/ 23, /*->55809*/
/*55786*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*55788*/       OPC_MoveParent,
/*55789*/       OPC_CheckType, MVT::i16,
/*55791*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*55794*/       OPC_EmitMergeInputChains1_1,
/*55795*/       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)
/*55809*/     /*Scope*/ 23, /*->55833*/
/*55810*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*55812*/       OPC_MoveParent,
/*55813*/       OPC_CheckType, MVT::i32,
/*55815*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*55818*/       OPC_EmitMergeInputChains1_1,
/*55819*/       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)
/*55833*/     /*Scope*/ 23, /*->55857*/
/*55834*/       OPC_CheckPredicate, 3, // Predicate_load
/*55836*/       OPC_MoveParent,
/*55837*/       OPC_CheckType, MVT::i64,
/*55839*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*55842*/       OPC_EmitMergeInputChains1_1,
/*55843*/       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)
/*55857*/     0, /*End of Scope*/
/*55858*/   /*Scope*/ 113, /*->55972*/
/*55859*/     OPC_MoveChild, 0,
/*55861*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*55864*/     OPC_RecordMemRef,
/*55865*/     OPC_RecordNode, // #0 = 'ld' chained node
/*55866*/     OPC_CheckFoldableChainNode,
/*55867*/     OPC_RecordChild1, // #1 = $src2
/*55868*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*55870*/     OPC_Scope, 24, /*->55896*/ // 4 children in Scope
/*55872*/       OPC_CheckPredicate, 3, // Predicate_load
/*55874*/       OPC_MoveParent,
/*55875*/       OPC_RecordChild1, // #2 = $src1
/*55876*/       OPC_CheckType, MVT::i8,
/*55878*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*55881*/       OPC_EmitMergeInputChains1_0,
/*55882*/       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)
/*55896*/     /*Scope*/ 24, /*->55921*/
/*55897*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*55899*/       OPC_MoveParent,
/*55900*/       OPC_RecordChild1, // #2 = $src1
/*55901*/       OPC_CheckType, MVT::i16,
/*55903*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*55906*/       OPC_EmitMergeInputChains1_0,
/*55907*/       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)
/*55921*/     /*Scope*/ 24, /*->55946*/
/*55922*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*55924*/       OPC_MoveParent,
/*55925*/       OPC_RecordChild1, // #2 = $src1
/*55926*/       OPC_CheckType, MVT::i32,
/*55928*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*55931*/       OPC_EmitMergeInputChains1_0,
/*55932*/       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)
/*55946*/     /*Scope*/ 24, /*->55971*/
/*55947*/       OPC_CheckPredicate, 3, // Predicate_load
/*55949*/       OPC_MoveParent,
/*55950*/       OPC_RecordChild1, // #2 = $src1
/*55951*/       OPC_CheckType, MVT::i64,
/*55953*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*55956*/       OPC_EmitMergeInputChains1_0,
/*55957*/       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)
/*55971*/     0, /*End of Scope*/
/*55972*/   /*Scope*/ 54|128,1/*182*/, /*->56156*/
/*55974*/     OPC_RecordChild0, // #0 = $src1
/*55975*/     OPC_RecordChild1, // #1 = $src2
/*55976*/     OPC_Scope, 125, /*->56103*/ // 5 children in Scope
/*55978*/       OPC_MoveChild, 1,
/*55980*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*55983*/       OPC_Scope, 17, /*->56002*/ // 5 children in Scope
/*55985*/         OPC_CheckPredicate, 8, // Predicate_i16immSExt8
/*55987*/         OPC_MoveParent,
/*55988*/         OPC_CheckType, MVT::i16,
/*55990*/         OPC_EmitConvertToTarget, 1,
/*55992*/         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)
/*56002*/       /*Scope*/ 17, /*->56020*/
/*56003*/         OPC_CheckPredicate, 9, // Predicate_i32immSExt8
/*56005*/         OPC_MoveParent,
/*56006*/         OPC_CheckType, MVT::i32,
/*56008*/         OPC_EmitConvertToTarget, 1,
/*56010*/         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)
/*56020*/       /*Scope*/ 17, /*->56038*/
/*56021*/         OPC_CheckPredicate, 10, // Predicate_i64immSExt8
/*56023*/         OPC_MoveParent,
/*56024*/         OPC_CheckType, MVT::i64,
/*56026*/         OPC_EmitConvertToTarget, 1,
/*56028*/         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)
/*56038*/       /*Scope*/ 17, /*->56056*/
/*56039*/         OPC_CheckPredicate, 11, // Predicate_i64immSExt32
/*56041*/         OPC_MoveParent,
/*56042*/         OPC_CheckType, MVT::i64,
/*56044*/         OPC_EmitConvertToTarget, 1,
/*56046*/         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)
/*56056*/       /*Scope*/ 45, /*->56102*/
/*56057*/         OPC_MoveParent,
/*56058*/         OPC_SwitchType /*3 cases */, 12,  MVT::i8,// ->56073
/*56061*/           OPC_EmitConvertToTarget, 1,
/*56063*/           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,// ->56087
/*56075*/           OPC_EmitConvertToTarget, 1,
/*56077*/           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,// ->56101
/*56089*/           OPC_EmitConvertToTarget, 1,
/*56091*/           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
/*56102*/       0, /*End of Scope*/
/*56103*/     /*Scope*/ 12, /*->56116*/
/*56104*/       OPC_CheckType, MVT::i8,
/*56106*/       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)
/*56116*/     /*Scope*/ 12, /*->56129*/
/*56117*/       OPC_CheckType, MVT::i16,
/*56119*/       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)
/*56129*/     /*Scope*/ 12, /*->56142*/
/*56130*/       OPC_CheckType, MVT::i32,
/*56132*/       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)
/*56142*/     /*Scope*/ 12, /*->56155*/
/*56143*/       OPC_CheckType, MVT::i64,
/*56145*/       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)
/*56155*/     0, /*End of Scope*/
/*56156*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 27|128,3/*411*/,  TARGET_VAL(X86ISD::ADD),// ->56572
/*56161*/   OPC_Scope, 110, /*->56273*/ // 3 children in Scope
/*56163*/     OPC_RecordChild0, // #0 = $src1
/*56164*/     OPC_MoveChild, 1,
/*56166*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*56169*/     OPC_RecordMemRef,
/*56170*/     OPC_RecordNode, // #1 = 'ld' chained node
/*56171*/     OPC_CheckFoldableChainNode,
/*56172*/     OPC_RecordChild1, // #2 = $src2
/*56173*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*56175*/     OPC_Scope, 23, /*->56200*/ // 4 children in Scope
/*56177*/       OPC_CheckPredicate, 3, // Predicate_load
/*56179*/       OPC_MoveParent,
/*56180*/       OPC_CheckType, MVT::i8,
/*56182*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*56185*/       OPC_EmitMergeInputChains1_1,
/*56186*/       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)
/*56200*/     /*Scope*/ 23, /*->56224*/
/*56201*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*56203*/       OPC_MoveParent,
/*56204*/       OPC_CheckType, MVT::i16,
/*56206*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*56209*/       OPC_EmitMergeInputChains1_1,
/*56210*/       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)
/*56224*/     /*Scope*/ 23, /*->56248*/
/*56225*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*56227*/       OPC_MoveParent,
/*56228*/       OPC_CheckType, MVT::i32,
/*56230*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*56233*/       OPC_EmitMergeInputChains1_1,
/*56234*/       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)
/*56248*/     /*Scope*/ 23, /*->56272*/
/*56249*/       OPC_CheckPredicate, 3, // Predicate_load
/*56251*/       OPC_MoveParent,
/*56252*/       OPC_CheckType, MVT::i64,
/*56254*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*56257*/       OPC_EmitMergeInputChains1_1,
/*56258*/       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)
/*56272*/     0, /*End of Scope*/
/*56273*/   /*Scope*/ 113, /*->56387*/
/*56274*/     OPC_MoveChild, 0,
/*56276*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*56279*/     OPC_RecordMemRef,
/*56280*/     OPC_RecordNode, // #0 = 'ld' chained node
/*56281*/     OPC_CheckFoldableChainNode,
/*56282*/     OPC_RecordChild1, // #1 = $src2
/*56283*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*56285*/     OPC_Scope, 24, /*->56311*/ // 4 children in Scope
/*56287*/       OPC_CheckPredicate, 3, // Predicate_load
/*56289*/       OPC_MoveParent,
/*56290*/       OPC_RecordChild1, // #2 = $src1
/*56291*/       OPC_CheckType, MVT::i8,
/*56293*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*56296*/       OPC_EmitMergeInputChains1_0,
/*56297*/       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)
/*56311*/     /*Scope*/ 24, /*->56336*/
/*56312*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*56314*/       OPC_MoveParent,
/*56315*/       OPC_RecordChild1, // #2 = $src1
/*56316*/       OPC_CheckType, MVT::i16,
/*56318*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*56321*/       OPC_EmitMergeInputChains1_0,
/*56322*/       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)
/*56336*/     /*Scope*/ 24, /*->56361*/
/*56337*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*56339*/       OPC_MoveParent,
/*56340*/       OPC_RecordChild1, // #2 = $src1
/*56341*/       OPC_CheckType, MVT::i32,
/*56343*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*56346*/       OPC_EmitMergeInputChains1_0,
/*56347*/       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)
/*56361*/     /*Scope*/ 24, /*->56386*/
/*56362*/       OPC_CheckPredicate, 3, // Predicate_load
/*56364*/       OPC_MoveParent,
/*56365*/       OPC_RecordChild1, // #2 = $src1
/*56366*/       OPC_CheckType, MVT::i64,
/*56368*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*56371*/       OPC_EmitMergeInputChains1_0,
/*56372*/       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)
/*56386*/     0, /*End of Scope*/
/*56387*/   /*Scope*/ 54|128,1/*182*/, /*->56571*/
/*56389*/     OPC_RecordChild0, // #0 = $src1
/*56390*/     OPC_RecordChild1, // #1 = $src2
/*56391*/     OPC_Scope, 125, /*->56518*/ // 5 children in Scope
/*56393*/       OPC_MoveChild, 1,
/*56395*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*56398*/       OPC_Scope, 17, /*->56417*/ // 5 children in Scope
/*56400*/         OPC_CheckPredicate, 8, // Predicate_i16immSExt8
/*56402*/         OPC_MoveParent,
/*56403*/         OPC_CheckType, MVT::i16,
/*56405*/         OPC_EmitConvertToTarget, 1,
/*56407*/         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)
/*56417*/       /*Scope*/ 17, /*->56435*/
/*56418*/         OPC_CheckPredicate, 9, // Predicate_i32immSExt8
/*56420*/         OPC_MoveParent,
/*56421*/         OPC_CheckType, MVT::i32,
/*56423*/         OPC_EmitConvertToTarget, 1,
/*56425*/         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)
/*56435*/       /*Scope*/ 17, /*->56453*/
/*56436*/         OPC_CheckPredicate, 10, // Predicate_i64immSExt8
/*56438*/         OPC_MoveParent,
/*56439*/         OPC_CheckType, MVT::i64,
/*56441*/         OPC_EmitConvertToTarget, 1,
/*56443*/         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)
/*56453*/       /*Scope*/ 17, /*->56471*/
/*56454*/         OPC_CheckPredicate, 11, // Predicate_i64immSExt32
/*56456*/         OPC_MoveParent,
/*56457*/         OPC_CheckType, MVT::i64,
/*56459*/         OPC_EmitConvertToTarget, 1,
/*56461*/         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)
/*56471*/       /*Scope*/ 45, /*->56517*/
/*56472*/         OPC_MoveParent,
/*56473*/         OPC_SwitchType /*3 cases */, 12,  MVT::i8,// ->56488
/*56476*/           OPC_EmitConvertToTarget, 1,
/*56478*/           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,// ->56502
/*56490*/           OPC_EmitConvertToTarget, 1,
/*56492*/           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,// ->56516
/*56504*/           OPC_EmitConvertToTarget, 1,
/*56506*/           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
/*56517*/       0, /*End of Scope*/
/*56518*/     /*Scope*/ 12, /*->56531*/
/*56519*/       OPC_CheckType, MVT::i8,
/*56521*/       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)
/*56531*/     /*Scope*/ 12, /*->56544*/
/*56532*/       OPC_CheckType, MVT::i16,
/*56534*/       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)
/*56544*/     /*Scope*/ 12, /*->56557*/
/*56545*/       OPC_CheckType, MVT::i32,
/*56547*/       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)
/*56557*/     /*Scope*/ 12, /*->56570*/
/*56558*/       OPC_CheckType, MVT::i64,
/*56560*/       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)
/*56570*/     0, /*End of Scope*/
/*56571*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 40|128,2/*296*/,  TARGET_VAL(X86ISD::SUB),// ->56872
/*56576*/   OPC_RecordChild0, // #0 = $src1
/*56577*/   OPC_Scope, 109, /*->56688*/ // 2 children in Scope
/*56579*/     OPC_MoveChild, 1,
/*56581*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*56584*/     OPC_RecordMemRef,
/*56585*/     OPC_RecordNode, // #1 = 'ld' chained node
/*56586*/     OPC_CheckFoldableChainNode,
/*56587*/     OPC_RecordChild1, // #2 = $src2
/*56588*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*56590*/     OPC_Scope, 23, /*->56615*/ // 4 children in Scope
/*56592*/       OPC_CheckPredicate, 3, // Predicate_load
/*56594*/       OPC_MoveParent,
/*56595*/       OPC_CheckType, MVT::i8,
/*56597*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*56600*/       OPC_EmitMergeInputChains1_1,
/*56601*/       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)
/*56615*/     /*Scope*/ 23, /*->56639*/
/*56616*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*56618*/       OPC_MoveParent,
/*56619*/       OPC_CheckType, MVT::i16,
/*56621*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*56624*/       OPC_EmitMergeInputChains1_1,
/*56625*/       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)
/*56639*/     /*Scope*/ 23, /*->56663*/
/*56640*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*56642*/       OPC_MoveParent,
/*56643*/       OPC_CheckType, MVT::i32,
/*56645*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*56648*/       OPC_EmitMergeInputChains1_1,
/*56649*/       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)
/*56663*/     /*Scope*/ 23, /*->56687*/
/*56664*/       OPC_CheckPredicate, 3, // Predicate_load
/*56666*/       OPC_MoveParent,
/*56667*/       OPC_CheckType, MVT::i64,
/*56669*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*56672*/       OPC_EmitMergeInputChains1_1,
/*56673*/       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)
/*56687*/     0, /*End of Scope*/
/*56688*/   /*Scope*/ 53|128,1/*181*/, /*->56871*/
/*56690*/     OPC_RecordChild1, // #1 = $src2
/*56691*/     OPC_Scope, 125, /*->56818*/ // 5 children in Scope
/*56693*/       OPC_MoveChild, 1,
/*56695*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*56698*/       OPC_Scope, 17, /*->56717*/ // 5 children in Scope
/*56700*/         OPC_CheckPredicate, 8, // Predicate_i16immSExt8
/*56702*/         OPC_MoveParent,
/*56703*/         OPC_CheckType, MVT::i16,
/*56705*/         OPC_EmitConvertToTarget, 1,
/*56707*/         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)
/*56717*/       /*Scope*/ 17, /*->56735*/
/*56718*/         OPC_CheckPredicate, 9, // Predicate_i32immSExt8
/*56720*/         OPC_MoveParent,
/*56721*/         OPC_CheckType, MVT::i32,
/*56723*/         OPC_EmitConvertToTarget, 1,
/*56725*/         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)
/*56735*/       /*Scope*/ 17, /*->56753*/
/*56736*/         OPC_CheckPredicate, 10, // Predicate_i64immSExt8
/*56738*/         OPC_MoveParent,
/*56739*/         OPC_CheckType, MVT::i64,
/*56741*/         OPC_EmitConvertToTarget, 1,
/*56743*/         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)
/*56753*/       /*Scope*/ 17, /*->56771*/
/*56754*/         OPC_CheckPredicate, 11, // Predicate_i64immSExt32
/*56756*/         OPC_MoveParent,
/*56757*/         OPC_CheckType, MVT::i64,
/*56759*/         OPC_EmitConvertToTarget, 1,
/*56761*/         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)
/*56771*/       /*Scope*/ 45, /*->56817*/
/*56772*/         OPC_MoveParent,
/*56773*/         OPC_SwitchType /*3 cases */, 12,  MVT::i8,// ->56788
/*56776*/           OPC_EmitConvertToTarget, 1,
/*56778*/           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,// ->56802
/*56790*/           OPC_EmitConvertToTarget, 1,
/*56792*/           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,// ->56816
/*56804*/           OPC_EmitConvertToTarget, 1,
/*56806*/           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
/*56817*/       0, /*End of Scope*/
/*56818*/     /*Scope*/ 12, /*->56831*/
/*56819*/       OPC_CheckType, MVT::i8,
/*56821*/       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)
/*56831*/     /*Scope*/ 12, /*->56844*/
/*56832*/       OPC_CheckType, MVT::i16,
/*56834*/       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)
/*56844*/     /*Scope*/ 12, /*->56857*/
/*56845*/       OPC_CheckType, MVT::i32,
/*56847*/       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)
/*56857*/     /*Scope*/ 12, /*->56870*/
/*56858*/       OPC_CheckType, MVT::i64,
/*56860*/       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)
/*56870*/     0, /*End of Scope*/
/*56871*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 95|128,2/*351*/,  TARGET_VAL(X86ISD::ADC),// ->57227
/*56876*/   OPC_RecordChild0, // #0 = $src1
/*56877*/   OPC_Scope, 125, /*->57004*/ // 2 children in Scope
/*56879*/     OPC_MoveChild, 1,
/*56881*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*56884*/     OPC_RecordMemRef,
/*56885*/     OPC_RecordNode, // #1 = 'ld' chained node
/*56886*/     OPC_CheckFoldableChainNode,
/*56887*/     OPC_RecordChild1, // #2 = $src2
/*56888*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*56890*/     OPC_Scope, 27, /*->56919*/ // 4 children in Scope
/*56892*/       OPC_CheckPredicate, 3, // Predicate_load
/*56894*/       OPC_MoveParent,
/*56895*/       OPC_RecordChild2, // #3 = physreg input EFLAGS
/*56896*/       OPC_CheckType, MVT::i8,
/*56898*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*56901*/       OPC_EmitMergeInputChains1_1,
/*56902*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*56905*/       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)
/*56919*/     /*Scope*/ 27, /*->56947*/
/*56920*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*56922*/       OPC_MoveParent,
/*56923*/       OPC_RecordChild2, // #3 = physreg input EFLAGS
/*56924*/       OPC_CheckType, MVT::i16,
/*56926*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*56929*/       OPC_EmitMergeInputChains1_1,
/*56930*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*56933*/       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)
/*56947*/     /*Scope*/ 27, /*->56975*/
/*56948*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*56950*/       OPC_MoveParent,
/*56951*/       OPC_RecordChild2, // #3 = physreg input EFLAGS
/*56952*/       OPC_CheckType, MVT::i32,
/*56954*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*56957*/       OPC_EmitMergeInputChains1_1,
/*56958*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*56961*/       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)
/*56975*/     /*Scope*/ 27, /*->57003*/
/*56976*/       OPC_CheckPredicate, 3, // Predicate_load
/*56978*/       OPC_MoveParent,
/*56979*/       OPC_RecordChild2, // #3 = physreg input EFLAGS
/*56980*/       OPC_CheckType, MVT::i64,
/*56982*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*56985*/       OPC_EmitMergeInputChains1_1,
/*56986*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*56989*/       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)
/*57003*/     0, /*End of Scope*/
/*57004*/   /*Scope*/ 92|128,1/*220*/, /*->57226*/
/*57006*/     OPC_RecordChild1, // #1 = $src2
/*57007*/     OPC_Scope, 23|128,1/*151*/, /*->57161*/ // 2 children in Scope
/*57010*/       OPC_MoveChild, 1,
/*57012*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*57015*/       OPC_Scope, 21, /*->57038*/ // 5 children in Scope
/*57017*/         OPC_CheckPredicate, 8, // Predicate_i16immSExt8
/*57019*/         OPC_MoveParent,
/*57020*/         OPC_RecordChild2, // #2 = physreg input EFLAGS
/*57021*/         OPC_CheckType, MVT::i16,
/*57023*/         OPC_EmitConvertToTarget, 1,
/*57025*/         OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*57028*/         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)
/*57038*/       /*Scope*/ 21, /*->57060*/
/*57039*/         OPC_CheckPredicate, 9, // Predicate_i32immSExt8
/*57041*/         OPC_MoveParent,
/*57042*/         OPC_RecordChild2, // #2 = physreg input EFLAGS
/*57043*/         OPC_CheckType, MVT::i32,
/*57045*/         OPC_EmitConvertToTarget, 1,
/*57047*/         OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*57050*/         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)
/*57060*/       /*Scope*/ 21, /*->57082*/
/*57061*/         OPC_CheckPredicate, 10, // Predicate_i64immSExt8
/*57063*/         OPC_MoveParent,
/*57064*/         OPC_RecordChild2, // #2 = physreg input EFLAGS
/*57065*/         OPC_CheckType, MVT::i64,
/*57067*/         OPC_EmitConvertToTarget, 1,
/*57069*/         OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*57072*/         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)
/*57082*/       /*Scope*/ 21, /*->57104*/
/*57083*/         OPC_CheckPredicate, 11, // Predicate_i64immSExt32
/*57085*/         OPC_MoveParent,
/*57086*/         OPC_RecordChild2, // #2 = physreg input EFLAGS
/*57087*/         OPC_CheckType, MVT::i64,
/*57089*/         OPC_EmitConvertToTarget, 1,
/*57091*/         OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*57094*/         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)
/*57104*/       /*Scope*/ 55, /*->57160*/
/*57105*/         OPC_MoveParent,
/*57106*/         OPC_RecordChild2, // #2 = physreg input EFLAGS
/*57107*/         OPC_SwitchType /*3 cases */, 15,  MVT::i8,// ->57125
/*57110*/           OPC_EmitConvertToTarget, 1,
/*57112*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*57115*/           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,// ->57142
/*57127*/           OPC_EmitConvertToTarget, 1,
/*57129*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*57132*/           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,// ->57159
/*57144*/           OPC_EmitConvertToTarget, 1,
/*57146*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*57149*/           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
/*57160*/       0, /*End of Scope*/
/*57161*/     /*Scope*/ 63, /*->57225*/
/*57162*/       OPC_RecordChild2, // #2 = physreg input EFLAGS
/*57163*/       OPC_SwitchType /*4 cases */, 13,  MVT::i8,// ->57179
/*57166*/         OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*57169*/         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,// ->57194
/*57181*/         OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*57184*/         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,// ->57209
/*57196*/         OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*57199*/         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,// ->57224
/*57211*/         OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*57214*/         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
/*57225*/     0, /*End of Scope*/
/*57226*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 95|128,2/*351*/,  TARGET_VAL(X86ISD::SBB),// ->57582
/*57231*/   OPC_RecordChild0, // #0 = $src1
/*57232*/   OPC_Scope, 125, /*->57359*/ // 2 children in Scope
/*57234*/     OPC_MoveChild, 1,
/*57236*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*57239*/     OPC_RecordMemRef,
/*57240*/     OPC_RecordNode, // #1 = 'ld' chained node
/*57241*/     OPC_CheckFoldableChainNode,
/*57242*/     OPC_RecordChild1, // #2 = $src2
/*57243*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*57245*/     OPC_Scope, 27, /*->57274*/ // 4 children in Scope
/*57247*/       OPC_CheckPredicate, 3, // Predicate_load
/*57249*/       OPC_MoveParent,
/*57250*/       OPC_RecordChild2, // #3 = physreg input EFLAGS
/*57251*/       OPC_CheckType, MVT::i8,
/*57253*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*57256*/       OPC_EmitMergeInputChains1_1,
/*57257*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*57260*/       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)
/*57274*/     /*Scope*/ 27, /*->57302*/
/*57275*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*57277*/       OPC_MoveParent,
/*57278*/       OPC_RecordChild2, // #3 = physreg input EFLAGS
/*57279*/       OPC_CheckType, MVT::i16,
/*57281*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*57284*/       OPC_EmitMergeInputChains1_1,
/*57285*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*57288*/       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)
/*57302*/     /*Scope*/ 27, /*->57330*/
/*57303*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*57305*/       OPC_MoveParent,
/*57306*/       OPC_RecordChild2, // #3 = physreg input EFLAGS
/*57307*/       OPC_CheckType, MVT::i32,
/*57309*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*57312*/       OPC_EmitMergeInputChains1_1,
/*57313*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*57316*/       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)
/*57330*/     /*Scope*/ 27, /*->57358*/
/*57331*/       OPC_CheckPredicate, 3, // Predicate_load
/*57333*/       OPC_MoveParent,
/*57334*/       OPC_RecordChild2, // #3 = physreg input EFLAGS
/*57335*/       OPC_CheckType, MVT::i64,
/*57337*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*57340*/       OPC_EmitMergeInputChains1_1,
/*57341*/       OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*57344*/       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)
/*57358*/     0, /*End of Scope*/
/*57359*/   /*Scope*/ 92|128,1/*220*/, /*->57581*/
/*57361*/     OPC_RecordChild1, // #1 = $src2
/*57362*/     OPC_Scope, 23|128,1/*151*/, /*->57516*/ // 2 children in Scope
/*57365*/       OPC_MoveChild, 1,
/*57367*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*57370*/       OPC_Scope, 21, /*->57393*/ // 5 children in Scope
/*57372*/         OPC_CheckPredicate, 8, // Predicate_i16immSExt8
/*57374*/         OPC_MoveParent,
/*57375*/         OPC_RecordChild2, // #2 = physreg input EFLAGS
/*57376*/         OPC_CheckType, MVT::i16,
/*57378*/         OPC_EmitConvertToTarget, 1,
/*57380*/         OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*57383*/         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)
/*57393*/       /*Scope*/ 21, /*->57415*/
/*57394*/         OPC_CheckPredicate, 9, // Predicate_i32immSExt8
/*57396*/         OPC_MoveParent,
/*57397*/         OPC_RecordChild2, // #2 = physreg input EFLAGS
/*57398*/         OPC_CheckType, MVT::i32,
/*57400*/         OPC_EmitConvertToTarget, 1,
/*57402*/         OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*57405*/         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)
/*57415*/       /*Scope*/ 21, /*->57437*/
/*57416*/         OPC_CheckPredicate, 10, // Predicate_i64immSExt8
/*57418*/         OPC_MoveParent,
/*57419*/         OPC_RecordChild2, // #2 = physreg input EFLAGS
/*57420*/         OPC_CheckType, MVT::i64,
/*57422*/         OPC_EmitConvertToTarget, 1,
/*57424*/         OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*57427*/         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)
/*57437*/       /*Scope*/ 21, /*->57459*/
/*57438*/         OPC_CheckPredicate, 11, // Predicate_i64immSExt32
/*57440*/         OPC_MoveParent,
/*57441*/         OPC_RecordChild2, // #2 = physreg input EFLAGS
/*57442*/         OPC_CheckType, MVT::i64,
/*57444*/         OPC_EmitConvertToTarget, 1,
/*57446*/         OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*57449*/         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)
/*57459*/       /*Scope*/ 55, /*->57515*/
/*57460*/         OPC_MoveParent,
/*57461*/         OPC_RecordChild2, // #2 = physreg input EFLAGS
/*57462*/         OPC_SwitchType /*3 cases */, 15,  MVT::i8,// ->57480
/*57465*/           OPC_EmitConvertToTarget, 1,
/*57467*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*57470*/           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,// ->57497
/*57482*/           OPC_EmitConvertToTarget, 1,
/*57484*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*57487*/           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,// ->57514
/*57499*/           OPC_EmitConvertToTarget, 1,
/*57501*/           OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*57504*/           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
/*57515*/       0, /*End of Scope*/
/*57516*/     /*Scope*/ 63, /*->57580*/
/*57517*/       OPC_RecordChild2, // #2 = physreg input EFLAGS
/*57518*/       OPC_SwitchType /*4 cases */, 13,  MVT::i8,// ->57534
/*57521*/         OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*57524*/         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,// ->57549
/*57536*/         OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*57539*/         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,// ->57564
/*57551*/         OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*57554*/         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,// ->57579
/*57566*/         OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*57569*/         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
/*57580*/     0, /*End of Scope*/
/*57581*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 101,  TARGET_VAL(X86ISD::ANDN),// ->57686
/*57585*/   OPC_RecordChild0, // #0 = $src1
/*57586*/   OPC_Scope, 65, /*->57653*/ // 2 children in Scope
/*57588*/     OPC_MoveChild, 1,
/*57590*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*57593*/     OPC_RecordMemRef,
/*57594*/     OPC_RecordNode, // #1 = 'ld' chained node
/*57595*/     OPC_CheckFoldableChainNode,
/*57596*/     OPC_RecordChild1, // #2 = $src2
/*57597*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*57599*/     OPC_Scope, 25, /*->57626*/ // 2 children in Scope
/*57601*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*57603*/       OPC_MoveParent,
/*57604*/       OPC_CheckType, MVT::i32,
/*57606*/       OPC_CheckPatternPredicate, 24, // (Subtarget->hasBMI())
/*57608*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*57611*/       OPC_EmitMergeInputChains1_1,
/*57612*/       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)
/*57626*/     /*Scope*/ 25, /*->57652*/
/*57627*/       OPC_CheckPredicate, 3, // Predicate_load
/*57629*/       OPC_MoveParent,
/*57630*/       OPC_CheckType, MVT::i64,
/*57632*/       OPC_CheckPatternPredicate, 24, // (Subtarget->hasBMI())
/*57634*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*57637*/       OPC_EmitMergeInputChains1_1,
/*57638*/       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)
/*57652*/     0, /*End of Scope*/
/*57653*/   /*Scope*/ 31, /*->57685*/
/*57654*/     OPC_RecordChild1, // #1 = $src2
/*57655*/     OPC_SwitchType /*2 cases */, 12,  MVT::i32,// ->57670
/*57658*/       OPC_CheckPatternPredicate, 24, // (Subtarget->hasBMI())
/*57660*/       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,// ->57684
/*57672*/       OPC_CheckPatternPredicate, 24, // (Subtarget->hasBMI())
/*57674*/       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
/*57685*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 97,  TARGET_VAL(ISD::BRIND),// ->57786
/*57689*/   OPC_RecordNode,   // #0 = 'brind' chained node
/*57690*/   OPC_Scope, 63, /*->57755*/ // 2 children in Scope
/*57692*/     OPC_MoveChild, 1,
/*57694*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*57697*/     OPC_RecordMemRef,
/*57698*/     OPC_RecordNode, // #1 = 'ld' chained node
/*57699*/     OPC_CheckFoldableChainNode,
/*57700*/     OPC_RecordChild1, // #2 = $dst
/*57701*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*57703*/     OPC_SwitchType /*2 cases */, 23,  MVT::i32,// ->57729
/*57706*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*57708*/       OPC_MoveParent,
/*57709*/       OPC_CheckPatternPredicate, 3, // (!Subtarget->is64Bit())
/*57711*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*57714*/       OPC_EmitMergeInputChains, 2, 0, 1, 
/*57718*/       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,// ->57754
/*57731*/       OPC_CheckPredicate, 3, // Predicate_load
/*57733*/       OPC_MoveParent,
/*57734*/       OPC_CheckPatternPredicate, 4, // (Subtarget->is64Bit())
/*57736*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*57739*/       OPC_EmitMergeInputChains, 2, 0, 1, 
/*57743*/       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
/*57755*/   /*Scope*/ 29, /*->57785*/
/*57756*/     OPC_RecordChild1, // #1 = $dst
/*57757*/     OPC_Scope, 12, /*->57771*/ // 2 children in Scope
/*57759*/       OPC_CheckChild1Type, MVT::i32,
/*57761*/       OPC_CheckPatternPredicate, 3, // (!Subtarget->is64Bit())
/*57763*/       OPC_EmitMergeInputChains1_0,
/*57764*/       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)
/*57771*/     /*Scope*/ 12, /*->57784*/
/*57772*/       OPC_CheckChild1Type, MVT::i64,
/*57774*/       OPC_CheckPatternPredicate, 4, // (Subtarget->is64Bit())
/*57776*/       OPC_EmitMergeInputChains1_0,
/*57777*/       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)
/*57784*/     0, /*End of Scope*/
/*57785*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 3|128,2/*259*/,  TARGET_VAL(X86ISD::CALL),// ->58049
/*57790*/   OPC_RecordNode,   // #0 = 'X86call' chained node
/*57791*/   OPC_CaptureGlueInput,
/*57792*/   OPC_Scope, 90, /*->57884*/ // 2 children in Scope
/*57794*/     OPC_MoveChild, 1,
/*57796*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*57799*/     OPC_RecordMemRef,
/*57800*/     OPC_RecordNode, // #1 = 'ld' chained node
/*57801*/     OPC_CheckFoldableChainNode,
/*57802*/     OPC_RecordChild1, // #2 = $dst
/*57803*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*57805*/     OPC_SwitchType /*2 cases */, 24,  MVT::i32,// ->57832
/*57808*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*57810*/       OPC_MoveParent,
/*57811*/       OPC_CheckPatternPredicate, 3, // (!Subtarget->is64Bit())
/*57813*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*57816*/       OPC_EmitMergeInputChains, 2, 0, 1, 
/*57820*/       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,// ->57883
/*57834*/       OPC_CheckPredicate, 3, // Predicate_load
/*57836*/       OPC_MoveParent,
/*57837*/       OPC_Scope, 21, /*->57860*/ // 2 children in Scope
/*57839*/         OPC_CheckPatternPredicate, 25, // (Subtarget->is64Bit()) && (!Subtarget->isTargetWin64())
/*57841*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*57844*/         OPC_EmitMergeInputChains, 2, 0, 1, 
/*57848*/         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)
/*57860*/       /*Scope*/ 21, /*->57882*/
/*57861*/         OPC_CheckPatternPredicate, 26, // (Subtarget->isTargetWin64())
/*57863*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*57866*/         OPC_EmitMergeInputChains, 2, 0, 1, 
/*57870*/         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)
/*57882*/       0, /*End of Scope*/
              0, // EndSwitchType
/*57884*/   /*Scope*/ 34|128,1/*162*/, /*->58048*/
/*57886*/     OPC_RecordChild1, // #1 = $dst
/*57887*/     OPC_Scope, 115, /*->58004*/ // 3 children in Scope
/*57889*/       OPC_MoveChild, 1,
/*57891*/       OPC_SwitchOpcode /*3 cases */, 43,  TARGET_VAL(ISD::TargetGlobalAddress),// ->57938
/*57895*/         OPC_SwitchType /*2 cases */, 27,  MVT::i64,// ->57925
/*57898*/           OPC_MoveParent,
/*57899*/           OPC_Scope, 11, /*->57912*/ // 2 children in Scope
/*57901*/             OPC_CheckPatternPredicate, 27, // (!Subtarget->isTargetWin64())
/*57903*/             OPC_EmitMergeInputChains1_0,
/*57904*/             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)
/*57912*/           /*Scope*/ 11, /*->57924*/
/*57913*/             OPC_CheckPatternPredicate, 26, // (Subtarget->isTargetWin64())
/*57915*/             OPC_EmitMergeInputChains1_0,
/*57916*/             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)
/*57924*/           0, /*End of Scope*/
                  /*SwitchType*/ 10,  MVT::i32,// ->57937
/*57927*/           OPC_MoveParent,
/*57928*/           OPC_EmitMergeInputChains1_0,
/*57929*/           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),// ->57984
/*57941*/         OPC_SwitchType /*2 cases */, 27,  MVT::i64,// ->57971
/*57944*/           OPC_MoveParent,
/*57945*/           OPC_Scope, 11, /*->57958*/ // 2 children in Scope
/*57947*/             OPC_CheckPatternPredicate, 27, // (!Subtarget->isTargetWin64())
/*57949*/             OPC_EmitMergeInputChains1_0,
/*57950*/             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)
/*57958*/           /*Scope*/ 11, /*->57970*/
/*57959*/             OPC_CheckPatternPredicate, 26, // (Subtarget->isTargetWin64())
/*57961*/             OPC_EmitMergeInputChains1_0,
/*57962*/             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)
/*57970*/           0, /*End of Scope*/
                  /*SwitchType*/ 10,  MVT::i32,// ->57983
/*57973*/           OPC_MoveParent,
/*57974*/           OPC_EmitMergeInputChains1_0,
/*57975*/           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),// ->58003
/*57987*/         OPC_CheckType, MVT::i32,
/*57989*/         OPC_MoveParent,
/*57990*/         OPC_CheckPatternPredicate, 28, // (Subtarget->IsLegalToCallImmediateAddr(TM))
/*57992*/         OPC_EmitMergeInputChains1_0,
/*57993*/         OPC_EmitConvertToTarget, 1,
/*57995*/         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
/*58004*/     /*Scope*/ 13, /*->58018*/
/*58005*/       OPC_CheckChild1Type, MVT::i32,
/*58007*/       OPC_CheckPatternPredicate, 3, // (!Subtarget->is64Bit())
/*58009*/       OPC_EmitMergeInputChains1_0,
/*58010*/       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)
/*58018*/     /*Scope*/ 28, /*->58047*/
/*58019*/       OPC_CheckChild1Type, MVT::i64,
/*58021*/       OPC_Scope, 11, /*->58034*/ // 2 children in Scope
/*58023*/         OPC_CheckPatternPredicate, 25, // (Subtarget->is64Bit()) && (!Subtarget->isTargetWin64())
/*58025*/         OPC_EmitMergeInputChains1_0,
/*58026*/         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)
/*58034*/       /*Scope*/ 11, /*->58046*/
/*58035*/         OPC_CheckPatternPredicate, 26, // (Subtarget->isTargetWin64())
/*58037*/         OPC_EmitMergeInputChains1_0,
/*58038*/         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)
/*58046*/       0, /*End of Scope*/
/*58047*/     0, /*End of Scope*/
/*58048*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 26|128,3/*410*/,  TARGET_VAL(ISD::FP_TO_SINT),// ->58463
/*58053*/   OPC_Scope, 64|128,1/*192*/, /*->58248*/ // 4 children in Scope
/*58056*/     OPC_MoveChild, 0,
/*58058*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*58061*/     OPC_RecordMemRef,
/*58062*/     OPC_RecordNode, // #0 = 'ld' chained node
/*58063*/     OPC_RecordChild1, // #1 = $src
/*58064*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*58066*/     OPC_CheckPredicate, 3, // Predicate_load
/*58068*/     OPC_SwitchType /*2 cases */, 87,  MVT::f32,// ->58158
/*58071*/       OPC_MoveParent,
/*58072*/       OPC_SwitchType /*2 cases */, 40,  MVT::i32,// ->58115
/*58075*/         OPC_Scope, 18, /*->58095*/ // 2 children in Scope
/*58077*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*58079*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*58082*/           OPC_EmitMergeInputChains1_0,
/*58083*/           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)
/*58095*/         /*Scope*/ 18, /*->58114*/
/*58096*/           OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*58098*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*58101*/           OPC_EmitMergeInputChains1_0,
/*58102*/           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)
/*58114*/         0, /*End of Scope*/
                /*SwitchType*/ 40,  MVT::i64,// ->58157
/*58117*/         OPC_Scope, 18, /*->58137*/ // 2 children in Scope
/*58119*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*58121*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*58124*/           OPC_EmitMergeInputChains1_0,
/*58125*/           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)
/*58137*/         /*Scope*/ 18, /*->58156*/
/*58138*/           OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*58140*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*58143*/           OPC_EmitMergeInputChains1_0,
/*58144*/           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)
/*58156*/         0, /*End of Scope*/
                0, // EndSwitchType
              /*SwitchType*/ 87,  MVT::f64,// ->58247
/*58160*/       OPC_MoveParent,
/*58161*/       OPC_SwitchType /*2 cases */, 40,  MVT::i32,// ->58204
/*58164*/         OPC_Scope, 18, /*->58184*/ // 2 children in Scope
/*58166*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*58168*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*58171*/           OPC_EmitMergeInputChains1_0,
/*58172*/           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)
/*58184*/         /*Scope*/ 18, /*->58203*/
/*58185*/           OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*58187*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*58190*/           OPC_EmitMergeInputChains1_0,
/*58191*/           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)
/*58203*/         0, /*End of Scope*/
                /*SwitchType*/ 40,  MVT::i64,// ->58246
/*58206*/         OPC_Scope, 18, /*->58226*/ // 2 children in Scope
/*58208*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*58210*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*58213*/           OPC_EmitMergeInputChains1_0,
/*58214*/           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)
/*58226*/         /*Scope*/ 18, /*->58245*/
/*58227*/           OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*58229*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*58232*/           OPC_EmitMergeInputChains1_0,
/*58233*/           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)
/*58245*/         0, /*End of Scope*/
                0, // EndSwitchType
              0, // EndSwitchType
/*58248*/   /*Scope*/ 117, /*->58366*/
/*58249*/     OPC_RecordChild0, // #0 = $src
/*58250*/     OPC_Scope, 56, /*->58308*/ // 2 children in Scope
/*58252*/       OPC_CheckChild0Type, MVT::f32,
/*58254*/       OPC_SwitchType /*2 cases */, 24,  MVT::i32,// ->58281
/*58257*/         OPC_Scope, 10, /*->58269*/ // 2 children in Scope
/*58259*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*58261*/           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)
/*58269*/         /*Scope*/ 10, /*->58280*/
/*58270*/           OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*58272*/           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)
/*58280*/         0, /*End of Scope*/
                /*SwitchType*/ 24,  MVT::i64,// ->58307
/*58283*/         OPC_Scope, 10, /*->58295*/ // 2 children in Scope
/*58285*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*58287*/           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)
/*58295*/         /*Scope*/ 10, /*->58306*/
/*58296*/           OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*58298*/           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)
/*58306*/         0, /*End of Scope*/
                0, // EndSwitchType
/*58308*/     /*Scope*/ 56, /*->58365*/
/*58309*/       OPC_CheckChild0Type, MVT::f64,
/*58311*/       OPC_SwitchType /*2 cases */, 24,  MVT::i32,// ->58338
/*58314*/         OPC_Scope, 10, /*->58326*/ // 2 children in Scope
/*58316*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*58318*/           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)
/*58326*/         /*Scope*/ 10, /*->58337*/
/*58327*/           OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*58329*/           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)
/*58337*/         0, /*End of Scope*/
                /*SwitchType*/ 24,  MVT::i64,// ->58364
/*58340*/         OPC_Scope, 10, /*->58352*/ // 2 children in Scope
/*58342*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*58344*/           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)
/*58352*/         /*Scope*/ 10, /*->58363*/
/*58353*/           OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*58355*/           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)
/*58363*/         0, /*End of Scope*/
                0, // EndSwitchType
/*58365*/     0, /*End of Scope*/
/*58366*/   /*Scope*/ 35, /*->58402*/
/*58367*/     OPC_MoveChild, 0,
/*58369*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*58372*/     OPC_RecordMemRef,
/*58373*/     OPC_RecordNode, // #0 = 'ld' chained node
/*58374*/     OPC_RecordChild1, // #1 = $src
/*58375*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*58377*/     OPC_CheckPredicate, 3, // Predicate_load
/*58379*/     OPC_CheckPredicate, 23, // Predicate_memop
/*58381*/     OPC_CheckType, MVT::v4f64,
/*58383*/     OPC_MoveParent,
/*58384*/     OPC_CheckType, MVT::v4i32,
/*58386*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*58389*/     OPC_EmitMergeInputChains1_0,
/*58390*/     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)
/*58402*/   /*Scope*/ 59, /*->58462*/
/*58403*/     OPC_RecordChild0, // #0 = $src
/*58404*/     OPC_SwitchType /*2 cases */, 40,  MVT::v4i32,// ->58447
/*58407*/       OPC_Scope, 26, /*->58435*/ // 2 children in Scope
/*58409*/         OPC_CheckChild0Type, MVT::v4f32,
/*58411*/         OPC_Scope, 10, /*->58423*/ // 2 children in Scope
/*58413*/           OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*58415*/           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)
/*58423*/         /*Scope*/ 10, /*->58434*/
/*58424*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*58426*/           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)
/*58434*/         0, /*End of Scope*/
/*58435*/       /*Scope*/ 10, /*->58446*/
/*58436*/         OPC_CheckChild0Type, MVT::v4f64,
/*58438*/         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)
/*58446*/       0, /*End of Scope*/
              /*SwitchType*/ 12,  MVT::v8i32,// ->58461
/*58449*/       OPC_CheckChild0Type, MVT::v8f32,
/*58451*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*58453*/       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
/*58462*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 55|128,1/*183*/,  TARGET_VAL(X86ISD::UCOMI),// ->58650
/*58467*/   OPC_RecordChild0, // #0 = $src1
/*58468*/   OPC_Scope, 89, /*->58559*/ // 2 children in Scope
/*58470*/     OPC_CheckChild0Type, MVT::v4f32,
/*58472*/     OPC_Scope, 56, /*->58530*/ // 2 children in Scope
/*58474*/       OPC_MoveChild, 1,
/*58476*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*58479*/       OPC_RecordMemRef,
/*58480*/       OPC_RecordNode, // #1 = 'ld' chained node
/*58481*/       OPC_CheckFoldableChainNode,
/*58482*/       OPC_RecordChild1, // #2 = $src2
/*58483*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*58485*/       OPC_CheckPredicate, 3, // Predicate_load
/*58487*/       OPC_MoveParent,
/*58488*/       OPC_Scope, 19, /*->58509*/ // 2 children in Scope
/*58490*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*58492*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*58495*/         OPC_EmitMergeInputChains1_1,
/*58496*/         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)
/*58509*/       /*Scope*/ 19, /*->58529*/
/*58510*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*58512*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*58515*/         OPC_EmitMergeInputChains1_1,
/*58516*/         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)
/*58529*/       0, /*End of Scope*/
/*58530*/     /*Scope*/ 27, /*->58558*/
/*58531*/       OPC_RecordChild1, // #1 = $src2
/*58532*/       OPC_Scope, 11, /*->58545*/ // 2 children in Scope
/*58534*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*58536*/         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)
/*58545*/       /*Scope*/ 11, /*->58557*/
/*58546*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*58548*/         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)
/*58557*/       0, /*End of Scope*/
/*58558*/     0, /*End of Scope*/
/*58559*/   /*Scope*/ 89, /*->58649*/
/*58560*/     OPC_CheckChild0Type, MVT::v2f64,
/*58562*/     OPC_Scope, 56, /*->58620*/ // 2 children in Scope
/*58564*/       OPC_MoveChild, 1,
/*58566*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*58569*/       OPC_RecordMemRef,
/*58570*/       OPC_RecordNode, // #1 = 'ld' chained node
/*58571*/       OPC_CheckFoldableChainNode,
/*58572*/       OPC_RecordChild1, // #2 = $src2
/*58573*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*58575*/       OPC_CheckPredicate, 3, // Predicate_load
/*58577*/       OPC_MoveParent,
/*58578*/       OPC_Scope, 19, /*->58599*/ // 2 children in Scope
/*58580*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*58582*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*58585*/         OPC_EmitMergeInputChains1_1,
/*58586*/         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)
/*58599*/       /*Scope*/ 19, /*->58619*/
/*58600*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*58602*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*58605*/         OPC_EmitMergeInputChains1_1,
/*58606*/         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)
/*58619*/       0, /*End of Scope*/
/*58620*/     /*Scope*/ 27, /*->58648*/
/*58621*/       OPC_RecordChild1, // #1 = $src2
/*58622*/       OPC_Scope, 11, /*->58635*/ // 2 children in Scope
/*58624*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*58626*/         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)
/*58635*/       /*Scope*/ 11, /*->58647*/
/*58636*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*58638*/         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)
/*58647*/       0, /*End of Scope*/
/*58648*/     0, /*End of Scope*/
/*58649*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 55|128,1/*183*/,  TARGET_VAL(X86ISD::COMI),// ->58837
/*58654*/   OPC_RecordChild0, // #0 = $src1
/*58655*/   OPC_Scope, 89, /*->58746*/ // 2 children in Scope
/*58657*/     OPC_CheckChild0Type, MVT::v4f32,
/*58659*/     OPC_Scope, 56, /*->58717*/ // 2 children in Scope
/*58661*/       OPC_MoveChild, 1,
/*58663*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*58666*/       OPC_RecordMemRef,
/*58667*/       OPC_RecordNode, // #1 = 'ld' chained node
/*58668*/       OPC_CheckFoldableChainNode,
/*58669*/       OPC_RecordChild1, // #2 = $src2
/*58670*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*58672*/       OPC_CheckPredicate, 3, // Predicate_load
/*58674*/       OPC_MoveParent,
/*58675*/       OPC_Scope, 19, /*->58696*/ // 2 children in Scope
/*58677*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*58679*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*58682*/         OPC_EmitMergeInputChains1_1,
/*58683*/         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)
/*58696*/       /*Scope*/ 19, /*->58716*/
/*58697*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*58699*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*58702*/         OPC_EmitMergeInputChains1_1,
/*58703*/         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)
/*58716*/       0, /*End of Scope*/
/*58717*/     /*Scope*/ 27, /*->58745*/
/*58718*/       OPC_RecordChild1, // #1 = $src2
/*58719*/       OPC_Scope, 11, /*->58732*/ // 2 children in Scope
/*58721*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*58723*/         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)
/*58732*/       /*Scope*/ 11, /*->58744*/
/*58733*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*58735*/         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)
/*58744*/       0, /*End of Scope*/
/*58745*/     0, /*End of Scope*/
/*58746*/   /*Scope*/ 89, /*->58836*/
/*58747*/     OPC_CheckChild0Type, MVT::v2f64,
/*58749*/     OPC_Scope, 56, /*->58807*/ // 2 children in Scope
/*58751*/       OPC_MoveChild, 1,
/*58753*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*58756*/       OPC_RecordMemRef,
/*58757*/       OPC_RecordNode, // #1 = 'ld' chained node
/*58758*/       OPC_CheckFoldableChainNode,
/*58759*/       OPC_RecordChild1, // #2 = $src2
/*58760*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*58762*/       OPC_CheckPredicate, 3, // Predicate_load
/*58764*/       OPC_MoveParent,
/*58765*/       OPC_Scope, 19, /*->58786*/ // 2 children in Scope
/*58767*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*58769*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*58772*/         OPC_EmitMergeInputChains1_1,
/*58773*/         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)
/*58786*/       /*Scope*/ 19, /*->58806*/
/*58787*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*58789*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*58792*/         OPC_EmitMergeInputChains1_1,
/*58793*/         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)
/*58806*/       0, /*End of Scope*/
/*58807*/     /*Scope*/ 27, /*->58835*/
/*58808*/       OPC_RecordChild1, // #1 = $src2
/*58809*/       OPC_Scope, 11, /*->58822*/ // 2 children in Scope
/*58811*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*58813*/         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)
/*58822*/       /*Scope*/ 11, /*->58834*/
/*58823*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*58825*/         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)
/*58834*/       0, /*End of Scope*/
/*58835*/     0, /*End of Scope*/
/*58836*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 21|128,1/*149*/,  TARGET_VAL(X86ISD::PTEST),// ->58990
/*58841*/   OPC_RecordChild0, // #0 = $src1
/*58842*/   OPC_Scope, 91, /*->58935*/ // 2 children in Scope
/*58844*/     OPC_CheckChild0Type, MVT::v4f32,
/*58846*/     OPC_Scope, 58, /*->58906*/ // 2 children in Scope
/*58848*/       OPC_MoveChild, 1,
/*58850*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*58853*/       OPC_RecordMemRef,
/*58854*/       OPC_RecordNode, // #1 = 'ld' chained node
/*58855*/       OPC_CheckFoldableChainNode,
/*58856*/       OPC_RecordChild1, // #2 = $src2
/*58857*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*58859*/       OPC_CheckPredicate, 3, // Predicate_load
/*58861*/       OPC_CheckPredicate, 23, // Predicate_memop
/*58863*/       OPC_MoveParent,
/*58864*/       OPC_Scope, 19, /*->58885*/ // 2 children in Scope
/*58866*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*58868*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*58871*/         OPC_EmitMergeInputChains1_1,
/*58872*/         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)
/*58885*/       /*Scope*/ 19, /*->58905*/
/*58886*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*58888*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*58891*/         OPC_EmitMergeInputChains1_1,
/*58892*/         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)
/*58905*/       0, /*End of Scope*/
/*58906*/     /*Scope*/ 27, /*->58934*/
/*58907*/       OPC_RecordChild1, // #1 = $src2
/*58908*/       OPC_Scope, 11, /*->58921*/ // 2 children in Scope
/*58910*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*58912*/         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)
/*58921*/       /*Scope*/ 11, /*->58933*/
/*58922*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*58924*/         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)
/*58933*/       0, /*End of Scope*/
/*58934*/     0, /*End of Scope*/
/*58935*/   /*Scope*/ 53, /*->58989*/
/*58936*/     OPC_CheckChild0Type, MVT::v4i64,
/*58938*/     OPC_Scope, 35, /*->58975*/ // 2 children in Scope
/*58940*/       OPC_MoveChild, 1,
/*58942*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*58945*/       OPC_RecordMemRef,
/*58946*/       OPC_RecordNode, // #1 = 'ld' chained node
/*58947*/       OPC_CheckFoldableChainNode,
/*58948*/       OPC_RecordChild1, // #2 = $src2
/*58949*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*58951*/       OPC_CheckPredicate, 3, // Predicate_load
/*58953*/       OPC_CheckPredicate, 23, // Predicate_memop
/*58955*/       OPC_MoveParent,
/*58956*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*58958*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*58961*/       OPC_EmitMergeInputChains1_1,
/*58962*/       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)
/*58975*/     /*Scope*/ 12, /*->58988*/
/*58976*/       OPC_RecordChild1, // #1 = $src2
/*58977*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*58979*/       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)
/*58988*/     0, /*End of Scope*/
/*58989*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 91|128,1/*219*/,  TARGET_VAL(X86ISD::TESTP),// ->59213
/*58994*/   OPC_RecordChild0, // #0 = $src1
/*58995*/   OPC_Scope, 53, /*->59050*/ // 4 children in Scope
/*58997*/     OPC_CheckChild0Type, MVT::v4f32,
/*58999*/     OPC_Scope, 35, /*->59036*/ // 2 children in Scope
/*59001*/       OPC_MoveChild, 1,
/*59003*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*59006*/       OPC_RecordMemRef,
/*59007*/       OPC_RecordNode, // #1 = 'ld' chained node
/*59008*/       OPC_CheckFoldableChainNode,
/*59009*/       OPC_RecordChild1, // #2 = $src2
/*59010*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*59012*/       OPC_CheckPredicate, 3, // Predicate_load
/*59014*/       OPC_CheckPredicate, 23, // Predicate_memop
/*59016*/       OPC_MoveParent,
/*59017*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*59019*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*59022*/       OPC_EmitMergeInputChains1_1,
/*59023*/       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)
/*59036*/     /*Scope*/ 12, /*->59049*/
/*59037*/       OPC_RecordChild1, // #1 = $src2
/*59038*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*59040*/       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)
/*59049*/     0, /*End of Scope*/
/*59050*/   /*Scope*/ 53, /*->59104*/
/*59051*/     OPC_CheckChild0Type, MVT::v8f32,
/*59053*/     OPC_Scope, 35, /*->59090*/ // 2 children in Scope
/*59055*/       OPC_MoveChild, 1,
/*59057*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*59060*/       OPC_RecordMemRef,
/*59061*/       OPC_RecordNode, // #1 = 'ld' chained node
/*59062*/       OPC_CheckFoldableChainNode,
/*59063*/       OPC_RecordChild1, // #2 = $src2
/*59064*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*59066*/       OPC_CheckPredicate, 3, // Predicate_load
/*59068*/       OPC_CheckPredicate, 23, // Predicate_memop
/*59070*/       OPC_MoveParent,
/*59071*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*59073*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*59076*/       OPC_EmitMergeInputChains1_1,
/*59077*/       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)
/*59090*/     /*Scope*/ 12, /*->59103*/
/*59091*/       OPC_RecordChild1, // #1 = $src2
/*59092*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*59094*/       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)
/*59103*/     0, /*End of Scope*/
/*59104*/   /*Scope*/ 53, /*->59158*/
/*59105*/     OPC_CheckChild0Type, MVT::v2f64,
/*59107*/     OPC_Scope, 35, /*->59144*/ // 2 children in Scope
/*59109*/       OPC_MoveChild, 1,
/*59111*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*59114*/       OPC_RecordMemRef,
/*59115*/       OPC_RecordNode, // #1 = 'ld' chained node
/*59116*/       OPC_CheckFoldableChainNode,
/*59117*/       OPC_RecordChild1, // #2 = $src2
/*59118*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*59120*/       OPC_CheckPredicate, 3, // Predicate_load
/*59122*/       OPC_CheckPredicate, 23, // Predicate_memop
/*59124*/       OPC_MoveParent,
/*59125*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*59127*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*59130*/       OPC_EmitMergeInputChains1_1,
/*59131*/       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)
/*59144*/     /*Scope*/ 12, /*->59157*/
/*59145*/       OPC_RecordChild1, // #1 = $src2
/*59146*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*59148*/       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)
/*59157*/     0, /*End of Scope*/
/*59158*/   /*Scope*/ 53, /*->59212*/
/*59159*/     OPC_CheckChild0Type, MVT::v4f64,
/*59161*/     OPC_Scope, 35, /*->59198*/ // 2 children in Scope
/*59163*/       OPC_MoveChild, 1,
/*59165*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*59168*/       OPC_RecordMemRef,
/*59169*/       OPC_RecordNode, // #1 = 'ld' chained node
/*59170*/       OPC_CheckFoldableChainNode,
/*59171*/       OPC_RecordChild1, // #2 = $src2
/*59172*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*59174*/       OPC_CheckPredicate, 3, // Predicate_load
/*59176*/       OPC_CheckPredicate, 23, // Predicate_memop
/*59178*/       OPC_MoveParent,
/*59179*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*59181*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*59184*/       OPC_EmitMergeInputChains1_1,
/*59185*/       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)
/*59198*/     /*Scope*/ 12, /*->59211*/
/*59199*/       OPC_RecordChild1, // #1 = $src2
/*59200*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*59202*/       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)
/*59211*/     0, /*End of Scope*/
/*59212*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 5|128,1/*133*/,  TARGET_VAL(ISD::CTPOP),// ->59350
/*59217*/   OPC_Scope, 87, /*->59306*/ // 2 children in Scope
/*59219*/     OPC_MoveChild, 0,
/*59221*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*59224*/     OPC_RecordMemRef,
/*59225*/     OPC_RecordNode, // #0 = 'ld' chained node
/*59226*/     OPC_RecordChild1, // #1 = $src
/*59227*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*59229*/     OPC_Scope, 24, /*->59255*/ // 3 children in Scope
/*59231*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*59233*/       OPC_MoveParent,
/*59234*/       OPC_CheckType, MVT::i16,
/*59236*/       OPC_CheckPatternPredicate, 29, // (Subtarget->hasPOPCNT())
/*59238*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*59241*/       OPC_EmitMergeInputChains1_0,
/*59242*/       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)
/*59255*/     /*Scope*/ 24, /*->59280*/
/*59256*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*59258*/       OPC_MoveParent,
/*59259*/       OPC_CheckType, MVT::i32,
/*59261*/       OPC_CheckPatternPredicate, 29, // (Subtarget->hasPOPCNT())
/*59263*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*59266*/       OPC_EmitMergeInputChains1_0,
/*59267*/       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)
/*59280*/     /*Scope*/ 24, /*->59305*/
/*59281*/       OPC_CheckPredicate, 3, // Predicate_load
/*59283*/       OPC_MoveParent,
/*59284*/       OPC_CheckType, MVT::i64,
/*59286*/       OPC_CheckPatternPredicate, 29, // (Subtarget->hasPOPCNT())
/*59288*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*59291*/       OPC_EmitMergeInputChains1_0,
/*59292*/       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)
/*59305*/     0, /*End of Scope*/
/*59306*/   /*Scope*/ 42, /*->59349*/
/*59307*/     OPC_RecordChild0, // #0 = $src
/*59308*/     OPC_SwitchType /*3 cases */, 11,  MVT::i16,// ->59322
/*59311*/       OPC_CheckPatternPredicate, 29, // (Subtarget->hasPOPCNT())
/*59313*/       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,// ->59335
/*59324*/       OPC_CheckPatternPredicate, 29, // (Subtarget->hasPOPCNT())
/*59326*/       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,// ->59348
/*59337*/       OPC_CheckPatternPredicate, 29, // (Subtarget->hasPOPCNT())
/*59339*/       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
/*59349*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 5|128,4/*517*/,  TARGET_VAL(ISD::SCALAR_TO_VECTOR),// ->59871
/*59354*/   OPC_Scope, 35, /*->59391*/ // 6 children in Scope
/*59356*/     OPC_MoveChild, 0,
/*59358*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*59361*/     OPC_RecordMemRef,
/*59362*/     OPC_RecordNode, // #0 = 'ld' chained node
/*59363*/     OPC_RecordChild1, // #1 = $src
/*59364*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*59366*/     OPC_CheckPredicate, 7, // Predicate_loadi32
/*59368*/     OPC_CheckType, MVT::i32,
/*59370*/     OPC_MoveParent,
/*59371*/     OPC_CheckType, MVT::x86mmx,
/*59373*/     OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*59375*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*59378*/     OPC_EmitMergeInputChains1_0,
/*59379*/     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)
/*59391*/   /*Scope*/ 15, /*->59407*/
/*59392*/     OPC_RecordChild0, // #0 = $src
/*59393*/     OPC_CheckChild0Type, MVT::i32,
/*59395*/     OPC_CheckType, MVT::x86mmx,
/*59397*/     OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*59399*/     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)
/*59407*/   /*Scope*/ 1|128,1/*129*/, /*->59538*/
/*59409*/     OPC_MoveChild, 0,
/*59411*/     OPC_SwitchOpcode /*2 cases */, 101,  TARGET_VAL(ISD::LOAD),// ->59516
/*59415*/       OPC_RecordMemRef,
/*59416*/       OPC_RecordNode, // #0 = 'ld' chained node
/*59417*/       OPC_RecordChild1, // #1 = $src
/*59418*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*59420*/       OPC_SwitchType /*2 cases */, 45,  MVT::i32,// ->59468
/*59423*/         OPC_CheckPredicate, 7, // Predicate_loadi32
/*59425*/         OPC_MoveParent,
/*59426*/         OPC_CheckType, MVT::v4i32,
/*59428*/         OPC_Scope, 18, /*->59448*/ // 2 children in Scope
/*59430*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*59432*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*59435*/           OPC_EmitMergeInputChains1_0,
/*59436*/           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)
/*59448*/         /*Scope*/ 18, /*->59467*/
/*59449*/           OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*59451*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*59454*/           OPC_EmitMergeInputChains1_0,
/*59455*/           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)
/*59467*/         0, /*End of Scope*/
                /*SwitchType*/ 45,  MVT::i64,// ->59515
/*59470*/         OPC_CheckPredicate, 3, // Predicate_load
/*59472*/         OPC_MoveParent,
/*59473*/         OPC_CheckType, MVT::v2i64,
/*59475*/         OPC_Scope, 18, /*->59495*/ // 2 children in Scope
/*59477*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*59479*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*59482*/           OPC_EmitMergeInputChains1_0,
/*59483*/           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)
/*59495*/         /*Scope*/ 18, /*->59514*/
/*59496*/           OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*59498*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*59501*/           OPC_EmitMergeInputChains1_0,
/*59502*/           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)
/*59514*/         0, /*End of Scope*/
                0, // EndSwitchType
              /*SwitchOpcode*/ 18,  TARGET_VAL(ISD::BITCAST),// ->59537
/*59519*/       OPC_RecordChild0, // #0 = $src
/*59520*/       OPC_CheckChild0Type, MVT::x86mmx,
/*59522*/       OPC_CheckType, MVT::i64,
/*59524*/       OPC_MoveParent,
/*59525*/       OPC_CheckType, MVT::v2i64,
/*59527*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*59529*/       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
/*59538*/   /*Scope*/ 59, /*->59598*/
/*59539*/     OPC_RecordChild0, // #0 = $src
/*59540*/     OPC_SwitchType /*2 cases */, 26,  MVT::v4i32,// ->59569
/*59543*/       OPC_CheckChild0Type, MVT::i32,
/*59545*/       OPC_Scope, 10, /*->59557*/ // 2 children in Scope
/*59547*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*59549*/         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)
/*59557*/       /*Scope*/ 10, /*->59568*/
/*59558*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*59560*/         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)
/*59568*/       0, /*End of Scope*/
              /*SwitchType*/ 26,  MVT::v2i64,// ->59597
/*59571*/       OPC_CheckChild0Type, MVT::i64,
/*59573*/       OPC_Scope, 10, /*->59585*/ // 2 children in Scope
/*59575*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*59577*/         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)
/*59585*/       /*Scope*/ 10, /*->59596*/
/*59586*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*59588*/         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)
/*59596*/       0, /*End of Scope*/
              0, // EndSwitchType
/*59598*/   /*Scope*/ 40|128,1/*168*/, /*->59768*/
/*59600*/     OPC_MoveChild, 0,
/*59602*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*59605*/     OPC_RecordMemRef,
/*59606*/     OPC_RecordNode, // #0 = 'ld' chained node
/*59607*/     OPC_RecordChild1, // #1 = $src
/*59608*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*59610*/     OPC_CheckPredicate, 3, // Predicate_load
/*59612*/     OPC_SwitchType /*2 cases */, 75,  MVT::f32,// ->59690
/*59615*/       OPC_MoveParent,
/*59616*/       OPC_CheckType, MVT::v4f32,
/*59618*/       OPC_Scope, 34, /*->59654*/ // 2 children in Scope
/*59620*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*59622*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*59625*/         OPC_EmitMergeInputChains1_0,
/*59626*/         OPC_EmitInteger, MVT::i32, 0, 
/*59629*/         OPC_EmitNode, TARGET_VAL(X86::MOVSSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::f32, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #8 
/*59641*/         OPC_EmitInteger, MVT::i32, X86::sub_ss,
/*59644*/         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)
/*59654*/       /*Scope*/ 34, /*->59689*/
/*59655*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*59657*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*59660*/         OPC_EmitMergeInputChains1_0,
/*59661*/         OPC_EmitInteger, MVT::i32, 0, 
/*59664*/         OPC_EmitNode, TARGET_VAL(X86::VMOVSSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::f32, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #8 
/*59676*/         OPC_EmitInteger, MVT::i32, X86::sub_ss,
/*59679*/         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)
/*59689*/       0, /*End of Scope*/
              /*SwitchType*/ 75,  MVT::f64,// ->59767
/*59692*/       OPC_MoveParent,
/*59693*/       OPC_CheckType, MVT::v2f64,
/*59695*/       OPC_Scope, 34, /*->59731*/ // 2 children in Scope
/*59697*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*59699*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*59702*/         OPC_EmitMergeInputChains1_0,
/*59703*/         OPC_EmitInteger, MVT::i64, 0, 
/*59706*/         OPC_EmitNode, TARGET_VAL(X86::MOVSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::f64, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #8 
/*59718*/         OPC_EmitInteger, MVT::i32, X86::sub_sd,
/*59721*/         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)
/*59731*/       /*Scope*/ 34, /*->59766*/
/*59732*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*59734*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*59737*/         OPC_EmitMergeInputChains1_0,
/*59738*/         OPC_EmitInteger, MVT::i64, 0, 
/*59741*/         OPC_EmitNode, TARGET_VAL(X86::VMOVSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::f64, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #8 
/*59753*/         OPC_EmitInteger, MVT::i32, X86::sub_sd,
/*59756*/         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)
/*59766*/       0, /*End of Scope*/
              0, // EndSwitchType
/*59768*/   /*Scope*/ 101, /*->59870*/
/*59769*/     OPC_RecordChild0, // #0 = $src
/*59770*/     OPC_Scope, 48, /*->59820*/ // 2 children in Scope
/*59772*/       OPC_CheckChild0Type, MVT::f32,
/*59774*/       OPC_SwitchType /*2 cases */, 20,  MVT::v4f32,// ->59797
/*59777*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      1/*#VTs*/, MVT::v4f32, 0/*#Ops*/,  // Results = #1 
/*59784*/         OPC_EmitInteger, MVT::i32, X86::sub_ss,
/*59787*/         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,// ->59819
/*59799*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      1/*#VTs*/, MVT::v8f32, 0/*#Ops*/,  // Results = #1 
/*59806*/         OPC_EmitInteger, MVT::i32, X86::sub_ss,
/*59809*/         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
/*59820*/     /*Scope*/ 48, /*->59869*/
/*59821*/       OPC_CheckChild0Type, MVT::f64,
/*59823*/       OPC_SwitchType /*2 cases */, 20,  MVT::v2f64,// ->59846
/*59826*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      1/*#VTs*/, MVT::v2f64, 0/*#Ops*/,  // Results = #1 
/*59833*/         OPC_EmitInteger, MVT::i32, X86::sub_sd,
/*59836*/         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,// ->59868
/*59848*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      1/*#VTs*/, MVT::v4f64, 0/*#Ops*/,  // Results = #1 
/*59855*/         OPC_EmitInteger, MVT::i32, X86::sub_sd,
/*59858*/         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
/*59869*/     0, /*End of Scope*/
/*59870*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 42,  TARGET_VAL(X86ISD::MOVDQ2Q),// ->59916
/*59874*/   OPC_Scope, 29, /*->59905*/ // 2 children in Scope
/*59876*/     OPC_MoveChild, 0,
/*59878*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*59881*/     OPC_RecordMemRef,
/*59882*/     OPC_RecordNode, // #0 = 'ld' chained node
/*59883*/     OPC_RecordChild1, // #1 = $src
/*59884*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*59886*/     OPC_CheckPredicate, 3, // Predicate_load
/*59888*/     OPC_MoveParent,
/*59889*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*59892*/     OPC_EmitMergeInputChains1_0,
/*59893*/     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)
/*59905*/   /*Scope*/ 9, /*->59915*/
/*59906*/     OPC_RecordChild0, // #0 = $src
/*59907*/     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)
/*59915*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 63|128,13/*1727*/,  TARGET_VAL(ISD::ADD),// ->61647
/*59920*/   OPC_Scope, 110, /*->60032*/ // 11 children in Scope
/*59922*/     OPC_RecordChild0, // #0 = $src1
/*59923*/     OPC_MoveChild, 1,
/*59925*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*59928*/     OPC_RecordMemRef,
/*59929*/     OPC_RecordNode, // #1 = 'ld' chained node
/*59930*/     OPC_CheckFoldableChainNode,
/*59931*/     OPC_RecordChild1, // #2 = $src2
/*59932*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*59934*/     OPC_Scope, 23, /*->59959*/ // 4 children in Scope
/*59936*/       OPC_CheckPredicate, 3, // Predicate_load
/*59938*/       OPC_MoveParent,
/*59939*/       OPC_CheckType, MVT::i8,
/*59941*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*59944*/       OPC_EmitMergeInputChains1_1,
/*59945*/       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)
/*59959*/     /*Scope*/ 23, /*->59983*/
/*59960*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*59962*/       OPC_MoveParent,
/*59963*/       OPC_CheckType, MVT::i16,
/*59965*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*59968*/       OPC_EmitMergeInputChains1_1,
/*59969*/       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)
/*59983*/     /*Scope*/ 23, /*->60007*/
/*59984*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*59986*/       OPC_MoveParent,
/*59987*/       OPC_CheckType, MVT::i32,
/*59989*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*59992*/       OPC_EmitMergeInputChains1_1,
/*59993*/       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)
/*60007*/     /*Scope*/ 23, /*->60031*/
/*60008*/       OPC_CheckPredicate, 3, // Predicate_load
/*60010*/       OPC_MoveParent,
/*60011*/       OPC_CheckType, MVT::i64,
/*60013*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*60016*/       OPC_EmitMergeInputChains1_1,
/*60017*/       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)
/*60031*/     0, /*End of Scope*/
/*60032*/   /*Scope*/ 65|128,1/*193*/, /*->60227*/
/*60034*/     OPC_MoveChild, 0,
/*60036*/     OPC_SwitchOpcode /*2 cases */, 108,  TARGET_VAL(ISD::LOAD),// ->60148
/*60040*/       OPC_RecordMemRef,
/*60041*/       OPC_RecordNode, // #0 = 'ld' chained node
/*60042*/       OPC_CheckFoldableChainNode,
/*60043*/       OPC_RecordChild1, // #1 = $src2
/*60044*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*60046*/       OPC_Scope, 24, /*->60072*/ // 4 children in Scope
/*60048*/         OPC_CheckPredicate, 3, // Predicate_load
/*60050*/         OPC_MoveParent,
/*60051*/         OPC_RecordChild1, // #2 = $src1
/*60052*/         OPC_CheckType, MVT::i8,
/*60054*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*60057*/         OPC_EmitMergeInputChains1_0,
/*60058*/         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)
/*60072*/       /*Scope*/ 24, /*->60097*/
/*60073*/         OPC_CheckPredicate, 6, // Predicate_loadi16
/*60075*/         OPC_MoveParent,
/*60076*/         OPC_RecordChild1, // #2 = $src1
/*60077*/         OPC_CheckType, MVT::i16,
/*60079*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*60082*/         OPC_EmitMergeInputChains1_0,
/*60083*/         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)
/*60097*/       /*Scope*/ 24, /*->60122*/
/*60098*/         OPC_CheckPredicate, 7, // Predicate_loadi32
/*60100*/         OPC_MoveParent,
/*60101*/         OPC_RecordChild1, // #2 = $src1
/*60102*/         OPC_CheckType, MVT::i32,
/*60104*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*60107*/         OPC_EmitMergeInputChains1_0,
/*60108*/         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)
/*60122*/       /*Scope*/ 24, /*->60147*/
/*60123*/         OPC_CheckPredicate, 3, // Predicate_load
/*60125*/         OPC_MoveParent,
/*60126*/         OPC_RecordChild1, // #2 = $src1
/*60127*/         OPC_CheckType, MVT::i64,
/*60129*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*60132*/         OPC_EmitMergeInputChains1_0,
/*60133*/         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)
/*60147*/       0, /*End of Scope*/
              /*SwitchOpcode*/ 75,  TARGET_VAL(ISD::AND),// ->60226
/*60151*/       OPC_MoveChild, 0,
/*60153*/       OPC_CheckOpcode, TARGET_VAL(X86ISD::SETCC_CARRY),
/*60156*/       OPC_MoveChild, 0,
/*60158*/       OPC_CheckInteger, 2, 
/*60160*/       OPC_MoveParent,
/*60161*/       OPC_RecordChild1, // #0 = physreg input EFLAGS
/*60162*/       OPC_MoveParent,
/*60163*/       OPC_MoveChild, 1,
/*60165*/       OPC_CheckInteger, 1, 
/*60167*/       OPC_MoveParent,
/*60168*/       OPC_MoveParent,
/*60169*/       OPC_RecordChild1, // #1 = $op
/*60170*/       OPC_SwitchType /*3 cases */, 16,  MVT::i8,// ->60189
/*60173*/         OPC_EmitInteger, MVT::i8, 0, 
/*60176*/         OPC_EmitCopyToReg, 0, X86::EFLAGS,
/*60179*/         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,// ->60207
/*60191*/         OPC_EmitInteger, MVT::i32, 0, 
/*60194*/         OPC_EmitCopyToReg, 0, X86::EFLAGS,
/*60197*/         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,// ->60225
/*60209*/         OPC_EmitInteger, MVT::i64, 0, 
/*60212*/         OPC_EmitCopyToReg, 0, X86::EFLAGS,
/*60215*/         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
/*60227*/   /*Scope*/ 80, /*->60308*/
/*60228*/     OPC_RecordChild0, // #0 = $op
/*60229*/     OPC_MoveChild, 1,
/*60231*/     OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/*60234*/     OPC_MoveChild, 0,
/*60236*/     OPC_CheckOpcode, TARGET_VAL(X86ISD::SETCC_CARRY),
/*60239*/     OPC_MoveChild, 0,
/*60241*/     OPC_CheckInteger, 2, 
/*60243*/     OPC_MoveParent,
/*60244*/     OPC_RecordChild1, // #1 = physreg input EFLAGS
/*60245*/     OPC_MoveParent,
/*60246*/     OPC_MoveChild, 1,
/*60248*/     OPC_CheckInteger, 1, 
/*60250*/     OPC_MoveParent,
/*60251*/     OPC_MoveParent,
/*60252*/     OPC_SwitchType /*3 cases */, 16,  MVT::i8,// ->60271
/*60255*/       OPC_EmitInteger, MVT::i8, 0, 
/*60258*/       OPC_EmitCopyToReg, 1, X86::EFLAGS,
/*60261*/       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,// ->60289
/*60273*/       OPC_EmitInteger, MVT::i32, 0, 
/*60276*/       OPC_EmitCopyToReg, 1, X86::EFLAGS,
/*60279*/       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,// ->60307
/*60291*/       OPC_EmitInteger, MVT::i64, 0, 
/*60294*/       OPC_EmitCopyToReg, 1, X86::EFLAGS,
/*60297*/       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
/*60308*/   /*Scope*/ 60, /*->60369*/
/*60309*/     OPC_RecordNode, // #0 = $src
/*60310*/     OPC_SwitchType /*2 cases */, 38,  MVT::i32,// ->60351
/*60313*/       OPC_Scope, 17, /*->60332*/ // 2 children in Scope
/*60315*/         OPC_CheckPatternPredicate, 3, // (!Subtarget->is64Bit())
/*60317*/         OPC_CheckComplexPat, /*CP*/3, /*#*/0, // SelectLEAAddr:$src #1 #2 #3 #4 #5
/*60320*/         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)
/*60332*/       /*Scope*/ 17, /*->60350*/
/*60333*/         OPC_CheckPatternPredicate, 4, // (Subtarget->is64Bit())
/*60335*/         OPC_CheckComplexPat, /*CP*/3, /*#*/0, // SelectLEAAddr:$src #1 #2 #3 #4 #5
/*60338*/         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)
/*60350*/       0, /*End of Scope*/
              /*SwitchType*/ 15,  MVT::i64,// ->60368
/*60353*/       OPC_CheckComplexPat, /*CP*/4, /*#*/0, // SelectLEAAddr:$src #1 #2 #3 #4 #5
/*60356*/       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
/*60369*/   /*Scope*/ 113, /*->60483*/
/*60370*/     OPC_RecordChild0, // #0 = $src1
/*60371*/     OPC_MoveChild, 1,
/*60373*/     OPC_CheckOpcode, TARGET_VAL(X86ISD::Wrapper),
/*60376*/     OPC_RecordChild0, // #1 = $src2
/*60377*/     OPC_MoveChild, 0,
/*60379*/     OPC_SwitchOpcode /*6 cases */, 14,  TARGET_VAL(ISD::TargetConstantPool),// ->60397
/*60383*/       OPC_MoveParent,
/*60384*/       OPC_MoveParent,
/*60385*/       OPC_CheckType, MVT::i32,
/*60387*/       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),// ->60414
/*60400*/       OPC_MoveParent,
/*60401*/       OPC_MoveParent,
/*60402*/       OPC_CheckType, MVT::i32,
/*60404*/       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),// ->60431
/*60417*/       OPC_MoveParent,
/*60418*/       OPC_MoveParent,
/*60419*/       OPC_CheckType, MVT::i32,
/*60421*/       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),// ->60448
/*60434*/       OPC_MoveParent,
/*60435*/       OPC_MoveParent,
/*60436*/       OPC_CheckType, MVT::i32,
/*60438*/       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),// ->60465
/*60451*/       OPC_MoveParent,
/*60452*/       OPC_MoveParent,
/*60453*/       OPC_CheckType, MVT::i32,
/*60455*/       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),// ->60482
/*60468*/       OPC_MoveParent,
/*60469*/       OPC_MoveParent,
/*60470*/       OPC_CheckType, MVT::i64,
/*60472*/       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
/*60483*/   /*Scope*/ 118, /*->60602*/
/*60484*/     OPC_MoveChild, 0,
/*60486*/     OPC_CheckOpcode, TARGET_VAL(X86ISD::Wrapper),
/*60489*/     OPC_RecordChild0, // #0 = $src2
/*60490*/     OPC_MoveChild, 0,
/*60492*/     OPC_SwitchOpcode /*6 cases */, 15,  TARGET_VAL(ISD::TargetConstantPool),// ->60511
/*60496*/       OPC_MoveParent,
/*60497*/       OPC_MoveParent,
/*60498*/       OPC_RecordChild1, // #1 = $src1
/*60499*/       OPC_CheckType, MVT::i32,
/*60501*/       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),// ->60529
/*60514*/       OPC_MoveParent,
/*60515*/       OPC_MoveParent,
/*60516*/       OPC_RecordChild1, // #1 = $src1
/*60517*/       OPC_CheckType, MVT::i32,
/*60519*/       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),// ->60547
/*60532*/       OPC_MoveParent,
/*60533*/       OPC_MoveParent,
/*60534*/       OPC_RecordChild1, // #1 = $src1
/*60535*/       OPC_CheckType, MVT::i32,
/*60537*/       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),// ->60565
/*60550*/       OPC_MoveParent,
/*60551*/       OPC_MoveParent,
/*60552*/       OPC_RecordChild1, // #1 = $src1
/*60553*/       OPC_CheckType, MVT::i32,
/*60555*/       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),// ->60583
/*60568*/       OPC_MoveParent,
/*60569*/       OPC_MoveParent,
/*60570*/       OPC_RecordChild1, // #1 = $src1
/*60571*/       OPC_CheckType, MVT::i32,
/*60573*/       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),// ->60601
/*60586*/       OPC_MoveParent,
/*60587*/       OPC_MoveParent,
/*60588*/       OPC_RecordChild1, // #1 = $src1
/*60589*/       OPC_CheckType, MVT::i64,
/*60591*/       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
/*60602*/   /*Scope*/ 0|128,5/*640*/, /*->61244*/
/*60604*/     OPC_RecordChild0, // #0 = $src
/*60605*/     OPC_Scope, 36|128,2/*292*/, /*->60900*/ // 3 children in Scope
/*60608*/       OPC_MoveChild, 1,
/*60610*/       OPC_Scope, 83, /*->60695*/ // 4 children in Scope
/*60612*/         OPC_CheckInteger, 1, 
/*60614*/         OPC_MoveParent,
/*60615*/         OPC_SwitchType /*4 cases */, 26,  MVT::i16,// ->60644
/*60618*/           OPC_Scope, 11, /*->60631*/ // 2 children in Scope
/*60620*/             OPC_CheckPatternPredicate, 3, // (!Subtarget->is64Bit())
/*60622*/             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)
/*60631*/           /*Scope*/ 11, /*->60643*/
/*60632*/             OPC_CheckPatternPredicate, 4, // (Subtarget->is64Bit())
/*60634*/             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)
/*60643*/           0, /*End of Scope*/
                  /*SwitchType*/ 26,  MVT::i32,// ->60672
/*60646*/           OPC_Scope, 11, /*->60659*/ // 2 children in Scope
/*60648*/             OPC_CheckPatternPredicate, 3, // (!Subtarget->is64Bit())
/*60650*/             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)
/*60659*/           /*Scope*/ 11, /*->60671*/
/*60660*/             OPC_CheckPatternPredicate, 4, // (Subtarget->is64Bit())
/*60662*/             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)
/*60671*/           0, /*End of Scope*/
                  /*SwitchType*/ 9,  MVT::i64,// ->60683
/*60674*/           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,// ->60694
/*60685*/           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
/*60695*/       /*Scope*/ 92, /*->60788*/
/*60696*/         OPC_CheckInteger, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/*60707*/         OPC_MoveParent,
/*60708*/         OPC_SwitchType /*4 cases */, 26,  MVT::i16,// ->60737
/*60711*/           OPC_Scope, 11, /*->60724*/ // 2 children in Scope
/*60713*/             OPC_CheckPatternPredicate, 3, // (!Subtarget->is64Bit())
/*60715*/             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)
/*60724*/           /*Scope*/ 11, /*->60736*/
/*60725*/             OPC_CheckPatternPredicate, 4, // (Subtarget->is64Bit())
/*60727*/             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)
/*60736*/           0, /*End of Scope*/
                  /*SwitchType*/ 26,  MVT::i32,// ->60765
/*60739*/           OPC_Scope, 11, /*->60752*/ // 2 children in Scope
/*60741*/             OPC_CheckPatternPredicate, 3, // (!Subtarget->is64Bit())
/*60743*/             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)
/*60752*/           /*Scope*/ 11, /*->60764*/
/*60753*/             OPC_CheckPatternPredicate, 4, // (Subtarget->is64Bit())
/*60755*/             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)
/*60764*/           0, /*End of Scope*/
                  /*SwitchType*/ 9,  MVT::i64,// ->60776
/*60767*/           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,// ->60787
/*60778*/           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
/*60788*/       /*Scope*/ 78, /*->60867*/
/*60789*/         OPC_CheckInteger, 0|128,1/*128*/, 
/*60792*/         OPC_MoveParent,
/*60793*/         OPC_SwitchType /*3 cases */, 22,  MVT::i16,// ->60818
/*60796*/           OPC_EmitInteger, MVT::i16, 0|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551488*/, 
/*60808*/           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,// ->60842
/*60820*/           OPC_EmitInteger, MVT::i32, 0|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551488*/, 
/*60832*/           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,// ->60866
/*60844*/           OPC_EmitInteger, MVT::i64, 0|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551488*/, 
/*60856*/           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
/*60867*/       /*Scope*/ 31, /*->60899*/
/*60868*/         OPC_CheckInteger, 0|128,0|128,0|128,0|128,8/*2147483648*/, 
/*60874*/         OPC_MoveParent,
/*60875*/         OPC_CheckType, MVT::i64,
/*60877*/         OPC_EmitInteger, MVT::i64, 0|128,0|128,0|128,0|128,120|128,127|128,127|128,127|128,127|128,1/*18446744071562067968*/, 
/*60889*/         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)
/*60899*/       0, /*End of Scope*/
/*60900*/     /*Scope*/ 53|128,1/*181*/, /*->61083*/
/*60902*/       OPC_RecordChild1, // #1 = $src2
/*60903*/       OPC_Scope, 125, /*->61030*/ // 5 children in Scope
/*60905*/         OPC_MoveChild, 1,
/*60907*/         OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*60910*/         OPC_Scope, 17, /*->60929*/ // 5 children in Scope
/*60912*/           OPC_CheckPredicate, 8, // Predicate_i16immSExt8
/*60914*/           OPC_MoveParent,
/*60915*/           OPC_CheckType, MVT::i16,
/*60917*/           OPC_EmitConvertToTarget, 1,
/*60919*/           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)
/*60929*/         /*Scope*/ 17, /*->60947*/
/*60930*/           OPC_CheckPredicate, 9, // Predicate_i32immSExt8
/*60932*/           OPC_MoveParent,
/*60933*/           OPC_CheckType, MVT::i32,
/*60935*/           OPC_EmitConvertToTarget, 1,
/*60937*/           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)
/*60947*/         /*Scope*/ 17, /*->60965*/
/*60948*/           OPC_CheckPredicate, 10, // Predicate_i64immSExt8
/*60950*/           OPC_MoveParent,
/*60951*/           OPC_CheckType, MVT::i64,
/*60953*/           OPC_EmitConvertToTarget, 1,
/*60955*/           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)
/*60965*/         /*Scope*/ 17, /*->60983*/
/*60966*/           OPC_CheckPredicate, 11, // Predicate_i64immSExt32
/*60968*/           OPC_MoveParent,
/*60969*/           OPC_CheckType, MVT::i64,
/*60971*/           OPC_EmitConvertToTarget, 1,
/*60973*/           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)
/*60983*/         /*Scope*/ 45, /*->61029*/
/*60984*/           OPC_MoveParent,
/*60985*/           OPC_SwitchType /*3 cases */, 12,  MVT::i8,// ->61000
/*60988*/             OPC_EmitConvertToTarget, 1,
/*60990*/             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,// ->61014
/*61002*/             OPC_EmitConvertToTarget, 1,
/*61004*/             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,// ->61028
/*61016*/             OPC_EmitConvertToTarget, 1,
/*61018*/             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
/*61029*/         0, /*End of Scope*/
/*61030*/       /*Scope*/ 12, /*->61043*/
/*61031*/         OPC_CheckType, MVT::i8,
/*61033*/         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)
/*61043*/       /*Scope*/ 12, /*->61056*/
/*61044*/         OPC_CheckType, MVT::i16,
/*61046*/         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)
/*61056*/       /*Scope*/ 12, /*->61069*/
/*61057*/         OPC_CheckType, MVT::i32,
/*61059*/         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)
/*61069*/       /*Scope*/ 12, /*->61082*/
/*61070*/         OPC_CheckType, MVT::i64,
/*61072*/         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)
/*61082*/       0, /*End of Scope*/
/*61083*/     /*Scope*/ 30|128,1/*158*/, /*->61243*/
/*61085*/       OPC_MoveChild, 1,
/*61087*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*61090*/       OPC_MoveChild, 0,
/*61092*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*61095*/       OPC_RecordMemRef,
/*61096*/       OPC_RecordNode, // #1 = 'ld' chained node
/*61097*/       OPC_CheckFoldableChainNode,
/*61098*/       OPC_RecordChild1, // #2 = $src2
/*61099*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*61101*/       OPC_CheckPredicate, 3, // Predicate_load
/*61103*/       OPC_CheckPredicate, 23, // Predicate_memop
/*61105*/       OPC_CheckType, MVT::v2i64,
/*61107*/       OPC_MoveParent,
/*61108*/       OPC_MoveParent,
/*61109*/       OPC_SwitchType /*3 cases */, 42,  MVT::v16i8,// ->61154
/*61112*/         OPC_Scope, 19, /*->61133*/ // 2 children in Scope
/*61114*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*61116*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*61119*/           OPC_EmitMergeInputChains1_1,
/*61120*/           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)
/*61133*/         /*Scope*/ 19, /*->61153*/
/*61134*/           OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*61136*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*61139*/           OPC_EmitMergeInputChains1_1,
/*61140*/           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)
/*61153*/         0, /*End of Scope*/
                /*SwitchType*/ 42,  MVT::v8i16,// ->61198
/*61156*/         OPC_Scope, 19, /*->61177*/ // 2 children in Scope
/*61158*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*61160*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*61163*/           OPC_EmitMergeInputChains1_1,
/*61164*/           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)
/*61177*/         /*Scope*/ 19, /*->61197*/
/*61178*/           OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*61180*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*61183*/           OPC_EmitMergeInputChains1_1,
/*61184*/           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)
/*61197*/         0, /*End of Scope*/
                /*SwitchType*/ 42,  MVT::v4i32,// ->61242
/*61200*/         OPC_Scope, 19, /*->61221*/ // 2 children in Scope
/*61202*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*61204*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*61207*/           OPC_EmitMergeInputChains1_1,
/*61208*/           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)
/*61221*/         /*Scope*/ 19, /*->61241*/
/*61222*/           OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*61224*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*61227*/           OPC_EmitMergeInputChains1_1,
/*61228*/           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)
/*61241*/         0, /*End of Scope*/
                0, // EndSwitchType
/*61243*/     0, /*End of Scope*/
/*61244*/   /*Scope*/ 31|128,1/*159*/, /*->61405*/
/*61246*/     OPC_MoveChild, 0,
/*61248*/     OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*61251*/     OPC_MoveChild, 0,
/*61253*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*61256*/     OPC_RecordMemRef,
/*61257*/     OPC_RecordNode, // #0 = 'ld' chained node
/*61258*/     OPC_CheckFoldableChainNode,
/*61259*/     OPC_RecordChild1, // #1 = $src2
/*61260*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*61262*/     OPC_CheckPredicate, 3, // Predicate_load
/*61264*/     OPC_CheckPredicate, 23, // Predicate_memop
/*61266*/     OPC_CheckType, MVT::v2i64,
/*61268*/     OPC_MoveParent,
/*61269*/     OPC_MoveParent,
/*61270*/     OPC_RecordChild1, // #2 = $src1
/*61271*/     OPC_SwitchType /*3 cases */, 42,  MVT::v16i8,// ->61316
/*61274*/       OPC_Scope, 19, /*->61295*/ // 2 children in Scope
/*61276*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*61278*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*61281*/         OPC_EmitMergeInputChains1_0,
/*61282*/         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)
/*61295*/       /*Scope*/ 19, /*->61315*/
/*61296*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*61298*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*61301*/         OPC_EmitMergeInputChains1_0,
/*61302*/         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)
/*61315*/       0, /*End of Scope*/
              /*SwitchType*/ 42,  MVT::v8i16,// ->61360
/*61318*/       OPC_Scope, 19, /*->61339*/ // 2 children in Scope
/*61320*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*61322*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*61325*/         OPC_EmitMergeInputChains1_0,
/*61326*/         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)
/*61339*/       /*Scope*/ 19, /*->61359*/
/*61340*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*61342*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*61345*/         OPC_EmitMergeInputChains1_0,
/*61346*/         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)
/*61359*/       0, /*End of Scope*/
              /*SwitchType*/ 42,  MVT::v4i32,// ->61404
/*61362*/       OPC_Scope, 19, /*->61383*/ // 2 children in Scope
/*61364*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*61366*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*61369*/         OPC_EmitMergeInputChains1_0,
/*61370*/         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)
/*61383*/       /*Scope*/ 19, /*->61403*/
/*61384*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*61386*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*61389*/         OPC_EmitMergeInputChains1_0,
/*61390*/         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)
/*61403*/       0, /*End of Scope*/
              0, // EndSwitchType
/*61405*/   /*Scope*/ 61, /*->61467*/
/*61406*/     OPC_RecordChild0, // #0 = $src1
/*61407*/     OPC_MoveChild, 1,
/*61409*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*61412*/     OPC_RecordMemRef,
/*61413*/     OPC_RecordNode, // #1 = 'ld' chained node
/*61414*/     OPC_CheckFoldableChainNode,
/*61415*/     OPC_RecordChild1, // #2 = $src2
/*61416*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*61418*/     OPC_CheckPredicate, 3, // Predicate_load
/*61420*/     OPC_CheckPredicate, 23, // Predicate_memop
/*61422*/     OPC_MoveParent,
/*61423*/     OPC_CheckType, MVT::v2i64,
/*61425*/     OPC_Scope, 19, /*->61446*/ // 2 children in Scope
/*61427*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*61429*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*61432*/       OPC_EmitMergeInputChains1_1,
/*61433*/       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)
/*61446*/     /*Scope*/ 19, /*->61466*/
/*61447*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*61449*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*61452*/       OPC_EmitMergeInputChains1_1,
/*61453*/       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)
/*61466*/     0, /*End of Scope*/
/*61467*/   /*Scope*/ 61, /*->61529*/
/*61468*/     OPC_MoveChild, 0,
/*61470*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*61473*/     OPC_RecordMemRef,
/*61474*/     OPC_RecordNode, // #0 = 'ld' chained node
/*61475*/     OPC_CheckFoldableChainNode,
/*61476*/     OPC_RecordChild1, // #1 = $src2
/*61477*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*61479*/     OPC_CheckPredicate, 3, // Predicate_load
/*61481*/     OPC_CheckPredicate, 23, // Predicate_memop
/*61483*/     OPC_MoveParent,
/*61484*/     OPC_RecordChild1, // #2 = $src1
/*61485*/     OPC_CheckType, MVT::v2i64,
/*61487*/     OPC_Scope, 19, /*->61508*/ // 2 children in Scope
/*61489*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*61491*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*61494*/       OPC_EmitMergeInputChains1_0,
/*61495*/       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)
/*61508*/     /*Scope*/ 19, /*->61528*/
/*61509*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*61511*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*61514*/       OPC_EmitMergeInputChains1_0,
/*61515*/       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)
/*61528*/     0, /*End of Scope*/
/*61529*/   /*Scope*/ 116, /*->61646*/
/*61530*/     OPC_RecordChild0, // #0 = $src1
/*61531*/     OPC_RecordChild1, // #1 = $src2
/*61532*/     OPC_SwitchType /*4 cases */, 26,  MVT::v16i8,// ->61561
/*61535*/       OPC_Scope, 11, /*->61548*/ // 2 children in Scope
/*61537*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*61539*/         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)
/*61548*/       /*Scope*/ 11, /*->61560*/
/*61549*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*61551*/         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)
/*61560*/       0, /*End of Scope*/
              /*SwitchType*/ 26,  MVT::v8i16,// ->61589
/*61563*/       OPC_Scope, 11, /*->61576*/ // 2 children in Scope
/*61565*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*61567*/         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)
/*61576*/       /*Scope*/ 11, /*->61588*/
/*61577*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*61579*/         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)
/*61588*/       0, /*End of Scope*/
              /*SwitchType*/ 26,  MVT::v4i32,// ->61617
/*61591*/       OPC_Scope, 11, /*->61604*/ // 2 children in Scope
/*61593*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*61595*/         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)
/*61604*/       /*Scope*/ 11, /*->61616*/
/*61605*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*61607*/         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)
/*61616*/       0, /*End of Scope*/
              /*SwitchType*/ 26,  MVT::v2i64,// ->61645
/*61619*/       OPC_Scope, 11, /*->61632*/ // 2 children in Scope
/*61621*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*61623*/         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)
/*61632*/       /*Scope*/ 11, /*->61644*/
/*61633*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*61635*/         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)
/*61644*/       0, /*End of Scope*/
              0, // EndSwitchType
/*61646*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 6|128,7/*902*/,  TARGET_VAL(ISD::SUB),// ->62553
/*61651*/   OPC_Scope, 61|128,1/*189*/, /*->61843*/ // 5 children in Scope
/*61654*/     OPC_RecordChild0, // #0 = $src1
/*61655*/     OPC_MoveChild, 1,
/*61657*/     OPC_SwitchOpcode /*2 cases */, 104,  TARGET_VAL(ISD::LOAD),// ->61765
/*61661*/       OPC_RecordMemRef,
/*61662*/       OPC_RecordNode, // #1 = 'ld' chained node
/*61663*/       OPC_CheckFoldableChainNode,
/*61664*/       OPC_RecordChild1, // #2 = $src2
/*61665*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*61667*/       OPC_Scope, 23, /*->61692*/ // 4 children in Scope
/*61669*/         OPC_CheckPredicate, 3, // Predicate_load
/*61671*/         OPC_MoveParent,
/*61672*/         OPC_CheckType, MVT::i8,
/*61674*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*61677*/         OPC_EmitMergeInputChains1_1,
/*61678*/         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)
/*61692*/       /*Scope*/ 23, /*->61716*/
/*61693*/         OPC_CheckPredicate, 6, // Predicate_loadi16
/*61695*/         OPC_MoveParent,
/*61696*/         OPC_CheckType, MVT::i16,
/*61698*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*61701*/         OPC_EmitMergeInputChains1_1,
/*61702*/         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)
/*61716*/       /*Scope*/ 23, /*->61740*/
/*61717*/         OPC_CheckPredicate, 7, // Predicate_loadi32
/*61719*/         OPC_MoveParent,
/*61720*/         OPC_CheckType, MVT::i32,
/*61722*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*61725*/         OPC_EmitMergeInputChains1_1,
/*61726*/         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)
/*61740*/       /*Scope*/ 23, /*->61764*/
/*61741*/         OPC_CheckPredicate, 3, // Predicate_load
/*61743*/         OPC_MoveParent,
/*61744*/         OPC_CheckType, MVT::i64,
/*61746*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*61749*/         OPC_EmitMergeInputChains1_1,
/*61750*/         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)
/*61764*/       0, /*End of Scope*/
              /*SwitchOpcode*/ 74,  TARGET_VAL(ISD::AND),// ->61842
/*61768*/       OPC_MoveChild, 0,
/*61770*/       OPC_CheckOpcode, TARGET_VAL(X86ISD::SETCC_CARRY),
/*61773*/       OPC_MoveChild, 0,
/*61775*/       OPC_CheckInteger, 2, 
/*61777*/       OPC_MoveParent,
/*61778*/       OPC_RecordChild1, // #1 = physreg input EFLAGS
/*61779*/       OPC_MoveParent,
/*61780*/       OPC_MoveChild, 1,
/*61782*/       OPC_CheckInteger, 1, 
/*61784*/       OPC_MoveParent,
/*61785*/       OPC_MoveParent,
/*61786*/       OPC_SwitchType /*3 cases */, 16,  MVT::i8,// ->61805
/*61789*/         OPC_EmitInteger, MVT::i8, 0, 
/*61792*/         OPC_EmitCopyToReg, 1, X86::EFLAGS,
/*61795*/         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,// ->61823
/*61807*/         OPC_EmitInteger, MVT::i32, 0, 
/*61810*/         OPC_EmitCopyToReg, 1, X86::EFLAGS,
/*61813*/         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,// ->61841
/*61825*/         OPC_EmitInteger, MVT::i64, 0, 
/*61828*/         OPC_EmitCopyToReg, 1, X86::EFLAGS,
/*61831*/         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
/*61843*/   /*Scope*/ 60, /*->61904*/
/*61844*/     OPC_RecordNode, // #0 = $src
/*61845*/     OPC_SwitchType /*2 cases */, 38,  MVT::i32,// ->61886
/*61848*/       OPC_Scope, 17, /*->61867*/ // 2 children in Scope
/*61850*/         OPC_CheckPatternPredicate, 3, // (!Subtarget->is64Bit())
/*61852*/         OPC_CheckComplexPat, /*CP*/3, /*#*/0, // SelectLEAAddr:$src #1 #2 #3 #4 #5
/*61855*/         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)
/*61867*/       /*Scope*/ 17, /*->61885*/
/*61868*/         OPC_CheckPatternPredicate, 4, // (Subtarget->is64Bit())
/*61870*/         OPC_CheckComplexPat, /*CP*/3, /*#*/0, // SelectLEAAddr:$src #1 #2 #3 #4 #5
/*61873*/         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)
/*61885*/       0, /*End of Scope*/
              /*SwitchType*/ 15,  MVT::i64,// ->61903
/*61888*/       OPC_CheckComplexPat, /*CP*/4, /*#*/0, // SelectLEAAddr:$src #1 #2 #3 #4 #5
/*61891*/       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
/*61904*/   /*Scope*/ 69, /*->61974*/
/*61905*/     OPC_RecordChild0, // #0 = $op
/*61906*/     OPC_MoveChild, 1,
/*61908*/     OPC_CheckOpcode, TARGET_VAL(X86ISD::SETCC_CARRY),
/*61911*/     OPC_MoveChild, 0,
/*61913*/     OPC_CheckInteger, 2, 
/*61915*/     OPC_MoveParent,
/*61916*/     OPC_RecordChild1, // #1 = physreg input EFLAGS
/*61917*/     OPC_MoveParent,
/*61918*/     OPC_SwitchType /*3 cases */, 16,  MVT::i8,// ->61937
/*61921*/       OPC_EmitInteger, MVT::i8, 0, 
/*61924*/       OPC_EmitCopyToReg, 1, X86::EFLAGS,
/*61927*/       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,// ->61955
/*61939*/       OPC_EmitInteger, MVT::i32, 0, 
/*61942*/       OPC_EmitCopyToReg, 1, X86::EFLAGS,
/*61945*/       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,// ->61973
/*61957*/       OPC_EmitInteger, MVT::i64, 0, 
/*61960*/       OPC_EmitCopyToReg, 1, X86::EFLAGS,
/*61963*/       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
/*61974*/   /*Scope*/ 52, /*->62027*/
/*61975*/     OPC_MoveChild, 0,
/*61977*/     OPC_CheckInteger, 0, 
/*61979*/     OPC_MoveParent,
/*61980*/     OPC_RecordChild1, // #0 = $src1
/*61981*/     OPC_SwitchType /*4 cases */, 9,  MVT::i8,// ->61993
/*61984*/       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,// ->62004
/*61995*/       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,// ->62015
/*62006*/       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,// ->62026
/*62017*/       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
/*62027*/   /*Scope*/ 11|128,4/*523*/, /*->62552*/
/*62029*/     OPC_RecordChild0, // #0 = $src1
/*62030*/     OPC_Scope, 53|128,1/*181*/, /*->62214*/ // 3 children in Scope
/*62033*/       OPC_RecordChild1, // #1 = $src2
/*62034*/       OPC_Scope, 125, /*->62161*/ // 5 children in Scope
/*62036*/         OPC_MoveChild, 1,
/*62038*/         OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*62041*/         OPC_Scope, 17, /*->62060*/ // 5 children in Scope
/*62043*/           OPC_CheckPredicate, 8, // Predicate_i16immSExt8
/*62045*/           OPC_MoveParent,
/*62046*/           OPC_CheckType, MVT::i16,
/*62048*/           OPC_EmitConvertToTarget, 1,
/*62050*/           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)
/*62060*/         /*Scope*/ 17, /*->62078*/
/*62061*/           OPC_CheckPredicate, 9, // Predicate_i32immSExt8
/*62063*/           OPC_MoveParent,
/*62064*/           OPC_CheckType, MVT::i32,
/*62066*/           OPC_EmitConvertToTarget, 1,
/*62068*/           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)
/*62078*/         /*Scope*/ 17, /*->62096*/
/*62079*/           OPC_CheckPredicate, 10, // Predicate_i64immSExt8
/*62081*/           OPC_MoveParent,
/*62082*/           OPC_CheckType, MVT::i64,
/*62084*/           OPC_EmitConvertToTarget, 1,
/*62086*/           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)
/*62096*/         /*Scope*/ 17, /*->62114*/
/*62097*/           OPC_CheckPredicate, 11, // Predicate_i64immSExt32
/*62099*/           OPC_MoveParent,
/*62100*/           OPC_CheckType, MVT::i64,
/*62102*/           OPC_EmitConvertToTarget, 1,
/*62104*/           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)
/*62114*/         /*Scope*/ 45, /*->62160*/
/*62115*/           OPC_MoveParent,
/*62116*/           OPC_SwitchType /*3 cases */, 12,  MVT::i8,// ->62131
/*62119*/             OPC_EmitConvertToTarget, 1,
/*62121*/             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,// ->62145
/*62133*/             OPC_EmitConvertToTarget, 1,
/*62135*/             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,// ->62159
/*62147*/             OPC_EmitConvertToTarget, 1,
/*62149*/             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
/*62160*/         0, /*End of Scope*/
/*62161*/       /*Scope*/ 12, /*->62174*/
/*62162*/         OPC_CheckType, MVT::i8,
/*62164*/         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)
/*62174*/       /*Scope*/ 12, /*->62187*/
/*62175*/         OPC_CheckType, MVT::i16,
/*62177*/         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)
/*62187*/       /*Scope*/ 12, /*->62200*/
/*62188*/         OPC_CheckType, MVT::i32,
/*62190*/         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)
/*62200*/       /*Scope*/ 12, /*->62213*/
/*62201*/         OPC_CheckType, MVT::i64,
/*62203*/         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)
/*62213*/       0, /*End of Scope*/
/*62214*/     /*Scope*/ 91|128,1/*219*/, /*->62435*/
/*62216*/       OPC_MoveChild, 1,
/*62218*/       OPC_SwitchOpcode /*2 cases */, 25|128,1/*153*/,  TARGET_VAL(ISD::BITCAST),// ->62376
/*62223*/         OPC_MoveChild, 0,
/*62225*/         OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*62228*/         OPC_RecordMemRef,
/*62229*/         OPC_RecordNode, // #1 = 'ld' chained node
/*62230*/         OPC_CheckFoldableChainNode,
/*62231*/         OPC_RecordChild1, // #2 = $src2
/*62232*/         OPC_CheckPredicate, 2, // Predicate_unindexedload
/*62234*/         OPC_CheckPredicate, 3, // Predicate_load
/*62236*/         OPC_CheckPredicate, 23, // Predicate_memop
/*62238*/         OPC_CheckType, MVT::v2i64,
/*62240*/         OPC_MoveParent,
/*62241*/         OPC_MoveParent,
/*62242*/         OPC_SwitchType /*3 cases */, 42,  MVT::v16i8,// ->62287
/*62245*/           OPC_Scope, 19, /*->62266*/ // 2 children in Scope
/*62247*/             OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*62249*/             OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*62252*/             OPC_EmitMergeInputChains1_1,
/*62253*/             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)
/*62266*/           /*Scope*/ 19, /*->62286*/
/*62267*/             OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*62269*/             OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*62272*/             OPC_EmitMergeInputChains1_1,
/*62273*/             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)
/*62286*/           0, /*End of Scope*/
                  /*SwitchType*/ 42,  MVT::v8i16,// ->62331
/*62289*/           OPC_Scope, 19, /*->62310*/ // 2 children in Scope
/*62291*/             OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*62293*/             OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*62296*/             OPC_EmitMergeInputChains1_1,
/*62297*/             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)
/*62310*/           /*Scope*/ 19, /*->62330*/
/*62311*/             OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*62313*/             OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*62316*/             OPC_EmitMergeInputChains1_1,
/*62317*/             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)
/*62330*/           0, /*End of Scope*/
                  /*SwitchType*/ 42,  MVT::v4i32,// ->62375
/*62333*/           OPC_Scope, 19, /*->62354*/ // 2 children in Scope
/*62335*/             OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*62337*/             OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*62340*/             OPC_EmitMergeInputChains1_1,
/*62341*/             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)
/*62354*/           /*Scope*/ 19, /*->62374*/
/*62355*/             OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*62357*/             OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*62360*/             OPC_EmitMergeInputChains1_1,
/*62361*/             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)
/*62374*/           0, /*End of Scope*/
                  0, // EndSwitchType
                /*SwitchOpcode*/ 55,  TARGET_VAL(ISD::LOAD),// ->62434
/*62379*/         OPC_RecordMemRef,
/*62380*/         OPC_RecordNode, // #1 = 'ld' chained node
/*62381*/         OPC_CheckFoldableChainNode,
/*62382*/         OPC_RecordChild1, // #2 = $src2
/*62383*/         OPC_CheckPredicate, 2, // Predicate_unindexedload
/*62385*/         OPC_CheckPredicate, 3, // Predicate_load
/*62387*/         OPC_CheckPredicate, 23, // Predicate_memop
/*62389*/         OPC_MoveParent,
/*62390*/         OPC_CheckType, MVT::v2i64,
/*62392*/         OPC_Scope, 19, /*->62413*/ // 2 children in Scope
/*62394*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*62396*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*62399*/           OPC_EmitMergeInputChains1_1,
/*62400*/           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)
/*62413*/         /*Scope*/ 19, /*->62433*/
/*62414*/           OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*62416*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*62419*/           OPC_EmitMergeInputChains1_1,
/*62420*/           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)
/*62433*/         0, /*End of Scope*/
                0, // EndSwitchOpcode
/*62435*/     /*Scope*/ 115, /*->62551*/
/*62436*/       OPC_RecordChild1, // #1 = $src2
/*62437*/       OPC_SwitchType /*4 cases */, 26,  MVT::v16i8,// ->62466
/*62440*/         OPC_Scope, 11, /*->62453*/ // 2 children in Scope
/*62442*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*62444*/           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)
/*62453*/         /*Scope*/ 11, /*->62465*/
/*62454*/           OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*62456*/           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)
/*62465*/         0, /*End of Scope*/
                /*SwitchType*/ 26,  MVT::v8i16,// ->62494
/*62468*/         OPC_Scope, 11, /*->62481*/ // 2 children in Scope
/*62470*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*62472*/           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)
/*62481*/         /*Scope*/ 11, /*->62493*/
/*62482*/           OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*62484*/           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)
/*62493*/         0, /*End of Scope*/
                /*SwitchType*/ 26,  MVT::v4i32,// ->62522
/*62496*/         OPC_Scope, 11, /*->62509*/ // 2 children in Scope
/*62498*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*62500*/           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)
/*62509*/         /*Scope*/ 11, /*->62521*/
/*62510*/           OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*62512*/           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)
/*62521*/         0, /*End of Scope*/
                /*SwitchType*/ 26,  MVT::v2i64,// ->62550
/*62524*/         OPC_Scope, 11, /*->62537*/ // 2 children in Scope
/*62526*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*62528*/           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)
/*62537*/         /*Scope*/ 11, /*->62549*/
/*62538*/           OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*62540*/           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)
/*62549*/         0, /*End of Scope*/
                0, // EndSwitchType
/*62551*/     0, /*End of Scope*/
/*62552*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 5|128,10/*1285*/,  TARGET_VAL(ISD::OR),// ->63842
/*62557*/   OPC_Scope, 110, /*->62669*/ // 8 children in Scope
/*62559*/     OPC_RecordChild0, // #0 = $src1
/*62560*/     OPC_MoveChild, 1,
/*62562*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*62565*/     OPC_RecordMemRef,
/*62566*/     OPC_RecordNode, // #1 = 'ld' chained node
/*62567*/     OPC_CheckFoldableChainNode,
/*62568*/     OPC_RecordChild1, // #2 = $src2
/*62569*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*62571*/     OPC_Scope, 23, /*->62596*/ // 4 children in Scope
/*62573*/       OPC_CheckPredicate, 3, // Predicate_load
/*62575*/       OPC_MoveParent,
/*62576*/       OPC_CheckType, MVT::i8,
/*62578*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*62581*/       OPC_EmitMergeInputChains1_1,
/*62582*/       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)
/*62596*/     /*Scope*/ 23, /*->62620*/
/*62597*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*62599*/       OPC_MoveParent,
/*62600*/       OPC_CheckType, MVT::i16,
/*62602*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*62605*/       OPC_EmitMergeInputChains1_1,
/*62606*/       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)
/*62620*/     /*Scope*/ 23, /*->62644*/
/*62621*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*62623*/       OPC_MoveParent,
/*62624*/       OPC_CheckType, MVT::i32,
/*62626*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*62629*/       OPC_EmitMergeInputChains1_1,
/*62630*/       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)
/*62644*/     /*Scope*/ 23, /*->62668*/
/*62645*/       OPC_CheckPredicate, 3, // Predicate_load
/*62647*/       OPC_MoveParent,
/*62648*/       OPC_CheckType, MVT::i64,
/*62650*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*62653*/       OPC_EmitMergeInputChains1_1,
/*62654*/       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)
/*62668*/     0, /*End of Scope*/
/*62669*/   /*Scope*/ 113, /*->62783*/
/*62670*/     OPC_MoveChild, 0,
/*62672*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*62675*/     OPC_RecordMemRef,
/*62676*/     OPC_RecordNode, // #0 = 'ld' chained node
/*62677*/     OPC_CheckFoldableChainNode,
/*62678*/     OPC_RecordChild1, // #1 = $src2
/*62679*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*62681*/     OPC_Scope, 24, /*->62707*/ // 4 children in Scope
/*62683*/       OPC_CheckPredicate, 3, // Predicate_load
/*62685*/       OPC_MoveParent,
/*62686*/       OPC_RecordChild1, // #2 = $src1
/*62687*/       OPC_CheckType, MVT::i8,
/*62689*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*62692*/       OPC_EmitMergeInputChains1_0,
/*62693*/       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)
/*62707*/     /*Scope*/ 24, /*->62732*/
/*62708*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*62710*/       OPC_MoveParent,
/*62711*/       OPC_RecordChild1, // #2 = $src1
/*62712*/       OPC_CheckType, MVT::i16,
/*62714*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*62717*/       OPC_EmitMergeInputChains1_0,
/*62718*/       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)
/*62732*/     /*Scope*/ 24, /*->62757*/
/*62733*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*62735*/       OPC_MoveParent,
/*62736*/       OPC_RecordChild1, // #2 = $src1
/*62737*/       OPC_CheckType, MVT::i32,
/*62739*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*62742*/       OPC_EmitMergeInputChains1_0,
/*62743*/       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)
/*62757*/     /*Scope*/ 24, /*->62782*/
/*62758*/       OPC_CheckPredicate, 3, // Predicate_load
/*62760*/       OPC_MoveParent,
/*62761*/       OPC_RecordChild1, // #2 = $src1
/*62762*/       OPC_CheckType, MVT::i64,
/*62764*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*62767*/       OPC_EmitMergeInputChains1_0,
/*62768*/       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)
/*62782*/     0, /*End of Scope*/
/*62783*/   /*Scope*/ 60, /*->62844*/
/*62784*/     OPC_RecordNode, // #0 = $src
/*62785*/     OPC_SwitchType /*2 cases */, 38,  MVT::i32,// ->62826
/*62788*/       OPC_Scope, 17, /*->62807*/ // 2 children in Scope
/*62790*/         OPC_CheckPatternPredicate, 3, // (!Subtarget->is64Bit())
/*62792*/         OPC_CheckComplexPat, /*CP*/3, /*#*/0, // SelectLEAAddr:$src #1 #2 #3 #4 #5
/*62795*/         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)
/*62807*/       /*Scope*/ 17, /*->62825*/
/*62808*/         OPC_CheckPatternPredicate, 4, // (Subtarget->is64Bit())
/*62810*/         OPC_CheckComplexPat, /*CP*/3, /*#*/0, // SelectLEAAddr:$src #1 #2 #3 #4 #5
/*62813*/         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)
/*62825*/       0, /*End of Scope*/
              /*SwitchType*/ 15,  MVT::i64,// ->62843
/*62828*/       OPC_CheckComplexPat, /*CP*/4, /*#*/0, // SelectLEAAddr:$src #1 #2 #3 #4 #5
/*62831*/       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
/*62844*/   /*Scope*/ 89|128,2/*345*/, /*->63191*/
/*62846*/     OPC_RecordChild0, // #0 = $src1
/*62847*/     OPC_RecordChild1, // #1 = $src2
/*62848*/     OPC_Scope, 121, /*->62971*/ // 7 children in Scope
/*62850*/       OPC_MoveChild, 1,
/*62852*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*62855*/       OPC_Scope, 19, /*->62876*/ // 5 children in Scope
/*62857*/         OPC_CheckPredicate, 8, // Predicate_i16immSExt8
/*62859*/         OPC_MoveParent,
/*62860*/         OPC_CheckPredicate, 25, // Predicate_or_is_add
/*62862*/         OPC_CheckType, MVT::i16,
/*62864*/         OPC_EmitConvertToTarget, 1,
/*62866*/         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)
/*62876*/       /*Scope*/ 19, /*->62896*/
/*62877*/         OPC_CheckPredicate, 9, // Predicate_i32immSExt8
/*62879*/         OPC_MoveParent,
/*62880*/         OPC_CheckPredicate, 25, // Predicate_or_is_add
/*62882*/         OPC_CheckType, MVT::i32,
/*62884*/         OPC_EmitConvertToTarget, 1,
/*62886*/         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)
/*62896*/       /*Scope*/ 19, /*->62916*/
/*62897*/         OPC_CheckPredicate, 10, // Predicate_i64immSExt8
/*62899*/         OPC_MoveParent,
/*62900*/         OPC_CheckPredicate, 25, // Predicate_or_is_add
/*62902*/         OPC_CheckType, MVT::i64,
/*62904*/         OPC_EmitConvertToTarget, 1,
/*62906*/         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)
/*62916*/       /*Scope*/ 19, /*->62936*/
/*62917*/         OPC_CheckPredicate, 11, // Predicate_i64immSExt32
/*62919*/         OPC_MoveParent,
/*62920*/         OPC_CheckPredicate, 25, // Predicate_or_is_add
/*62922*/         OPC_CheckType, MVT::i64,
/*62924*/         OPC_EmitConvertToTarget, 1,
/*62926*/         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)
/*62936*/       /*Scope*/ 33, /*->62970*/
/*62937*/         OPC_MoveParent,
/*62938*/         OPC_CheckPredicate, 25, // Predicate_or_is_add
/*62940*/         OPC_SwitchType /*2 cases */, 12,  MVT::i16,// ->62955
/*62943*/           OPC_EmitConvertToTarget, 1,
/*62945*/           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,// ->62969
/*62957*/           OPC_EmitConvertToTarget, 1,
/*62959*/           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
/*62970*/       0, /*End of Scope*/
/*62971*/     /*Scope*/ 40, /*->63012*/
/*62972*/       OPC_CheckPredicate, 25, // Predicate_or_is_add
/*62974*/       OPC_SwitchType /*3 cases */, 10,  MVT::i16,// ->62987
/*62977*/         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,// ->62999
/*62989*/         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,// ->63011
/*63001*/         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
/*63012*/     /*Scope*/ 125, /*->63138*/
/*63013*/       OPC_MoveChild, 1,
/*63015*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*63018*/       OPC_Scope, 17, /*->63037*/ // 5 children in Scope
/*63020*/         OPC_CheckPredicate, 8, // Predicate_i16immSExt8
/*63022*/         OPC_MoveParent,
/*63023*/         OPC_CheckType, MVT::i16,
/*63025*/         OPC_EmitConvertToTarget, 1,
/*63027*/         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)
/*63037*/       /*Scope*/ 17, /*->63055*/
/*63038*/         OPC_CheckPredicate, 9, // Predicate_i32immSExt8
/*63040*/         OPC_MoveParent,
/*63041*/         OPC_CheckType, MVT::i32,
/*63043*/         OPC_EmitConvertToTarget, 1,
/*63045*/         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)
/*63055*/       /*Scope*/ 17, /*->63073*/
/*63056*/         OPC_CheckPredicate, 10, // Predicate_i64immSExt8
/*63058*/         OPC_MoveParent,
/*63059*/         OPC_CheckType, MVT::i64,
/*63061*/         OPC_EmitConvertToTarget, 1,
/*63063*/         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)
/*63073*/       /*Scope*/ 17, /*->63091*/
/*63074*/         OPC_CheckPredicate, 11, // Predicate_i64immSExt32
/*63076*/         OPC_MoveParent,
/*63077*/         OPC_CheckType, MVT::i64,
/*63079*/         OPC_EmitConvertToTarget, 1,
/*63081*/         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)
/*63091*/       /*Scope*/ 45, /*->63137*/
/*63092*/         OPC_MoveParent,
/*63093*/         OPC_SwitchType /*3 cases */, 12,  MVT::i8,// ->63108
/*63096*/           OPC_EmitConvertToTarget, 1,
/*63098*/           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,// ->63122
/*63110*/           OPC_EmitConvertToTarget, 1,
/*63112*/           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,// ->63136
/*63124*/           OPC_EmitConvertToTarget, 1,
/*63126*/           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
/*63137*/       0, /*End of Scope*/
/*63138*/     /*Scope*/ 12, /*->63151*/
/*63139*/       OPC_CheckType, MVT::i8,
/*63141*/       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)
/*63151*/     /*Scope*/ 12, /*->63164*/
/*63152*/       OPC_CheckType, MVT::i16,
/*63154*/       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)
/*63164*/     /*Scope*/ 12, /*->63177*/
/*63165*/       OPC_CheckType, MVT::i32,
/*63167*/       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)
/*63177*/     /*Scope*/ 12, /*->63190*/
/*63178*/       OPC_CheckType, MVT::i64,
/*63180*/       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)
/*63190*/     0, /*End of Scope*/
/*63191*/   /*Scope*/ 6|128,3/*390*/, /*->63583*/
/*63193*/     OPC_MoveChild, 0,
/*63195*/     OPC_SwitchOpcode /*2 cases */, 85|128,1/*213*/,  TARGET_VAL(ISD::BITCAST),// ->63413
/*63200*/       OPC_RecordChild0, // #0 = $src1
/*63201*/       OPC_Scope, 40, /*->63243*/ // 4 children in Scope
/*63203*/         OPC_CheckChild0Type, MVT::v8f32,
/*63205*/         OPC_MoveParent,
/*63206*/         OPC_MoveChild, 1,
/*63208*/         OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*63211*/         OPC_RecordMemRef,
/*63212*/         OPC_RecordNode, // #1 = 'ld' chained node
/*63213*/         OPC_CheckFoldableChainNode,
/*63214*/         OPC_RecordChild1, // #2 = $src2
/*63215*/         OPC_CheckPredicate, 2, // Predicate_unindexedload
/*63217*/         OPC_CheckPredicate, 3, // Predicate_load
/*63219*/         OPC_CheckPredicate, 23, // Predicate_memop
/*63221*/         OPC_MoveParent,
/*63222*/         OPC_CheckType, MVT::v4i64,
/*63224*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*63226*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*63229*/         OPC_EmitMergeInputChains1_1,
/*63230*/         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)
/*63243*/       /*Scope*/ 40, /*->63284*/
/*63244*/         OPC_CheckChild0Type, MVT::v4f64,
/*63246*/         OPC_MoveParent,
/*63247*/         OPC_MoveChild, 1,
/*63249*/         OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*63252*/         OPC_RecordMemRef,
/*63253*/         OPC_RecordNode, // #1 = 'ld' chained node
/*63254*/         OPC_CheckFoldableChainNode,
/*63255*/         OPC_RecordChild1, // #2 = $src2
/*63256*/         OPC_CheckPredicate, 2, // Predicate_unindexedload
/*63258*/         OPC_CheckPredicate, 3, // Predicate_load
/*63260*/         OPC_CheckPredicate, 23, // Predicate_memop
/*63262*/         OPC_MoveParent,
/*63263*/         OPC_CheckType, MVT::v4i64,
/*63265*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*63267*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*63270*/         OPC_EmitMergeInputChains1_1,
/*63271*/         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)
/*63284*/       /*Scope*/ 63, /*->63348*/
/*63285*/         OPC_CheckChild0Type, MVT::v4f32,
/*63287*/         OPC_MoveParent,
/*63288*/         OPC_MoveChild, 1,
/*63290*/         OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*63293*/         OPC_RecordMemRef,
/*63294*/         OPC_RecordNode, // #1 = 'ld' chained node
/*63295*/         OPC_CheckFoldableChainNode,
/*63296*/         OPC_RecordChild1, // #2 = $src2
/*63297*/         OPC_CheckPredicate, 2, // Predicate_unindexedload
/*63299*/         OPC_CheckPredicate, 3, // Predicate_load
/*63301*/         OPC_CheckPredicate, 23, // Predicate_memop
/*63303*/         OPC_MoveParent,
/*63304*/         OPC_CheckType, MVT::v2i64,
/*63306*/         OPC_Scope, 19, /*->63327*/ // 2 children in Scope
/*63308*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*63310*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*63313*/           OPC_EmitMergeInputChains1_1,
/*63314*/           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)
/*63327*/         /*Scope*/ 19, /*->63347*/
/*63328*/           OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*63330*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*63333*/           OPC_EmitMergeInputChains1_1,
/*63334*/           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)
/*63347*/         0, /*End of Scope*/
/*63348*/       /*Scope*/ 63, /*->63412*/
/*63349*/         OPC_CheckChild0Type, MVT::v2f64,
/*63351*/         OPC_MoveParent,
/*63352*/         OPC_MoveChild, 1,
/*63354*/         OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*63357*/         OPC_RecordMemRef,
/*63358*/         OPC_RecordNode, // #1 = 'ld' chained node
/*63359*/         OPC_CheckFoldableChainNode,
/*63360*/         OPC_RecordChild1, // #2 = $src2
/*63361*/         OPC_CheckPredicate, 2, // Predicate_unindexedload
/*63363*/         OPC_CheckPredicate, 3, // Predicate_load
/*63365*/         OPC_CheckPredicate, 23, // Predicate_memop
/*63367*/         OPC_MoveParent,
/*63368*/         OPC_CheckType, MVT::v2i64,
/*63370*/         OPC_Scope, 19, /*->63391*/ // 2 children in Scope
/*63372*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*63374*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*63377*/           OPC_EmitMergeInputChains1_1,
/*63378*/           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)
/*63391*/         /*Scope*/ 19, /*->63411*/
/*63392*/           OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*63394*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*63397*/           OPC_EmitMergeInputChains1_1,
/*63398*/           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)
/*63411*/         0, /*End of Scope*/
/*63412*/       0, /*End of Scope*/
              /*SwitchOpcode*/ 37|128,1/*165*/,  TARGET_VAL(ISD::LOAD),// ->63582
/*63417*/       OPC_RecordMemRef,
/*63418*/       OPC_RecordNode, // #0 = 'ld' chained node
/*63419*/       OPC_CheckFoldableChainNode,
/*63420*/       OPC_RecordChild1, // #1 = $src2
/*63421*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*63423*/       OPC_CheckPredicate, 3, // Predicate_load
/*63425*/       OPC_CheckPredicate, 23, // Predicate_memop
/*63427*/       OPC_MoveParent,
/*63428*/       OPC_MoveChild, 1,
/*63430*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*63433*/       OPC_RecordChild0, // #2 = $src1
/*63434*/       OPC_Scope, 24, /*->63460*/ // 4 children in Scope
/*63436*/         OPC_CheckChild0Type, MVT::v8f32,
/*63438*/         OPC_MoveParent,
/*63439*/         OPC_CheckType, MVT::v4i64,
/*63441*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*63443*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*63446*/         OPC_EmitMergeInputChains1_0,
/*63447*/         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)
/*63460*/       /*Scope*/ 24, /*->63485*/
/*63461*/         OPC_CheckChild0Type, MVT::v4f64,
/*63463*/         OPC_MoveParent,
/*63464*/         OPC_CheckType, MVT::v4i64,
/*63466*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*63468*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*63471*/         OPC_EmitMergeInputChains1_0,
/*63472*/         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)
/*63485*/       /*Scope*/ 47, /*->63533*/
/*63486*/         OPC_CheckChild0Type, MVT::v4f32,
/*63488*/         OPC_MoveParent,
/*63489*/         OPC_CheckType, MVT::v2i64,
/*63491*/         OPC_Scope, 19, /*->63512*/ // 2 children in Scope
/*63493*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*63495*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*63498*/           OPC_EmitMergeInputChains1_0,
/*63499*/           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)
/*63512*/         /*Scope*/ 19, /*->63532*/
/*63513*/           OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*63515*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*63518*/           OPC_EmitMergeInputChains1_0,
/*63519*/           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)
/*63532*/         0, /*End of Scope*/
/*63533*/       /*Scope*/ 47, /*->63581*/
/*63534*/         OPC_CheckChild0Type, MVT::v2f64,
/*63536*/         OPC_MoveParent,
/*63537*/         OPC_CheckType, MVT::v2i64,
/*63539*/         OPC_Scope, 19, /*->63560*/ // 2 children in Scope
/*63541*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*63543*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*63546*/           OPC_EmitMergeInputChains1_0,
/*63547*/           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)
/*63560*/         /*Scope*/ 19, /*->63580*/
/*63561*/           OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*63563*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*63566*/           OPC_EmitMergeInputChains1_0,
/*63567*/           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)
/*63580*/         0, /*End of Scope*/
/*63581*/       0, /*End of Scope*/
              0, // EndSwitchOpcode
/*63583*/   /*Scope*/ 61, /*->63645*/
/*63584*/     OPC_RecordChild0, // #0 = $src1
/*63585*/     OPC_MoveChild, 1,
/*63587*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*63590*/     OPC_RecordMemRef,
/*63591*/     OPC_RecordNode, // #1 = 'ld' chained node
/*63592*/     OPC_CheckFoldableChainNode,
/*63593*/     OPC_RecordChild1, // #2 = $src2
/*63594*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*63596*/     OPC_CheckPredicate, 3, // Predicate_load
/*63598*/     OPC_CheckPredicate, 23, // Predicate_memop
/*63600*/     OPC_MoveParent,
/*63601*/     OPC_CheckType, MVT::v2i64,
/*63603*/     OPC_Scope, 19, /*->63624*/ // 2 children in Scope
/*63605*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*63607*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*63610*/       OPC_EmitMergeInputChains1_1,
/*63611*/       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)
/*63624*/     /*Scope*/ 19, /*->63644*/
/*63625*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*63627*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*63630*/       OPC_EmitMergeInputChains1_1,
/*63631*/       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)
/*63644*/     0, /*End of Scope*/
/*63645*/   /*Scope*/ 8|128,1/*136*/, /*->63783*/
/*63647*/     OPC_MoveChild, 0,
/*63649*/     OPC_SwitchOpcode /*2 cases */, 56,  TARGET_VAL(ISD::LOAD),// ->63709
/*63653*/       OPC_RecordMemRef,
/*63654*/       OPC_RecordNode, // #0 = 'ld' chained node
/*63655*/       OPC_CheckFoldableChainNode,
/*63656*/       OPC_RecordChild1, // #1 = $src2
/*63657*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*63659*/       OPC_CheckPredicate, 3, // Predicate_load
/*63661*/       OPC_CheckPredicate, 23, // Predicate_memop
/*63663*/       OPC_MoveParent,
/*63664*/       OPC_RecordChild1, // #2 = $src1
/*63665*/       OPC_CheckType, MVT::v2i64,
/*63667*/       OPC_Scope, 19, /*->63688*/ // 2 children in Scope
/*63669*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*63671*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*63674*/         OPC_EmitMergeInputChains1_0,
/*63675*/         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)
/*63688*/       /*Scope*/ 19, /*->63708*/
/*63689*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*63691*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*63694*/         OPC_EmitMergeInputChains1_0,
/*63695*/         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)
/*63708*/       0, /*End of Scope*/
              /*SwitchOpcode*/ 70,  TARGET_VAL(ISD::BITCAST),// ->63782
/*63712*/       OPC_RecordChild0, // #0 = $src1
/*63713*/       OPC_Scope, 25, /*->63740*/ // 2 children in Scope
/*63715*/         OPC_CheckChild0Type, MVT::v4f64,
/*63717*/         OPC_MoveParent,
/*63718*/         OPC_MoveChild, 1,
/*63720*/         OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*63723*/         OPC_RecordChild0, // #1 = $src2
/*63724*/         OPC_CheckChild0Type, MVT::v4f64,
/*63726*/         OPC_MoveParent,
/*63727*/         OPC_CheckType, MVT::v4i64,
/*63729*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*63731*/         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)
/*63740*/       /*Scope*/ 40, /*->63781*/
/*63741*/         OPC_CheckChild0Type, MVT::v2f64,
/*63743*/         OPC_MoveParent,
/*63744*/         OPC_MoveChild, 1,
/*63746*/         OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*63749*/         OPC_RecordChild0, // #1 = $src2
/*63750*/         OPC_CheckChild0Type, MVT::v2f64,
/*63752*/         OPC_MoveParent,
/*63753*/         OPC_CheckType, MVT::v2i64,
/*63755*/         OPC_Scope, 11, /*->63768*/ // 2 children in Scope
/*63757*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*63759*/           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)
/*63768*/         /*Scope*/ 11, /*->63780*/
/*63769*/           OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*63771*/           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)
/*63780*/         0, /*End of Scope*/
/*63781*/       0, /*End of Scope*/
              0, // EndSwitchOpcode
/*63783*/   /*Scope*/ 57, /*->63841*/
/*63784*/     OPC_RecordChild0, // #0 = $src1
/*63785*/     OPC_RecordChild1, // #1 = $src2
/*63786*/     OPC_SwitchType /*2 cases */, 11,  MVT::v4i64,// ->63800
/*63789*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*63791*/       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,// ->63840
/*63802*/       OPC_Scope, 11, /*->63815*/ // 3 children in Scope
/*63804*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*63806*/         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)
/*63815*/       /*Scope*/ 11, /*->63827*/
/*63816*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*63818*/         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)
/*63827*/       /*Scope*/ 11, /*->63839*/
/*63828*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*63830*/         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)
/*63839*/       0, /*End of Scope*/
              0, // EndSwitchType
/*63841*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 98|128,8/*1122*/,  TARGET_VAL(ISD::XOR),// ->64968
/*63846*/   OPC_Scope, 110, /*->63958*/ // 7 children in Scope
/*63848*/     OPC_RecordChild0, // #0 = $src1
/*63849*/     OPC_MoveChild, 1,
/*63851*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*63854*/     OPC_RecordMemRef,
/*63855*/     OPC_RecordNode, // #1 = 'ld' chained node
/*63856*/     OPC_CheckFoldableChainNode,
/*63857*/     OPC_RecordChild1, // #2 = $src2
/*63858*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*63860*/     OPC_Scope, 23, /*->63885*/ // 4 children in Scope
/*63862*/       OPC_CheckPredicate, 3, // Predicate_load
/*63864*/       OPC_MoveParent,
/*63865*/       OPC_CheckType, MVT::i8,
/*63867*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*63870*/       OPC_EmitMergeInputChains1_1,
/*63871*/       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)
/*63885*/     /*Scope*/ 23, /*->63909*/
/*63886*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*63888*/       OPC_MoveParent,
/*63889*/       OPC_CheckType, MVT::i16,
/*63891*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*63894*/       OPC_EmitMergeInputChains1_1,
/*63895*/       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)
/*63909*/     /*Scope*/ 23, /*->63933*/
/*63910*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*63912*/       OPC_MoveParent,
/*63913*/       OPC_CheckType, MVT::i32,
/*63915*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*63918*/       OPC_EmitMergeInputChains1_1,
/*63919*/       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)
/*63933*/     /*Scope*/ 23, /*->63957*/
/*63934*/       OPC_CheckPredicate, 3, // Predicate_load
/*63936*/       OPC_MoveParent,
/*63937*/       OPC_CheckType, MVT::i64,
/*63939*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*63942*/       OPC_EmitMergeInputChains1_1,
/*63943*/       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)
/*63957*/     0, /*End of Scope*/
/*63958*/   /*Scope*/ 113, /*->64072*/
/*63959*/     OPC_MoveChild, 0,
/*63961*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*63964*/     OPC_RecordMemRef,
/*63965*/     OPC_RecordNode, // #0 = 'ld' chained node
/*63966*/     OPC_CheckFoldableChainNode,
/*63967*/     OPC_RecordChild1, // #1 = $src2
/*63968*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*63970*/     OPC_Scope, 24, /*->63996*/ // 4 children in Scope
/*63972*/       OPC_CheckPredicate, 3, // Predicate_load
/*63974*/       OPC_MoveParent,
/*63975*/       OPC_RecordChild1, // #2 = $src1
/*63976*/       OPC_CheckType, MVT::i8,
/*63978*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*63981*/       OPC_EmitMergeInputChains1_0,
/*63982*/       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)
/*63996*/     /*Scope*/ 24, /*->64021*/
/*63997*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*63999*/       OPC_MoveParent,
/*64000*/       OPC_RecordChild1, // #2 = $src1
/*64001*/       OPC_CheckType, MVT::i16,
/*64003*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*64006*/       OPC_EmitMergeInputChains1_0,
/*64007*/       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)
/*64021*/     /*Scope*/ 24, /*->64046*/
/*64022*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*64024*/       OPC_MoveParent,
/*64025*/       OPC_RecordChild1, // #2 = $src1
/*64026*/       OPC_CheckType, MVT::i32,
/*64028*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*64031*/       OPC_EmitMergeInputChains1_0,
/*64032*/       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)
/*64046*/     /*Scope*/ 24, /*->64071*/
/*64047*/       OPC_CheckPredicate, 3, // Predicate_load
/*64049*/       OPC_MoveParent,
/*64050*/       OPC_RecordChild1, // #2 = $src1
/*64051*/       OPC_CheckType, MVT::i64,
/*64053*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*64056*/       OPC_EmitMergeInputChains1_0,
/*64057*/       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)
/*64071*/     0, /*End of Scope*/
/*64072*/   /*Scope*/ 115|128,1/*243*/, /*->64317*/
/*64074*/     OPC_RecordChild0, // #0 = $src1
/*64075*/     OPC_Scope, 56, /*->64133*/ // 2 children in Scope
/*64077*/       OPC_MoveChild, 1,
/*64079*/       OPC_CheckInteger, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/*64090*/       OPC_MoveParent,
/*64091*/       OPC_SwitchType /*4 cases */, 8,  MVT::i8,// ->64102
/*64094*/         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,// ->64112
/*64104*/         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,// ->64122
/*64114*/         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,// ->64132
/*64124*/         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
/*64133*/     /*Scope*/ 53|128,1/*181*/, /*->64316*/
/*64135*/       OPC_RecordChild1, // #1 = $src2
/*64136*/       OPC_Scope, 125, /*->64263*/ // 5 children in Scope
/*64138*/         OPC_MoveChild, 1,
/*64140*/         OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*64143*/         OPC_Scope, 17, /*->64162*/ // 5 children in Scope
/*64145*/           OPC_CheckPredicate, 8, // Predicate_i16immSExt8
/*64147*/           OPC_MoveParent,
/*64148*/           OPC_CheckType, MVT::i16,
/*64150*/           OPC_EmitConvertToTarget, 1,
/*64152*/           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)
/*64162*/         /*Scope*/ 17, /*->64180*/
/*64163*/           OPC_CheckPredicate, 9, // Predicate_i32immSExt8
/*64165*/           OPC_MoveParent,
/*64166*/           OPC_CheckType, MVT::i32,
/*64168*/           OPC_EmitConvertToTarget, 1,
/*64170*/           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)
/*64180*/         /*Scope*/ 17, /*->64198*/
/*64181*/           OPC_CheckPredicate, 10, // Predicate_i64immSExt8
/*64183*/           OPC_MoveParent,
/*64184*/           OPC_CheckType, MVT::i64,
/*64186*/           OPC_EmitConvertToTarget, 1,
/*64188*/           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)
/*64198*/         /*Scope*/ 17, /*->64216*/
/*64199*/           OPC_CheckPredicate, 11, // Predicate_i64immSExt32
/*64201*/           OPC_MoveParent,
/*64202*/           OPC_CheckType, MVT::i64,
/*64204*/           OPC_EmitConvertToTarget, 1,
/*64206*/           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)
/*64216*/         /*Scope*/ 45, /*->64262*/
/*64217*/           OPC_MoveParent,
/*64218*/           OPC_SwitchType /*3 cases */, 12,  MVT::i8,// ->64233
/*64221*/             OPC_EmitConvertToTarget, 1,
/*64223*/             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,// ->64247
/*64235*/             OPC_EmitConvertToTarget, 1,
/*64237*/             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,// ->64261
/*64249*/             OPC_EmitConvertToTarget, 1,
/*64251*/             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
/*64262*/         0, /*End of Scope*/
/*64263*/       /*Scope*/ 12, /*->64276*/
/*64264*/         OPC_CheckType, MVT::i8,
/*64266*/         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)
/*64276*/       /*Scope*/ 12, /*->64289*/
/*64277*/         OPC_CheckType, MVT::i16,
/*64279*/         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)
/*64289*/       /*Scope*/ 12, /*->64302*/
/*64290*/         OPC_CheckType, MVT::i32,
/*64292*/         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)
/*64302*/       /*Scope*/ 12, /*->64315*/
/*64303*/         OPC_CheckType, MVT::i64,
/*64305*/         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)
/*64315*/       0, /*End of Scope*/
/*64316*/     0, /*End of Scope*/
/*64317*/   /*Scope*/ 6|128,3/*390*/, /*->64709*/
/*64319*/     OPC_MoveChild, 0,
/*64321*/     OPC_SwitchOpcode /*2 cases */, 85|128,1/*213*/,  TARGET_VAL(ISD::BITCAST),// ->64539
/*64326*/       OPC_RecordChild0, // #0 = $src1
/*64327*/       OPC_Scope, 40, /*->64369*/ // 4 children in Scope
/*64329*/         OPC_CheckChild0Type, MVT::v8f32,
/*64331*/         OPC_MoveParent,
/*64332*/         OPC_MoveChild, 1,
/*64334*/         OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*64337*/         OPC_RecordMemRef,
/*64338*/         OPC_RecordNode, // #1 = 'ld' chained node
/*64339*/         OPC_CheckFoldableChainNode,
/*64340*/         OPC_RecordChild1, // #2 = $src2
/*64341*/         OPC_CheckPredicate, 2, // Predicate_unindexedload
/*64343*/         OPC_CheckPredicate, 3, // Predicate_load
/*64345*/         OPC_CheckPredicate, 23, // Predicate_memop
/*64347*/         OPC_MoveParent,
/*64348*/         OPC_CheckType, MVT::v4i64,
/*64350*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*64352*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*64355*/         OPC_EmitMergeInputChains1_1,
/*64356*/         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)
/*64369*/       /*Scope*/ 40, /*->64410*/
/*64370*/         OPC_CheckChild0Type, MVT::v4f64,
/*64372*/         OPC_MoveParent,
/*64373*/         OPC_MoveChild, 1,
/*64375*/         OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*64378*/         OPC_RecordMemRef,
/*64379*/         OPC_RecordNode, // #1 = 'ld' chained node
/*64380*/         OPC_CheckFoldableChainNode,
/*64381*/         OPC_RecordChild1, // #2 = $src2
/*64382*/         OPC_CheckPredicate, 2, // Predicate_unindexedload
/*64384*/         OPC_CheckPredicate, 3, // Predicate_load
/*64386*/         OPC_CheckPredicate, 23, // Predicate_memop
/*64388*/         OPC_MoveParent,
/*64389*/         OPC_CheckType, MVT::v4i64,
/*64391*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*64393*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*64396*/         OPC_EmitMergeInputChains1_1,
/*64397*/         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)
/*64410*/       /*Scope*/ 63, /*->64474*/
/*64411*/         OPC_CheckChild0Type, MVT::v4f32,
/*64413*/         OPC_MoveParent,
/*64414*/         OPC_MoveChild, 1,
/*64416*/         OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*64419*/         OPC_RecordMemRef,
/*64420*/         OPC_RecordNode, // #1 = 'ld' chained node
/*64421*/         OPC_CheckFoldableChainNode,
/*64422*/         OPC_RecordChild1, // #2 = $src2
/*64423*/         OPC_CheckPredicate, 2, // Predicate_unindexedload
/*64425*/         OPC_CheckPredicate, 3, // Predicate_load
/*64427*/         OPC_CheckPredicate, 23, // Predicate_memop
/*64429*/         OPC_MoveParent,
/*64430*/         OPC_CheckType, MVT::v2i64,
/*64432*/         OPC_Scope, 19, /*->64453*/ // 2 children in Scope
/*64434*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*64436*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*64439*/           OPC_EmitMergeInputChains1_1,
/*64440*/           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)
/*64453*/         /*Scope*/ 19, /*->64473*/
/*64454*/           OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*64456*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*64459*/           OPC_EmitMergeInputChains1_1,
/*64460*/           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)
/*64473*/         0, /*End of Scope*/
/*64474*/       /*Scope*/ 63, /*->64538*/
/*64475*/         OPC_CheckChild0Type, MVT::v2f64,
/*64477*/         OPC_MoveParent,
/*64478*/         OPC_MoveChild, 1,
/*64480*/         OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*64483*/         OPC_RecordMemRef,
/*64484*/         OPC_RecordNode, // #1 = 'ld' chained node
/*64485*/         OPC_CheckFoldableChainNode,
/*64486*/         OPC_RecordChild1, // #2 = $src2
/*64487*/         OPC_CheckPredicate, 2, // Predicate_unindexedload
/*64489*/         OPC_CheckPredicate, 3, // Predicate_load
/*64491*/         OPC_CheckPredicate, 23, // Predicate_memop
/*64493*/         OPC_MoveParent,
/*64494*/         OPC_CheckType, MVT::v2i64,
/*64496*/         OPC_Scope, 19, /*->64517*/ // 2 children in Scope
/*64498*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*64500*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*64503*/           OPC_EmitMergeInputChains1_1,
/*64504*/           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)
/*64517*/         /*Scope*/ 19, /*->64537*/
/*64518*/           OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*64520*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*64523*/           OPC_EmitMergeInputChains1_1,
/*64524*/           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)
/*64537*/         0, /*End of Scope*/
/*64538*/       0, /*End of Scope*/
              /*SwitchOpcode*/ 37|128,1/*165*/,  TARGET_VAL(ISD::LOAD),// ->64708
/*64543*/       OPC_RecordMemRef,
/*64544*/       OPC_RecordNode, // #0 = 'ld' chained node
/*64545*/       OPC_CheckFoldableChainNode,
/*64546*/       OPC_RecordChild1, // #1 = $src2
/*64547*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*64549*/       OPC_CheckPredicate, 3, // Predicate_load
/*64551*/       OPC_CheckPredicate, 23, // Predicate_memop
/*64553*/       OPC_MoveParent,
/*64554*/       OPC_MoveChild, 1,
/*64556*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*64559*/       OPC_RecordChild0, // #2 = $src1
/*64560*/       OPC_Scope, 24, /*->64586*/ // 4 children in Scope
/*64562*/         OPC_CheckChild0Type, MVT::v8f32,
/*64564*/         OPC_MoveParent,
/*64565*/         OPC_CheckType, MVT::v4i64,
/*64567*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*64569*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*64572*/         OPC_EmitMergeInputChains1_0,
/*64573*/         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)
/*64586*/       /*Scope*/ 24, /*->64611*/
/*64587*/         OPC_CheckChild0Type, MVT::v4f64,
/*64589*/         OPC_MoveParent,
/*64590*/         OPC_CheckType, MVT::v4i64,
/*64592*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*64594*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*64597*/         OPC_EmitMergeInputChains1_0,
/*64598*/         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)
/*64611*/       /*Scope*/ 47, /*->64659*/
/*64612*/         OPC_CheckChild0Type, MVT::v4f32,
/*64614*/         OPC_MoveParent,
/*64615*/         OPC_CheckType, MVT::v2i64,
/*64617*/         OPC_Scope, 19, /*->64638*/ // 2 children in Scope
/*64619*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*64621*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*64624*/           OPC_EmitMergeInputChains1_0,
/*64625*/           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)
/*64638*/         /*Scope*/ 19, /*->64658*/
/*64639*/           OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*64641*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*64644*/           OPC_EmitMergeInputChains1_0,
/*64645*/           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)
/*64658*/         0, /*End of Scope*/
/*64659*/       /*Scope*/ 47, /*->64707*/
/*64660*/         OPC_CheckChild0Type, MVT::v2f64,
/*64662*/         OPC_MoveParent,
/*64663*/         OPC_CheckType, MVT::v2i64,
/*64665*/         OPC_Scope, 19, /*->64686*/ // 2 children in Scope
/*64667*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*64669*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*64672*/           OPC_EmitMergeInputChains1_0,
/*64673*/           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)
/*64686*/         /*Scope*/ 19, /*->64706*/
/*64687*/           OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*64689*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*64692*/           OPC_EmitMergeInputChains1_0,
/*64693*/           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)
/*64706*/         0, /*End of Scope*/
/*64707*/       0, /*End of Scope*/
              0, // EndSwitchOpcode
/*64709*/   /*Scope*/ 61, /*->64771*/
/*64710*/     OPC_RecordChild0, // #0 = $src1
/*64711*/     OPC_MoveChild, 1,
/*64713*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*64716*/     OPC_RecordMemRef,
/*64717*/     OPC_RecordNode, // #1 = 'ld' chained node
/*64718*/     OPC_CheckFoldableChainNode,
/*64719*/     OPC_RecordChild1, // #2 = $src2
/*64720*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*64722*/     OPC_CheckPredicate, 3, // Predicate_load
/*64724*/     OPC_CheckPredicate, 23, // Predicate_memop
/*64726*/     OPC_MoveParent,
/*64727*/     OPC_CheckType, MVT::v2i64,
/*64729*/     OPC_Scope, 19, /*->64750*/ // 2 children in Scope
/*64731*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*64733*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*64736*/       OPC_EmitMergeInputChains1_1,
/*64737*/       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)
/*64750*/     /*Scope*/ 19, /*->64770*/
/*64751*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*64753*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*64756*/       OPC_EmitMergeInputChains1_1,
/*64757*/       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)
/*64770*/     0, /*End of Scope*/
/*64771*/   /*Scope*/ 8|128,1/*136*/, /*->64909*/
/*64773*/     OPC_MoveChild, 0,
/*64775*/     OPC_SwitchOpcode /*2 cases */, 56,  TARGET_VAL(ISD::LOAD),// ->64835
/*64779*/       OPC_RecordMemRef,
/*64780*/       OPC_RecordNode, // #0 = 'ld' chained node
/*64781*/       OPC_CheckFoldableChainNode,
/*64782*/       OPC_RecordChild1, // #1 = $src2
/*64783*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*64785*/       OPC_CheckPredicate, 3, // Predicate_load
/*64787*/       OPC_CheckPredicate, 23, // Predicate_memop
/*64789*/       OPC_MoveParent,
/*64790*/       OPC_RecordChild1, // #2 = $src1
/*64791*/       OPC_CheckType, MVT::v2i64,
/*64793*/       OPC_Scope, 19, /*->64814*/ // 2 children in Scope
/*64795*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*64797*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*64800*/         OPC_EmitMergeInputChains1_0,
/*64801*/         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)
/*64814*/       /*Scope*/ 19, /*->64834*/
/*64815*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*64817*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*64820*/         OPC_EmitMergeInputChains1_0,
/*64821*/         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)
/*64834*/       0, /*End of Scope*/
              /*SwitchOpcode*/ 70,  TARGET_VAL(ISD::BITCAST),// ->64908
/*64838*/       OPC_RecordChild0, // #0 = $src1
/*64839*/       OPC_Scope, 25, /*->64866*/ // 2 children in Scope
/*64841*/         OPC_CheckChild0Type, MVT::v4f64,
/*64843*/         OPC_MoveParent,
/*64844*/         OPC_MoveChild, 1,
/*64846*/         OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*64849*/         OPC_RecordChild0, // #1 = $src2
/*64850*/         OPC_CheckChild0Type, MVT::v4f64,
/*64852*/         OPC_MoveParent,
/*64853*/         OPC_CheckType, MVT::v4i64,
/*64855*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*64857*/         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)
/*64866*/       /*Scope*/ 40, /*->64907*/
/*64867*/         OPC_CheckChild0Type, MVT::v2f64,
/*64869*/         OPC_MoveParent,
/*64870*/         OPC_MoveChild, 1,
/*64872*/         OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*64875*/         OPC_RecordChild0, // #1 = $src2
/*64876*/         OPC_CheckChild0Type, MVT::v2f64,
/*64878*/         OPC_MoveParent,
/*64879*/         OPC_CheckType, MVT::v2i64,
/*64881*/         OPC_Scope, 11, /*->64894*/ // 2 children in Scope
/*64883*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*64885*/           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)
/*64894*/         /*Scope*/ 11, /*->64906*/
/*64895*/           OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*64897*/           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)
/*64906*/         0, /*End of Scope*/
/*64907*/       0, /*End of Scope*/
              0, // EndSwitchOpcode
/*64909*/   /*Scope*/ 57, /*->64967*/
/*64910*/     OPC_RecordChild0, // #0 = $src1
/*64911*/     OPC_RecordChild1, // #1 = $src2
/*64912*/     OPC_SwitchType /*2 cases */, 11,  MVT::v4i64,// ->64926
/*64915*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*64917*/       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,// ->64966
/*64928*/       OPC_Scope, 11, /*->64941*/ // 3 children in Scope
/*64930*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*64932*/         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)
/*64941*/       /*Scope*/ 11, /*->64953*/
/*64942*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*64944*/         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)
/*64953*/       /*Scope*/ 11, /*->64965*/
/*64954*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*64956*/         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)
/*64965*/       0, /*End of Scope*/
              0, // EndSwitchType
/*64967*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 65|128,12/*1601*/,  TARGET_VAL(ISD::AND),// ->66573
/*64972*/   OPC_Scope, 110, /*->65084*/ // 13 children in Scope
/*64974*/     OPC_RecordChild0, // #0 = $src1
/*64975*/     OPC_MoveChild, 1,
/*64977*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*64980*/     OPC_RecordMemRef,
/*64981*/     OPC_RecordNode, // #1 = 'ld' chained node
/*64982*/     OPC_CheckFoldableChainNode,
/*64983*/     OPC_RecordChild1, // #2 = $src2
/*64984*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*64986*/     OPC_Scope, 23, /*->65011*/ // 4 children in Scope
/*64988*/       OPC_CheckPredicate, 3, // Predicate_load
/*64990*/       OPC_MoveParent,
/*64991*/       OPC_CheckType, MVT::i8,
/*64993*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*64996*/       OPC_EmitMergeInputChains1_1,
/*64997*/       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)
/*65011*/     /*Scope*/ 23, /*->65035*/
/*65012*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*65014*/       OPC_MoveParent,
/*65015*/       OPC_CheckType, MVT::i16,
/*65017*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*65020*/       OPC_EmitMergeInputChains1_1,
/*65021*/       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)
/*65035*/     /*Scope*/ 23, /*->65059*/
/*65036*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*65038*/       OPC_MoveParent,
/*65039*/       OPC_CheckType, MVT::i32,
/*65041*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*65044*/       OPC_EmitMergeInputChains1_1,
/*65045*/       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)
/*65059*/     /*Scope*/ 23, /*->65083*/
/*65060*/       OPC_CheckPredicate, 3, // Predicate_load
/*65062*/       OPC_MoveParent,
/*65063*/       OPC_CheckType, MVT::i64,
/*65065*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*65068*/       OPC_EmitMergeInputChains1_1,
/*65069*/       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)
/*65083*/     0, /*End of Scope*/
/*65084*/   /*Scope*/ 113, /*->65198*/
/*65085*/     OPC_MoveChild, 0,
/*65087*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*65090*/     OPC_RecordMemRef,
/*65091*/     OPC_RecordNode, // #0 = 'ld' chained node
/*65092*/     OPC_CheckFoldableChainNode,
/*65093*/     OPC_RecordChild1, // #1 = $src2
/*65094*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*65096*/     OPC_Scope, 24, /*->65122*/ // 4 children in Scope
/*65098*/       OPC_CheckPredicate, 3, // Predicate_load
/*65100*/       OPC_MoveParent,
/*65101*/       OPC_RecordChild1, // #2 = $src1
/*65102*/       OPC_CheckType, MVT::i8,
/*65104*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*65107*/       OPC_EmitMergeInputChains1_0,
/*65108*/       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)
/*65122*/     /*Scope*/ 24, /*->65147*/
/*65123*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*65125*/       OPC_MoveParent,
/*65126*/       OPC_RecordChild1, // #2 = $src1
/*65127*/       OPC_CheckType, MVT::i16,
/*65129*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*65132*/       OPC_EmitMergeInputChains1_0,
/*65133*/       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)
/*65147*/     /*Scope*/ 24, /*->65172*/
/*65148*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*65150*/       OPC_MoveParent,
/*65151*/       OPC_RecordChild1, // #2 = $src1
/*65152*/       OPC_CheckType, MVT::i32,
/*65154*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*65157*/       OPC_EmitMergeInputChains1_0,
/*65158*/       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)
/*65172*/     /*Scope*/ 24, /*->65197*/
/*65173*/       OPC_CheckPredicate, 3, // Predicate_load
/*65175*/       OPC_MoveParent,
/*65176*/       OPC_RecordChild1, // #2 = $src1
/*65177*/       OPC_CheckType, MVT::i64,
/*65179*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*65182*/       OPC_EmitMergeInputChains1_0,
/*65183*/       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)
/*65197*/     0, /*End of Scope*/
/*65198*/   /*Scope*/ 17|128,1/*145*/, /*->65345*/
/*65200*/     OPC_CheckAndImm, 127|128,1/*255*/, 
/*65203*/     OPC_MoveChild, 0,
/*65205*/     OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
/*65208*/     OPC_RecordChild0, // #0 = $src
/*65209*/     OPC_MoveChild, 1,
/*65211*/     OPC_CheckInteger, 8, 
/*65213*/     OPC_CheckType, MVT::i8,
/*65215*/     OPC_MoveParent,
/*65216*/     OPC_CheckPredicate, 14, // Predicate_srl_su
/*65218*/     OPC_MoveParent,
/*65219*/     OPC_SwitchType /*2 cases */, 72,  MVT::i32,// ->65294
/*65222*/       OPC_Scope, 34, /*->65258*/ // 2 children in Scope
/*65224*/         OPC_CheckPatternPredicate, 3, // (!Subtarget->is64Bit())
/*65226*/         OPC_EmitInteger, MVT::i32, X86::GR32_ABCDRegClassID,
/*65229*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      1/*#VTs*/, MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2 
/*65238*/         OPC_EmitInteger, MVT::i32, X86::sub_8bit_hi,
/*65241*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      1/*#VTs*/, MVT::i8, 2/*#Ops*/, 2, 3,  // Results = #4 
/*65250*/         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))
/*65258*/       /*Scope*/ 34, /*->65293*/
/*65259*/         OPC_CheckPatternPredicate, 4, // (Subtarget->is64Bit())
/*65261*/         OPC_EmitInteger, MVT::i32, X86::GR32_ABCDRegClassID,
/*65264*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      1/*#VTs*/, MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2 
/*65273*/         OPC_EmitInteger, MVT::i32, X86::sub_8bit_hi,
/*65276*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      1/*#VTs*/, MVT::i8, 2/*#Ops*/, 2, 3,  // Results = #4 
/*65285*/         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))
/*65293*/       0, /*End of Scope*/
              /*SwitchType*/ 48,  MVT::i64,// ->65344
/*65296*/       OPC_EmitInteger, MVT::i64, 0, 
/*65299*/       OPC_EmitInteger, MVT::i32, X86::GR64_ABCDRegClassID,
/*65302*/       OPC_EmitNode, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    1/*#VTs*/, MVT::i64, 2/*#Ops*/, 0, 2,  // Results = #3 
/*65311*/       OPC_EmitInteger, MVT::i32, X86::sub_8bit_hi,
/*65314*/       OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                    1/*#VTs*/, MVT::i8, 2/*#Ops*/, 3, 4,  // Results = #5 
/*65323*/       OPC_EmitNode, TARGET_VAL(X86::MOVZX32_NOREXrr8), 0,
                    1/*#VTs*/, MVT::i32, 1/*#Ops*/, 5,  // Results = #6 
/*65331*/       OPC_EmitInteger, MVT::i32, X86::sub_32bit,
/*65334*/       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
/*65345*/   /*Scope*/ 29, /*->65375*/
/*65346*/     OPC_MoveChild, 0,
/*65348*/     OPC_CheckOpcode, TARGET_VAL(X86ISD::SETCC_CARRY),
/*65351*/     OPC_MoveChild, 0,
/*65353*/     OPC_CheckInteger, 2, 
/*65355*/     OPC_MoveParent,
/*65356*/     OPC_RecordChild1, // #0 = physreg input EFLAGS
/*65357*/     OPC_MoveParent,
/*65358*/     OPC_MoveChild, 1,
/*65360*/     OPC_CheckInteger, 1, 
/*65362*/     OPC_MoveParent,
/*65363*/     OPC_CheckType, MVT::i8,
/*65365*/     OPC_EmitCopyToReg, 0, X86::EFLAGS,
/*65368*/     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)
/*65375*/   /*Scope*/ 27, /*->65403*/
/*65376*/     OPC_CheckAndImm, 127|128,127|128,3/*65535*/, 
/*65380*/     OPC_RecordChild0, // #0 = $src1
/*65381*/     OPC_CheckType, MVT::i32,
/*65383*/     OPC_EmitInteger, MVT::i32, X86::sub_16bit,
/*65386*/     OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                  1/*#VTs*/, MVT::i16, 2/*#Ops*/, 0, 1,  // Results = #2 
/*65395*/     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))
/*65403*/   /*Scope*/ 29, /*->65433*/
/*65404*/     OPC_CheckAndImm, 127|128,127|128,127|128,127|128,15/*4294967295*/, 
/*65410*/     OPC_RecordChild0, // #0 = $src
/*65411*/     OPC_CheckType, MVT::i64,
/*65413*/     OPC_EmitInteger, MVT::i32, X86::sub_32bit,
/*65416*/     OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                  1/*#VTs*/, MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2 
/*65425*/     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))
/*65433*/   /*Scope*/ 27, /*->65461*/
/*65434*/     OPC_CheckAndImm, 127|128,127|128,3/*65535*/, 
/*65438*/     OPC_RecordChild0, // #0 = $src
/*65439*/     OPC_CheckType, MVT::i64,
/*65441*/     OPC_EmitInteger, MVT::i32, X86::sub_16bit,
/*65444*/     OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                  1/*#VTs*/, MVT::i16, 2/*#Ops*/, 0, 1,  // Results = #2 
/*65453*/     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))
/*65461*/   /*Scope*/ 48|128,1/*176*/, /*->65639*/
/*65463*/     OPC_CheckAndImm, 127|128,1/*255*/, 
/*65466*/     OPC_RecordChild0, // #0 = $src
/*65467*/     OPC_SwitchType /*3 cases */, 20,  MVT::i64,// ->65490
/*65470*/       OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*65473*/       OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                    1/*#VTs*/, MVT::i8, 2/*#Ops*/, 0, 1,  // Results = #2 
/*65482*/       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,// ->65552
/*65492*/       OPC_Scope, 22, /*->65516*/ // 2 children in Scope
/*65494*/         OPC_CheckPatternPredicate, 4, // (Subtarget->is64Bit())
/*65496*/         OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*65499*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      1/*#VTs*/, MVT::i8, 2/*#Ops*/, 0, 1,  // Results = #2 
/*65508*/         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))
/*65516*/       /*Scope*/ 34, /*->65551*/
/*65517*/         OPC_CheckPatternPredicate, 3, // (!Subtarget->is64Bit())
/*65519*/         OPC_EmitInteger, MVT::i32, X86::GR32_ABCDRegClassID,
/*65522*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      1/*#VTs*/, MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2 
/*65531*/         OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*65534*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      1/*#VTs*/, MVT::i8, 2/*#Ops*/, 2, 3,  // Results = #4 
/*65543*/         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))
/*65551*/       0, /*End of Scope*/
              /*SwitchType*/ 84,  MVT::i16,// ->65638
/*65554*/       OPC_Scope, 34, /*->65590*/ // 2 children in Scope
/*65556*/         OPC_CheckPatternPredicate, 4, // (Subtarget->is64Bit())
/*65558*/         OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*65561*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      1/*#VTs*/, MVT::i8, 2/*#Ops*/, 0, 1,  // Results = #2 
/*65570*/         OPC_EmitNode, TARGET_VAL(X86::MOVZX32rr8), 0,
                      1/*#VTs*/, MVT::i32, 1/*#Ops*/, 2,  // Results = #3 
/*65578*/         OPC_EmitInteger, MVT::i32, X86::sub_16bit,
/*65581*/         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)
/*65590*/       /*Scope*/ 46, /*->65637*/
/*65591*/         OPC_CheckPatternPredicate, 3, // (!Subtarget->is64Bit())
/*65593*/         OPC_EmitInteger, MVT::i32, X86::GR16_ABCDRegClassID,
/*65596*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      1/*#VTs*/, MVT::i16, 2/*#Ops*/, 0, 1,  // Results = #2 
/*65605*/         OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*65608*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      1/*#VTs*/, MVT::i8, 2/*#Ops*/, 2, 3,  // Results = #4 
/*65617*/         OPC_EmitNode, TARGET_VAL(X86::MOVZX32rr8), 0,
                      1/*#VTs*/, MVT::i32, 1/*#Ops*/, 4,  // Results = #5 
/*65625*/         OPC_EmitInteger, MVT::i32, X86::sub_16bit,
/*65628*/         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)
/*65637*/       0, /*End of Scope*/
              0, // EndSwitchType
/*65639*/   /*Scope*/ 25|128,2/*281*/, /*->65922*/
/*65641*/     OPC_RecordChild0, // #0 = $src1
/*65642*/     OPC_RecordChild1, // #1 = $src2
/*65643*/     OPC_Scope, 95|128,1/*223*/, /*->65869*/ // 5 children in Scope
/*65646*/       OPC_MoveChild, 1,
/*65648*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*65651*/       OPC_Scope, 17, /*->65670*/ // 7 children in Scope
/*65653*/         OPC_CheckPredicate, 8, // Predicate_i16immSExt8
/*65655*/         OPC_MoveParent,
/*65656*/         OPC_CheckType, MVT::i16,
/*65658*/         OPC_EmitConvertToTarget, 1,
/*65660*/         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)
/*65670*/       /*Scope*/ 17, /*->65688*/
/*65671*/         OPC_CheckPredicate, 9, // Predicate_i32immSExt8
/*65673*/         OPC_MoveParent,
/*65674*/         OPC_CheckType, MVT::i32,
/*65676*/         OPC_EmitConvertToTarget, 1,
/*65678*/         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)
/*65688*/       /*Scope*/ 17, /*->65706*/
/*65689*/         OPC_CheckPredicate, 10, // Predicate_i64immSExt8
/*65691*/         OPC_MoveParent,
/*65692*/         OPC_CheckType, MVT::i64,
/*65694*/         OPC_EmitConvertToTarget, 1,
/*65696*/         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)
/*65706*/       /*Scope*/ 17, /*->65724*/
/*65707*/         OPC_CheckPredicate, 11, // Predicate_i64immSExt32
/*65709*/         OPC_MoveParent,
/*65710*/         OPC_CheckType, MVT::i64,
/*65712*/         OPC_EmitConvertToTarget, 1,
/*65714*/         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)
/*65724*/       /*Scope*/ 48, /*->65773*/
/*65725*/         OPC_CheckPredicate, 26, // Predicate_i64immZExt32SExt8
/*65727*/         OPC_MoveParent,
/*65728*/         OPC_CheckType, MVT::i64,
/*65730*/         OPC_EmitInteger, MVT::i64, 0, 
/*65733*/         OPC_EmitInteger, MVT::i32, X86::sub_32bit,
/*65736*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      1/*#VTs*/, MVT::i32, 2/*#Ops*/, 0, 3,  // Results = #4 
/*65745*/         OPC_EmitConvertToTarget, 1,
/*65747*/         OPC_EmitNodeXForm, 1, 5, // GetLo8XForm
/*65750*/         OPC_EmitNode, TARGET_VAL(X86::AND32ri8), 0,
                      2/*#VTs*/, MVT::i32, MVT::i32, 2/*#Ops*/, 4, 6,  // Results = #7 #8 
/*65760*/         OPC_EmitInteger, MVT::i32, X86::sub_32bit,
/*65763*/         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)
/*65773*/       /*Scope*/ 48, /*->65822*/
/*65774*/         OPC_CheckPredicate, 27, // Predicate_i64immZExt32
/*65776*/         OPC_MoveParent,
/*65777*/         OPC_CheckType, MVT::i64,
/*65779*/         OPC_EmitInteger, MVT::i64, 0, 
/*65782*/         OPC_EmitInteger, MVT::i32, X86::sub_32bit,
/*65785*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      1/*#VTs*/, MVT::i32, 2/*#Ops*/, 0, 3,  // Results = #4 
/*65794*/         OPC_EmitConvertToTarget, 1,
/*65796*/         OPC_EmitNodeXForm, 2, 5, // GetLo32XForm
/*65799*/         OPC_EmitNode, TARGET_VAL(X86::AND32ri), 0,
                      2/*#VTs*/, MVT::i32, MVT::i32, 2/*#Ops*/, 4, 6,  // Results = #7 #8 
/*65809*/         OPC_EmitInteger, MVT::i32, X86::sub_32bit,
/*65812*/         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)
/*65822*/       /*Scope*/ 45, /*->65868*/
/*65823*/         OPC_MoveParent,
/*65824*/         OPC_SwitchType /*3 cases */, 12,  MVT::i8,// ->65839
/*65827*/           OPC_EmitConvertToTarget, 1,
/*65829*/           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,// ->65853
/*65841*/           OPC_EmitConvertToTarget, 1,
/*65843*/           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,// ->65867
/*65855*/           OPC_EmitConvertToTarget, 1,
/*65857*/           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
/*65868*/       0, /*End of Scope*/
/*65869*/     /*Scope*/ 12, /*->65882*/
/*65870*/       OPC_CheckType, MVT::i8,
/*65872*/       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)
/*65882*/     /*Scope*/ 12, /*->65895*/
/*65883*/       OPC_CheckType, MVT::i16,
/*65885*/       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)
/*65895*/     /*Scope*/ 12, /*->65908*/
/*65896*/       OPC_CheckType, MVT::i32,
/*65898*/       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)
/*65908*/     /*Scope*/ 12, /*->65921*/
/*65909*/       OPC_CheckType, MVT::i64,
/*65911*/       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)
/*65921*/     0, /*End of Scope*/
/*65922*/   /*Scope*/ 6|128,3/*390*/, /*->66314*/
/*65924*/     OPC_MoveChild, 0,
/*65926*/     OPC_SwitchOpcode /*2 cases */, 85|128,1/*213*/,  TARGET_VAL(ISD::BITCAST),// ->66144
/*65931*/       OPC_RecordChild0, // #0 = $src1
/*65932*/       OPC_Scope, 40, /*->65974*/ // 4 children in Scope
/*65934*/         OPC_CheckChild0Type, MVT::v8f32,
/*65936*/         OPC_MoveParent,
/*65937*/         OPC_MoveChild, 1,
/*65939*/         OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*65942*/         OPC_RecordMemRef,
/*65943*/         OPC_RecordNode, // #1 = 'ld' chained node
/*65944*/         OPC_CheckFoldableChainNode,
/*65945*/         OPC_RecordChild1, // #2 = $src2
/*65946*/         OPC_CheckPredicate, 2, // Predicate_unindexedload
/*65948*/         OPC_CheckPredicate, 3, // Predicate_load
/*65950*/         OPC_CheckPredicate, 23, // Predicate_memop
/*65952*/         OPC_MoveParent,
/*65953*/         OPC_CheckType, MVT::v4i64,
/*65955*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*65957*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*65960*/         OPC_EmitMergeInputChains1_1,
/*65961*/         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)
/*65974*/       /*Scope*/ 40, /*->66015*/
/*65975*/         OPC_CheckChild0Type, MVT::v4f64,
/*65977*/         OPC_MoveParent,
/*65978*/         OPC_MoveChild, 1,
/*65980*/         OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*65983*/         OPC_RecordMemRef,
/*65984*/         OPC_RecordNode, // #1 = 'ld' chained node
/*65985*/         OPC_CheckFoldableChainNode,
/*65986*/         OPC_RecordChild1, // #2 = $src2
/*65987*/         OPC_CheckPredicate, 2, // Predicate_unindexedload
/*65989*/         OPC_CheckPredicate, 3, // Predicate_load
/*65991*/         OPC_CheckPredicate, 23, // Predicate_memop
/*65993*/         OPC_MoveParent,
/*65994*/         OPC_CheckType, MVT::v4i64,
/*65996*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*65998*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*66001*/         OPC_EmitMergeInputChains1_1,
/*66002*/         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)
/*66015*/       /*Scope*/ 63, /*->66079*/
/*66016*/         OPC_CheckChild0Type, MVT::v4f32,
/*66018*/         OPC_MoveParent,
/*66019*/         OPC_MoveChild, 1,
/*66021*/         OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*66024*/         OPC_RecordMemRef,
/*66025*/         OPC_RecordNode, // #1 = 'ld' chained node
/*66026*/         OPC_CheckFoldableChainNode,
/*66027*/         OPC_RecordChild1, // #2 = $src2
/*66028*/         OPC_CheckPredicate, 2, // Predicate_unindexedload
/*66030*/         OPC_CheckPredicate, 3, // Predicate_load
/*66032*/         OPC_CheckPredicate, 23, // Predicate_memop
/*66034*/         OPC_MoveParent,
/*66035*/         OPC_CheckType, MVT::v2i64,
/*66037*/         OPC_Scope, 19, /*->66058*/ // 2 children in Scope
/*66039*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*66041*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*66044*/           OPC_EmitMergeInputChains1_1,
/*66045*/           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)
/*66058*/         /*Scope*/ 19, /*->66078*/
/*66059*/           OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*66061*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*66064*/           OPC_EmitMergeInputChains1_1,
/*66065*/           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)
/*66078*/         0, /*End of Scope*/
/*66079*/       /*Scope*/ 63, /*->66143*/
/*66080*/         OPC_CheckChild0Type, MVT::v2f64,
/*66082*/         OPC_MoveParent,
/*66083*/         OPC_MoveChild, 1,
/*66085*/         OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*66088*/         OPC_RecordMemRef,
/*66089*/         OPC_RecordNode, // #1 = 'ld' chained node
/*66090*/         OPC_CheckFoldableChainNode,
/*66091*/         OPC_RecordChild1, // #2 = $src2
/*66092*/         OPC_CheckPredicate, 2, // Predicate_unindexedload
/*66094*/         OPC_CheckPredicate, 3, // Predicate_load
/*66096*/         OPC_CheckPredicate, 23, // Predicate_memop
/*66098*/         OPC_MoveParent,
/*66099*/         OPC_CheckType, MVT::v2i64,
/*66101*/         OPC_Scope, 19, /*->66122*/ // 2 children in Scope
/*66103*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*66105*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*66108*/           OPC_EmitMergeInputChains1_1,
/*66109*/           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)
/*66122*/         /*Scope*/ 19, /*->66142*/
/*66123*/           OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*66125*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*66128*/           OPC_EmitMergeInputChains1_1,
/*66129*/           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)
/*66142*/         0, /*End of Scope*/
/*66143*/       0, /*End of Scope*/
              /*SwitchOpcode*/ 37|128,1/*165*/,  TARGET_VAL(ISD::LOAD),// ->66313
/*66148*/       OPC_RecordMemRef,
/*66149*/       OPC_RecordNode, // #0 = 'ld' chained node
/*66150*/       OPC_CheckFoldableChainNode,
/*66151*/       OPC_RecordChild1, // #1 = $src2
/*66152*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*66154*/       OPC_CheckPredicate, 3, // Predicate_load
/*66156*/       OPC_CheckPredicate, 23, // Predicate_memop
/*66158*/       OPC_MoveParent,
/*66159*/       OPC_MoveChild, 1,
/*66161*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*66164*/       OPC_RecordChild0, // #2 = $src1
/*66165*/       OPC_Scope, 24, /*->66191*/ // 4 children in Scope
/*66167*/         OPC_CheckChild0Type, MVT::v8f32,
/*66169*/         OPC_MoveParent,
/*66170*/         OPC_CheckType, MVT::v4i64,
/*66172*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*66174*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*66177*/         OPC_EmitMergeInputChains1_0,
/*66178*/         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)
/*66191*/       /*Scope*/ 24, /*->66216*/
/*66192*/         OPC_CheckChild0Type, MVT::v4f64,
/*66194*/         OPC_MoveParent,
/*66195*/         OPC_CheckType, MVT::v4i64,
/*66197*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*66199*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*66202*/         OPC_EmitMergeInputChains1_0,
/*66203*/         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)
/*66216*/       /*Scope*/ 47, /*->66264*/
/*66217*/         OPC_CheckChild0Type, MVT::v4f32,
/*66219*/         OPC_MoveParent,
/*66220*/         OPC_CheckType, MVT::v2i64,
/*66222*/         OPC_Scope, 19, /*->66243*/ // 2 children in Scope
/*66224*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*66226*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*66229*/           OPC_EmitMergeInputChains1_0,
/*66230*/           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)
/*66243*/         /*Scope*/ 19, /*->66263*/
/*66244*/           OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*66246*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*66249*/           OPC_EmitMergeInputChains1_0,
/*66250*/           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)
/*66263*/         0, /*End of Scope*/
/*66264*/       /*Scope*/ 47, /*->66312*/
/*66265*/         OPC_CheckChild0Type, MVT::v2f64,
/*66267*/         OPC_MoveParent,
/*66268*/         OPC_CheckType, MVT::v2i64,
/*66270*/         OPC_Scope, 19, /*->66291*/ // 2 children in Scope
/*66272*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*66274*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*66277*/           OPC_EmitMergeInputChains1_0,
/*66278*/           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)
/*66291*/         /*Scope*/ 19, /*->66311*/
/*66292*/           OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*66294*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*66297*/           OPC_EmitMergeInputChains1_0,
/*66298*/           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)
/*66311*/         0, /*End of Scope*/
/*66312*/       0, /*End of Scope*/
              0, // EndSwitchOpcode
/*66314*/   /*Scope*/ 61, /*->66376*/
/*66315*/     OPC_RecordChild0, // #0 = $src1
/*66316*/     OPC_MoveChild, 1,
/*66318*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*66321*/     OPC_RecordMemRef,
/*66322*/     OPC_RecordNode, // #1 = 'ld' chained node
/*66323*/     OPC_CheckFoldableChainNode,
/*66324*/     OPC_RecordChild1, // #2 = $src2
/*66325*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*66327*/     OPC_CheckPredicate, 3, // Predicate_load
/*66329*/     OPC_CheckPredicate, 23, // Predicate_memop
/*66331*/     OPC_MoveParent,
/*66332*/     OPC_CheckType, MVT::v2i64,
/*66334*/     OPC_Scope, 19, /*->66355*/ // 2 children in Scope
/*66336*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*66338*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*66341*/       OPC_EmitMergeInputChains1_1,
/*66342*/       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)
/*66355*/     /*Scope*/ 19, /*->66375*/
/*66356*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*66358*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*66361*/       OPC_EmitMergeInputChains1_1,
/*66362*/       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)
/*66375*/     0, /*End of Scope*/
/*66376*/   /*Scope*/ 8|128,1/*136*/, /*->66514*/
/*66378*/     OPC_MoveChild, 0,
/*66380*/     OPC_SwitchOpcode /*2 cases */, 56,  TARGET_VAL(ISD::LOAD),// ->66440
/*66384*/       OPC_RecordMemRef,
/*66385*/       OPC_RecordNode, // #0 = 'ld' chained node
/*66386*/       OPC_CheckFoldableChainNode,
/*66387*/       OPC_RecordChild1, // #1 = $src2
/*66388*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*66390*/       OPC_CheckPredicate, 3, // Predicate_load
/*66392*/       OPC_CheckPredicate, 23, // Predicate_memop
/*66394*/       OPC_MoveParent,
/*66395*/       OPC_RecordChild1, // #2 = $src1
/*66396*/       OPC_CheckType, MVT::v2i64,
/*66398*/       OPC_Scope, 19, /*->66419*/ // 2 children in Scope
/*66400*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*66402*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*66405*/         OPC_EmitMergeInputChains1_0,
/*66406*/         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)
/*66419*/       /*Scope*/ 19, /*->66439*/
/*66420*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*66422*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*66425*/         OPC_EmitMergeInputChains1_0,
/*66426*/         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)
/*66439*/       0, /*End of Scope*/
              /*SwitchOpcode*/ 70,  TARGET_VAL(ISD::BITCAST),// ->66513
/*66443*/       OPC_RecordChild0, // #0 = $src1
/*66444*/       OPC_Scope, 25, /*->66471*/ // 2 children in Scope
/*66446*/         OPC_CheckChild0Type, MVT::v4f64,
/*66448*/         OPC_MoveParent,
/*66449*/         OPC_MoveChild, 1,
/*66451*/         OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*66454*/         OPC_RecordChild0, // #1 = $src2
/*66455*/         OPC_CheckChild0Type, MVT::v4f64,
/*66457*/         OPC_MoveParent,
/*66458*/         OPC_CheckType, MVT::v4i64,
/*66460*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*66462*/         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)
/*66471*/       /*Scope*/ 40, /*->66512*/
/*66472*/         OPC_CheckChild0Type, MVT::v2f64,
/*66474*/         OPC_MoveParent,
/*66475*/         OPC_MoveChild, 1,
/*66477*/         OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*66480*/         OPC_RecordChild0, // #1 = $src2
/*66481*/         OPC_CheckChild0Type, MVT::v2f64,
/*66483*/         OPC_MoveParent,
/*66484*/         OPC_CheckType, MVT::v2i64,
/*66486*/         OPC_Scope, 11, /*->66499*/ // 2 children in Scope
/*66488*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*66490*/           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)
/*66499*/         /*Scope*/ 11, /*->66511*/
/*66500*/           OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*66502*/           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)
/*66511*/         0, /*End of Scope*/
/*66512*/       0, /*End of Scope*/
              0, // EndSwitchOpcode
/*66514*/   /*Scope*/ 57, /*->66572*/
/*66515*/     OPC_RecordChild0, // #0 = $src1
/*66516*/     OPC_RecordChild1, // #1 = $src2
/*66517*/     OPC_SwitchType /*2 cases */, 11,  MVT::v4i64,// ->66531
/*66520*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*66522*/       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,// ->66571
/*66533*/       OPC_Scope, 11, /*->66546*/ // 3 children in Scope
/*66535*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*66537*/         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)
/*66546*/       /*Scope*/ 11, /*->66558*/
/*66547*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*66549*/         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)
/*66558*/       /*Scope*/ 11, /*->66570*/
/*66559*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*66561*/         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)
/*66570*/       0, /*End of Scope*/
              0, // EndSwitchType
/*66572*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 35|128,13/*1699*/,  TARGET_VAL(ISD::LOAD),// ->68276
/*66577*/   OPC_RecordMemRef,
/*66578*/   OPC_RecordNode,   // #0 = 'ld' chained node
/*66579*/   OPC_Scope, 66|128,5/*706*/, /*->67288*/ // 3 children in Scope
/*66582*/     OPC_RecordChild1, // #1 = $src
/*66583*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*66585*/     OPC_Scope, 20, /*->66607*/ // 13 children in Scope
/*66587*/       OPC_CheckPredicate, 3, // Predicate_load
/*66589*/       OPC_CheckType, MVT::i8,
/*66591*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*66594*/       OPC_EmitMergeInputChains1_0,
/*66595*/       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)
/*66607*/     /*Scope*/ 20, /*->66628*/
/*66608*/       OPC_CheckPredicate, 6, // Predicate_loadi16
/*66610*/       OPC_CheckType, MVT::i16,
/*66612*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*66615*/       OPC_EmitMergeInputChains1_0,
/*66616*/       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)
/*66628*/     /*Scope*/ 20, /*->66649*/
/*66629*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*66631*/       OPC_CheckType, MVT::i32,
/*66633*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*66636*/       OPC_EmitMergeInputChains1_0,
/*66637*/       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)
/*66649*/     /*Scope*/ 20, /*->66670*/
/*66650*/       OPC_CheckPredicate, 3, // Predicate_load
/*66652*/       OPC_CheckType, MVT::i64,
/*66654*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*66657*/       OPC_EmitMergeInputChains1_0,
/*66658*/       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)
/*66670*/     /*Scope*/ 44, /*->66715*/
/*66671*/       OPC_CheckPredicate, 28, // Predicate_sextload
/*66673*/       OPC_CheckType, MVT::i32,
/*66675*/       OPC_Scope, 18, /*->66695*/ // 2 children in Scope
/*66677*/         OPC_CheckPredicate, 29, // Predicate_sextloadi8
/*66679*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*66682*/         OPC_EmitMergeInputChains1_0,
/*66683*/         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)
/*66695*/       /*Scope*/ 18, /*->66714*/
/*66696*/         OPC_CheckPredicate, 30, // Predicate_sextloadi16
/*66698*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*66701*/         OPC_EmitMergeInputChains1_0,
/*66702*/         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)
/*66714*/       0, /*End of Scope*/
/*66715*/     /*Scope*/ 44, /*->66760*/
/*66716*/       OPC_CheckPredicate, 31, // Predicate_zextload
/*66718*/       OPC_CheckType, MVT::i32,
/*66720*/       OPC_Scope, 18, /*->66740*/ // 2 children in Scope
/*66722*/         OPC_CheckPredicate, 32, // Predicate_zextloadi8
/*66724*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*66727*/         OPC_EmitMergeInputChains1_0,
/*66728*/         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)
/*66740*/       /*Scope*/ 18, /*->66759*/
/*66741*/         OPC_CheckPredicate, 33, // Predicate_zextloadi16
/*66743*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*66746*/         OPC_EmitMergeInputChains1_0,
/*66747*/         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)
/*66759*/       0, /*End of Scope*/
/*66760*/     /*Scope*/ 63, /*->66824*/
/*66761*/       OPC_CheckPredicate, 28, // Predicate_sextload
/*66763*/       OPC_CheckType, MVT::i64,
/*66765*/       OPC_Scope, 18, /*->66785*/ // 3 children in Scope
/*66767*/         OPC_CheckPredicate, 29, // Predicate_sextloadi8
/*66769*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*66772*/         OPC_EmitMergeInputChains1_0,
/*66773*/         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)
/*66785*/       /*Scope*/ 18, /*->66804*/
/*66786*/         OPC_CheckPredicate, 30, // Predicate_sextloadi16
/*66788*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*66791*/         OPC_EmitMergeInputChains1_0,
/*66792*/         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)
/*66804*/       /*Scope*/ 18, /*->66823*/
/*66805*/         OPC_CheckPredicate, 34, // Predicate_sextloadi32
/*66807*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*66810*/         OPC_EmitMergeInputChains1_0,
/*66811*/         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)
/*66823*/       0, /*End of Scope*/
/*66824*/     /*Scope*/ 63, /*->66888*/
/*66825*/       OPC_CheckPredicate, 31, // Predicate_zextload
/*66827*/       OPC_CheckType, MVT::i64,
/*66829*/       OPC_Scope, 18, /*->66849*/ // 3 children in Scope
/*66831*/         OPC_CheckPredicate, 32, // Predicate_zextloadi8
/*66833*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*66836*/         OPC_EmitMergeInputChains1_0,
/*66837*/         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)
/*66849*/       /*Scope*/ 18, /*->66868*/
/*66850*/         OPC_CheckPredicate, 33, // Predicate_zextloadi16
/*66852*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*66855*/         OPC_EmitMergeInputChains1_0,
/*66856*/         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)
/*66868*/       /*Scope*/ 18, /*->66887*/
/*66869*/         OPC_CheckPredicate, 35, // Predicate_zextloadi32
/*66871*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*66874*/         OPC_EmitMergeInputChains1_0,
/*66875*/         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)
/*66887*/       0, /*End of Scope*/
/*66888*/     /*Scope*/ 22, /*->66911*/
/*66889*/       OPC_CheckPredicate, 3, // Predicate_load
/*66891*/       OPC_CheckType, MVT::x86mmx,
/*66893*/       OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*66895*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*66898*/       OPC_EmitMergeInputChains1_0,
/*66899*/       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)
/*66911*/     /*Scope*/ 78, /*->66990*/
/*66912*/       OPC_CheckPredicate, 31, // Predicate_zextload
/*66914*/       OPC_CheckPredicate, 36, // Predicate_zextloadi1
/*66916*/       OPC_SwitchType /*4 cases */, 16,  MVT::i8,// ->66935
/*66919*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*66922*/         OPC_EmitMergeInputChains1_0,
/*66923*/         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,// ->66953
/*66937*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*66940*/         OPC_EmitMergeInputChains1_0,
/*66941*/         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,// ->66971
/*66955*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*66958*/         OPC_EmitMergeInputChains1_0,
/*66959*/         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,// ->66989
/*66973*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*66976*/         OPC_EmitMergeInputChains1_0,
/*66977*/         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
/*66990*/     /*Scope*/ 97|128,1/*225*/, /*->67217*/
/*66992*/       OPC_CheckPredicate, 37, // Predicate_extload
/*66994*/       OPC_Scope, 58, /*->67054*/ // 7 children in Scope
/*66996*/         OPC_CheckPredicate, 38, // Predicate_extloadi1
/*66998*/         OPC_SwitchType /*3 cases */, 16,  MVT::i8,// ->67017
/*67001*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*67004*/           OPC_EmitMergeInputChains1_0,
/*67005*/           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,// ->67035
/*67019*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*67022*/           OPC_EmitMergeInputChains1_0,
/*67023*/           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,// ->67053
/*67037*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*67040*/           OPC_EmitMergeInputChains1_0,
/*67041*/           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
/*67054*/       /*Scope*/ 40, /*->67095*/
/*67055*/         OPC_CheckPredicate, 39, // Predicate_extloadi8
/*67057*/         OPC_SwitchType /*2 cases */, 16,  MVT::i16,// ->67076
/*67060*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*67063*/           OPC_EmitMergeInputChains1_0,
/*67064*/           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,// ->67094
/*67078*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*67081*/           OPC_EmitMergeInputChains1_0,
/*67082*/           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
/*67095*/       /*Scope*/ 20, /*->67116*/
/*67096*/         OPC_CheckPredicate, 40, // Predicate_extloadi16
/*67098*/         OPC_CheckType, MVT::i32,
/*67100*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*67103*/         OPC_EmitMergeInputChains1_0,
/*67104*/         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)
/*67116*/       /*Scope*/ 20, /*->67137*/
/*67117*/         OPC_CheckPredicate, 38, // Predicate_extloadi1
/*67119*/         OPC_CheckType, MVT::i64,
/*67121*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*67124*/         OPC_EmitMergeInputChains1_0,
/*67125*/         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)
/*67137*/       /*Scope*/ 20, /*->67158*/
/*67138*/         OPC_CheckPredicate, 39, // Predicate_extloadi8
/*67140*/         OPC_CheckType, MVT::i64,
/*67142*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*67145*/         OPC_EmitMergeInputChains1_0,
/*67146*/         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)
/*67158*/       /*Scope*/ 20, /*->67179*/
/*67159*/         OPC_CheckPredicate, 40, // Predicate_extloadi16
/*67161*/         OPC_CheckType, MVT::i64,
/*67163*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*67166*/         OPC_EmitMergeInputChains1_0,
/*67167*/         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)
/*67179*/       /*Scope*/ 36, /*->67216*/
/*67180*/         OPC_CheckPredicate, 41, // Predicate_extloadi32
/*67182*/         OPC_CheckType, MVT::i64,
/*67184*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*67187*/         OPC_EmitMergeInputChains1_0,
/*67188*/         OPC_EmitInteger, MVT::i64, 0, 
/*67191*/         OPC_EmitNode, TARGET_VAL(X86::MOV32rm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #8 
/*67203*/         OPC_EmitInteger, MVT::i32, X86::sub_32bit,
/*67206*/         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)
/*67216*/       0, /*End of Scope*/
/*67217*/     /*Scope*/ 34, /*->67252*/
/*67218*/       OPC_CheckPredicate, 28, // Predicate_sextload
/*67220*/       OPC_CheckPredicate, 29, // Predicate_sextloadi8
/*67222*/       OPC_CheckType, MVT::i16,
/*67224*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*67227*/       OPC_EmitMergeInputChains1_0,
/*67228*/       OPC_EmitNode, TARGET_VAL(X86::MOVSX32rm8), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #7 
/*67240*/       OPC_EmitInteger, MVT::i32, X86::sub_16bit,
/*67243*/       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)
/*67252*/     /*Scope*/ 34, /*->67287*/
/*67253*/       OPC_CheckPredicate, 31, // Predicate_zextload
/*67255*/       OPC_CheckPredicate, 32, // Predicate_zextloadi8
/*67257*/       OPC_CheckType, MVT::i16,
/*67259*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*67262*/       OPC_EmitMergeInputChains1_0,
/*67263*/       OPC_EmitNode, TARGET_VAL(X86::MOVZX32rm8), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #7 
/*67275*/       OPC_EmitInteger, MVT::i32, X86::sub_16bit,
/*67278*/       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)
/*67287*/     0, /*End of Scope*/
/*67288*/   /*Scope*/ 30, /*->67319*/
/*67289*/     OPC_MoveChild, 1,
/*67291*/     OPC_CheckOpcode, TARGET_VAL(X86ISD::Wrapper),
/*67294*/     OPC_RecordChild0, // #1 = $dst
/*67295*/     OPC_MoveChild, 0,
/*67297*/     OPC_CheckOpcode, TARGET_VAL(ISD::TargetGlobalTLSAddress),
/*67300*/     OPC_MoveParent,
/*67301*/     OPC_CheckType, MVT::i64,
/*67303*/     OPC_MoveParent,
/*67304*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*67306*/     OPC_CheckPredicate, 3, // Predicate_load
/*67308*/     OPC_CheckType, MVT::i64,
/*67310*/     OPC_EmitMergeInputChains1_0,
/*67311*/     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)
/*67319*/   /*Scope*/ 58|128,7/*954*/, /*->68275*/
/*67321*/     OPC_RecordChild1, // #1 = $src
/*67322*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*67324*/     OPC_Scope, 103, /*->67429*/ // 5 children in Scope
/*67326*/       OPC_CheckPredicate, 3, // Predicate_load
/*67328*/       OPC_SwitchType /*3 cases */, 59,  MVT::f64,// ->67390
/*67331*/         OPC_Scope, 18, /*->67351*/ // 3 children in Scope
/*67333*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*67335*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*67338*/           OPC_EmitMergeInputChains1_0,
/*67339*/           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)
/*67351*/         /*Scope*/ 18, /*->67370*/
/*67352*/           OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*67354*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*67357*/           OPC_EmitMergeInputChains1_0,
/*67358*/           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)
/*67370*/         /*Scope*/ 18, /*->67389*/
/*67371*/           OPC_CheckPatternPredicate, 9, // (!Subtarget->hasXMMInt())
/*67373*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*67376*/           OPC_EmitMergeInputChains1_0,
/*67377*/           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)
/*67389*/         0, /*End of Scope*/
                /*SwitchType*/ 18,  MVT::f32,// ->67410
/*67392*/         OPC_CheckPatternPredicate, 8, // (!Subtarget->hasXMM())
/*67394*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*67397*/         OPC_EmitMergeInputChains1_0,
/*67398*/         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,// ->67428
/*67412*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*67415*/         OPC_EmitMergeInputChains1_0,
/*67416*/         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
/*67429*/     /*Scope*/ 68, /*->67498*/
/*67430*/       OPC_CheckPredicate, 37, // Predicate_extload
/*67432*/       OPC_SwitchType /*2 cases */, 20,  MVT::f64,// ->67455
/*67435*/         OPC_CheckPredicate, 42, // Predicate_extloadf32
/*67437*/         OPC_CheckPatternPredicate, 9, // (!Subtarget->hasXMMInt())
/*67439*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*67442*/         OPC_EmitMergeInputChains1_0,
/*67443*/         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,// ->67497
/*67457*/         OPC_Scope, 18, /*->67477*/ // 2 children in Scope
/*67459*/           OPC_CheckPredicate, 43, // Predicate_extloadf64
/*67461*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*67464*/           OPC_EmitMergeInputChains1_0,
/*67465*/           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)
/*67477*/         /*Scope*/ 18, /*->67496*/
/*67478*/           OPC_CheckPredicate, 42, // Predicate_extloadf32
/*67480*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*67483*/           OPC_EmitMergeInputChains1_0,
/*67484*/           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)
/*67496*/         0, /*End of Scope*/
                0, // EndSwitchType
/*67498*/     /*Scope*/ 5|128,1/*133*/, /*->67633*/
/*67500*/       OPC_CheckPredicate, 3, // Predicate_load
/*67502*/       OPC_SwitchType /*2 cases */, 83,  MVT::f32,// ->67588
/*67505*/         OPC_Scope, 18, /*->67525*/ // 3 children in Scope
/*67507*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*67509*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*67512*/           OPC_EmitMergeInputChains1_0,
/*67513*/           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)
/*67525*/         /*Scope*/ 40, /*->67566*/
/*67526*/           OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*67528*/           OPC_Scope, 16, /*->67546*/ // 2 children in Scope
/*67530*/             OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*67533*/             OPC_EmitMergeInputChains1_0,
/*67534*/             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)
/*67546*/           /*Scope*/ 18, /*->67565*/
/*67547*/             OPC_CheckPredicate, 44, // Predicate_alignedload
/*67549*/             OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*67552*/             OPC_EmitMergeInputChains1_0,
/*67553*/             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)
/*67565*/           0, /*End of Scope*/
/*67566*/         /*Scope*/ 20, /*->67587*/
/*67567*/           OPC_CheckPredicate, 44, // Predicate_alignedload
/*67569*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*67571*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*67574*/           OPC_EmitMergeInputChains1_0,
/*67575*/           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)
/*67587*/         0, /*End of Scope*/
                /*SwitchType*/ 42,  MVT::f64,// ->67632
/*67590*/         OPC_CheckPredicate, 44, // Predicate_alignedload
/*67592*/         OPC_Scope, 18, /*->67612*/ // 2 children in Scope
/*67594*/           OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*67596*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*67599*/           OPC_EmitMergeInputChains1_0,
/*67600*/           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)
/*67612*/         /*Scope*/ 18, /*->67631*/
/*67613*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*67615*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*67618*/           OPC_EmitMergeInputChains1_0,
/*67619*/           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)
/*67631*/         0, /*End of Scope*/
                0, // EndSwitchType
/*67633*/     /*Scope*/ 119, /*->67753*/
/*67634*/       OPC_CheckPredicate, 37, // Predicate_extload
/*67636*/       OPC_CheckPredicate, 42, // Predicate_extloadf32
/*67638*/       OPC_CheckType, MVT::f64,
/*67640*/       OPC_Scope, 18, /*->67660*/ // 4 children in Scope
/*67642*/         OPC_CheckPatternPredicate, 30, // (Subtarget->hasSSE2()) && (OptForSize)
/*67644*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*67647*/         OPC_EmitMergeInputChains1_0,
/*67648*/         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)
/*67660*/       /*Scope*/ 26, /*->67687*/
/*67661*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*67663*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*67666*/         OPC_EmitMergeInputChains1_0,
/*67667*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      1/*#VTs*/, MVT::f32, 0/*#Ops*/,  // Results = #7 
/*67674*/         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)
/*67687*/       /*Scope*/ 29, /*->67717*/
/*67688*/         OPC_CheckPatternPredicate, 31, // (Subtarget->hasSSE2()) && (!OptForSize)
/*67690*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*67693*/         OPC_EmitMergeInputChains1_0,
/*67694*/         OPC_EmitNode, TARGET_VAL(X86::MOVSSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::f32, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #7 
/*67706*/         OPC_EmitNode, TARGET_VAL(X86::CVTSS2SDrr), 0,
                      1/*#VTs*/, MVT::f64, 1/*#Ops*/, 7,  // Results = #8 
/*67714*/         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))
/*67717*/       /*Scope*/ 34, /*->67752*/
/*67718*/         OPC_CheckPatternPredicate, 32, // (Subtarget->hasAVX()) && (!OptForSize)
/*67720*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*67723*/         OPC_EmitMergeInputChains1_0,
/*67724*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      1/*#VTs*/, MVT::f32, 0/*#Ops*/,  // Results = #7 
/*67731*/         OPC_EmitNode, TARGET_VAL(X86::MOVSSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1/*#VTs*/, MVT::f32, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #8 
/*67743*/         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))
/*67752*/       0, /*End of Scope*/
/*67753*/     /*Scope*/ 7|128,4/*519*/, /*->68274*/
/*67755*/       OPC_CheckPredicate, 3, // Predicate_load
/*67757*/       OPC_SwitchType /*8 cases */, 85,  MVT::v4i32,// ->67845
/*67760*/         OPC_Scope, 20, /*->67782*/ // 2 children in Scope
/*67762*/           OPC_CheckPredicate, 44, // Predicate_alignedload
/*67764*/           OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*67766*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*67769*/           OPC_EmitMergeInputChains1_0,
/*67770*/           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)
/*67782*/         /*Scope*/ 61, /*->67844*/
/*67783*/           OPC_Scope, 18, /*->67803*/ // 3 children in Scope
/*67785*/             OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*67787*/             OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*67790*/             OPC_EmitMergeInputChains1_0,
/*67791*/             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)
/*67803*/           /*Scope*/ 20, /*->67824*/
/*67804*/             OPC_CheckPredicate, 44, // Predicate_alignedload
/*67806*/             OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*67808*/             OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*67811*/             OPC_EmitMergeInputChains1_0,
/*67812*/             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)
/*67824*/           /*Scope*/ 18, /*->67843*/
/*67825*/             OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*67827*/             OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*67830*/             OPC_EmitMergeInputChains1_0,
/*67831*/             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)
/*67843*/           0, /*End of Scope*/
/*67844*/         0, /*End of Scope*/
                /*SwitchType*/ 82,  MVT::v2i64,// ->67929
/*67847*/         OPC_Scope, 20, /*->67869*/ // 4 children in Scope
/*67849*/           OPC_CheckPredicate, 44, // Predicate_alignedload
/*67851*/           OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*67853*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*67856*/           OPC_EmitMergeInputChains1_0,
/*67857*/           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)
/*67869*/         /*Scope*/ 18, /*->67888*/
/*67870*/           OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*67872*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*67875*/           OPC_EmitMergeInputChains1_0,
/*67876*/           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)
/*67888*/         /*Scope*/ 20, /*->67909*/
/*67889*/           OPC_CheckPredicate, 44, // Predicate_alignedload
/*67891*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*67893*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*67896*/           OPC_EmitMergeInputChains1_0,
/*67897*/           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)
/*67909*/         /*Scope*/ 18, /*->67928*/
/*67910*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*67912*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*67915*/           OPC_EmitMergeInputChains1_0,
/*67916*/           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)
/*67928*/         0, /*End of Scope*/
                /*SwitchType*/ 42,  MVT::v4i64,// ->67973
/*67931*/         OPC_Scope, 20, /*->67953*/ // 2 children in Scope
/*67933*/           OPC_CheckPredicate, 45, // Predicate_alignedload256
/*67935*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*67937*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*67940*/           OPC_EmitMergeInputChains1_0,
/*67941*/           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)
/*67953*/         /*Scope*/ 18, /*->67972*/
/*67954*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*67956*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*67959*/           OPC_EmitMergeInputChains1_0,
/*67960*/           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)
/*67972*/         0, /*End of Scope*/
                /*SwitchType*/ 42,  MVT::v8i32,// ->68017
/*67975*/         OPC_Scope, 20, /*->67997*/ // 2 children in Scope
/*67977*/           OPC_CheckPredicate, 45, // Predicate_alignedload256
/*67979*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*67981*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*67984*/           OPC_EmitMergeInputChains1_0,
/*67985*/           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)
/*67997*/         /*Scope*/ 18, /*->68016*/
/*67998*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*68000*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*68003*/           OPC_EmitMergeInputChains1_0,
/*68004*/           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)
/*68016*/         0, /*End of Scope*/
                /*SwitchType*/ 82,  MVT::v4f32,// ->68101
/*68019*/         OPC_Scope, 20, /*->68041*/ // 4 children in Scope
/*68021*/           OPC_CheckPredicate, 44, // Predicate_alignedload
/*68023*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*68025*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*68028*/           OPC_EmitMergeInputChains1_0,
/*68029*/           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)
/*68041*/         /*Scope*/ 18, /*->68060*/
/*68042*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*68044*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*68047*/           OPC_EmitMergeInputChains1_0,
/*68048*/           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)
/*68060*/         /*Scope*/ 20, /*->68081*/
/*68061*/           OPC_CheckPredicate, 44, // Predicate_alignedload
/*68063*/           OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*68065*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*68068*/           OPC_EmitMergeInputChains1_0,
/*68069*/           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)
/*68081*/         /*Scope*/ 18, /*->68100*/
/*68082*/           OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*68084*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*68087*/           OPC_EmitMergeInputChains1_0,
/*68088*/           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)
/*68100*/         0, /*End of Scope*/
                /*SwitchType*/ 82,  MVT::v2f64,// ->68185
/*68103*/         OPC_Scope, 20, /*->68125*/ // 4 children in Scope
/*68105*/           OPC_CheckPredicate, 44, // Predicate_alignedload
/*68107*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*68109*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*68112*/           OPC_EmitMergeInputChains1_0,
/*68113*/           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)
/*68125*/         /*Scope*/ 18, /*->68144*/
/*68126*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*68128*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*68131*/           OPC_EmitMergeInputChains1_0,
/*68132*/           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)
/*68144*/         /*Scope*/ 20, /*->68165*/
/*68145*/           OPC_CheckPredicate, 44, // Predicate_alignedload
/*68147*/           OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*68149*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*68152*/           OPC_EmitMergeInputChains1_0,
/*68153*/           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)
/*68165*/         /*Scope*/ 18, /*->68184*/
/*68166*/           OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*68168*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*68171*/           OPC_EmitMergeInputChains1_0,
/*68172*/           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)
/*68184*/         0, /*End of Scope*/
                /*SwitchType*/ 42,  MVT::v8f32,// ->68229
/*68187*/         OPC_Scope, 20, /*->68209*/ // 2 children in Scope
/*68189*/           OPC_CheckPredicate, 45, // Predicate_alignedload256
/*68191*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*68193*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*68196*/           OPC_EmitMergeInputChains1_0,
/*68197*/           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)
/*68209*/         /*Scope*/ 18, /*->68228*/
/*68210*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*68212*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*68215*/           OPC_EmitMergeInputChains1_0,
/*68216*/           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)
/*68228*/         0, /*End of Scope*/
                /*SwitchType*/ 42,  MVT::v4f64,// ->68273
/*68231*/         OPC_Scope, 20, /*->68253*/ // 2 children in Scope
/*68233*/           OPC_CheckPredicate, 45, // Predicate_alignedload256
/*68235*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*68237*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*68240*/           OPC_EmitMergeInputChains1_0,
/*68241*/           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)
/*68253*/         /*Scope*/ 18, /*->68272*/
/*68254*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*68256*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*68259*/           OPC_EmitMergeInputChains1_0,
/*68260*/           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)
/*68272*/         0, /*End of Scope*/
                0, // EndSwitchType
/*68274*/     0, /*End of Scope*/
/*68275*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 90,  TARGET_VAL(ISD::ATOMIC_SWAP),// ->68369
/*68279*/   OPC_RecordMemRef,
/*68280*/   OPC_RecordNode,   // #0 = 'atomic_swap' chained node
/*68281*/   OPC_RecordChild1, // #1 = $ptr
/*68282*/   OPC_RecordChild2, // #2 = $val
/*68283*/   OPC_SwitchType /*4 cases */, 19,  MVT::i8,// ->68305
/*68286*/     OPC_CheckPredicate, 46, // Predicate_atomic_swap_8
/*68288*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$ptr #3 #4 #5 #6 #7
/*68291*/     OPC_EmitMergeInputChains1_0,
/*68292*/     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,// ->68326
/*68307*/     OPC_CheckPredicate, 47, // Predicate_atomic_swap_16
/*68309*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$ptr #3 #4 #5 #6 #7
/*68312*/     OPC_EmitMergeInputChains1_0,
/*68313*/     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,// ->68347
/*68328*/     OPC_CheckPredicate, 48, // Predicate_atomic_swap_32
/*68330*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$ptr #3 #4 #5 #6 #7
/*68333*/     OPC_EmitMergeInputChains1_0,
/*68334*/     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,// ->68368
/*68349*/     OPC_CheckPredicate, 49, // Predicate_atomic_swap_64
/*68351*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$ptr #3 #4 #5 #6 #7
/*68354*/     OPC_EmitMergeInputChains1_0,
/*68355*/     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),// ->68466
/*68372*/   OPC_RecordMemRef,
/*68373*/   OPC_RecordNode,   // #0 = 'atomic_load_add' chained node
/*68374*/   OPC_RecordChild1, // #1 = $ptr
/*68375*/   OPC_RecordChild2, // #2 = $val
/*68376*/   OPC_SwitchType /*4 cases */, 20,  MVT::i8,// ->68399
/*68379*/     OPC_CheckPredicate, 50, // Predicate_atomic_load_add_8
/*68381*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$ptr #3 #4 #5 #6 #7
/*68384*/     OPC_EmitMergeInputChains1_0,
/*68385*/     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,// ->68421
/*68401*/     OPC_CheckPredicate, 51, // Predicate_atomic_load_add_16
/*68403*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$ptr #3 #4 #5 #6 #7
/*68406*/     OPC_EmitMergeInputChains1_0,
/*68407*/     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,// ->68443
/*68423*/     OPC_CheckPredicate, 52, // Predicate_atomic_load_add_32
/*68425*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$ptr #3 #4 #5 #6 #7
/*68428*/     OPC_EmitMergeInputChains1_0,
/*68429*/     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,// ->68465
/*68445*/     OPC_CheckPredicate, 53, // Predicate_atomic_load_add_64
/*68447*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$ptr #3 #4 #5 #6 #7
/*68450*/     OPC_EmitMergeInputChains1_0,
/*68451*/     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),// ->68554
/*68469*/   OPC_RecordMemRef,
/*68470*/   OPC_RecordNode,   // #0 = 'atomic_load' chained node
/*68471*/   OPC_RecordChild1, // #1 = $src
/*68472*/   OPC_SwitchType /*4 cases */, 18,  MVT::i8,// ->68493
/*68475*/     OPC_CheckPredicate, 54, // Predicate_atomic_load_8
/*68477*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*68480*/     OPC_EmitMergeInputChains1_0,
/*68481*/     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,// ->68513
/*68495*/     OPC_CheckPredicate, 55, // Predicate_atomic_load_16
/*68497*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*68500*/     OPC_EmitMergeInputChains1_0,
/*68501*/     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,// ->68533
/*68515*/     OPC_CheckPredicate, 56, // Predicate_atomic_load_32
/*68517*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*68520*/     OPC_EmitMergeInputChains1_0,
/*68521*/     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,// ->68553
/*68535*/     OPC_CheckPredicate, 57, // Predicate_atomic_load_64
/*68537*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*68540*/     OPC_EmitMergeInputChains1_0,
/*68541*/     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*/ 90,  TARGET_VAL(ISD::ATOMIC_STORE),// ->68647
/*68557*/   OPC_RecordMemRef,
/*68558*/   OPC_RecordNode,   // #0 = 'atomic_store' chained node
/*68559*/   OPC_RecordChild1, // #1 = $dst
/*68560*/   OPC_RecordChild2, // #2 = $src
/*68561*/   OPC_Scope, 20, /*->68583*/ // 4 children in Scope
/*68563*/     OPC_CheckChild2Type, MVT::i8,
/*68565*/     OPC_CheckPredicate, 58, // Predicate_atomic_store_8
/*68567*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$dst #3 #4 #5 #6 #7
/*68570*/     OPC_EmitMergeInputChains1_0,
/*68571*/     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)
/*68583*/   /*Scope*/ 20, /*->68604*/
/*68584*/     OPC_CheckChild2Type, MVT::i16,
/*68586*/     OPC_CheckPredicate, 59, // Predicate_atomic_store_16
/*68588*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$dst #3 #4 #5 #6 #7
/*68591*/     OPC_EmitMergeInputChains1_0,
/*68592*/     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)
/*68604*/   /*Scope*/ 20, /*->68625*/
/*68605*/     OPC_CheckChild2Type, MVT::i32,
/*68607*/     OPC_CheckPredicate, 60, // Predicate_atomic_store_32
/*68609*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$dst #3 #4 #5 #6 #7
/*68612*/     OPC_EmitMergeInputChains1_0,
/*68613*/     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)
/*68625*/   /*Scope*/ 20, /*->68646*/
/*68626*/     OPC_CheckChild2Type, MVT::i64,
/*68628*/     OPC_CheckPredicate, 61, // Predicate_atomic_store_64
/*68630*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$dst #3 #4 #5 #6 #7
/*68633*/     OPC_EmitMergeInputChains1_0,
/*68634*/     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)
/*68646*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 94,  TARGET_VAL(ISD::ATOMIC_LOAD_AND),// ->68744
/*68650*/   OPC_RecordMemRef,
/*68651*/   OPC_RecordNode,   // #0 = 'atomic_load_and' chained node
/*68652*/   OPC_RecordChild1, // #1 = $ptr
/*68653*/   OPC_RecordChild2, // #2 = $val
/*68654*/   OPC_SwitchType /*4 cases */, 20,  MVT::i8,// ->68677
/*68657*/     OPC_CheckPredicate, 62, // Predicate_atomic_load_and_8
/*68659*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$ptr #3 #4 #5 #6 #7
/*68662*/     OPC_EmitMergeInputChains1_0,
/*68663*/     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,// ->68699
/*68679*/     OPC_CheckPredicate, 63, // Predicate_atomic_load_and_16
/*68681*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$ptr #3 #4 #5 #6 #7
/*68684*/     OPC_EmitMergeInputChains1_0,
/*68685*/     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,// ->68721
/*68701*/     OPC_CheckPredicate, 64, // Predicate_atomic_load_and_32
/*68703*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$ptr #3 #4 #5 #6 #7
/*68706*/     OPC_EmitMergeInputChains1_0,
/*68707*/     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,// ->68743
/*68723*/     OPC_CheckPredicate, 65, // Predicate_atomic_load_and_64
/*68725*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$ptr #3 #4 #5 #6 #7
/*68728*/     OPC_EmitMergeInputChains1_0,
/*68729*/     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),// ->68841
/*68747*/   OPC_RecordMemRef,
/*68748*/   OPC_RecordNode,   // #0 = 'atomic_load_or' chained node
/*68749*/   OPC_RecordChild1, // #1 = $ptr
/*68750*/   OPC_RecordChild2, // #2 = $val
/*68751*/   OPC_SwitchType /*4 cases */, 20,  MVT::i8,// ->68774
/*68754*/     OPC_CheckPredicate, 66, // Predicate_atomic_load_or_8
/*68756*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$ptr #3 #4 #5 #6 #7
/*68759*/     OPC_EmitMergeInputChains1_0,
/*68760*/     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,// ->68796
/*68776*/     OPC_CheckPredicate, 67, // Predicate_atomic_load_or_16
/*68778*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$ptr #3 #4 #5 #6 #7
/*68781*/     OPC_EmitMergeInputChains1_0,
/*68782*/     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,// ->68818
/*68798*/     OPC_CheckPredicate, 68, // Predicate_atomic_load_or_32
/*68800*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$ptr #3 #4 #5 #6 #7
/*68803*/     OPC_EmitMergeInputChains1_0,
/*68804*/     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,// ->68840
/*68820*/     OPC_CheckPredicate, 69, // Predicate_atomic_load_or_64
/*68822*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$ptr #3 #4 #5 #6 #7
/*68825*/     OPC_EmitMergeInputChains1_0,
/*68826*/     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),// ->68938
/*68844*/   OPC_RecordMemRef,
/*68845*/   OPC_RecordNode,   // #0 = 'atomic_load_xor' chained node
/*68846*/   OPC_RecordChild1, // #1 = $ptr
/*68847*/   OPC_RecordChild2, // #2 = $val
/*68848*/   OPC_SwitchType /*4 cases */, 20,  MVT::i8,// ->68871
/*68851*/     OPC_CheckPredicate, 70, // Predicate_atomic_load_xor_8
/*68853*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$ptr #3 #4 #5 #6 #7
/*68856*/     OPC_EmitMergeInputChains1_0,
/*68857*/     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,// ->68893
/*68873*/     OPC_CheckPredicate, 71, // Predicate_atomic_load_xor_16
/*68875*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$ptr #3 #4 #5 #6 #7
/*68878*/     OPC_EmitMergeInputChains1_0,
/*68879*/     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,// ->68915
/*68895*/     OPC_CheckPredicate, 72, // Predicate_atomic_load_xor_32
/*68897*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$ptr #3 #4 #5 #6 #7
/*68900*/     OPC_EmitMergeInputChains1_0,
/*68901*/     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,// ->68937
/*68917*/     OPC_CheckPredicate, 73, // Predicate_atomic_load_xor_64
/*68919*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$ptr #3 #4 #5 #6 #7
/*68922*/     OPC_EmitMergeInputChains1_0,
/*68923*/     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),// ->69035
/*68941*/   OPC_RecordMemRef,
/*68942*/   OPC_RecordNode,   // #0 = 'atomic_load_nand' chained node
/*68943*/   OPC_RecordChild1, // #1 = $ptr
/*68944*/   OPC_RecordChild2, // #2 = $val
/*68945*/   OPC_SwitchType /*4 cases */, 20,  MVT::i8,// ->68968
/*68948*/     OPC_CheckPredicate, 74, // Predicate_atomic_load_nand_8
/*68950*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$ptr #3 #4 #5 #6 #7
/*68953*/     OPC_EmitMergeInputChains1_0,
/*68954*/     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,// ->68990
/*68970*/     OPC_CheckPredicate, 75, // Predicate_atomic_load_nand_16
/*68972*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$ptr #3 #4 #5 #6 #7
/*68975*/     OPC_EmitMergeInputChains1_0,
/*68976*/     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,// ->69012
/*68992*/     OPC_CheckPredicate, 76, // Predicate_atomic_load_nand_32
/*68994*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$ptr #3 #4 #5 #6 #7
/*68997*/     OPC_EmitMergeInputChains1_0,
/*68998*/     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,// ->69034
/*69014*/     OPC_CheckPredicate, 77, // Predicate_atomic_load_nand_64
/*69016*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$ptr #3 #4 #5 #6 #7
/*69019*/     OPC_EmitMergeInputChains1_0,
/*69020*/     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),// ->69110
/*69038*/   OPC_RecordMemRef,
/*69039*/   OPC_RecordNode,   // #0 = 'atomic_load_min' chained node
/*69040*/   OPC_RecordChild1, // #1 = $ptr
/*69041*/   OPC_RecordChild2, // #2 = $val
/*69042*/   OPC_SwitchType /*3 cases */, 20,  MVT::i16,// ->69065
/*69045*/     OPC_CheckPredicate, 78, // Predicate_atomic_load_min_16
/*69047*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$ptr #3 #4 #5 #6 #7
/*69050*/     OPC_EmitMergeInputChains1_0,
/*69051*/     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,// ->69087
/*69067*/     OPC_CheckPredicate, 79, // Predicate_atomic_load_min_32
/*69069*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$ptr #3 #4 #5 #6 #7
/*69072*/     OPC_EmitMergeInputChains1_0,
/*69073*/     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,// ->69109
/*69089*/     OPC_CheckPredicate, 80, // Predicate_atomic_load_min_64
/*69091*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$ptr #3 #4 #5 #6 #7
/*69094*/     OPC_EmitMergeInputChains1_0,
/*69095*/     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),// ->69185
/*69113*/   OPC_RecordMemRef,
/*69114*/   OPC_RecordNode,   // #0 = 'atomic_load_max' chained node
/*69115*/   OPC_RecordChild1, // #1 = $ptr
/*69116*/   OPC_RecordChild2, // #2 = $val
/*69117*/   OPC_SwitchType /*3 cases */, 20,  MVT::i16,// ->69140
/*69120*/     OPC_CheckPredicate, 81, // Predicate_atomic_load_max_16
/*69122*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$ptr #3 #4 #5 #6 #7
/*69125*/     OPC_EmitMergeInputChains1_0,
/*69126*/     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,// ->69162
/*69142*/     OPC_CheckPredicate, 82, // Predicate_atomic_load_max_32
/*69144*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$ptr #3 #4 #5 #6 #7
/*69147*/     OPC_EmitMergeInputChains1_0,
/*69148*/     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,// ->69184
/*69164*/     OPC_CheckPredicate, 83, // Predicate_atomic_load_max_64
/*69166*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$ptr #3 #4 #5 #6 #7
/*69169*/     OPC_EmitMergeInputChains1_0,
/*69170*/     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),// ->69260
/*69188*/   OPC_RecordMemRef,
/*69189*/   OPC_RecordNode,   // #0 = 'atomic_load_umin' chained node
/*69190*/   OPC_RecordChild1, // #1 = $ptr
/*69191*/   OPC_RecordChild2, // #2 = $val
/*69192*/   OPC_SwitchType /*3 cases */, 20,  MVT::i16,// ->69215
/*69195*/     OPC_CheckPredicate, 84, // Predicate_atomic_load_umin_16
/*69197*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$ptr #3 #4 #5 #6 #7
/*69200*/     OPC_EmitMergeInputChains1_0,
/*69201*/     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,// ->69237
/*69217*/     OPC_CheckPredicate, 85, // Predicate_atomic_load_umin_32
/*69219*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$ptr #3 #4 #5 #6 #7
/*69222*/     OPC_EmitMergeInputChains1_0,
/*69223*/     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,// ->69259
/*69239*/     OPC_CheckPredicate, 86, // Predicate_atomic_load_umin_64
/*69241*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$ptr #3 #4 #5 #6 #7
/*69244*/     OPC_EmitMergeInputChains1_0,
/*69245*/     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),// ->69335
/*69263*/   OPC_RecordMemRef,
/*69264*/   OPC_RecordNode,   // #0 = 'atomic_load_umax' chained node
/*69265*/   OPC_RecordChild1, // #1 = $ptr
/*69266*/   OPC_RecordChild2, // #2 = $val
/*69267*/   OPC_SwitchType /*3 cases */, 20,  MVT::i16,// ->69290
/*69270*/     OPC_CheckPredicate, 87, // Predicate_atomic_load_umax_16
/*69272*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$ptr #3 #4 #5 #6 #7
/*69275*/     OPC_EmitMergeInputChains1_0,
/*69276*/     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,// ->69312
/*69292*/     OPC_CheckPredicate, 88, // Predicate_atomic_load_umax_32
/*69294*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$ptr #3 #4 #5 #6 #7
/*69297*/     OPC_EmitMergeInputChains1_0,
/*69298*/     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,// ->69334
/*69314*/     OPC_CheckPredicate, 89, // Predicate_atomic_load_umax_64
/*69316*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$ptr #3 #4 #5 #6 #7
/*69319*/     OPC_EmitMergeInputChains1_0,
/*69320*/     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*/ 3|128,1/*131*/,  TARGET_VAL(X86ISD::FP_TO_INT16_IN_MEM),// ->69470
/*69339*/   OPC_RecordMemRef,
/*69340*/   OPC_RecordNode,   // #0 = 'X86fp_to_i16mem' chained node
/*69341*/   OPC_RecordChild1, // #1 = $src
/*69342*/   OPC_Scope, 41, /*->69385*/ // 3 children in Scope
/*69344*/     OPC_CheckChild1Type, MVT::f32,
/*69346*/     OPC_RecordChild2, // #2 = $op
/*69347*/     OPC_Scope, 18, /*->69367*/ // 2 children in Scope
/*69349*/       OPC_CheckPatternPredicate, 16, // (Subtarget->hasSSE3())
/*69351*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$op #3 #4 #5 #6 #7
/*69354*/       OPC_EmitMergeInputChains1_0,
/*69355*/       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)
/*69367*/     /*Scope*/ 16, /*->69384*/
/*69368*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*69371*/       OPC_EmitMergeInputChains1_0,
/*69372*/       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)
/*69384*/     0, /*End of Scope*/
/*69385*/   /*Scope*/ 41, /*->69427*/
/*69386*/     OPC_CheckChild1Type, MVT::f64,
/*69388*/     OPC_RecordChild2, // #2 = $op
/*69389*/     OPC_Scope, 18, /*->69409*/ // 2 children in Scope
/*69391*/       OPC_CheckPatternPredicate, 16, // (Subtarget->hasSSE3())
/*69393*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$op #3 #4 #5 #6 #7
/*69396*/       OPC_EmitMergeInputChains1_0,
/*69397*/       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)
/*69409*/     /*Scope*/ 16, /*->69426*/
/*69410*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*69413*/       OPC_EmitMergeInputChains1_0,
/*69414*/       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)
/*69426*/     0, /*End of Scope*/
/*69427*/   /*Scope*/ 41, /*->69469*/
/*69428*/     OPC_CheckChild1Type, MVT::f80,
/*69430*/     OPC_RecordChild2, // #2 = $op
/*69431*/     OPC_Scope, 18, /*->69451*/ // 2 children in Scope
/*69433*/       OPC_CheckPatternPredicate, 16, // (Subtarget->hasSSE3())
/*69435*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$op #3 #4 #5 #6 #7
/*69438*/       OPC_EmitMergeInputChains1_0,
/*69439*/       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)
/*69451*/     /*Scope*/ 16, /*->69468*/
/*69452*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*69455*/       OPC_EmitMergeInputChains1_0,
/*69456*/       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)
/*69468*/     0, /*End of Scope*/
/*69469*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 3|128,1/*131*/,  TARGET_VAL(X86ISD::FP_TO_INT32_IN_MEM),// ->69605
/*69474*/   OPC_RecordMemRef,
/*69475*/   OPC_RecordNode,   // #0 = 'X86fp_to_i32mem' chained node
/*69476*/   OPC_RecordChild1, // #1 = $src
/*69477*/   OPC_Scope, 41, /*->69520*/ // 3 children in Scope
/*69479*/     OPC_CheckChild1Type, MVT::f32,
/*69481*/     OPC_RecordChild2, // #2 = $op
/*69482*/     OPC_Scope, 18, /*->69502*/ // 2 children in Scope
/*69484*/       OPC_CheckPatternPredicate, 16, // (Subtarget->hasSSE3())
/*69486*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$op #3 #4 #5 #6 #7
/*69489*/       OPC_EmitMergeInputChains1_0,
/*69490*/       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)
/*69502*/     /*Scope*/ 16, /*->69519*/
/*69503*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*69506*/       OPC_EmitMergeInputChains1_0,
/*69507*/       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)
/*69519*/     0, /*End of Scope*/
/*69520*/   /*Scope*/ 41, /*->69562*/
/*69521*/     OPC_CheckChild1Type, MVT::f64,
/*69523*/     OPC_RecordChild2, // #2 = $op
/*69524*/     OPC_Scope, 18, /*->69544*/ // 2 children in Scope
/*69526*/       OPC_CheckPatternPredicate, 16, // (Subtarget->hasSSE3())
/*69528*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$op #3 #4 #5 #6 #7
/*69531*/       OPC_EmitMergeInputChains1_0,
/*69532*/       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)
/*69544*/     /*Scope*/ 16, /*->69561*/
/*69545*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*69548*/       OPC_EmitMergeInputChains1_0,
/*69549*/       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)
/*69561*/     0, /*End of Scope*/
/*69562*/   /*Scope*/ 41, /*->69604*/
/*69563*/     OPC_CheckChild1Type, MVT::f80,
/*69565*/     OPC_RecordChild2, // #2 = $op
/*69566*/     OPC_Scope, 18, /*->69586*/ // 2 children in Scope
/*69568*/       OPC_CheckPatternPredicate, 16, // (Subtarget->hasSSE3())
/*69570*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$op #3 #4 #5 #6 #7
/*69573*/       OPC_EmitMergeInputChains1_0,
/*69574*/       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)
/*69586*/     /*Scope*/ 16, /*->69603*/
/*69587*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*69590*/       OPC_EmitMergeInputChains1_0,
/*69591*/       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)
/*69603*/     0, /*End of Scope*/
/*69604*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 3|128,1/*131*/,  TARGET_VAL(X86ISD::FP_TO_INT64_IN_MEM),// ->69740
/*69609*/   OPC_RecordMemRef,
/*69610*/   OPC_RecordNode,   // #0 = 'X86fp_to_i64mem' chained node
/*69611*/   OPC_RecordChild1, // #1 = $src
/*69612*/   OPC_Scope, 41, /*->69655*/ // 3 children in Scope
/*69614*/     OPC_CheckChild1Type, MVT::f32,
/*69616*/     OPC_RecordChild2, // #2 = $op
/*69617*/     OPC_Scope, 18, /*->69637*/ // 2 children in Scope
/*69619*/       OPC_CheckPatternPredicate, 16, // (Subtarget->hasSSE3())
/*69621*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$op #3 #4 #5 #6 #7
/*69624*/       OPC_EmitMergeInputChains1_0,
/*69625*/       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)
/*69637*/     /*Scope*/ 16, /*->69654*/
/*69638*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*69641*/       OPC_EmitMergeInputChains1_0,
/*69642*/       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)
/*69654*/     0, /*End of Scope*/
/*69655*/   /*Scope*/ 41, /*->69697*/
/*69656*/     OPC_CheckChild1Type, MVT::f64,
/*69658*/     OPC_RecordChild2, // #2 = $op
/*69659*/     OPC_Scope, 18, /*->69679*/ // 2 children in Scope
/*69661*/       OPC_CheckPatternPredicate, 16, // (Subtarget->hasSSE3())
/*69663*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$op #3 #4 #5 #6 #7
/*69666*/       OPC_EmitMergeInputChains1_0,
/*69667*/       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)
/*69679*/     /*Scope*/ 16, /*->69696*/
/*69680*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*69683*/       OPC_EmitMergeInputChains1_0,
/*69684*/       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)
/*69696*/     0, /*End of Scope*/
/*69697*/   /*Scope*/ 41, /*->69739*/
/*69698*/     OPC_CheckChild1Type, MVT::f80,
/*69700*/     OPC_RecordChild2, // #2 = $op
/*69701*/     OPC_Scope, 18, /*->69721*/ // 2 children in Scope
/*69703*/       OPC_CheckPatternPredicate, 16, // (Subtarget->hasSSE3())
/*69705*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$op #3 #4 #5 #6 #7
/*69708*/       OPC_EmitMergeInputChains1_0,
/*69709*/       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)
/*69721*/     /*Scope*/ 16, /*->69738*/
/*69722*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4 #5 #6 #7
/*69725*/       OPC_EmitMergeInputChains1_0,
/*69726*/       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)
/*69738*/     0, /*End of Scope*/
/*69739*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 19|128,1/*147*/,  TARGET_VAL(X86ISD::FST),// ->69891
/*69744*/   OPC_RecordMemRef,
/*69745*/   OPC_RecordNode,   // #0 = 'X86fst' chained node
/*69746*/   OPC_CaptureGlueInput,
/*69747*/   OPC_RecordChild1, // #1 = $src
/*69748*/   OPC_Scope, 24, /*->69774*/ // 3 children in Scope
/*69750*/     OPC_CheckChild1Type, MVT::f32,
/*69752*/     OPC_RecordChild2, // #2 = $op
/*69753*/     OPC_MoveChild, 3,
/*69755*/     OPC_CheckValueType, MVT::f32,
/*69757*/     OPC_MoveParent,
/*69758*/     OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$op #3 #4 #5 #6 #7
/*69761*/     OPC_EmitMergeInputChains1_0,
/*69762*/     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)
/*69774*/   /*Scope*/ 47, /*->69822*/
/*69775*/     OPC_CheckChild1Type, MVT::f64,
/*69777*/     OPC_RecordChild2, // #2 = $op
/*69778*/     OPC_MoveChild, 3,
/*69780*/     OPC_Scope, 19, /*->69801*/ // 2 children in Scope
/*69782*/       OPC_CheckValueType, MVT::f32,
/*69784*/       OPC_MoveParent,
/*69785*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$op #3 #4 #5 #6 #7
/*69788*/       OPC_EmitMergeInputChains1_0,
/*69789*/       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)
/*69801*/     /*Scope*/ 19, /*->69821*/
/*69802*/       OPC_CheckValueType, MVT::f64,
/*69804*/       OPC_MoveParent,
/*69805*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$op #3 #4 #5 #6 #7
/*69808*/       OPC_EmitMergeInputChains1_0,
/*69809*/       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)
/*69821*/     0, /*End of Scope*/
/*69822*/   /*Scope*/ 67, /*->69890*/
/*69823*/     OPC_CheckChild1Type, MVT::f80,
/*69825*/     OPC_RecordChild2, // #2 = $op
/*69826*/     OPC_MoveChild, 3,
/*69828*/     OPC_Scope, 19, /*->69849*/ // 3 children in Scope
/*69830*/       OPC_CheckValueType, MVT::f32,
/*69832*/       OPC_MoveParent,
/*69833*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$op #3 #4 #5 #6 #7
/*69836*/       OPC_EmitMergeInputChains1_0,
/*69837*/       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)
/*69849*/     /*Scope*/ 19, /*->69869*/
/*69850*/       OPC_CheckValueType, MVT::f64,
/*69852*/       OPC_MoveParent,
/*69853*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$op #3 #4 #5 #6 #7
/*69856*/       OPC_EmitMergeInputChains1_0,
/*69857*/       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)
/*69869*/     /*Scope*/ 19, /*->69889*/
/*69870*/       OPC_CheckValueType, MVT::f80,
/*69872*/       OPC_MoveParent,
/*69873*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$op #3 #4 #5 #6 #7
/*69876*/       OPC_EmitMergeInputChains1_0,
/*69877*/       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)
/*69889*/     0, /*End of Scope*/
/*69890*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 18,  TARGET_VAL(X86ISD::FNSTCW16m),// ->69912
/*69894*/   OPC_RecordMemRef,
/*69895*/   OPC_RecordNode,   // #0 = 'X86fp_cwd_get16' chained node
/*69896*/   OPC_RecordChild1, // #1 = $dst
/*69897*/   OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$dst #2 #3 #4 #5 #6
/*69900*/   OPC_EmitMergeInputChains1_0,
/*69901*/   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),// ->69962
/*69915*/   OPC_RecordNode,   // #0 = 'X86tlsaddr' chained node
/*69916*/   OPC_CaptureGlueInput,
/*69917*/   OPC_RecordChild1, // #1 = $sym
/*69918*/   OPC_Scope, 20, /*->69940*/ // 2 children in Scope
/*69920*/     OPC_CheckChild1Type, MVT::i32,
/*69922*/     OPC_CheckPatternPredicate, 3, // (!Subtarget->is64Bit())
/*69924*/     OPC_CheckComplexPat, /*CP*/5, /*#*/1, // SelectTLSADDRAddr:$sym #2 #3 #4 #5 #6
/*69927*/     OPC_EmitMergeInputChains1_0,
/*69928*/     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)
/*69940*/   /*Scope*/ 20, /*->69961*/
/*69941*/     OPC_CheckChild1Type, MVT::i64,
/*69943*/     OPC_CheckPatternPredicate, 4, // (Subtarget->is64Bit())
/*69945*/     OPC_CheckComplexPat, /*CP*/6, /*#*/1, // SelectTLSADDRAddr:$sym #2 #3 #4 #5 #6
/*69948*/     OPC_EmitMergeInputChains1_0,
/*69949*/     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)
/*69961*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 20,  TARGET_VAL(X86ISD::LCMPXCHG8_DAG),// ->69985
/*69965*/   OPC_RecordMemRef,
/*69966*/   OPC_RecordNode,   // #0 = 'X86cas8' chained node
/*69967*/   OPC_CaptureGlueInput,
/*69968*/   OPC_RecordChild1, // #1 = $ptr
/*69969*/   OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$ptr #2 #3 #4 #5 #6
/*69972*/   OPC_EmitMergeInputChains1_0,
/*69973*/   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),// ->70010
/*69988*/   OPC_RecordMemRef,
/*69989*/   OPC_RecordNode,   // #0 = 'X86cas16' chained node
/*69990*/   OPC_CaptureGlueInput,
/*69991*/   OPC_RecordChild1, // #1 = $ptr
/*69992*/   OPC_CheckPatternPredicate, 33, // (Subtarget->hasCmpxchg16b())
/*69994*/   OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$ptr #2 #3 #4 #5 #6
/*69997*/   OPC_EmitMergeInputChains1_0,
/*69998*/   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),// ->70058
/*70013*/   OPC_RecordNode,   // #0 = 'X86TLSCall' chained node
/*70014*/   OPC_CaptureGlueInput,
/*70015*/   OPC_RecordChild1, // #1 = $sym
/*70016*/   OPC_CheckChild1Type, MVT::iPTR,
/*70018*/   OPC_Scope, 18, /*->70038*/ // 2 children in Scope
/*70020*/     OPC_CheckPatternPredicate, 3, // (!Subtarget->is64Bit())
/*70022*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$sym #2 #3 #4 #5 #6
/*70025*/     OPC_EmitMergeInputChains1_0,
/*70026*/     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)
/*70038*/   /*Scope*/ 18, /*->70057*/
/*70039*/     OPC_CheckPatternPredicate, 4, // (Subtarget->is64Bit())
/*70041*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$sym #2 #3 #4 #5 #6
/*70044*/     OPC_EmitMergeInputChains1_0,
/*70045*/     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)
/*70057*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 60,  TARGET_VAL(X86ISD::MUL_IMM),// ->70121
/*70061*/   OPC_RecordNode,   // #0 = $src
/*70062*/   OPC_SwitchType /*2 cases */, 38,  MVT::i32,// ->70103
/*70065*/     OPC_Scope, 17, /*->70084*/ // 2 children in Scope
/*70067*/       OPC_CheckPatternPredicate, 3, // (!Subtarget->is64Bit())
/*70069*/       OPC_CheckComplexPat, /*CP*/3, /*#*/0, // SelectLEAAddr:$src #1 #2 #3 #4 #5
/*70072*/       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)
/*70084*/     /*Scope*/ 17, /*->70102*/
/*70085*/       OPC_CheckPatternPredicate, 4, // (Subtarget->is64Bit())
/*70087*/       OPC_CheckComplexPat, /*CP*/3, /*#*/0, // SelectLEAAddr:$src #1 #2 #3 #4 #5
/*70090*/       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)
/*70102*/     0, /*End of Scope*/
            /*SwitchType*/ 15,  MVT::i64,// ->70120
/*70105*/     OPC_CheckComplexPat, /*CP*/4, /*#*/0, // SelectLEAAddr:$src #1 #2 #3 #4 #5
/*70108*/     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),// ->70456
/*70125*/   OPC_Scope, 60, /*->70187*/ // 2 children in Scope
/*70127*/     OPC_RecordNode, // #0 = $src
/*70128*/     OPC_SwitchType /*2 cases */, 38,  MVT::i32,// ->70169
/*70131*/       OPC_Scope, 17, /*->70150*/ // 2 children in Scope
/*70133*/         OPC_CheckPatternPredicate, 3, // (!Subtarget->is64Bit())
/*70135*/         OPC_CheckComplexPat, /*CP*/3, /*#*/0, // SelectLEAAddr:$src #1 #2 #3 #4 #5
/*70138*/         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)
/*70150*/       /*Scope*/ 17, /*->70168*/
/*70151*/         OPC_CheckPatternPredicate, 4, // (Subtarget->is64Bit())
/*70153*/         OPC_CheckComplexPat, /*CP*/3, /*#*/0, // SelectLEAAddr:$src #1 #2 #3 #4 #5
/*70156*/         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)
/*70168*/       0, /*End of Scope*/
              /*SwitchType*/ 15,  MVT::i64,// ->70186
/*70171*/       OPC_CheckComplexPat, /*CP*/4, /*#*/0, // SelectLEAAddr:$src #1 #2 #3 #4 #5
/*70174*/       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
/*70187*/   /*Scope*/ 10|128,2/*266*/, /*->70455*/
/*70189*/     OPC_RecordChild0, // #0 = $src1
/*70190*/     OPC_Scope, 0|128,1/*128*/, /*->70321*/ // 2 children in Scope
/*70193*/       OPC_MoveChild, 1,
/*70195*/       OPC_CheckType, MVT::i8,
/*70197*/       OPC_Scope, 48, /*->70247*/ // 3 children in Scope
/*70199*/         OPC_CheckAndImm, 31, 
/*70201*/         OPC_RecordChild0, // #1 = physreg input CL
/*70202*/         OPC_MoveParent,
/*70203*/         OPC_SwitchType /*3 cases */, 12,  MVT::i8,// ->70218
/*70206*/           OPC_EmitCopyToReg, 1, X86::CL,
/*70209*/           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,// ->70232
/*70220*/           OPC_EmitCopyToReg, 1, X86::CL,
/*70223*/           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,// ->70246
/*70234*/           OPC_EmitCopyToReg, 1, X86::CL,
/*70237*/           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
/*70247*/       /*Scope*/ 18, /*->70266*/
/*70248*/         OPC_CheckAndImm, 63, 
/*70250*/         OPC_RecordChild0, // #1 = physreg input CL
/*70251*/         OPC_MoveParent,
/*70252*/         OPC_CheckType, MVT::i64,
/*70254*/         OPC_EmitCopyToReg, 1, X86::CL,
/*70257*/         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)
/*70266*/       /*Scope*/ 53, /*->70320*/
/*70267*/         OPC_CheckInteger, 1, 
/*70269*/         OPC_MoveParent,
/*70270*/         OPC_SwitchType /*4 cases */, 10,  MVT::i8,// ->70283
/*70273*/           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,// ->70295
/*70285*/           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,// ->70307
/*70297*/           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,// ->70319
/*70309*/           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
/*70320*/       0, /*End of Scope*/
/*70321*/     /*Scope*/ 3|128,1/*131*/, /*->70454*/
/*70323*/       OPC_RecordChild1, // #1 = $src2
/*70324*/       OPC_Scope, 66, /*->70392*/ // 2 children in Scope
/*70326*/         OPC_MoveChild, 1,
/*70328*/         OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*70331*/         OPC_CheckType, MVT::i8,
/*70333*/         OPC_MoveParent,
/*70334*/         OPC_SwitchType /*4 cases */, 12,  MVT::i8,// ->70349
/*70337*/           OPC_EmitConvertToTarget, 1,
/*70339*/           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,// ->70363
/*70351*/           OPC_EmitConvertToTarget, 1,
/*70353*/           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,// ->70377
/*70365*/           OPC_EmitConvertToTarget, 1,
/*70367*/           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,// ->70391
/*70379*/           OPC_EmitConvertToTarget, 1,
/*70381*/           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
/*70392*/       /*Scope*/ 60, /*->70453*/
/*70393*/         OPC_CheckChild1Type, MVT::i8,
/*70395*/         OPC_SwitchType /*4 cases */, 12,  MVT::i8,// ->70410
/*70398*/           OPC_EmitCopyToReg, 1, X86::CL,
/*70401*/           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,// ->70424
/*70412*/           OPC_EmitCopyToReg, 1, X86::CL,
/*70415*/           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,// ->70438
/*70426*/           OPC_EmitCopyToReg, 1, X86::CL,
/*70429*/           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,// ->70452
/*70440*/           OPC_EmitCopyToReg, 1, X86::CL,
/*70443*/           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
/*70453*/       0, /*End of Scope*/
/*70454*/     0, /*End of Scope*/
/*70455*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 60,  TARGET_VAL(ISD::FrameIndex),// ->70519
/*70459*/   OPC_RecordNode,   // #0 = $src
/*70460*/   OPC_SwitchType /*2 cases */, 38,  MVT::i32,// ->70501
/*70463*/     OPC_Scope, 17, /*->70482*/ // 2 children in Scope
/*70465*/       OPC_CheckPatternPredicate, 3, // (!Subtarget->is64Bit())
/*70467*/       OPC_CheckComplexPat, /*CP*/3, /*#*/0, // SelectLEAAddr:$src #1 #2 #3 #4 #5
/*70470*/       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)
/*70482*/     /*Scope*/ 17, /*->70500*/
/*70483*/       OPC_CheckPatternPredicate, 4, // (Subtarget->is64Bit())
/*70485*/       OPC_CheckComplexPat, /*CP*/3, /*#*/0, // SelectLEAAddr:$src #1 #2 #3 #4 #5
/*70488*/       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)
/*70500*/     0, /*End of Scope*/
            /*SwitchType*/ 15,  MVT::i64,// ->70518
/*70503*/     OPC_CheckComplexPat, /*CP*/4, /*#*/0, // SelectLEAAddr:$src #1 #2 #3 #4 #5
/*70506*/     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),// ->70540
/*70522*/   OPC_RecordNode,   // #0 = $src
/*70523*/   OPC_CheckType, MVT::i64,
/*70525*/   OPC_CheckComplexPat, /*CP*/4, /*#*/0, // SelectLEAAddr:$src #1 #2 #3 #4 #5
/*70528*/   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),// ->71010
/*70544*/   OPC_Scope, 97, /*->70643*/ // 2 children in Scope
/*70546*/     OPC_MoveChild, 0,
/*70548*/     OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/*70551*/     OPC_RecordChild0, // #0 = $src
/*70552*/     OPC_MoveChild, 1,
/*70554*/     OPC_CheckInteger, 0|128,126|128,3/*65280*/, 
/*70558*/     OPC_MoveParent,
/*70559*/     OPC_CheckPredicate, 21, // Predicate_and_su
/*70561*/     OPC_MoveParent,
/*70562*/     OPC_MoveChild, 1,
/*70564*/     OPC_CheckInteger, 8, 
/*70566*/     OPC_CheckType, MVT::i8,
/*70568*/     OPC_MoveParent,
/*70569*/     OPC_CheckType, MVT::i32,
/*70571*/     OPC_Scope, 34, /*->70607*/ // 2 children in Scope
/*70573*/       OPC_CheckPatternPredicate, 3, // (!Subtarget->is64Bit())
/*70575*/       OPC_EmitInteger, MVT::i32, X86::GR32_ABCDRegClassID,
/*70578*/       OPC_EmitNode, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    1/*#VTs*/, MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2 
/*70587*/       OPC_EmitInteger, MVT::i32, X86::sub_8bit_hi,
/*70590*/       OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                    1/*#VTs*/, MVT::i8, 2/*#Ops*/, 2, 3,  // Results = #4 
/*70599*/       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))
/*70607*/     /*Scope*/ 34, /*->70642*/
/*70608*/       OPC_CheckPatternPredicate, 4, // (Subtarget->is64Bit())
/*70610*/       OPC_EmitInteger, MVT::i32, X86::GR32_ABCDRegClassID,
/*70613*/       OPC_EmitNode, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    1/*#VTs*/, MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2 
/*70622*/       OPC_EmitInteger, MVT::i32, X86::sub_8bit_hi,
/*70625*/       OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                    1/*#VTs*/, MVT::i8, 2/*#Ops*/, 2, 3,  // Results = #4 
/*70634*/       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))
/*70642*/     0, /*End of Scope*/
/*70643*/   /*Scope*/ 108|128,2/*364*/, /*->71009*/
/*70645*/     OPC_RecordChild0, // #0 = $src1
/*70646*/     OPC_Scope, 98|128,1/*226*/, /*->70875*/ // 2 children in Scope
/*70649*/       OPC_MoveChild, 1,
/*70651*/       OPC_CheckType, MVT::i8,
/*70653*/       OPC_Scope, 48, /*->70703*/ // 4 children in Scope
/*70655*/         OPC_CheckAndImm, 31, 
/*70657*/         OPC_RecordChild0, // #1 = physreg input CL
/*70658*/         OPC_MoveParent,
/*70659*/         OPC_SwitchType /*3 cases */, 12,  MVT::i8,// ->70674
/*70662*/           OPC_EmitCopyToReg, 1, X86::CL,
/*70665*/           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,// ->70688
/*70676*/           OPC_EmitCopyToReg, 1, X86::CL,
/*70679*/           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,// ->70702
/*70690*/           OPC_EmitCopyToReg, 1, X86::CL,
/*70693*/           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
/*70703*/       /*Scope*/ 18, /*->70722*/
/*70704*/         OPC_CheckAndImm, 63, 
/*70706*/         OPC_RecordChild0, // #1 = physreg input CL
/*70707*/         OPC_MoveParent,
/*70708*/         OPC_CheckType, MVT::i64,
/*70710*/         OPC_EmitCopyToReg, 1, X86::CL,
/*70713*/         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)
/*70722*/       /*Scope*/ 49, /*->70772*/
/*70723*/         OPC_CheckInteger, 1, 
/*70725*/         OPC_MoveParent,
/*70726*/         OPC_SwitchType /*4 cases */, 9,  MVT::i8,// ->70738
/*70729*/           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,// ->70749
/*70740*/           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,// ->70760
/*70751*/           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,// ->70771
/*70762*/           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
/*70772*/       /*Scope*/ 101, /*->70874*/
/*70773*/         OPC_CheckInteger, 8, 
/*70775*/         OPC_MoveParent,
/*70776*/         OPC_CheckType, MVT::i16,
/*70778*/         OPC_Scope, 46, /*->70826*/ // 2 children in Scope
/*70780*/           OPC_CheckPatternPredicate, 3, // (!Subtarget->is64Bit())
/*70782*/           OPC_EmitInteger, MVT::i32, X86::GR16_ABCDRegClassID,
/*70785*/           OPC_EmitNode, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        1/*#VTs*/, MVT::i16, 2/*#Ops*/, 0, 1,  // Results = #2 
/*70794*/           OPC_EmitInteger, MVT::i32, X86::sub_8bit_hi,
/*70797*/           OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        1/*#VTs*/, MVT::i8, 2/*#Ops*/, 2, 3,  // Results = #4 
/*70806*/           OPC_EmitNode, TARGET_VAL(X86::MOVZX32rr8), 0,
                        1/*#VTs*/, MVT::i32, 1/*#Ops*/, 4,  // Results = #5 
/*70814*/           OPC_EmitInteger, MVT::i32, X86::sub_16bit,
/*70817*/           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)
/*70826*/         /*Scope*/ 46, /*->70873*/
/*70827*/           OPC_CheckPatternPredicate, 4, // (Subtarget->is64Bit())
/*70829*/           OPC_EmitInteger, MVT::i32, X86::GR16_ABCDRegClassID,
/*70832*/           OPC_EmitNode, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        1/*#VTs*/, MVT::i16, 2/*#Ops*/, 0, 1,  // Results = #2 
/*70841*/           OPC_EmitInteger, MVT::i32, X86::sub_8bit_hi,
/*70844*/           OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        1/*#VTs*/, MVT::i8, 2/*#Ops*/, 2, 3,  // Results = #4 
/*70853*/           OPC_EmitNode, TARGET_VAL(X86::MOVZX32_NOREXrr8), 0,
                        1/*#VTs*/, MVT::i32, 1/*#Ops*/, 4,  // Results = #5 
/*70861*/           OPC_EmitInteger, MVT::i32, X86::sub_16bit,
/*70864*/           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)
/*70873*/         0, /*End of Scope*/
/*70874*/       0, /*End of Scope*/
/*70875*/     /*Scope*/ 3|128,1/*131*/, /*->71008*/
/*70877*/       OPC_RecordChild1, // #1 = $src2
/*70878*/       OPC_Scope, 66, /*->70946*/ // 2 children in Scope
/*70880*/         OPC_MoveChild, 1,
/*70882*/         OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*70885*/         OPC_CheckType, MVT::i8,
/*70887*/         OPC_MoveParent,
/*70888*/         OPC_SwitchType /*4 cases */, 12,  MVT::i8,// ->70903
/*70891*/           OPC_EmitConvertToTarget, 1,
/*70893*/           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,// ->70917
/*70905*/           OPC_EmitConvertToTarget, 1,
/*70907*/           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,// ->70931
/*70919*/           OPC_EmitConvertToTarget, 1,
/*70921*/           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,// ->70945
/*70933*/           OPC_EmitConvertToTarget, 1,
/*70935*/           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
/*70946*/       /*Scope*/ 60, /*->71007*/
/*70947*/         OPC_CheckChild1Type, MVT::i8,
/*70949*/         OPC_SwitchType /*4 cases */, 12,  MVT::i8,// ->70964
/*70952*/           OPC_EmitCopyToReg, 1, X86::CL,
/*70955*/           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,// ->70978
/*70966*/           OPC_EmitCopyToReg, 1, X86::CL,
/*70969*/           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,// ->70992
/*70980*/           OPC_EmitCopyToReg, 1, X86::CL,
/*70983*/           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,// ->71006
/*70994*/           OPC_EmitCopyToReg, 1, X86::CL,
/*70997*/           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
/*71007*/       0, /*End of Scope*/
/*71008*/     0, /*End of Scope*/
/*71009*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 120|128,1/*248*/,  TARGET_VAL(ISD::TRUNCATE),// ->71262
/*71014*/   OPC_Scope, 79, /*->71095*/ // 2 children in Scope
/*71016*/     OPC_MoveChild, 0,
/*71018*/     OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
/*71021*/     OPC_RecordChild0, // #0 = $src
/*71022*/     OPC_MoveChild, 1,
/*71024*/     OPC_CheckInteger, 8, 
/*71026*/     OPC_CheckType, MVT::i8,
/*71028*/     OPC_MoveParent,
/*71029*/     OPC_CheckPredicate, 14, // Predicate_srl_su
/*71031*/     OPC_SwitchType /*2 cases */, 29,  MVT::i16,// ->71063
/*71034*/       OPC_MoveParent,
/*71035*/       OPC_CheckType, MVT::i8,
/*71037*/       OPC_CheckPatternPredicate, 3, // (!Subtarget->is64Bit())
/*71039*/       OPC_EmitInteger, MVT::i32, X86::GR16_ABCDRegClassID,
/*71042*/       OPC_EmitNode, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    1/*#VTs*/, MVT::i16, 2/*#Ops*/, 0, 1,  // Results = #2 
/*71051*/       OPC_EmitInteger, MVT::i32, X86::sub_8bit_hi,
/*71054*/       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,// ->71094
/*71065*/       OPC_MoveParent,
/*71066*/       OPC_CheckType, MVT::i8,
/*71068*/       OPC_CheckPatternPredicate, 3, // (!Subtarget->is64Bit())
/*71070*/       OPC_EmitInteger, MVT::i32, X86::GR32_ABCDRegClassID,
/*71073*/       OPC_EmitNode, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    1/*#VTs*/, MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2 
/*71082*/       OPC_EmitInteger, MVT::i32, X86::sub_8bit_hi,
/*71085*/       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
/*71095*/   /*Scope*/ 36|128,1/*164*/, /*->71261*/
/*71097*/     OPC_RecordChild0, // #0 = $src
/*71098*/     OPC_Scope, 64, /*->71164*/ // 3 children in Scope
/*71100*/       OPC_CheckChild0Type, MVT::i32,
/*71102*/       OPC_SwitchType /*2 cases */, 12,  MVT::i16,// ->71117
/*71105*/         OPC_EmitInteger, MVT::i32, X86::sub_16bit,
/*71108*/         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,// ->71163
/*71119*/         OPC_Scope, 14, /*->71135*/ // 2 children in Scope
/*71121*/           OPC_CheckPatternPredicate, 4, // (Subtarget->is64Bit())
/*71123*/           OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*71126*/           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)
/*71135*/         /*Scope*/ 26, /*->71162*/
/*71136*/           OPC_CheckPatternPredicate, 3, // (!Subtarget->is64Bit())
/*71138*/           OPC_EmitInteger, MVT::i32, X86::GR32_ABCDRegClassID,
/*71141*/           OPC_EmitNode, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        1/*#VTs*/, MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2 
/*71150*/           OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*71153*/           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)
/*71162*/         0, /*End of Scope*/
                0, // EndSwitchType
/*71164*/     /*Scope*/ 46, /*->71211*/
/*71165*/       OPC_CheckChild0Type, MVT::i64,
/*71167*/       OPC_SwitchType /*3 cases */, 12,  MVT::i32,// ->71182
/*71170*/         OPC_EmitInteger, MVT::i32, X86::sub_32bit,
/*71173*/         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,// ->71196
/*71184*/         OPC_EmitInteger, MVT::i32, X86::sub_16bit,
/*71187*/         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,// ->71210
/*71198*/         OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*71201*/         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
/*71211*/     /*Scope*/ 48, /*->71260*/
/*71212*/       OPC_CheckChild0Type, MVT::i16,
/*71214*/       OPC_CheckType, MVT::i8,
/*71216*/       OPC_Scope, 14, /*->71232*/ // 2 children in Scope
/*71218*/         OPC_CheckPatternPredicate, 4, // (Subtarget->is64Bit())
/*71220*/         OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*71223*/         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)
/*71232*/       /*Scope*/ 26, /*->71259*/
/*71233*/         OPC_CheckPatternPredicate, 3, // (!Subtarget->is64Bit())
/*71235*/         OPC_EmitInteger, MVT::i32, X86::GR16_ABCDRegClassID,
/*71238*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      1/*#VTs*/, MVT::i16, 2/*#Ops*/, 0, 1,  // Results = #2 
/*71247*/         OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*71250*/         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)
/*71259*/       0, /*End of Scope*/
/*71260*/     0, /*End of Scope*/
/*71261*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 7|128,2/*263*/,  TARGET_VAL(ISD::ZERO_EXTEND),// ->71529
/*71266*/   OPC_Scope, 16|128,1/*144*/, /*->71413*/ // 2 children in Scope
/*71269*/     OPC_MoveChild, 0,
/*71271*/     OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
/*71274*/     OPC_RecordChild0, // #0 = $src
/*71275*/     OPC_MoveChild, 1,
/*71277*/     OPC_CheckInteger, 8, 
/*71279*/     OPC_CheckType, MVT::i8,
/*71281*/     OPC_MoveParent,
/*71282*/     OPC_CheckPredicate, 14, // Predicate_srl_su
/*71284*/     OPC_CheckType, MVT::i16,
/*71286*/     OPC_MoveParent,
/*71287*/     OPC_SwitchType /*2 cases */, 72,  MVT::i32,// ->71362
/*71290*/       OPC_Scope, 34, /*->71326*/ // 2 children in Scope
/*71292*/         OPC_CheckPatternPredicate, 3, // (!Subtarget->is64Bit())
/*71294*/         OPC_EmitInteger, MVT::i32, X86::GR16_ABCDRegClassID,
/*71297*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      1/*#VTs*/, MVT::i16, 2/*#Ops*/, 0, 1,  // Results = #2 
/*71306*/         OPC_EmitInteger, MVT::i32, X86::sub_8bit_hi,
/*71309*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      1/*#VTs*/, MVT::i8, 2/*#Ops*/, 2, 3,  // Results = #4 
/*71318*/         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))
/*71326*/       /*Scope*/ 34, /*->71361*/
/*71327*/         OPC_CheckPatternPredicate, 4, // (Subtarget->is64Bit())
/*71329*/         OPC_EmitInteger, MVT::i32, X86::GR16_ABCDRegClassID,
/*71332*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      1/*#VTs*/, MVT::i16, 2/*#Ops*/, 0, 1,  // Results = #2 
/*71341*/         OPC_EmitInteger, MVT::i32, X86::sub_8bit_hi,
/*71344*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      1/*#VTs*/, MVT::i8, 2/*#Ops*/, 2, 3,  // Results = #4 
/*71353*/         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))
/*71361*/       0, /*End of Scope*/
              /*SwitchType*/ 48,  MVT::i64,// ->71412
/*71364*/       OPC_EmitInteger, MVT::i64, 0, 
/*71367*/       OPC_EmitInteger, MVT::i32, X86::GR16_ABCDRegClassID,
/*71370*/       OPC_EmitNode, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    1/*#VTs*/, MVT::i16, 2/*#Ops*/, 0, 2,  // Results = #3 
/*71379*/       OPC_EmitInteger, MVT::i32, X86::sub_8bit_hi,
/*71382*/       OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                    1/*#VTs*/, MVT::i8, 2/*#Ops*/, 3, 4,  // Results = #5 
/*71391*/       OPC_EmitNode, TARGET_VAL(X86::MOVZX32_NOREXrr8), 0,
                    1/*#VTs*/, MVT::i32, 1/*#Ops*/, 5,  // Results = #6 
/*71399*/       OPC_EmitInteger, MVT::i32, X86::sub_32bit,
/*71402*/       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
/*71413*/   /*Scope*/ 114, /*->71528*/
/*71414*/     OPC_RecordChild0, // #0 = $src
/*71415*/     OPC_Scope, 25, /*->71442*/ // 4 children in Scope
/*71417*/       OPC_MoveChild, 0,
/*71419*/       OPC_CheckPredicate, 90, // Predicate_def32
/*71421*/       OPC_CheckType, MVT::i32,
/*71423*/       OPC_MoveParent,
/*71424*/       OPC_CheckType, MVT::i64,
/*71426*/       OPC_EmitInteger, MVT::i64, 0, 
/*71429*/       OPC_EmitInteger, MVT::i32, X86::sub_32bit,
/*71432*/       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)
/*71442*/     /*Scope*/ 46, /*->71489*/
/*71443*/       OPC_CheckChild0Type, MVT::i8,
/*71445*/       OPC_SwitchType /*3 cases */, 8,  MVT::i32,// ->71456
/*71448*/         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,// ->71466
/*71458*/         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,// ->71488
/*71468*/         OPC_EmitNode, TARGET_VAL(X86::MOVZX32rr8), 0,
                      1/*#VTs*/, MVT::i32, 1/*#Ops*/, 0,  // Results = #1 
/*71476*/         OPC_EmitInteger, MVT::i32, X86::sub_16bit,
/*71479*/         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
/*71489*/     /*Scope*/ 24, /*->71514*/
/*71490*/       OPC_CheckChild0Type, MVT::i16,
/*71492*/       OPC_SwitchType /*2 cases */, 8,  MVT::i32,// ->71503
/*71495*/         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,// ->71513
/*71505*/         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
/*71514*/     /*Scope*/ 12, /*->71527*/
/*71515*/       OPC_CheckChild0Type, MVT::i32,
/*71517*/       OPC_CheckType, MVT::i64,
/*71519*/       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)
/*71527*/     0, /*End of Scope*/
/*71528*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 75|128,2/*331*/,  TARGET_VAL(ISD::ANY_EXTEND),// ->71864
/*71533*/   OPC_Scope, 90|128,1/*218*/, /*->71754*/ // 2 children in Scope
/*71536*/     OPC_MoveChild, 0,
/*71538*/     OPC_SwitchOpcode /*2 cases */, 11|128,1/*139*/,  TARGET_VAL(ISD::SRL),// ->71682
/*71543*/       OPC_RecordChild0, // #0 = $src
/*71544*/       OPC_MoveChild, 1,
/*71546*/       OPC_CheckInteger, 8, 
/*71548*/       OPC_CheckType, MVT::i8,
/*71550*/       OPC_MoveParent,
/*71551*/       OPC_CheckPredicate, 14, // Predicate_srl_su
/*71553*/       OPC_CheckType, MVT::i16,
/*71555*/       OPC_MoveParent,
/*71556*/       OPC_SwitchType /*2 cases */, 72,  MVT::i32,// ->71631
/*71559*/         OPC_Scope, 34, /*->71595*/ // 2 children in Scope
/*71561*/           OPC_CheckPatternPredicate, 3, // (!Subtarget->is64Bit())
/*71563*/           OPC_EmitInteger, MVT::i32, X86::GR16_ABCDRegClassID,
/*71566*/           OPC_EmitNode, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        1/*#VTs*/, MVT::i16, 2/*#Ops*/, 0, 1,  // Results = #2 
/*71575*/           OPC_EmitInteger, MVT::i32, X86::sub_8bit_hi,
/*71578*/           OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        1/*#VTs*/, MVT::i8, 2/*#Ops*/, 2, 3,  // Results = #4 
/*71587*/           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))
/*71595*/         /*Scope*/ 34, /*->71630*/
/*71596*/           OPC_CheckPatternPredicate, 4, // (Subtarget->is64Bit())
/*71598*/           OPC_EmitInteger, MVT::i32, X86::GR16_ABCDRegClassID,
/*71601*/           OPC_EmitNode, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        1/*#VTs*/, MVT::i16, 2/*#Ops*/, 0, 1,  // Results = #2 
/*71610*/           OPC_EmitInteger, MVT::i32, X86::sub_8bit_hi,
/*71613*/           OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        1/*#VTs*/, MVT::i8, 2/*#Ops*/, 2, 3,  // Results = #4 
/*71622*/           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))
/*71630*/         0, /*End of Scope*/
                /*SwitchType*/ 48,  MVT::i64,// ->71681
/*71633*/         OPC_EmitInteger, MVT::i64, 0, 
/*71636*/         OPC_EmitInteger, MVT::i32, X86::GR16_ABCDRegClassID,
/*71639*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      1/*#VTs*/, MVT::i16, 2/*#Ops*/, 0, 2,  // Results = #3 
/*71648*/         OPC_EmitInteger, MVT::i32, X86::sub_8bit_hi,
/*71651*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      1/*#VTs*/, MVT::i8, 2/*#Ops*/, 3, 4,  // Results = #5 
/*71660*/         OPC_EmitNode, TARGET_VAL(X86::MOVZX32_NOREXrr8), 0,
                      1/*#VTs*/, MVT::i32, 1/*#Ops*/, 5,  // Results = #6 
/*71668*/         OPC_EmitInteger, MVT::i32, X86::sub_32bit,
/*71671*/         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),// ->71753
/*71685*/       OPC_MoveChild, 0,
/*71687*/       OPC_CheckInteger, 2, 
/*71689*/       OPC_MoveParent,
/*71690*/       OPC_RecordChild1, // #0 = physreg input EFLAGS
/*71691*/       OPC_SwitchType /*2 cases */, 42,  MVT::i8,// ->71736
/*71694*/         OPC_MoveParent,
/*71695*/         OPC_SwitchType /*3 cases */, 11,  MVT::i16,// ->71709
/*71698*/           OPC_EmitCopyToReg, 0, X86::EFLAGS,
/*71701*/           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,// ->71722
/*71711*/           OPC_EmitCopyToReg, 0, X86::EFLAGS,
/*71714*/           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,// ->71735
/*71724*/           OPC_EmitCopyToReg, 0, X86::EFLAGS,
/*71727*/           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,// ->71752
/*71738*/         OPC_MoveParent,
/*71739*/         OPC_CheckType, MVT::i32,
/*71741*/         OPC_EmitCopyToReg, 0, X86::EFLAGS,
/*71744*/         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
/*71754*/   /*Scope*/ 108, /*->71863*/
/*71755*/     OPC_RecordChild0, // #0 = $src
/*71756*/     OPC_Scope, 20, /*->71778*/ // 3 children in Scope
/*71758*/       OPC_CheckChild0Type, MVT::i32,
/*71760*/       OPC_CheckType, MVT::i64,
/*71762*/       OPC_EmitInteger, MVT::i64, 0, 
/*71765*/       OPC_EmitInteger, MVT::i32, X86::sub_32bit,
/*71768*/       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)
/*71778*/     /*Scope*/ 46, /*->71825*/
/*71779*/       OPC_CheckChild0Type, MVT::i8,
/*71781*/       OPC_SwitchType /*3 cases */, 8,  MVT::i32,// ->71792
/*71784*/         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,// ->71802
/*71794*/         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,// ->71824
/*71804*/         OPC_EmitNode, TARGET_VAL(X86::MOVZX32rr8), 0,
                      1/*#VTs*/, MVT::i32, 1/*#Ops*/, 0,  // Results = #1 
/*71812*/         OPC_EmitInteger, MVT::i32, X86::sub_16bit,
/*71815*/         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
/*71825*/     /*Scope*/ 36, /*->71862*/
/*71826*/       OPC_CheckChild0Type, MVT::i16,
/*71828*/       OPC_SwitchType /*2 cases */, 8,  MVT::i64,// ->71839
/*71831*/         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,// ->71861
/*71841*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      1/*#VTs*/, MVT::i32, 0/*#Ops*/,  // Results = #1 
/*71848*/         OPC_EmitInteger, MVT::i32, X86::sub_16bit,
/*71851*/         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
/*71862*/     0, /*End of Scope*/
/*71863*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 120|128,6/*888*/,  TARGET_VAL(ISD::BITCAST),// ->72756
/*71868*/   OPC_Scope, 28, /*->71898*/ // 6 children in Scope
/*71870*/     OPC_MoveChild, 0,
/*71872*/     OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*71875*/     OPC_RecordChild0, // #0 = $src
/*71876*/     OPC_CheckChild0Type, MVT::v2i64,
/*71878*/     OPC_MoveChild, 1,
/*71880*/     OPC_CheckInteger, 0, 
/*71882*/     OPC_MoveParent,
/*71883*/     OPC_CheckType, MVT::i64,
/*71885*/     OPC_MoveParent,
/*71886*/     OPC_CheckType, MVT::x86mmx,
/*71888*/     OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*71890*/     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)
/*71898*/   /*Scope*/ 127, /*->72026*/
/*71899*/     OPC_RecordChild0, // #0 = $src
/*71900*/     OPC_Scope, 40, /*->71942*/ // 4 children in Scope
/*71902*/       OPC_CheckChild0Type, MVT::f64,
/*71904*/       OPC_SwitchType /*2 cases */, 24,  MVT::i64,// ->71931
/*71907*/         OPC_Scope, 10, /*->71919*/ // 2 children in Scope
/*71909*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*71911*/           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)
/*71919*/         /*Scope*/ 10, /*->71930*/
/*71920*/           OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*71922*/           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)
/*71930*/         0, /*End of Scope*/
                /*SwitchType*/ 8,  MVT::x86mmx,// ->71941
/*71933*/         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
/*71942*/     /*Scope*/ 28, /*->71971*/
/*71943*/       OPC_CheckChild0Type, MVT::f32,
/*71945*/       OPC_CheckType, MVT::i32,
/*71947*/       OPC_Scope, 10, /*->71959*/ // 2 children in Scope
/*71949*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*71951*/         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)
/*71959*/       /*Scope*/ 10, /*->71970*/
/*71960*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*71962*/         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)
/*71970*/       0, /*End of Scope*/
/*71971*/     /*Scope*/ 26, /*->71998*/
/*71972*/       OPC_CheckChild0Type, MVT::x86mmx,
/*71974*/       OPC_CheckType, MVT::i64,
/*71976*/       OPC_Scope, 10, /*->71988*/ // 2 children in Scope
/*71978*/         OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*71980*/         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)
/*71988*/       /*Scope*/ 8, /*->71997*/
/*71989*/         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)
/*71997*/       0, /*End of Scope*/
/*71998*/     /*Scope*/ 26, /*->72025*/
/*71999*/       OPC_CheckChild0Type, MVT::i64,
/*72001*/       OPC_CheckType, MVT::x86mmx,
/*72003*/       OPC_Scope, 10, /*->72015*/ // 2 children in Scope
/*72005*/         OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*72007*/         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)
/*72015*/       /*Scope*/ 8, /*->72024*/
/*72016*/         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)
/*72024*/       0, /*End of Scope*/
/*72025*/     0, /*End of Scope*/
/*72026*/   /*Scope*/ 106, /*->72133*/
/*72027*/     OPC_MoveChild, 0,
/*72029*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*72032*/     OPC_RecordMemRef,
/*72033*/     OPC_RecordNode, // #0 = 'ld' chained node
/*72034*/     OPC_RecordChild1, // #1 = $src
/*72035*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*72037*/     OPC_SwitchType /*2 cases */, 45,  MVT::i32,// ->72085
/*72040*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*72042*/       OPC_MoveParent,
/*72043*/       OPC_CheckType, MVT::f32,
/*72045*/       OPC_Scope, 18, /*->72065*/ // 2 children in Scope
/*72047*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*72049*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*72052*/         OPC_EmitMergeInputChains1_0,
/*72053*/         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)
/*72065*/       /*Scope*/ 18, /*->72084*/
/*72066*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*72068*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*72071*/         OPC_EmitMergeInputChains1_0,
/*72072*/         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)
/*72084*/       0, /*End of Scope*/
              /*SwitchType*/ 45,  MVT::i64,// ->72132
/*72087*/       OPC_CheckPredicate, 3, // Predicate_load
/*72089*/       OPC_MoveParent,
/*72090*/       OPC_CheckType, MVT::f64,
/*72092*/       OPC_Scope, 18, /*->72112*/ // 2 children in Scope
/*72094*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*72096*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*72099*/         OPC_EmitMergeInputChains1_0,
/*72100*/         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)
/*72112*/       /*Scope*/ 18, /*->72131*/
/*72113*/         OPC_CheckPatternPredicate, 16, // (Subtarget->hasSSE3())
/*72115*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*72118*/         OPC_EmitMergeInputChains1_0,
/*72119*/         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)
/*72131*/       0, /*End of Scope*/
              0, // EndSwitchType
/*72133*/   /*Scope*/ 73, /*->72207*/
/*72134*/     OPC_RecordChild0, // #0 = $src
/*72135*/     OPC_SwitchType /*2 cases */, 40,  MVT::f64,// ->72178
/*72138*/       OPC_Scope, 26, /*->72166*/ // 2 children in Scope
/*72140*/         OPC_CheckChild0Type, MVT::i64,
/*72142*/         OPC_Scope, 10, /*->72154*/ // 2 children in Scope
/*72144*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*72146*/           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)
/*72154*/         /*Scope*/ 10, /*->72165*/
/*72155*/           OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*72157*/           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)
/*72165*/         0, /*End of Scope*/
/*72166*/       /*Scope*/ 10, /*->72177*/
/*72167*/         OPC_CheckChild0Type, MVT::x86mmx,
/*72169*/         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)
/*72177*/       0, /*End of Scope*/
              /*SwitchType*/ 26,  MVT::f32,// ->72206
/*72180*/       OPC_CheckChild0Type, MVT::i32,
/*72182*/       OPC_Scope, 10, /*->72194*/ // 2 children in Scope
/*72184*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*72186*/         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)
/*72194*/       /*Scope*/ 10, /*->72205*/
/*72195*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*72197*/         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)
/*72205*/       0, /*End of Scope*/
              0, // EndSwitchType
/*72207*/   /*Scope*/ 62, /*->72270*/
/*72208*/     OPC_MoveChild, 0,
/*72210*/     OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
/*72213*/     OPC_CheckPredicate, 91, // Predicate_immAllZerosV
/*72215*/     OPC_CheckType, MVT::v8f32,
/*72217*/     OPC_MoveParent,
/*72218*/     OPC_SwitchType /*2 cases */, 23,  MVT::v8i32,// ->72244
/*72221*/       OPC_EmitInteger, MVT::i32, 0, 
/*72224*/       OPC_EmitNode, TARGET_VAL(X86::V_SET0), 0,
                    1/*#VTs*/, MVT::v16i8, 0/*#Ops*/,  // Results = #1 
/*72231*/       OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*72234*/       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,// ->72269
/*72246*/       OPC_EmitInteger, MVT::i64, 0, 
/*72249*/       OPC_EmitNode, TARGET_VAL(X86::V_SET0), 0,
                    1/*#VTs*/, MVT::v16i8, 0/*#Ops*/,  // Results = #1 
/*72256*/       OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*72259*/       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
/*72270*/   /*Scope*/ 99|128,3/*483*/, /*->72755*/
/*72272*/     OPC_RecordChild0, // #0 = $src
/*72273*/     OPC_Scope, 39, /*->72314*/ // 12 children in Scope
/*72275*/       OPC_CheckChild0Type, MVT::v4i32,
/*72277*/       OPC_SwitchType /*5 cases */, 5,  MVT::v2i64,// ->72285
/*72280*/         OPC_CheckPatternPredicate, 34, // (Subtarget->hasXMMInt())
/*72282*/         OPC_CompleteMatch, 1, 0, 
                  // Src: (bitconvert:v2i64 VR128:v4i32:$src) - Complexity = 3
                  // Dst: VR128:v2i64:$src
                /*SwitchType*/ 5,  MVT::v8i16,// ->72292
/*72287*/         OPC_CheckPatternPredicate, 34, // (Subtarget->hasXMMInt())
/*72289*/         OPC_CompleteMatch, 1, 0, 
                  // Src: (bitconvert:v8i16 VR128:v4i32:$src) - Complexity = 3
                  // Dst: VR128:v8i16:$src
                /*SwitchType*/ 5,  MVT::v16i8,// ->72299
/*72294*/         OPC_CheckPatternPredicate, 34, // (Subtarget->hasXMMInt())
/*72296*/         OPC_CompleteMatch, 1, 0, 
                  // Src: (bitconvert:v16i8 VR128:v4i32:$src) - Complexity = 3
                  // Dst: VR128:v16i8:$src
                /*SwitchType*/ 5,  MVT::v4f32,// ->72306
/*72301*/         OPC_CheckPatternPredicate, 34, // (Subtarget->hasXMMInt())
/*72303*/         OPC_CompleteMatch, 1, 0, 
                  // Src: (bitconvert:v4f32 VR128:v4i32:$src) - Complexity = 3
                  // Dst: VR128:v4f32:$src
                /*SwitchType*/ 5,  MVT::v2f64,// ->72313
/*72308*/         OPC_CheckPatternPredicate, 34, // (Subtarget->hasXMMInt())
/*72310*/         OPC_CompleteMatch, 1, 0, 
                  // Src: (bitconvert:v2f64 VR128:v4i32:$src) - Complexity = 3
                  // Dst: VR128:v2f64:$src
                0, // EndSwitchType
/*72314*/     /*Scope*/ 39, /*->72354*/
/*72315*/       OPC_CheckChild0Type, MVT::v8i16,
/*72317*/       OPC_SwitchType /*5 cases */, 5,  MVT::v2i64,// ->72325
/*72320*/         OPC_CheckPatternPredicate, 34, // (Subtarget->hasXMMInt())
/*72322*/         OPC_CompleteMatch, 1, 0, 
                  // Src: (bitconvert:v2i64 VR128:v8i16:$src) - Complexity = 3
                  // Dst: VR128:v2i64:$src
                /*SwitchType*/ 5,  MVT::v4i32,// ->72332
/*72327*/         OPC_CheckPatternPredicate, 34, // (Subtarget->hasXMMInt())
/*72329*/         OPC_CompleteMatch, 1, 0, 
                  // Src: (bitconvert:v4i32 VR128:v8i16:$src) - Complexity = 3
                  // Dst: VR128:v4i32:$src
                /*SwitchType*/ 5,  MVT::v16i8,// ->72339
/*72334*/         OPC_CheckPatternPredicate, 34, // (Subtarget->hasXMMInt())
/*72336*/         OPC_CompleteMatch, 1, 0, 
                  // Src: (bitconvert:v16i8 VR128:v8i16:$src) - Complexity = 3
                  // Dst: VR128:v16i8:$src
                /*SwitchType*/ 5,  MVT::v4f32,// ->72346
/*72341*/         OPC_CheckPatternPredicate, 34, // (Subtarget->hasXMMInt())
/*72343*/         OPC_CompleteMatch, 1, 0, 
                  // Src: (bitconvert:v4f32 VR128:v8i16:$src) - Complexity = 3
                  // Dst: VR128:v4f32:$src
                /*SwitchType*/ 5,  MVT::v2f64,// ->72353
/*72348*/         OPC_CheckPatternPredicate, 34, // (Subtarget->hasXMMInt())
/*72350*/         OPC_CompleteMatch, 1, 0, 
                  // Src: (bitconvert:v2f64 VR128:v8i16:$src) - Complexity = 3
                  // Dst: VR128:v2f64:$src
                0, // EndSwitchType
/*72354*/     /*Scope*/ 39, /*->72394*/
/*72355*/       OPC_CheckChild0Type, MVT::v16i8,
/*72357*/       OPC_SwitchType /*5 cases */, 5,  MVT::v2i64,// ->72365
/*72360*/         OPC_CheckPatternPredicate, 34, // (Subtarget->hasXMMInt())
/*72362*/         OPC_CompleteMatch, 1, 0, 
                  // Src: (bitconvert:v2i64 VR128:v16i8:$src) - Complexity = 3
                  // Dst: VR128:v2i64:$src
                /*SwitchType*/ 5,  MVT::v4i32,// ->72372
/*72367*/         OPC_CheckPatternPredicate, 34, // (Subtarget->hasXMMInt())
/*72369*/         OPC_CompleteMatch, 1, 0, 
                  // Src: (bitconvert:v4i32 VR128:v16i8:$src) - Complexity = 3
                  // Dst: VR128:v4i32:$src
                /*SwitchType*/ 5,  MVT::v8i16,// ->72379
/*72374*/         OPC_CheckPatternPredicate, 34, // (Subtarget->hasXMMInt())
/*72376*/         OPC_CompleteMatch, 1, 0, 
                  // Src: (bitconvert:v8i16 VR128:v16i8:$src) - Complexity = 3
                  // Dst: VR128:v8i16:$src
                /*SwitchType*/ 5,  MVT::v4f32,// ->72386
/*72381*/         OPC_CheckPatternPredicate, 34, // (Subtarget->hasXMMInt())
/*72383*/         OPC_CompleteMatch, 1, 0, 
                  // Src: (bitconvert:v4f32 VR128:v16i8:$src) - Complexity = 3
                  // Dst: VR128:v4f32:$src
                /*SwitchType*/ 5,  MVT::v2f64,// ->72393
/*72388*/         OPC_CheckPatternPredicate, 34, // (Subtarget->hasXMMInt())
/*72390*/         OPC_CompleteMatch, 1, 0, 
                  // Src: (bitconvert:v2f64 VR128:v16i8:$src) - Complexity = 3
                  // Dst: VR128:v2f64:$src
                0, // EndSwitchType
/*72394*/     /*Scope*/ 39, /*->72434*/
/*72395*/       OPC_CheckChild0Type, MVT::v2f64,
/*72397*/       OPC_SwitchType /*5 cases */, 5,  MVT::v2i64,// ->72405
/*72400*/         OPC_CheckPatternPredicate, 34, // (Subtarget->hasXMMInt())
/*72402*/         OPC_CompleteMatch, 1, 0, 
                  // Src: (bitconvert:v2i64 VR128:v2f64:$src) - Complexity = 3
                  // Dst: VR128:v2i64:$src
                /*SwitchType*/ 5,  MVT::v4i32,// ->72412
/*72407*/         OPC_CheckPatternPredicate, 34, // (Subtarget->hasXMMInt())
/*72409*/         OPC_CompleteMatch, 1, 0, 
                  // Src: (bitconvert:v4i32 VR128:v2f64:$src) - Complexity = 3
                  // Dst: VR128:v4i32:$src
                /*SwitchType*/ 5,  MVT::v8i16,// ->72419
/*72414*/         OPC_CheckPatternPredicate, 34, // (Subtarget->hasXMMInt())
/*72416*/         OPC_CompleteMatch, 1, 0, 
                  // Src: (bitconvert:v8i16 VR128:v2f64:$src) - Complexity = 3
                  // Dst: VR128:v8i16:$src
                /*SwitchType*/ 5,  MVT::v16i8,// ->72426
/*72421*/         OPC_CheckPatternPredicate, 34, // (Subtarget->hasXMMInt())
/*72423*/         OPC_CompleteMatch, 1, 0, 
                  // Src: (bitconvert:v16i8 VR128:v2f64:$src) - Complexity = 3
                  // Dst: VR128:v16i8:$src
                /*SwitchType*/ 5,  MVT::v4f32,// ->72433
/*72428*/         OPC_CheckPatternPredicate, 34, // (Subtarget->hasXMMInt())
/*72430*/         OPC_CompleteMatch, 1, 0, 
                  // Src: (bitconvert:v4f32 VR128:v2f64:$src) - Complexity = 3
                  // Dst: VR128:v4f32:$src
                0, // EndSwitchType
/*72434*/     /*Scope*/ 39, /*->72474*/
/*72435*/       OPC_CheckChild0Type, MVT::v4f32,
/*72437*/       OPC_SwitchType /*5 cases */, 5,  MVT::v2i64,// ->72445
/*72440*/         OPC_CheckPatternPredicate, 34, // (Subtarget->hasXMMInt())
/*72442*/         OPC_CompleteMatch, 1, 0, 
                  // Src: (bitconvert:v2i64 VR128:v4f32:$src) - Complexity = 3
                  // Dst: VR128:v2i64:$src
                /*SwitchType*/ 5,  MVT::v4i32,// ->72452
/*72447*/         OPC_CheckPatternPredicate, 34, // (Subtarget->hasXMMInt())
/*72449*/         OPC_CompleteMatch, 1, 0, 
                  // Src: (bitconvert:v4i32 VR128:v4f32:$src) - Complexity = 3
                  // Dst: VR128:v4i32:$src
                /*SwitchType*/ 5,  MVT::v8i16,// ->72459
/*72454*/         OPC_CheckPatternPredicate, 34, // (Subtarget->hasXMMInt())
/*72456*/         OPC_CompleteMatch, 1, 0, 
                  // Src: (bitconvert:v8i16 VR128:v4f32:$src) - Complexity = 3
                  // Dst: VR128:v8i16:$src
                /*SwitchType*/ 5,  MVT::v16i8,// ->72466
/*72461*/         OPC_CheckPatternPredicate, 34, // (Subtarget->hasXMMInt())
/*72463*/         OPC_CompleteMatch, 1, 0, 
                  // Src: (bitconvert:v16i8 VR128:v4f32:$src) - Complexity = 3
                  // Dst: VR128:v16i8:$src
                /*SwitchType*/ 5,  MVT::v2f64,// ->72473
/*72468*/         OPC_CheckPatternPredicate, 34, // (Subtarget->hasXMMInt())
/*72470*/         OPC_CompleteMatch, 1, 0, 
                  // Src: (bitconvert:v2f64 VR128:v4f32:$src) - Complexity = 3
                  // Dst: VR128:v2f64:$src
                0, // EndSwitchType
/*72474*/     /*Scope*/ 39, /*->72514*/
/*72475*/       OPC_CheckChild0Type, MVT::v2i64,
/*72477*/       OPC_SwitchType /*5 cases */, 5,  MVT::v4i32,// ->72485
/*72480*/         OPC_CheckPatternPredicate, 34, // (Subtarget->hasXMMInt())
/*72482*/         OPC_CompleteMatch, 1, 0, 
                  // Src: (bitconvert:v4i32 VR128:v2i64:$src) - Complexity = 3
                  // Dst: VR128:v4i32:$src
                /*SwitchType*/ 5,  MVT::v8i16,// ->72492
/*72487*/         OPC_CheckPatternPredicate, 34, // (Subtarget->hasXMMInt())
/*72489*/         OPC_CompleteMatch, 1, 0, 
                  // Src: (bitconvert:v8i16 VR128:v2i64:$src) - Complexity = 3
                  // Dst: VR128:v8i16:$src
                /*SwitchType*/ 5,  MVT::v16i8,// ->72499
/*72494*/         OPC_CheckPatternPredicate, 34, // (Subtarget->hasXMMInt())
/*72496*/         OPC_CompleteMatch, 1, 0, 
                  // Src: (bitconvert:v16i8 VR128:v2i64:$src) - Complexity = 3
                  // Dst: VR128:v16i8:$src
                /*SwitchType*/ 5,  MVT::v4f32,// ->72506
/*72501*/         OPC_CheckPatternPredicate, 34, // (Subtarget->hasXMMInt())
/*72503*/         OPC_CompleteMatch, 1, 0, 
                  // Src: (bitconvert:v4f32 VR128:v2i64:$src) - Complexity = 3
                  // Dst: VR128:v4f32:$src
                /*SwitchType*/ 5,  MVT::v2f64,// ->72513
/*72508*/         OPC_CheckPatternPredicate, 34, // (Subtarget->hasXMMInt())
/*72510*/         OPC_CompleteMatch, 1, 0, 
                  // Src: (bitconvert:v2f64 VR128:v2i64:$src) - Complexity = 3
                  // Dst: VR128:v2f64:$src
                0, // EndSwitchType
/*72514*/     /*Scope*/ 39, /*->72554*/
/*72515*/       OPC_CheckChild0Type, MVT::v8f32,
/*72517*/       OPC_SwitchType /*5 cases */, 5,  MVT::v4i64,// ->72525
/*72520*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*72522*/         OPC_CompleteMatch, 1, 0, 
                  // Src: (bitconvert:v4i64 VR256:v8f32:$src) - Complexity = 3
                  // Dst: VR256:v4i64:$src
                /*SwitchType*/ 5,  MVT::v32i8,// ->72532
/*72527*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*72529*/         OPC_CompleteMatch, 1, 0, 
                  // Src: (bitconvert:v32i8 VR256:v8f32:$src) - Complexity = 3
                  // Dst: VR256:v32i8:$src
                /*SwitchType*/ 5,  MVT::v8i32,// ->72539
/*72534*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*72536*/         OPC_CompleteMatch, 1, 0, 
                  // Src: (bitconvert:v8i32 VR256:v8f32:$src) - Complexity = 3
                  // Dst: VR256:v8i32:$src
                /*SwitchType*/ 5,  MVT::v16i16,// ->72546
/*72541*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*72543*/         OPC_CompleteMatch, 1, 0, 
                  // Src: (bitconvert:v16i16 VR256:v8f32:$src) - Complexity = 3
                  // Dst: VR256:v16i16:$src
                /*SwitchType*/ 5,  MVT::v4f64,// ->72553
/*72548*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*72550*/         OPC_CompleteMatch, 1, 0, 
                  // Src: (bitconvert:v4f64 VR256:v8f32:$src) - Complexity = 3
                  // Dst: VR256:v4f64:$src
                0, // EndSwitchType
/*72554*/     /*Scope*/ 39, /*->72594*/
/*72555*/       OPC_CheckChild0Type, MVT::v8i32,
/*72557*/       OPC_SwitchType /*5 cases */, 5,  MVT::v4i64,// ->72565
/*72560*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*72562*/         OPC_CompleteMatch, 1, 0, 
                  // Src: (bitconvert:v4i64 VR256:v8i32:$src) - Complexity = 3
                  // Dst: VR256:v4i64:$src
                /*SwitchType*/ 5,  MVT::v32i8,// ->72572
/*72567*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*72569*/         OPC_CompleteMatch, 1, 0, 
                  // Src: (bitconvert:v32i8 VR256:v8i32:$src) - Complexity = 3
                  // Dst: VR256:v32i8:$src
                /*SwitchType*/ 5,  MVT::v16i16,// ->72579
/*72574*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*72576*/         OPC_CompleteMatch, 1, 0, 
                  // Src: (bitconvert:v16i16 VR256:v8i32:$src) - Complexity = 3
                  // Dst: VR256:v16i16:$src
                /*SwitchType*/ 5,  MVT::v4f64,// ->72586
/*72581*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*72583*/         OPC_CompleteMatch, 1, 0, 
                  // Src: (bitconvert:v4f64 VR256:v8i32:$src) - Complexity = 3
                  // Dst: VR256:v4f64:$src
                /*SwitchType*/ 5,  MVT::v8f32,// ->72593
/*72588*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*72590*/         OPC_CompleteMatch, 1, 0, 
                  // Src: (bitconvert:v8f32 VR256:v8i32:$src) - Complexity = 3
                  // Dst: VR256:v8f32:$src
                0, // EndSwitchType
/*72594*/     /*Scope*/ 39, /*->72634*/
/*72595*/       OPC_CheckChild0Type, MVT::v4f64,
/*72597*/       OPC_SwitchType /*5 cases */, 5,  MVT::v4i64,// ->72605
/*72600*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*72602*/         OPC_CompleteMatch, 1, 0, 
                  // Src: (bitconvert:v4i64 VR256:v4f64:$src) - Complexity = 3
                  // Dst: VR256:v4i64:$src
                /*SwitchType*/ 5,  MVT::v32i8,// ->72612
/*72607*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*72609*/         OPC_CompleteMatch, 1, 0, 
                  // Src: (bitconvert:v32i8 VR256:v4f64:$src) - Complexity = 3
                  // Dst: VR256:v32i8:$src
                /*SwitchType*/ 5,  MVT::v8i32,// ->72619
/*72614*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*72616*/         OPC_CompleteMatch, 1, 0, 
                  // Src: (bitconvert:v8i32 VR256:v4f64:$src) - Complexity = 3
                  // Dst: VR256:v8i32:$src
                /*SwitchType*/ 5,  MVT::v16i16,// ->72626
/*72621*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*72623*/         OPC_CompleteMatch, 1, 0, 
                  // Src: (bitconvert:v16i16 VR256:v4f64:$src) - Complexity = 3
                  // Dst: VR256:v16i16:$src
                /*SwitchType*/ 5,  MVT::v8f32,// ->72633
/*72628*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*72630*/         OPC_CompleteMatch, 1, 0, 
                  // Src: (bitconvert:v8f32 VR256:v4f64:$src) - Complexity = 3
                  // Dst: VR256:v8f32:$src
                0, // EndSwitchType
/*72634*/     /*Scope*/ 39, /*->72674*/
/*72635*/       OPC_CheckChild0Type, MVT::v32i8,
/*72637*/       OPC_SwitchType /*5 cases */, 5,  MVT::v4i64,// ->72645
/*72640*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*72642*/         OPC_CompleteMatch, 1, 0, 
                  // Src: (bitconvert:v4i64 VR256:v32i8:$src) - Complexity = 3
                  // Dst: VR256:v4i64:$src
                /*SwitchType*/ 5,  MVT::v8i32,// ->72652
/*72647*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*72649*/         OPC_CompleteMatch, 1, 0, 
                  // Src: (bitconvert:v8i32 VR256:v32i8:$src) - Complexity = 3
                  // Dst: VR256:v8i32:$src
                /*SwitchType*/ 5,  MVT::v16i16,// ->72659
/*72654*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*72656*/         OPC_CompleteMatch, 1, 0, 
                  // Src: (bitconvert:v16i16 VR256:v32i8:$src) - Complexity = 3
                  // Dst: VR256:v16i16:$src
                /*SwitchType*/ 5,  MVT::v4f64,// ->72666
/*72661*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*72663*/         OPC_CompleteMatch, 1, 0, 
                  // Src: (bitconvert:v4f64 VR256:v32i8:$src) - Complexity = 3
                  // Dst: VR256:v4f64:$src
                /*SwitchType*/ 5,  MVT::v8f32,// ->72673
/*72668*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*72670*/         OPC_CompleteMatch, 1, 0, 
                  // Src: (bitconvert:v8f32 VR256:v32i8:$src) - Complexity = 3
                  // Dst: VR256:v8f32:$src
                0, // EndSwitchType
/*72674*/     /*Scope*/ 39, /*->72714*/
/*72675*/       OPC_CheckChild0Type, MVT::v16i16,
/*72677*/       OPC_SwitchType /*5 cases */, 5,  MVT::v4i64,// ->72685
/*72680*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*72682*/         OPC_CompleteMatch, 1, 0, 
                  // Src: (bitconvert:v4i64 VR256:v16i16:$src) - Complexity = 3
                  // Dst: VR256:v4i64:$src
                /*SwitchType*/ 5,  MVT::v32i8,// ->72692
/*72687*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*72689*/         OPC_CompleteMatch, 1, 0, 
                  // Src: (bitconvert:v32i8 VR256:v16i16:$src) - Complexity = 3
                  // Dst: VR256:v32i8:$src
                /*SwitchType*/ 5,  MVT::v8i32,// ->72699
/*72694*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*72696*/         OPC_CompleteMatch, 1, 0, 
                  // Src: (bitconvert:v8i32 VR256:v16i16:$src) - Complexity = 3
                  // Dst: VR256:v8i32:$src
                /*SwitchType*/ 5,  MVT::v4f64,// ->72706
/*72701*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*72703*/         OPC_CompleteMatch, 1, 0, 
                  // Src: (bitconvert:v4f64 VR256:v16i16:$src) - Complexity = 3
                  // Dst: VR256:v4f64:$src
                /*SwitchType*/ 5,  MVT::v8f32,// ->72713
/*72708*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*72710*/         OPC_CompleteMatch, 1, 0, 
                  // Src: (bitconvert:v8f32 VR256:v16i16:$src) - Complexity = 3
                  // Dst: VR256:v8f32:$src
                0, // EndSwitchType
/*72714*/     /*Scope*/ 39, /*->72754*/
/*72715*/       OPC_CheckChild0Type, MVT::v4i64,
/*72717*/       OPC_SwitchType /*5 cases */, 5,  MVT::v32i8,// ->72725
/*72720*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*72722*/         OPC_CompleteMatch, 1, 0, 
                  // Src: (bitconvert:v32i8 VR256:v4i64:$src) - Complexity = 3
                  // Dst: VR256:v32i8:$src
                /*SwitchType*/ 5,  MVT::v8i32,// ->72732
/*72727*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*72729*/         OPC_CompleteMatch, 1, 0, 
                  // Src: (bitconvert:v8i32 VR256:v4i64:$src) - Complexity = 3
                  // Dst: VR256:v8i32:$src
                /*SwitchType*/ 5,  MVT::v16i16,// ->72739
/*72734*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*72736*/         OPC_CompleteMatch, 1, 0, 
                  // Src: (bitconvert:v16i16 VR256:v4i64:$src) - Complexity = 3
                  // Dst: VR256:v16i16:$src
                /*SwitchType*/ 5,  MVT::v4f64,// ->72746
/*72741*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*72743*/         OPC_CompleteMatch, 1, 0, 
                  // Src: (bitconvert:v4f64 VR256:v4i64:$src) - Complexity = 3
                  // Dst: VR256:v4f64:$src
                /*SwitchType*/ 5,  MVT::v8f32,// ->72753
/*72748*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*72750*/         OPC_CompleteMatch, 1, 0, 
                  // Src: (bitconvert:v8f32 VR256:v4i64:$src) - Complexity = 3
                  // Dst: VR256:v8f32:$src
                0, // EndSwitchType
/*72754*/     0, /*End of Scope*/
/*72755*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 19|128,1/*147*/,  TARGET_VAL(ISD::SIGN_EXTEND),// ->72907
/*72760*/   OPC_Scope, 55, /*->72817*/ // 2 children in Scope
/*72762*/     OPC_MoveChild, 0,
/*72764*/     OPC_CheckOpcode, TARGET_VAL(X86ISD::SETCC_CARRY),
/*72767*/     OPC_MoveChild, 0,
/*72769*/     OPC_CheckInteger, 2, 
/*72771*/     OPC_MoveParent,
/*72772*/     OPC_RecordChild1, // #0 = physreg input EFLAGS
/*72773*/     OPC_CheckType, MVT::i8,
/*72775*/     OPC_MoveParent,
/*72776*/     OPC_SwitchType /*3 cases */, 11,  MVT::i16,// ->72790
/*72779*/       OPC_EmitCopyToReg, 0, X86::EFLAGS,
/*72782*/       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,// ->72803
/*72792*/       OPC_EmitCopyToReg, 0, X86::EFLAGS,
/*72795*/       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,// ->72816
/*72805*/       OPC_EmitCopyToReg, 0, X86::EFLAGS,
/*72808*/       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
/*72817*/   /*Scope*/ 88, /*->72906*/
/*72818*/     OPC_RecordChild0, // #0 = $src
/*72819*/     OPC_Scope, 46, /*->72867*/ // 3 children in Scope
/*72821*/       OPC_CheckChild0Type, MVT::i8,
/*72823*/       OPC_SwitchType /*3 cases */, 8,  MVT::i32,// ->72834
/*72826*/         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,// ->72844
/*72836*/         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,// ->72866
/*72846*/         OPC_EmitNode, TARGET_VAL(X86::MOVSX32rr8), 0,
                      1/*#VTs*/, MVT::i32, 1/*#Ops*/, 0,  // Results = #1 
/*72854*/         OPC_EmitInteger, MVT::i32, X86::sub_16bit,
/*72857*/         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
/*72867*/     /*Scope*/ 24, /*->72892*/
/*72868*/       OPC_CheckChild0Type, MVT::i16,
/*72870*/       OPC_SwitchType /*2 cases */, 8,  MVT::i32,// ->72881
/*72873*/         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,// ->72891
/*72883*/         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
/*72892*/     /*Scope*/ 12, /*->72905*/
/*72893*/       OPC_CheckChild0Type, MVT::i32,
/*72895*/       OPC_CheckType, MVT::i64,
/*72897*/       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)
/*72905*/     0, /*End of Scope*/
/*72906*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 5|128,2/*261*/,  TARGET_VAL(ISD::SRA),// ->73172
/*72911*/   OPC_RecordChild0, // #0 = $src1
/*72912*/   OPC_Scope, 124, /*->73038*/ // 2 children in Scope
/*72914*/     OPC_MoveChild, 1,
/*72916*/     OPC_CheckType, MVT::i8,
/*72918*/     OPC_Scope, 48, /*->72968*/ // 3 children in Scope
/*72920*/       OPC_CheckAndImm, 31, 
/*72922*/       OPC_RecordChild0, // #1 = physreg input CL
/*72923*/       OPC_MoveParent,
/*72924*/       OPC_SwitchType /*3 cases */, 12,  MVT::i8,// ->72939
/*72927*/         OPC_EmitCopyToReg, 1, X86::CL,
/*72930*/         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,// ->72953
/*72941*/         OPC_EmitCopyToReg, 1, X86::CL,
/*72944*/         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,// ->72967
/*72955*/         OPC_EmitCopyToReg, 1, X86::CL,
/*72958*/         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
/*72968*/     /*Scope*/ 18, /*->72987*/
/*72969*/       OPC_CheckAndImm, 63, 
/*72971*/       OPC_RecordChild0, // #1 = physreg input CL
/*72972*/       OPC_MoveParent,
/*72973*/       OPC_CheckType, MVT::i64,
/*72975*/       OPC_EmitCopyToReg, 1, X86::CL,
/*72978*/       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)
/*72987*/     /*Scope*/ 49, /*->73037*/
/*72988*/       OPC_CheckInteger, 1, 
/*72990*/       OPC_MoveParent,
/*72991*/       OPC_SwitchType /*4 cases */, 9,  MVT::i8,// ->73003
/*72994*/         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,// ->73014
/*73005*/         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,// ->73025
/*73016*/         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,// ->73036
/*73027*/         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
/*73037*/     0, /*End of Scope*/
/*73038*/   /*Scope*/ 3|128,1/*131*/, /*->73171*/
/*73040*/     OPC_RecordChild1, // #1 = $src2
/*73041*/     OPC_Scope, 66, /*->73109*/ // 2 children in Scope
/*73043*/       OPC_MoveChild, 1,
/*73045*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*73048*/       OPC_CheckType, MVT::i8,
/*73050*/       OPC_MoveParent,
/*73051*/       OPC_SwitchType /*4 cases */, 12,  MVT::i8,// ->73066
/*73054*/         OPC_EmitConvertToTarget, 1,
/*73056*/         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,// ->73080
/*73068*/         OPC_EmitConvertToTarget, 1,
/*73070*/         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,// ->73094
/*73082*/         OPC_EmitConvertToTarget, 1,
/*73084*/         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,// ->73108
/*73096*/         OPC_EmitConvertToTarget, 1,
/*73098*/         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
/*73109*/     /*Scope*/ 60, /*->73170*/
/*73110*/       OPC_CheckChild1Type, MVT::i8,
/*73112*/       OPC_SwitchType /*4 cases */, 12,  MVT::i8,// ->73127
/*73115*/         OPC_EmitCopyToReg, 1, X86::CL,
/*73118*/         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,// ->73141
/*73129*/         OPC_EmitCopyToReg, 1, X86::CL,
/*73132*/         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,// ->73155
/*73143*/         OPC_EmitCopyToReg, 1, X86::CL,
/*73146*/         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,// ->73169
/*73157*/         OPC_EmitCopyToReg, 1, X86::CL,
/*73160*/         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
/*73170*/     0, /*End of Scope*/
/*73171*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 0|128,2/*256*/,  TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),// ->73432
/*73176*/   OPC_Scope, 50, /*->73228*/ // 2 children in Scope
/*73178*/     OPC_MoveChild, 0,
/*73180*/     OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*73183*/     OPC_RecordChild0, // #0 = $src1
/*73184*/     OPC_CheckChild0Type, MVT::v4f32,
/*73186*/     OPC_CheckType, MVT::v4i32,
/*73188*/     OPC_MoveParent,
/*73189*/     OPC_RecordChild1, // #1 = $src2
/*73190*/     OPC_MoveChild, 1,
/*73192*/     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*73195*/     OPC_MoveParent,
/*73196*/     OPC_CheckType, MVT::i32,
/*73198*/     OPC_Scope, 13, /*->73213*/ // 2 children in Scope
/*73200*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*73202*/       OPC_EmitConvertToTarget, 1,
/*73204*/       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)
/*73213*/     /*Scope*/ 13, /*->73227*/
/*73214*/       OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*73216*/       OPC_EmitConvertToTarget, 1,
/*73218*/       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)
/*73227*/     0, /*End of Scope*/
/*73228*/   /*Scope*/ 73|128,1/*201*/, /*->73431*/
/*73230*/     OPC_RecordChild0, // #0 = $src
/*73231*/     OPC_Scope, 76, /*->73309*/ // 4 children in Scope
/*73233*/       OPC_CheckChild0Type, MVT::v4i32,
/*73235*/       OPC_Scope, 31, /*->73268*/ // 2 children in Scope
/*73237*/         OPC_MoveChild, 1,
/*73239*/         OPC_CheckInteger, 0, 
/*73241*/         OPC_MoveParent,
/*73242*/         OPC_CheckType, MVT::i32,
/*73244*/         OPC_Scope, 10, /*->73256*/ // 2 children in Scope
/*73246*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*73248*/           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)
/*73256*/         /*Scope*/ 10, /*->73267*/
/*73257*/           OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*73259*/           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)
/*73267*/         0, /*End of Scope*/
/*73268*/       /*Scope*/ 39, /*->73308*/
/*73269*/         OPC_RecordChild1, // #1 = $src2
/*73270*/         OPC_MoveChild, 1,
/*73272*/         OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*73275*/         OPC_MoveParent,
/*73276*/         OPC_CheckType, MVT::i32,
/*73278*/         OPC_Scope, 13, /*->73293*/ // 2 children in Scope
/*73280*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*73282*/           OPC_EmitConvertToTarget, 1,
/*73284*/           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)
/*73293*/         /*Scope*/ 13, /*->73307*/
/*73294*/           OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*73296*/           OPC_EmitConvertToTarget, 1,
/*73298*/           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)
/*73307*/         0, /*End of Scope*/
/*73308*/       0, /*End of Scope*/
/*73309*/     /*Scope*/ 76, /*->73386*/
/*73310*/       OPC_CheckChild0Type, MVT::v2i64,
/*73312*/       OPC_Scope, 31, /*->73345*/ // 2 children in Scope
/*73314*/         OPC_MoveChild, 1,
/*73316*/         OPC_CheckInteger, 0, 
/*73318*/         OPC_MoveParent,
/*73319*/         OPC_CheckType, MVT::i64,
/*73321*/         OPC_Scope, 10, /*->73333*/ // 2 children in Scope
/*73323*/           OPC_CheckPatternPredicate, 35, // (Subtarget->hasAVX()) && (Subtarget->is64Bit())
/*73325*/           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)
/*73333*/         /*Scope*/ 10, /*->73344*/
/*73334*/           OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*73336*/           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)
/*73344*/         0, /*End of Scope*/
/*73345*/       /*Scope*/ 39, /*->73385*/
/*73346*/         OPC_RecordChild1, // #1 = $src2
/*73347*/         OPC_MoveChild, 1,
/*73349*/         OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*73352*/         OPC_MoveParent,
/*73353*/         OPC_CheckType, MVT::i64,
/*73355*/         OPC_Scope, 13, /*->73370*/ // 2 children in Scope
/*73357*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*73359*/           OPC_EmitConvertToTarget, 1,
/*73361*/           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)
/*73370*/         /*Scope*/ 13, /*->73384*/
/*73371*/           OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*73373*/           OPC_EmitConvertToTarget, 1,
/*73375*/           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)
/*73384*/         0, /*End of Scope*/
/*73385*/       0, /*End of Scope*/
/*73386*/     /*Scope*/ 21, /*->73408*/
/*73387*/       OPC_CheckChild0Type, MVT::v4f32,
/*73389*/       OPC_MoveChild, 1,
/*73391*/       OPC_CheckInteger, 0, 
/*73393*/       OPC_MoveParent,
/*73394*/       OPC_CheckType, MVT::f32,
/*73396*/       OPC_EmitInteger, MVT::i32, X86::sub_ss,
/*73399*/       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)
/*73408*/     /*Scope*/ 21, /*->73430*/
/*73409*/       OPC_CheckChild0Type, MVT::v2f64,
/*73411*/       OPC_MoveChild, 1,
/*73413*/       OPC_CheckInteger, 0, 
/*73415*/       OPC_MoveParent,
/*73416*/       OPC_CheckType, MVT::f64,
/*73418*/       OPC_EmitInteger, MVT::i32, X86::sub_sd,
/*73421*/       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)
/*73430*/     0, /*End of Scope*/
/*73431*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 44,  TARGET_VAL(ISD::CALLSEQ_END),// ->73479
/*73435*/   OPC_RecordNode,   // #0 = 'X86callseq_end' chained node
/*73436*/   OPC_CaptureGlueInput,
/*73437*/   OPC_RecordChild1, // #1 = $amt1
/*73438*/   OPC_MoveChild, 1,
/*73440*/   OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*73443*/   OPC_MoveParent,
/*73444*/   OPC_RecordChild2, // #2 = $amt2
/*73445*/   OPC_MoveChild, 2,
/*73447*/   OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*73450*/   OPC_MoveParent,
/*73451*/   OPC_Scope, 12, /*->73465*/ // 2 children in Scope
/*73453*/     OPC_CheckPatternPredicate, 3, // (!Subtarget->is64Bit())
/*73455*/     OPC_EmitMergeInputChains1_0,
/*73456*/     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)
/*73465*/   /*Scope*/ 12, /*->73478*/
/*73466*/     OPC_CheckPatternPredicate, 4, // (Subtarget->is64Bit())
/*73468*/     OPC_EmitMergeInputChains1_0,
/*73469*/     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)
/*73478*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 30,  TARGET_VAL(X86ISD::VASTART_SAVE_XMM_REGS),// ->73512
/*73482*/   OPC_RecordNode,   // #0 = 'X86vastart_save_xmm_regs' chained node
/*73483*/   OPC_RecordChild1, // #1 = $al
/*73484*/   OPC_RecordChild2, // #2 = $regsavefi
/*73485*/   OPC_MoveChild, 2,
/*73487*/   OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*73490*/   OPC_MoveParent,
/*73491*/   OPC_RecordChild3, // #3 = $offset
/*73492*/   OPC_MoveChild, 3,
/*73494*/   OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*73497*/   OPC_MoveParent,
/*73498*/   OPC_EmitMergeInputChains1_0,
/*73499*/   OPC_EmitConvertToTarget, 2,
/*73501*/   OPC_EmitConvertToTarget, 3,
/*73503*/   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*/ 116|128,1/*244*/,  TARGET_VAL(X86ISD::SETCC),// ->73760
/*73516*/   OPC_MoveChild, 0,
/*73518*/   OPC_Scope, 14, /*->73534*/ // 16 children in Scope
/*73520*/     OPC_CheckInteger, 13, 
/*73522*/     OPC_MoveParent,
/*73523*/     OPC_RecordChild1, // #0 = physreg input EFLAGS
/*73524*/     OPC_EmitCopyToReg, 0, X86::EFLAGS,
/*73527*/     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)
/*73534*/   /*Scope*/ 14, /*->73549*/
/*73535*/     OPC_CheckInteger, 10, 
/*73537*/     OPC_MoveParent,
/*73538*/     OPC_RecordChild1, // #0 = physreg input EFLAGS
/*73539*/     OPC_EmitCopyToReg, 0, X86::EFLAGS,
/*73542*/     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)
/*73549*/   /*Scope*/ 14, /*->73564*/
/*73550*/     OPC_CheckInteger, 2, 
/*73552*/     OPC_MoveParent,
/*73553*/     OPC_RecordChild1, // #0 = physreg input EFLAGS
/*73554*/     OPC_EmitCopyToReg, 0, X86::EFLAGS,
/*73557*/     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)
/*73564*/   /*Scope*/ 14, /*->73579*/
/*73565*/     OPC_CheckInteger, 1, 
/*73567*/     OPC_MoveParent,
/*73568*/     OPC_RecordChild1, // #0 = physreg input EFLAGS
/*73569*/     OPC_EmitCopyToReg, 0, X86::EFLAGS,
/*73572*/     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)
/*73579*/   /*Scope*/ 14, /*->73594*/
/*73580*/     OPC_CheckInteger, 4, 
/*73582*/     OPC_MoveParent,
/*73583*/     OPC_RecordChild1, // #0 = physreg input EFLAGS
/*73584*/     OPC_EmitCopyToReg, 0, X86::EFLAGS,
/*73587*/     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)
/*73594*/   /*Scope*/ 14, /*->73609*/
/*73595*/     OPC_CheckInteger, 9, 
/*73597*/     OPC_MoveParent,
/*73598*/     OPC_RecordChild1, // #0 = physreg input EFLAGS
/*73599*/     OPC_EmitCopyToReg, 0, X86::EFLAGS,
/*73602*/     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)
/*73609*/   /*Scope*/ 14, /*->73624*/
/*73610*/     OPC_CheckInteger, 3, 
/*73612*/     OPC_MoveParent,
/*73613*/     OPC_RecordChild1, // #0 = physreg input EFLAGS
/*73614*/     OPC_EmitCopyToReg, 0, X86::EFLAGS,
/*73617*/     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)
/*73624*/   /*Scope*/ 14, /*->73639*/
/*73625*/     OPC_CheckInteger, 0, 
/*73627*/     OPC_MoveParent,
/*73628*/     OPC_RecordChild1, // #0 = physreg input EFLAGS
/*73629*/     OPC_EmitCopyToReg, 0, X86::EFLAGS,
/*73632*/     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)
/*73639*/   /*Scope*/ 14, /*->73654*/
/*73640*/     OPC_CheckInteger, 15, 
/*73642*/     OPC_MoveParent,
/*73643*/     OPC_RecordChild1, // #0 = physreg input EFLAGS
/*73644*/     OPC_EmitCopyToReg, 0, X86::EFLAGS,
/*73647*/     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)
/*73654*/   /*Scope*/ 14, /*->73669*/
/*73655*/     OPC_CheckInteger, 12, 
/*73657*/     OPC_MoveParent,
/*73658*/     OPC_RecordChild1, // #0 = physreg input EFLAGS
/*73659*/     OPC_EmitCopyToReg, 0, X86::EFLAGS,
/*73662*/     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)
/*73669*/   /*Scope*/ 14, /*->73684*/
/*73670*/     OPC_CheckInteger, 14, 
/*73672*/     OPC_MoveParent,
/*73673*/     OPC_RecordChild1, // #0 = physreg input EFLAGS
/*73674*/     OPC_EmitCopyToReg, 0, X86::EFLAGS,
/*73677*/     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)
/*73684*/   /*Scope*/ 14, /*->73699*/
/*73685*/     OPC_CheckInteger, 11, 
/*73687*/     OPC_MoveParent,
/*73688*/     OPC_RecordChild1, // #0 = physreg input EFLAGS
/*73689*/     OPC_EmitCopyToReg, 0, X86::EFLAGS,
/*73692*/     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)
/*73699*/   /*Scope*/ 14, /*->73714*/
/*73700*/     OPC_CheckInteger, 7, 
/*73702*/     OPC_MoveParent,
/*73703*/     OPC_RecordChild1, // #0 = physreg input EFLAGS
/*73704*/     OPC_EmitCopyToReg, 0, X86::EFLAGS,
/*73707*/     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)
/*73714*/   /*Scope*/ 14, /*->73729*/
/*73715*/     OPC_CheckInteger, 6, 
/*73717*/     OPC_MoveParent,
/*73718*/     OPC_RecordChild1, // #0 = physreg input EFLAGS
/*73719*/     OPC_EmitCopyToReg, 0, X86::EFLAGS,
/*73722*/     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)
/*73729*/   /*Scope*/ 14, /*->73744*/
/*73730*/     OPC_CheckInteger, 8, 
/*73732*/     OPC_MoveParent,
/*73733*/     OPC_RecordChild1, // #0 = physreg input EFLAGS
/*73734*/     OPC_EmitCopyToReg, 0, X86::EFLAGS,
/*73737*/     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)
/*73744*/   /*Scope*/ 14, /*->73759*/
/*73745*/     OPC_CheckInteger, 5, 
/*73747*/     OPC_MoveParent,
/*73748*/     OPC_RecordChild1, // #0 = physreg input EFLAGS
/*73749*/     OPC_EmitCopyToReg, 0, X86::EFLAGS,
/*73752*/     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)
/*73759*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 33,  TARGET_VAL(X86ISD::RET_FLAG),// ->73796
/*73763*/   OPC_RecordNode,   // #0 = 'X86retflag' chained node
/*73764*/   OPC_CaptureGlueInput,
/*73765*/   OPC_Scope, 12, /*->73779*/ // 2 children in Scope
/*73767*/     OPC_MoveChild, 1,
/*73769*/     OPC_CheckInteger, 0, 
/*73771*/     OPC_MoveParent,
/*73772*/     OPC_EmitMergeInputChains1_0,
/*73773*/     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)
/*73779*/   /*Scope*/ 15, /*->73795*/
/*73780*/     OPC_RecordChild1, // #1 = $amt
/*73781*/     OPC_MoveChild, 1,
/*73783*/     OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*73786*/     OPC_MoveParent,
/*73787*/     OPC_EmitMergeInputChains1_0,
/*73788*/     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)
/*73795*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 12|128,2/*268*/,  TARGET_VAL(X86ISD::BRCOND),// ->74068
/*73800*/   OPC_RecordNode,   // #0 = 'X86brcond' chained node
/*73801*/   OPC_RecordChild1, // #1 = $dst
/*73802*/   OPC_MoveChild, 1,
/*73804*/   OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
/*73807*/   OPC_MoveParent,
/*73808*/   OPC_MoveChild, 2,
/*73810*/   OPC_Scope, 15, /*->73827*/ // 16 children in Scope
/*73812*/     OPC_CheckInteger, 13, 
/*73814*/     OPC_MoveParent,
/*73815*/     OPC_RecordChild3, // #2 = physreg input EFLAGS
/*73816*/     OPC_EmitMergeInputChains1_0,
/*73817*/     OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*73820*/     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)
/*73827*/   /*Scope*/ 15, /*->73843*/
/*73828*/     OPC_CheckInteger, 10, 
/*73830*/     OPC_MoveParent,
/*73831*/     OPC_RecordChild3, // #2 = physreg input EFLAGS
/*73832*/     OPC_EmitMergeInputChains1_0,
/*73833*/     OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*73836*/     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)
/*73843*/   /*Scope*/ 15, /*->73859*/
/*73844*/     OPC_CheckInteger, 2, 
/*73846*/     OPC_MoveParent,
/*73847*/     OPC_RecordChild3, // #2 = physreg input EFLAGS
/*73848*/     OPC_EmitMergeInputChains1_0,
/*73849*/     OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*73852*/     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)
/*73859*/   /*Scope*/ 15, /*->73875*/
/*73860*/     OPC_CheckInteger, 1, 
/*73862*/     OPC_MoveParent,
/*73863*/     OPC_RecordChild3, // #2 = physreg input EFLAGS
/*73864*/     OPC_EmitMergeInputChains1_0,
/*73865*/     OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*73868*/     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)
/*73875*/   /*Scope*/ 15, /*->73891*/
/*73876*/     OPC_CheckInteger, 4, 
/*73878*/     OPC_MoveParent,
/*73879*/     OPC_RecordChild3, // #2 = physreg input EFLAGS
/*73880*/     OPC_EmitMergeInputChains1_0,
/*73881*/     OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*73884*/     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)
/*73891*/   /*Scope*/ 15, /*->73907*/
/*73892*/     OPC_CheckInteger, 9, 
/*73894*/     OPC_MoveParent,
/*73895*/     OPC_RecordChild3, // #2 = physreg input EFLAGS
/*73896*/     OPC_EmitMergeInputChains1_0,
/*73897*/     OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*73900*/     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)
/*73907*/   /*Scope*/ 15, /*->73923*/
/*73908*/     OPC_CheckInteger, 3, 
/*73910*/     OPC_MoveParent,
/*73911*/     OPC_RecordChild3, // #2 = physreg input EFLAGS
/*73912*/     OPC_EmitMergeInputChains1_0,
/*73913*/     OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*73916*/     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)
/*73923*/   /*Scope*/ 15, /*->73939*/
/*73924*/     OPC_CheckInteger, 0, 
/*73926*/     OPC_MoveParent,
/*73927*/     OPC_RecordChild3, // #2 = physreg input EFLAGS
/*73928*/     OPC_EmitMergeInputChains1_0,
/*73929*/     OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*73932*/     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)
/*73939*/   /*Scope*/ 15, /*->73955*/
/*73940*/     OPC_CheckInteger, 15, 
/*73942*/     OPC_MoveParent,
/*73943*/     OPC_RecordChild3, // #2 = physreg input EFLAGS
/*73944*/     OPC_EmitMergeInputChains1_0,
/*73945*/     OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*73948*/     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)
/*73955*/   /*Scope*/ 15, /*->73971*/
/*73956*/     OPC_CheckInteger, 12, 
/*73958*/     OPC_MoveParent,
/*73959*/     OPC_RecordChild3, // #2 = physreg input EFLAGS
/*73960*/     OPC_EmitMergeInputChains1_0,
/*73961*/     OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*73964*/     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)
/*73971*/   /*Scope*/ 15, /*->73987*/
/*73972*/     OPC_CheckInteger, 14, 
/*73974*/     OPC_MoveParent,
/*73975*/     OPC_RecordChild3, // #2 = physreg input EFLAGS
/*73976*/     OPC_EmitMergeInputChains1_0,
/*73977*/     OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*73980*/     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)
/*73987*/   /*Scope*/ 15, /*->74003*/
/*73988*/     OPC_CheckInteger, 11, 
/*73990*/     OPC_MoveParent,
/*73991*/     OPC_RecordChild3, // #2 = physreg input EFLAGS
/*73992*/     OPC_EmitMergeInputChains1_0,
/*73993*/     OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*73996*/     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)
/*74003*/   /*Scope*/ 15, /*->74019*/
/*74004*/     OPC_CheckInteger, 7, 
/*74006*/     OPC_MoveParent,
/*74007*/     OPC_RecordChild3, // #2 = physreg input EFLAGS
/*74008*/     OPC_EmitMergeInputChains1_0,
/*74009*/     OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*74012*/     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)
/*74019*/   /*Scope*/ 15, /*->74035*/
/*74020*/     OPC_CheckInteger, 6, 
/*74022*/     OPC_MoveParent,
/*74023*/     OPC_RecordChild3, // #2 = physreg input EFLAGS
/*74024*/     OPC_EmitMergeInputChains1_0,
/*74025*/     OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*74028*/     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)
/*74035*/   /*Scope*/ 15, /*->74051*/
/*74036*/     OPC_CheckInteger, 8, 
/*74038*/     OPC_MoveParent,
/*74039*/     OPC_RecordChild3, // #2 = physreg input EFLAGS
/*74040*/     OPC_EmitMergeInputChains1_0,
/*74041*/     OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*74044*/     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)
/*74051*/   /*Scope*/ 15, /*->74067*/
/*74052*/     OPC_CheckInteger, 5, 
/*74054*/     OPC_MoveParent,
/*74055*/     OPC_RecordChild3, // #2 = physreg input EFLAGS
/*74056*/     OPC_EmitMergeInputChains1_0,
/*74057*/     OPC_EmitCopyToReg, 2, X86::EFLAGS,
/*74060*/     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)
/*74067*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 62|128,1/*190*/,  TARGET_VAL(ISD::ROTL),// ->74262
/*74072*/   OPC_RecordChild0, // #0 = $src1
/*74073*/   OPC_Scope, 53, /*->74128*/ // 2 children in Scope
/*74075*/     OPC_MoveChild, 1,
/*74077*/     OPC_CheckInteger, 1, 
/*74079*/     OPC_CheckType, MVT::i8,
/*74081*/     OPC_MoveParent,
/*74082*/     OPC_SwitchType /*4 cases */, 9,  MVT::i8,// ->74094
/*74085*/       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,// ->74105
/*74096*/       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,// ->74116
/*74107*/       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,// ->74127
/*74118*/       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
/*74128*/   /*Scope*/ 3|128,1/*131*/, /*->74261*/
/*74130*/     OPC_RecordChild1, // #1 = $src2
/*74131*/     OPC_Scope, 66, /*->74199*/ // 2 children in Scope
/*74133*/       OPC_MoveChild, 1,
/*74135*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*74138*/       OPC_CheckType, MVT::i8,
/*74140*/       OPC_MoveParent,
/*74141*/       OPC_SwitchType /*4 cases */, 12,  MVT::i8,// ->74156
/*74144*/         OPC_EmitConvertToTarget, 1,
/*74146*/         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,// ->74170
/*74158*/         OPC_EmitConvertToTarget, 1,
/*74160*/         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,// ->74184
/*74172*/         OPC_EmitConvertToTarget, 1,
/*74174*/         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,// ->74198
/*74186*/         OPC_EmitConvertToTarget, 1,
/*74188*/         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
/*74199*/     /*Scope*/ 60, /*->74260*/
/*74200*/       OPC_CheckChild1Type, MVT::i8,
/*74202*/       OPC_SwitchType /*4 cases */, 12,  MVT::i8,// ->74217
/*74205*/         OPC_EmitCopyToReg, 1, X86::CL,
/*74208*/         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,// ->74231
/*74219*/         OPC_EmitCopyToReg, 1, X86::CL,
/*74222*/         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,// ->74245
/*74233*/         OPC_EmitCopyToReg, 1, X86::CL,
/*74236*/         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,// ->74259
/*74247*/         OPC_EmitCopyToReg, 1, X86::CL,
/*74250*/         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
/*74260*/     0, /*End of Scope*/
/*74261*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 62|128,1/*190*/,  TARGET_VAL(ISD::ROTR),// ->74456
/*74266*/   OPC_RecordChild0, // #0 = $src1
/*74267*/   OPC_Scope, 53, /*->74322*/ // 2 children in Scope
/*74269*/     OPC_MoveChild, 1,
/*74271*/     OPC_CheckInteger, 1, 
/*74273*/     OPC_CheckType, MVT::i8,
/*74275*/     OPC_MoveParent,
/*74276*/     OPC_SwitchType /*4 cases */, 9,  MVT::i8,// ->74288
/*74279*/       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,// ->74299
/*74290*/       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,// ->74310
/*74301*/       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,// ->74321
/*74312*/       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
/*74322*/   /*Scope*/ 3|128,1/*131*/, /*->74455*/
/*74324*/     OPC_RecordChild1, // #1 = $src2
/*74325*/     OPC_Scope, 66, /*->74393*/ // 2 children in Scope
/*74327*/       OPC_MoveChild, 1,
/*74329*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*74332*/       OPC_CheckType, MVT::i8,
/*74334*/       OPC_MoveParent,
/*74335*/       OPC_SwitchType /*4 cases */, 12,  MVT::i8,// ->74350
/*74338*/         OPC_EmitConvertToTarget, 1,
/*74340*/         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,// ->74364
/*74352*/         OPC_EmitConvertToTarget, 1,
/*74354*/         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,// ->74378
/*74366*/         OPC_EmitConvertToTarget, 1,
/*74368*/         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,// ->74392
/*74380*/         OPC_EmitConvertToTarget, 1,
/*74382*/         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
/*74393*/     /*Scope*/ 60, /*->74454*/
/*74394*/       OPC_CheckChild1Type, MVT::i8,
/*74396*/       OPC_SwitchType /*4 cases */, 12,  MVT::i8,// ->74411
/*74399*/         OPC_EmitCopyToReg, 1, X86::CL,
/*74402*/         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,// ->74425
/*74413*/         OPC_EmitCopyToReg, 1, X86::CL,
/*74416*/         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,// ->74439
/*74427*/         OPC_EmitCopyToReg, 1, X86::CL,
/*74430*/         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,// ->74453
/*74441*/         OPC_EmitCopyToReg, 1, X86::CL,
/*74444*/         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
/*74454*/     0, /*End of Scope*/
/*74455*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 60,  TARGET_VAL(X86ISD::SETCC_CARRY),// ->74519
/*74459*/   OPC_MoveChild, 0,
/*74461*/   OPC_CheckInteger, 2, 
/*74463*/   OPC_MoveParent,
/*74464*/   OPC_RecordChild1, // #0 = physreg input EFLAGS
/*74465*/   OPC_SwitchType /*4 cases */, 11,  MVT::i8,// ->74479
/*74468*/     OPC_EmitCopyToReg, 0, X86::EFLAGS,
/*74471*/     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,// ->74492
/*74481*/     OPC_EmitCopyToReg, 0, X86::EFLAGS,
/*74484*/     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,// ->74505
/*74494*/     OPC_EmitCopyToReg, 0, X86::EFLAGS,
/*74497*/     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,// ->74518
/*74507*/     OPC_EmitCopyToReg, 0, X86::EFLAGS,
/*74510*/     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),// ->74633
/*74522*/   OPC_RecordChild0, // #0 = $src1
/*74523*/   OPC_RecordChild1, // #1 = $src2
/*74524*/   OPC_RecordChild2, // #2 = $src3
/*74525*/   OPC_Scope, 55, /*->74582*/ // 2 children in Scope
/*74527*/     OPC_MoveChild, 2,
/*74529*/     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*74532*/     OPC_CheckType, MVT::i8,
/*74534*/     OPC_MoveParent,
/*74535*/     OPC_SwitchType /*3 cases */, 13,  MVT::i16,// ->74551
/*74538*/       OPC_EmitConvertToTarget, 2,
/*74540*/       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,// ->74566
/*74553*/       OPC_EmitConvertToTarget, 2,
/*74555*/       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,// ->74581
/*74568*/       OPC_EmitConvertToTarget, 2,
/*74570*/       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
/*74582*/   /*Scope*/ 49, /*->74632*/
/*74583*/     OPC_CheckChild2Type, MVT::i8,
/*74585*/     OPC_SwitchType /*3 cases */, 13,  MVT::i16,// ->74601
/*74588*/       OPC_EmitCopyToReg, 2, X86::CL,
/*74591*/       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,// ->74616
/*74603*/       OPC_EmitCopyToReg, 2, X86::CL,
/*74606*/       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,// ->74631
/*74618*/       OPC_EmitCopyToReg, 2, X86::CL,
/*74621*/       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
/*74632*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 111,  TARGET_VAL(X86ISD::SHRD),// ->74747
/*74636*/   OPC_RecordChild0, // #0 = $src1
/*74637*/   OPC_RecordChild1, // #1 = $src2
/*74638*/   OPC_RecordChild2, // #2 = $src3
/*74639*/   OPC_Scope, 55, /*->74696*/ // 2 children in Scope
/*74641*/     OPC_MoveChild, 2,
/*74643*/     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*74646*/     OPC_CheckType, MVT::i8,
/*74648*/     OPC_MoveParent,
/*74649*/     OPC_SwitchType /*3 cases */, 13,  MVT::i16,// ->74665
/*74652*/       OPC_EmitConvertToTarget, 2,
/*74654*/       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,// ->74680
/*74667*/       OPC_EmitConvertToTarget, 2,
/*74669*/       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,// ->74695
/*74682*/       OPC_EmitConvertToTarget, 2,
/*74684*/       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
/*74696*/   /*Scope*/ 49, /*->74746*/
/*74697*/     OPC_CheckChild2Type, MVT::i8,
/*74699*/     OPC_SwitchType /*3 cases */, 13,  MVT::i16,// ->74715
/*74702*/       OPC_EmitCopyToReg, 2, X86::CL,
/*74705*/       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,// ->74730
/*74717*/       OPC_EmitCopyToReg, 2, X86::CL,
/*74720*/       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,// ->74745
/*74732*/       OPC_EmitCopyToReg, 2, X86::CL,
/*74735*/       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
/*74746*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 40,  TARGET_VAL(X86ISD::PEXTRW),// ->74790
/*74750*/   OPC_RecordChild0, // #0 = $src1
/*74751*/   OPC_CheckChild0Type, MVT::v8i16,
/*74753*/   OPC_RecordChild1, // #1 = $src2
/*74754*/   OPC_MoveChild, 1,
/*74756*/   OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*74759*/   OPC_MoveParent,
/*74760*/   OPC_Scope, 13, /*->74775*/ // 2 children in Scope
/*74762*/     OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*74764*/     OPC_EmitConvertToTarget, 1,
/*74766*/     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)
/*74775*/   /*Scope*/ 13, /*->74789*/
/*74776*/     OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*74778*/     OPC_EmitConvertToTarget, 1,
/*74780*/     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)
/*74789*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 40,  TARGET_VAL(X86ISD::PEXTRB),// ->74833
/*74793*/   OPC_RecordChild0, // #0 = $src1
/*74794*/   OPC_CheckChild0Type, MVT::v16i8,
/*74796*/   OPC_RecordChild1, // #1 = $src2
/*74797*/   OPC_MoveChild, 1,
/*74799*/   OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*74802*/   OPC_MoveParent,
/*74803*/   OPC_Scope, 13, /*->74818*/ // 2 children in Scope
/*74805*/     OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*74807*/     OPC_EmitConvertToTarget, 1,
/*74809*/     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)
/*74818*/   /*Scope*/ 13, /*->74832*/
/*74819*/     OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*74821*/     OPC_EmitConvertToTarget, 1,
/*74823*/     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)
/*74832*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 34,  TARGET_VAL(ISD::CALLSEQ_START),// ->74870
/*74836*/   OPC_RecordNode,   // #0 = 'X86callseq_start' chained node
/*74837*/   OPC_RecordChild1, // #1 = $amt
/*74838*/   OPC_MoveChild, 1,
/*74840*/   OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*74843*/   OPC_MoveParent,
/*74844*/   OPC_Scope, 11, /*->74857*/ // 2 children in Scope
/*74846*/     OPC_CheckPatternPredicate, 3, // (!Subtarget->is64Bit())
/*74848*/     OPC_EmitMergeInputChains1_0,
/*74849*/     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)
/*74857*/   /*Scope*/ 11, /*->74869*/
/*74858*/     OPC_CheckPatternPredicate, 4, // (Subtarget->is64Bit())
/*74860*/     OPC_EmitMergeInputChains1_0,
/*74861*/     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)
/*74869*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 0|128,1/*128*/,  TARGET_VAL(ISD::Constant),// ->75002
/*74874*/   OPC_Scope, 44, /*->74920*/ // 2 children in Scope
/*74876*/     OPC_CheckInteger, 0, 
/*74878*/     OPC_SwitchType /*4 cases */, 8,  MVT::i64,// ->74889
/*74881*/       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,// ->74899
/*74891*/       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,// ->74909
/*74901*/       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,// ->74919
/*74911*/       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
/*74920*/   /*Scope*/ 80, /*->75001*/
/*74921*/     OPC_RecordNode, // #0 = $src
/*74922*/     OPC_SwitchType /*4 cases */, 39,  MVT::i64,// ->74964
/*74925*/       OPC_Scope, 12, /*->74939*/ // 3 children in Scope
/*74927*/         OPC_CheckPredicate, 27, // Predicate_i64immZExt32
/*74929*/         OPC_EmitConvertToTarget, 0,
/*74931*/         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)
/*74939*/       /*Scope*/ 12, /*->74952*/
/*74940*/         OPC_CheckPredicate, 11, // Predicate_i64immSExt32
/*74942*/         OPC_EmitConvertToTarget, 0,
/*74944*/         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)
/*74952*/       /*Scope*/ 10, /*->74963*/
/*74953*/         OPC_EmitConvertToTarget, 0,
/*74955*/         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)
/*74963*/       0, /*End of Scope*/
              /*SwitchType*/ 10,  MVT::i8,// ->74976
/*74966*/       OPC_EmitConvertToTarget, 0,
/*74968*/       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,// ->74988
/*74978*/       OPC_EmitConvertToTarget, 0,
/*74980*/       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,// ->75000
/*74990*/       OPC_EmitConvertToTarget, 0,
/*74992*/       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
/*75001*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 40|128,2/*296*/,  TARGET_VAL(X86ISD::Wrapper),// ->75302
/*75006*/   OPC_RecordChild0, // #0 = $dst
/*75007*/   OPC_MoveChild, 0,
/*75009*/   OPC_SwitchOpcode /*6 cases */, 50,  TARGET_VAL(ISD::TargetConstantPool),// ->75063
/*75013*/     OPC_MoveParent,
/*75014*/     OPC_SwitchType /*2 cases */, 8,  MVT::i32,// ->75025
/*75017*/       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,// ->75062
/*75027*/       OPC_Scope, 10, /*->75039*/ // 3 children in Scope
/*75029*/         OPC_CheckPatternPredicate, 36, // (TM.getCodeModel() != CodeModel::Small &&TM.getCodeModel() != CodeModel::Kernel)
/*75031*/         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)
/*75039*/       /*Scope*/ 10, /*->75050*/
/*75040*/         OPC_CheckPatternPredicate, 37, // (TM.getCodeModel() == CodeModel::Small)
/*75042*/         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)
/*75050*/       /*Scope*/ 10, /*->75061*/
/*75051*/         OPC_CheckPatternPredicate, 38, // (TM.getCodeModel() == CodeModel::Kernel)
/*75053*/         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)
/*75061*/       0, /*End of Scope*/
              0, // EndSwitchType
            /*SwitchOpcode*/ 50,  TARGET_VAL(ISD::TargetJumpTable),// ->75116
/*75066*/     OPC_MoveParent,
/*75067*/     OPC_SwitchType /*2 cases */, 8,  MVT::i32,// ->75078
/*75070*/       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,// ->75115
/*75080*/       OPC_Scope, 10, /*->75092*/ // 3 children in Scope
/*75082*/         OPC_CheckPatternPredicate, 36, // (TM.getCodeModel() != CodeModel::Small &&TM.getCodeModel() != CodeModel::Kernel)
/*75084*/         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)
/*75092*/       /*Scope*/ 10, /*->75103*/
/*75093*/         OPC_CheckPatternPredicate, 37, // (TM.getCodeModel() == CodeModel::Small)
/*75095*/         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)
/*75103*/       /*Scope*/ 10, /*->75114*/
/*75104*/         OPC_CheckPatternPredicate, 38, // (TM.getCodeModel() == CodeModel::Kernel)
/*75106*/         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)
/*75114*/       0, /*End of Scope*/
              0, // EndSwitchType
            /*SwitchOpcode*/ 23,  TARGET_VAL(ISD::TargetGlobalTLSAddress),// ->75142
/*75119*/     OPC_MoveParent,
/*75120*/     OPC_SwitchType /*2 cases */, 8,  MVT::i32,// ->75131
/*75123*/       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,// ->75141
/*75133*/       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),// ->75195
/*75145*/     OPC_MoveParent,
/*75146*/     OPC_SwitchType /*2 cases */, 8,  MVT::i32,// ->75157
/*75149*/       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,// ->75194
/*75159*/       OPC_Scope, 10, /*->75171*/ // 3 children in Scope
/*75161*/         OPC_CheckPatternPredicate, 36, // (TM.getCodeModel() != CodeModel::Small &&TM.getCodeModel() != CodeModel::Kernel)
/*75163*/         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)
/*75171*/       /*Scope*/ 10, /*->75182*/
/*75172*/         OPC_CheckPatternPredicate, 37, // (TM.getCodeModel() == CodeModel::Small)
/*75174*/         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)
/*75182*/       /*Scope*/ 10, /*->75193*/
/*75183*/         OPC_CheckPatternPredicate, 38, // (TM.getCodeModel() == CodeModel::Kernel)
/*75185*/         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)
/*75193*/       0, /*End of Scope*/
              0, // EndSwitchType
            /*SwitchOpcode*/ 50,  TARGET_VAL(ISD::TargetExternalSymbol),// ->75248
/*75198*/     OPC_MoveParent,
/*75199*/     OPC_SwitchType /*2 cases */, 8,  MVT::i32,// ->75210
/*75202*/       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,// ->75247
/*75212*/       OPC_Scope, 10, /*->75224*/ // 3 children in Scope
/*75214*/         OPC_CheckPatternPredicate, 36, // (TM.getCodeModel() != CodeModel::Small &&TM.getCodeModel() != CodeModel::Kernel)
/*75216*/         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)
/*75224*/       /*Scope*/ 10, /*->75235*/
/*75225*/         OPC_CheckPatternPredicate, 37, // (TM.getCodeModel() == CodeModel::Small)
/*75227*/         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)
/*75235*/       /*Scope*/ 10, /*->75246*/
/*75236*/         OPC_CheckPatternPredicate, 38, // (TM.getCodeModel() == CodeModel::Kernel)
/*75238*/         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)
/*75246*/       0, /*End of Scope*/
              0, // EndSwitchType
            /*SwitchOpcode*/ 50,  TARGET_VAL(ISD::TargetBlockAddress),// ->75301
/*75251*/     OPC_MoveParent,
/*75252*/     OPC_SwitchType /*2 cases */, 8,  MVT::i32,// ->75263
/*75255*/       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,// ->75300
/*75265*/       OPC_Scope, 10, /*->75277*/ // 3 children in Scope
/*75267*/         OPC_CheckPatternPredicate, 36, // (TM.getCodeModel() != CodeModel::Small &&TM.getCodeModel() != CodeModel::Kernel)
/*75269*/         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)
/*75277*/       /*Scope*/ 10, /*->75288*/
/*75278*/         OPC_CheckPatternPredicate, 37, // (TM.getCodeModel() == CodeModel::Small)
/*75280*/         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)
/*75288*/       /*Scope*/ 10, /*->75299*/
/*75289*/         OPC_CheckPatternPredicate, 38, // (TM.getCodeModel() == CodeModel::Kernel)
/*75291*/         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)
/*75299*/       0, /*End of Scope*/
              0, // EndSwitchType
            0, // EndSwitchOpcode
          /*SwitchOpcode*/ 89,  TARGET_VAL(X86ISD::INC),// ->75394
/*75305*/   OPC_RecordChild0, // #0 = $src1
/*75306*/   OPC_SwitchType /*4 cases */, 28,  MVT::i16,// ->75337
/*75309*/     OPC_CheckChild0Type, MVT::i16,
/*75311*/     OPC_Scope, 11, /*->75324*/ // 2 children in Scope
/*75313*/       OPC_CheckPatternPredicate, 3, // (!Subtarget->is64Bit())
/*75315*/       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)
/*75324*/     /*Scope*/ 11, /*->75336*/
/*75325*/       OPC_CheckPatternPredicate, 4, // (Subtarget->is64Bit())
/*75327*/       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)
/*75336*/     0, /*End of Scope*/
            /*SwitchType*/ 28,  MVT::i32,// ->75367
/*75339*/     OPC_CheckChild0Type, MVT::i32,
/*75341*/     OPC_Scope, 11, /*->75354*/ // 2 children in Scope
/*75343*/       OPC_CheckPatternPredicate, 3, // (!Subtarget->is64Bit())
/*75345*/       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)
/*75354*/     /*Scope*/ 11, /*->75366*/
/*75355*/       OPC_CheckPatternPredicate, 4, // (Subtarget->is64Bit())
/*75357*/       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)
/*75366*/     0, /*End of Scope*/
            /*SwitchType*/ 11,  MVT::i64,// ->75380
/*75369*/     OPC_CheckChild0Type, MVT::i64,
/*75371*/     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,// ->75393
/*75382*/     OPC_CheckChild0Type, MVT::i8,
/*75384*/     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),// ->75486
/*75397*/   OPC_RecordChild0, // #0 = $src1
/*75398*/   OPC_SwitchType /*4 cases */, 28,  MVT::i16,// ->75429
/*75401*/     OPC_CheckChild0Type, MVT::i16,
/*75403*/     OPC_Scope, 11, /*->75416*/ // 2 children in Scope
/*75405*/       OPC_CheckPatternPredicate, 3, // (!Subtarget->is64Bit())
/*75407*/       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)
/*75416*/     /*Scope*/ 11, /*->75428*/
/*75417*/       OPC_CheckPatternPredicate, 4, // (Subtarget->is64Bit())
/*75419*/       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)
/*75428*/     0, /*End of Scope*/
            /*SwitchType*/ 28,  MVT::i32,// ->75459
/*75431*/     OPC_CheckChild0Type, MVT::i32,
/*75433*/     OPC_Scope, 11, /*->75446*/ // 2 children in Scope
/*75435*/       OPC_CheckPatternPredicate, 3, // (!Subtarget->is64Bit())
/*75437*/       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)
/*75446*/     /*Scope*/ 11, /*->75458*/
/*75447*/       OPC_CheckPatternPredicate, 4, // (Subtarget->is64Bit())
/*75449*/       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)
/*75458*/     0, /*End of Scope*/
            /*SwitchType*/ 11,  MVT::i64,// ->75472
/*75461*/     OPC_CheckChild0Type, MVT::i64,
/*75463*/     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,// ->75485
/*75474*/     OPC_CheckChild0Type, MVT::i8,
/*75476*/     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*/ 11,  TARGET_VAL(X86ISD::MMX_MOVD2W),// ->75500
/*75489*/   OPC_RecordChild0, // #0 = $src
/*75490*/   OPC_CheckPatternPredicate, 10, // (Subtarget->hasMMX())
/*75492*/   OPC_MorphNodeTo, TARGET_VAL(X86::MMX_MOVD64grr), 0,
                1/*#VTs*/, MVT::i32, 1/*#Ops*/, 0, 
            // Src: (MMX_X86movd2w:i32 VR64:x86mmx:$src) - Complexity = 3
            // Dst: (MMX_MOVD64grr:i32 VR64:x86mmx:$src)
          /*SwitchOpcode*/ 2|128,2/*258*/,  TARGET_VAL(ISD::SIGN_EXTEND_INREG),// ->75762
/*75504*/   OPC_RecordChild0, // #0 = $src
/*75505*/   OPC_MoveChild, 1,
/*75507*/   OPC_Scope, 49, /*->75558*/ // 3 children in Scope
/*75509*/     OPC_CheckValueType, MVT::i16,
/*75511*/     OPC_MoveParent,
/*75512*/     OPC_SwitchType /*2 cases */, 20,  MVT::i32,// ->75535
/*75515*/       OPC_EmitInteger, MVT::i32, X86::sub_16bit,
/*75518*/       OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                    1/*#VTs*/, MVT::i16, 2/*#Ops*/, 0, 1,  // Results = #2 
/*75527*/       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,// ->75557
/*75537*/       OPC_EmitInteger, MVT::i32, X86::sub_16bit,
/*75540*/       OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                    1/*#VTs*/, MVT::i16, 2/*#Ops*/, 0, 1,  // Results = #2 
/*75549*/       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
/*75558*/   /*Scope*/ 25, /*->75584*/
/*75559*/     OPC_CheckValueType, MVT::i32,
/*75561*/     OPC_MoveParent,
/*75562*/     OPC_CheckType, MVT::i64,
/*75564*/     OPC_EmitInteger, MVT::i32, X86::sub_32bit,
/*75567*/     OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                  1/*#VTs*/, MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2 
/*75576*/     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))
/*75584*/   /*Scope*/ 47|128,1/*175*/, /*->75761*/
/*75586*/     OPC_CheckValueType, MVT::i8,
/*75588*/     OPC_MoveParent,
/*75589*/     OPC_SwitchType /*3 cases */, 20,  MVT::i64,// ->75612
/*75592*/       OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*75595*/       OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                    1/*#VTs*/, MVT::i8, 2/*#Ops*/, 0, 1,  // Results = #2 
/*75604*/       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,// ->75674
/*75614*/       OPC_Scope, 22, /*->75638*/ // 2 children in Scope
/*75616*/         OPC_CheckPatternPredicate, 4, // (Subtarget->is64Bit())
/*75618*/         OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*75621*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      1/*#VTs*/, MVT::i8, 2/*#Ops*/, 0, 1,  // Results = #2 
/*75630*/         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))
/*75638*/       /*Scope*/ 34, /*->75673*/
/*75639*/         OPC_CheckPatternPredicate, 3, // (!Subtarget->is64Bit())
/*75641*/         OPC_EmitInteger, MVT::i32, X86::GR32_ABCDRegClassID,
/*75644*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      1/*#VTs*/, MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2 
/*75653*/         OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*75656*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      1/*#VTs*/, MVT::i8, 2/*#Ops*/, 2, 3,  // Results = #4 
/*75665*/         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))
/*75673*/       0, /*End of Scope*/
              /*SwitchType*/ 84,  MVT::i16,// ->75760
/*75676*/       OPC_Scope, 34, /*->75712*/ // 2 children in Scope
/*75678*/         OPC_CheckPatternPredicate, 4, // (Subtarget->is64Bit())
/*75680*/         OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*75683*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      1/*#VTs*/, MVT::i8, 2/*#Ops*/, 0, 1,  // Results = #2 
/*75692*/         OPC_EmitNode, TARGET_VAL(X86::MOVSX32rr8), 0,
                      1/*#VTs*/, MVT::i32, 1/*#Ops*/, 2,  // Results = #3 
/*75700*/         OPC_EmitInteger, MVT::i32, X86::sub_16bit,
/*75703*/         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)
/*75712*/       /*Scope*/ 46, /*->75759*/
/*75713*/         OPC_CheckPatternPredicate, 3, // (!Subtarget->is64Bit())
/*75715*/         OPC_EmitInteger, MVT::i32, X86::GR16_ABCDRegClassID,
/*75718*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      1/*#VTs*/, MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2 
/*75727*/         OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*75730*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      1/*#VTs*/, MVT::i8, 2/*#Ops*/, 2, 3,  // Results = #4 
/*75739*/         OPC_EmitNode, TARGET_VAL(X86::MOVSX32rr8), 0,
                      1/*#VTs*/, MVT::i32, 1/*#Ops*/, 4,  // Results = #5 
/*75747*/         OPC_EmitInteger, MVT::i32, X86::sub_16bit,
/*75750*/         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)
/*75759*/       0, /*End of Scope*/
              0, // EndSwitchType
/*75761*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 23|128,2/*279*/,  TARGET_VAL(X86ISD::FGETSIGNx86),// ->76045
/*75766*/   OPC_RecordChild0, // #0 = $src
/*75767*/   OPC_Scope, 8|128,1/*136*/, /*->75906*/ // 2 children in Scope
/*75770*/     OPC_CheckChild0Type, MVT::f32,
/*75772*/     OPC_SwitchType /*2 cases */, 64,  MVT::i32,// ->75839
/*75775*/       OPC_Scope, 30, /*->75807*/ // 2 children in Scope
/*75777*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*75779*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      1/*#VTs*/, MVT::v4f32, 0/*#Ops*/,  // Results = #1 
/*75786*/         OPC_EmitInteger, MVT::i32, X86::sub_ss,
/*75789*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      1/*#VTs*/, MVT::v4f32, 3/*#Ops*/, 1, 0, 2,  // Results = #3 
/*75799*/         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))
/*75807*/       /*Scope*/ 30, /*->75838*/
/*75808*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*75810*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      1/*#VTs*/, MVT::v4f32, 0/*#Ops*/,  // Results = #1 
/*75817*/         OPC_EmitInteger, MVT::i32, X86::sub_ss,
/*75820*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      1/*#VTs*/, MVT::v4f32, 3/*#Ops*/, 1, 0, 2,  // Results = #3 
/*75830*/         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))
/*75838*/       0, /*End of Scope*/
              /*SwitchType*/ 64,  MVT::i64,// ->75905
/*75841*/       OPC_Scope, 30, /*->75873*/ // 2 children in Scope
/*75843*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*75845*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      1/*#VTs*/, MVT::v4f32, 0/*#Ops*/,  // Results = #1 
/*75852*/         OPC_EmitInteger, MVT::i32, X86::sub_ss,
/*75855*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      1/*#VTs*/, MVT::v4f32, 3/*#Ops*/, 1, 0, 2,  // Results = #3 
/*75865*/         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))
/*75873*/       /*Scope*/ 30, /*->75904*/
/*75874*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*75876*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      1/*#VTs*/, MVT::v4f32, 0/*#Ops*/,  // Results = #1 
/*75883*/         OPC_EmitInteger, MVT::i32, X86::sub_ss,
/*75886*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      1/*#VTs*/, MVT::v4f32, 3/*#Ops*/, 1, 0, 2,  // Results = #3 
/*75896*/         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))
/*75904*/       0, /*End of Scope*/
              0, // EndSwitchType
/*75906*/   /*Scope*/ 8|128,1/*136*/, /*->76044*/
/*75908*/     OPC_CheckChild0Type, MVT::f64,
/*75910*/     OPC_SwitchType /*2 cases */, 64,  MVT::i32,// ->75977
/*75913*/       OPC_Scope, 30, /*->75945*/ // 2 children in Scope
/*75915*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*75917*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      1/*#VTs*/, MVT::v2f64, 0/*#Ops*/,  // Results = #1 
/*75924*/         OPC_EmitInteger, MVT::i32, X86::sub_sd,
/*75927*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      1/*#VTs*/, MVT::v2f64, 3/*#Ops*/, 1, 0, 2,  // Results = #3 
/*75937*/         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))
/*75945*/       /*Scope*/ 30, /*->75976*/
/*75946*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*75948*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      1/*#VTs*/, MVT::v2f64, 0/*#Ops*/,  // Results = #1 
/*75955*/         OPC_EmitInteger, MVT::i32, X86::sub_sd,
/*75958*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      1/*#VTs*/, MVT::v2f64, 3/*#Ops*/, 1, 0, 2,  // Results = #3 
/*75968*/         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))
/*75976*/       0, /*End of Scope*/
              /*SwitchType*/ 64,  MVT::i64,// ->76043
/*75979*/       OPC_Scope, 30, /*->76011*/ // 2 children in Scope
/*75981*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*75983*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      1/*#VTs*/, MVT::v2f64, 0/*#Ops*/,  // Results = #1 
/*75990*/         OPC_EmitInteger, MVT::i32, X86::sub_sd,
/*75993*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      1/*#VTs*/, MVT::v2f64, 3/*#Ops*/, 1, 0, 2,  // Results = #3 
/*76003*/         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))
/*76011*/       /*Scope*/ 30, /*->76042*/
/*76012*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*76014*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      1/*#VTs*/, MVT::v2f64, 0/*#Ops*/,  // Results = #1 
/*76021*/         OPC_EmitInteger, MVT::i32, X86::sub_sd,
/*76024*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      1/*#VTs*/, MVT::v2f64, 3/*#Ops*/, 1, 0, 2,  // Results = #3 
/*76034*/         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))
/*76042*/       0, /*End of Scope*/
              0, // EndSwitchType
/*76044*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 36,  TARGET_VAL(X86ISD::SEG_ALLOCA),// ->76084
/*76048*/   OPC_RecordNode,   // #0 = 'X86SegAlloca' chained node
/*76049*/   OPC_RecordChild1, // #1 = $size
/*76050*/   OPC_SwitchType /*2 cases */, 14,  MVT::i32,// ->76067
/*76053*/     OPC_CheckChild1Type, MVT::i32,
/*76055*/     OPC_CheckPatternPredicate, 3, // (!Subtarget->is64Bit())
/*76057*/     OPC_EmitMergeInputChains1_0,
/*76058*/     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,// ->76083
/*76069*/     OPC_CheckChild1Type, MVT::i64,
/*76071*/     OPC_CheckPatternPredicate, 4, // (Subtarget->is64Bit())
/*76073*/     OPC_EmitMergeInputChains1_0,
/*76074*/     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),// ->76203
/*76087*/   OPC_RecordChild0, // #0 = $src1
/*76088*/   OPC_CheckChild0Type, MVT::f32,
/*76090*/   OPC_Scope, 69, /*->76161*/ // 2 children in Scope
/*76092*/     OPC_MoveChild, 1,
/*76094*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*76097*/     OPC_RecordMemRef,
/*76098*/     OPC_RecordNode, // #1 = 'ld' chained node
/*76099*/     OPC_CheckFoldableChainNode,
/*76100*/     OPC_RecordChild1, // #2 = $src2
/*76101*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*76103*/     OPC_CheckPredicate, 3, // Predicate_load
/*76105*/     OPC_MoveParent,
/*76106*/     OPC_RecordChild2, // #3 = $cc
/*76107*/     OPC_MoveChild, 2,
/*76109*/     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*76112*/     OPC_MoveParent,
/*76113*/     OPC_Scope, 22, /*->76137*/ // 2 children in Scope
/*76115*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*76117*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*76120*/       OPC_EmitMergeInputChains1_1,
/*76121*/       OPC_EmitConvertToTarget, 3,
/*76123*/       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)
/*76137*/     /*Scope*/ 22, /*->76160*/
/*76138*/       OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*76140*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*76143*/       OPC_EmitMergeInputChains1_1,
/*76144*/       OPC_EmitConvertToTarget, 3,
/*76146*/       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)
/*76160*/     0, /*End of Scope*/
/*76161*/   /*Scope*/ 40, /*->76202*/
/*76162*/     OPC_RecordChild1, // #1 = $src2
/*76163*/     OPC_RecordChild2, // #2 = $cc
/*76164*/     OPC_MoveChild, 2,
/*76166*/     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*76169*/     OPC_MoveParent,
/*76170*/     OPC_Scope, 14, /*->76186*/ // 2 children in Scope
/*76172*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*76174*/       OPC_EmitConvertToTarget, 2,
/*76176*/       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)
/*76186*/     /*Scope*/ 14, /*->76201*/
/*76187*/       OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*76189*/       OPC_EmitConvertToTarget, 2,
/*76191*/       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)
/*76201*/     0, /*End of Scope*/
/*76202*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 116,  TARGET_VAL(X86ISD::FSETCCsd),// ->76322
/*76206*/   OPC_RecordChild0, // #0 = $src1
/*76207*/   OPC_CheckChild0Type, MVT::f64,
/*76209*/   OPC_Scope, 69, /*->76280*/ // 2 children in Scope
/*76211*/     OPC_MoveChild, 1,
/*76213*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*76216*/     OPC_RecordMemRef,
/*76217*/     OPC_RecordNode, // #1 = 'ld' chained node
/*76218*/     OPC_CheckFoldableChainNode,
/*76219*/     OPC_RecordChild1, // #2 = $src2
/*76220*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*76222*/     OPC_CheckPredicate, 3, // Predicate_load
/*76224*/     OPC_MoveParent,
/*76225*/     OPC_RecordChild2, // #3 = $cc
/*76226*/     OPC_MoveChild, 2,
/*76228*/     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*76231*/     OPC_MoveParent,
/*76232*/     OPC_Scope, 22, /*->76256*/ // 2 children in Scope
/*76234*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*76236*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*76239*/       OPC_EmitMergeInputChains1_1,
/*76240*/       OPC_EmitConvertToTarget, 3,
/*76242*/       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)
/*76256*/     /*Scope*/ 22, /*->76279*/
/*76257*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*76259*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*76262*/       OPC_EmitMergeInputChains1_1,
/*76263*/       OPC_EmitConvertToTarget, 3,
/*76265*/       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)
/*76279*/     0, /*End of Scope*/
/*76280*/   /*Scope*/ 40, /*->76321*/
/*76281*/     OPC_RecordChild1, // #1 = $src2
/*76282*/     OPC_RecordChild2, // #2 = $cc
/*76283*/     OPC_MoveChild, 2,
/*76285*/     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*76288*/     OPC_MoveParent,
/*76289*/     OPC_Scope, 14, /*->76305*/ // 2 children in Scope
/*76291*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*76293*/       OPC_EmitConvertToTarget, 2,
/*76295*/       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)
/*76305*/     /*Scope*/ 14, /*->76320*/
/*76306*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*76308*/       OPC_EmitConvertToTarget, 2,
/*76310*/       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)
/*76320*/     0, /*End of Scope*/
/*76321*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 5|128,10/*1285*/,  TARGET_VAL(ISD::FADD),// ->77611
/*76326*/   OPC_Scope, 8|128,1/*136*/, /*->76465*/ // 9 children in Scope
/*76329*/     OPC_RecordChild0, // #0 = $src1
/*76330*/     OPC_MoveChild, 1,
/*76332*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*76335*/     OPC_RecordMemRef,
/*76336*/     OPC_RecordNode, // #1 = 'ld' chained node
/*76337*/     OPC_CheckFoldableChainNode,
/*76338*/     OPC_RecordChild1, // #2 = $src2
/*76339*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*76341*/     OPC_Scope, 47, /*->76390*/ // 2 children in Scope
/*76343*/       OPC_CheckPredicate, 3, // Predicate_load
/*76345*/       OPC_MoveParent,
/*76346*/       OPC_SwitchType /*2 cases */, 19,  MVT::f32,// ->76368
/*76349*/         OPC_CheckPatternPredicate, 8, // (!Subtarget->hasXMM())
/*76351*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*76354*/         OPC_EmitMergeInputChains1_1,
/*76355*/         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,// ->76389
/*76370*/         OPC_CheckPatternPredicate, 9, // (!Subtarget->hasXMMInt())
/*76372*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*76375*/         OPC_EmitMergeInputChains1_1,
/*76376*/         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
/*76390*/     /*Scope*/ 73, /*->76464*/
/*76391*/       OPC_CheckPredicate, 37, // Predicate_extload
/*76393*/       OPC_Scope, 45, /*->76440*/ // 2 children in Scope
/*76395*/         OPC_CheckPredicate, 42, // Predicate_extloadf32
/*76397*/         OPC_MoveParent,
/*76398*/         OPC_SwitchType /*2 cases */, 19,  MVT::f64,// ->76420
/*76401*/           OPC_CheckPatternPredicate, 9, // (!Subtarget->hasXMMInt())
/*76403*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*76406*/           OPC_EmitMergeInputChains1_1,
/*76407*/           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,// ->76439
/*76422*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*76425*/           OPC_EmitMergeInputChains1_1,
/*76426*/           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
/*76440*/       /*Scope*/ 22, /*->76463*/
/*76441*/         OPC_CheckPredicate, 43, // Predicate_extloadf64
/*76443*/         OPC_MoveParent,
/*76444*/         OPC_CheckType, MVT::f80,
/*76446*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*76449*/         OPC_EmitMergeInputChains1_1,
/*76450*/         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)
/*76463*/       0, /*End of Scope*/
/*76464*/     0, /*End of Scope*/
/*76465*/   /*Scope*/ 10|128,1/*138*/, /*->76605*/
/*76467*/     OPC_MoveChild, 0,
/*76469*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*76472*/     OPC_RecordMemRef,
/*76473*/     OPC_RecordNode, // #0 = 'ld' chained node
/*76474*/     OPC_CheckFoldableChainNode,
/*76475*/     OPC_RecordChild1, // #1 = $src2
/*76476*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*76478*/     OPC_Scope, 48, /*->76528*/ // 2 children in Scope
/*76480*/       OPC_CheckPredicate, 3, // Predicate_load
/*76482*/       OPC_MoveParent,
/*76483*/       OPC_RecordChild1, // #2 = $src1
/*76484*/       OPC_SwitchType /*2 cases */, 19,  MVT::f32,// ->76506
/*76487*/         OPC_CheckPatternPredicate, 8, // (!Subtarget->hasXMM())
/*76489*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*76492*/         OPC_EmitMergeInputChains1_0,
/*76493*/         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,// ->76527
/*76508*/         OPC_CheckPatternPredicate, 9, // (!Subtarget->hasXMMInt())
/*76510*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*76513*/         OPC_EmitMergeInputChains1_0,
/*76514*/         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
/*76528*/     /*Scope*/ 75, /*->76604*/
/*76529*/       OPC_CheckPredicate, 37, // Predicate_extload
/*76531*/       OPC_Scope, 46, /*->76579*/ // 2 children in Scope
/*76533*/         OPC_CheckPredicate, 42, // Predicate_extloadf32
/*76535*/         OPC_MoveParent,
/*76536*/         OPC_RecordChild1, // #2 = $src1
/*76537*/         OPC_SwitchType /*2 cases */, 19,  MVT::f64,// ->76559
/*76540*/           OPC_CheckPatternPredicate, 9, // (!Subtarget->hasXMMInt())
/*76542*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*76545*/           OPC_EmitMergeInputChains1_0,
/*76546*/           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,// ->76578
/*76561*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*76564*/           OPC_EmitMergeInputChains1_0,
/*76565*/           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
/*76579*/       /*Scope*/ 23, /*->76603*/
/*76580*/         OPC_CheckPredicate, 43, // Predicate_extloadf64
/*76582*/         OPC_MoveParent,
/*76583*/         OPC_RecordChild1, // #2 = $src1
/*76584*/         OPC_CheckType, MVT::f80,
/*76586*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*76589*/         OPC_EmitMergeInputChains1_0,
/*76590*/         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)
/*76603*/       0, /*End of Scope*/
/*76604*/     0, /*End of Scope*/
/*76605*/   /*Scope*/ 105, /*->76711*/
/*76606*/     OPC_RecordChild0, // #0 = $src1
/*76607*/     OPC_MoveChild, 1,
/*76609*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*76612*/     OPC_RecordMemRef,
/*76613*/     OPC_RecordNode, // #1 = 'ld' chained node
/*76614*/     OPC_CheckFoldableChainNode,
/*76615*/     OPC_RecordChild1, // #2 = $src2
/*76616*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*76618*/     OPC_CheckPredicate, 3, // Predicate_load
/*76620*/     OPC_MoveParent,
/*76621*/     OPC_SwitchType /*2 cases */, 42,  MVT::f32,// ->76666
/*76624*/       OPC_Scope, 19, /*->76645*/ // 2 children in Scope
/*76626*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*76628*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*76631*/         OPC_EmitMergeInputChains1_1,
/*76632*/         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)
/*76645*/       /*Scope*/ 19, /*->76665*/
/*76646*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*76648*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*76651*/         OPC_EmitMergeInputChains1_1,
/*76652*/         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)
/*76665*/       0, /*End of Scope*/
              /*SwitchType*/ 42,  MVT::f64,// ->76710
/*76668*/       OPC_Scope, 19, /*->76689*/ // 2 children in Scope
/*76670*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*76672*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*76675*/         OPC_EmitMergeInputChains1_1,
/*76676*/         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)
/*76689*/       /*Scope*/ 19, /*->76709*/
/*76690*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*76692*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*76695*/         OPC_EmitMergeInputChains1_1,
/*76696*/         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)
/*76709*/       0, /*End of Scope*/
              0, // EndSwitchType
/*76711*/   /*Scope*/ 105, /*->76817*/
/*76712*/     OPC_MoveChild, 0,
/*76714*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*76717*/     OPC_RecordMemRef,
/*76718*/     OPC_RecordNode, // #0 = 'ld' chained node
/*76719*/     OPC_CheckFoldableChainNode,
/*76720*/     OPC_RecordChild1, // #1 = $src2
/*76721*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*76723*/     OPC_CheckPredicate, 3, // Predicate_load
/*76725*/     OPC_MoveParent,
/*76726*/     OPC_RecordChild1, // #2 = $src1
/*76727*/     OPC_SwitchType /*2 cases */, 42,  MVT::f32,// ->76772
/*76730*/       OPC_Scope, 19, /*->76751*/ // 2 children in Scope
/*76732*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*76734*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*76737*/         OPC_EmitMergeInputChains1_0,
/*76738*/         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)
/*76751*/       /*Scope*/ 19, /*->76771*/
/*76752*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*76754*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*76757*/         OPC_EmitMergeInputChains1_0,
/*76758*/         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)
/*76771*/       0, /*End of Scope*/
              /*SwitchType*/ 42,  MVT::f64,// ->76816
/*76774*/       OPC_Scope, 19, /*->76795*/ // 2 children in Scope
/*76776*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*76778*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*76781*/         OPC_EmitMergeInputChains1_0,
/*76782*/         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)
/*76795*/       /*Scope*/ 19, /*->76815*/
/*76796*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*76798*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*76801*/         OPC_EmitMergeInputChains1_0,
/*76802*/         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)
/*76815*/       0, /*End of Scope*/
              0, // EndSwitchType
/*76817*/   /*Scope*/ 22|128,1/*150*/, /*->76969*/
/*76819*/     OPC_RecordChild0, // #0 = $src1
/*76820*/     OPC_MoveChild, 1,
/*76822*/     OPC_CheckOpcode, TARGET_VAL(X86ISD::FILD),
/*76825*/     OPC_RecordMemRef,
/*76826*/     OPC_RecordNode, // #1 = 'X86fild' chained node
/*76827*/     OPC_CheckFoldableChainNode,
/*76828*/     OPC_RecordChild1, // #2 = $src2
/*76829*/     OPC_MoveChild, 2,
/*76831*/     OPC_Scope, 67, /*->76900*/ // 2 children in Scope
/*76833*/       OPC_CheckValueType, MVT::i16,
/*76835*/       OPC_MoveParent,
/*76836*/       OPC_MoveParent,
/*76837*/       OPC_SwitchType /*3 cases */, 19,  MVT::f32,// ->76859
/*76840*/         OPC_CheckPatternPredicate, 8, // (!Subtarget->hasXMM())
/*76842*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*76845*/         OPC_EmitMergeInputChains1_1,
/*76846*/         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,// ->76880
/*76861*/         OPC_CheckPatternPredicate, 9, // (!Subtarget->hasXMMInt())
/*76863*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*76866*/         OPC_EmitMergeInputChains1_1,
/*76867*/         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,// ->76899
/*76882*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*76885*/         OPC_EmitMergeInputChains1_1,
/*76886*/         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
/*76900*/     /*Scope*/ 67, /*->76968*/
/*76901*/       OPC_CheckValueType, MVT::i32,
/*76903*/       OPC_MoveParent,
/*76904*/       OPC_MoveParent,
/*76905*/       OPC_SwitchType /*3 cases */, 19,  MVT::f32,// ->76927
/*76908*/         OPC_CheckPatternPredicate, 8, // (!Subtarget->hasXMM())
/*76910*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*76913*/         OPC_EmitMergeInputChains1_1,
/*76914*/         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,// ->76948
/*76929*/         OPC_CheckPatternPredicate, 9, // (!Subtarget->hasXMMInt())
/*76931*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*76934*/         OPC_EmitMergeInputChains1_1,
/*76935*/         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,// ->76967
/*76950*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*76953*/         OPC_EmitMergeInputChains1_1,
/*76954*/         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
/*76968*/     0, /*End of Scope*/
/*76969*/   /*Scope*/ 23|128,1/*151*/, /*->77122*/
/*76971*/     OPC_MoveChild, 0,
/*76973*/     OPC_CheckOpcode, TARGET_VAL(X86ISD::FILD),
/*76976*/     OPC_RecordMemRef,
/*76977*/     OPC_RecordNode, // #0 = 'X86fild' chained node
/*76978*/     OPC_CheckFoldableChainNode,
/*76979*/     OPC_RecordChild1, // #1 = $src2
/*76980*/     OPC_MoveChild, 2,
/*76982*/     OPC_Scope, 68, /*->77052*/ // 2 children in Scope
/*76984*/       OPC_CheckValueType, MVT::i16,
/*76986*/       OPC_MoveParent,
/*76987*/       OPC_MoveParent,
/*76988*/       OPC_RecordChild1, // #2 = $src1
/*76989*/       OPC_SwitchType /*3 cases */, 19,  MVT::f32,// ->77011
/*76992*/         OPC_CheckPatternPredicate, 8, // (!Subtarget->hasXMM())
/*76994*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*76997*/         OPC_EmitMergeInputChains1_0,
/*76998*/         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,// ->77032
/*77013*/         OPC_CheckPatternPredicate, 9, // (!Subtarget->hasXMMInt())
/*77015*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*77018*/         OPC_EmitMergeInputChains1_0,
/*77019*/         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,// ->77051
/*77034*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*77037*/         OPC_EmitMergeInputChains1_0,
/*77038*/         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
/*77052*/     /*Scope*/ 68, /*->77121*/
/*77053*/       OPC_CheckValueType, MVT::i32,
/*77055*/       OPC_MoveParent,
/*77056*/       OPC_MoveParent,
/*77057*/       OPC_RecordChild1, // #2 = $src1
/*77058*/       OPC_SwitchType /*3 cases */, 19,  MVT::f32,// ->77080
/*77061*/         OPC_CheckPatternPredicate, 8, // (!Subtarget->hasXMM())
/*77063*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*77066*/         OPC_EmitMergeInputChains1_0,
/*77067*/         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,// ->77101
/*77082*/         OPC_CheckPatternPredicate, 9, // (!Subtarget->hasXMMInt())
/*77084*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*77087*/         OPC_EmitMergeInputChains1_0,
/*77088*/         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,// ->77120
/*77103*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*77106*/         OPC_EmitMergeInputChains1_0,
/*77107*/         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
/*77121*/     0, /*End of Scope*/
/*77122*/   /*Scope*/ 120|128,1/*248*/, /*->77372*/
/*77124*/     OPC_RecordChild0, // #0 = $src1
/*77125*/     OPC_Scope, 94, /*->77221*/ // 2 children in Scope
/*77127*/       OPC_RecordChild1, // #1 = $src2
/*77128*/       OPC_SwitchType /*3 cases */, 38,  MVT::f32,// ->77169
/*77131*/         OPC_Scope, 11, /*->77144*/ // 3 children in Scope
/*77133*/           OPC_CheckPatternPredicate, 8, // (!Subtarget->hasXMM())
/*77135*/           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)
/*77144*/         /*Scope*/ 11, /*->77156*/
/*77145*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*77147*/           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)
/*77156*/         /*Scope*/ 11, /*->77168*/
/*77157*/           OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*77159*/           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)
/*77168*/         0, /*End of Scope*/
                /*SwitchType*/ 38,  MVT::f64,// ->77209
/*77171*/         OPC_Scope, 11, /*->77184*/ // 3 children in Scope
/*77173*/           OPC_CheckPatternPredicate, 9, // (!Subtarget->hasXMMInt())
/*77175*/           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)
/*77184*/         /*Scope*/ 11, /*->77196*/
/*77185*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*77187*/           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)
/*77196*/         /*Scope*/ 11, /*->77208*/
/*77197*/           OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*77199*/           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)
/*77208*/         0, /*End of Scope*/
                /*SwitchType*/ 9,  MVT::f80,// ->77220
/*77211*/         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
/*77221*/     /*Scope*/ 20|128,1/*148*/, /*->77371*/
/*77223*/       OPC_MoveChild, 1,
/*77225*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*77228*/       OPC_RecordMemRef,
/*77229*/       OPC_RecordNode, // #1 = 'ld' chained node
/*77230*/       OPC_CheckFoldableChainNode,
/*77231*/       OPC_RecordChild1, // #2 = $src2
/*77232*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*77234*/       OPC_CheckPredicate, 3, // Predicate_load
/*77236*/       OPC_CheckPredicate, 23, // Predicate_memop
/*77238*/       OPC_MoveParent,
/*77239*/       OPC_SwitchType /*4 cases */, 42,  MVT::v4f32,// ->77284
/*77242*/         OPC_Scope, 19, /*->77263*/ // 2 children in Scope
/*77244*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*77246*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*77249*/           OPC_EmitMergeInputChains1_1,
/*77250*/           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)
/*77263*/         /*Scope*/ 19, /*->77283*/
/*77264*/           OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*77266*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*77269*/           OPC_EmitMergeInputChains1_1,
/*77270*/           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)
/*77283*/         0, /*End of Scope*/
                /*SwitchType*/ 42,  MVT::v2f64,// ->77328
/*77286*/         OPC_Scope, 19, /*->77307*/ // 2 children in Scope
/*77288*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*77290*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*77293*/           OPC_EmitMergeInputChains1_1,
/*77294*/           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)
/*77307*/         /*Scope*/ 19, /*->77327*/
/*77308*/           OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*77310*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*77313*/           OPC_EmitMergeInputChains1_1,
/*77314*/           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)
/*77327*/         0, /*End of Scope*/
                /*SwitchType*/ 19,  MVT::v8f32,// ->77349
/*77330*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*77332*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*77335*/         OPC_EmitMergeInputChains1_1,
/*77336*/         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,// ->77370
/*77351*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*77353*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*77356*/         OPC_EmitMergeInputChains1_1,
/*77357*/         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
/*77371*/     0, /*End of Scope*/
/*77372*/   /*Scope*/ 21|128,1/*149*/, /*->77523*/
/*77374*/     OPC_MoveChild, 0,
/*77376*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*77379*/     OPC_RecordMemRef,
/*77380*/     OPC_RecordNode, // #0 = 'ld' chained node
/*77381*/     OPC_CheckFoldableChainNode,
/*77382*/     OPC_RecordChild1, // #1 = $src2
/*77383*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*77385*/     OPC_CheckPredicate, 3, // Predicate_load
/*77387*/     OPC_CheckPredicate, 23, // Predicate_memop
/*77389*/     OPC_MoveParent,
/*77390*/     OPC_RecordChild1, // #2 = $src1
/*77391*/     OPC_SwitchType /*4 cases */, 42,  MVT::v4f32,// ->77436
/*77394*/       OPC_Scope, 19, /*->77415*/ // 2 children in Scope
/*77396*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*77398*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*77401*/         OPC_EmitMergeInputChains1_0,
/*77402*/         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)
/*77415*/       /*Scope*/ 19, /*->77435*/
/*77416*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*77418*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*77421*/         OPC_EmitMergeInputChains1_0,
/*77422*/         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)
/*77435*/       0, /*End of Scope*/
              /*SwitchType*/ 42,  MVT::v2f64,// ->77480
/*77438*/       OPC_Scope, 19, /*->77459*/ // 2 children in Scope
/*77440*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*77442*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*77445*/         OPC_EmitMergeInputChains1_0,
/*77446*/         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)
/*77459*/       /*Scope*/ 19, /*->77479*/
/*77460*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*77462*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*77465*/         OPC_EmitMergeInputChains1_0,
/*77466*/         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)
/*77479*/       0, /*End of Scope*/
              /*SwitchType*/ 19,  MVT::v8f32,// ->77501
/*77482*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*77484*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*77487*/       OPC_EmitMergeInputChains1_0,
/*77488*/       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,// ->77522
/*77503*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*77505*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*77508*/       OPC_EmitMergeInputChains1_0,
/*77509*/       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
/*77523*/   /*Scope*/ 86, /*->77610*/
/*77524*/     OPC_RecordChild0, // #0 = $src1
/*77525*/     OPC_RecordChild1, // #1 = $src2
/*77526*/     OPC_SwitchType /*4 cases */, 26,  MVT::v4f32,// ->77555
/*77529*/       OPC_Scope, 11, /*->77542*/ // 2 children in Scope
/*77531*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*77533*/         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)
/*77542*/       /*Scope*/ 11, /*->77554*/
/*77543*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*77545*/         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)
/*77554*/       0, /*End of Scope*/
              /*SwitchType*/ 26,  MVT::v2f64,// ->77583
/*77557*/       OPC_Scope, 11, /*->77570*/ // 2 children in Scope
/*77559*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*77561*/         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)
/*77570*/       /*Scope*/ 11, /*->77582*/
/*77571*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*77573*/         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)
/*77582*/       0, /*End of Scope*/
              /*SwitchType*/ 11,  MVT::v8f32,// ->77596
/*77585*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*77587*/       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,// ->77609
/*77598*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*77600*/       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
/*77610*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 44|128,7/*940*/,  TARGET_VAL(ISD::FSUB),// ->78555
/*77615*/   OPC_RecordChild0, // #0 = $src1
/*77616*/   OPC_Scope, 92|128,4/*604*/, /*->78223*/ // 4 children in Scope
/*77619*/     OPC_MoveChild, 1,
/*77621*/     OPC_SwitchOpcode /*2 cases */, 90|128,2/*346*/,  TARGET_VAL(ISD::LOAD),// ->77972
/*77626*/       OPC_RecordMemRef,
/*77627*/       OPC_RecordNode, // #1 = 'ld' chained node
/*77628*/       OPC_CheckFoldableChainNode,
/*77629*/       OPC_RecordChild1, // #2 = $src2
/*77630*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*77632*/       OPC_Scope, 47, /*->77681*/ // 5 children in Scope
/*77634*/         OPC_CheckPredicate, 3, // Predicate_load
/*77636*/         OPC_MoveParent,
/*77637*/         OPC_SwitchType /*2 cases */, 19,  MVT::f32,// ->77659
/*77640*/           OPC_CheckPatternPredicate, 8, // (!Subtarget->hasXMM())
/*77642*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*77645*/           OPC_EmitMergeInputChains1_1,
/*77646*/           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,// ->77680
/*77661*/           OPC_CheckPatternPredicate, 9, // (!Subtarget->hasXMMInt())
/*77663*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*77666*/           OPC_EmitMergeInputChains1_1,
/*77667*/           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
/*77681*/       /*Scope*/ 73, /*->77755*/
/*77682*/         OPC_CheckPredicate, 37, // Predicate_extload
/*77684*/         OPC_Scope, 45, /*->77731*/ // 2 children in Scope
/*77686*/           OPC_CheckPredicate, 42, // Predicate_extloadf32
/*77688*/           OPC_MoveParent,
/*77689*/           OPC_SwitchType /*2 cases */, 19,  MVT::f64,// ->77711
/*77692*/             OPC_CheckPatternPredicate, 9, // (!Subtarget->hasXMMInt())
/*77694*/             OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*77697*/             OPC_EmitMergeInputChains1_1,
/*77698*/             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,// ->77730
/*77713*/             OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*77716*/             OPC_EmitMergeInputChains1_1,
/*77717*/             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
/*77731*/         /*Scope*/ 22, /*->77754*/
/*77732*/           OPC_CheckPredicate, 43, // Predicate_extloadf64
/*77734*/           OPC_MoveParent,
/*77735*/           OPC_CheckType, MVT::f80,
/*77737*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*77740*/           OPC_EmitMergeInputChains1_1,
/*77741*/           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)
/*77754*/         0, /*End of Scope*/
/*77755*/       /*Scope*/ 47, /*->77803*/
/*77756*/         OPC_CheckPredicate, 3, // Predicate_load
/*77758*/         OPC_MoveParent,
/*77759*/         OPC_SwitchType /*2 cases */, 19,  MVT::f32,// ->77781
/*77762*/           OPC_CheckPatternPredicate, 8, // (!Subtarget->hasXMM())
/*77764*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*77767*/           OPC_EmitMergeInputChains1_1,
/*77768*/           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,// ->77802
/*77783*/           OPC_CheckPatternPredicate, 9, // (!Subtarget->hasXMMInt())
/*77785*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*77788*/           OPC_EmitMergeInputChains1_1,
/*77789*/           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
/*77803*/       /*Scope*/ 73, /*->77877*/
/*77804*/         OPC_CheckPredicate, 37, // Predicate_extload
/*77806*/         OPC_Scope, 45, /*->77853*/ // 2 children in Scope
/*77808*/           OPC_CheckPredicate, 42, // Predicate_extloadf32
/*77810*/           OPC_MoveParent,
/*77811*/           OPC_SwitchType /*2 cases */, 19,  MVT::f64,// ->77833
/*77814*/             OPC_CheckPatternPredicate, 9, // (!Subtarget->hasXMMInt())
/*77816*/             OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*77819*/             OPC_EmitMergeInputChains1_1,
/*77820*/             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,// ->77852
/*77835*/             OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*77838*/             OPC_EmitMergeInputChains1_1,
/*77839*/             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
/*77853*/         /*Scope*/ 22, /*->77876*/
/*77854*/           OPC_CheckPredicate, 43, // Predicate_extloadf64
/*77856*/           OPC_MoveParent,
/*77857*/           OPC_CheckType, MVT::f80,
/*77859*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*77862*/           OPC_EmitMergeInputChains1_1,
/*77863*/           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)
/*77876*/         0, /*End of Scope*/
/*77877*/       /*Scope*/ 93, /*->77971*/
/*77878*/         OPC_CheckPredicate, 3, // Predicate_load
/*77880*/         OPC_MoveParent,
/*77881*/         OPC_SwitchType /*2 cases */, 42,  MVT::f32,// ->77926
/*77884*/           OPC_Scope, 19, /*->77905*/ // 2 children in Scope
/*77886*/             OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*77888*/             OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*77891*/             OPC_EmitMergeInputChains1_1,
/*77892*/             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)
/*77905*/           /*Scope*/ 19, /*->77925*/
/*77906*/             OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*77908*/             OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*77911*/             OPC_EmitMergeInputChains1_1,
/*77912*/             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)
/*77925*/           0, /*End of Scope*/
                  /*SwitchType*/ 42,  MVT::f64,// ->77970
/*77928*/           OPC_Scope, 19, /*->77949*/ // 2 children in Scope
/*77930*/             OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*77932*/             OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*77935*/             OPC_EmitMergeInputChains1_1,
/*77936*/             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)
/*77949*/           /*Scope*/ 19, /*->77969*/
/*77950*/             OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*77952*/             OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*77955*/             OPC_EmitMergeInputChains1_1,
/*77956*/             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)
/*77969*/           0, /*End of Scope*/
                  0, // EndSwitchType
/*77971*/       0, /*End of Scope*/
              /*SwitchOpcode*/ 118|128,1/*246*/,  TARGET_VAL(X86ISD::FILD),// ->78222
/*77976*/       OPC_RecordMemRef,
/*77977*/       OPC_RecordNode, // #1 = 'X86fild' chained node
/*77978*/       OPC_CheckFoldableChainNode,
/*77979*/       OPC_RecordChild1, // #2 = $src2
/*77980*/       OPC_MoveChild, 2,
/*77982*/       OPC_Scope, 118, /*->78102*/ // 2 children in Scope
/*77984*/         OPC_CheckValueType, MVT::i16,
/*77986*/         OPC_MoveParent,
/*77987*/         OPC_MoveParent,
/*77988*/         OPC_SwitchType /*3 cases */, 36,  MVT::f32,// ->78027
/*77991*/           OPC_CheckPatternPredicate, 8, // (!Subtarget->hasXMM())
/*77993*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*77996*/           OPC_EmitMergeInputChains1_1,
/*77997*/           OPC_Scope, 13, /*->78012*/ // 2 children in Scope
/*77999*/             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)
/*78012*/           /*Scope*/ 13, /*->78026*/
/*78013*/             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)
/*78026*/           0, /*End of Scope*/
                  /*SwitchType*/ 36,  MVT::f64,// ->78065
/*78029*/           OPC_CheckPatternPredicate, 9, // (!Subtarget->hasXMMInt())
/*78031*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*78034*/           OPC_EmitMergeInputChains1_1,
/*78035*/           OPC_Scope, 13, /*->78050*/ // 2 children in Scope
/*78037*/             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)
/*78050*/           /*Scope*/ 13, /*->78064*/
/*78051*/             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)
/*78064*/           0, /*End of Scope*/
                  /*SwitchType*/ 34,  MVT::f80,// ->78101
/*78067*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*78070*/           OPC_EmitMergeInputChains1_1,
/*78071*/           OPC_Scope, 13, /*->78086*/ // 2 children in Scope
/*78073*/             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)
/*78086*/           /*Scope*/ 13, /*->78100*/
/*78087*/             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)
/*78100*/           0, /*End of Scope*/
                  0, // EndSwitchType
/*78102*/       /*Scope*/ 118, /*->78221*/
/*78103*/         OPC_CheckValueType, MVT::i32,
/*78105*/         OPC_MoveParent,
/*78106*/         OPC_MoveParent,
/*78107*/         OPC_SwitchType /*3 cases */, 36,  MVT::f32,// ->78146
/*78110*/           OPC_CheckPatternPredicate, 8, // (!Subtarget->hasXMM())
/*78112*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*78115*/           OPC_EmitMergeInputChains1_1,
/*78116*/           OPC_Scope, 13, /*->78131*/ // 2 children in Scope
/*78118*/             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)
/*78131*/           /*Scope*/ 13, /*->78145*/
/*78132*/             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)
/*78145*/           0, /*End of Scope*/
                  /*SwitchType*/ 36,  MVT::f64,// ->78184
/*78148*/           OPC_CheckPatternPredicate, 9, // (!Subtarget->hasXMMInt())
/*78150*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*78153*/           OPC_EmitMergeInputChains1_1,
/*78154*/           OPC_Scope, 13, /*->78169*/ // 2 children in Scope
/*78156*/             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)
/*78169*/           /*Scope*/ 13, /*->78183*/
/*78170*/             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)
/*78183*/           0, /*End of Scope*/
                  /*SwitchType*/ 34,  MVT::f80,// ->78220
/*78186*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*78189*/           OPC_EmitMergeInputChains1_1,
/*78190*/           OPC_Scope, 13, /*->78205*/ // 2 children in Scope
/*78192*/             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)
/*78205*/           /*Scope*/ 13, /*->78219*/
/*78206*/             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)
/*78219*/           0, /*End of Scope*/
                  0, // EndSwitchType
/*78221*/       0, /*End of Scope*/
              0, // EndSwitchOpcode
/*78223*/   /*Scope*/ 94, /*->78318*/
/*78224*/     OPC_RecordChild1, // #1 = $src2
/*78225*/     OPC_SwitchType /*3 cases */, 38,  MVT::f32,// ->78266
/*78228*/       OPC_Scope, 11, /*->78241*/ // 3 children in Scope
/*78230*/         OPC_CheckPatternPredicate, 8, // (!Subtarget->hasXMM())
/*78232*/         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)
/*78241*/       /*Scope*/ 11, /*->78253*/
/*78242*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*78244*/         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)
/*78253*/       /*Scope*/ 11, /*->78265*/
/*78254*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*78256*/         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)
/*78265*/       0, /*End of Scope*/
              /*SwitchType*/ 38,  MVT::f64,// ->78306
/*78268*/       OPC_Scope, 11, /*->78281*/ // 3 children in Scope
/*78270*/         OPC_CheckPatternPredicate, 9, // (!Subtarget->hasXMMInt())
/*78272*/         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)
/*78281*/       /*Scope*/ 11, /*->78293*/
/*78282*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*78284*/         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)
/*78293*/       /*Scope*/ 11, /*->78305*/
/*78294*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*78296*/         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)
/*78305*/       0, /*End of Scope*/
              /*SwitchType*/ 9,  MVT::f80,// ->78317
/*78308*/       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
/*78318*/   /*Scope*/ 20|128,1/*148*/, /*->78468*/
/*78320*/     OPC_MoveChild, 1,
/*78322*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*78325*/     OPC_RecordMemRef,
/*78326*/     OPC_RecordNode, // #1 = 'ld' chained node
/*78327*/     OPC_CheckFoldableChainNode,
/*78328*/     OPC_RecordChild1, // #2 = $src2
/*78329*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*78331*/     OPC_CheckPredicate, 3, // Predicate_load
/*78333*/     OPC_CheckPredicate, 23, // Predicate_memop
/*78335*/     OPC_MoveParent,
/*78336*/     OPC_SwitchType /*4 cases */, 42,  MVT::v4f32,// ->78381
/*78339*/       OPC_Scope, 19, /*->78360*/ // 2 children in Scope
/*78341*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*78343*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*78346*/         OPC_EmitMergeInputChains1_1,
/*78347*/         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)
/*78360*/       /*Scope*/ 19, /*->78380*/
/*78361*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*78363*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*78366*/         OPC_EmitMergeInputChains1_1,
/*78367*/         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)
/*78380*/       0, /*End of Scope*/
              /*SwitchType*/ 42,  MVT::v2f64,// ->78425
/*78383*/       OPC_Scope, 19, /*->78404*/ // 2 children in Scope
/*78385*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*78387*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*78390*/         OPC_EmitMergeInputChains1_1,
/*78391*/         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)
/*78404*/       /*Scope*/ 19, /*->78424*/
/*78405*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*78407*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*78410*/         OPC_EmitMergeInputChains1_1,
/*78411*/         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)
/*78424*/       0, /*End of Scope*/
              /*SwitchType*/ 19,  MVT::v8f32,// ->78446
/*78427*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*78429*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*78432*/       OPC_EmitMergeInputChains1_1,
/*78433*/       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,// ->78467
/*78448*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*78450*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*78453*/       OPC_EmitMergeInputChains1_1,
/*78454*/       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
/*78468*/   /*Scope*/ 85, /*->78554*/
/*78469*/     OPC_RecordChild1, // #1 = $src2
/*78470*/     OPC_SwitchType /*4 cases */, 26,  MVT::v4f32,// ->78499
/*78473*/       OPC_Scope, 11, /*->78486*/ // 2 children in Scope
/*78475*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*78477*/         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)
/*78486*/       /*Scope*/ 11, /*->78498*/
/*78487*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*78489*/         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)
/*78498*/       0, /*End of Scope*/
              /*SwitchType*/ 26,  MVT::v2f64,// ->78527
/*78501*/       OPC_Scope, 11, /*->78514*/ // 2 children in Scope
/*78503*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*78505*/         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)
/*78514*/       /*Scope*/ 11, /*->78526*/
/*78515*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*78517*/         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)
/*78526*/       0, /*End of Scope*/
              /*SwitchType*/ 11,  MVT::v8f32,// ->78540
/*78529*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*78531*/       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,// ->78553
/*78542*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*78544*/       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
/*78554*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 5|128,10/*1285*/,  TARGET_VAL(ISD::FMUL),// ->79844
/*78559*/   OPC_Scope, 8|128,1/*136*/, /*->78698*/ // 9 children in Scope
/*78562*/     OPC_RecordChild0, // #0 = $src1
/*78563*/     OPC_MoveChild, 1,
/*78565*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*78568*/     OPC_RecordMemRef,
/*78569*/     OPC_RecordNode, // #1 = 'ld' chained node
/*78570*/     OPC_CheckFoldableChainNode,
/*78571*/     OPC_RecordChild1, // #2 = $src2
/*78572*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*78574*/     OPC_Scope, 47, /*->78623*/ // 2 children in Scope
/*78576*/       OPC_CheckPredicate, 3, // Predicate_load
/*78578*/       OPC_MoveParent,
/*78579*/       OPC_SwitchType /*2 cases */, 19,  MVT::f32,// ->78601
/*78582*/         OPC_CheckPatternPredicate, 8, // (!Subtarget->hasXMM())
/*78584*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*78587*/         OPC_EmitMergeInputChains1_1,
/*78588*/         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,// ->78622
/*78603*/         OPC_CheckPatternPredicate, 9, // (!Subtarget->hasXMMInt())
/*78605*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*78608*/         OPC_EmitMergeInputChains1_1,
/*78609*/         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
/*78623*/     /*Scope*/ 73, /*->78697*/
/*78624*/       OPC_CheckPredicate, 37, // Predicate_extload
/*78626*/       OPC_Scope, 45, /*->78673*/ // 2 children in Scope
/*78628*/         OPC_CheckPredicate, 42, // Predicate_extloadf32
/*78630*/         OPC_MoveParent,
/*78631*/         OPC_SwitchType /*2 cases */, 19,  MVT::f64,// ->78653
/*78634*/           OPC_CheckPatternPredicate, 9, // (!Subtarget->hasXMMInt())
/*78636*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*78639*/           OPC_EmitMergeInputChains1_1,
/*78640*/           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,// ->78672
/*78655*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*78658*/           OPC_EmitMergeInputChains1_1,
/*78659*/           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
/*78673*/       /*Scope*/ 22, /*->78696*/
/*78674*/         OPC_CheckPredicate, 43, // Predicate_extloadf64
/*78676*/         OPC_MoveParent,
/*78677*/         OPC_CheckType, MVT::f80,
/*78679*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*78682*/         OPC_EmitMergeInputChains1_1,
/*78683*/         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)
/*78696*/       0, /*End of Scope*/
/*78697*/     0, /*End of Scope*/
/*78698*/   /*Scope*/ 10|128,1/*138*/, /*->78838*/
/*78700*/     OPC_MoveChild, 0,
/*78702*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*78705*/     OPC_RecordMemRef,
/*78706*/     OPC_RecordNode, // #0 = 'ld' chained node
/*78707*/     OPC_CheckFoldableChainNode,
/*78708*/     OPC_RecordChild1, // #1 = $src2
/*78709*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*78711*/     OPC_Scope, 48, /*->78761*/ // 2 children in Scope
/*78713*/       OPC_CheckPredicate, 3, // Predicate_load
/*78715*/       OPC_MoveParent,
/*78716*/       OPC_RecordChild1, // #2 = $src1
/*78717*/       OPC_SwitchType /*2 cases */, 19,  MVT::f32,// ->78739
/*78720*/         OPC_CheckPatternPredicate, 8, // (!Subtarget->hasXMM())
/*78722*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*78725*/         OPC_EmitMergeInputChains1_0,
/*78726*/         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,// ->78760
/*78741*/         OPC_CheckPatternPredicate, 9, // (!Subtarget->hasXMMInt())
/*78743*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*78746*/         OPC_EmitMergeInputChains1_0,
/*78747*/         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
/*78761*/     /*Scope*/ 75, /*->78837*/
/*78762*/       OPC_CheckPredicate, 37, // Predicate_extload
/*78764*/       OPC_Scope, 46, /*->78812*/ // 2 children in Scope
/*78766*/         OPC_CheckPredicate, 42, // Predicate_extloadf32
/*78768*/         OPC_MoveParent,
/*78769*/         OPC_RecordChild1, // #2 = $src1
/*78770*/         OPC_SwitchType /*2 cases */, 19,  MVT::f64,// ->78792
/*78773*/           OPC_CheckPatternPredicate, 9, // (!Subtarget->hasXMMInt())
/*78775*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*78778*/           OPC_EmitMergeInputChains1_0,
/*78779*/           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,// ->78811
/*78794*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*78797*/           OPC_EmitMergeInputChains1_0,
/*78798*/           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
/*78812*/       /*Scope*/ 23, /*->78836*/
/*78813*/         OPC_CheckPredicate, 43, // Predicate_extloadf64
/*78815*/         OPC_MoveParent,
/*78816*/         OPC_RecordChild1, // #2 = $src1
/*78817*/         OPC_CheckType, MVT::f80,
/*78819*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*78822*/         OPC_EmitMergeInputChains1_0,
/*78823*/         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)
/*78836*/       0, /*End of Scope*/
/*78837*/     0, /*End of Scope*/
/*78838*/   /*Scope*/ 105, /*->78944*/
/*78839*/     OPC_RecordChild0, // #0 = $src1
/*78840*/     OPC_MoveChild, 1,
/*78842*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*78845*/     OPC_RecordMemRef,
/*78846*/     OPC_RecordNode, // #1 = 'ld' chained node
/*78847*/     OPC_CheckFoldableChainNode,
/*78848*/     OPC_RecordChild1, // #2 = $src2
/*78849*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*78851*/     OPC_CheckPredicate, 3, // Predicate_load
/*78853*/     OPC_MoveParent,
/*78854*/     OPC_SwitchType /*2 cases */, 42,  MVT::f32,// ->78899
/*78857*/       OPC_Scope, 19, /*->78878*/ // 2 children in Scope
/*78859*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*78861*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*78864*/         OPC_EmitMergeInputChains1_1,
/*78865*/         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)
/*78878*/       /*Scope*/ 19, /*->78898*/
/*78879*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*78881*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*78884*/         OPC_EmitMergeInputChains1_1,
/*78885*/         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)
/*78898*/       0, /*End of Scope*/
              /*SwitchType*/ 42,  MVT::f64,// ->78943
/*78901*/       OPC_Scope, 19, /*->78922*/ // 2 children in Scope
/*78903*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*78905*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*78908*/         OPC_EmitMergeInputChains1_1,
/*78909*/         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)
/*78922*/       /*Scope*/ 19, /*->78942*/
/*78923*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*78925*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*78928*/         OPC_EmitMergeInputChains1_1,
/*78929*/         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)
/*78942*/       0, /*End of Scope*/
              0, // EndSwitchType
/*78944*/   /*Scope*/ 105, /*->79050*/
/*78945*/     OPC_MoveChild, 0,
/*78947*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*78950*/     OPC_RecordMemRef,
/*78951*/     OPC_RecordNode, // #0 = 'ld' chained node
/*78952*/     OPC_CheckFoldableChainNode,
/*78953*/     OPC_RecordChild1, // #1 = $src2
/*78954*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*78956*/     OPC_CheckPredicate, 3, // Predicate_load
/*78958*/     OPC_MoveParent,
/*78959*/     OPC_RecordChild1, // #2 = $src1
/*78960*/     OPC_SwitchType /*2 cases */, 42,  MVT::f32,// ->79005
/*78963*/       OPC_Scope, 19, /*->78984*/ // 2 children in Scope
/*78965*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*78967*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*78970*/         OPC_EmitMergeInputChains1_0,
/*78971*/         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)
/*78984*/       /*Scope*/ 19, /*->79004*/
/*78985*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*78987*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*78990*/         OPC_EmitMergeInputChains1_0,
/*78991*/         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)
/*79004*/       0, /*End of Scope*/
              /*SwitchType*/ 42,  MVT::f64,// ->79049
/*79007*/       OPC_Scope, 19, /*->79028*/ // 2 children in Scope
/*79009*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*79011*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*79014*/         OPC_EmitMergeInputChains1_0,
/*79015*/         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)
/*79028*/       /*Scope*/ 19, /*->79048*/
/*79029*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*79031*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*79034*/         OPC_EmitMergeInputChains1_0,
/*79035*/         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)
/*79048*/       0, /*End of Scope*/
              0, // EndSwitchType
/*79050*/   /*Scope*/ 22|128,1/*150*/, /*->79202*/
/*79052*/     OPC_RecordChild0, // #0 = $src1
/*79053*/     OPC_MoveChild, 1,
/*79055*/     OPC_CheckOpcode, TARGET_VAL(X86ISD::FILD),
/*79058*/     OPC_RecordMemRef,
/*79059*/     OPC_RecordNode, // #1 = 'X86fild' chained node
/*79060*/     OPC_CheckFoldableChainNode,
/*79061*/     OPC_RecordChild1, // #2 = $src2
/*79062*/     OPC_MoveChild, 2,
/*79064*/     OPC_Scope, 67, /*->79133*/ // 2 children in Scope
/*79066*/       OPC_CheckValueType, MVT::i16,
/*79068*/       OPC_MoveParent,
/*79069*/       OPC_MoveParent,
/*79070*/       OPC_SwitchType /*3 cases */, 19,  MVT::f32,// ->79092
/*79073*/         OPC_CheckPatternPredicate, 8, // (!Subtarget->hasXMM())
/*79075*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*79078*/         OPC_EmitMergeInputChains1_1,
/*79079*/         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,// ->79113
/*79094*/         OPC_CheckPatternPredicate, 9, // (!Subtarget->hasXMMInt())
/*79096*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*79099*/         OPC_EmitMergeInputChains1_1,
/*79100*/         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,// ->79132
/*79115*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*79118*/         OPC_EmitMergeInputChains1_1,
/*79119*/         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
/*79133*/     /*Scope*/ 67, /*->79201*/
/*79134*/       OPC_CheckValueType, MVT::i32,
/*79136*/       OPC_MoveParent,
/*79137*/       OPC_MoveParent,
/*79138*/       OPC_SwitchType /*3 cases */, 19,  MVT::f32,// ->79160
/*79141*/         OPC_CheckPatternPredicate, 8, // (!Subtarget->hasXMM())
/*79143*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*79146*/         OPC_EmitMergeInputChains1_1,
/*79147*/         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,// ->79181
/*79162*/         OPC_CheckPatternPredicate, 9, // (!Subtarget->hasXMMInt())
/*79164*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*79167*/         OPC_EmitMergeInputChains1_1,
/*79168*/         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,// ->79200
/*79183*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*79186*/         OPC_EmitMergeInputChains1_1,
/*79187*/         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
/*79201*/     0, /*End of Scope*/
/*79202*/   /*Scope*/ 23|128,1/*151*/, /*->79355*/
/*79204*/     OPC_MoveChild, 0,
/*79206*/     OPC_CheckOpcode, TARGET_VAL(X86ISD::FILD),
/*79209*/     OPC_RecordMemRef,
/*79210*/     OPC_RecordNode, // #0 = 'X86fild' chained node
/*79211*/     OPC_CheckFoldableChainNode,
/*79212*/     OPC_RecordChild1, // #1 = $src2
/*79213*/     OPC_MoveChild, 2,
/*79215*/     OPC_Scope, 68, /*->79285*/ // 2 children in Scope
/*79217*/       OPC_CheckValueType, MVT::i16,
/*79219*/       OPC_MoveParent,
/*79220*/       OPC_MoveParent,
/*79221*/       OPC_RecordChild1, // #2 = $src1
/*79222*/       OPC_SwitchType /*3 cases */, 19,  MVT::f32,// ->79244
/*79225*/         OPC_CheckPatternPredicate, 8, // (!Subtarget->hasXMM())
/*79227*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*79230*/         OPC_EmitMergeInputChains1_0,
/*79231*/         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,// ->79265
/*79246*/         OPC_CheckPatternPredicate, 9, // (!Subtarget->hasXMMInt())
/*79248*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*79251*/         OPC_EmitMergeInputChains1_0,
/*79252*/         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,// ->79284
/*79267*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*79270*/         OPC_EmitMergeInputChains1_0,
/*79271*/         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
/*79285*/     /*Scope*/ 68, /*->79354*/
/*79286*/       OPC_CheckValueType, MVT::i32,
/*79288*/       OPC_MoveParent,
/*79289*/       OPC_MoveParent,
/*79290*/       OPC_RecordChild1, // #2 = $src1
/*79291*/       OPC_SwitchType /*3 cases */, 19,  MVT::f32,// ->79313
/*79294*/         OPC_CheckPatternPredicate, 8, // (!Subtarget->hasXMM())
/*79296*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*79299*/         OPC_EmitMergeInputChains1_0,
/*79300*/         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,// ->79334
/*79315*/         OPC_CheckPatternPredicate, 9, // (!Subtarget->hasXMMInt())
/*79317*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*79320*/         OPC_EmitMergeInputChains1_0,
/*79321*/         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,// ->79353
/*79336*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*79339*/         OPC_EmitMergeInputChains1_0,
/*79340*/         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
/*79354*/     0, /*End of Scope*/
/*79355*/   /*Scope*/ 120|128,1/*248*/, /*->79605*/
/*79357*/     OPC_RecordChild0, // #0 = $src1
/*79358*/     OPC_Scope, 94, /*->79454*/ // 2 children in Scope
/*79360*/       OPC_RecordChild1, // #1 = $src2
/*79361*/       OPC_SwitchType /*3 cases */, 38,  MVT::f32,// ->79402
/*79364*/         OPC_Scope, 11, /*->79377*/ // 3 children in Scope
/*79366*/           OPC_CheckPatternPredicate, 8, // (!Subtarget->hasXMM())
/*79368*/           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)
/*79377*/         /*Scope*/ 11, /*->79389*/
/*79378*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*79380*/           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)
/*79389*/         /*Scope*/ 11, /*->79401*/
/*79390*/           OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*79392*/           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)
/*79401*/         0, /*End of Scope*/
                /*SwitchType*/ 38,  MVT::f64,// ->79442
/*79404*/         OPC_Scope, 11, /*->79417*/ // 3 children in Scope
/*79406*/           OPC_CheckPatternPredicate, 9, // (!Subtarget->hasXMMInt())
/*79408*/           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)
/*79417*/         /*Scope*/ 11, /*->79429*/
/*79418*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*79420*/           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)
/*79429*/         /*Scope*/ 11, /*->79441*/
/*79430*/           OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*79432*/           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)
/*79441*/         0, /*End of Scope*/
                /*SwitchType*/ 9,  MVT::f80,// ->79453
/*79444*/         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
/*79454*/     /*Scope*/ 20|128,1/*148*/, /*->79604*/
/*79456*/       OPC_MoveChild, 1,
/*79458*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*79461*/       OPC_RecordMemRef,
/*79462*/       OPC_RecordNode, // #1 = 'ld' chained node
/*79463*/       OPC_CheckFoldableChainNode,
/*79464*/       OPC_RecordChild1, // #2 = $src2
/*79465*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*79467*/       OPC_CheckPredicate, 3, // Predicate_load
/*79469*/       OPC_CheckPredicate, 23, // Predicate_memop
/*79471*/       OPC_MoveParent,
/*79472*/       OPC_SwitchType /*4 cases */, 42,  MVT::v4f32,// ->79517
/*79475*/         OPC_Scope, 19, /*->79496*/ // 2 children in Scope
/*79477*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*79479*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*79482*/           OPC_EmitMergeInputChains1_1,
/*79483*/           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)
/*79496*/         /*Scope*/ 19, /*->79516*/
/*79497*/           OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*79499*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*79502*/           OPC_EmitMergeInputChains1_1,
/*79503*/           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)
/*79516*/         0, /*End of Scope*/
                /*SwitchType*/ 42,  MVT::v2f64,// ->79561
/*79519*/         OPC_Scope, 19, /*->79540*/ // 2 children in Scope
/*79521*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*79523*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*79526*/           OPC_EmitMergeInputChains1_1,
/*79527*/           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)
/*79540*/         /*Scope*/ 19, /*->79560*/
/*79541*/           OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*79543*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*79546*/           OPC_EmitMergeInputChains1_1,
/*79547*/           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)
/*79560*/         0, /*End of Scope*/
                /*SwitchType*/ 19,  MVT::v8f32,// ->79582
/*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::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,// ->79603
/*79584*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*79586*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*79589*/         OPC_EmitMergeInputChains1_1,
/*79590*/         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
/*79604*/     0, /*End of Scope*/
/*79605*/   /*Scope*/ 21|128,1/*149*/, /*->79756*/
/*79607*/     OPC_MoveChild, 0,
/*79609*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*79612*/     OPC_RecordMemRef,
/*79613*/     OPC_RecordNode, // #0 = 'ld' chained node
/*79614*/     OPC_CheckFoldableChainNode,
/*79615*/     OPC_RecordChild1, // #1 = $src2
/*79616*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*79618*/     OPC_CheckPredicate, 3, // Predicate_load
/*79620*/     OPC_CheckPredicate, 23, // Predicate_memop
/*79622*/     OPC_MoveParent,
/*79623*/     OPC_RecordChild1, // #2 = $src1
/*79624*/     OPC_SwitchType /*4 cases */, 42,  MVT::v4f32,// ->79669
/*79627*/       OPC_Scope, 19, /*->79648*/ // 2 children in Scope
/*79629*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*79631*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*79634*/         OPC_EmitMergeInputChains1_0,
/*79635*/         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)
/*79648*/       /*Scope*/ 19, /*->79668*/
/*79649*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*79651*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*79654*/         OPC_EmitMergeInputChains1_0,
/*79655*/         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)
/*79668*/       0, /*End of Scope*/
              /*SwitchType*/ 42,  MVT::v2f64,// ->79713
/*79671*/       OPC_Scope, 19, /*->79692*/ // 2 children in Scope
/*79673*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*79675*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*79678*/         OPC_EmitMergeInputChains1_0,
/*79679*/         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)
/*79692*/       /*Scope*/ 19, /*->79712*/
/*79693*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*79695*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*79698*/         OPC_EmitMergeInputChains1_0,
/*79699*/         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)
/*79712*/       0, /*End of Scope*/
              /*SwitchType*/ 19,  MVT::v8f32,// ->79734
/*79715*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*79717*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*79720*/       OPC_EmitMergeInputChains1_0,
/*79721*/       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,// ->79755
/*79736*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*79738*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*79741*/       OPC_EmitMergeInputChains1_0,
/*79742*/       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
/*79756*/   /*Scope*/ 86, /*->79843*/
/*79757*/     OPC_RecordChild0, // #0 = $src1
/*79758*/     OPC_RecordChild1, // #1 = $src2
/*79759*/     OPC_SwitchType /*4 cases */, 26,  MVT::v4f32,// ->79788
/*79762*/       OPC_Scope, 11, /*->79775*/ // 2 children in Scope
/*79764*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*79766*/         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)
/*79775*/       /*Scope*/ 11, /*->79787*/
/*79776*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*79778*/         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)
/*79787*/       0, /*End of Scope*/
              /*SwitchType*/ 26,  MVT::v2f64,// ->79816
/*79790*/       OPC_Scope, 11, /*->79803*/ // 2 children in Scope
/*79792*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*79794*/         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)
/*79803*/       /*Scope*/ 11, /*->79815*/
/*79804*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*79806*/         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)
/*79815*/       0, /*End of Scope*/
              /*SwitchType*/ 11,  MVT::v8f32,// ->79829
/*79818*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*79820*/       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,// ->79842
/*79831*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*79833*/       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
/*79843*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 44|128,7/*940*/,  TARGET_VAL(ISD::FDIV),// ->80788
/*79848*/   OPC_RecordChild0, // #0 = $src1
/*79849*/   OPC_Scope, 92|128,4/*604*/, /*->80456*/ // 4 children in Scope
/*79852*/     OPC_MoveChild, 1,
/*79854*/     OPC_SwitchOpcode /*2 cases */, 90|128,2/*346*/,  TARGET_VAL(ISD::LOAD),// ->80205
/*79859*/       OPC_RecordMemRef,
/*79860*/       OPC_RecordNode, // #1 = 'ld' chained node
/*79861*/       OPC_CheckFoldableChainNode,
/*79862*/       OPC_RecordChild1, // #2 = $src2
/*79863*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*79865*/       OPC_Scope, 47, /*->79914*/ // 5 children in Scope
/*79867*/         OPC_CheckPredicate, 3, // Predicate_load
/*79869*/         OPC_MoveParent,
/*79870*/         OPC_SwitchType /*2 cases */, 19,  MVT::f32,// ->79892
/*79873*/           OPC_CheckPatternPredicate, 8, // (!Subtarget->hasXMM())
/*79875*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*79878*/           OPC_EmitMergeInputChains1_1,
/*79879*/           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,// ->79913
/*79894*/           OPC_CheckPatternPredicate, 9, // (!Subtarget->hasXMMInt())
/*79896*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*79899*/           OPC_EmitMergeInputChains1_1,
/*79900*/           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
/*79914*/       /*Scope*/ 73, /*->79988*/
/*79915*/         OPC_CheckPredicate, 37, // Predicate_extload
/*79917*/         OPC_Scope, 45, /*->79964*/ // 2 children in Scope
/*79919*/           OPC_CheckPredicate, 42, // Predicate_extloadf32
/*79921*/           OPC_MoveParent,
/*79922*/           OPC_SwitchType /*2 cases */, 19,  MVT::f64,// ->79944
/*79925*/             OPC_CheckPatternPredicate, 9, // (!Subtarget->hasXMMInt())
/*79927*/             OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*79930*/             OPC_EmitMergeInputChains1_1,
/*79931*/             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,// ->79963
/*79946*/             OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*79949*/             OPC_EmitMergeInputChains1_1,
/*79950*/             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
/*79964*/         /*Scope*/ 22, /*->79987*/
/*79965*/           OPC_CheckPredicate, 43, // Predicate_extloadf64
/*79967*/           OPC_MoveParent,
/*79968*/           OPC_CheckType, MVT::f80,
/*79970*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*79973*/           OPC_EmitMergeInputChains1_1,
/*79974*/           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)
/*79987*/         0, /*End of Scope*/
/*79988*/       /*Scope*/ 47, /*->80036*/
/*79989*/         OPC_CheckPredicate, 3, // Predicate_load
/*79991*/         OPC_MoveParent,
/*79992*/         OPC_SwitchType /*2 cases */, 19,  MVT::f32,// ->80014
/*79995*/           OPC_CheckPatternPredicate, 8, // (!Subtarget->hasXMM())
/*79997*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*80000*/           OPC_EmitMergeInputChains1_1,
/*80001*/           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,// ->80035
/*80016*/           OPC_CheckPatternPredicate, 9, // (!Subtarget->hasXMMInt())
/*80018*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*80021*/           OPC_EmitMergeInputChains1_1,
/*80022*/           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
/*80036*/       /*Scope*/ 73, /*->80110*/
/*80037*/         OPC_CheckPredicate, 37, // Predicate_extload
/*80039*/         OPC_Scope, 45, /*->80086*/ // 2 children in Scope
/*80041*/           OPC_CheckPredicate, 42, // Predicate_extloadf32
/*80043*/           OPC_MoveParent,
/*80044*/           OPC_SwitchType /*2 cases */, 19,  MVT::f64,// ->80066
/*80047*/             OPC_CheckPatternPredicate, 9, // (!Subtarget->hasXMMInt())
/*80049*/             OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*80052*/             OPC_EmitMergeInputChains1_1,
/*80053*/             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,// ->80085
/*80068*/             OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*80071*/             OPC_EmitMergeInputChains1_1,
/*80072*/             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
/*80086*/         /*Scope*/ 22, /*->80109*/
/*80087*/           OPC_CheckPredicate, 43, // Predicate_extloadf64
/*80089*/           OPC_MoveParent,
/*80090*/           OPC_CheckType, MVT::f80,
/*80092*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*80095*/           OPC_EmitMergeInputChains1_1,
/*80096*/           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)
/*80109*/         0, /*End of Scope*/
/*80110*/       /*Scope*/ 93, /*->80204*/
/*80111*/         OPC_CheckPredicate, 3, // Predicate_load
/*80113*/         OPC_MoveParent,
/*80114*/         OPC_SwitchType /*2 cases */, 42,  MVT::f32,// ->80159
/*80117*/           OPC_Scope, 19, /*->80138*/ // 2 children in Scope
/*80119*/             OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*80121*/             OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*80124*/             OPC_EmitMergeInputChains1_1,
/*80125*/             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)
/*80138*/           /*Scope*/ 19, /*->80158*/
/*80139*/             OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*80141*/             OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*80144*/             OPC_EmitMergeInputChains1_1,
/*80145*/             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)
/*80158*/           0, /*End of Scope*/
                  /*SwitchType*/ 42,  MVT::f64,// ->80203
/*80161*/           OPC_Scope, 19, /*->80182*/ // 2 children in Scope
/*80163*/             OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*80165*/             OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*80168*/             OPC_EmitMergeInputChains1_1,
/*80169*/             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)
/*80182*/           /*Scope*/ 19, /*->80202*/
/*80183*/             OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*80185*/             OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*80188*/             OPC_EmitMergeInputChains1_1,
/*80189*/             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)
/*80202*/           0, /*End of Scope*/
                  0, // EndSwitchType
/*80204*/       0, /*End of Scope*/
              /*SwitchOpcode*/ 118|128,1/*246*/,  TARGET_VAL(X86ISD::FILD),// ->80455
/*80209*/       OPC_RecordMemRef,
/*80210*/       OPC_RecordNode, // #1 = 'X86fild' chained node
/*80211*/       OPC_CheckFoldableChainNode,
/*80212*/       OPC_RecordChild1, // #2 = $src2
/*80213*/       OPC_MoveChild, 2,
/*80215*/       OPC_Scope, 118, /*->80335*/ // 2 children in Scope
/*80217*/         OPC_CheckValueType, MVT::i16,
/*80219*/         OPC_MoveParent,
/*80220*/         OPC_MoveParent,
/*80221*/         OPC_SwitchType /*3 cases */, 36,  MVT::f32,// ->80260
/*80224*/           OPC_CheckPatternPredicate, 8, // (!Subtarget->hasXMM())
/*80226*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*80229*/           OPC_EmitMergeInputChains1_1,
/*80230*/           OPC_Scope, 13, /*->80245*/ // 2 children in Scope
/*80232*/             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)
/*80245*/           /*Scope*/ 13, /*->80259*/
/*80246*/             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)
/*80259*/           0, /*End of Scope*/
                  /*SwitchType*/ 36,  MVT::f64,// ->80298
/*80262*/           OPC_CheckPatternPredicate, 9, // (!Subtarget->hasXMMInt())
/*80264*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*80267*/           OPC_EmitMergeInputChains1_1,
/*80268*/           OPC_Scope, 13, /*->80283*/ // 2 children in Scope
/*80270*/             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)
/*80283*/           /*Scope*/ 13, /*->80297*/
/*80284*/             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)
/*80297*/           0, /*End of Scope*/
                  /*SwitchType*/ 34,  MVT::f80,// ->80334
/*80300*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*80303*/           OPC_EmitMergeInputChains1_1,
/*80304*/           OPC_Scope, 13, /*->80319*/ // 2 children in Scope
/*80306*/             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)
/*80319*/           /*Scope*/ 13, /*->80333*/
/*80320*/             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)
/*80333*/           0, /*End of Scope*/
                  0, // EndSwitchType
/*80335*/       /*Scope*/ 118, /*->80454*/
/*80336*/         OPC_CheckValueType, MVT::i32,
/*80338*/         OPC_MoveParent,
/*80339*/         OPC_MoveParent,
/*80340*/         OPC_SwitchType /*3 cases */, 36,  MVT::f32,// ->80379
/*80343*/           OPC_CheckPatternPredicate, 8, // (!Subtarget->hasXMM())
/*80345*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*80348*/           OPC_EmitMergeInputChains1_1,
/*80349*/           OPC_Scope, 13, /*->80364*/ // 2 children in Scope
/*80351*/             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)
/*80364*/           /*Scope*/ 13, /*->80378*/
/*80365*/             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)
/*80378*/           0, /*End of Scope*/
                  /*SwitchType*/ 36,  MVT::f64,// ->80417
/*80381*/           OPC_CheckPatternPredicate, 9, // (!Subtarget->hasXMMInt())
/*80383*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*80386*/           OPC_EmitMergeInputChains1_1,
/*80387*/           OPC_Scope, 13, /*->80402*/ // 2 children in Scope
/*80389*/             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)
/*80402*/           /*Scope*/ 13, /*->80416*/
/*80403*/             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)
/*80416*/           0, /*End of Scope*/
                  /*SwitchType*/ 34,  MVT::f80,// ->80453
/*80419*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*80422*/           OPC_EmitMergeInputChains1_1,
/*80423*/           OPC_Scope, 13, /*->80438*/ // 2 children in Scope
/*80425*/             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)
/*80438*/           /*Scope*/ 13, /*->80452*/
/*80439*/             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)
/*80452*/           0, /*End of Scope*/
                  0, // EndSwitchType
/*80454*/       0, /*End of Scope*/
              0, // EndSwitchOpcode
/*80456*/   /*Scope*/ 94, /*->80551*/
/*80457*/     OPC_RecordChild1, // #1 = $src2
/*80458*/     OPC_SwitchType /*3 cases */, 38,  MVT::f32,// ->80499
/*80461*/       OPC_Scope, 11, /*->80474*/ // 3 children in Scope
/*80463*/         OPC_CheckPatternPredicate, 8, // (!Subtarget->hasXMM())
/*80465*/         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)
/*80474*/       /*Scope*/ 11, /*->80486*/
/*80475*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*80477*/         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)
/*80486*/       /*Scope*/ 11, /*->80498*/
/*80487*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*80489*/         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)
/*80498*/       0, /*End of Scope*/
              /*SwitchType*/ 38,  MVT::f64,// ->80539
/*80501*/       OPC_Scope, 11, /*->80514*/ // 3 children in Scope
/*80503*/         OPC_CheckPatternPredicate, 9, // (!Subtarget->hasXMMInt())
/*80505*/         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)
/*80514*/       /*Scope*/ 11, /*->80526*/
/*80515*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*80517*/         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)
/*80526*/       /*Scope*/ 11, /*->80538*/
/*80527*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*80529*/         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)
/*80538*/       0, /*End of Scope*/
              /*SwitchType*/ 9,  MVT::f80,// ->80550
/*80541*/       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
/*80551*/   /*Scope*/ 20|128,1/*148*/, /*->80701*/
/*80553*/     OPC_MoveChild, 1,
/*80555*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*80558*/     OPC_RecordMemRef,
/*80559*/     OPC_RecordNode, // #1 = 'ld' chained node
/*80560*/     OPC_CheckFoldableChainNode,
/*80561*/     OPC_RecordChild1, // #2 = $src2
/*80562*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*80564*/     OPC_CheckPredicate, 3, // Predicate_load
/*80566*/     OPC_CheckPredicate, 23, // Predicate_memop
/*80568*/     OPC_MoveParent,
/*80569*/     OPC_SwitchType /*4 cases */, 42,  MVT::v4f32,// ->80614
/*80572*/       OPC_Scope, 19, /*->80593*/ // 2 children in Scope
/*80574*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*80576*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*80579*/         OPC_EmitMergeInputChains1_1,
/*80580*/         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)
/*80593*/       /*Scope*/ 19, /*->80613*/
/*80594*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*80596*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*80599*/         OPC_EmitMergeInputChains1_1,
/*80600*/         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)
/*80613*/       0, /*End of Scope*/
              /*SwitchType*/ 42,  MVT::v2f64,// ->80658
/*80616*/       OPC_Scope, 19, /*->80637*/ // 2 children in Scope
/*80618*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*80620*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*80623*/         OPC_EmitMergeInputChains1_1,
/*80624*/         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)
/*80637*/       /*Scope*/ 19, /*->80657*/
/*80638*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*80640*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*80643*/         OPC_EmitMergeInputChains1_1,
/*80644*/         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)
/*80657*/       0, /*End of Scope*/
              /*SwitchType*/ 19,  MVT::v8f32,// ->80679
/*80660*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*80662*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*80665*/       OPC_EmitMergeInputChains1_1,
/*80666*/       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,// ->80700
/*80681*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*80683*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*80686*/       OPC_EmitMergeInputChains1_1,
/*80687*/       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
/*80701*/   /*Scope*/ 85, /*->80787*/
/*80702*/     OPC_RecordChild1, // #1 = $src2
/*80703*/     OPC_SwitchType /*4 cases */, 26,  MVT::v4f32,// ->80732
/*80706*/       OPC_Scope, 11, /*->80719*/ // 2 children in Scope
/*80708*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*80710*/         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)
/*80719*/       /*Scope*/ 11, /*->80731*/
/*80720*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*80722*/         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)
/*80731*/       0, /*End of Scope*/
              /*SwitchType*/ 26,  MVT::v2f64,// ->80760
/*80734*/       OPC_Scope, 11, /*->80747*/ // 2 children in Scope
/*80736*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*80738*/         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)
/*80747*/       /*Scope*/ 11, /*->80759*/
/*80748*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*80750*/         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)
/*80759*/       0, /*End of Scope*/
              /*SwitchType*/ 11,  MVT::v8f32,// ->80773
/*80762*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*80764*/       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,// ->80786
/*80775*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*80777*/       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
/*80787*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 111|128,3/*495*/,  TARGET_VAL(ISD::SINT_TO_FP),// ->81287
/*80792*/   OPC_Scope, 116|128,1/*244*/, /*->81039*/ // 4 children in Scope
/*80795*/     OPC_MoveChild, 0,
/*80797*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*80800*/     OPC_RecordMemRef,
/*80801*/     OPC_RecordNode, // #0 = 'ld' chained node
/*80802*/     OPC_RecordChild1, // #1 = $src
/*80803*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*80805*/     OPC_SwitchType /*2 cases */, 114,  MVT::i32,// ->80922
/*80808*/       OPC_Scope, 23, /*->80833*/ // 4 children in Scope
/*80810*/         OPC_CheckPredicate, 7, // Predicate_loadi32
/*80812*/         OPC_MoveParent,
/*80813*/         OPC_CheckType, MVT::f32,
/*80815*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*80817*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*80820*/         OPC_EmitMergeInputChains1_0,
/*80821*/         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)
/*80833*/       /*Scope*/ 23, /*->80857*/
/*80834*/         OPC_CheckPredicate, 7, // Predicate_loadi32
/*80836*/         OPC_MoveParent,
/*80837*/         OPC_CheckType, MVT::f64,
/*80839*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*80841*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*80844*/         OPC_EmitMergeInputChains1_0,
/*80845*/         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)
/*80857*/       /*Scope*/ 31, /*->80889*/
/*80858*/         OPC_CheckPredicate, 7, // Predicate_loadi32
/*80860*/         OPC_MoveParent,
/*80861*/         OPC_CheckType, MVT::f32,
/*80863*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*80865*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*80868*/         OPC_EmitMergeInputChains1_0,
/*80869*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      1/*#VTs*/, MVT::f32, 0/*#Ops*/,  // Results = #7 
/*80876*/         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)
/*80889*/       /*Scope*/ 31, /*->80921*/
/*80890*/         OPC_CheckPredicate, 7, // Predicate_loadi32
/*80892*/         OPC_MoveParent,
/*80893*/         OPC_CheckType, MVT::f64,
/*80895*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*80897*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*80900*/         OPC_EmitMergeInputChains1_0,
/*80901*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      1/*#VTs*/, MVT::f64, 0/*#Ops*/,  // Results = #7 
/*80908*/         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)
/*80921*/       0, /*End of Scope*/
              /*SwitchType*/ 114,  MVT::i64,// ->81038
/*80924*/       OPC_Scope, 23, /*->80949*/ // 4 children in Scope
/*80926*/         OPC_CheckPredicate, 3, // Predicate_load
/*80928*/         OPC_MoveParent,
/*80929*/         OPC_CheckType, MVT::f32,
/*80931*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*80933*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*80936*/         OPC_EmitMergeInputChains1_0,
/*80937*/         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)
/*80949*/       /*Scope*/ 23, /*->80973*/
/*80950*/         OPC_CheckPredicate, 3, // Predicate_load
/*80952*/         OPC_MoveParent,
/*80953*/         OPC_CheckType, MVT::f64,
/*80955*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*80957*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*80960*/         OPC_EmitMergeInputChains1_0,
/*80961*/         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)
/*80973*/       /*Scope*/ 31, /*->81005*/
/*80974*/         OPC_CheckPredicate, 3, // Predicate_load
/*80976*/         OPC_MoveParent,
/*80977*/         OPC_CheckType, MVT::f32,
/*80979*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*80981*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*80984*/         OPC_EmitMergeInputChains1_0,
/*80985*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      1/*#VTs*/, MVT::f32, 0/*#Ops*/,  // Results = #7 
/*80992*/         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)
/*81005*/       /*Scope*/ 31, /*->81037*/
/*81006*/         OPC_CheckPredicate, 3, // Predicate_load
/*81008*/         OPC_MoveParent,
/*81009*/         OPC_CheckType, MVT::f64,
/*81011*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*81013*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*81016*/         OPC_EmitMergeInputChains1_0,
/*81017*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      1/*#VTs*/, MVT::f64, 0/*#Ops*/,  // Results = #7 
/*81024*/         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)
/*81037*/       0, /*End of Scope*/
              0, // EndSwitchType
/*81039*/   /*Scope*/ 21|128,1/*149*/, /*->81190*/
/*81041*/     OPC_RecordChild0, // #0 = $src
/*81042*/     OPC_Scope, 72, /*->81116*/ // 2 children in Scope
/*81044*/       OPC_CheckChild0Type, MVT::i32,
/*81046*/       OPC_SwitchType /*2 cases */, 32,  MVT::f32,// ->81081
/*81049*/         OPC_Scope, 10, /*->81061*/ // 2 children in Scope
/*81051*/           OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*81053*/           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)
/*81061*/         /*Scope*/ 18, /*->81080*/
/*81062*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*81064*/           OPC_EmitNode, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        1/*#VTs*/, MVT::f32, 0/*#Ops*/,  // Results = #1 
/*81071*/           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)
/*81080*/         0, /*End of Scope*/
                /*SwitchType*/ 32,  MVT::f64,// ->81115
/*81083*/         OPC_Scope, 10, /*->81095*/ // 2 children in Scope
/*81085*/           OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*81087*/           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)
/*81095*/         /*Scope*/ 18, /*->81114*/
/*81096*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*81098*/           OPC_EmitNode, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        1/*#VTs*/, MVT::f64, 0/*#Ops*/,  // Results = #1 
/*81105*/           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)
/*81114*/         0, /*End of Scope*/
                0, // EndSwitchType
/*81116*/     /*Scope*/ 72, /*->81189*/
/*81117*/       OPC_CheckChild0Type, MVT::i64,
/*81119*/       OPC_SwitchType /*2 cases */, 32,  MVT::f32,// ->81154
/*81122*/         OPC_Scope, 10, /*->81134*/ // 2 children in Scope
/*81124*/           OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*81126*/           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)
/*81134*/         /*Scope*/ 18, /*->81153*/
/*81135*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*81137*/           OPC_EmitNode, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        1/*#VTs*/, MVT::f32, 0/*#Ops*/,  // Results = #1 
/*81144*/           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)
/*81153*/         0, /*End of Scope*/
                /*SwitchType*/ 32,  MVT::f64,// ->81188
/*81156*/         OPC_Scope, 10, /*->81168*/ // 2 children in Scope
/*81158*/           OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*81160*/           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)
/*81168*/         /*Scope*/ 18, /*->81187*/
/*81169*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*81171*/           OPC_EmitNode, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        1/*#VTs*/, MVT::f64, 0/*#Ops*/,  // Results = #1 
/*81178*/           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)
/*81187*/         0, /*End of Scope*/
                0, // EndSwitchType
/*81189*/     0, /*End of Scope*/
/*81190*/   /*Scope*/ 35, /*->81226*/
/*81191*/     OPC_MoveChild, 0,
/*81193*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*81196*/     OPC_RecordMemRef,
/*81197*/     OPC_RecordNode, // #0 = 'ld' chained node
/*81198*/     OPC_RecordChild1, // #1 = $src
/*81199*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*81201*/     OPC_CheckPredicate, 3, // Predicate_load
/*81203*/     OPC_CheckPredicate, 23, // Predicate_memop
/*81205*/     OPC_CheckType, MVT::v4i32,
/*81207*/     OPC_MoveParent,
/*81208*/     OPC_CheckType, MVT::v4f64,
/*81210*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*81213*/     OPC_EmitMergeInputChains1_0,
/*81214*/     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)
/*81226*/   /*Scope*/ 59, /*->81286*/
/*81227*/     OPC_RecordChild0, // #0 = $src
/*81228*/     OPC_Scope, 40, /*->81270*/ // 2 children in Scope
/*81230*/       OPC_CheckChild0Type, MVT::v4i32,
/*81232*/       OPC_SwitchType /*2 cases */, 24,  MVT::v4f32,// ->81259
/*81235*/         OPC_Scope, 10, /*->81247*/ // 2 children in Scope
/*81237*/           OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*81239*/           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)
/*81247*/         /*Scope*/ 10, /*->81258*/
/*81248*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*81250*/           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)
/*81258*/         0, /*End of Scope*/
                /*SwitchType*/ 8,  MVT::v4f64,// ->81269
/*81261*/         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
/*81270*/     /*Scope*/ 14, /*->81285*/
/*81271*/       OPC_CheckChild0Type, MVT::v8i32,
/*81273*/       OPC_CheckType, MVT::v8f32,
/*81275*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*81277*/       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)
/*81285*/     0, /*End of Scope*/
/*81286*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 44|128,1/*172*/,  TARGET_VAL(ISD::FP_ROUND),// ->81463
/*81291*/   OPC_Scope, 35, /*->81328*/ // 4 children in Scope
/*81293*/     OPC_MoveChild, 0,
/*81295*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*81298*/     OPC_RecordMemRef,
/*81299*/     OPC_RecordNode, // #0 = 'ld' chained node
/*81300*/     OPC_RecordChild1, // #1 = $src
/*81301*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*81303*/     OPC_CheckPredicate, 3, // Predicate_load
/*81305*/     OPC_CheckType, MVT::f64,
/*81307*/     OPC_MoveParent,
/*81308*/     OPC_CheckType, MVT::f32,
/*81310*/     OPC_CheckPatternPredicate, 30, // (Subtarget->hasSSE2()) && (OptForSize)
/*81312*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*81315*/     OPC_EmitMergeInputChains1_0,
/*81316*/     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)
/*81328*/   /*Scope*/ 85, /*->81414*/
/*81329*/     OPC_RecordChild0, // #0 = $src
/*81330*/     OPC_SwitchType /*2 cases */, 64,  MVT::f32,// ->81397
/*81333*/       OPC_Scope, 16, /*->81351*/ // 3 children in Scope
/*81335*/         OPC_CheckChild0Type, MVT::f64,
/*81337*/         OPC_CheckPatternPredicate, 8, // (!Subtarget->hasXMM())
/*81339*/         OPC_EmitInteger, MVT::i32, X86::RFP32RegClassID,
/*81342*/         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)
/*81351*/       /*Scope*/ 16, /*->81368*/
/*81352*/         OPC_CheckChild0Type, MVT::f80,
/*81354*/         OPC_CheckPatternPredicate, 8, // (!Subtarget->hasXMM())
/*81356*/         OPC_EmitInteger, MVT::i32, X86::RFP32RegClassID,
/*81359*/         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)
/*81368*/       /*Scope*/ 27, /*->81396*/
/*81369*/         OPC_CheckChild0Type, MVT::f64,
/*81371*/         OPC_Scope, 11, /*->81384*/ // 2 children in Scope
/*81373*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*81375*/           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)
/*81384*/         /*Scope*/ 10, /*->81395*/
/*81385*/           OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*81387*/           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)
/*81395*/         0, /*End of Scope*/
/*81396*/       0, /*End of Scope*/
              /*SwitchType*/ 14,  MVT::f64,// ->81413
/*81399*/       OPC_CheckPatternPredicate, 9, // (!Subtarget->hasXMMInt())
/*81401*/       OPC_EmitInteger, MVT::i32, X86::RFP64RegClassID,
/*81404*/       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
/*81414*/   /*Scope*/ 33, /*->81448*/
/*81415*/     OPC_MoveChild, 0,
/*81417*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*81420*/     OPC_RecordMemRef,
/*81421*/     OPC_RecordNode, // #0 = 'ld' chained node
/*81422*/     OPC_RecordChild1, // #1 = $src
/*81423*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*81425*/     OPC_CheckPredicate, 3, // Predicate_load
/*81427*/     OPC_CheckType, MVT::v4f64,
/*81429*/     OPC_MoveParent,
/*81430*/     OPC_CheckType, MVT::v4f32,
/*81432*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*81435*/     OPC_EmitMergeInputChains1_0,
/*81436*/     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)
/*81448*/   /*Scope*/ 13, /*->81462*/
/*81449*/     OPC_RecordChild0, // #0 = $src
/*81450*/     OPC_CheckChild0Type, MVT::v4f64,
/*81452*/     OPC_CheckType, MVT::v4f32,
/*81454*/     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)
/*81462*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 74|128,1/*202*/,  TARGET_VAL(ISD::FP_EXTEND),// ->81669
/*81467*/   OPC_Scope, 65, /*->81534*/ // 4 children in Scope
/*81469*/     OPC_MoveChild, 0,
/*81471*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*81474*/     OPC_RecordMemRef,
/*81475*/     OPC_RecordNode, // #0 = 'ld' chained node
/*81476*/     OPC_RecordChild1, // #1 = $src
/*81477*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*81479*/     OPC_CheckPredicate, 3, // Predicate_load
/*81481*/     OPC_CheckType, MVT::f32,
/*81483*/     OPC_MoveParent,
/*81484*/     OPC_CheckType, MVT::f64,
/*81486*/     OPC_Scope, 18, /*->81506*/ // 2 children in Scope
/*81488*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*81490*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*81493*/       OPC_EmitMergeInputChains1_0,
/*81494*/       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)
/*81506*/     /*Scope*/ 26, /*->81533*/
/*81507*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*81509*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*81512*/       OPC_EmitMergeInputChains1_0,
/*81513*/       OPC_EmitNode, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    1/*#VTs*/, MVT::f32, 0/*#Ops*/,  // Results = #7 
/*81520*/       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)
/*81533*/     0, /*End of Scope*/
/*81534*/   /*Scope*/ 85, /*->81620*/
/*81535*/     OPC_RecordChild0, // #0 = $src
/*81536*/     OPC_Scope, 62, /*->81600*/ // 2 children in Scope
/*81538*/       OPC_CheckChild0Type, MVT::f32,
/*81540*/       OPC_SwitchType /*2 cases */, 40,  MVT::f64,// ->81583
/*81543*/         OPC_Scope, 14, /*->81559*/ // 3 children in Scope
/*81545*/           OPC_CheckPatternPredicate, 8, // (!Subtarget->hasXMM())
/*81547*/           OPC_EmitInteger, MVT::i32, X86::RFP64RegClassID,
/*81550*/           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)
/*81559*/         /*Scope*/ 11, /*->81571*/
/*81560*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*81562*/           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)
/*81571*/         /*Scope*/ 10, /*->81582*/
/*81572*/           OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*81574*/           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)
/*81582*/         0, /*End of Scope*/
                /*SwitchType*/ 14,  MVT::f80,// ->81599
/*81585*/         OPC_CheckPatternPredicate, 8, // (!Subtarget->hasXMM())
/*81587*/         OPC_EmitInteger, MVT::i32, X86::RFP80RegClassID,
/*81590*/         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
/*81600*/     /*Scope*/ 18, /*->81619*/
/*81601*/       OPC_CheckChild0Type, MVT::f64,
/*81603*/       OPC_CheckType, MVT::f80,
/*81605*/       OPC_CheckPatternPredicate, 9, // (!Subtarget->hasXMMInt())
/*81607*/       OPC_EmitInteger, MVT::i32, X86::RFP80RegClassID,
/*81610*/       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)
/*81619*/     0, /*End of Scope*/
/*81620*/   /*Scope*/ 33, /*->81654*/
/*81621*/     OPC_MoveChild, 0,
/*81623*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*81626*/     OPC_RecordMemRef,
/*81627*/     OPC_RecordNode, // #0 = 'ld' chained node
/*81628*/     OPC_RecordChild1, // #1 = $src
/*81629*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*81631*/     OPC_CheckPredicate, 3, // Predicate_load
/*81633*/     OPC_CheckType, MVT::v4f32,
/*81635*/     OPC_MoveParent,
/*81636*/     OPC_CheckType, MVT::v4f64,
/*81638*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*81641*/     OPC_EmitMergeInputChains1_0,
/*81642*/     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)
/*81654*/   /*Scope*/ 13, /*->81668*/
/*81655*/     OPC_RecordChild0, // #0 = $src
/*81656*/     OPC_CheckChild0Type, MVT::v4f32,
/*81658*/     OPC_CheckType, MVT::v4f64,
/*81660*/     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)
/*81668*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 23|128,2/*279*/,  TARGET_VAL(X86ISD::FAND),// ->81952
/*81673*/   OPC_Scope, 107, /*->81782*/ // 3 children in Scope
/*81675*/     OPC_RecordChild0, // #0 = $src1
/*81676*/     OPC_MoveChild, 1,
/*81678*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*81681*/     OPC_RecordMemRef,
/*81682*/     OPC_RecordNode, // #1 = 'ld' chained node
/*81683*/     OPC_CheckFoldableChainNode,
/*81684*/     OPC_RecordChild1, // #2 = $src2
/*81685*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*81687*/     OPC_CheckPredicate, 3, // Predicate_load
/*81689*/     OPC_CheckPredicate, 23, // Predicate_memop
/*81691*/     OPC_MoveParent,
/*81692*/     OPC_SwitchType /*2 cases */, 42,  MVT::f32,// ->81737
/*81695*/       OPC_Scope, 19, /*->81716*/ // 2 children in Scope
/*81697*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*81699*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*81702*/         OPC_EmitMergeInputChains1_1,
/*81703*/         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)
/*81716*/       /*Scope*/ 19, /*->81736*/
/*81717*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*81719*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*81722*/         OPC_EmitMergeInputChains1_1,
/*81723*/         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)
/*81736*/       0, /*End of Scope*/
              /*SwitchType*/ 42,  MVT::f64,// ->81781
/*81739*/       OPC_Scope, 19, /*->81760*/ // 2 children in Scope
/*81741*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*81743*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*81746*/         OPC_EmitMergeInputChains1_1,
/*81747*/         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)
/*81760*/       /*Scope*/ 19, /*->81780*/
/*81761*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*81763*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*81766*/         OPC_EmitMergeInputChains1_1,
/*81767*/         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)
/*81780*/       0, /*End of Scope*/
              0, // EndSwitchType
/*81782*/   /*Scope*/ 107, /*->81890*/
/*81783*/     OPC_MoveChild, 0,
/*81785*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*81788*/     OPC_RecordMemRef,
/*81789*/     OPC_RecordNode, // #0 = 'ld' chained node
/*81790*/     OPC_CheckFoldableChainNode,
/*81791*/     OPC_RecordChild1, // #1 = $src2
/*81792*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*81794*/     OPC_CheckPredicate, 3, // Predicate_load
/*81796*/     OPC_CheckPredicate, 23, // Predicate_memop
/*81798*/     OPC_MoveParent,
/*81799*/     OPC_RecordChild1, // #2 = $src1
/*81800*/     OPC_SwitchType /*2 cases */, 42,  MVT::f32,// ->81845
/*81803*/       OPC_Scope, 19, /*->81824*/ // 2 children in Scope
/*81805*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*81807*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*81810*/         OPC_EmitMergeInputChains1_0,
/*81811*/         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)
/*81824*/       /*Scope*/ 19, /*->81844*/
/*81825*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*81827*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*81830*/         OPC_EmitMergeInputChains1_0,
/*81831*/         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)
/*81844*/       0, /*End of Scope*/
              /*SwitchType*/ 42,  MVT::f64,// ->81889
/*81847*/       OPC_Scope, 19, /*->81868*/ // 2 children in Scope
/*81849*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*81851*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*81854*/         OPC_EmitMergeInputChains1_0,
/*81855*/         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)
/*81868*/       /*Scope*/ 19, /*->81888*/
/*81869*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*81871*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*81874*/         OPC_EmitMergeInputChains1_0,
/*81875*/         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)
/*81888*/       0, /*End of Scope*/
              0, // EndSwitchType
/*81890*/   /*Scope*/ 60, /*->81951*/
/*81891*/     OPC_RecordChild0, // #0 = $src1
/*81892*/     OPC_RecordChild1, // #1 = $src2
/*81893*/     OPC_SwitchType /*2 cases */, 26,  MVT::f32,// ->81922
/*81896*/       OPC_Scope, 11, /*->81909*/ // 2 children in Scope
/*81898*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*81900*/         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)
/*81909*/       /*Scope*/ 11, /*->81921*/
/*81910*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*81912*/         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)
/*81921*/       0, /*End of Scope*/
              /*SwitchType*/ 26,  MVT::f64,// ->81950
/*81924*/       OPC_Scope, 11, /*->81937*/ // 2 children in Scope
/*81926*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*81928*/         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)
/*81937*/       /*Scope*/ 11, /*->81949*/
/*81938*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*81940*/         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)
/*81949*/       0, /*End of Scope*/
              0, // EndSwitchType
/*81951*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 23|128,2/*279*/,  TARGET_VAL(X86ISD::FOR),// ->82235
/*81956*/   OPC_Scope, 107, /*->82065*/ // 3 children in Scope
/*81958*/     OPC_RecordChild0, // #0 = $src1
/*81959*/     OPC_MoveChild, 1,
/*81961*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*81964*/     OPC_RecordMemRef,
/*81965*/     OPC_RecordNode, // #1 = 'ld' chained node
/*81966*/     OPC_CheckFoldableChainNode,
/*81967*/     OPC_RecordChild1, // #2 = $src2
/*81968*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*81970*/     OPC_CheckPredicate, 3, // Predicate_load
/*81972*/     OPC_CheckPredicate, 23, // Predicate_memop
/*81974*/     OPC_MoveParent,
/*81975*/     OPC_SwitchType /*2 cases */, 42,  MVT::f32,// ->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::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)
/*81999*/       /*Scope*/ 19, /*->82019*/
/*82000*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*82002*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*82005*/         OPC_EmitMergeInputChains1_1,
/*82006*/         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)
/*82019*/       0, /*End of Scope*/
              /*SwitchType*/ 42,  MVT::f64,// ->82064
/*82022*/       OPC_Scope, 19, /*->82043*/ // 2 children in Scope
/*82024*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*82026*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*82029*/         OPC_EmitMergeInputChains1_1,
/*82030*/         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)
/*82043*/       /*Scope*/ 19, /*->82063*/
/*82044*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*82046*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*82049*/         OPC_EmitMergeInputChains1_1,
/*82050*/         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)
/*82063*/       0, /*End of Scope*/
              0, // EndSwitchType
/*82065*/   /*Scope*/ 107, /*->82173*/
/*82066*/     OPC_MoveChild, 0,
/*82068*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*82071*/     OPC_RecordMemRef,
/*82072*/     OPC_RecordNode, // #0 = 'ld' chained node
/*82073*/     OPC_CheckFoldableChainNode,
/*82074*/     OPC_RecordChild1, // #1 = $src2
/*82075*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*82077*/     OPC_CheckPredicate, 3, // Predicate_load
/*82079*/     OPC_CheckPredicate, 23, // Predicate_memop
/*82081*/     OPC_MoveParent,
/*82082*/     OPC_RecordChild1, // #2 = $src1
/*82083*/     OPC_SwitchType /*2 cases */, 42,  MVT::f32,// ->82128
/*82086*/       OPC_Scope, 19, /*->82107*/ // 2 children in Scope
/*82088*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*82090*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*82093*/         OPC_EmitMergeInputChains1_0,
/*82094*/         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)
/*82107*/       /*Scope*/ 19, /*->82127*/
/*82108*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*82110*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*82113*/         OPC_EmitMergeInputChains1_0,
/*82114*/         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)
/*82127*/       0, /*End of Scope*/
              /*SwitchType*/ 42,  MVT::f64,// ->82172
/*82130*/       OPC_Scope, 19, /*->82151*/ // 2 children in Scope
/*82132*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*82134*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*82137*/         OPC_EmitMergeInputChains1_0,
/*82138*/         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)
/*82151*/       /*Scope*/ 19, /*->82171*/
/*82152*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*82154*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*82157*/         OPC_EmitMergeInputChains1_0,
/*82158*/         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)
/*82171*/       0, /*End of Scope*/
              0, // EndSwitchType
/*82173*/   /*Scope*/ 60, /*->82234*/
/*82174*/     OPC_RecordChild0, // #0 = $src1
/*82175*/     OPC_RecordChild1, // #1 = $src2
/*82176*/     OPC_SwitchType /*2 cases */, 26,  MVT::f32,// ->82205
/*82179*/       OPC_Scope, 11, /*->82192*/ // 2 children in Scope
/*82181*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*82183*/         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)
/*82192*/       /*Scope*/ 11, /*->82204*/
/*82193*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*82195*/         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)
/*82204*/       0, /*End of Scope*/
              /*SwitchType*/ 26,  MVT::f64,// ->82233
/*82207*/       OPC_Scope, 11, /*->82220*/ // 2 children in Scope
/*82209*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*82211*/         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)
/*82220*/       /*Scope*/ 11, /*->82232*/
/*82221*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*82223*/         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)
/*82232*/       0, /*End of Scope*/
              0, // EndSwitchType
/*82234*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 23|128,2/*279*/,  TARGET_VAL(X86ISD::FXOR),// ->82518
/*82239*/   OPC_Scope, 107, /*->82348*/ // 3 children in Scope
/*82241*/     OPC_RecordChild0, // #0 = $src1
/*82242*/     OPC_MoveChild, 1,
/*82244*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*82247*/     OPC_RecordMemRef,
/*82248*/     OPC_RecordNode, // #1 = 'ld' chained node
/*82249*/     OPC_CheckFoldableChainNode,
/*82250*/     OPC_RecordChild1, // #2 = $src2
/*82251*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*82253*/     OPC_CheckPredicate, 3, // Predicate_load
/*82255*/     OPC_CheckPredicate, 23, // Predicate_memop
/*82257*/     OPC_MoveParent,
/*82258*/     OPC_SwitchType /*2 cases */, 42,  MVT::f32,// ->82303
/*82261*/       OPC_Scope, 19, /*->82282*/ // 2 children in Scope
/*82263*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*82265*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*82268*/         OPC_EmitMergeInputChains1_1,
/*82269*/         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)
/*82282*/       /*Scope*/ 19, /*->82302*/
/*82283*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*82285*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*82288*/         OPC_EmitMergeInputChains1_1,
/*82289*/         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)
/*82302*/       0, /*End of Scope*/
              /*SwitchType*/ 42,  MVT::f64,// ->82347
/*82305*/       OPC_Scope, 19, /*->82326*/ // 2 children in Scope
/*82307*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*82309*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*82312*/         OPC_EmitMergeInputChains1_1,
/*82313*/         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)
/*82326*/       /*Scope*/ 19, /*->82346*/
/*82327*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*82329*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*82332*/         OPC_EmitMergeInputChains1_1,
/*82333*/         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)
/*82346*/       0, /*End of Scope*/
              0, // EndSwitchType
/*82348*/   /*Scope*/ 107, /*->82456*/
/*82349*/     OPC_MoveChild, 0,
/*82351*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*82354*/     OPC_RecordMemRef,
/*82355*/     OPC_RecordNode, // #0 = 'ld' chained node
/*82356*/     OPC_CheckFoldableChainNode,
/*82357*/     OPC_RecordChild1, // #1 = $src2
/*82358*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*82360*/     OPC_CheckPredicate, 3, // Predicate_load
/*82362*/     OPC_CheckPredicate, 23, // Predicate_memop
/*82364*/     OPC_MoveParent,
/*82365*/     OPC_RecordChild1, // #2 = $src1
/*82366*/     OPC_SwitchType /*2 cases */, 42,  MVT::f32,// ->82411
/*82369*/       OPC_Scope, 19, /*->82390*/ // 2 children in Scope
/*82371*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*82373*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*82376*/         OPC_EmitMergeInputChains1_0,
/*82377*/         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)
/*82390*/       /*Scope*/ 19, /*->82410*/
/*82391*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*82393*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*82396*/         OPC_EmitMergeInputChains1_0,
/*82397*/         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)
/*82410*/       0, /*End of Scope*/
              /*SwitchType*/ 42,  MVT::f64,// ->82455
/*82413*/       OPC_Scope, 19, /*->82434*/ // 2 children in Scope
/*82415*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*82417*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*82420*/         OPC_EmitMergeInputChains1_0,
/*82421*/         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)
/*82434*/       /*Scope*/ 19, /*->82454*/
/*82435*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*82437*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*82440*/         OPC_EmitMergeInputChains1_0,
/*82441*/         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)
/*82454*/       0, /*End of Scope*/
              0, // EndSwitchType
/*82456*/   /*Scope*/ 60, /*->82517*/
/*82457*/     OPC_RecordChild0, // #0 = $src1
/*82458*/     OPC_RecordChild1, // #1 = $src2
/*82459*/     OPC_SwitchType /*2 cases */, 26,  MVT::f32,// ->82488
/*82462*/       OPC_Scope, 11, /*->82475*/ // 2 children in Scope
/*82464*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*82466*/         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)
/*82475*/       /*Scope*/ 11, /*->82487*/
/*82476*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*82478*/         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)
/*82487*/       0, /*End of Scope*/
              /*SwitchType*/ 26,  MVT::f64,// ->82516
/*82490*/       OPC_Scope, 11, /*->82503*/ // 2 children in Scope
/*82492*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*82494*/         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)
/*82503*/       /*Scope*/ 11, /*->82515*/
/*82504*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*82506*/         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)
/*82515*/       0, /*End of Scope*/
              0, // EndSwitchType
/*82517*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 20|128,3/*404*/,  TARGET_VAL(X86ISD::FMAX),// ->82926
/*82522*/   OPC_RecordChild0, // #0 = $src1
/*82523*/   OPC_Scope, 104, /*->82629*/ // 4 children in Scope
/*82525*/     OPC_MoveChild, 1,
/*82527*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*82530*/     OPC_RecordMemRef,
/*82531*/     OPC_RecordNode, // #1 = 'ld' chained node
/*82532*/     OPC_CheckFoldableChainNode,
/*82533*/     OPC_RecordChild1, // #2 = $src2
/*82534*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*82536*/     OPC_CheckPredicate, 3, // Predicate_load
/*82538*/     OPC_MoveParent,
/*82539*/     OPC_SwitchType /*2 cases */, 42,  MVT::f32,// ->82584
/*82542*/       OPC_Scope, 19, /*->82563*/ // 2 children in Scope
/*82544*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*82546*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*82549*/         OPC_EmitMergeInputChains1_1,
/*82550*/         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)
/*82563*/       /*Scope*/ 19, /*->82583*/
/*82564*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*82566*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*82569*/         OPC_EmitMergeInputChains1_1,
/*82570*/         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)
/*82583*/       0, /*End of Scope*/
              /*SwitchType*/ 42,  MVT::f64,// ->82628
/*82586*/       OPC_Scope, 19, /*->82607*/ // 2 children in Scope
/*82588*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*82590*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*82593*/         OPC_EmitMergeInputChains1_1,
/*82594*/         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)
/*82607*/       /*Scope*/ 19, /*->82627*/
/*82608*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*82610*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*82613*/         OPC_EmitMergeInputChains1_1,
/*82614*/         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)
/*82627*/       0, /*End of Scope*/
              0, // EndSwitchType
/*82629*/   /*Scope*/ 59, /*->82689*/
/*82630*/     OPC_RecordChild1, // #1 = $src2
/*82631*/     OPC_SwitchType /*2 cases */, 26,  MVT::f32,// ->82660
/*82634*/       OPC_Scope, 11, /*->82647*/ // 2 children in Scope
/*82636*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*82638*/         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)
/*82647*/       /*Scope*/ 11, /*->82659*/
/*82648*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*82650*/         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)
/*82659*/       0, /*End of Scope*/
              /*SwitchType*/ 26,  MVT::f64,// ->82688
/*82662*/       OPC_Scope, 11, /*->82675*/ // 2 children in Scope
/*82664*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*82666*/         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)
/*82675*/       /*Scope*/ 11, /*->82687*/
/*82676*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*82678*/         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)
/*82687*/       0, /*End of Scope*/
              0, // EndSwitchType
/*82689*/   /*Scope*/ 20|128,1/*148*/, /*->82839*/
/*82691*/     OPC_MoveChild, 1,
/*82693*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*82696*/     OPC_RecordMemRef,
/*82697*/     OPC_RecordNode, // #1 = 'ld' chained node
/*82698*/     OPC_CheckFoldableChainNode,
/*82699*/     OPC_RecordChild1, // #2 = $src2
/*82700*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*82702*/     OPC_CheckPredicate, 3, // Predicate_load
/*82704*/     OPC_CheckPredicate, 23, // Predicate_memop
/*82706*/     OPC_MoveParent,
/*82707*/     OPC_SwitchType /*4 cases */, 42,  MVT::v4f32,// ->82752
/*82710*/       OPC_Scope, 19, /*->82731*/ // 2 children in Scope
/*82712*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*82714*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*82717*/         OPC_EmitMergeInputChains1_1,
/*82718*/         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)
/*82731*/       /*Scope*/ 19, /*->82751*/
/*82732*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*82734*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*82737*/         OPC_EmitMergeInputChains1_1,
/*82738*/         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)
/*82751*/       0, /*End of Scope*/
              /*SwitchType*/ 42,  MVT::v2f64,// ->82796
/*82754*/       OPC_Scope, 19, /*->82775*/ // 2 children in Scope
/*82756*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*82758*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*82761*/         OPC_EmitMergeInputChains1_1,
/*82762*/         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)
/*82775*/       /*Scope*/ 19, /*->82795*/
/*82776*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*82778*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*82781*/         OPC_EmitMergeInputChains1_1,
/*82782*/         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)
/*82795*/       0, /*End of Scope*/
              /*SwitchType*/ 19,  MVT::v8f32,// ->82817
/*82798*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*82800*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*82803*/       OPC_EmitMergeInputChains1_1,
/*82804*/       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,// ->82838
/*82819*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*82821*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*82824*/       OPC_EmitMergeInputChains1_1,
/*82825*/       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
/*82839*/   /*Scope*/ 85, /*->82925*/
/*82840*/     OPC_RecordChild1, // #1 = $src2
/*82841*/     OPC_SwitchType /*4 cases */, 26,  MVT::v4f32,// ->82870
/*82844*/       OPC_Scope, 11, /*->82857*/ // 2 children in Scope
/*82846*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*82848*/         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)
/*82857*/       /*Scope*/ 11, /*->82869*/
/*82858*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*82860*/         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)
/*82869*/       0, /*End of Scope*/
              /*SwitchType*/ 26,  MVT::v2f64,// ->82898
/*82872*/       OPC_Scope, 11, /*->82885*/ // 2 children in Scope
/*82874*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*82876*/         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)
/*82885*/       /*Scope*/ 11, /*->82897*/
/*82886*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*82888*/         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)
/*82897*/       0, /*End of Scope*/
              /*SwitchType*/ 11,  MVT::v8f32,// ->82911
/*82900*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*82902*/       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,// ->82924
/*82913*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*82915*/       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
/*82925*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 20|128,3/*404*/,  TARGET_VAL(X86ISD::FMIN),// ->83334
/*82930*/   OPC_RecordChild0, // #0 = $src1
/*82931*/   OPC_Scope, 104, /*->83037*/ // 4 children in Scope
/*82933*/     OPC_MoveChild, 1,
/*82935*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*82938*/     OPC_RecordMemRef,
/*82939*/     OPC_RecordNode, // #1 = 'ld' chained node
/*82940*/     OPC_CheckFoldableChainNode,
/*82941*/     OPC_RecordChild1, // #2 = $src2
/*82942*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*82944*/     OPC_CheckPredicate, 3, // Predicate_load
/*82946*/     OPC_MoveParent,
/*82947*/     OPC_SwitchType /*2 cases */, 42,  MVT::f32,// ->82992
/*82950*/       OPC_Scope, 19, /*->82971*/ // 2 children in Scope
/*82952*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*82954*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*82957*/         OPC_EmitMergeInputChains1_1,
/*82958*/         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)
/*82971*/       /*Scope*/ 19, /*->82991*/
/*82972*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*82974*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*82977*/         OPC_EmitMergeInputChains1_1,
/*82978*/         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)
/*82991*/       0, /*End of Scope*/
              /*SwitchType*/ 42,  MVT::f64,// ->83036
/*82994*/       OPC_Scope, 19, /*->83015*/ // 2 children in Scope
/*82996*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*82998*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*83001*/         OPC_EmitMergeInputChains1_1,
/*83002*/         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)
/*83015*/       /*Scope*/ 19, /*->83035*/
/*83016*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*83018*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*83021*/         OPC_EmitMergeInputChains1_1,
/*83022*/         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)
/*83035*/       0, /*End of Scope*/
              0, // EndSwitchType
/*83037*/   /*Scope*/ 59, /*->83097*/
/*83038*/     OPC_RecordChild1, // #1 = $src2
/*83039*/     OPC_SwitchType /*2 cases */, 26,  MVT::f32,// ->83068
/*83042*/       OPC_Scope, 11, /*->83055*/ // 2 children in Scope
/*83044*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*83046*/         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)
/*83055*/       /*Scope*/ 11, /*->83067*/
/*83056*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*83058*/         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)
/*83067*/       0, /*End of Scope*/
              /*SwitchType*/ 26,  MVT::f64,// ->83096
/*83070*/       OPC_Scope, 11, /*->83083*/ // 2 children in Scope
/*83072*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*83074*/         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)
/*83083*/       /*Scope*/ 11, /*->83095*/
/*83084*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*83086*/         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)
/*83095*/       0, /*End of Scope*/
              0, // EndSwitchType
/*83097*/   /*Scope*/ 20|128,1/*148*/, /*->83247*/
/*83099*/     OPC_MoveChild, 1,
/*83101*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*83104*/     OPC_RecordMemRef,
/*83105*/     OPC_RecordNode, // #1 = 'ld' chained node
/*83106*/     OPC_CheckFoldableChainNode,
/*83107*/     OPC_RecordChild1, // #2 = $src2
/*83108*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*83110*/     OPC_CheckPredicate, 3, // Predicate_load
/*83112*/     OPC_CheckPredicate, 23, // Predicate_memop
/*83114*/     OPC_MoveParent,
/*83115*/     OPC_SwitchType /*4 cases */, 42,  MVT::v4f32,// ->83160
/*83118*/       OPC_Scope, 19, /*->83139*/ // 2 children in Scope
/*83120*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*83122*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*83125*/         OPC_EmitMergeInputChains1_1,
/*83126*/         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)
/*83139*/       /*Scope*/ 19, /*->83159*/
/*83140*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*83142*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*83145*/         OPC_EmitMergeInputChains1_1,
/*83146*/         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)
/*83159*/       0, /*End of Scope*/
              /*SwitchType*/ 42,  MVT::v2f64,// ->83204
/*83162*/       OPC_Scope, 19, /*->83183*/ // 2 children in Scope
/*83164*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*83166*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*83169*/         OPC_EmitMergeInputChains1_1,
/*83170*/         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)
/*83183*/       /*Scope*/ 19, /*->83203*/
/*83184*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*83186*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*83189*/         OPC_EmitMergeInputChains1_1,
/*83190*/         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)
/*83203*/       0, /*End of Scope*/
              /*SwitchType*/ 19,  MVT::v8f32,// ->83225
/*83206*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*83208*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*83211*/       OPC_EmitMergeInputChains1_1,
/*83212*/       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,// ->83246
/*83227*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*83229*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*83232*/       OPC_EmitMergeInputChains1_1,
/*83233*/       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
/*83247*/   /*Scope*/ 85, /*->83333*/
/*83248*/     OPC_RecordChild1, // #1 = $src2
/*83249*/     OPC_SwitchType /*4 cases */, 26,  MVT::v4f32,// ->83278
/*83252*/       OPC_Scope, 11, /*->83265*/ // 2 children in Scope
/*83254*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*83256*/         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)
/*83265*/       /*Scope*/ 11, /*->83277*/
/*83266*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*83268*/         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)
/*83277*/       0, /*End of Scope*/
              /*SwitchType*/ 26,  MVT::v2f64,// ->83306
/*83280*/       OPC_Scope, 11, /*->83293*/ // 2 children in Scope
/*83282*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*83284*/         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)
/*83293*/       /*Scope*/ 11, /*->83305*/
/*83294*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*83296*/         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)
/*83305*/       0, /*End of Scope*/
              /*SwitchType*/ 11,  MVT::v8f32,// ->83319
/*83308*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*83310*/       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,// ->83332
/*83321*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*83323*/       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
/*83333*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 61|128,3/*445*/,  TARGET_VAL(ISD::FSQRT),// ->83783
/*83338*/   OPC_Scope, 115, /*->83455*/ // 4 children in Scope
/*83340*/     OPC_MoveChild, 0,
/*83342*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*83345*/     OPC_RecordMemRef,
/*83346*/     OPC_RecordNode, // #0 = 'ld' chained node
/*83347*/     OPC_RecordChild1, // #1 = $src
/*83348*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*83350*/     OPC_CheckPredicate, 3, // Predicate_load
/*83352*/     OPC_MoveParent,
/*83353*/     OPC_SwitchType /*2 cases */, 48,  MVT::f32,// ->83404
/*83356*/       OPC_Scope, 18, /*->83376*/ // 2 children in Scope
/*83358*/         OPC_CheckPatternPredicate, 39, // (Subtarget->hasSSE1()) && (OptForSize)
/*83360*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*83363*/         OPC_EmitMergeInputChains1_0,
/*83364*/         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)
/*83376*/       /*Scope*/ 26, /*->83403*/
/*83377*/         OPC_CheckPatternPredicate, 40, // (Subtarget->hasAVX()) && (OptForSize)
/*83379*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*83382*/         OPC_EmitMergeInputChains1_0,
/*83383*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      1/*#VTs*/, MVT::f32, 0/*#Ops*/,  // Results = #7 
/*83390*/         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)
/*83403*/       0, /*End of Scope*/
              /*SwitchType*/ 48,  MVT::f64,// ->83454
/*83406*/       OPC_Scope, 18, /*->83426*/ // 2 children in Scope
/*83408*/         OPC_CheckPatternPredicate, 30, // (Subtarget->hasSSE2()) && (OptForSize)
/*83410*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*83413*/         OPC_EmitMergeInputChains1_0,
/*83414*/         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)
/*83426*/       /*Scope*/ 26, /*->83453*/
/*83427*/         OPC_CheckPatternPredicate, 40, // (Subtarget->hasAVX()) && (OptForSize)
/*83429*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*83432*/         OPC_EmitMergeInputChains1_0,
/*83433*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      1/*#VTs*/, MVT::f64, 0/*#Ops*/,  // Results = #7 
/*83440*/         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)
/*83453*/       0, /*End of Scope*/
              0, // EndSwitchType
/*83455*/   /*Scope*/ 103, /*->83559*/
/*83456*/     OPC_RecordChild0, // #0 = $src
/*83457*/     OPC_SwitchType /*3 cases */, 43,  MVT::f32,// ->83503
/*83460*/       OPC_Scope, 10, /*->83472*/ // 3 children in Scope
/*83462*/         OPC_CheckPatternPredicate, 8, // (!Subtarget->hasXMM())
/*83464*/         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)
/*83472*/       /*Scope*/ 10, /*->83483*/
/*83473*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*83475*/         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)
/*83483*/       /*Scope*/ 18, /*->83502*/
/*83484*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*83486*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      1/*#VTs*/, MVT::f32, 0/*#Ops*/,  // Results = #1 
/*83493*/         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)
/*83502*/       0, /*End of Scope*/
              /*SwitchType*/ 43,  MVT::f64,// ->83548
/*83505*/       OPC_Scope, 10, /*->83517*/ // 3 children in Scope
/*83507*/         OPC_CheckPatternPredicate, 9, // (!Subtarget->hasXMMInt())
/*83509*/         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)
/*83517*/       /*Scope*/ 10, /*->83528*/
/*83518*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*83520*/         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)
/*83528*/       /*Scope*/ 18, /*->83547*/
/*83529*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*83531*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      1/*#VTs*/, MVT::f64, 0/*#Ops*/,  // Results = #1 
/*83538*/         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)
/*83547*/       0, /*End of Scope*/
              /*SwitchType*/ 8,  MVT::f80,// ->83558
/*83550*/       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
/*83559*/   /*Scope*/ 13|128,1/*141*/, /*->83702*/
/*83561*/     OPC_MoveChild, 0,
/*83563*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*83566*/     OPC_RecordMemRef,
/*83567*/     OPC_RecordNode, // #0 = 'ld' chained node
/*83568*/     OPC_RecordChild1, // #1 = $src
/*83569*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*83571*/     OPC_CheckPredicate, 3, // Predicate_load
/*83573*/     OPC_CheckPredicate, 23, // Predicate_memop
/*83575*/     OPC_MoveParent,
/*83576*/     OPC_SwitchType /*4 cases */, 40,  MVT::v4f32,// ->83619
/*83579*/       OPC_Scope, 18, /*->83599*/ // 2 children in Scope
/*83581*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*83583*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*83586*/         OPC_EmitMergeInputChains1_0,
/*83587*/         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)
/*83599*/       /*Scope*/ 18, /*->83618*/
/*83600*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*83602*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*83605*/         OPC_EmitMergeInputChains1_0,
/*83606*/         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)
/*83618*/       0, /*End of Scope*/
              /*SwitchType*/ 40,  MVT::v2f64,// ->83661
/*83621*/       OPC_Scope, 18, /*->83641*/ // 2 children in Scope
/*83623*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*83625*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*83628*/         OPC_EmitMergeInputChains1_0,
/*83629*/         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)
/*83641*/       /*Scope*/ 18, /*->83660*/
/*83642*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*83644*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*83647*/         OPC_EmitMergeInputChains1_0,
/*83648*/         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)
/*83660*/       0, /*End of Scope*/
              /*SwitchType*/ 18,  MVT::v8f32,// ->83681
/*83663*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*83665*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*83668*/       OPC_EmitMergeInputChains1_0,
/*83669*/       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,// ->83701
/*83683*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*83685*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*83688*/       OPC_EmitMergeInputChains1_0,
/*83689*/       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
/*83702*/   /*Scope*/ 79, /*->83782*/
/*83703*/     OPC_RecordChild0, // #0 = $src
/*83704*/     OPC_SwitchType /*4 cases */, 24,  MVT::v4f32,// ->83731
/*83707*/       OPC_Scope, 10, /*->83719*/ // 2 children in Scope
/*83709*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*83711*/         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)
/*83719*/       /*Scope*/ 10, /*->83730*/
/*83720*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*83722*/         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)
/*83730*/       0, /*End of Scope*/
              /*SwitchType*/ 24,  MVT::v2f64,// ->83757
/*83733*/       OPC_Scope, 10, /*->83745*/ // 2 children in Scope
/*83735*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*83737*/         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)
/*83745*/       /*Scope*/ 10, /*->83756*/
/*83746*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*83748*/         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)
/*83756*/       0, /*End of Scope*/
              /*SwitchType*/ 10,  MVT::v8f32,// ->83769
/*83759*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*83761*/       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,// ->83781
/*83771*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*83773*/       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
/*83782*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 96|128,1/*224*/,  TARGET_VAL(X86ISD::FRSQRT),// ->84011
/*83787*/   OPC_Scope, 63, /*->83852*/ // 4 children in Scope
/*83789*/     OPC_MoveChild, 0,
/*83791*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*83794*/     OPC_RecordMemRef,
/*83795*/     OPC_RecordNode, // #0 = 'ld' chained node
/*83796*/     OPC_RecordChild1, // #1 = $src
/*83797*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*83799*/     OPC_CheckPredicate, 3, // Predicate_load
/*83801*/     OPC_MoveParent,
/*83802*/     OPC_CheckType, MVT::f32,
/*83804*/     OPC_Scope, 18, /*->83824*/ // 2 children in Scope
/*83806*/       OPC_CheckPatternPredicate, 39, // (Subtarget->hasSSE1()) && (OptForSize)
/*83808*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*83811*/       OPC_EmitMergeInputChains1_0,
/*83812*/       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)
/*83824*/     /*Scope*/ 26, /*->83851*/
/*83825*/       OPC_CheckPatternPredicate, 40, // (Subtarget->hasAVX()) && (OptForSize)
/*83827*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*83830*/       OPC_EmitMergeInputChains1_0,
/*83831*/       OPC_EmitNode, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    1/*#VTs*/, MVT::f32, 0/*#Ops*/,  // Results = #7 
/*83838*/       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)
/*83851*/     0, /*End of Scope*/
/*83852*/   /*Scope*/ 35, /*->83888*/
/*83853*/     OPC_RecordChild0, // #0 = $src
/*83854*/     OPC_CheckType, MVT::f32,
/*83856*/     OPC_Scope, 10, /*->83868*/ // 2 children in Scope
/*83858*/       OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*83860*/       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)
/*83868*/     /*Scope*/ 18, /*->83887*/
/*83869*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*83871*/       OPC_EmitNode, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    1/*#VTs*/, MVT::f32, 0/*#Ops*/,  // Results = #1 
/*83878*/       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)
/*83887*/     0, /*End of Scope*/
/*83888*/   /*Scope*/ 79, /*->83968*/
/*83889*/     OPC_MoveChild, 0,
/*83891*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*83894*/     OPC_RecordMemRef,
/*83895*/     OPC_RecordNode, // #0 = 'ld' chained node
/*83896*/     OPC_RecordChild1, // #1 = $src
/*83897*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*83899*/     OPC_CheckPredicate, 3, // Predicate_load
/*83901*/     OPC_CheckPredicate, 23, // Predicate_memop
/*83903*/     OPC_MoveParent,
/*83904*/     OPC_SwitchType /*2 cases */, 40,  MVT::v4f32,// ->83947
/*83907*/       OPC_Scope, 18, /*->83927*/ // 2 children in Scope
/*83909*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*83911*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*83914*/         OPC_EmitMergeInputChains1_0,
/*83915*/         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)
/*83927*/       /*Scope*/ 18, /*->83946*/
/*83928*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*83930*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*83933*/         OPC_EmitMergeInputChains1_0,
/*83934*/         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)
/*83946*/       0, /*End of Scope*/
              /*SwitchType*/ 18,  MVT::v8f32,// ->83967
/*83949*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*83951*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*83954*/       OPC_EmitMergeInputChains1_0,
/*83955*/       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
/*83968*/   /*Scope*/ 41, /*->84010*/
/*83969*/     OPC_RecordChild0, // #0 = $src
/*83970*/     OPC_SwitchType /*2 cases */, 24,  MVT::v4f32,// ->83997
/*83973*/       OPC_Scope, 10, /*->83985*/ // 2 children in Scope
/*83975*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*83977*/         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)
/*83985*/       /*Scope*/ 10, /*->83996*/
/*83986*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*83988*/         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)
/*83996*/       0, /*End of Scope*/
              /*SwitchType*/ 10,  MVT::v8f32,// ->84009
/*83999*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*84001*/       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
/*84010*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 96|128,1/*224*/,  TARGET_VAL(X86ISD::FRCP),// ->84239
/*84015*/   OPC_Scope, 63, /*->84080*/ // 4 children in Scope
/*84017*/     OPC_MoveChild, 0,
/*84019*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*84022*/     OPC_RecordMemRef,
/*84023*/     OPC_RecordNode, // #0 = 'ld' chained node
/*84024*/     OPC_RecordChild1, // #1 = $src
/*84025*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*84027*/     OPC_CheckPredicate, 3, // Predicate_load
/*84029*/     OPC_MoveParent,
/*84030*/     OPC_CheckType, MVT::f32,
/*84032*/     OPC_Scope, 18, /*->84052*/ // 2 children in Scope
/*84034*/       OPC_CheckPatternPredicate, 39, // (Subtarget->hasSSE1()) && (OptForSize)
/*84036*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*84039*/       OPC_EmitMergeInputChains1_0,
/*84040*/       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)
/*84052*/     /*Scope*/ 26, /*->84079*/
/*84053*/       OPC_CheckPatternPredicate, 40, // (Subtarget->hasAVX()) && (OptForSize)
/*84055*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*84058*/       OPC_EmitMergeInputChains1_0,
/*84059*/       OPC_EmitNode, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    1/*#VTs*/, MVT::f32, 0/*#Ops*/,  // Results = #7 
/*84066*/       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)
/*84079*/     0, /*End of Scope*/
/*84080*/   /*Scope*/ 35, /*->84116*/
/*84081*/     OPC_RecordChild0, // #0 = $src
/*84082*/     OPC_CheckType, MVT::f32,
/*84084*/     OPC_Scope, 10, /*->84096*/ // 2 children in Scope
/*84086*/       OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*84088*/       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)
/*84096*/     /*Scope*/ 18, /*->84115*/
/*84097*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*84099*/       OPC_EmitNode, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    1/*#VTs*/, MVT::f32, 0/*#Ops*/,  // Results = #1 
/*84106*/       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)
/*84115*/     0, /*End of Scope*/
/*84116*/   /*Scope*/ 79, /*->84196*/
/*84117*/     OPC_MoveChild, 0,
/*84119*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*84122*/     OPC_RecordMemRef,
/*84123*/     OPC_RecordNode, // #0 = 'ld' chained node
/*84124*/     OPC_RecordChild1, // #1 = $src
/*84125*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*84127*/     OPC_CheckPredicate, 3, // Predicate_load
/*84129*/     OPC_CheckPredicate, 23, // Predicate_memop
/*84131*/     OPC_MoveParent,
/*84132*/     OPC_SwitchType /*2 cases */, 40,  MVT::v4f32,// ->84175
/*84135*/       OPC_Scope, 18, /*->84155*/ // 2 children in Scope
/*84137*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*84139*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*84142*/         OPC_EmitMergeInputChains1_0,
/*84143*/         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)
/*84155*/       /*Scope*/ 18, /*->84174*/
/*84156*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*84158*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*84161*/         OPC_EmitMergeInputChains1_0,
/*84162*/         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)
/*84174*/       0, /*End of Scope*/
              /*SwitchType*/ 18,  MVT::v8f32,// ->84195
/*84177*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*84179*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*84182*/       OPC_EmitMergeInputChains1_0,
/*84183*/       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
/*84196*/   /*Scope*/ 41, /*->84238*/
/*84197*/     OPC_RecordChild0, // #0 = $src
/*84198*/     OPC_SwitchType /*2 cases */, 24,  MVT::v4f32,// ->84225
/*84201*/       OPC_Scope, 10, /*->84213*/ // 2 children in Scope
/*84203*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*84205*/         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)
/*84213*/       /*Scope*/ 10, /*->84224*/
/*84214*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*84216*/         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)
/*84224*/       0, /*End of Scope*/
              /*SwitchType*/ 10,  MVT::v8f32,// ->84237
/*84227*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*84229*/       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
/*84238*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 71|128,1/*199*/,  TARGET_VAL(X86ISD::FILD),// ->84442
/*84243*/   OPC_RecordMemRef,
/*84244*/   OPC_RecordNode,   // #0 = 'X86fild' chained node
/*84245*/   OPC_RecordChild1, // #1 = $src
/*84246*/   OPC_MoveChild, 2,
/*84248*/   OPC_Scope, 63, /*->84313*/ // 3 children in Scope
/*84250*/     OPC_CheckValueType, MVT::i16,
/*84252*/     OPC_MoveParent,
/*84253*/     OPC_SwitchType /*3 cases */, 18,  MVT::f32,// ->84274
/*84256*/       OPC_CheckPatternPredicate, 8, // (!Subtarget->hasXMM())
/*84258*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*84261*/       OPC_EmitMergeInputChains1_0,
/*84262*/       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,// ->84294
/*84276*/       OPC_CheckPatternPredicate, 9, // (!Subtarget->hasXMMInt())
/*84278*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*84281*/       OPC_EmitMergeInputChains1_0,
/*84282*/       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,// ->84312
/*84296*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*84299*/       OPC_EmitMergeInputChains1_0,
/*84300*/       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
/*84313*/   /*Scope*/ 63, /*->84377*/
/*84314*/     OPC_CheckValueType, MVT::i32,
/*84316*/     OPC_MoveParent,
/*84317*/     OPC_SwitchType /*3 cases */, 18,  MVT::f32,// ->84338
/*84320*/       OPC_CheckPatternPredicate, 8, // (!Subtarget->hasXMM())
/*84322*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*84325*/       OPC_EmitMergeInputChains1_0,
/*84326*/       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,// ->84358
/*84340*/       OPC_CheckPatternPredicate, 9, // (!Subtarget->hasXMMInt())
/*84342*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*84345*/       OPC_EmitMergeInputChains1_0,
/*84346*/       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,// ->84376
/*84360*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*84363*/       OPC_EmitMergeInputChains1_0,
/*84364*/       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
/*84377*/   /*Scope*/ 63, /*->84441*/
/*84378*/     OPC_CheckValueType, MVT::i64,
/*84380*/     OPC_MoveParent,
/*84381*/     OPC_SwitchType /*3 cases */, 18,  MVT::f32,// ->84402
/*84384*/       OPC_CheckPatternPredicate, 8, // (!Subtarget->hasXMM())
/*84386*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*84389*/       OPC_EmitMergeInputChains1_0,
/*84390*/       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,// ->84422
/*84404*/       OPC_CheckPatternPredicate, 9, // (!Subtarget->hasXMMInt())
/*84406*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*84409*/       OPC_EmitMergeInputChains1_0,
/*84410*/       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,// ->84440
/*84424*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*84427*/       OPC_EmitMergeInputChains1_0,
/*84428*/       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
/*84441*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 73,  TARGET_VAL(X86ISD::FLD),// ->84518
/*84445*/   OPC_RecordMemRef,
/*84446*/   OPC_RecordNode,   // #0 = 'X86fld' chained node
/*84447*/   OPC_RecordChild1, // #1 = $src
/*84448*/   OPC_MoveChild, 2,
/*84450*/   OPC_Scope, 21, /*->84473*/ // 3 children in Scope
/*84452*/     OPC_CheckValueType, MVT::f32,
/*84454*/     OPC_MoveParent,
/*84455*/     OPC_CheckType, MVT::f32,
/*84457*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*84460*/     OPC_EmitMergeInputChains1_0,
/*84461*/     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)
/*84473*/   /*Scope*/ 21, /*->84495*/
/*84474*/     OPC_CheckValueType, MVT::f64,
/*84476*/     OPC_MoveParent,
/*84477*/     OPC_CheckType, MVT::f64,
/*84479*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*84482*/     OPC_EmitMergeInputChains1_0,
/*84483*/     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)
/*84495*/   /*Scope*/ 21, /*->84517*/
/*84496*/     OPC_CheckValueType, MVT::f80,
/*84498*/     OPC_MoveParent,
/*84499*/     OPC_CheckType, MVT::f80,
/*84501*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*84504*/     OPC_EmitMergeInputChains1_0,
/*84505*/     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)
/*84517*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 26,  TARGET_VAL(X86ISD::FILD_FLAG),// ->84547
/*84521*/   OPC_RecordMemRef,
/*84522*/   OPC_RecordNode,   // #0 = 'X86fildflag' chained node
/*84523*/   OPC_RecordChild1, // #1 = $src
/*84524*/   OPC_MoveChild, 2,
/*84526*/   OPC_CheckValueType, MVT::i64,
/*84528*/   OPC_MoveParent,
/*84529*/   OPC_CheckType, MVT::f64,
/*84531*/   OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*84534*/   OPC_EmitMergeInputChains1_0,
/*84535*/   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),// ->84773
/*84551*/   OPC_SwitchType /*3 cases */, 78,  MVT::f32,// ->84632
/*84554*/     OPC_Scope, 11, /*->84567*/ // 5 children in Scope
/*84556*/       OPC_CheckPredicate, 92, // Predicate_fpimm0
/*84558*/       OPC_CheckPatternPredicate, 8, // (!Subtarget->hasXMM())
/*84560*/       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)
/*84567*/     /*Scope*/ 11, /*->84579*/
/*84568*/       OPC_CheckPredicate, 93, // Predicate_fpimm1
/*84570*/       OPC_CheckPatternPredicate, 8, // (!Subtarget->hasXMM())
/*84572*/       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)
/*84579*/     /*Scope*/ 11, /*->84591*/
/*84580*/       OPC_CheckPredicate, 94, // Predicate_fp32imm0
/*84582*/       OPC_CheckPatternPredicate, 41, // (Subtarget->hasXMM())
/*84584*/       OPC_MorphNodeTo, TARGET_VAL(X86::FsFLD0SS), 0,
                    1/*#VTs*/, MVT::f32, 0/*#Ops*/, 
                // Src: (fpimm:f32)<<P:Predicate_fp32imm0>> - Complexity = 4
                // Dst: (FsFLD0SS:f32)
/*84591*/     /*Scope*/ 19, /*->84611*/
/*84592*/       OPC_CheckPredicate, 95, // Predicate_fpimmneg0
/*84594*/       OPC_CheckPatternPredicate, 8, // (!Subtarget->hasXMM())
/*84596*/       OPC_EmitNode, TARGET_VAL(X86::LD_Fp032), 0,
                    1/*#VTs*/, MVT::f32, 0/*#Ops*/,  // Results = #0 
/*84603*/       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))
/*84611*/     /*Scope*/ 19, /*->84631*/
/*84612*/       OPC_CheckPredicate, 96, // Predicate_fpimmneg1
/*84614*/       OPC_CheckPatternPredicate, 8, // (!Subtarget->hasXMM())
/*84616*/       OPC_EmitNode, TARGET_VAL(X86::LD_Fp132), 0,
                    1/*#VTs*/, MVT::f32, 0/*#Ops*/,  // Results = #0 
/*84623*/       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))
/*84631*/     0, /*End of Scope*/
            /*SwitchType*/ 78,  MVT::f64,// ->84712
/*84634*/     OPC_Scope, 11, /*->84647*/ // 5 children in Scope
/*84636*/       OPC_CheckPredicate, 92, // Predicate_fpimm0
/*84638*/       OPC_CheckPatternPredicate, 9, // (!Subtarget->hasXMMInt())
/*84640*/       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)
/*84647*/     /*Scope*/ 11, /*->84659*/
/*84648*/       OPC_CheckPredicate, 93, // Predicate_fpimm1
/*84650*/       OPC_CheckPatternPredicate, 9, // (!Subtarget->hasXMMInt())
/*84652*/       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)
/*84659*/     /*Scope*/ 11, /*->84671*/
/*84660*/       OPC_CheckPredicate, 92, // Predicate_fpimm0
/*84662*/       OPC_CheckPatternPredicate, 34, // (Subtarget->hasXMMInt())
/*84664*/       OPC_MorphNodeTo, TARGET_VAL(X86::FsFLD0SD), 0,
                    1/*#VTs*/, MVT::f64, 0/*#Ops*/, 
                // Src: (fpimm:f64)<<P:Predicate_fpimm0>> - Complexity = 4
                // Dst: (FsFLD0SD:f64)
/*84671*/     /*Scope*/ 19, /*->84691*/
/*84672*/       OPC_CheckPredicate, 95, // Predicate_fpimmneg0
/*84674*/       OPC_CheckPatternPredicate, 9, // (!Subtarget->hasXMMInt())
/*84676*/       OPC_EmitNode, TARGET_VAL(X86::LD_Fp064), 0,
                    1/*#VTs*/, MVT::f64, 0/*#Ops*/,  // Results = #0 
/*84683*/       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))
/*84691*/     /*Scope*/ 19, /*->84711*/
/*84692*/       OPC_CheckPredicate, 96, // Predicate_fpimmneg1
/*84694*/       OPC_CheckPatternPredicate, 9, // (!Subtarget->hasXMMInt())
/*84696*/       OPC_EmitNode, TARGET_VAL(X86::LD_Fp164), 0,
                    1/*#VTs*/, MVT::f64, 0/*#Ops*/,  // Results = #0 
/*84703*/       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))
/*84711*/     0, /*End of Scope*/
            /*SwitchType*/ 58,  MVT::f80,// ->84772
/*84714*/     OPC_Scope, 9, /*->84725*/ // 4 children in Scope
/*84716*/       OPC_CheckPredicate, 92, // Predicate_fpimm0
/*84718*/       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)
/*84725*/     /*Scope*/ 9, /*->84735*/
/*84726*/       OPC_CheckPredicate, 93, // Predicate_fpimm1
/*84728*/       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)
/*84735*/     /*Scope*/ 17, /*->84753*/
/*84736*/       OPC_CheckPredicate, 95, // Predicate_fpimmneg0
/*84738*/       OPC_EmitNode, TARGET_VAL(X86::LD_Fp080), 0,
                    1/*#VTs*/, MVT::f80, 0/*#Ops*/,  // Results = #0 
/*84745*/       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))
/*84753*/     /*Scope*/ 17, /*->84771*/
/*84754*/       OPC_CheckPredicate, 96, // Predicate_fpimmneg1
/*84756*/       OPC_EmitNode, TARGET_VAL(X86::LD_Fp180), 0,
                    1/*#VTs*/, MVT::f80, 0/*#Ops*/,  // Results = #0 
/*84763*/       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))
/*84771*/     0, /*End of Scope*/
            0, // EndSwitchType
          /*SwitchOpcode*/ 37,  TARGET_VAL(ISD::FNEG),// ->84813
/*84776*/   OPC_RecordChild0, // #0 = $src
/*84777*/   OPC_SwitchType /*3 cases */, 10,  MVT::f32,// ->84790
/*84780*/     OPC_CheckPatternPredicate, 8, // (!Subtarget->hasXMM())
/*84782*/     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,// ->84802
/*84792*/     OPC_CheckPatternPredicate, 9, // (!Subtarget->hasXMMInt())
/*84794*/     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,// ->84812
/*84804*/     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),// ->84853
/*84816*/   OPC_RecordChild0, // #0 = $src
/*84817*/   OPC_SwitchType /*3 cases */, 10,  MVT::f32,// ->84830
/*84820*/     OPC_CheckPatternPredicate, 8, // (!Subtarget->hasXMM())
/*84822*/     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,// ->84842
/*84832*/     OPC_CheckPatternPredicate, 9, // (!Subtarget->hasXMMInt())
/*84834*/     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,// ->84852
/*84844*/     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),// ->84893
/*84856*/   OPC_RecordChild0, // #0 = $src
/*84857*/   OPC_SwitchType /*3 cases */, 10,  MVT::f32,// ->84870
/*84860*/     OPC_CheckPatternPredicate, 8, // (!Subtarget->hasXMM())
/*84862*/     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,// ->84882
/*84872*/     OPC_CheckPatternPredicate, 9, // (!Subtarget->hasXMMInt())
/*84874*/     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,// ->84892
/*84884*/     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),// ->84933
/*84896*/   OPC_RecordChild0, // #0 = $src
/*84897*/   OPC_SwitchType /*3 cases */, 10,  MVT::f32,// ->84910
/*84900*/     OPC_CheckPatternPredicate, 8, // (!Subtarget->hasXMM())
/*84902*/     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,// ->84922
/*84912*/     OPC_CheckPatternPredicate, 9, // (!Subtarget->hasXMMInt())
/*84914*/     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,// ->84932
/*84924*/     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),// ->88284
/*84937*/   OPC_Scope, 107, /*->85046*/ // 18 children in Scope
/*84939*/     OPC_RecordChild0, // #0 = $src1
/*84940*/     OPC_MoveChild, 1,
/*84942*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*84945*/     OPC_RecordMemRef,
/*84946*/     OPC_RecordNode, // #1 = 'ld' chained node
/*84947*/     OPC_CheckFoldableChainNode,
/*84948*/     OPC_RecordChild1, // #2 = $src2
/*84949*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*84951*/     OPC_CheckPredicate, 3, // Predicate_load
/*84953*/     OPC_MoveParent,
/*84954*/     OPC_CheckPredicate, 12, // Predicate_movlp
/*84956*/     OPC_SwitchType /*2 cases */, 42,  MVT::v4i32,// ->85001
/*84959*/       OPC_Scope, 19, /*->84980*/ // 2 children in Scope
/*84961*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*84963*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*84966*/         OPC_EmitMergeInputChains1_1,
/*84967*/         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)
/*84980*/       /*Scope*/ 19, /*->85000*/
/*84981*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*84983*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*84986*/         OPC_EmitMergeInputChains1_1,
/*84987*/         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)
/*85000*/       0, /*End of Scope*/
              /*SwitchType*/ 42,  MVT::v2i64,// ->85045
/*85003*/       OPC_Scope, 19, /*->85024*/ // 2 children in Scope
/*85005*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*85007*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*85010*/         OPC_EmitMergeInputChains1_1,
/*85011*/         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)
/*85024*/       /*Scope*/ 19, /*->85044*/
/*85025*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*85027*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*85030*/         OPC_EmitMergeInputChains1_1,
/*85031*/         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)
/*85044*/       0, /*End of Scope*/
              0, // EndSwitchType
/*85046*/   /*Scope*/ 83, /*->85130*/
/*85047*/     OPC_RecordNode, // #0 = $src2
/*85048*/     OPC_MoveChild, 0,
/*85050*/     OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*85053*/     OPC_MoveChild, 0,
/*85055*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*85058*/     OPC_RecordMemRef,
/*85059*/     OPC_RecordNode, // #1 = 'ld' chained node
/*85060*/     OPC_CheckFoldableChainNode,
/*85061*/     OPC_RecordChild1, // #2 = $src1
/*85062*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*85064*/     OPC_CheckPredicate, 3, // Predicate_load
/*85066*/     OPC_CheckPredicate, 23, // Predicate_memop
/*85068*/     OPC_CheckType, MVT::v2i64,
/*85070*/     OPC_MoveParent,
/*85071*/     OPC_MoveParent,
/*85072*/     OPC_MoveChild, 1,
/*85074*/     OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
/*85077*/     OPC_MoveParent,
/*85078*/     OPC_CheckPredicate, 97, // Predicate_pshufd
/*85080*/     OPC_CheckType, MVT::v4i32,
/*85082*/     OPC_Scope, 22, /*->85106*/ // 2 children in Scope
/*85084*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*85086*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src1 #3 #4 #5 #6 #7
/*85089*/       OPC_EmitMergeInputChains1_1,
/*85090*/       OPC_EmitNodeXForm, 3, 0, // SHUFFLE_get_shuf_imm
/*85093*/       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))
/*85106*/     /*Scope*/ 22, /*->85129*/
/*85107*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*85109*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src1 #3 #4 #5 #6 #7
/*85112*/       OPC_EmitMergeInputChains1_1,
/*85113*/       OPC_EmitNodeXForm, 3, 0, // SHUFFLE_get_shuf_imm
/*85116*/       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))
/*85129*/     0, /*End of Scope*/
/*85130*/   /*Scope*/ 12|128,1/*140*/, /*->85272*/
/*85132*/     OPC_MoveChild, 0,
/*85134*/     OPC_SwitchOpcode /*2 cases */, 69,  TARGET_VAL(ISD::BITCAST),// ->85207
/*85138*/       OPC_MoveChild, 0,
/*85140*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*85143*/       OPC_RecordMemRef,
/*85144*/       OPC_RecordNode, // #0 = 'ld' chained node
/*85145*/       OPC_CheckFoldableChainNode,
/*85146*/       OPC_RecordChild1, // #1 = $src
/*85147*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*85149*/       OPC_CheckPredicate, 3, // Predicate_load
/*85151*/       OPC_CheckPredicate, 23, // Predicate_memop
/*85153*/       OPC_CheckType, MVT::v2i64,
/*85155*/       OPC_MoveParent,
/*85156*/       OPC_MoveParent,
/*85157*/       OPC_MoveChild, 1,
/*85159*/       OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
/*85162*/       OPC_MoveParent,
/*85163*/       OPC_CheckPredicate, 98, // Predicate_movddup
/*85165*/       OPC_CheckType, MVT::v4i32,
/*85167*/       OPC_Scope, 18, /*->85187*/ // 2 children in Scope
/*85169*/         OPC_CheckPatternPredicate, 16, // (Subtarget->hasSSE3())
/*85171*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*85174*/         OPC_EmitMergeInputChains1_0,
/*85175*/         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)
/*85187*/       /*Scope*/ 18, /*->85206*/
/*85188*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*85190*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*85193*/         OPC_EmitMergeInputChains1_0,
/*85194*/         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)
/*85206*/       0, /*End of Scope*/
              /*SwitchOpcode*/ 61,  TARGET_VAL(ISD::LOAD),// ->85271
/*85210*/       OPC_RecordMemRef,
/*85211*/       OPC_RecordNode, // #0 = 'ld' chained node
/*85212*/       OPC_CheckFoldableChainNode,
/*85213*/       OPC_RecordChild1, // #1 = $src
/*85214*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*85216*/       OPC_CheckPredicate, 3, // Predicate_load
/*85218*/       OPC_CheckPredicate, 23, // Predicate_memop
/*85220*/       OPC_MoveParent,
/*85221*/       OPC_MoveChild, 1,
/*85223*/       OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
/*85226*/       OPC_MoveParent,
/*85227*/       OPC_CheckPredicate, 98, // Predicate_movddup
/*85229*/       OPC_CheckType, MVT::v2i64,
/*85231*/       OPC_Scope, 18, /*->85251*/ // 2 children in Scope
/*85233*/         OPC_CheckPatternPredicate, 16, // (Subtarget->hasSSE3())
/*85235*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*85238*/         OPC_EmitMergeInputChains1_0,
/*85239*/         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)
/*85251*/       /*Scope*/ 18, /*->85270*/
/*85252*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*85254*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*85257*/         OPC_EmitMergeInputChains1_0,
/*85258*/         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)
/*85270*/       0, /*End of Scope*/
              0, // EndSwitchOpcode
/*85272*/   /*Scope*/ 31|128,2/*287*/, /*->85561*/
/*85274*/     OPC_RecordNode, // #0 = $src2
/*85275*/     OPC_Scope, 70|128,1/*198*/, /*->85476*/ // 2 children in Scope
/*85278*/       OPC_MoveChild, 0,
/*85280*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*85283*/       OPC_MoveChild, 0,
/*85285*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*85288*/       OPC_RecordMemRef,
/*85289*/       OPC_RecordNode, // #1 = 'ld' chained node
/*85290*/       OPC_CheckFoldableChainNode,
/*85291*/       OPC_RecordChild1, // #2 = $src1
/*85292*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*85294*/       OPC_CheckPredicate, 3, // Predicate_load
/*85296*/       OPC_CheckPredicate, 23, // Predicate_memop
/*85298*/       OPC_SwitchType /*2 cases */, 112,  MVT::v2i64,// ->85413
/*85301*/         OPC_MoveParent,
/*85302*/         OPC_MoveParent,
/*85303*/         OPC_MoveChild, 1,
/*85305*/         OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
/*85308*/         OPC_MoveParent,
/*85309*/         OPC_CheckType, MVT::v8i16,
/*85311*/         OPC_Scope, 24, /*->85337*/ // 4 children in Scope
/*85313*/           OPC_CheckPredicate, 99, // Predicate_pshufhw
/*85315*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*85317*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src1 #3 #4 #5 #6 #7
/*85320*/           OPC_EmitMergeInputChains1_1,
/*85321*/           OPC_EmitNodeXForm, 4, 0, // SHUFFLE_get_pshufhw_imm
/*85324*/           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))
/*85337*/         /*Scope*/ 24, /*->85362*/
/*85338*/           OPC_CheckPredicate, 100, // Predicate_pshuflw
/*85340*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*85342*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src1 #3 #4 #5 #6 #7
/*85345*/           OPC_EmitMergeInputChains1_1,
/*85346*/           OPC_EmitNodeXForm, 5, 0, // SHUFFLE_get_pshuflw_imm
/*85349*/           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))
/*85362*/         /*Scope*/ 24, /*->85387*/
/*85363*/           OPC_CheckPredicate, 99, // Predicate_pshufhw
/*85365*/           OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*85367*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src1 #3 #4 #5 #6 #7
/*85370*/           OPC_EmitMergeInputChains1_1,
/*85371*/           OPC_EmitNodeXForm, 4, 0, // SHUFFLE_get_pshufhw_imm
/*85374*/           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))
/*85387*/         /*Scope*/ 24, /*->85412*/
/*85388*/           OPC_CheckPredicate, 100, // Predicate_pshuflw
/*85390*/           OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*85392*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src1 #3 #4 #5 #6 #7
/*85395*/           OPC_EmitMergeInputChains1_1,
/*85396*/           OPC_EmitNodeXForm, 5, 0, // SHUFFLE_get_pshuflw_imm
/*85399*/           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))
/*85412*/         0, /*End of Scope*/
                /*SwitchType*/ 60,  MVT::v4f32,// ->85475
/*85415*/         OPC_MoveParent,
/*85416*/         OPC_MoveParent,
/*85417*/         OPC_MoveChild, 1,
/*85419*/         OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
/*85422*/         OPC_MoveParent,
/*85423*/         OPC_CheckPredicate, 97, // Predicate_pshufd
/*85425*/         OPC_CheckType, MVT::v4i32,
/*85427*/         OPC_Scope, 22, /*->85451*/ // 2 children in Scope
/*85429*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*85431*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src1 #3 #4 #5 #6 #7
/*85434*/           OPC_EmitMergeInputChains1_1,
/*85435*/           OPC_EmitNodeXForm, 3, 0, // SHUFFLE_get_shuf_imm
/*85438*/           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))
/*85451*/         /*Scope*/ 22, /*->85474*/
/*85452*/           OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*85454*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src1 #3 #4 #5 #6 #7
/*85457*/           OPC_EmitMergeInputChains1_1,
/*85458*/           OPC_EmitNodeXForm, 3, 0, // SHUFFLE_get_shuf_imm
/*85461*/           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))
/*85474*/         0, /*End of Scope*/
                0, // EndSwitchType
/*85476*/     /*Scope*/ 83, /*->85560*/
/*85477*/       OPC_RecordChild0, // #1 = $src1
/*85478*/       OPC_MoveChild, 1,
/*85480*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*85483*/       OPC_MoveChild, 0,
/*85485*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*85488*/       OPC_RecordMemRef,
/*85489*/       OPC_RecordNode, // #2 = 'ld' chained node
/*85490*/       OPC_CheckFoldableChainNode,
/*85491*/       OPC_RecordChild1, // #3 = $src2
/*85492*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*85494*/       OPC_CheckPredicate, 3, // Predicate_load
/*85496*/       OPC_CheckPredicate, 23, // Predicate_memop
/*85498*/       OPC_CheckType, MVT::v2i64,
/*85500*/       OPC_MoveParent,
/*85501*/       OPC_MoveParent,
/*85502*/       OPC_CheckPredicate, 101, // Predicate_shufp
/*85504*/       OPC_CheckType, MVT::v4i32,
/*85506*/       OPC_Scope, 25, /*->85533*/ // 2 children in Scope
/*85508*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*85510*/         OPC_CheckComplexPat, /*CP*/0, /*#*/3, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*85513*/         OPC_EmitMergeInputChains, 1, 2, 
/*85516*/         OPC_EmitNodeXForm, 3, 0, // SHUFFLE_get_shuf_imm
/*85519*/         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))
/*85533*/       /*Scope*/ 25, /*->85559*/
/*85534*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*85536*/         OPC_CheckComplexPat, /*CP*/0, /*#*/3, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*85539*/         OPC_EmitMergeInputChains, 1, 2, 
/*85542*/         OPC_EmitNodeXForm, 3, 0, // SHUFFLE_get_shuf_imm
/*85545*/         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))
/*85559*/       0, /*End of Scope*/
/*85560*/     0, /*End of Scope*/
/*85561*/   /*Scope*/ 29|128,3/*413*/, /*->85976*/
/*85563*/     OPC_RecordChild0, // #0 = $src1
/*85564*/     OPC_Scope, 8|128,1/*136*/, /*->85703*/ // 3 children in Scope
/*85567*/       OPC_MoveChild, 1,
/*85569*/       OPC_SwitchOpcode /*2 cases */, 59,  TARGET_VAL(ISD::BITCAST),// ->85632
/*85573*/         OPC_MoveChild, 0,
/*85575*/         OPC_CheckOpcode, TARGET_VAL(X86ISD::VZEXT_LOAD),
/*85578*/         OPC_RecordMemRef,
/*85579*/         OPC_RecordNode, // #1 = 'X86vzload' chained node
/*85580*/         OPC_CheckFoldableChainNode,
/*85581*/         OPC_RecordChild1, // #2 = $src2
/*85582*/         OPC_CheckType, MVT::v2i64,
/*85584*/         OPC_MoveParent,
/*85585*/         OPC_MoveParent,
/*85586*/         OPC_CheckPredicate, 102, // Predicate_movlhps
/*85588*/         OPC_CheckType, MVT::v4i32,
/*85590*/         OPC_Scope, 19, /*->85611*/ // 2 children in Scope
/*85592*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*85594*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*85597*/           OPC_EmitMergeInputChains1_1,
/*85598*/           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)
/*85611*/         /*Scope*/ 19, /*->85631*/
/*85612*/           OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*85614*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*85617*/           OPC_EmitMergeInputChains1_1,
/*85618*/           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)
/*85631*/         0, /*End of Scope*/
                /*SwitchOpcode*/ 67,  TARGET_VAL(ISD::UNDEF),// ->85702
/*85635*/         OPC_MoveParent,
/*85636*/         OPC_SwitchType /*2 cases */, 30,  MVT::v2i64,// ->85669
/*85639*/           OPC_Scope, 13, /*->85654*/ // 2 children in Scope
/*85641*/             OPC_CheckPredicate, 98, // Predicate_movddup
/*85643*/             OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*85645*/             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)
/*85654*/           /*Scope*/ 13, /*->85668*/
/*85655*/             OPC_CheckPredicate, 98, // Predicate_movddup
/*85657*/             OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*85659*/             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)
/*85668*/           0, /*End of Scope*/
                  /*SwitchType*/ 30,  MVT::v4i32,// ->85701
/*85671*/           OPC_Scope, 13, /*->85686*/ // 2 children in Scope
/*85673*/             OPC_CheckPredicate, 103, // Predicate_movhlps_undef
/*85675*/             OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*85677*/             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)
/*85686*/           /*Scope*/ 13, /*->85700*/
/*85687*/             OPC_CheckPredicate, 103, // Predicate_movhlps_undef
/*85689*/             OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*85691*/             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)
/*85700*/           0, /*End of Scope*/
                  0, // EndSwitchType
                0, // EndSwitchOpcode
/*85703*/     /*Scope*/ 105|128,1/*233*/, /*->85938*/
/*85705*/       OPC_RecordChild1, // #1 = $src2
/*85706*/       OPC_Scope, 15, /*->85723*/ // 8 children in Scope
/*85708*/         OPC_CheckPredicate, 102, // Predicate_movlhps
/*85710*/         OPC_CheckType, MVT::v4i32,
/*85712*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*85714*/         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)
/*85723*/       /*Scope*/ 15, /*->85739*/
/*85724*/         OPC_CheckPredicate, 104, // Predicate_movhlps
/*85726*/         OPC_CheckType, MVT::v4i32,
/*85728*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*85730*/         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)
/*85739*/       /*Scope*/ 15, /*->85755*/
/*85740*/         OPC_CheckPredicate, 102, // Predicate_movlhps
/*85742*/         OPC_CheckType, MVT::v4i32,
/*85744*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*85746*/         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)
/*85755*/       /*Scope*/ 15, /*->85771*/
/*85756*/         OPC_CheckPredicate, 104, // Predicate_movhlps
/*85758*/         OPC_CheckType, MVT::v4i32,
/*85760*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*85762*/         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)
/*85771*/       /*Scope*/ 54, /*->85826*/
/*85772*/         OPC_CheckPredicate, 105, // Predicate_movl
/*85774*/         OPC_SwitchType /*2 cases */, 23,  MVT::v4i32,// ->85800
/*85777*/           OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*85779*/           OPC_EmitInteger, MVT::i32, X86::sub_ss,
/*85782*/           OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        1/*#VTs*/, MVT::f32, 2/*#Ops*/, 1, 2,  // Results = #3 
/*85791*/           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,// ->85825
/*85802*/           OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*85804*/           OPC_EmitInteger, MVT::i32, X86::sub_sd,
/*85807*/           OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        1/*#VTs*/, MVT::f64, 2/*#Ops*/, 1, 2,  // Results = #3 
/*85816*/           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
/*85826*/       /*Scope*/ 27, /*->85854*/
/*85827*/         OPC_CheckPredicate, 12, // Predicate_movlp
/*85829*/         OPC_CheckType, MVT::v4i32,
/*85831*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*85833*/         OPC_EmitInteger, MVT::i32, X86::sub_sd,
/*85836*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      1/*#VTs*/, MVT::f64, 2/*#Ops*/, 1, 2,  // Results = #3 
/*85845*/         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))
/*85854*/       /*Scope*/ 54, /*->85909*/
/*85855*/         OPC_CheckPredicate, 105, // Predicate_movl
/*85857*/         OPC_SwitchType /*2 cases */, 23,  MVT::v4i32,// ->85883
/*85860*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*85862*/           OPC_EmitInteger, MVT::i32, X86::sub_ss,
/*85865*/           OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        1/*#VTs*/, MVT::f32, 2/*#Ops*/, 1, 2,  // Results = #3 
/*85874*/           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,// ->85908
/*85885*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*85887*/           OPC_EmitInteger, MVT::i32, X86::sub_sd,
/*85890*/           OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        1/*#VTs*/, MVT::f64, 2/*#Ops*/, 1, 2,  // Results = #3 
/*85899*/           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
/*85909*/       /*Scope*/ 27, /*->85937*/
/*85910*/         OPC_CheckPredicate, 12, // Predicate_movlp
/*85912*/         OPC_CheckType, MVT::v4i32,
/*85914*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*85916*/         OPC_EmitInteger, MVT::i32, X86::sub_sd,
/*85919*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      1/*#VTs*/, MVT::f64, 2/*#Ops*/, 1, 2,  // Results = #3 
/*85928*/         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))
/*85937*/       0, /*End of Scope*/
/*85938*/     /*Scope*/ 36, /*->85975*/
/*85939*/       OPC_MoveChild, 1,
/*85941*/       OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
/*85944*/       OPC_MoveParent,
/*85945*/       OPC_CheckPredicate, 106, // Predicate_splat_lo
/*85947*/       OPC_CheckType, MVT::v2i64,
/*85949*/       OPC_Scope, 11, /*->85962*/ // 2 children in Scope
/*85951*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*85953*/         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)
/*85962*/       /*Scope*/ 11, /*->85974*/
/*85963*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*85965*/         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)
/*85974*/       0, /*End of Scope*/
/*85975*/     0, /*End of Scope*/
/*85976*/   /*Scope*/ 115|128,1/*243*/, /*->86221*/
/*85978*/     OPC_RecordNode, // #0 = $src2
/*85979*/     OPC_RecordChild0, // #1 = $src1
/*85980*/     OPC_Scope, 31|128,1/*159*/, /*->86142*/ // 2 children in Scope
/*85983*/       OPC_MoveChild, 1,
/*85985*/       OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
/*85988*/       OPC_MoveParent,
/*85989*/       OPC_Scope, 74, /*->86065*/ // 5 children in Scope
/*85991*/         OPC_CheckPredicate, 97, // Predicate_pshufd
/*85993*/         OPC_SwitchType /*2 cases */, 32,  MVT::v4i32,// ->86028
/*85996*/           OPC_Scope, 14, /*->86012*/ // 2 children in Scope
/*85998*/             OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*86000*/             OPC_EmitNodeXForm, 3, 0, // SHUFFLE_get_shuf_imm
/*86003*/             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))
/*86012*/           /*Scope*/ 14, /*->86027*/
/*86013*/             OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*86015*/             OPC_EmitNodeXForm, 3, 0, // SHUFFLE_get_shuf_imm
/*86018*/             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))
/*86027*/           0, /*End of Scope*/
                  /*SwitchType*/ 34,  MVT::v2i64,// ->86064
/*86030*/           OPC_Scope, 15, /*->86047*/ // 2 children in Scope
/*86032*/             OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*86034*/             OPC_EmitNodeXForm, 3, 0, // SHUFFLE_get_shuf_imm
/*86037*/             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))
/*86047*/           /*Scope*/ 15, /*->86063*/
/*86048*/             OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*86050*/             OPC_EmitNodeXForm, 3, 0, // SHUFFLE_get_shuf_imm
/*86053*/             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))
/*86063*/           0, /*End of Scope*/
                  0, // EndSwitchType
/*86065*/       /*Scope*/ 18, /*->86084*/
/*86066*/         OPC_CheckPredicate, 99, // Predicate_pshufhw
/*86068*/         OPC_CheckType, MVT::v8i16,
/*86070*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*86072*/         OPC_EmitNodeXForm, 4, 0, // SHUFFLE_get_pshufhw_imm
/*86075*/         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))
/*86084*/       /*Scope*/ 18, /*->86103*/
/*86085*/         OPC_CheckPredicate, 100, // Predicate_pshuflw
/*86087*/         OPC_CheckType, MVT::v8i16,
/*86089*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*86091*/         OPC_EmitNodeXForm, 5, 0, // SHUFFLE_get_pshuflw_imm
/*86094*/         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))
/*86103*/       /*Scope*/ 18, /*->86122*/
/*86104*/         OPC_CheckPredicate, 99, // Predicate_pshufhw
/*86106*/         OPC_CheckType, MVT::v8i16,
/*86108*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*86110*/         OPC_EmitNodeXForm, 4, 0, // SHUFFLE_get_pshufhw_imm
/*86113*/         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))
/*86122*/       /*Scope*/ 18, /*->86141*/
/*86123*/         OPC_CheckPredicate, 100, // Predicate_pshuflw
/*86125*/         OPC_CheckType, MVT::v8i16,
/*86127*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*86129*/         OPC_EmitNodeXForm, 5, 0, // SHUFFLE_get_pshuflw_imm
/*86132*/         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))
/*86141*/       0, /*End of Scope*/
/*86142*/     /*Scope*/ 77, /*->86220*/
/*86143*/       OPC_RecordChild1, // #2 = $src2
/*86144*/       OPC_CheckPredicate, 101, // Predicate_shufp
/*86146*/       OPC_SwitchType /*2 cases */, 34,  MVT::v4i32,// ->86183
/*86149*/         OPC_Scope, 15, /*->86166*/ // 2 children in Scope
/*86151*/           OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*86153*/           OPC_EmitNodeXForm, 3, 0, // SHUFFLE_get_shuf_imm
/*86156*/           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))
/*86166*/         /*Scope*/ 15, /*->86182*/
/*86167*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*86169*/           OPC_EmitNodeXForm, 3, 0, // SHUFFLE_get_shuf_imm
/*86172*/           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))
/*86182*/         0, /*End of Scope*/
                /*SwitchType*/ 34,  MVT::v2i64,// ->86219
/*86185*/         OPC_Scope, 15, /*->86202*/ // 2 children in Scope
/*86187*/           OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*86189*/           OPC_EmitNodeXForm, 3, 0, // SHUFFLE_get_shuf_imm
/*86192*/           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))
/*86202*/         /*Scope*/ 15, /*->86218*/
/*86203*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*86205*/           OPC_EmitNodeXForm, 3, 0, // SHUFFLE_get_shuf_imm
/*86208*/           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))
/*86218*/         0, /*End of Scope*/
                0, // EndSwitchType
/*86220*/     0, /*End of Scope*/
/*86221*/   /*Scope*/ 89|128,2/*345*/, /*->86568*/
/*86223*/     OPC_RecordChild0, // #0 = $src1
/*86224*/     OPC_MoveChild, 1,
/*86226*/     OPC_SwitchOpcode /*3 cases */, 119,  TARGET_VAL(ISD::BITCAST),// ->86349
/*86230*/       OPC_MoveChild, 0,
/*86232*/       OPC_CheckOpcode, TARGET_VAL(ISD::SCALAR_TO_VECTOR),
/*86235*/       OPC_MoveChild, 0,
/*86237*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*86240*/       OPC_RecordMemRef,
/*86241*/       OPC_RecordNode, // #1 = 'ld' chained node
/*86242*/       OPC_CheckFoldableChainNode,
/*86243*/       OPC_RecordChild1, // #2 = $src2
/*86244*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*86246*/       OPC_CheckPredicate, 3, // Predicate_load
/*86248*/       OPC_CheckType, MVT::f64,
/*86250*/       OPC_MoveParent,
/*86251*/       OPC_CheckType, MVT::v2f64,
/*86253*/       OPC_MoveParent,
/*86254*/       OPC_MoveParent,
/*86255*/       OPC_CheckType, MVT::v4f32,
/*86257*/       OPC_Scope, 44, /*->86303*/ // 2 children in Scope
/*86259*/         OPC_CheckPredicate, 12, // Predicate_movlp
/*86261*/         OPC_Scope, 19, /*->86282*/ // 2 children in Scope
/*86263*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*86265*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*86268*/           OPC_EmitMergeInputChains1_1,
/*86269*/           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)
/*86282*/         /*Scope*/ 19, /*->86302*/
/*86283*/           OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*86285*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*86288*/           OPC_EmitMergeInputChains1_1,
/*86289*/           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)
/*86302*/         0, /*End of Scope*/
/*86303*/       /*Scope*/ 44, /*->86348*/
/*86304*/         OPC_CheckPredicate, 102, // Predicate_movlhps
/*86306*/         OPC_Scope, 19, /*->86327*/ // 2 children in Scope
/*86308*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*86310*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*86313*/           OPC_EmitMergeInputChains1_1,
/*86314*/           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)
/*86327*/         /*Scope*/ 19, /*->86347*/
/*86328*/           OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*86330*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*86333*/           OPC_EmitMergeInputChains1_1,
/*86334*/           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)
/*86347*/         0, /*End of Scope*/
/*86348*/       0, /*End of Scope*/
              /*SwitchOpcode*/ 111,  TARGET_VAL(ISD::SCALAR_TO_VECTOR),// ->86463
/*86352*/       OPC_MoveChild, 0,
/*86354*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*86357*/       OPC_RecordMemRef,
/*86358*/       OPC_RecordNode, // #1 = 'ld' chained node
/*86359*/       OPC_CheckFoldableChainNode,
/*86360*/       OPC_RecordChild1, // #2 = $src2
/*86361*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*86363*/       OPC_CheckPredicate, 3, // Predicate_load
/*86365*/       OPC_CheckType, MVT::f64,
/*86367*/       OPC_MoveParent,
/*86368*/       OPC_MoveParent,
/*86369*/       OPC_CheckType, MVT::v2f64,
/*86371*/       OPC_Scope, 44, /*->86417*/ // 2 children in Scope
/*86373*/         OPC_CheckPredicate, 12, // Predicate_movlp
/*86375*/         OPC_Scope, 19, /*->86396*/ // 2 children in Scope
/*86377*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*86379*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*86382*/           OPC_EmitMergeInputChains1_1,
/*86383*/           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)
/*86396*/         /*Scope*/ 19, /*->86416*/
/*86397*/           OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*86399*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*86402*/           OPC_EmitMergeInputChains1_1,
/*86403*/           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)
/*86416*/         0, /*End of Scope*/
/*86417*/       /*Scope*/ 44, /*->86462*/
/*86418*/         OPC_CheckPredicate, 102, // Predicate_movlhps
/*86420*/         OPC_Scope, 19, /*->86441*/ // 2 children in Scope
/*86422*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*86424*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*86427*/           OPC_EmitMergeInputChains1_1,
/*86428*/           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)
/*86441*/         /*Scope*/ 19, /*->86461*/
/*86442*/           OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*86444*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*86447*/           OPC_EmitMergeInputChains1_1,
/*86448*/           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)
/*86461*/         0, /*End of Scope*/
/*86462*/       0, /*End of Scope*/
              /*SwitchOpcode*/ 101,  TARGET_VAL(ISD::LOAD),// ->86567
/*86466*/       OPC_RecordMemRef,
/*86467*/       OPC_RecordNode, // #1 = 'ld' chained node
/*86468*/       OPC_CheckFoldableChainNode,
/*86469*/       OPC_RecordChild1, // #2 = $src2
/*86470*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*86472*/       OPC_CheckPredicate, 3, // Predicate_load
/*86474*/       OPC_MoveParent,
/*86475*/       OPC_CheckPredicate, 12, // Predicate_movlp
/*86477*/       OPC_SwitchType /*2 cases */, 42,  MVT::v4f32,// ->86522
/*86480*/         OPC_Scope, 19, /*->86501*/ // 2 children in Scope
/*86482*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*86484*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*86487*/           OPC_EmitMergeInputChains1_1,
/*86488*/           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)
/*86501*/         /*Scope*/ 19, /*->86521*/
/*86502*/           OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*86504*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*86507*/           OPC_EmitMergeInputChains1_1,
/*86508*/           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)
/*86521*/         0, /*End of Scope*/
                /*SwitchType*/ 42,  MVT::v2f64,// ->86566
/*86524*/         OPC_Scope, 19, /*->86545*/ // 2 children in Scope
/*86526*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*86528*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*86531*/           OPC_EmitMergeInputChains1_1,
/*86532*/           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)
/*86545*/         /*Scope*/ 19, /*->86565*/
/*86546*/           OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*86548*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*86551*/           OPC_EmitMergeInputChains1_1,
/*86552*/           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)
/*86565*/         0, /*End of Scope*/
                0, // EndSwitchType
              0, // EndSwitchOpcode
/*86568*/   /*Scope*/ 74, /*->86643*/
/*86569*/     OPC_MoveChild, 0,
/*86571*/     OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*86574*/     OPC_MoveChild, 0,
/*86576*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*86579*/     OPC_RecordMemRef,
/*86580*/     OPC_RecordNode, // #0 = 'ld' chained node
/*86581*/     OPC_CheckFoldableChainNode,
/*86582*/     OPC_RecordChild1, // #1 = $src
/*86583*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*86585*/     OPC_CheckPredicate, 3, // Predicate_load
/*86587*/     OPC_CheckPredicate, 23, // Predicate_memop
/*86589*/     OPC_CheckType, MVT::v2f64,
/*86591*/     OPC_MoveParent,
/*86592*/     OPC_MoveParent,
/*86593*/     OPC_MoveChild, 1,
/*86595*/     OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
/*86598*/     OPC_MoveParent,
/*86599*/     OPC_CheckPredicate, 98, // Predicate_movddup
/*86601*/     OPC_CheckType, MVT::v4f32,
/*86603*/     OPC_Scope, 18, /*->86623*/ // 2 children in Scope
/*86605*/       OPC_CheckPatternPredicate, 16, // (Subtarget->hasSSE3())
/*86607*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*86610*/       OPC_EmitMergeInputChains1_0,
/*86611*/       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)
/*86623*/     /*Scope*/ 18, /*->86642*/
/*86624*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*86626*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*86629*/       OPC_EmitMergeInputChains1_0,
/*86630*/       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)
/*86642*/     0, /*End of Scope*/
/*86643*/   /*Scope*/ 45|128,2/*301*/, /*->86946*/
/*86645*/     OPC_RecordChild0, // #0 = $src1
/*86646*/     OPC_MoveChild, 1,
/*86648*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*86651*/     OPC_RecordMemRef,
/*86652*/     OPC_RecordNode, // #1 = 'ld' chained node
/*86653*/     OPC_CheckFoldableChainNode,
/*86654*/     OPC_RecordChild1, // #2 = $src2
/*86655*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*86657*/     OPC_CheckPredicate, 3, // Predicate_load
/*86659*/     OPC_CheckPredicate, 23, // Predicate_memop
/*86661*/     OPC_MoveParent,
/*86662*/     OPC_Scope, 46, /*->86710*/ // 6 children in Scope
/*86664*/       OPC_CheckPredicate, 13, // Predicate_unpckh
/*86666*/       OPC_SwitchType /*2 cases */, 19,  MVT::v4f32,// ->86688
/*86669*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*86671*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*86674*/         OPC_EmitMergeInputChains1_1,
/*86675*/         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,// ->86709
/*86690*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*86692*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*86695*/         OPC_EmitMergeInputChains1_1,
/*86696*/         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
/*86710*/     /*Scope*/ 46, /*->86757*/
/*86711*/       OPC_CheckPredicate, 107, // Predicate_unpckl
/*86713*/       OPC_SwitchType /*2 cases */, 19,  MVT::v4f32,// ->86735
/*86716*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*86718*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*86721*/         OPC_EmitMergeInputChains1_1,
/*86722*/         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,// ->86756
/*86737*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*86739*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*86742*/         OPC_EmitMergeInputChains1_1,
/*86743*/         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
/*86757*/     /*Scope*/ 46, /*->86804*/
/*86758*/       OPC_CheckPredicate, 13, // Predicate_unpckh
/*86760*/       OPC_SwitchType /*2 cases */, 19,  MVT::v8f32,// ->86782
/*86763*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*86765*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*86768*/         OPC_EmitMergeInputChains1_1,
/*86769*/         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,// ->86803
/*86784*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*86786*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*86789*/         OPC_EmitMergeInputChains1_1,
/*86790*/         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
/*86804*/     /*Scope*/ 46, /*->86851*/
/*86805*/       OPC_CheckPredicate, 107, // Predicate_unpckl
/*86807*/       OPC_SwitchType /*2 cases */, 19,  MVT::v8f32,// ->86829
/*86810*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*86812*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*86815*/         OPC_EmitMergeInputChains1_1,
/*86816*/         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,// ->86850
/*86831*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*86833*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*86836*/         OPC_EmitMergeInputChains1_1,
/*86837*/         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
/*86851*/     /*Scope*/ 46, /*->86898*/
/*86852*/       OPC_CheckPredicate, 13, // Predicate_unpckh
/*86854*/       OPC_SwitchType /*2 cases */, 19,  MVT::v4f32,// ->86876
/*86857*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*86859*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*86862*/         OPC_EmitMergeInputChains1_1,
/*86863*/         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,// ->86897
/*86878*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*86880*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*86883*/         OPC_EmitMergeInputChains1_1,
/*86884*/         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
/*86898*/     /*Scope*/ 46, /*->86945*/
/*86899*/       OPC_CheckPredicate, 107, // Predicate_unpckl
/*86901*/       OPC_SwitchType /*2 cases */, 19,  MVT::v4f32,// ->86923
/*86904*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*86906*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*86909*/         OPC_EmitMergeInputChains1_1,
/*86910*/         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,// ->86944
/*86925*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*86927*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*86930*/         OPC_EmitMergeInputChains1_1,
/*86931*/         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
/*86945*/     0, /*End of Scope*/
/*86946*/   /*Scope*/ 82|128,1/*210*/, /*->87158*/
/*86948*/     OPC_MoveChild, 0,
/*86950*/     OPC_SwitchOpcode /*3 cases */, 75,  TARGET_VAL(ISD::BITCAST),// ->87029
/*86954*/       OPC_MoveChild, 0,
/*86956*/       OPC_CheckOpcode, TARGET_VAL(ISD::SCALAR_TO_VECTOR),
/*86959*/       OPC_MoveChild, 0,
/*86961*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*86964*/       OPC_RecordMemRef,
/*86965*/       OPC_RecordNode, // #0 = 'ld' chained node
/*86966*/       OPC_CheckFoldableChainNode,
/*86967*/       OPC_RecordChild1, // #1 = $src
/*86968*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*86970*/       OPC_CheckPredicate, 3, // Predicate_load
/*86972*/       OPC_CheckType, MVT::i64,
/*86974*/       OPC_MoveParent,
/*86975*/       OPC_CheckType, MVT::v2i64,
/*86977*/       OPC_MoveParent,
/*86978*/       OPC_MoveParent,
/*86979*/       OPC_MoveChild, 1,
/*86981*/       OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
/*86984*/       OPC_MoveParent,
/*86985*/       OPC_CheckPredicate, 98, // Predicate_movddup
/*86987*/       OPC_CheckType, MVT::v2f64,
/*86989*/       OPC_Scope, 18, /*->87009*/ // 2 children in Scope
/*86991*/         OPC_CheckPatternPredicate, 16, // (Subtarget->hasSSE3())
/*86993*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*86996*/         OPC_EmitMergeInputChains1_0,
/*86997*/         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)
/*87009*/       /*Scope*/ 18, /*->87028*/
/*87010*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*87012*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*87015*/         OPC_EmitMergeInputChains1_0,
/*87016*/         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)
/*87028*/       0, /*End of Scope*/
              /*SwitchOpcode*/ 61,  TARGET_VAL(ISD::LOAD),// ->87093
/*87032*/       OPC_RecordMemRef,
/*87033*/       OPC_RecordNode, // #0 = 'ld' chained node
/*87034*/       OPC_CheckFoldableChainNode,
/*87035*/       OPC_RecordChild1, // #1 = $src
/*87036*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*87038*/       OPC_CheckPredicate, 3, // Predicate_load
/*87040*/       OPC_CheckPredicate, 23, // Predicate_memop
/*87042*/       OPC_MoveParent,
/*87043*/       OPC_MoveChild, 1,
/*87045*/       OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
/*87048*/       OPC_MoveParent,
/*87049*/       OPC_CheckPredicate, 98, // Predicate_movddup
/*87051*/       OPC_CheckType, MVT::v2f64,
/*87053*/       OPC_Scope, 18, /*->87073*/ // 2 children in Scope
/*87055*/         OPC_CheckPatternPredicate, 16, // (Subtarget->hasSSE3())
/*87057*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*87060*/         OPC_EmitMergeInputChains1_0,
/*87061*/         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)
/*87073*/       /*Scope*/ 18, /*->87092*/
/*87074*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*87076*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*87079*/         OPC_EmitMergeInputChains1_0,
/*87080*/         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)
/*87092*/       0, /*End of Scope*/
              /*SwitchOpcode*/ 61,  TARGET_VAL(ISD::SCALAR_TO_VECTOR),// ->87157
/*87096*/       OPC_MoveChild, 0,
/*87098*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*87101*/       OPC_RecordMemRef,
/*87102*/       OPC_RecordNode, // #0 = 'ld' chained node
/*87103*/       OPC_CheckFoldableChainNode,
/*87104*/       OPC_RecordChild1, // #1 = $src
/*87105*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*87107*/       OPC_CheckPredicate, 3, // Predicate_load
/*87109*/       OPC_CheckType, MVT::f64,
/*87111*/       OPC_MoveParent,
/*87112*/       OPC_MoveParent,
/*87113*/       OPC_MoveChild, 1,
/*87115*/       OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
/*87118*/       OPC_MoveParent,
/*87119*/       OPC_CheckPredicate, 98, // Predicate_movddup
/*87121*/       OPC_CheckType, MVT::v2f64,
/*87123*/       OPC_CheckPatternPredicate, 16, // (Subtarget->hasSSE3())
/*87125*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*87128*/       OPC_EmitMergeInputChains1_0,
/*87129*/       OPC_Scope, 12, /*->87143*/ // 2 children in Scope
/*87131*/         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)
/*87143*/       /*Scope*/ 12, /*->87156*/
/*87144*/         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)
/*87156*/       0, /*End of Scope*/
              0, // EndSwitchOpcode
/*87158*/   /*Scope*/ 67, /*->87226*/
/*87159*/     OPC_RecordChild0, // #0 = $src
/*87160*/     OPC_MoveChild, 1,
/*87162*/     OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
/*87165*/     OPC_MoveParent,
/*87166*/     OPC_CheckType, MVT::v4f32,
/*87168*/     OPC_Scope, 13, /*->87183*/ // 4 children in Scope
/*87170*/       OPC_CheckPredicate, 98, // Predicate_movddup
/*87172*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*87174*/       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)
/*87183*/     /*Scope*/ 13, /*->87197*/
/*87184*/       OPC_CheckPredicate, 103, // Predicate_movhlps_undef
/*87186*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*87188*/       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)
/*87197*/     /*Scope*/ 13, /*->87211*/
/*87198*/       OPC_CheckPredicate, 98, // Predicate_movddup
/*87200*/       OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*87202*/       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)
/*87211*/     /*Scope*/ 13, /*->87225*/
/*87212*/       OPC_CheckPredicate, 103, // Predicate_movhlps_undef
/*87214*/       OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*87216*/       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)
/*87225*/     0, /*End of Scope*/
/*87226*/   /*Scope*/ 60|128,1/*188*/, /*->87416*/
/*87228*/     OPC_RecordNode, // #0 = $src3
/*87229*/     OPC_RecordChild0, // #1 = $src1
/*87230*/     OPC_MoveChild, 1,
/*87232*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*87235*/     OPC_RecordMemRef,
/*87236*/     OPC_RecordNode, // #2 = 'ld' chained node
/*87237*/     OPC_CheckFoldableChainNode,
/*87238*/     OPC_RecordChild1, // #3 = $src2
/*87239*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*87241*/     OPC_CheckPredicate, 3, // Predicate_load
/*87243*/     OPC_CheckPredicate, 23, // Predicate_memop
/*87245*/     OPC_MoveParent,
/*87246*/     OPC_CheckPredicate, 101, // Predicate_shufp
/*87248*/     OPC_SwitchType /*4 cases */, 54,  MVT::v4f32,// ->87305
/*87251*/       OPC_Scope, 25, /*->87278*/ // 2 children in Scope
/*87253*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*87255*/         OPC_CheckComplexPat, /*CP*/0, /*#*/3, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*87258*/         OPC_EmitMergeInputChains, 1, 2, 
/*87261*/         OPC_EmitNodeXForm, 3, 0, // SHUFFLE_get_shuf_imm
/*87264*/         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))
/*87278*/       /*Scope*/ 25, /*->87304*/
/*87279*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*87281*/         OPC_CheckComplexPat, /*CP*/0, /*#*/3, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*87284*/         OPC_EmitMergeInputChains, 1, 2, 
/*87287*/         OPC_EmitNodeXForm, 3, 0, // SHUFFLE_get_shuf_imm
/*87290*/         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))
/*87304*/       0, /*End of Scope*/
              /*SwitchType*/ 25,  MVT::v8f32,// ->87332
/*87307*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*87309*/       OPC_CheckComplexPat, /*CP*/0, /*#*/3, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*87312*/       OPC_EmitMergeInputChains, 1, 2, 
/*87315*/       OPC_EmitNodeXForm, 3, 0, // SHUFFLE_get_shuf_imm
/*87318*/       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,// ->87388
/*87334*/       OPC_Scope, 25, /*->87361*/ // 2 children in Scope
/*87336*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*87338*/         OPC_CheckComplexPat, /*CP*/0, /*#*/3, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*87341*/         OPC_EmitMergeInputChains, 1, 2, 
/*87344*/         OPC_EmitNodeXForm, 3, 0, // SHUFFLE_get_shuf_imm
/*87347*/         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))
/*87361*/       /*Scope*/ 25, /*->87387*/
/*87362*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*87364*/         OPC_CheckComplexPat, /*CP*/0, /*#*/3, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*87367*/         OPC_EmitMergeInputChains, 1, 2, 
/*87370*/         OPC_EmitNodeXForm, 3, 0, // SHUFFLE_get_shuf_imm
/*87373*/         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))
/*87387*/       0, /*End of Scope*/
              /*SwitchType*/ 25,  MVT::v4f64,// ->87415
/*87390*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*87392*/       OPC_CheckComplexPat, /*CP*/0, /*#*/3, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*87395*/       OPC_EmitMergeInputChains, 1, 2, 
/*87398*/       OPC_EmitNodeXForm, 3, 0, // SHUFFLE_get_shuf_imm
/*87401*/       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
/*87416*/   /*Scope*/ 82|128,3/*466*/, /*->87884*/
/*87418*/     OPC_RecordChild0, // #0 = $src1
/*87419*/     OPC_Scope, 105|128,1/*233*/, /*->87655*/ // 3 children in Scope
/*87422*/       OPC_RecordChild1, // #1 = $src2
/*87423*/       OPC_Scope, 15, /*->87440*/ // 8 children in Scope
/*87425*/         OPC_CheckPredicate, 102, // Predicate_movlhps
/*87427*/         OPC_CheckType, MVT::v4f32,
/*87429*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*87431*/         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)
/*87440*/       /*Scope*/ 15, /*->87456*/
/*87441*/         OPC_CheckPredicate, 104, // Predicate_movhlps
/*87443*/         OPC_CheckType, MVT::v4f32,
/*87445*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*87447*/         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)
/*87456*/       /*Scope*/ 15, /*->87472*/
/*87457*/         OPC_CheckPredicate, 102, // Predicate_movlhps
/*87459*/         OPC_CheckType, MVT::v4f32,
/*87461*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*87463*/         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)
/*87472*/       /*Scope*/ 15, /*->87488*/
/*87473*/         OPC_CheckPredicate, 104, // Predicate_movhlps
/*87475*/         OPC_CheckType, MVT::v4f32,
/*87477*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*87479*/         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)
/*87488*/       /*Scope*/ 54, /*->87543*/
/*87489*/         OPC_CheckPredicate, 105, // Predicate_movl
/*87491*/         OPC_SwitchType /*2 cases */, 23,  MVT::v4f32,// ->87517
/*87494*/           OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*87496*/           OPC_EmitInteger, MVT::i32, X86::sub_ss,
/*87499*/           OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        1/*#VTs*/, MVT::f32, 2/*#Ops*/, 1, 2,  // Results = #3 
/*87508*/           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,// ->87542
/*87519*/           OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*87521*/           OPC_EmitInteger, MVT::i32, X86::sub_sd,
/*87524*/           OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        1/*#VTs*/, MVT::f64, 2/*#Ops*/, 1, 2,  // Results = #3 
/*87533*/           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
/*87543*/       /*Scope*/ 27, /*->87571*/
/*87544*/         OPC_CheckPredicate, 12, // Predicate_movlp
/*87546*/         OPC_CheckType, MVT::v4f32,
/*87548*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*87550*/         OPC_EmitInteger, MVT::i32, X86::sub_sd,
/*87553*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      1/*#VTs*/, MVT::f64, 2/*#Ops*/, 1, 2,  // Results = #3 
/*87562*/         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))
/*87571*/       /*Scope*/ 54, /*->87626*/
/*87572*/         OPC_CheckPredicate, 105, // Predicate_movl
/*87574*/         OPC_SwitchType /*2 cases */, 23,  MVT::v4f32,// ->87600
/*87577*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*87579*/           OPC_EmitInteger, MVT::i32, X86::sub_ss,
/*87582*/           OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        1/*#VTs*/, MVT::f32, 2/*#Ops*/, 1, 2,  // Results = #3 
/*87591*/           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,// ->87625
/*87602*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*87604*/           OPC_EmitInteger, MVT::i32, X86::sub_sd,
/*87607*/           OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        1/*#VTs*/, MVT::f64, 2/*#Ops*/, 1, 2,  // Results = #3 
/*87616*/           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
/*87626*/       /*Scope*/ 27, /*->87654*/
/*87627*/         OPC_CheckPredicate, 12, // Predicate_movlp
/*87629*/         OPC_CheckType, MVT::v4f32,
/*87631*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*87633*/         OPC_EmitInteger, MVT::i32, X86::sub_sd,
/*87636*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      1/*#VTs*/, MVT::f64, 2/*#Ops*/, 1, 2,  // Results = #3 
/*87645*/         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))
/*87654*/       0, /*End of Scope*/
/*87655*/     /*Scope*/ 36, /*->87692*/
/*87656*/       OPC_MoveChild, 1,
/*87658*/       OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
/*87661*/       OPC_MoveParent,
/*87662*/       OPC_CheckPredicate, 106, // Predicate_splat_lo
/*87664*/       OPC_CheckType, MVT::v2f64,
/*87666*/       OPC_Scope, 11, /*->87679*/ // 2 children in Scope
/*87668*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*87670*/         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)
/*87679*/       /*Scope*/ 11, /*->87691*/
/*87680*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*87682*/         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)
/*87691*/       0, /*End of Scope*/
/*87692*/     /*Scope*/ 61|128,1/*189*/, /*->87883*/
/*87694*/       OPC_RecordChild1, // #1 = $src2
/*87695*/       OPC_Scope, 30, /*->87727*/ // 6 children in Scope
/*87697*/         OPC_CheckPredicate, 13, // Predicate_unpckh
/*87699*/         OPC_SwitchType /*2 cases */, 11,  MVT::v4f32,// ->87713
/*87702*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*87704*/           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,// ->87726
/*87715*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*87717*/           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
/*87727*/       /*Scope*/ 30, /*->87758*/
/*87728*/         OPC_CheckPredicate, 107, // Predicate_unpckl
/*87730*/         OPC_SwitchType /*2 cases */, 11,  MVT::v4f32,// ->87744
/*87733*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*87735*/           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,// ->87757
/*87746*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*87748*/           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
/*87758*/       /*Scope*/ 30, /*->87789*/
/*87759*/         OPC_CheckPredicate, 13, // Predicate_unpckh
/*87761*/         OPC_SwitchType /*2 cases */, 11,  MVT::v8f32,// ->87775
/*87764*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*87766*/           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,// ->87788
/*87777*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*87779*/           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
/*87789*/       /*Scope*/ 30, /*->87820*/
/*87790*/         OPC_CheckPredicate, 107, // Predicate_unpckl
/*87792*/         OPC_SwitchType /*2 cases */, 11,  MVT::v8f32,// ->87806
/*87795*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*87797*/           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,// ->87819
/*87808*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*87810*/           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
/*87820*/       /*Scope*/ 30, /*->87851*/
/*87821*/         OPC_CheckPredicate, 13, // Predicate_unpckh
/*87823*/         OPC_SwitchType /*2 cases */, 11,  MVT::v4f32,// ->87837
/*87826*/           OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*87828*/           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,// ->87850
/*87839*/           OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*87841*/           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
/*87851*/       /*Scope*/ 30, /*->87882*/
/*87852*/         OPC_CheckPredicate, 107, // Predicate_unpckl
/*87854*/         OPC_SwitchType /*2 cases */, 11,  MVT::v4f32,// ->87868
/*87857*/           OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*87859*/           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,// ->87881
/*87870*/           OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*87872*/           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
/*87882*/       0, /*End of Scope*/
/*87883*/     0, /*End of Scope*/
/*87884*/   /*Scope*/ 44, /*->87929*/
/*87885*/     OPC_RecordNode, // #0 = $src2
/*87886*/     OPC_RecordChild0, // #1 = $src1
/*87887*/     OPC_MoveChild, 1,
/*87889*/     OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
/*87892*/     OPC_MoveParent,
/*87893*/     OPC_CheckPredicate, 97, // Predicate_pshufd
/*87895*/     OPC_CheckType, MVT::v4f32,
/*87897*/     OPC_Scope, 14, /*->87913*/ // 2 children in Scope
/*87899*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*87901*/       OPC_EmitNodeXForm, 3, 0, // SHUFFLE_get_shuf_imm
/*87904*/       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))
/*87913*/     /*Scope*/ 14, /*->87928*/
/*87914*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*87916*/       OPC_EmitNodeXForm, 3, 0, // SHUFFLE_get_shuf_imm
/*87919*/       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))
/*87928*/     0, /*End of Scope*/
/*87929*/   /*Scope*/ 77, /*->88007*/
/*87930*/     OPC_RecordChild0, // #0 = $src1
/*87931*/     OPC_MoveChild, 1,
/*87933*/     OPC_CheckOpcode, TARGET_VAL(ISD::SCALAR_TO_VECTOR),
/*87936*/     OPC_RecordChild0, // #1 = $src2
/*87937*/     OPC_Scope, 33, /*->87972*/ // 2 children in Scope
/*87939*/       OPC_CheckChild0Type, MVT::f32,
/*87941*/       OPC_MoveParent,
/*87942*/       OPC_CheckPredicate, 105, // Predicate_movl
/*87944*/       OPC_CheckType, MVT::v4f32,
/*87946*/       OPC_Scope, 11, /*->87959*/ // 2 children in Scope
/*87948*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*87950*/         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)
/*87959*/       /*Scope*/ 11, /*->87971*/
/*87960*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*87962*/         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)
/*87971*/       0, /*End of Scope*/
/*87972*/     /*Scope*/ 33, /*->88006*/
/*87973*/       OPC_CheckChild0Type, MVT::f64,
/*87975*/       OPC_MoveParent,
/*87976*/       OPC_CheckPredicate, 105, // Predicate_movl
/*87978*/       OPC_CheckType, MVT::v2f64,
/*87980*/       OPC_Scope, 11, /*->87993*/ // 2 children in Scope
/*87982*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*87984*/         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)
/*87993*/       /*Scope*/ 11, /*->88005*/
/*87994*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*87996*/         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)
/*88005*/       0, /*End of Scope*/
/*88006*/     0, /*End of Scope*/
/*88007*/   /*Scope*/ 84, /*->88092*/
/*88008*/     OPC_RecordNode, // #0 = $src3
/*88009*/     OPC_RecordChild0, // #1 = $src1
/*88010*/     OPC_MoveChild, 1,
/*88012*/     OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
/*88015*/     OPC_MoveParent,
/*88016*/     OPC_CheckPredicate, 97, // Predicate_pshufd
/*88018*/     OPC_SwitchType /*2 cases */, 34,  MVT::v4f32,// ->88055
/*88021*/       OPC_Scope, 15, /*->88038*/ // 2 children in Scope
/*88023*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*88025*/         OPC_EmitNodeXForm, 3, 0, // SHUFFLE_get_shuf_imm
/*88028*/         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))
/*88038*/       /*Scope*/ 15, /*->88054*/
/*88039*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*88041*/         OPC_EmitNodeXForm, 3, 0, // SHUFFLE_get_shuf_imm
/*88044*/         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))
/*88054*/       0, /*End of Scope*/
              /*SwitchType*/ 34,  MVT::v2f64,// ->88091
/*88057*/       OPC_Scope, 15, /*->88074*/ // 2 children in Scope
/*88059*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*88061*/         OPC_EmitNodeXForm, 3, 0, // SHUFFLE_get_shuf_imm
/*88064*/         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))
/*88074*/       /*Scope*/ 15, /*->88090*/
/*88075*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*88077*/         OPC_EmitNodeXForm, 3, 0, // SHUFFLE_get_shuf_imm
/*88080*/         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))
/*88090*/       0, /*End of Scope*/
              0, // EndSwitchType
/*88092*/   /*Scope*/ 33, /*->88126*/
/*88093*/     OPC_RecordChild0, // #0 = $src
/*88094*/     OPC_MoveChild, 1,
/*88096*/     OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
/*88099*/     OPC_MoveParent,
/*88100*/     OPC_CheckPredicate, 98, // Predicate_movddup
/*88102*/     OPC_CheckType, MVT::v2f64,
/*88104*/     OPC_CheckPatternPredicate, 16, // (Subtarget->hasSSE3())
/*88106*/     OPC_Scope, 8, /*->88116*/ // 2 children in Scope
/*88108*/       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)
/*88116*/     /*Scope*/ 8, /*->88125*/
/*88117*/       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)
/*88125*/     0, /*End of Scope*/
/*88126*/   /*Scope*/ 27|128,1/*155*/, /*->88283*/
/*88128*/     OPC_RecordNode, // #0 = $src3
/*88129*/     OPC_RecordChild0, // #1 = $src1
/*88130*/     OPC_RecordChild1, // #2 = $src2
/*88131*/     OPC_Scope, 110, /*->88243*/ // 2 children in Scope
/*88133*/       OPC_CheckPredicate, 101, // Predicate_shufp
/*88135*/       OPC_SwitchType /*4 cases */, 34,  MVT::v4f32,// ->88172
/*88138*/         OPC_Scope, 15, /*->88155*/ // 2 children in Scope
/*88140*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*88142*/           OPC_EmitNodeXForm, 3, 0, // SHUFFLE_get_shuf_imm
/*88145*/           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))
/*88155*/         /*Scope*/ 15, /*->88171*/
/*88156*/           OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*88158*/           OPC_EmitNodeXForm, 3, 0, // SHUFFLE_get_shuf_imm
/*88161*/           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))
/*88171*/         0, /*End of Scope*/
                /*SwitchType*/ 15,  MVT::v8f32,// ->88189
/*88174*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*88176*/         OPC_EmitNodeXForm, 3, 0, // SHUFFLE_get_shuf_imm
/*88179*/         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,// ->88225
/*88191*/         OPC_Scope, 15, /*->88208*/ // 2 children in Scope
/*88193*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*88195*/           OPC_EmitNodeXForm, 3, 0, // SHUFFLE_get_shuf_imm
/*88198*/           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))
/*88208*/         /*Scope*/ 15, /*->88224*/
/*88209*/           OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*88211*/           OPC_EmitNodeXForm, 3, 0, // SHUFFLE_get_shuf_imm
/*88214*/           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))
/*88224*/         0, /*End of Scope*/
                /*SwitchType*/ 15,  MVT::v4f64,// ->88242
/*88227*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*88229*/         OPC_EmitNodeXForm, 3, 0, // SHUFFLE_get_shuf_imm
/*88232*/         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
/*88243*/     /*Scope*/ 38, /*->88282*/
/*88244*/       OPC_CheckPredicate, 12, // Predicate_movlp
/*88246*/       OPC_CheckType, MVT::v4f32,
/*88248*/       OPC_Scope, 15, /*->88265*/ // 2 children in Scope
/*88250*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*88252*/         OPC_EmitNodeXForm, 3, 0, // SHUFFLE_get_shuf_imm
/*88255*/         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))
/*88265*/       /*Scope*/ 15, /*->88281*/
/*88266*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*88268*/         OPC_EmitNodeXForm, 3, 0, // SHUFFLE_get_shuf_imm
/*88271*/         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))
/*88281*/       0, /*End of Scope*/
/*88282*/     0, /*End of Scope*/
/*88283*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 121,  TARGET_VAL(X86ISD::VZEXT_LOAD),// ->88408
/*88287*/   OPC_RecordMemRef,
/*88288*/   OPC_RecordNode,   // #0 = 'X86vzload' chained node
/*88289*/   OPC_RecordChild1, // #1 = $src
/*88290*/   OPC_SwitchType /*2 cases */, 40,  MVT::v2i64,// ->88333
/*88293*/     OPC_Scope, 18, /*->88313*/ // 2 children in Scope
/*88295*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*88297*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*88300*/       OPC_EmitMergeInputChains1_0,
/*88301*/       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)
/*88313*/     /*Scope*/ 18, /*->88332*/
/*88314*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*88316*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*88319*/       OPC_EmitMergeInputChains1_0,
/*88320*/       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)
/*88332*/     0, /*End of Scope*/
            /*SwitchType*/ 72,  MVT::v2f64,// ->88407
/*88335*/     OPC_Scope, 34, /*->88371*/ // 2 children in Scope
/*88337*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*88339*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*88342*/       OPC_EmitMergeInputChains1_0,
/*88343*/       OPC_EmitInteger, MVT::i64, 0, 
/*88346*/       OPC_EmitNode, TARGET_VAL(X86::MOVSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::f64, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #8 
/*88358*/       OPC_EmitInteger, MVT::i32, X86::sub_sd,
/*88361*/       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)
/*88371*/     /*Scope*/ 34, /*->88406*/
/*88372*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*88374*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*88377*/       OPC_EmitMergeInputChains1_0,
/*88378*/       OPC_EmitInteger, MVT::i64, 0, 
/*88381*/       OPC_EmitNode, TARGET_VAL(X86::VMOVSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1/*#VTs*/, MVT::f64, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #8 
/*88393*/       OPC_EmitInteger, MVT::i32, X86::sub_sd,
/*88396*/       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)
/*88406*/     0, /*End of Scope*/
            0, // EndSwitchType
          /*SwitchOpcode*/ 21|128,3/*405*/,  TARGET_VAL(X86ISD::SHUFPS),// ->88817
/*88412*/   OPC_RecordChild0, // #0 = $src1
/*88413*/   OPC_Scope, 122, /*->88537*/ // 4 children in Scope
/*88415*/     OPC_MoveChild, 1,
/*88417*/     OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*88420*/     OPC_MoveChild, 0,
/*88422*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*88425*/     OPC_RecordMemRef,
/*88426*/     OPC_RecordNode, // #1 = 'ld' chained node
/*88427*/     OPC_CheckFoldableChainNode,
/*88428*/     OPC_RecordChild1, // #2 = $src2
/*88429*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*88431*/     OPC_CheckPredicate, 3, // Predicate_load
/*88433*/     OPC_CheckPredicate, 23, // Predicate_memop
/*88435*/     OPC_SwitchType /*2 cases */, 61,  MVT::v2i64,// ->88499
/*88438*/       OPC_MoveParent,
/*88439*/       OPC_MoveParent,
/*88440*/       OPC_RecordChild2, // #3 = $imm
/*88441*/       OPC_MoveChild, 2,
/*88443*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*88446*/       OPC_CheckType, MVT::i8,
/*88448*/       OPC_MoveParent,
/*88449*/       OPC_CheckType, MVT::v4i32,
/*88451*/       OPC_Scope, 22, /*->88475*/ // 2 children in Scope
/*88453*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*88455*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*88458*/         OPC_EmitMergeInputChains1_1,
/*88459*/         OPC_EmitConvertToTarget, 3,
/*88461*/         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)
/*88475*/       /*Scope*/ 22, /*->88498*/
/*88476*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*88478*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*88481*/         OPC_EmitMergeInputChains1_1,
/*88482*/         OPC_EmitConvertToTarget, 3,
/*88484*/         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)
/*88498*/       0, /*End of Scope*/
              /*SwitchType*/ 35,  MVT::v4i64,// ->88536
/*88501*/       OPC_MoveParent,
/*88502*/       OPC_MoveParent,
/*88503*/       OPC_RecordChild2, // #3 = $imm
/*88504*/       OPC_MoveChild, 2,
/*88506*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*88509*/       OPC_CheckType, MVT::i8,
/*88511*/       OPC_MoveParent,
/*88512*/       OPC_CheckType, MVT::v8i32,
/*88514*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*88516*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*88519*/       OPC_EmitMergeInputChains1_1,
/*88520*/       OPC_EmitConvertToTarget, 3,
/*88522*/       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
/*88537*/   /*Scope*/ 62, /*->88600*/
/*88538*/     OPC_RecordChild1, // #1 = $src2
/*88539*/     OPC_RecordChild2, // #2 = $imm
/*88540*/     OPC_MoveChild, 2,
/*88542*/     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*88545*/     OPC_CheckType, MVT::i8,
/*88547*/     OPC_MoveParent,
/*88548*/     OPC_SwitchType /*2 cases */, 32,  MVT::v4i32,// ->88583
/*88551*/       OPC_Scope, 14, /*->88567*/ // 2 children in Scope
/*88553*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*88555*/         OPC_EmitConvertToTarget, 2,
/*88557*/         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)
/*88567*/       /*Scope*/ 14, /*->88582*/
/*88568*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*88570*/         OPC_EmitConvertToTarget, 2,
/*88572*/         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)
/*88582*/       0, /*End of Scope*/
              /*SwitchType*/ 14,  MVT::v8i32,// ->88599
/*88585*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*88587*/       OPC_EmitConvertToTarget, 2,
/*88589*/       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
/*88600*/   /*Scope*/ 23|128,1/*151*/, /*->88753*/
/*88602*/     OPC_MoveChild, 1,
/*88604*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*88607*/     OPC_RecordMemRef,
/*88608*/     OPC_RecordNode, // #1 = 'ld' chained node
/*88609*/     OPC_CheckFoldableChainNode,
/*88610*/     OPC_RecordChild1, // #2 = $src2
/*88611*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*88613*/     OPC_CheckPredicate, 3, // Predicate_load
/*88615*/     OPC_CheckPredicate, 23, // Predicate_memop
/*88617*/     OPC_MoveParent,
/*88618*/     OPC_RecordChild2, // #3 = $imm
/*88619*/     OPC_MoveChild, 2,
/*88621*/     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*88624*/     OPC_CheckType, MVT::i8,
/*88626*/     OPC_MoveParent,
/*88627*/     OPC_SwitchType /*3 cases */, 48,  MVT::v4f32,// ->88678
/*88630*/       OPC_Scope, 22, /*->88654*/ // 2 children in Scope
/*88632*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*88634*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*88637*/         OPC_EmitMergeInputChains1_1,
/*88638*/         OPC_EmitConvertToTarget, 3,
/*88640*/         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)
/*88654*/       /*Scope*/ 22, /*->88677*/
/*88655*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*88657*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*88660*/         OPC_EmitMergeInputChains1_1,
/*88661*/         OPC_EmitConvertToTarget, 3,
/*88663*/         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)
/*88677*/       0, /*End of Scope*/
              /*SwitchType*/ 48,  MVT::v2f64,// ->88728
/*88680*/       OPC_Scope, 22, /*->88704*/ // 2 children in Scope
/*88682*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*88684*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*88687*/         OPC_EmitMergeInputChains1_1,
/*88688*/         OPC_EmitConvertToTarget, 3,
/*88690*/         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)
/*88704*/       /*Scope*/ 22, /*->88727*/
/*88705*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*88707*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*88710*/         OPC_EmitMergeInputChains1_1,
/*88711*/         OPC_EmitConvertToTarget, 3,
/*88713*/         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)
/*88727*/       0, /*End of Scope*/
              /*SwitchType*/ 22,  MVT::v8f32,// ->88752
/*88730*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*88732*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*88735*/       OPC_EmitMergeInputChains1_1,
/*88736*/       OPC_EmitConvertToTarget, 3,
/*88738*/       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
/*88753*/   /*Scope*/ 62, /*->88816*/
/*88754*/     OPC_RecordChild1, // #1 = $src2
/*88755*/     OPC_RecordChild2, // #2 = $imm
/*88756*/     OPC_MoveChild, 2,
/*88758*/     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*88761*/     OPC_CheckType, MVT::i8,
/*88763*/     OPC_MoveParent,
/*88764*/     OPC_SwitchType /*2 cases */, 32,  MVT::v4f32,// ->88799
/*88767*/       OPC_Scope, 14, /*->88783*/ // 2 children in Scope
/*88769*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*88771*/         OPC_EmitConvertToTarget, 2,
/*88773*/         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)
/*88783*/       /*Scope*/ 14, /*->88798*/
/*88784*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*88786*/         OPC_EmitConvertToTarget, 2,
/*88788*/         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)
/*88798*/       0, /*End of Scope*/
              /*SwitchType*/ 14,  MVT::v8f32,// ->88815
/*88801*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*88803*/       OPC_EmitConvertToTarget, 2,
/*88805*/       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
/*88816*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 97|128,1/*225*/,  TARGET_VAL(X86ISD::PSHUFD),// ->89046
/*88821*/   OPC_Scope, 16|128,1/*144*/, /*->88968*/ // 2 children in Scope
/*88824*/     OPC_MoveChild, 0,
/*88826*/     OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*88829*/     OPC_MoveChild, 0,
/*88831*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*88834*/     OPC_RecordMemRef,
/*88835*/     OPC_RecordNode, // #0 = 'ld' chained node
/*88836*/     OPC_CheckFoldableChainNode,
/*88837*/     OPC_RecordChild1, // #1 = $src1
/*88838*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*88840*/     OPC_CheckPredicate, 3, // Predicate_load
/*88842*/     OPC_CheckPredicate, 23, // Predicate_memop
/*88844*/     OPC_SwitchType /*2 cases */, 59,  MVT::v2i64,// ->88906
/*88847*/       OPC_MoveParent,
/*88848*/       OPC_MoveParent,
/*88849*/       OPC_RecordChild1, // #2 = $imm
/*88850*/       OPC_MoveChild, 1,
/*88852*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*88855*/       OPC_CheckType, MVT::i8,
/*88857*/       OPC_MoveParent,
/*88858*/       OPC_CheckType, MVT::v4i32,
/*88860*/       OPC_Scope, 21, /*->88883*/ // 2 children in Scope
/*88862*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*88864*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #3 #4 #5 #6 #7
/*88867*/         OPC_EmitMergeInputChains1_0,
/*88868*/         OPC_EmitConvertToTarget, 2,
/*88870*/         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)
/*88883*/       /*Scope*/ 21, /*->88905*/
/*88884*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*88886*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #3 #4 #5 #6 #7
/*88889*/         OPC_EmitMergeInputChains1_0,
/*88890*/         OPC_EmitConvertToTarget, 2,
/*88892*/         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)
/*88905*/       0, /*End of Scope*/
              /*SwitchType*/ 59,  MVT::v4f32,// ->88967
/*88908*/       OPC_MoveParent,
/*88909*/       OPC_MoveParent,
/*88910*/       OPC_RecordChild1, // #2 = $imm
/*88911*/       OPC_MoveChild, 1,
/*88913*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*88916*/       OPC_CheckType, MVT::i8,
/*88918*/       OPC_MoveParent,
/*88919*/       OPC_CheckType, MVT::v4i32,
/*88921*/       OPC_Scope, 21, /*->88944*/ // 2 children in Scope
/*88923*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*88925*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #3 #4 #5 #6 #7
/*88928*/         OPC_EmitMergeInputChains1_0,
/*88929*/         OPC_EmitConvertToTarget, 2,
/*88931*/         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)
/*88944*/       /*Scope*/ 21, /*->88966*/
/*88945*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*88947*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src1 #3 #4 #5 #6 #7
/*88950*/         OPC_EmitMergeInputChains1_0,
/*88951*/         OPC_EmitConvertToTarget, 2,
/*88953*/         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)
/*88966*/       0, /*End of Scope*/
              0, // EndSwitchType
/*88968*/   /*Scope*/ 76, /*->89045*/
/*88969*/     OPC_RecordChild0, // #0 = $src1
/*88970*/     OPC_RecordChild1, // #1 = $imm
/*88971*/     OPC_MoveChild, 1,
/*88973*/     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*88976*/     OPC_CheckType, MVT::i8,
/*88978*/     OPC_MoveParent,
/*88979*/     OPC_SwitchType /*2 cases */, 30,  MVT::v4i32,// ->89012
/*88982*/       OPC_Scope, 13, /*->88997*/ // 2 children in Scope
/*88984*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*88986*/         OPC_EmitConvertToTarget, 1,
/*88988*/         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)
/*88997*/       /*Scope*/ 13, /*->89011*/
/*88998*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*89000*/         OPC_EmitConvertToTarget, 1,
/*89002*/         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)
/*89011*/       0, /*End of Scope*/
              /*SwitchType*/ 30,  MVT::v4f32,// ->89044
/*89014*/       OPC_Scope, 13, /*->89029*/ // 2 children in Scope
/*89016*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*89018*/         OPC_EmitConvertToTarget, 1,
/*89020*/         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)
/*89029*/       /*Scope*/ 13, /*->89043*/
/*89030*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*89032*/         OPC_EmitConvertToTarget, 1,
/*89034*/         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)
/*89043*/       0, /*End of Scope*/
              0, // EndSwitchType
/*89045*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 127,  TARGET_VAL(X86ISD::PSHUFHW),// ->89176
/*89049*/   OPC_Scope, 81, /*->89132*/ // 2 children in Scope
/*89051*/     OPC_MoveChild, 0,
/*89053*/     OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*89056*/     OPC_MoveChild, 0,
/*89058*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*89061*/     OPC_RecordMemRef,
/*89062*/     OPC_RecordNode, // #0 = 'ld' chained node
/*89063*/     OPC_CheckFoldableChainNode,
/*89064*/     OPC_RecordChild1, // #1 = $src
/*89065*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*89067*/     OPC_CheckPredicate, 3, // Predicate_load
/*89069*/     OPC_CheckPredicate, 23, // Predicate_memop
/*89071*/     OPC_CheckType, MVT::v2i64,
/*89073*/     OPC_MoveParent,
/*89074*/     OPC_MoveParent,
/*89075*/     OPC_RecordChild1, // #2 = $imm
/*89076*/     OPC_MoveChild, 1,
/*89078*/     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*89081*/     OPC_CheckType, MVT::i8,
/*89083*/     OPC_MoveParent,
/*89084*/     OPC_CheckType, MVT::v8i16,
/*89086*/     OPC_Scope, 21, /*->89109*/ // 2 children in Scope
/*89088*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*89090*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #3 #4 #5 #6 #7
/*89093*/       OPC_EmitMergeInputChains1_0,
/*89094*/       OPC_EmitConvertToTarget, 2,
/*89096*/       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)
/*89109*/     /*Scope*/ 21, /*->89131*/
/*89110*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*89112*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #3 #4 #5 #6 #7
/*89115*/       OPC_EmitMergeInputChains1_0,
/*89116*/       OPC_EmitConvertToTarget, 2,
/*89118*/       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)
/*89131*/     0, /*End of Scope*/
/*89132*/   /*Scope*/ 42, /*->89175*/
/*89133*/     OPC_RecordChild0, // #0 = $src
/*89134*/     OPC_RecordChild1, // #1 = $imm
/*89135*/     OPC_MoveChild, 1,
/*89137*/     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*89140*/     OPC_CheckType, MVT::i8,
/*89142*/     OPC_MoveParent,
/*89143*/     OPC_CheckType, MVT::v8i16,
/*89145*/     OPC_Scope, 13, /*->89160*/ // 2 children in Scope
/*89147*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*89149*/       OPC_EmitConvertToTarget, 1,
/*89151*/       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)
/*89160*/     /*Scope*/ 13, /*->89174*/
/*89161*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*89163*/       OPC_EmitConvertToTarget, 1,
/*89165*/       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)
/*89174*/     0, /*End of Scope*/
/*89175*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 127,  TARGET_VAL(X86ISD::PSHUFLW),// ->89306
/*89179*/   OPC_Scope, 81, /*->89262*/ // 2 children in Scope
/*89181*/     OPC_MoveChild, 0,
/*89183*/     OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*89186*/     OPC_MoveChild, 0,
/*89188*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*89191*/     OPC_RecordMemRef,
/*89192*/     OPC_RecordNode, // #0 = 'ld' chained node
/*89193*/     OPC_CheckFoldableChainNode,
/*89194*/     OPC_RecordChild1, // #1 = $src
/*89195*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*89197*/     OPC_CheckPredicate, 3, // Predicate_load
/*89199*/     OPC_CheckPredicate, 23, // Predicate_memop
/*89201*/     OPC_CheckType, MVT::v2i64,
/*89203*/     OPC_MoveParent,
/*89204*/     OPC_MoveParent,
/*89205*/     OPC_RecordChild1, // #2 = $imm
/*89206*/     OPC_MoveChild, 1,
/*89208*/     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*89211*/     OPC_CheckType, MVT::i8,
/*89213*/     OPC_MoveParent,
/*89214*/     OPC_CheckType, MVT::v8i16,
/*89216*/     OPC_Scope, 21, /*->89239*/ // 2 children in Scope
/*89218*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*89220*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #3 #4 #5 #6 #7
/*89223*/       OPC_EmitMergeInputChains1_0,
/*89224*/       OPC_EmitConvertToTarget, 2,
/*89226*/       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)
/*89239*/     /*Scope*/ 21, /*->89261*/
/*89240*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*89242*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #3 #4 #5 #6 #7
/*89245*/       OPC_EmitMergeInputChains1_0,
/*89246*/       OPC_EmitConvertToTarget, 2,
/*89248*/       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)
/*89261*/     0, /*End of Scope*/
/*89262*/   /*Scope*/ 42, /*->89305*/
/*89263*/     OPC_RecordChild0, // #0 = $src
/*89264*/     OPC_RecordChild1, // #1 = $imm
/*89265*/     OPC_MoveChild, 1,
/*89267*/     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*89270*/     OPC_CheckType, MVT::i8,
/*89272*/     OPC_MoveParent,
/*89273*/     OPC_CheckType, MVT::v8i16,
/*89275*/     OPC_Scope, 13, /*->89290*/ // 2 children in Scope
/*89277*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*89279*/       OPC_EmitConvertToTarget, 1,
/*89281*/       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)
/*89290*/     /*Scope*/ 13, /*->89304*/
/*89291*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*89293*/       OPC_EmitConvertToTarget, 1,
/*89295*/       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)
/*89304*/     0, /*End of Scope*/
/*89305*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 75|128,1/*203*/,  TARGET_VAL(X86ISD::CMPPS),// ->89513
/*89310*/   OPC_RecordChild0, // #0 = $src1
/*89311*/   OPC_Scope, 121, /*->89434*/ // 2 children in Scope
/*89313*/     OPC_CheckChild0Type, MVT::v4f32,
/*89315*/     OPC_Scope, 73, /*->89390*/ // 2 children in Scope
/*89317*/       OPC_MoveChild, 1,
/*89319*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*89322*/       OPC_RecordMemRef,
/*89323*/       OPC_RecordNode, // #1 = 'ld' chained node
/*89324*/       OPC_CheckFoldableChainNode,
/*89325*/       OPC_RecordChild1, // #2 = $src2
/*89326*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*89328*/       OPC_CheckPredicate, 3, // Predicate_load
/*89330*/       OPC_CheckPredicate, 23, // Predicate_memop
/*89332*/       OPC_MoveParent,
/*89333*/       OPC_RecordChild2, // #3 = $cc
/*89334*/       OPC_MoveChild, 2,
/*89336*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*89339*/       OPC_MoveParent,
/*89340*/       OPC_CheckType, MVT::v4i32,
/*89342*/       OPC_Scope, 22, /*->89366*/ // 2 children in Scope
/*89344*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*89346*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*89349*/         OPC_EmitMergeInputChains1_1,
/*89350*/         OPC_EmitConvertToTarget, 3,
/*89352*/         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)
/*89366*/       /*Scope*/ 22, /*->89389*/
/*89367*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*89369*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*89372*/         OPC_EmitMergeInputChains1_1,
/*89373*/         OPC_EmitConvertToTarget, 3,
/*89375*/         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)
/*89389*/       0, /*End of Scope*/
/*89390*/     /*Scope*/ 42, /*->89433*/
/*89391*/       OPC_RecordChild1, // #1 = $src2
/*89392*/       OPC_RecordChild2, // #2 = $cc
/*89393*/       OPC_MoveChild, 2,
/*89395*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*89398*/       OPC_MoveParent,
/*89399*/       OPC_CheckType, MVT::v4i32,
/*89401*/       OPC_Scope, 14, /*->89417*/ // 2 children in Scope
/*89403*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*89405*/         OPC_EmitConvertToTarget, 2,
/*89407*/         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)
/*89417*/       /*Scope*/ 14, /*->89432*/
/*89418*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*89420*/         OPC_EmitConvertToTarget, 2,
/*89422*/         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)
/*89432*/       0, /*End of Scope*/
/*89433*/     0, /*End of Scope*/
/*89434*/   /*Scope*/ 77, /*->89512*/
/*89435*/     OPC_CheckChild0Type, MVT::v8f32,
/*89437*/     OPC_Scope, 47, /*->89486*/ // 2 children in Scope
/*89439*/       OPC_MoveChild, 1,
/*89441*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*89444*/       OPC_RecordMemRef,
/*89445*/       OPC_RecordNode, // #1 = 'ld' chained node
/*89446*/       OPC_CheckFoldableChainNode,
/*89447*/       OPC_RecordChild1, // #2 = $src2
/*89448*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*89450*/       OPC_CheckPredicate, 3, // Predicate_load
/*89452*/       OPC_CheckPredicate, 23, // Predicate_memop
/*89454*/       OPC_MoveParent,
/*89455*/       OPC_RecordChild2, // #3 = $cc
/*89456*/       OPC_MoveChild, 2,
/*89458*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*89461*/       OPC_MoveParent,
/*89462*/       OPC_CheckType, MVT::v8i32,
/*89464*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*89466*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*89469*/       OPC_EmitMergeInputChains1_1,
/*89470*/       OPC_EmitConvertToTarget, 3,
/*89472*/       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)
/*89486*/     /*Scope*/ 24, /*->89511*/
/*89487*/       OPC_RecordChild1, // #1 = $src2
/*89488*/       OPC_RecordChild2, // #2 = $cc
/*89489*/       OPC_MoveChild, 2,
/*89491*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*89494*/       OPC_MoveParent,
/*89495*/       OPC_CheckType, MVT::v8i32,
/*89497*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*89499*/       OPC_EmitConvertToTarget, 2,
/*89501*/       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)
/*89511*/     0, /*End of Scope*/
/*89512*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 75|128,1/*203*/,  TARGET_VAL(X86ISD::CMPPD),// ->89720
/*89517*/   OPC_RecordChild0, // #0 = $src1
/*89518*/   OPC_Scope, 121, /*->89641*/ // 2 children in Scope
/*89520*/     OPC_CheckChild0Type, MVT::v2f64,
/*89522*/     OPC_Scope, 73, /*->89597*/ // 2 children in Scope
/*89524*/       OPC_MoveChild, 1,
/*89526*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*89529*/       OPC_RecordMemRef,
/*89530*/       OPC_RecordNode, // #1 = 'ld' chained node
/*89531*/       OPC_CheckFoldableChainNode,
/*89532*/       OPC_RecordChild1, // #2 = $src2
/*89533*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*89535*/       OPC_CheckPredicate, 3, // Predicate_load
/*89537*/       OPC_CheckPredicate, 23, // Predicate_memop
/*89539*/       OPC_MoveParent,
/*89540*/       OPC_RecordChild2, // #3 = $cc
/*89541*/       OPC_MoveChild, 2,
/*89543*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*89546*/       OPC_MoveParent,
/*89547*/       OPC_CheckType, MVT::v2i64,
/*89549*/       OPC_Scope, 22, /*->89573*/ // 2 children in Scope
/*89551*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*89553*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*89556*/         OPC_EmitMergeInputChains1_1,
/*89557*/         OPC_EmitConvertToTarget, 3,
/*89559*/         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)
/*89573*/       /*Scope*/ 22, /*->89596*/
/*89574*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*89576*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*89579*/         OPC_EmitMergeInputChains1_1,
/*89580*/         OPC_EmitConvertToTarget, 3,
/*89582*/         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)
/*89596*/       0, /*End of Scope*/
/*89597*/     /*Scope*/ 42, /*->89640*/
/*89598*/       OPC_RecordChild1, // #1 = $src2
/*89599*/       OPC_RecordChild2, // #2 = $cc
/*89600*/       OPC_MoveChild, 2,
/*89602*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*89605*/       OPC_MoveParent,
/*89606*/       OPC_CheckType, MVT::v2i64,
/*89608*/       OPC_Scope, 14, /*->89624*/ // 2 children in Scope
/*89610*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*89612*/         OPC_EmitConvertToTarget, 2,
/*89614*/         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)
/*89624*/       /*Scope*/ 14, /*->89639*/
/*89625*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*89627*/         OPC_EmitConvertToTarget, 2,
/*89629*/         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)
/*89639*/       0, /*End of Scope*/
/*89640*/     0, /*End of Scope*/
/*89641*/   /*Scope*/ 77, /*->89719*/
/*89642*/     OPC_CheckChild0Type, MVT::v4f64,
/*89644*/     OPC_Scope, 47, /*->89693*/ // 2 children in Scope
/*89646*/       OPC_MoveChild, 1,
/*89648*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*89651*/       OPC_RecordMemRef,
/*89652*/       OPC_RecordNode, // #1 = 'ld' chained node
/*89653*/       OPC_CheckFoldableChainNode,
/*89654*/       OPC_RecordChild1, // #2 = $src2
/*89655*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*89657*/       OPC_CheckPredicate, 3, // Predicate_load
/*89659*/       OPC_CheckPredicate, 23, // Predicate_memop
/*89661*/       OPC_MoveParent,
/*89662*/       OPC_RecordChild2, // #3 = $cc
/*89663*/       OPC_MoveChild, 2,
/*89665*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*89668*/       OPC_MoveParent,
/*89669*/       OPC_CheckType, MVT::v4i64,
/*89671*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*89673*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*89676*/       OPC_EmitMergeInputChains1_1,
/*89677*/       OPC_EmitConvertToTarget, 3,
/*89679*/       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)
/*89693*/     /*Scope*/ 24, /*->89718*/
/*89694*/       OPC_RecordChild1, // #1 = $src2
/*89695*/       OPC_RecordChild2, // #2 = $cc
/*89696*/       OPC_MoveChild, 2,
/*89698*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*89701*/       OPC_MoveParent,
/*89702*/       OPC_CheckType, MVT::v4i64,
/*89704*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*89706*/       OPC_EmitConvertToTarget, 2,
/*89708*/       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)
/*89718*/     0, /*End of Scope*/
/*89719*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 101|128,1/*229*/,  TARGET_VAL(X86ISD::SHUFPD),// ->89953
/*89724*/   OPC_RecordChild0, // #0 = $src1
/*89725*/   OPC_Scope, 49, /*->89776*/ // 4 children in Scope
/*89727*/     OPC_MoveChild, 1,
/*89729*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*89732*/     OPC_RecordMemRef,
/*89733*/     OPC_RecordNode, // #1 = 'ld' chained node
/*89734*/     OPC_CheckFoldableChainNode,
/*89735*/     OPC_RecordChild1, // #2 = $src2
/*89736*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*89738*/     OPC_CheckPredicate, 3, // Predicate_load
/*89740*/     OPC_CheckPredicate, 23, // Predicate_memop
/*89742*/     OPC_MoveParent,
/*89743*/     OPC_RecordChild2, // #3 = $imm
/*89744*/     OPC_MoveChild, 2,
/*89746*/     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*89749*/     OPC_CheckType, MVT::i8,
/*89751*/     OPC_MoveParent,
/*89752*/     OPC_CheckType, MVT::v4i64,
/*89754*/     OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*89756*/     OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*89759*/     OPC_EmitMergeInputChains1_1,
/*89760*/     OPC_EmitConvertToTarget, 3,
/*89762*/     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)
/*89776*/   /*Scope*/ 62, /*->89839*/
/*89777*/     OPC_RecordChild1, // #1 = $src2
/*89778*/     OPC_RecordChild2, // #2 = $imm
/*89779*/     OPC_MoveChild, 2,
/*89781*/     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*89784*/     OPC_CheckType, MVT::i8,
/*89786*/     OPC_MoveParent,
/*89787*/     OPC_SwitchType /*2 cases */, 32,  MVT::v2i64,// ->89822
/*89790*/       OPC_Scope, 14, /*->89806*/ // 2 children in Scope
/*89792*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*89794*/         OPC_EmitConvertToTarget, 2,
/*89796*/         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)
/*89806*/       /*Scope*/ 14, /*->89821*/
/*89807*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*89809*/         OPC_EmitConvertToTarget, 2,
/*89811*/         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)
/*89821*/       0, /*End of Scope*/
              /*SwitchType*/ 14,  MVT::v4i64,// ->89838
/*89824*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*89826*/       OPC_EmitConvertToTarget, 2,
/*89828*/       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
/*89839*/   /*Scope*/ 49, /*->89889*/
/*89840*/     OPC_MoveChild, 1,
/*89842*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*89845*/     OPC_RecordMemRef,
/*89846*/     OPC_RecordNode, // #1 = 'ld' chained node
/*89847*/     OPC_CheckFoldableChainNode,
/*89848*/     OPC_RecordChild1, // #2 = $src2
/*89849*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*89851*/     OPC_CheckPredicate, 3, // Predicate_load
/*89853*/     OPC_CheckPredicate, 23, // Predicate_memop
/*89855*/     OPC_MoveParent,
/*89856*/     OPC_RecordChild2, // #3 = $imm
/*89857*/     OPC_MoveChild, 2,
/*89859*/     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*89862*/     OPC_CheckType, MVT::i8,
/*89864*/     OPC_MoveParent,
/*89865*/     OPC_CheckType, MVT::v4f64,
/*89867*/     OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*89869*/     OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*89872*/     OPC_EmitMergeInputChains1_1,
/*89873*/     OPC_EmitConvertToTarget, 3,
/*89875*/     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)
/*89889*/   /*Scope*/ 62, /*->89952*/
/*89890*/     OPC_RecordChild1, // #1 = $src2
/*89891*/     OPC_RecordChild2, // #2 = $imm
/*89892*/     OPC_MoveChild, 2,
/*89894*/     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*89897*/     OPC_CheckType, MVT::i8,
/*89899*/     OPC_MoveParent,
/*89900*/     OPC_SwitchType /*2 cases */, 32,  MVT::v2f64,// ->89935
/*89903*/       OPC_Scope, 14, /*->89919*/ // 2 children in Scope
/*89905*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*89907*/         OPC_EmitConvertToTarget, 2,
/*89909*/         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)
/*89919*/       /*Scope*/ 14, /*->89934*/
/*89920*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*89922*/         OPC_EmitConvertToTarget, 2,
/*89924*/         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)
/*89934*/       0, /*End of Scope*/
              /*SwitchType*/ 14,  MVT::v4f64,// ->89951
/*89937*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*89939*/       OPC_EmitConvertToTarget, 2,
/*89941*/       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
/*89952*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 127|128,2/*383*/,  TARGET_VAL(X86ISD::ANDNP),// ->90340
/*89957*/   OPC_Scope, 90|128,1/*218*/, /*->90178*/ // 4 children in Scope
/*89960*/     OPC_MoveChild, 0,
/*89962*/     OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*89965*/     OPC_RecordChild0, // #0 = $src1
/*89966*/     OPC_Scope, 40, /*->90008*/ // 4 children in Scope
/*89968*/       OPC_CheckChild0Type, MVT::v8f32,
/*89970*/       OPC_MoveParent,
/*89971*/       OPC_MoveChild, 1,
/*89973*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*89976*/       OPC_RecordMemRef,
/*89977*/       OPC_RecordNode, // #1 = 'ld' chained node
/*89978*/       OPC_CheckFoldableChainNode,
/*89979*/       OPC_RecordChild1, // #2 = $src2
/*89980*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*89982*/       OPC_CheckPredicate, 3, // Predicate_load
/*89984*/       OPC_CheckPredicate, 23, // Predicate_memop
/*89986*/       OPC_MoveParent,
/*89987*/       OPC_CheckType, MVT::v4i64,
/*89989*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*89991*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*89994*/       OPC_EmitMergeInputChains1_1,
/*89995*/       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)
/*90008*/     /*Scope*/ 40, /*->90049*/
/*90009*/       OPC_CheckChild0Type, MVT::v4f64,
/*90011*/       OPC_MoveParent,
/*90012*/       OPC_MoveChild, 1,
/*90014*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*90017*/       OPC_RecordMemRef,
/*90018*/       OPC_RecordNode, // #1 = 'ld' chained node
/*90019*/       OPC_CheckFoldableChainNode,
/*90020*/       OPC_RecordChild1, // #2 = $src2
/*90021*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*90023*/       OPC_CheckPredicate, 3, // Predicate_load
/*90025*/       OPC_CheckPredicate, 23, // Predicate_memop
/*90027*/       OPC_MoveParent,
/*90028*/       OPC_CheckType, MVT::v4i64,
/*90030*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*90032*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*90035*/       OPC_EmitMergeInputChains1_1,
/*90036*/       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)
/*90049*/     /*Scope*/ 63, /*->90113*/
/*90050*/       OPC_CheckChild0Type, MVT::v4f32,
/*90052*/       OPC_MoveParent,
/*90053*/       OPC_MoveChild, 1,
/*90055*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*90058*/       OPC_RecordMemRef,
/*90059*/       OPC_RecordNode, // #1 = 'ld' chained node
/*90060*/       OPC_CheckFoldableChainNode,
/*90061*/       OPC_RecordChild1, // #2 = $src2
/*90062*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*90064*/       OPC_CheckPredicate, 3, // Predicate_load
/*90066*/       OPC_CheckPredicate, 23, // Predicate_memop
/*90068*/       OPC_MoveParent,
/*90069*/       OPC_CheckType, MVT::v2i64,
/*90071*/       OPC_Scope, 19, /*->90092*/ // 2 children in Scope
/*90073*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*90075*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*90078*/         OPC_EmitMergeInputChains1_1,
/*90079*/         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)
/*90092*/       /*Scope*/ 19, /*->90112*/
/*90093*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*90095*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*90098*/         OPC_EmitMergeInputChains1_1,
/*90099*/         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)
/*90112*/       0, /*End of Scope*/
/*90113*/     /*Scope*/ 63, /*->90177*/
/*90114*/       OPC_CheckChild0Type, MVT::v2f64,
/*90116*/       OPC_MoveParent,
/*90117*/       OPC_MoveChild, 1,
/*90119*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*90122*/       OPC_RecordMemRef,
/*90123*/       OPC_RecordNode, // #1 = 'ld' chained node
/*90124*/       OPC_CheckFoldableChainNode,
/*90125*/       OPC_RecordChild1, // #2 = $src2
/*90126*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*90128*/       OPC_CheckPredicate, 3, // Predicate_load
/*90130*/       OPC_CheckPredicate, 23, // Predicate_memop
/*90132*/       OPC_MoveParent,
/*90133*/       OPC_CheckType, MVT::v2i64,
/*90135*/       OPC_Scope, 19, /*->90156*/ // 2 children in Scope
/*90137*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*90139*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*90142*/         OPC_EmitMergeInputChains1_1,
/*90143*/         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)
/*90156*/       /*Scope*/ 19, /*->90176*/
/*90157*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*90159*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*90162*/         OPC_EmitMergeInputChains1_1,
/*90163*/         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)
/*90176*/       0, /*End of Scope*/
/*90177*/     0, /*End of Scope*/
/*90178*/   /*Scope*/ 38, /*->90217*/
/*90179*/     OPC_RecordChild0, // #0 = $src1
/*90180*/     OPC_MoveChild, 1,
/*90182*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*90185*/     OPC_RecordMemRef,
/*90186*/     OPC_RecordNode, // #1 = 'ld' chained node
/*90187*/     OPC_CheckFoldableChainNode,
/*90188*/     OPC_RecordChild1, // #2 = $src2
/*90189*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*90191*/     OPC_CheckPredicate, 3, // Predicate_load
/*90193*/     OPC_CheckPredicate, 23, // Predicate_memop
/*90195*/     OPC_MoveParent,
/*90196*/     OPC_CheckType, MVT::v2i64,
/*90198*/     OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*90200*/     OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*90203*/     OPC_EmitMergeInputChains1_1,
/*90204*/     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)
/*90217*/   /*Scope*/ 75, /*->90293*/
/*90218*/     OPC_MoveChild, 0,
/*90220*/     OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*90223*/     OPC_RecordChild0, // #0 = $src1
/*90224*/     OPC_Scope, 25, /*->90251*/ // 2 children in Scope
/*90226*/       OPC_CheckChild0Type, MVT::v4f64,
/*90228*/       OPC_MoveParent,
/*90229*/       OPC_MoveChild, 1,
/*90231*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*90234*/       OPC_RecordChild0, // #1 = $src2
/*90235*/       OPC_CheckChild0Type, MVT::v4f64,
/*90237*/       OPC_MoveParent,
/*90238*/       OPC_CheckType, MVT::v4i64,
/*90240*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*90242*/       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)
/*90251*/     /*Scope*/ 40, /*->90292*/
/*90252*/       OPC_CheckChild0Type, MVT::v2f64,
/*90254*/       OPC_MoveParent,
/*90255*/       OPC_MoveChild, 1,
/*90257*/       OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*90260*/       OPC_RecordChild0, // #1 = $src2
/*90261*/       OPC_CheckChild0Type, MVT::v2f64,
/*90263*/       OPC_MoveParent,
/*90264*/       OPC_CheckType, MVT::v2i64,
/*90266*/       OPC_Scope, 11, /*->90279*/ // 2 children in Scope
/*90268*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*90270*/         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)
/*90279*/       /*Scope*/ 11, /*->90291*/
/*90280*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*90282*/         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)
/*90291*/       0, /*End of Scope*/
/*90292*/     0, /*End of Scope*/
/*90293*/   /*Scope*/ 45, /*->90339*/
/*90294*/     OPC_RecordChild0, // #0 = $src1
/*90295*/     OPC_RecordChild1, // #1 = $src2
/*90296*/     OPC_SwitchType /*2 cases */, 11,  MVT::v4i64,// ->90310
/*90299*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*90301*/       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,// ->90338
/*90312*/       OPC_Scope, 11, /*->90325*/ // 2 children in Scope
/*90314*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*90316*/         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)
/*90325*/       /*Scope*/ 11, /*->90337*/
/*90326*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*90328*/         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)
/*90337*/       0, /*End of Scope*/
              0, // EndSwitchType
/*90339*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 102,  TARGET_VAL(X86ISD::PUNPCKLBW),// ->90445
/*90343*/   OPC_RecordChild0, // #0 = $src1
/*90344*/   OPC_Scope, 68, /*->90414*/ // 2 children in Scope
/*90346*/     OPC_MoveChild, 1,
/*90348*/     OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*90351*/     OPC_MoveChild, 0,
/*90353*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*90356*/     OPC_RecordMemRef,
/*90357*/     OPC_RecordNode, // #1 = 'ld' chained node
/*90358*/     OPC_CheckFoldableChainNode,
/*90359*/     OPC_RecordChild1, // #2 = $src2
/*90360*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*90362*/     OPC_CheckPredicate, 3, // Predicate_load
/*90364*/     OPC_CheckPredicate, 23, // Predicate_memop
/*90366*/     OPC_CheckType, MVT::v2i64,
/*90368*/     OPC_MoveParent,
/*90369*/     OPC_MoveParent,
/*90370*/     OPC_CheckType, MVT::v16i8,
/*90372*/     OPC_Scope, 19, /*->90393*/ // 2 children in Scope
/*90374*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*90376*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*90379*/       OPC_EmitMergeInputChains1_1,
/*90380*/       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)
/*90393*/     /*Scope*/ 19, /*->90413*/
/*90394*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*90396*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*90399*/       OPC_EmitMergeInputChains1_1,
/*90400*/       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)
/*90413*/     0, /*End of Scope*/
/*90414*/   /*Scope*/ 29, /*->90444*/
/*90415*/     OPC_RecordChild1, // #1 = $src2
/*90416*/     OPC_CheckType, MVT::v16i8,
/*90418*/     OPC_Scope, 11, /*->90431*/ // 2 children in Scope
/*90420*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*90422*/       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)
/*90431*/     /*Scope*/ 11, /*->90443*/
/*90432*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*90434*/       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)
/*90443*/     0, /*End of Scope*/
/*90444*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 102,  TARGET_VAL(X86ISD::PUNPCKLWD),// ->90550
/*90448*/   OPC_RecordChild0, // #0 = $src1
/*90449*/   OPC_Scope, 68, /*->90519*/ // 2 children in Scope
/*90451*/     OPC_MoveChild, 1,
/*90453*/     OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*90456*/     OPC_MoveChild, 0,
/*90458*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*90461*/     OPC_RecordMemRef,
/*90462*/     OPC_RecordNode, // #1 = 'ld' chained node
/*90463*/     OPC_CheckFoldableChainNode,
/*90464*/     OPC_RecordChild1, // #2 = $src2
/*90465*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*90467*/     OPC_CheckPredicate, 3, // Predicate_load
/*90469*/     OPC_CheckPredicate, 23, // Predicate_memop
/*90471*/     OPC_CheckType, MVT::v2i64,
/*90473*/     OPC_MoveParent,
/*90474*/     OPC_MoveParent,
/*90475*/     OPC_CheckType, MVT::v8i16,
/*90477*/     OPC_Scope, 19, /*->90498*/ // 2 children in Scope
/*90479*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*90481*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*90484*/       OPC_EmitMergeInputChains1_1,
/*90485*/       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)
/*90498*/     /*Scope*/ 19, /*->90518*/
/*90499*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*90501*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*90504*/       OPC_EmitMergeInputChains1_1,
/*90505*/       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)
/*90518*/     0, /*End of Scope*/
/*90519*/   /*Scope*/ 29, /*->90549*/
/*90520*/     OPC_RecordChild1, // #1 = $src2
/*90521*/     OPC_CheckType, MVT::v8i16,
/*90523*/     OPC_Scope, 11, /*->90536*/ // 2 children in Scope
/*90525*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*90527*/       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)
/*90536*/     /*Scope*/ 11, /*->90548*/
/*90537*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*90539*/       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)
/*90548*/     0, /*End of Scope*/
/*90549*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 102,  TARGET_VAL(X86ISD::PUNPCKLDQ),// ->90655
/*90553*/   OPC_RecordChild0, // #0 = $src1
/*90554*/   OPC_Scope, 68, /*->90624*/ // 2 children in Scope
/*90556*/     OPC_MoveChild, 1,
/*90558*/     OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*90561*/     OPC_MoveChild, 0,
/*90563*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*90566*/     OPC_RecordMemRef,
/*90567*/     OPC_RecordNode, // #1 = 'ld' chained node
/*90568*/     OPC_CheckFoldableChainNode,
/*90569*/     OPC_RecordChild1, // #2 = $src2
/*90570*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*90572*/     OPC_CheckPredicate, 3, // Predicate_load
/*90574*/     OPC_CheckPredicate, 23, // Predicate_memop
/*90576*/     OPC_CheckType, MVT::v2i64,
/*90578*/     OPC_MoveParent,
/*90579*/     OPC_MoveParent,
/*90580*/     OPC_CheckType, MVT::v4i32,
/*90582*/     OPC_Scope, 19, /*->90603*/ // 2 children in Scope
/*90584*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*90586*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*90589*/       OPC_EmitMergeInputChains1_1,
/*90590*/       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)
/*90603*/     /*Scope*/ 19, /*->90623*/
/*90604*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*90606*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*90609*/       OPC_EmitMergeInputChains1_1,
/*90610*/       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)
/*90623*/     0, /*End of Scope*/
/*90624*/   /*Scope*/ 29, /*->90654*/
/*90625*/     OPC_RecordChild1, // #1 = $src2
/*90626*/     OPC_CheckType, MVT::v4i32,
/*90628*/     OPC_Scope, 11, /*->90641*/ // 2 children in Scope
/*90630*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*90632*/       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)
/*90641*/     /*Scope*/ 11, /*->90653*/
/*90642*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*90644*/       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)
/*90653*/     0, /*End of Scope*/
/*90654*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 102,  TARGET_VAL(X86ISD::PUNPCKHBW),// ->90760
/*90658*/   OPC_RecordChild0, // #0 = $src1
/*90659*/   OPC_Scope, 68, /*->90729*/ // 2 children in Scope
/*90661*/     OPC_MoveChild, 1,
/*90663*/     OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*90666*/     OPC_MoveChild, 0,
/*90668*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*90671*/     OPC_RecordMemRef,
/*90672*/     OPC_RecordNode, // #1 = 'ld' chained node
/*90673*/     OPC_CheckFoldableChainNode,
/*90674*/     OPC_RecordChild1, // #2 = $src2
/*90675*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*90677*/     OPC_CheckPredicate, 3, // Predicate_load
/*90679*/     OPC_CheckPredicate, 23, // Predicate_memop
/*90681*/     OPC_CheckType, MVT::v2i64,
/*90683*/     OPC_MoveParent,
/*90684*/     OPC_MoveParent,
/*90685*/     OPC_CheckType, MVT::v16i8,
/*90687*/     OPC_Scope, 19, /*->90708*/ // 2 children in Scope
/*90689*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*90691*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*90694*/       OPC_EmitMergeInputChains1_1,
/*90695*/       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)
/*90708*/     /*Scope*/ 19, /*->90728*/
/*90709*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*90711*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*90714*/       OPC_EmitMergeInputChains1_1,
/*90715*/       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)
/*90728*/     0, /*End of Scope*/
/*90729*/   /*Scope*/ 29, /*->90759*/
/*90730*/     OPC_RecordChild1, // #1 = $src2
/*90731*/     OPC_CheckType, MVT::v16i8,
/*90733*/     OPC_Scope, 11, /*->90746*/ // 2 children in Scope
/*90735*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*90737*/       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)
/*90746*/     /*Scope*/ 11, /*->90758*/
/*90747*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*90749*/       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)
/*90758*/     0, /*End of Scope*/
/*90759*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 102,  TARGET_VAL(X86ISD::PUNPCKHWD),// ->90865
/*90763*/   OPC_RecordChild0, // #0 = $src1
/*90764*/   OPC_Scope, 68, /*->90834*/ // 2 children in Scope
/*90766*/     OPC_MoveChild, 1,
/*90768*/     OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*90771*/     OPC_MoveChild, 0,
/*90773*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*90776*/     OPC_RecordMemRef,
/*90777*/     OPC_RecordNode, // #1 = 'ld' chained node
/*90778*/     OPC_CheckFoldableChainNode,
/*90779*/     OPC_RecordChild1, // #2 = $src2
/*90780*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*90782*/     OPC_CheckPredicate, 3, // Predicate_load
/*90784*/     OPC_CheckPredicate, 23, // Predicate_memop
/*90786*/     OPC_CheckType, MVT::v2i64,
/*90788*/     OPC_MoveParent,
/*90789*/     OPC_MoveParent,
/*90790*/     OPC_CheckType, MVT::v8i16,
/*90792*/     OPC_Scope, 19, /*->90813*/ // 2 children in Scope
/*90794*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*90796*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*90799*/       OPC_EmitMergeInputChains1_1,
/*90800*/       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)
/*90813*/     /*Scope*/ 19, /*->90833*/
/*90814*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*90816*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*90819*/       OPC_EmitMergeInputChains1_1,
/*90820*/       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)
/*90833*/     0, /*End of Scope*/
/*90834*/   /*Scope*/ 29, /*->90864*/
/*90835*/     OPC_RecordChild1, // #1 = $src2
/*90836*/     OPC_CheckType, MVT::v8i16,
/*90838*/     OPC_Scope, 11, /*->90851*/ // 2 children in Scope
/*90840*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*90842*/       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)
/*90851*/     /*Scope*/ 11, /*->90863*/
/*90852*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*90854*/       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)
/*90863*/     0, /*End of Scope*/
/*90864*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 102,  TARGET_VAL(X86ISD::PUNPCKHDQ),// ->90970
/*90868*/   OPC_RecordChild0, // #0 = $src1
/*90869*/   OPC_Scope, 68, /*->90939*/ // 2 children in Scope
/*90871*/     OPC_MoveChild, 1,
/*90873*/     OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*90876*/     OPC_MoveChild, 0,
/*90878*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*90881*/     OPC_RecordMemRef,
/*90882*/     OPC_RecordNode, // #1 = 'ld' chained node
/*90883*/     OPC_CheckFoldableChainNode,
/*90884*/     OPC_RecordChild1, // #2 = $src2
/*90885*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*90887*/     OPC_CheckPredicate, 3, // Predicate_load
/*90889*/     OPC_CheckPredicate, 23, // Predicate_memop
/*90891*/     OPC_CheckType, MVT::v2i64,
/*90893*/     OPC_MoveParent,
/*90894*/     OPC_MoveParent,
/*90895*/     OPC_CheckType, MVT::v4i32,
/*90897*/     OPC_Scope, 19, /*->90918*/ // 2 children in Scope
/*90899*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*90901*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*90904*/       OPC_EmitMergeInputChains1_1,
/*90905*/       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)
/*90918*/     /*Scope*/ 19, /*->90938*/
/*90919*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*90921*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*90924*/       OPC_EmitMergeInputChains1_1,
/*90925*/       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)
/*90938*/     0, /*End of Scope*/
/*90939*/   /*Scope*/ 29, /*->90969*/
/*90940*/     OPC_RecordChild1, // #1 = $src2
/*90941*/     OPC_CheckType, MVT::v4i32,
/*90943*/     OPC_Scope, 11, /*->90956*/ // 2 children in Scope
/*90945*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*90947*/       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)
/*90956*/     /*Scope*/ 11, /*->90968*/
/*90957*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*90959*/       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)
/*90968*/     0, /*End of Scope*/
/*90969*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 116,  TARGET_VAL(X86ISD::PINSRW),// ->91089
/*90973*/   OPC_RecordChild0, // #0 = $src1
/*90974*/   OPC_Scope, 71, /*->91047*/ // 2 children in Scope
/*90976*/     OPC_MoveChild, 1,
/*90978*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*90981*/     OPC_RecordMemRef,
/*90982*/     OPC_RecordNode, // #1 = 'ld' chained node
/*90983*/     OPC_CheckFoldableChainNode,
/*90984*/     OPC_RecordChild1, // #2 = $src2
/*90985*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*90987*/     OPC_CheckPredicate, 37, // Predicate_extload
/*90989*/     OPC_CheckPredicate, 40, // Predicate_extloadi16
/*90991*/     OPC_MoveParent,
/*90992*/     OPC_RecordChild2, // #3 = $src3
/*90993*/     OPC_MoveChild, 2,
/*90995*/     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*90998*/     OPC_MoveParent,
/*90999*/     OPC_Scope, 22, /*->91023*/ // 2 children in Scope
/*91001*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*91003*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*91006*/       OPC_EmitMergeInputChains1_1,
/*91007*/       OPC_EmitConvertToTarget, 3,
/*91009*/       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)
/*91023*/     /*Scope*/ 22, /*->91046*/
/*91024*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*91026*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*91029*/       OPC_EmitMergeInputChains1_1,
/*91030*/       OPC_EmitConvertToTarget, 3,
/*91032*/       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)
/*91046*/     0, /*End of Scope*/
/*91047*/   /*Scope*/ 40, /*->91088*/
/*91048*/     OPC_RecordChild1, // #1 = $src2
/*91049*/     OPC_RecordChild2, // #2 = $src3
/*91050*/     OPC_MoveChild, 2,
/*91052*/     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*91055*/     OPC_MoveParent,
/*91056*/     OPC_Scope, 14, /*->91072*/ // 2 children in Scope
/*91058*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*91060*/       OPC_EmitConvertToTarget, 2,
/*91062*/       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)
/*91072*/     /*Scope*/ 14, /*->91087*/
/*91073*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*91075*/       OPC_EmitConvertToTarget, 2,
/*91077*/       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)
/*91087*/     0, /*End of Scope*/
/*91088*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 3|128,2/*259*/,  TARGET_VAL(X86ISD::MOVSHDUP),// ->91352
/*91093*/   OPC_Scope, 92, /*->91187*/ // 4 children in Scope
/*91095*/     OPC_MoveChild, 0,
/*91097*/     OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*91100*/     OPC_MoveChild, 0,
/*91102*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*91105*/     OPC_RecordMemRef,
/*91106*/     OPC_RecordNode, // #0 = 'ld' chained node
/*91107*/     OPC_CheckFoldableChainNode,
/*91108*/     OPC_RecordChild1, // #1 = $src
/*91109*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*91111*/     OPC_CheckPredicate, 3, // Predicate_load
/*91113*/     OPC_CheckPredicate, 23, // Predicate_memop
/*91115*/     OPC_SwitchType /*2 cases */, 44,  MVT::v2i64,// ->91162
/*91118*/       OPC_MoveParent,
/*91119*/       OPC_MoveParent,
/*91120*/       OPC_CheckType, MVT::v4i32,
/*91122*/       OPC_Scope, 18, /*->91142*/ // 2 children in Scope
/*91124*/         OPC_CheckPatternPredicate, 16, // (Subtarget->hasSSE3())
/*91126*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*91129*/         OPC_EmitMergeInputChains1_0,
/*91130*/         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)
/*91142*/       /*Scope*/ 18, /*->91161*/
/*91143*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*91145*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*91148*/         OPC_EmitMergeInputChains1_0,
/*91149*/         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)
/*91161*/       0, /*End of Scope*/
              /*SwitchType*/ 22,  MVT::v4i64,// ->91186
/*91164*/       OPC_MoveParent,
/*91165*/       OPC_MoveParent,
/*91166*/       OPC_CheckType, MVT::v8i32,
/*91168*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*91170*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*91173*/       OPC_EmitMergeInputChains1_0,
/*91174*/       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
/*91187*/   /*Scope*/ 41, /*->91229*/
/*91188*/     OPC_RecordChild0, // #0 = $src
/*91189*/     OPC_SwitchType /*2 cases */, 24,  MVT::v4i32,// ->91216
/*91192*/       OPC_Scope, 10, /*->91204*/ // 2 children in Scope
/*91194*/         OPC_CheckPatternPredicate, 16, // (Subtarget->hasSSE3())
/*91196*/         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)
/*91204*/       /*Scope*/ 10, /*->91215*/
/*91205*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*91207*/         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)
/*91215*/       0, /*End of Scope*/
              /*SwitchType*/ 10,  MVT::v8i32,// ->91228
/*91218*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*91220*/       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
/*91229*/   /*Scope*/ 79, /*->91309*/
/*91230*/     OPC_MoveChild, 0,
/*91232*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*91235*/     OPC_RecordMemRef,
/*91236*/     OPC_RecordNode, // #0 = 'ld' chained node
/*91237*/     OPC_RecordChild1, // #1 = $src
/*91238*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*91240*/     OPC_CheckPredicate, 3, // Predicate_load
/*91242*/     OPC_CheckPredicate, 23, // Predicate_memop
/*91244*/     OPC_MoveParent,
/*91245*/     OPC_SwitchType /*2 cases */, 40,  MVT::v4f32,// ->91288
/*91248*/       OPC_Scope, 18, /*->91268*/ // 2 children in Scope
/*91250*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*91252*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*91255*/         OPC_EmitMergeInputChains1_0,
/*91256*/         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)
/*91268*/       /*Scope*/ 18, /*->91287*/
/*91269*/         OPC_CheckPatternPredicate, 16, // (Subtarget->hasSSE3())
/*91271*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*91274*/         OPC_EmitMergeInputChains1_0,
/*91275*/         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)
/*91287*/       0, /*End of Scope*/
              /*SwitchType*/ 18,  MVT::v8f32,// ->91308
/*91290*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*91292*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*91295*/       OPC_EmitMergeInputChains1_0,
/*91296*/       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
/*91309*/   /*Scope*/ 41, /*->91351*/
/*91310*/     OPC_RecordChild0, // #0 = $src
/*91311*/     OPC_SwitchType /*2 cases */, 24,  MVT::v4f32,// ->91338
/*91314*/       OPC_Scope, 10, /*->91326*/ // 2 children in Scope
/*91316*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*91318*/         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)
/*91326*/       /*Scope*/ 10, /*->91337*/
/*91327*/         OPC_CheckPatternPredicate, 16, // (Subtarget->hasSSE3())
/*91329*/         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)
/*91337*/       0, /*End of Scope*/
              /*SwitchType*/ 10,  MVT::v8f32,// ->91350
/*91340*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*91342*/       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
/*91351*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 3|128,2/*259*/,  TARGET_VAL(X86ISD::MOVSLDUP),// ->91615
/*91356*/   OPC_Scope, 92, /*->91450*/ // 4 children in Scope
/*91358*/     OPC_MoveChild, 0,
/*91360*/     OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*91363*/     OPC_MoveChild, 0,
/*91365*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*91368*/     OPC_RecordMemRef,
/*91369*/     OPC_RecordNode, // #0 = 'ld' chained node
/*91370*/     OPC_CheckFoldableChainNode,
/*91371*/     OPC_RecordChild1, // #1 = $src
/*91372*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*91374*/     OPC_CheckPredicate, 3, // Predicate_load
/*91376*/     OPC_CheckPredicate, 23, // Predicate_memop
/*91378*/     OPC_SwitchType /*2 cases */, 44,  MVT::v2i64,// ->91425
/*91381*/       OPC_MoveParent,
/*91382*/       OPC_MoveParent,
/*91383*/       OPC_CheckType, MVT::v4i32,
/*91385*/       OPC_Scope, 18, /*->91405*/ // 2 children in Scope
/*91387*/         OPC_CheckPatternPredicate, 16, // (Subtarget->hasSSE3())
/*91389*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*91392*/         OPC_EmitMergeInputChains1_0,
/*91393*/         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)
/*91405*/       /*Scope*/ 18, /*->91424*/
/*91406*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*91408*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*91411*/         OPC_EmitMergeInputChains1_0,
/*91412*/         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)
/*91424*/       0, /*End of Scope*/
              /*SwitchType*/ 22,  MVT::v4i64,// ->91449
/*91427*/       OPC_MoveParent,
/*91428*/       OPC_MoveParent,
/*91429*/       OPC_CheckType, MVT::v8i32,
/*91431*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*91433*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*91436*/       OPC_EmitMergeInputChains1_0,
/*91437*/       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
/*91450*/   /*Scope*/ 41, /*->91492*/
/*91451*/     OPC_RecordChild0, // #0 = $src
/*91452*/     OPC_SwitchType /*2 cases */, 24,  MVT::v4i32,// ->91479
/*91455*/       OPC_Scope, 10, /*->91467*/ // 2 children in Scope
/*91457*/         OPC_CheckPatternPredicate, 16, // (Subtarget->hasSSE3())
/*91459*/         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)
/*91467*/       /*Scope*/ 10, /*->91478*/
/*91468*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*91470*/         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)
/*91478*/       0, /*End of Scope*/
              /*SwitchType*/ 10,  MVT::v8i32,// ->91491
/*91481*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*91483*/       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
/*91492*/   /*Scope*/ 79, /*->91572*/
/*91493*/     OPC_MoveChild, 0,
/*91495*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*91498*/     OPC_RecordMemRef,
/*91499*/     OPC_RecordNode, // #0 = 'ld' chained node
/*91500*/     OPC_RecordChild1, // #1 = $src
/*91501*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*91503*/     OPC_CheckPredicate, 3, // Predicate_load
/*91505*/     OPC_CheckPredicate, 23, // Predicate_memop
/*91507*/     OPC_MoveParent,
/*91508*/     OPC_SwitchType /*2 cases */, 40,  MVT::v4f32,// ->91551
/*91511*/       OPC_Scope, 18, /*->91531*/ // 2 children in Scope
/*91513*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*91515*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*91518*/         OPC_EmitMergeInputChains1_0,
/*91519*/         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)
/*91531*/       /*Scope*/ 18, /*->91550*/
/*91532*/         OPC_CheckPatternPredicate, 16, // (Subtarget->hasSSE3())
/*91534*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*91537*/         OPC_EmitMergeInputChains1_0,
/*91538*/         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)
/*91550*/       0, /*End of Scope*/
              /*SwitchType*/ 18,  MVT::v8f32,// ->91571
/*91553*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*91555*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*91558*/       OPC_EmitMergeInputChains1_0,
/*91559*/       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
/*91572*/   /*Scope*/ 41, /*->91614*/
/*91573*/     OPC_RecordChild0, // #0 = $src
/*91574*/     OPC_SwitchType /*2 cases */, 24,  MVT::v4f32,// ->91601
/*91577*/       OPC_Scope, 10, /*->91589*/ // 2 children in Scope
/*91579*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*91581*/         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)
/*91589*/       /*Scope*/ 10, /*->91600*/
/*91590*/         OPC_CheckPatternPredicate, 16, // (Subtarget->hasSSE3())
/*91592*/         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)
/*91600*/       0, /*End of Scope*/
              /*SwitchType*/ 10,  MVT::v8f32,// ->91613
/*91603*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*91605*/       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
/*91614*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 101|128,3/*485*/,  TARGET_VAL(X86ISD::MOVDDUP),// ->92104
/*91619*/   OPC_Scope, 77, /*->91698*/ // 4 children in Scope
/*91621*/     OPC_MoveChild, 0,
/*91623*/     OPC_SwitchOpcode /*2 cases */, 37,  TARGET_VAL(ISD::SCALAR_TO_VECTOR),// ->91664
/*91627*/       OPC_MoveChild, 0,
/*91629*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*91632*/       OPC_RecordMemRef,
/*91633*/       OPC_RecordNode, // #0 = 'ld' chained node
/*91634*/       OPC_CheckFoldableChainNode,
/*91635*/       OPC_RecordChild1, // #1 = $src
/*91636*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*91638*/       OPC_CheckPredicate, 3, // Predicate_load
/*91640*/       OPC_CheckType, MVT::i64,
/*91642*/       OPC_MoveParent,
/*91643*/       OPC_MoveParent,
/*91644*/       OPC_CheckType, MVT::v4i64,
/*91646*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*91648*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*91651*/       OPC_EmitMergeInputChains1_0,
/*91652*/       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),// ->91697
/*91667*/       OPC_RecordMemRef,
/*91668*/       OPC_RecordNode, // #0 = 'ld' chained node
/*91669*/       OPC_RecordChild1, // #1 = $src
/*91670*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*91672*/       OPC_CheckPredicate, 3, // Predicate_load
/*91674*/       OPC_CheckPredicate, 23, // Predicate_memop
/*91676*/       OPC_MoveParent,
/*91677*/       OPC_CheckType, MVT::v4i64,
/*91679*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*91681*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*91684*/       OPC_EmitMergeInputChains1_0,
/*91685*/       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
/*91698*/   /*Scope*/ 13, /*->91712*/
/*91699*/     OPC_RecordChild0, // #0 = $src
/*91700*/     OPC_CheckType, MVT::v4i64,
/*91702*/     OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*91704*/     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)
/*91712*/   /*Scope*/ 89|128,2/*345*/, /*->92059*/
/*91714*/     OPC_MoveChild, 0,
/*91716*/     OPC_SwitchOpcode /*3 cases */, 48|128,1/*176*/,  TARGET_VAL(ISD::BITCAST),// ->91897
/*91721*/       OPC_MoveChild, 0,
/*91723*/       OPC_SwitchOpcode /*2 cases */, 62,  TARGET_VAL(ISD::SCALAR_TO_VECTOR),// ->91789
/*91727*/         OPC_MoveChild, 0,
/*91729*/         OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*91732*/         OPC_RecordMemRef,
/*91733*/         OPC_RecordNode, // #0 = 'ld' chained node
/*91734*/         OPC_CheckFoldableChainNode,
/*91735*/         OPC_RecordChild1, // #1 = $src
/*91736*/         OPC_CheckPredicate, 2, // Predicate_unindexedload
/*91738*/         OPC_CheckPredicate, 3, // Predicate_load
/*91740*/         OPC_CheckType, MVT::i64,
/*91742*/         OPC_MoveParent,
/*91743*/         OPC_CheckType, MVT::v2i64,
/*91745*/         OPC_MoveParent,
/*91746*/         OPC_MoveParent,
/*91747*/         OPC_CheckType, MVT::v2f64,
/*91749*/         OPC_Scope, 18, /*->91769*/ // 2 children in Scope
/*91751*/           OPC_CheckPatternPredicate, 16, // (Subtarget->hasSSE3())
/*91753*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*91756*/           OPC_EmitMergeInputChains1_0,
/*91757*/           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)
/*91769*/         /*Scope*/ 18, /*->91788*/
/*91770*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*91772*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*91775*/           OPC_EmitMergeInputChains1_0,
/*91776*/           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)
/*91788*/         0, /*End of Scope*/
                /*SwitchOpcode*/ 104,  TARGET_VAL(ISD::LOAD),// ->91896
/*91792*/         OPC_RecordMemRef,
/*91793*/         OPC_RecordNode, // #0 = 'ld' chained node
/*91794*/         OPC_CheckFoldableChainNode,
/*91795*/         OPC_RecordChild1, // #1 = $src
/*91796*/         OPC_CheckPredicate, 2, // Predicate_unindexedload
/*91798*/         OPC_CheckPredicate, 3, // Predicate_load
/*91800*/         OPC_CheckPredicate, 23, // Predicate_memop
/*91802*/         OPC_SwitchType /*2 cases */, 44,  MVT::v4f32,// ->91849
/*91805*/           OPC_MoveParent,
/*91806*/           OPC_MoveParent,
/*91807*/           OPC_CheckType, MVT::v2f64,
/*91809*/           OPC_Scope, 18, /*->91829*/ // 2 children in Scope
/*91811*/             OPC_CheckPatternPredicate, 16, // (Subtarget->hasSSE3())
/*91813*/             OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*91816*/             OPC_EmitMergeInputChains1_0,
/*91817*/             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)
/*91829*/           /*Scope*/ 18, /*->91848*/
/*91830*/             OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*91832*/             OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*91835*/             OPC_EmitMergeInputChains1_0,
/*91836*/             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)
/*91848*/           0, /*End of Scope*/
                  /*SwitchType*/ 44,  MVT::v2i64,// ->91895
/*91851*/           OPC_MoveParent,
/*91852*/           OPC_MoveParent,
/*91853*/           OPC_CheckType, MVT::v2f64,
/*91855*/           OPC_Scope, 18, /*->91875*/ // 2 children in Scope
/*91857*/             OPC_CheckPatternPredicate, 16, // (Subtarget->hasSSE3())
/*91859*/             OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*91862*/             OPC_EmitMergeInputChains1_0,
/*91863*/             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)
/*91875*/           /*Scope*/ 18, /*->91894*/
/*91876*/             OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*91878*/             OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*91881*/             OPC_EmitMergeInputChains1_0,
/*91882*/             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)
/*91894*/           0, /*End of Scope*/
                  0, // EndSwitchType
                0, // EndSwitchOpcode
              /*SwitchOpcode*/ 81,  TARGET_VAL(ISD::SCALAR_TO_VECTOR),// ->91981
/*91900*/       OPC_MoveChild, 0,
/*91902*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*91905*/       OPC_RecordMemRef,
/*91906*/       OPC_RecordNode, // #0 = 'ld' chained node
/*91907*/       OPC_CheckFoldableChainNode,
/*91908*/       OPC_RecordChild1, // #1 = $src
/*91909*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*91911*/       OPC_CheckPredicate, 3, // Predicate_load
/*91913*/       OPC_CheckType, MVT::f64,
/*91915*/       OPC_MoveParent,
/*91916*/       OPC_MoveParent,
/*91917*/       OPC_SwitchType /*2 cases */, 40,  MVT::v2f64,// ->91960
/*91920*/         OPC_Scope, 18, /*->91940*/ // 2 children in Scope
/*91922*/           OPC_CheckPatternPredicate, 16, // (Subtarget->hasSSE3())
/*91924*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*91927*/           OPC_EmitMergeInputChains1_0,
/*91928*/           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)
/*91940*/         /*Scope*/ 18, /*->91959*/
/*91941*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*91943*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*91946*/           OPC_EmitMergeInputChains1_0,
/*91947*/           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)
/*91959*/         0, /*End of Scope*/
                /*SwitchType*/ 18,  MVT::v4f64,// ->91980
/*91962*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*91964*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*91967*/         OPC_EmitMergeInputChains1_0,
/*91968*/         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),// ->92058
/*91984*/       OPC_RecordMemRef,
/*91985*/       OPC_RecordNode, // #0 = 'ld' chained node
/*91986*/       OPC_RecordChild1, // #1 = $src
/*91987*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*91989*/       OPC_CheckPredicate, 3, // Predicate_load
/*91991*/       OPC_CheckPredicate, 23, // Predicate_memop
/*91993*/       OPC_MoveParent,
/*91994*/       OPC_SwitchType /*2 cases */, 40,  MVT::v2f64,// ->92037
/*91997*/         OPC_Scope, 18, /*->92017*/ // 2 children in Scope
/*91999*/           OPC_CheckPatternPredicate, 16, // (Subtarget->hasSSE3())
/*92001*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*92004*/           OPC_EmitMergeInputChains1_0,
/*92005*/           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)
/*92017*/         /*Scope*/ 18, /*->92036*/
/*92018*/           OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*92020*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*92023*/           OPC_EmitMergeInputChains1_0,
/*92024*/           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)
/*92036*/         0, /*End of Scope*/
                /*SwitchType*/ 18,  MVT::v4f64,// ->92057
/*92039*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*92041*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*92044*/         OPC_EmitMergeInputChains1_0,
/*92045*/         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
/*92059*/   /*Scope*/ 43, /*->92103*/
/*92060*/     OPC_RecordChild0, // #0 = $src
/*92061*/     OPC_SwitchType /*2 cases */, 26,  MVT::v2f64,// ->92090
/*92064*/       OPC_Scope, 11, /*->92077*/ // 2 children in Scope
/*92066*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*92068*/         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)
/*92077*/       /*Scope*/ 11, /*->92089*/
/*92078*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*92080*/         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)
/*92089*/       0, /*End of Scope*/
              /*SwitchType*/ 10,  MVT::v4f64,// ->92102
/*92092*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*92094*/       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
/*92103*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 98,  TARGET_VAL(X86ISD::PSHUFB),// ->92205
/*92107*/   OPC_RecordChild0, // #0 = $src
/*92108*/   OPC_Scope, 66, /*->92176*/ // 2 children in Scope
/*92110*/     OPC_MoveChild, 1,
/*92112*/     OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*92115*/     OPC_MoveChild, 0,
/*92117*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*92120*/     OPC_RecordMemRef,
/*92121*/     OPC_RecordNode, // #1 = 'ld' chained node
/*92122*/     OPC_CheckFoldableChainNode,
/*92123*/     OPC_RecordChild1, // #2 = $mask
/*92124*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*92126*/     OPC_CheckPredicate, 3, // Predicate_load
/*92128*/     OPC_CheckPredicate, 23, // Predicate_memop
/*92130*/     OPC_CheckType, MVT::v2i64,
/*92132*/     OPC_MoveParent,
/*92133*/     OPC_MoveParent,
/*92134*/     OPC_Scope, 19, /*->92155*/ // 2 children in Scope
/*92136*/       OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*92138*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$mask #3 #4 #5 #6 #7
/*92141*/       OPC_EmitMergeInputChains1_1,
/*92142*/       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)
/*92155*/     /*Scope*/ 19, /*->92175*/
/*92156*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*92158*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$mask #3 #4 #5 #6 #7
/*92161*/       OPC_EmitMergeInputChains1_1,
/*92162*/       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)
/*92175*/     0, /*End of Scope*/
/*92176*/   /*Scope*/ 27, /*->92204*/
/*92177*/     OPC_RecordChild1, // #1 = $mask
/*92178*/     OPC_Scope, 11, /*->92191*/ // 2 children in Scope
/*92180*/       OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*92182*/       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)
/*92191*/     /*Scope*/ 11, /*->92203*/
/*92192*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*92194*/       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)
/*92203*/     0, /*End of Scope*/
/*92204*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 116,  TARGET_VAL(X86ISD::PINSRB),// ->92324
/*92208*/   OPC_RecordChild0, // #0 = $src1
/*92209*/   OPC_Scope, 71, /*->92282*/ // 2 children in Scope
/*92211*/     OPC_MoveChild, 1,
/*92213*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*92216*/     OPC_RecordMemRef,
/*92217*/     OPC_RecordNode, // #1 = 'ld' chained node
/*92218*/     OPC_CheckFoldableChainNode,
/*92219*/     OPC_RecordChild1, // #2 = $src2
/*92220*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*92222*/     OPC_CheckPredicate, 37, // Predicate_extload
/*92224*/     OPC_CheckPredicate, 39, // Predicate_extloadi8
/*92226*/     OPC_MoveParent,
/*92227*/     OPC_RecordChild2, // #3 = $src3
/*92228*/     OPC_MoveChild, 2,
/*92230*/     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*92233*/     OPC_MoveParent,
/*92234*/     OPC_Scope, 22, /*->92258*/ // 2 children in Scope
/*92236*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*92238*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*92241*/       OPC_EmitMergeInputChains1_1,
/*92242*/       OPC_EmitConvertToTarget, 3,
/*92244*/       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)
/*92258*/     /*Scope*/ 22, /*->92281*/
/*92259*/       OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*92261*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*92264*/       OPC_EmitMergeInputChains1_1,
/*92265*/       OPC_EmitConvertToTarget, 3,
/*92267*/       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)
/*92281*/     0, /*End of Scope*/
/*92282*/   /*Scope*/ 40, /*->92323*/
/*92283*/     OPC_RecordChild1, // #1 = $src2
/*92284*/     OPC_RecordChild2, // #2 = $src3
/*92285*/     OPC_MoveChild, 2,
/*92287*/     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*92290*/     OPC_MoveParent,
/*92291*/     OPC_Scope, 14, /*->92307*/ // 2 children in Scope
/*92293*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*92295*/       OPC_EmitConvertToTarget, 2,
/*92297*/       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)
/*92307*/     /*Scope*/ 14, /*->92322*/
/*92308*/       OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*92310*/       OPC_EmitConvertToTarget, 2,
/*92312*/       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)
/*92322*/     0, /*End of Scope*/
/*92323*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 91|128,1/*219*/,  TARGET_VAL(ISD::INSERT_VECTOR_ELT),// ->92547
/*92328*/   OPC_RecordChild0, // #0 = $src1
/*92329*/   OPC_Scope, 7|128,1/*135*/, /*->92467*/ // 2 children in Scope
/*92332*/     OPC_MoveChild, 1,
/*92334*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*92337*/     OPC_RecordMemRef,
/*92338*/     OPC_RecordNode, // #1 = 'ld' chained node
/*92339*/     OPC_CheckFoldableChainNode,
/*92340*/     OPC_RecordChild1, // #2 = $src2
/*92341*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*92343*/     OPC_Scope, 60, /*->92405*/ // 2 children in Scope
/*92345*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*92347*/       OPC_MoveParent,
/*92348*/       OPC_RecordChild2, // #3 = $src3
/*92349*/       OPC_MoveChild, 2,
/*92351*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*92354*/       OPC_MoveParent,
/*92355*/       OPC_CheckType, MVT::v4i32,
/*92357*/       OPC_Scope, 22, /*->92381*/ // 2 children in Scope
/*92359*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*92361*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*92364*/         OPC_EmitMergeInputChains1_1,
/*92365*/         OPC_EmitConvertToTarget, 3,
/*92367*/         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)
/*92381*/       /*Scope*/ 22, /*->92404*/
/*92382*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*92384*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*92387*/         OPC_EmitMergeInputChains1_1,
/*92388*/         OPC_EmitConvertToTarget, 3,
/*92390*/         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)
/*92404*/       0, /*End of Scope*/
/*92405*/     /*Scope*/ 60, /*->92466*/
/*92406*/       OPC_CheckPredicate, 3, // Predicate_load
/*92408*/       OPC_MoveParent,
/*92409*/       OPC_RecordChild2, // #3 = $src3
/*92410*/       OPC_MoveChild, 2,
/*92412*/       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*92415*/       OPC_MoveParent,
/*92416*/       OPC_CheckType, MVT::v2i64,
/*92418*/       OPC_Scope, 22, /*->92442*/ // 2 children in Scope
/*92420*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*92422*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*92425*/         OPC_EmitMergeInputChains1_1,
/*92426*/         OPC_EmitConvertToTarget, 3,
/*92428*/         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)
/*92442*/       /*Scope*/ 22, /*->92465*/
/*92443*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*92445*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*92448*/         OPC_EmitMergeInputChains1_1,
/*92449*/         OPC_EmitConvertToTarget, 3,
/*92451*/         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)
/*92465*/       0, /*End of Scope*/
/*92466*/     0, /*End of Scope*/
/*92467*/   /*Scope*/ 78, /*->92546*/
/*92468*/     OPC_RecordChild1, // #1 = $src2
/*92469*/     OPC_RecordChild2, // #2 = $src3
/*92470*/     OPC_MoveChild, 2,
/*92472*/     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*92475*/     OPC_MoveParent,
/*92476*/     OPC_SwitchType /*2 cases */, 32,  MVT::v4i32,// ->92511
/*92479*/       OPC_Scope, 14, /*->92495*/ // 2 children in Scope
/*92481*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*92483*/         OPC_EmitConvertToTarget, 2,
/*92485*/         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)
/*92495*/       /*Scope*/ 14, /*->92510*/
/*92496*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*92498*/         OPC_EmitConvertToTarget, 2,
/*92500*/         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)
/*92510*/       0, /*End of Scope*/
              /*SwitchType*/ 32,  MVT::v2i64,// ->92545
/*92513*/       OPC_Scope, 14, /*->92529*/ // 2 children in Scope
/*92515*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*92517*/         OPC_EmitConvertToTarget, 2,
/*92519*/         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)
/*92529*/       /*Scope*/ 14, /*->92544*/
/*92530*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*92532*/         OPC_EmitConvertToTarget, 2,
/*92534*/         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)
/*92544*/       0, /*End of Scope*/
              0, // EndSwitchType
/*92546*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 80,  TARGET_VAL(X86ISD::MOVQ2DQ),// ->92630
/*92550*/   OPC_Scope, 67, /*->92619*/ // 2 children in Scope
/*92552*/     OPC_MoveChild, 0,
/*92554*/     OPC_SwitchOpcode /*2 cases */, 33,  TARGET_VAL(ISD::SCALAR_TO_VECTOR),// ->92591
/*92558*/       OPC_MoveChild, 0,
/*92560*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*92563*/       OPC_RecordMemRef,
/*92564*/       OPC_RecordNode, // #0 = 'ld' chained node
/*92565*/       OPC_CheckFoldableChainNode,
/*92566*/       OPC_RecordChild1, // #1 = $src
/*92567*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*92569*/       OPC_CheckPredicate, 7, // Predicate_loadi32
/*92571*/       OPC_CheckType, MVT::i32,
/*92573*/       OPC_MoveParent,
/*92574*/       OPC_MoveParent,
/*92575*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*92578*/       OPC_EmitMergeInputChains1_0,
/*92579*/       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),// ->92618
/*92594*/       OPC_RecordMemRef,
/*92595*/       OPC_RecordNode, // #0 = 'ld' chained node
/*92596*/       OPC_RecordChild1, // #1 = $src
/*92597*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*92599*/       OPC_CheckPredicate, 3, // Predicate_load
/*92601*/       OPC_MoveParent,
/*92602*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*92605*/       OPC_EmitMergeInputChains1_0,
/*92606*/       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
/*92619*/   /*Scope*/ 9, /*->92629*/
/*92620*/     OPC_RecordChild0, // #0 = $src
/*92621*/     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)
/*92629*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 114|128,1/*242*/,  TARGET_VAL(X86ISD::MOVLHPS),// ->92876
/*92634*/   OPC_RecordChild0, // #0 = $src1
/*92635*/   OPC_Scope, 39, /*->92676*/ // 4 children in Scope
/*92637*/     OPC_MoveChild, 1,
/*92639*/     OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*92642*/     OPC_MoveChild, 0,
/*92644*/     OPC_CheckOpcode, TARGET_VAL(X86ISD::VZEXT_LOAD),
/*92647*/     OPC_RecordMemRef,
/*92648*/     OPC_RecordNode, // #1 = 'X86vzload' chained node
/*92649*/     OPC_CheckFoldableChainNode,
/*92650*/     OPC_RecordChild1, // #2 = $src2
/*92651*/     OPC_CheckType, MVT::v2i64,
/*92653*/     OPC_MoveParent,
/*92654*/     OPC_MoveParent,
/*92655*/     OPC_CheckType, MVT::v4i32,
/*92657*/     OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*92659*/     OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*92662*/     OPC_EmitMergeInputChains1_1,
/*92663*/     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)
/*92676*/   /*Scope*/ 59, /*->92736*/
/*92677*/     OPC_RecordChild1, // #1 = $src2
/*92678*/     OPC_SwitchType /*2 cases */, 26,  MVT::v4i32,// ->92707
/*92681*/       OPC_Scope, 11, /*->92694*/ // 2 children in Scope
/*92683*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*92685*/         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)
/*92694*/       /*Scope*/ 11, /*->92706*/
/*92695*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*92697*/         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)
/*92706*/       0, /*End of Scope*/
              /*SwitchType*/ 26,  MVT::v2i64,// ->92735
/*92709*/       OPC_Scope, 11, /*->92722*/ // 2 children in Scope
/*92711*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*92713*/         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)
/*92722*/       /*Scope*/ 11, /*->92734*/
/*92723*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*92725*/         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)
/*92734*/       0, /*End of Scope*/
              0, // EndSwitchType
/*92736*/   /*Scope*/ 108, /*->92845*/
/*92737*/     OPC_MoveChild, 1,
/*92739*/     OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*92742*/     OPC_MoveChild, 0,
/*92744*/     OPC_SwitchOpcode /*2 cases */, 64,  TARGET_VAL(ISD::SCALAR_TO_VECTOR),// ->92812
/*92748*/       OPC_MoveChild, 0,
/*92750*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*92753*/       OPC_RecordMemRef,
/*92754*/       OPC_RecordNode, // #1 = 'ld' chained node
/*92755*/       OPC_CheckFoldableChainNode,
/*92756*/       OPC_RecordChild1, // #2 = $src2
/*92757*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*92759*/       OPC_CheckPredicate, 3, // Predicate_load
/*92761*/       OPC_CheckType, MVT::f64,
/*92763*/       OPC_MoveParent,
/*92764*/       OPC_CheckType, MVT::v2f64,
/*92766*/       OPC_MoveParent,
/*92767*/       OPC_MoveParent,
/*92768*/       OPC_CheckType, MVT::v4f32,
/*92770*/       OPC_Scope, 19, /*->92791*/ // 2 children in Scope
/*92772*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*92774*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*92777*/         OPC_EmitMergeInputChains1_1,
/*92778*/         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)
/*92791*/       /*Scope*/ 19, /*->92811*/
/*92792*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*92794*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*92797*/         OPC_EmitMergeInputChains1_1,
/*92798*/         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)
/*92811*/       0, /*End of Scope*/
              /*SwitchOpcode*/ 29,  TARGET_VAL(X86ISD::VZEXT_LOAD),// ->92844
/*92815*/       OPC_RecordMemRef,
/*92816*/       OPC_RecordNode, // #1 = 'X86vzload' chained node
/*92817*/       OPC_CheckFoldableChainNode,
/*92818*/       OPC_RecordChild1, // #2 = $src2
/*92819*/       OPC_CheckType, MVT::v2i64,
/*92821*/       OPC_MoveParent,
/*92822*/       OPC_MoveParent,
/*92823*/       OPC_CheckType, MVT::v4f32,
/*92825*/       OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*92827*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*92830*/       OPC_EmitMergeInputChains1_1,
/*92831*/       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
/*92845*/   /*Scope*/ 29, /*->92875*/
/*92846*/     OPC_RecordChild1, // #1 = $src2
/*92847*/     OPC_CheckType, MVT::v4f32,
/*92849*/     OPC_Scope, 11, /*->92862*/ // 2 children in Scope
/*92851*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*92853*/       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)
/*92862*/     /*Scope*/ 11, /*->92874*/
/*92863*/       OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*92865*/       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)
/*92874*/     0, /*End of Scope*/
/*92875*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 27|128,3/*411*/,  TARGET_VAL(ISD::INTRINSIC_W_CHAIN),// ->93291
/*92880*/   OPC_RecordNode,   // #0 = 'intrinsic_w_chain' chained node
/*92881*/   OPC_MoveChild, 1,
/*92883*/   OPC_Scope, 23, /*->92908*/ // 15 children in Scope
/*92885*/     OPC_CheckInteger, 7|128,1/*135*/, 
/*92888*/     OPC_MoveParent,
/*92889*/     OPC_RecordChild2, // #1 = $src
/*92890*/     OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*92892*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*92895*/     OPC_EmitMergeInputChains1_0,
/*92896*/     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)
/*92908*/   /*Scope*/ 45, /*->92954*/
/*92909*/     OPC_CheckInteger, 122|128,2/*378*/, 
/*92912*/     OPC_MoveParent,
/*92913*/     OPC_RecordChild2, // #1 = $src
/*92914*/     OPC_Scope, 18, /*->92934*/ // 2 children in Scope
/*92916*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*92918*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*92921*/       OPC_EmitMergeInputChains1_0,
/*92922*/       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)
/*92934*/     /*Scope*/ 18, /*->92953*/
/*92935*/       OPC_CheckPatternPredicate, 16, // (Subtarget->hasSSE3())
/*92937*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*92940*/       OPC_EmitMergeInputChains1_0,
/*92941*/       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)
/*92953*/     0, /*End of Scope*/
/*92954*/   /*Scope*/ 23, /*->92978*/
/*92955*/     OPC_CheckInteger, 6|128,1/*134*/, 
/*92958*/     OPC_MoveParent,
/*92959*/     OPC_RecordChild2, // #1 = $src
/*92960*/     OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*92962*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*92965*/     OPC_EmitMergeInputChains1_0,
/*92966*/     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)
/*92978*/   /*Scope*/ 45, /*->93024*/
/*92979*/     OPC_CheckInteger, 5|128,3/*389*/, 
/*92982*/     OPC_MoveParent,
/*92983*/     OPC_RecordChild2, // #1 = $src
/*92984*/     OPC_Scope, 18, /*->93004*/ // 2 children in Scope
/*92986*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*92988*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*92991*/       OPC_EmitMergeInputChains1_0,
/*92992*/       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)
/*93004*/     /*Scope*/ 18, /*->93023*/
/*93005*/       OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*93007*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*93010*/       OPC_EmitMergeInputChains1_0,
/*93011*/       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)
/*93023*/     0, /*End of Scope*/
/*93024*/   /*Scope*/ 21, /*->93046*/
/*93025*/     OPC_CheckInteger, 9|128,1/*137*/, 
/*93028*/     OPC_MoveParent,
/*93029*/     OPC_RecordChild2, // #1 = $src
/*93030*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*93033*/     OPC_EmitMergeInputChains1_0,
/*93034*/     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)
/*93046*/   /*Scope*/ 21, /*->93068*/
/*93047*/     OPC_CheckInteger, 8|128,1/*136*/, 
/*93050*/     OPC_MoveParent,
/*93051*/     OPC_RecordChild2, // #1 = $src
/*93052*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*93055*/     OPC_EmitMergeInputChains1_0,
/*93056*/     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)
/*93068*/   /*Scope*/ 23, /*->93092*/
/*93069*/     OPC_CheckInteger, 42|128,1/*170*/, 
/*93072*/     OPC_MoveParent,
/*93073*/     OPC_RecordChild2, // #1 = $src
/*93074*/     OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*93076*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*93079*/     OPC_EmitMergeInputChains1_0,
/*93080*/     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)
/*93092*/   /*Scope*/ 23, /*->93116*/
/*93093*/     OPC_CheckInteger, 43|128,1/*171*/, 
/*93096*/     OPC_MoveParent,
/*93097*/     OPC_RecordChild2, // #1 = $src
/*93098*/     OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*93100*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*93103*/     OPC_EmitMergeInputChains1_0,
/*93104*/     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)
/*93116*/   /*Scope*/ 23, /*->93140*/
/*93117*/     OPC_CheckInteger, 39|128,1/*167*/, 
/*93120*/     OPC_MoveParent,
/*93121*/     OPC_RecordChild2, // #1 = $src
/*93122*/     OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*93124*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*93127*/     OPC_EmitMergeInputChains1_0,
/*93128*/     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)
/*93140*/   /*Scope*/ 23, /*->93164*/
/*93141*/     OPC_CheckInteger, 40|128,1/*168*/, 
/*93144*/     OPC_MoveParent,
/*93145*/     OPC_RecordChild2, // #1 = $src
/*93146*/     OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*93148*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*93151*/     OPC_EmitMergeInputChains1_0,
/*93152*/     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)
/*93164*/   /*Scope*/ 21, /*->93186*/
/*93165*/     OPC_CheckInteger, 41|128,1/*169*/, 
/*93168*/     OPC_MoveParent,
/*93169*/     OPC_RecordChild2, // #1 = $src
/*93170*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*93173*/     OPC_EmitMergeInputChains1_0,
/*93174*/     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)
/*93186*/   /*Scope*/ 25, /*->93212*/
/*93187*/     OPC_CheckInteger, 12|128,1/*140*/, 
/*93190*/     OPC_MoveParent,
/*93191*/     OPC_RecordChild2, // #1 = $src2
/*93192*/     OPC_RecordChild3, // #2 = $src1
/*93193*/     OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*93195*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*93198*/     OPC_EmitMergeInputChains1_0,
/*93199*/     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)
/*93212*/   /*Scope*/ 25, /*->93238*/
/*93213*/     OPC_CheckInteger, 13|128,1/*141*/, 
/*93216*/     OPC_MoveParent,
/*93217*/     OPC_RecordChild2, // #1 = $src2
/*93218*/     OPC_RecordChild3, // #2 = $src1
/*93219*/     OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*93221*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*93224*/     OPC_EmitMergeInputChains1_0,
/*93225*/     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)
/*93238*/   /*Scope*/ 25, /*->93264*/
/*93239*/     OPC_CheckInteger, 10|128,1/*138*/, 
/*93242*/     OPC_MoveParent,
/*93243*/     OPC_RecordChild2, // #1 = $src2
/*93244*/     OPC_RecordChild3, // #2 = $src1
/*93245*/     OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*93247*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*93250*/     OPC_EmitMergeInputChains1_0,
/*93251*/     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)
/*93264*/   /*Scope*/ 25, /*->93290*/
/*93265*/     OPC_CheckInteger, 11|128,1/*139*/, 
/*93268*/     OPC_MoveParent,
/*93269*/     OPC_RecordChild2, // #1 = $src2
/*93270*/     OPC_RecordChild3, // #2 = $src1
/*93271*/     OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*93273*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*93276*/     OPC_EmitMergeInputChains1_0,
/*93277*/     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)
/*93290*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 48|128,2/*304*/,  TARGET_VAL(X86ISD::MOVLPS),// ->93599
/*93295*/   OPC_RecordChild0, // #0 = $src1
/*93296*/   OPC_Scope, 58, /*->93356*/ // 4 children in Scope
/*93298*/     OPC_MoveChild, 1,
/*93300*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*93303*/     OPC_RecordMemRef,
/*93304*/     OPC_RecordNode, // #1 = 'ld' chained node
/*93305*/     OPC_CheckFoldableChainNode,
/*93306*/     OPC_RecordChild1, // #2 = $src2
/*93307*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*93309*/     OPC_CheckPredicate, 3, // Predicate_load
/*93311*/     OPC_MoveParent,
/*93312*/     OPC_CheckType, MVT::v4i32,
/*93314*/     OPC_Scope, 19, /*->93335*/ // 2 children in Scope
/*93316*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*93318*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*93321*/       OPC_EmitMergeInputChains1_1,
/*93322*/       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)
/*93335*/     /*Scope*/ 19, /*->93355*/
/*93336*/       OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*93338*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*93341*/       OPC_EmitMergeInputChains1_1,
/*93342*/       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)
/*93355*/     0, /*End of Scope*/
/*93356*/   /*Scope*/ 53, /*->93410*/
/*93357*/     OPC_RecordChild1, // #1 = $src2
/*93358*/     OPC_CheckType, MVT::v4i32,
/*93360*/     OPC_Scope, 23, /*->93385*/ // 2 children in Scope
/*93362*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*93364*/       OPC_EmitInteger, MVT::i32, X86::sub_sd,
/*93367*/       OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                    1/*#VTs*/, MVT::f64, 2/*#Ops*/, 1, 2,  // Results = #3 
/*93376*/       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))
/*93385*/     /*Scope*/ 23, /*->93409*/
/*93386*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*93388*/       OPC_EmitInteger, MVT::i32, X86::sub_sd,
/*93391*/       OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                    1/*#VTs*/, MVT::f64, 2/*#Ops*/, 1, 2,  // Results = #3 
/*93400*/       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))
/*93409*/     0, /*End of Scope*/
/*93410*/   /*Scope*/ 4|128,1/*132*/, /*->93544*/
/*93412*/     OPC_MoveChild, 1,
/*93414*/     OPC_SwitchOpcode /*2 cases */, 69,  TARGET_VAL(ISD::BITCAST),// ->93487
/*93418*/       OPC_MoveChild, 0,
/*93420*/       OPC_CheckOpcode, TARGET_VAL(ISD::SCALAR_TO_VECTOR),
/*93423*/       OPC_MoveChild, 0,
/*93425*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*93428*/       OPC_RecordMemRef,
/*93429*/       OPC_RecordNode, // #1 = 'ld' chained node
/*93430*/       OPC_CheckFoldableChainNode,
/*93431*/       OPC_RecordChild1, // #2 = $src2
/*93432*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*93434*/       OPC_CheckPredicate, 3, // Predicate_load
/*93436*/       OPC_CheckType, MVT::f64,
/*93438*/       OPC_MoveParent,
/*93439*/       OPC_CheckType, MVT::v2f64,
/*93441*/       OPC_MoveParent,
/*93442*/       OPC_MoveParent,
/*93443*/       OPC_CheckType, MVT::v4f32,
/*93445*/       OPC_Scope, 19, /*->93466*/ // 2 children in Scope
/*93447*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*93449*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*93452*/         OPC_EmitMergeInputChains1_1,
/*93453*/         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)
/*93466*/       /*Scope*/ 19, /*->93486*/
/*93467*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*93469*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*93472*/         OPC_EmitMergeInputChains1_1,
/*93473*/         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)
/*93486*/       0, /*End of Scope*/
              /*SwitchOpcode*/ 53,  TARGET_VAL(ISD::LOAD),// ->93543
/*93490*/       OPC_RecordMemRef,
/*93491*/       OPC_RecordNode, // #1 = 'ld' chained node
/*93492*/       OPC_CheckFoldableChainNode,
/*93493*/       OPC_RecordChild1, // #2 = $src2
/*93494*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*93496*/       OPC_CheckPredicate, 3, // Predicate_load
/*93498*/       OPC_MoveParent,
/*93499*/       OPC_CheckType, MVT::v4f32,
/*93501*/       OPC_Scope, 19, /*->93522*/ // 2 children in Scope
/*93503*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*93505*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*93508*/         OPC_EmitMergeInputChains1_1,
/*93509*/         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)
/*93522*/       /*Scope*/ 19, /*->93542*/
/*93523*/         OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*93525*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*93528*/         OPC_EmitMergeInputChains1_1,
/*93529*/         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)
/*93542*/       0, /*End of Scope*/
              0, // EndSwitchOpcode
/*93544*/   /*Scope*/ 53, /*->93598*/
/*93545*/     OPC_RecordChild1, // #1 = $src2
/*93546*/     OPC_CheckType, MVT::v4f32,
/*93548*/     OPC_Scope, 23, /*->93573*/ // 2 children in Scope
/*93550*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*93552*/       OPC_EmitInteger, MVT::i32, X86::sub_sd,
/*93555*/       OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                    1/*#VTs*/, MVT::f64, 2/*#Ops*/, 1, 2,  // Results = #3 
/*93564*/       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))
/*93573*/     /*Scope*/ 23, /*->93597*/
/*93574*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*93576*/       OPC_EmitInteger, MVT::i32, X86::sub_sd,
/*93579*/       OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                    1/*#VTs*/, MVT::f64, 2/*#Ops*/, 1, 2,  // Results = #3 
/*93588*/       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))
/*93597*/     0, /*End of Scope*/
/*93598*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 43|128,1/*171*/,  TARGET_VAL(X86ISD::MOVLPD),// ->93774
/*93603*/   OPC_RecordChild0, // #0 = $src1
/*93604*/   OPC_MoveChild, 1,
/*93606*/   OPC_SwitchOpcode /*2 cases */, 99,  TARGET_VAL(ISD::LOAD),// ->93709
/*93610*/     OPC_RecordMemRef,
/*93611*/     OPC_RecordNode, // #1 = 'ld' chained node
/*93612*/     OPC_CheckFoldableChainNode,
/*93613*/     OPC_RecordChild1, // #2 = $src2
/*93614*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*93616*/     OPC_CheckPredicate, 3, // Predicate_load
/*93618*/     OPC_MoveParent,
/*93619*/     OPC_SwitchType /*2 cases */, 42,  MVT::v2i64,// ->93664
/*93622*/       OPC_Scope, 19, /*->93643*/ // 2 children in Scope
/*93624*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*93626*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*93629*/         OPC_EmitMergeInputChains1_1,
/*93630*/         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)
/*93643*/       /*Scope*/ 19, /*->93663*/
/*93644*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*93646*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*93649*/         OPC_EmitMergeInputChains1_1,
/*93650*/         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)
/*93663*/       0, /*End of Scope*/
              /*SwitchType*/ 42,  MVT::v2f64,// ->93708
/*93666*/       OPC_Scope, 19, /*->93687*/ // 2 children in Scope
/*93668*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*93670*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*93673*/         OPC_EmitMergeInputChains1_1,
/*93674*/         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)
/*93687*/       /*Scope*/ 19, /*->93707*/
/*93688*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*93690*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*93693*/         OPC_EmitMergeInputChains1_1,
/*93694*/         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)
/*93707*/       0, /*End of Scope*/
              0, // EndSwitchType
            /*SwitchOpcode*/ 61,  TARGET_VAL(ISD::SCALAR_TO_VECTOR),// ->93773
/*93712*/     OPC_MoveChild, 0,
/*93714*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*93717*/     OPC_RecordMemRef,
/*93718*/     OPC_RecordNode, // #1 = 'ld' chained node
/*93719*/     OPC_CheckFoldableChainNode,
/*93720*/     OPC_RecordChild1, // #2 = $src2
/*93721*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*93723*/     OPC_CheckPredicate, 3, // Predicate_load
/*93725*/     OPC_CheckType, MVT::f64,
/*93727*/     OPC_MoveParent,
/*93728*/     OPC_MoveParent,
/*93729*/     OPC_CheckType, MVT::v2f64,
/*93731*/     OPC_Scope, 19, /*->93752*/ // 2 children in Scope
/*93733*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*93735*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*93738*/       OPC_EmitMergeInputChains1_1,
/*93739*/       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)
/*93752*/     /*Scope*/ 19, /*->93772*/
/*93753*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*93755*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*93758*/       OPC_EmitMergeInputChains1_1,
/*93759*/       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)
/*93772*/     0, /*End of Scope*/
            0, // EndSwitchOpcode
          /*SwitchOpcode*/ 109,  TARGET_VAL(X86ISD::VUNPCKLPSY),// ->93886
/*93777*/   OPC_RecordChild0, // #0 = $src1
/*93778*/   OPC_Scope, 37, /*->93817*/ // 4 children in Scope
/*93780*/     OPC_MoveChild, 1,
/*93782*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*93785*/     OPC_RecordMemRef,
/*93786*/     OPC_RecordNode, // #1 = 'ld' chained node
/*93787*/     OPC_CheckFoldableChainNode,
/*93788*/     OPC_RecordChild1, // #2 = $src2
/*93789*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*93791*/     OPC_CheckPredicate, 3, // Predicate_load
/*93793*/     OPC_CheckPredicate, 23, // Predicate_memop
/*93795*/     OPC_MoveParent,
/*93796*/     OPC_CheckType, MVT::v8i32,
/*93798*/     OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*93800*/     OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*93803*/     OPC_EmitMergeInputChains1_1,
/*93804*/     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)
/*93817*/   /*Scope*/ 14, /*->93832*/
/*93818*/     OPC_RecordChild1, // #1 = $src2
/*93819*/     OPC_CheckType, MVT::v8i32,
/*93821*/     OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*93823*/     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)
/*93832*/   /*Scope*/ 37, /*->93870*/
/*93833*/     OPC_MoveChild, 1,
/*93835*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*93838*/     OPC_RecordMemRef,
/*93839*/     OPC_RecordNode, // #1 = 'ld' chained node
/*93840*/     OPC_CheckFoldableChainNode,
/*93841*/     OPC_RecordChild1, // #2 = $src2
/*93842*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*93844*/     OPC_CheckPredicate, 3, // Predicate_load
/*93846*/     OPC_CheckPredicate, 23, // Predicate_memop
/*93848*/     OPC_MoveParent,
/*93849*/     OPC_CheckType, MVT::v8f32,
/*93851*/     OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*93853*/     OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*93856*/     OPC_EmitMergeInputChains1_1,
/*93857*/     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)
/*93870*/   /*Scope*/ 14, /*->93885*/
/*93871*/     OPC_RecordChild1, // #1 = $src2
/*93872*/     OPC_CheckType, MVT::v8f32,
/*93874*/     OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*93876*/     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)
/*93885*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 109,  TARGET_VAL(X86ISD::VUNPCKHPSY),// ->93998
/*93889*/   OPC_RecordChild0, // #0 = $src1
/*93890*/   OPC_Scope, 37, /*->93929*/ // 4 children in Scope
/*93892*/     OPC_MoveChild, 1,
/*93894*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*93897*/     OPC_RecordMemRef,
/*93898*/     OPC_RecordNode, // #1 = 'ld' chained node
/*93899*/     OPC_CheckFoldableChainNode,
/*93900*/     OPC_RecordChild1, // #2 = $src2
/*93901*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*93903*/     OPC_CheckPredicate, 3, // Predicate_load
/*93905*/     OPC_CheckPredicate, 23, // Predicate_memop
/*93907*/     OPC_MoveParent,
/*93908*/     OPC_CheckType, MVT::v8i32,
/*93910*/     OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*93912*/     OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*93915*/     OPC_EmitMergeInputChains1_1,
/*93916*/     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)
/*93929*/   /*Scope*/ 14, /*->93944*/
/*93930*/     OPC_RecordChild1, // #1 = $src2
/*93931*/     OPC_CheckType, MVT::v8i32,
/*93933*/     OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*93935*/     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)
/*93944*/   /*Scope*/ 37, /*->93982*/
/*93945*/     OPC_MoveChild, 1,
/*93947*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*93950*/     OPC_RecordMemRef,
/*93951*/     OPC_RecordNode, // #1 = 'ld' chained node
/*93952*/     OPC_CheckFoldableChainNode,
/*93953*/     OPC_RecordChild1, // #2 = $src2
/*93954*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*93956*/     OPC_CheckPredicate, 3, // Predicate_load
/*93958*/     OPC_CheckPredicate, 23, // Predicate_memop
/*93960*/     OPC_MoveParent,
/*93961*/     OPC_CheckType, MVT::v8f32,
/*93963*/     OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*93965*/     OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*93968*/     OPC_EmitMergeInputChains1_1,
/*93969*/     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)
/*93982*/   /*Scope*/ 14, /*->93997*/
/*93983*/     OPC_RecordChild1, // #1 = $src2
/*93984*/     OPC_CheckType, MVT::v8f32,
/*93986*/     OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*93988*/     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)
/*93997*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 109,  TARGET_VAL(X86ISD::VUNPCKLPDY),// ->94110
/*94001*/   OPC_RecordChild0, // #0 = $src1
/*94002*/   OPC_Scope, 37, /*->94041*/ // 4 children in Scope
/*94004*/     OPC_MoveChild, 1,
/*94006*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*94009*/     OPC_RecordMemRef,
/*94010*/     OPC_RecordNode, // #1 = 'ld' chained node
/*94011*/     OPC_CheckFoldableChainNode,
/*94012*/     OPC_RecordChild1, // #2 = $src2
/*94013*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*94015*/     OPC_CheckPredicate, 3, // Predicate_load
/*94017*/     OPC_CheckPredicate, 23, // Predicate_memop
/*94019*/     OPC_MoveParent,
/*94020*/     OPC_CheckType, MVT::v4i64,
/*94022*/     OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*94024*/     OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*94027*/     OPC_EmitMergeInputChains1_1,
/*94028*/     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)
/*94041*/   /*Scope*/ 14, /*->94056*/
/*94042*/     OPC_RecordChild1, // #1 = $src2
/*94043*/     OPC_CheckType, MVT::v4i64,
/*94045*/     OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*94047*/     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)
/*94056*/   /*Scope*/ 37, /*->94094*/
/*94057*/     OPC_MoveChild, 1,
/*94059*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*94062*/     OPC_RecordMemRef,
/*94063*/     OPC_RecordNode, // #1 = 'ld' chained node
/*94064*/     OPC_CheckFoldableChainNode,
/*94065*/     OPC_RecordChild1, // #2 = $src2
/*94066*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*94068*/     OPC_CheckPredicate, 3, // Predicate_load
/*94070*/     OPC_CheckPredicate, 23, // Predicate_memop
/*94072*/     OPC_MoveParent,
/*94073*/     OPC_CheckType, MVT::v4f64,
/*94075*/     OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*94077*/     OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*94080*/     OPC_EmitMergeInputChains1_1,
/*94081*/     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)
/*94094*/   /*Scope*/ 14, /*->94109*/
/*94095*/     OPC_RecordChild1, // #1 = $src2
/*94096*/     OPC_CheckType, MVT::v4f64,
/*94098*/     OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*94100*/     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)
/*94109*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 109,  TARGET_VAL(X86ISD::VUNPCKHPDY),// ->94222
/*94113*/   OPC_RecordChild0, // #0 = $src1
/*94114*/   OPC_Scope, 37, /*->94153*/ // 4 children in Scope
/*94116*/     OPC_MoveChild, 1,
/*94118*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*94121*/     OPC_RecordMemRef,
/*94122*/     OPC_RecordNode, // #1 = 'ld' chained node
/*94123*/     OPC_CheckFoldableChainNode,
/*94124*/     OPC_RecordChild1, // #2 = $src2
/*94125*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*94127*/     OPC_CheckPredicate, 3, // Predicate_load
/*94129*/     OPC_CheckPredicate, 23, // Predicate_memop
/*94131*/     OPC_MoveParent,
/*94132*/     OPC_CheckType, MVT::v4i64,
/*94134*/     OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*94136*/     OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*94139*/     OPC_EmitMergeInputChains1_1,
/*94140*/     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)
/*94153*/   /*Scope*/ 14, /*->94168*/
/*94154*/     OPC_RecordChild1, // #1 = $src2
/*94155*/     OPC_CheckType, MVT::v4i64,
/*94157*/     OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*94159*/     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)
/*94168*/   /*Scope*/ 37, /*->94206*/
/*94169*/     OPC_MoveChild, 1,
/*94171*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*94174*/     OPC_RecordMemRef,
/*94175*/     OPC_RecordNode, // #1 = 'ld' chained node
/*94176*/     OPC_CheckFoldableChainNode,
/*94177*/     OPC_RecordChild1, // #2 = $src2
/*94178*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*94180*/     OPC_CheckPredicate, 3, // Predicate_load
/*94182*/     OPC_CheckPredicate, 23, // Predicate_memop
/*94184*/     OPC_MoveParent,
/*94185*/     OPC_CheckType, MVT::v4f64,
/*94187*/     OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*94189*/     OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*94192*/     OPC_EmitMergeInputChains1_1,
/*94193*/     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)
/*94206*/   /*Scope*/ 14, /*->94221*/
/*94207*/     OPC_RecordChild1, // #1 = $src2
/*94208*/     OPC_CheckType, MVT::v4f64,
/*94210*/     OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*94212*/     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)
/*94221*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 29|128,1/*157*/,  TARGET_VAL(X86ISD::PCMPEQB),// ->94383
/*94226*/   OPC_Scope, 61, /*->94289*/ // 3 children in Scope
/*94228*/     OPC_RecordChild0, // #0 = $src1
/*94229*/     OPC_MoveChild, 1,
/*94231*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*94234*/     OPC_RecordMemRef,
/*94235*/     OPC_RecordNode, // #1 = 'ld' chained node
/*94236*/     OPC_CheckFoldableChainNode,
/*94237*/     OPC_RecordChild1, // #2 = $src2
/*94238*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*94240*/     OPC_CheckPredicate, 3, // Predicate_load
/*94242*/     OPC_CheckPredicate, 23, // Predicate_memop
/*94244*/     OPC_MoveParent,
/*94245*/     OPC_CheckType, MVT::v16i8,
/*94247*/     OPC_Scope, 19, /*->94268*/ // 2 children in Scope
/*94249*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*94251*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*94254*/       OPC_EmitMergeInputChains1_1,
/*94255*/       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)
/*94268*/     /*Scope*/ 19, /*->94288*/
/*94269*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*94271*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*94274*/       OPC_EmitMergeInputChains1_1,
/*94275*/       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)
/*94288*/     0, /*End of Scope*/
/*94289*/   /*Scope*/ 61, /*->94351*/
/*94290*/     OPC_MoveChild, 0,
/*94292*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*94295*/     OPC_RecordMemRef,
/*94296*/     OPC_RecordNode, // #0 = 'ld' chained node
/*94297*/     OPC_CheckFoldableChainNode,
/*94298*/     OPC_RecordChild1, // #1 = $src2
/*94299*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*94301*/     OPC_CheckPredicate, 3, // Predicate_load
/*94303*/     OPC_CheckPredicate, 23, // Predicate_memop
/*94305*/     OPC_MoveParent,
/*94306*/     OPC_RecordChild1, // #2 = $src1
/*94307*/     OPC_CheckType, MVT::v16i8,
/*94309*/     OPC_Scope, 19, /*->94330*/ // 2 children in Scope
/*94311*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*94313*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*94316*/       OPC_EmitMergeInputChains1_0,
/*94317*/       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)
/*94330*/     /*Scope*/ 19, /*->94350*/
/*94331*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*94333*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*94336*/       OPC_EmitMergeInputChains1_0,
/*94337*/       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)
/*94350*/     0, /*End of Scope*/
/*94351*/   /*Scope*/ 30, /*->94382*/
/*94352*/     OPC_RecordChild0, // #0 = $src1
/*94353*/     OPC_RecordChild1, // #1 = $src2
/*94354*/     OPC_CheckType, MVT::v16i8,
/*94356*/     OPC_Scope, 11, /*->94369*/ // 2 children in Scope
/*94358*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*94360*/       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)
/*94369*/     /*Scope*/ 11, /*->94381*/
/*94370*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*94372*/       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)
/*94381*/     0, /*End of Scope*/
/*94382*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 29|128,1/*157*/,  TARGET_VAL(X86ISD::PCMPEQW),// ->94544
/*94387*/   OPC_Scope, 61, /*->94450*/ // 3 children in Scope
/*94389*/     OPC_RecordChild0, // #0 = $src1
/*94390*/     OPC_MoveChild, 1,
/*94392*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*94395*/     OPC_RecordMemRef,
/*94396*/     OPC_RecordNode, // #1 = 'ld' chained node
/*94397*/     OPC_CheckFoldableChainNode,
/*94398*/     OPC_RecordChild1, // #2 = $src2
/*94399*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*94401*/     OPC_CheckPredicate, 3, // Predicate_load
/*94403*/     OPC_CheckPredicate, 23, // Predicate_memop
/*94405*/     OPC_MoveParent,
/*94406*/     OPC_CheckType, MVT::v8i16,
/*94408*/     OPC_Scope, 19, /*->94429*/ // 2 children in Scope
/*94410*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*94412*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*94415*/       OPC_EmitMergeInputChains1_1,
/*94416*/       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)
/*94429*/     /*Scope*/ 19, /*->94449*/
/*94430*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*94432*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*94435*/       OPC_EmitMergeInputChains1_1,
/*94436*/       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)
/*94449*/     0, /*End of Scope*/
/*94450*/   /*Scope*/ 61, /*->94512*/
/*94451*/     OPC_MoveChild, 0,
/*94453*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*94456*/     OPC_RecordMemRef,
/*94457*/     OPC_RecordNode, // #0 = 'ld' chained node
/*94458*/     OPC_CheckFoldableChainNode,
/*94459*/     OPC_RecordChild1, // #1 = $src2
/*94460*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*94462*/     OPC_CheckPredicate, 3, // Predicate_load
/*94464*/     OPC_CheckPredicate, 23, // Predicate_memop
/*94466*/     OPC_MoveParent,
/*94467*/     OPC_RecordChild1, // #2 = $src1
/*94468*/     OPC_CheckType, MVT::v8i16,
/*94470*/     OPC_Scope, 19, /*->94491*/ // 2 children in Scope
/*94472*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*94474*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*94477*/       OPC_EmitMergeInputChains1_0,
/*94478*/       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)
/*94491*/     /*Scope*/ 19, /*->94511*/
/*94492*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*94494*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*94497*/       OPC_EmitMergeInputChains1_0,
/*94498*/       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)
/*94511*/     0, /*End of Scope*/
/*94512*/   /*Scope*/ 30, /*->94543*/
/*94513*/     OPC_RecordChild0, // #0 = $src1
/*94514*/     OPC_RecordChild1, // #1 = $src2
/*94515*/     OPC_CheckType, MVT::v8i16,
/*94517*/     OPC_Scope, 11, /*->94530*/ // 2 children in Scope
/*94519*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*94521*/       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)
/*94530*/     /*Scope*/ 11, /*->94542*/
/*94531*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*94533*/       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)
/*94542*/     0, /*End of Scope*/
/*94543*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 29|128,1/*157*/,  TARGET_VAL(X86ISD::PCMPEQD),// ->94705
/*94548*/   OPC_Scope, 61, /*->94611*/ // 3 children in Scope
/*94550*/     OPC_RecordChild0, // #0 = $src1
/*94551*/     OPC_MoveChild, 1,
/*94553*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*94556*/     OPC_RecordMemRef,
/*94557*/     OPC_RecordNode, // #1 = 'ld' chained node
/*94558*/     OPC_CheckFoldableChainNode,
/*94559*/     OPC_RecordChild1, // #2 = $src2
/*94560*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*94562*/     OPC_CheckPredicate, 3, // Predicate_load
/*94564*/     OPC_CheckPredicate, 23, // Predicate_memop
/*94566*/     OPC_MoveParent,
/*94567*/     OPC_CheckType, MVT::v4i32,
/*94569*/     OPC_Scope, 19, /*->94590*/ // 2 children in Scope
/*94571*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*94573*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*94576*/       OPC_EmitMergeInputChains1_1,
/*94577*/       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)
/*94590*/     /*Scope*/ 19, /*->94610*/
/*94591*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*94593*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*94596*/       OPC_EmitMergeInputChains1_1,
/*94597*/       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)
/*94610*/     0, /*End of Scope*/
/*94611*/   /*Scope*/ 61, /*->94673*/
/*94612*/     OPC_MoveChild, 0,
/*94614*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*94617*/     OPC_RecordMemRef,
/*94618*/     OPC_RecordNode, // #0 = 'ld' chained node
/*94619*/     OPC_CheckFoldableChainNode,
/*94620*/     OPC_RecordChild1, // #1 = $src2
/*94621*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*94623*/     OPC_CheckPredicate, 3, // Predicate_load
/*94625*/     OPC_CheckPredicate, 23, // Predicate_memop
/*94627*/     OPC_MoveParent,
/*94628*/     OPC_RecordChild1, // #2 = $src1
/*94629*/     OPC_CheckType, MVT::v4i32,
/*94631*/     OPC_Scope, 19, /*->94652*/ // 2 children in Scope
/*94633*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*94635*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*94638*/       OPC_EmitMergeInputChains1_0,
/*94639*/       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)
/*94652*/     /*Scope*/ 19, /*->94672*/
/*94653*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*94655*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*94658*/       OPC_EmitMergeInputChains1_0,
/*94659*/       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)
/*94672*/     0, /*End of Scope*/
/*94673*/   /*Scope*/ 30, /*->94704*/
/*94674*/     OPC_RecordChild0, // #0 = $src1
/*94675*/     OPC_RecordChild1, // #1 = $src2
/*94676*/     OPC_CheckType, MVT::v4i32,
/*94678*/     OPC_Scope, 11, /*->94691*/ // 2 children in Scope
/*94680*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*94682*/       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)
/*94691*/     /*Scope*/ 11, /*->94703*/
/*94692*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*94694*/       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)
/*94703*/     0, /*End of Scope*/
/*94704*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 94,  TARGET_VAL(X86ISD::PCMPGTB),// ->94802
/*94708*/   OPC_RecordChild0, // #0 = $src1
/*94709*/   OPC_Scope, 60, /*->94771*/ // 2 children in Scope
/*94711*/     OPC_MoveChild, 1,
/*94713*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*94716*/     OPC_RecordMemRef,
/*94717*/     OPC_RecordNode, // #1 = 'ld' chained node
/*94718*/     OPC_CheckFoldableChainNode,
/*94719*/     OPC_RecordChild1, // #2 = $src2
/*94720*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*94722*/     OPC_CheckPredicate, 3, // Predicate_load
/*94724*/     OPC_CheckPredicate, 23, // Predicate_memop
/*94726*/     OPC_MoveParent,
/*94727*/     OPC_CheckType, MVT::v16i8,
/*94729*/     OPC_Scope, 19, /*->94750*/ // 2 children in Scope
/*94731*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*94733*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*94736*/       OPC_EmitMergeInputChains1_1,
/*94737*/       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)
/*94750*/     /*Scope*/ 19, /*->94770*/
/*94751*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*94753*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*94756*/       OPC_EmitMergeInputChains1_1,
/*94757*/       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)
/*94770*/     0, /*End of Scope*/
/*94771*/   /*Scope*/ 29, /*->94801*/
/*94772*/     OPC_RecordChild1, // #1 = $src2
/*94773*/     OPC_CheckType, MVT::v16i8,
/*94775*/     OPC_Scope, 11, /*->94788*/ // 2 children in Scope
/*94777*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*94779*/       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)
/*94788*/     /*Scope*/ 11, /*->94800*/
/*94789*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*94791*/       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)
/*94800*/     0, /*End of Scope*/
/*94801*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 94,  TARGET_VAL(X86ISD::PCMPGTW),// ->94899
/*94805*/   OPC_RecordChild0, // #0 = $src1
/*94806*/   OPC_Scope, 60, /*->94868*/ // 2 children in Scope
/*94808*/     OPC_MoveChild, 1,
/*94810*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*94813*/     OPC_RecordMemRef,
/*94814*/     OPC_RecordNode, // #1 = 'ld' chained node
/*94815*/     OPC_CheckFoldableChainNode,
/*94816*/     OPC_RecordChild1, // #2 = $src2
/*94817*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*94819*/     OPC_CheckPredicate, 3, // Predicate_load
/*94821*/     OPC_CheckPredicate, 23, // Predicate_memop
/*94823*/     OPC_MoveParent,
/*94824*/     OPC_CheckType, MVT::v8i16,
/*94826*/     OPC_Scope, 19, /*->94847*/ // 2 children in Scope
/*94828*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*94830*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*94833*/       OPC_EmitMergeInputChains1_1,
/*94834*/       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)
/*94847*/     /*Scope*/ 19, /*->94867*/
/*94848*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*94850*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*94853*/       OPC_EmitMergeInputChains1_1,
/*94854*/       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)
/*94867*/     0, /*End of Scope*/
/*94868*/   /*Scope*/ 29, /*->94898*/
/*94869*/     OPC_RecordChild1, // #1 = $src2
/*94870*/     OPC_CheckType, MVT::v8i16,
/*94872*/     OPC_Scope, 11, /*->94885*/ // 2 children in Scope
/*94874*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*94876*/       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)
/*94885*/     /*Scope*/ 11, /*->94897*/
/*94886*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*94888*/       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)
/*94897*/     0, /*End of Scope*/
/*94898*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 94,  TARGET_VAL(X86ISD::PCMPGTD),// ->94996
/*94902*/   OPC_RecordChild0, // #0 = $src1
/*94903*/   OPC_Scope, 60, /*->94965*/ // 2 children in Scope
/*94905*/     OPC_MoveChild, 1,
/*94907*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*94910*/     OPC_RecordMemRef,
/*94911*/     OPC_RecordNode, // #1 = 'ld' chained node
/*94912*/     OPC_CheckFoldableChainNode,
/*94913*/     OPC_RecordChild1, // #2 = $src2
/*94914*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*94916*/     OPC_CheckPredicate, 3, // Predicate_load
/*94918*/     OPC_CheckPredicate, 23, // Predicate_memop
/*94920*/     OPC_MoveParent,
/*94921*/     OPC_CheckType, MVT::v4i32,
/*94923*/     OPC_Scope, 19, /*->94944*/ // 2 children in Scope
/*94925*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*94927*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*94930*/       OPC_EmitMergeInputChains1_1,
/*94931*/       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)
/*94944*/     /*Scope*/ 19, /*->94964*/
/*94945*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*94947*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*94950*/       OPC_EmitMergeInputChains1_1,
/*94951*/       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)
/*94964*/     0, /*End of Scope*/
/*94965*/   /*Scope*/ 29, /*->94995*/
/*94966*/     OPC_RecordChild1, // #1 = $src2
/*94967*/     OPC_CheckType, MVT::v4i32,
/*94969*/     OPC_Scope, 11, /*->94982*/ // 2 children in Scope
/*94971*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*94973*/       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)
/*94982*/     /*Scope*/ 11, /*->94994*/
/*94983*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*94985*/       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)
/*94994*/     0, /*End of Scope*/
/*94995*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 94,  TARGET_VAL(X86ISD::PUNPCKLQDQ),// ->95093
/*94999*/   OPC_RecordChild0, // #0 = $src1
/*95000*/   OPC_Scope, 60, /*->95062*/ // 2 children in Scope
/*95002*/     OPC_MoveChild, 1,
/*95004*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*95007*/     OPC_RecordMemRef,
/*95008*/     OPC_RecordNode, // #1 = 'ld' chained node
/*95009*/     OPC_CheckFoldableChainNode,
/*95010*/     OPC_RecordChild1, // #2 = $src2
/*95011*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*95013*/     OPC_CheckPredicate, 3, // Predicate_load
/*95015*/     OPC_CheckPredicate, 23, // Predicate_memop
/*95017*/     OPC_MoveParent,
/*95018*/     OPC_CheckType, MVT::v2i64,
/*95020*/     OPC_Scope, 19, /*->95041*/ // 2 children in Scope
/*95022*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*95024*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*95027*/       OPC_EmitMergeInputChains1_1,
/*95028*/       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)
/*95041*/     /*Scope*/ 19, /*->95061*/
/*95042*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*95044*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*95047*/       OPC_EmitMergeInputChains1_1,
/*95048*/       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)
/*95061*/     0, /*End of Scope*/
/*95062*/   /*Scope*/ 29, /*->95092*/
/*95063*/     OPC_RecordChild1, // #1 = $src2
/*95064*/     OPC_CheckType, MVT::v2i64,
/*95066*/     OPC_Scope, 11, /*->95079*/ // 2 children in Scope
/*95068*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*95070*/       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)
/*95079*/     /*Scope*/ 11, /*->95091*/
/*95080*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*95082*/       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)
/*95091*/     0, /*End of Scope*/
/*95092*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 94,  TARGET_VAL(X86ISD::PUNPCKHQDQ),// ->95190
/*95096*/   OPC_RecordChild0, // #0 = $src1
/*95097*/   OPC_Scope, 60, /*->95159*/ // 2 children in Scope
/*95099*/     OPC_MoveChild, 1,
/*95101*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*95104*/     OPC_RecordMemRef,
/*95105*/     OPC_RecordNode, // #1 = 'ld' chained node
/*95106*/     OPC_CheckFoldableChainNode,
/*95107*/     OPC_RecordChild1, // #2 = $src2
/*95108*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*95110*/     OPC_CheckPredicate, 3, // Predicate_load
/*95112*/     OPC_CheckPredicate, 23, // Predicate_memop
/*95114*/     OPC_MoveParent,
/*95115*/     OPC_CheckType, MVT::v2i64,
/*95117*/     OPC_Scope, 19, /*->95138*/ // 2 children in Scope
/*95119*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*95121*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*95124*/       OPC_EmitMergeInputChains1_1,
/*95125*/       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)
/*95138*/     /*Scope*/ 19, /*->95158*/
/*95139*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*95141*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*95144*/       OPC_EmitMergeInputChains1_1,
/*95145*/       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)
/*95158*/     0, /*End of Scope*/
/*95159*/   /*Scope*/ 29, /*->95189*/
/*95160*/     OPC_RecordChild1, // #1 = $src2
/*95161*/     OPC_CheckType, MVT::v2i64,
/*95163*/     OPC_Scope, 11, /*->95176*/ // 2 children in Scope
/*95165*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*95167*/       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)
/*95176*/     /*Scope*/ 11, /*->95188*/
/*95177*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*95179*/       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)
/*95188*/     0, /*End of Scope*/
/*95189*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 23|128,1/*151*/,  TARGET_VAL(X86ISD::PCMPEQQ),// ->95345
/*95194*/   OPC_Scope, 59, /*->95255*/ // 3 children in Scope
/*95196*/     OPC_RecordChild0, // #0 = $src1
/*95197*/     OPC_MoveChild, 1,
/*95199*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*95202*/     OPC_RecordMemRef,
/*95203*/     OPC_RecordNode, // #1 = 'ld' chained node
/*95204*/     OPC_CheckFoldableChainNode,
/*95205*/     OPC_RecordChild1, // #2 = $src2
/*95206*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*95208*/     OPC_CheckPredicate, 3, // Predicate_load
/*95210*/     OPC_CheckPredicate, 23, // Predicate_memop
/*95212*/     OPC_MoveParent,
/*95213*/     OPC_CheckType, MVT::v2i64,
/*95215*/     OPC_Scope, 19, /*->95236*/ // 2 children in Scope
/*95217*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*95219*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*95222*/       OPC_EmitMergeInputChains1_1,
/*95223*/       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)
/*95236*/     /*Scope*/ 17, /*->95254*/
/*95237*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*95240*/       OPC_EmitMergeInputChains1_1,
/*95241*/       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)
/*95254*/     0, /*End of Scope*/
/*95255*/   /*Scope*/ 59, /*->95315*/
/*95256*/     OPC_MoveChild, 0,
/*95258*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*95261*/     OPC_RecordMemRef,
/*95262*/     OPC_RecordNode, // #0 = 'ld' chained node
/*95263*/     OPC_CheckFoldableChainNode,
/*95264*/     OPC_RecordChild1, // #1 = $src2
/*95265*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*95267*/     OPC_CheckPredicate, 3, // Predicate_load
/*95269*/     OPC_CheckPredicate, 23, // Predicate_memop
/*95271*/     OPC_MoveParent,
/*95272*/     OPC_RecordChild1, // #2 = $src1
/*95273*/     OPC_CheckType, MVT::v2i64,
/*95275*/     OPC_Scope, 19, /*->95296*/ // 2 children in Scope
/*95277*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*95279*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*95282*/       OPC_EmitMergeInputChains1_0,
/*95283*/       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)
/*95296*/     /*Scope*/ 17, /*->95314*/
/*95297*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*95300*/       OPC_EmitMergeInputChains1_0,
/*95301*/       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)
/*95314*/     0, /*End of Scope*/
/*95315*/   /*Scope*/ 28, /*->95344*/
/*95316*/     OPC_RecordChild0, // #0 = $src1
/*95317*/     OPC_RecordChild1, // #1 = $src2
/*95318*/     OPC_CheckType, MVT::v2i64,
/*95320*/     OPC_Scope, 11, /*->95333*/ // 2 children in Scope
/*95322*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*95324*/       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)
/*95333*/     /*Scope*/ 9, /*->95343*/
/*95334*/       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)
/*95343*/     0, /*End of Scope*/
/*95344*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 90,  TARGET_VAL(X86ISD::PCMPGTQ),// ->95438
/*95348*/   OPC_RecordChild0, // #0 = $src1
/*95349*/   OPC_Scope, 58, /*->95409*/ // 2 children in Scope
/*95351*/     OPC_MoveChild, 1,
/*95353*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*95356*/     OPC_RecordMemRef,
/*95357*/     OPC_RecordNode, // #1 = 'ld' chained node
/*95358*/     OPC_CheckFoldableChainNode,
/*95359*/     OPC_RecordChild1, // #2 = $src2
/*95360*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*95362*/     OPC_CheckPredicate, 3, // Predicate_load
/*95364*/     OPC_CheckPredicate, 23, // Predicate_memop
/*95366*/     OPC_MoveParent,
/*95367*/     OPC_CheckType, MVT::v2i64,
/*95369*/     OPC_Scope, 19, /*->95390*/ // 2 children in Scope
/*95371*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*95373*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*95376*/       OPC_EmitMergeInputChains1_1,
/*95377*/       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)
/*95390*/     /*Scope*/ 17, /*->95408*/
/*95391*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*95394*/       OPC_EmitMergeInputChains1_1,
/*95395*/       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)
/*95408*/     0, /*End of Scope*/
/*95409*/   /*Scope*/ 27, /*->95437*/
/*95410*/     OPC_RecordChild1, // #1 = $src2
/*95411*/     OPC_CheckType, MVT::v2i64,
/*95413*/     OPC_Scope, 11, /*->95426*/ // 2 children in Scope
/*95415*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*95417*/       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)
/*95426*/     /*Scope*/ 9, /*->95436*/
/*95427*/       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)
/*95436*/     0, /*End of Scope*/
/*95437*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 23|128,1/*151*/,  TARGET_VAL(X86ISD::VBROADCAST),// ->95593
/*95442*/   OPC_MoveChild, 0,
/*95444*/   OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*95447*/   OPC_RecordMemRef,
/*95448*/   OPC_RecordNode,   // #0 = 'ld' chained node
/*95449*/   OPC_RecordChild1, // #1 = $src
/*95450*/   OPC_CheckPredicate, 2, // Predicate_unindexedload
/*95452*/   OPC_Scope, 23, /*->95477*/ // 4 children in Scope
/*95454*/     OPC_CheckPredicate, 7, // Predicate_loadi32
/*95456*/     OPC_CheckType, MVT::i32,
/*95458*/     OPC_MoveParent,
/*95459*/     OPC_CheckType, MVT::v8i32,
/*95461*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*95464*/     OPC_EmitMergeInputChains1_0,
/*95465*/     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)
/*95477*/   /*Scope*/ 23, /*->95501*/
/*95478*/     OPC_CheckPredicate, 3, // Predicate_load
/*95480*/     OPC_CheckType, MVT::i64,
/*95482*/     OPC_MoveParent,
/*95483*/     OPC_CheckType, MVT::v4i64,
/*95485*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*95488*/     OPC_EmitMergeInputChains1_0,
/*95489*/     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)
/*95501*/   /*Scope*/ 23, /*->95525*/
/*95502*/     OPC_CheckPredicate, 7, // Predicate_loadi32
/*95504*/     OPC_CheckType, MVT::i32,
/*95506*/     OPC_MoveParent,
/*95507*/     OPC_CheckType, MVT::v4i32,
/*95509*/     OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*95512*/     OPC_EmitMergeInputChains1_0,
/*95513*/     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)
/*95525*/   /*Scope*/ 66, /*->95592*/
/*95526*/     OPC_CheckPredicate, 3, // Predicate_load
/*95528*/     OPC_SwitchType /*2 cases */, 39,  MVT::f32,// ->95570
/*95531*/       OPC_MoveParent,
/*95532*/       OPC_SwitchType /*2 cases */, 16,  MVT::v8f32,// ->95551
/*95535*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*95538*/         OPC_EmitMergeInputChains1_0,
/*95539*/         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,// ->95569
/*95553*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*95556*/         OPC_EmitMergeInputChains1_0,
/*95557*/         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,// ->95591
/*95572*/       OPC_MoveParent,
/*95573*/       OPC_CheckType, MVT::v4f64,
/*95575*/       OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3 #4 #5 #6
/*95578*/       OPC_EmitMergeInputChains1_0,
/*95579*/       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
/*95592*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 34|128,2/*290*/,  TARGET_VAL(ISD::INSERT_SUBVECTOR),// ->95887
/*95597*/   OPC_Scope, 104, /*->95703*/ // 4 children in Scope
/*95599*/     OPC_MoveChild, 0,
/*95601*/     OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
/*95604*/     OPC_MoveParent,
/*95605*/     OPC_RecordChild1, // #0 = $src
/*95606*/     OPC_MoveChild, 2,
/*95608*/     OPC_CheckInteger, 0, 
/*95610*/     OPC_CheckType, MVT::i32,
/*95612*/     OPC_MoveParent,
/*95613*/     OPC_SwitchType /*4 cases */, 20,  MVT::v4i64,// ->95636
/*95616*/       OPC_EmitNode, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    1/*#VTs*/, MVT::v4i64, 0/*#Ops*/,  // Results = #1 
/*95623*/       OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*95626*/       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,// ->95658
/*95638*/       OPC_EmitNode, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    1/*#VTs*/, MVT::v8i32, 0/*#Ops*/,  // Results = #1 
/*95645*/       OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*95648*/       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,// ->95680
/*95660*/       OPC_EmitNode, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    1/*#VTs*/, MVT::v16i16, 0/*#Ops*/,  // Results = #1 
/*95667*/       OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*95670*/       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,// ->95702
/*95682*/       OPC_EmitNode, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    1/*#VTs*/, MVT::v32i8, 0/*#Ops*/,  // Results = #1 
/*95689*/       OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*95692*/       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
/*95703*/   /*Scope*/ 75, /*->95779*/
/*95704*/     OPC_RecordNode, // #0 = $ins
/*95705*/     OPC_RecordChild0, // #1 = $src1
/*95706*/     OPC_RecordChild1, // #2 = $src2
/*95707*/     OPC_MoveChild, 2,
/*95709*/     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*95712*/     OPC_CheckType, MVT::i32,
/*95714*/     OPC_MoveParent,
/*95715*/     OPC_CheckPredicate, 108, // Predicate_vinsertf128_insert
/*95717*/     OPC_SwitchType /*4 cases */, 13,  MVT::v8i32,// ->95733
/*95720*/       OPC_EmitNodeXForm, 6, 0, // INSERT_get_vinsertf128_imm
/*95723*/       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,// ->95748
/*95735*/       OPC_EmitNodeXForm, 6, 0, // INSERT_get_vinsertf128_imm
/*95738*/       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,// ->95763
/*95750*/       OPC_EmitNodeXForm, 6, 0, // INSERT_get_vinsertf128_imm
/*95753*/       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,// ->95778
/*95765*/       OPC_EmitNodeXForm, 6, 0, // INSERT_get_vinsertf128_imm
/*95768*/       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
/*95779*/   /*Scope*/ 60, /*->95840*/
/*95780*/     OPC_MoveChild, 0,
/*95782*/     OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
/*95785*/     OPC_MoveParent,
/*95786*/     OPC_RecordChild1, // #0 = $src
/*95787*/     OPC_MoveChild, 2,
/*95789*/     OPC_CheckInteger, 0, 
/*95791*/     OPC_CheckType, MVT::i32,
/*95793*/     OPC_MoveParent,
/*95794*/     OPC_SwitchType /*2 cases */, 20,  MVT::v4f64,// ->95817
/*95797*/       OPC_EmitNode, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    1/*#VTs*/, MVT::v4f64, 0/*#Ops*/,  // Results = #1 
/*95804*/       OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*95807*/       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,// ->95839
/*95819*/       OPC_EmitNode, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    1/*#VTs*/, MVT::v8f32, 0/*#Ops*/,  // Results = #1 
/*95826*/       OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*95829*/       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
/*95840*/   /*Scope*/ 45, /*->95886*/
/*95841*/     OPC_RecordNode, // #0 = $ins
/*95842*/     OPC_RecordChild0, // #1 = $src1
/*95843*/     OPC_RecordChild1, // #2 = $src2
/*95844*/     OPC_MoveChild, 2,
/*95846*/     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*95849*/     OPC_CheckType, MVT::i32,
/*95851*/     OPC_MoveParent,
/*95852*/     OPC_CheckPredicate, 108, // Predicate_vinsertf128_insert
/*95854*/     OPC_SwitchType /*2 cases */, 13,  MVT::v8f32,// ->95870
/*95857*/       OPC_EmitNodeXForm, 6, 0, // INSERT_get_vinsertf128_imm
/*95860*/       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,// ->95885
/*95872*/       OPC_EmitNodeXForm, 6, 0, // INSERT_get_vinsertf128_imm
/*95875*/       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
/*95886*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 94|128,1/*222*/,  TARGET_VAL(ISD::EXTRACT_SUBVECTOR),// ->96113
/*95891*/   OPC_Scope, 66, /*->95959*/ // 4 children in Scope
/*95893*/     OPC_RecordChild0, // #0 = $src
/*95894*/     OPC_MoveChild, 1,
/*95896*/     OPC_CheckInteger, 0, 
/*95898*/     OPC_CheckType, MVT::i32,
/*95900*/     OPC_MoveParent,
/*95901*/     OPC_SwitchType /*4 cases */, 12,  MVT::v4i32,// ->95916
/*95904*/       OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*95907*/       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,// ->95930
/*95918*/       OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*95921*/       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,// ->95944
/*95932*/       OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*95935*/       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,// ->95958
/*95946*/       OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*95949*/       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
/*95959*/   /*Scope*/ 70, /*->96030*/
/*95960*/     OPC_RecordNode, // #0 = $ext
/*95961*/     OPC_RecordChild0, // #1 = $src1
/*95962*/     OPC_MoveChild, 1,
/*95964*/     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*95967*/     OPC_CheckType, MVT::i32,
/*95969*/     OPC_MoveParent,
/*95970*/     OPC_CheckPredicate, 109, // Predicate_vextractf128_extract
/*95972*/     OPC_SwitchType /*4 cases */, 12,  MVT::v4i32,// ->95987
/*95975*/       OPC_EmitNodeXForm, 7, 0, // EXTRACT_get_vextractf128_imm
/*95978*/       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,// ->96001
/*95989*/       OPC_EmitNodeXForm, 7, 0, // EXTRACT_get_vextractf128_imm
/*95992*/       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,// ->96015
/*96003*/       OPC_EmitNodeXForm, 7, 0, // EXTRACT_get_vextractf128_imm
/*96006*/       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,// ->96029
/*96017*/       OPC_EmitNodeXForm, 7, 0, // EXTRACT_get_vextractf128_imm
/*96020*/       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
/*96030*/   /*Scope*/ 38, /*->96069*/
/*96031*/     OPC_RecordChild0, // #0 = $src
/*96032*/     OPC_MoveChild, 1,
/*96034*/     OPC_CheckInteger, 0, 
/*96036*/     OPC_CheckType, MVT::i32,
/*96038*/     OPC_MoveParent,
/*96039*/     OPC_SwitchType /*2 cases */, 12,  MVT::v4f32,// ->96054
/*96042*/       OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*96045*/       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,// ->96068
/*96056*/       OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*96059*/       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
/*96069*/   /*Scope*/ 42, /*->96112*/
/*96070*/     OPC_RecordNode, // #0 = $ext
/*96071*/     OPC_RecordChild0, // #1 = $src1
/*96072*/     OPC_MoveChild, 1,
/*96074*/     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*96077*/     OPC_CheckType, MVT::i32,
/*96079*/     OPC_MoveParent,
/*96080*/     OPC_CheckPredicate, 109, // Predicate_vextractf128_extract
/*96082*/     OPC_SwitchType /*2 cases */, 12,  MVT::v4f32,// ->96097
/*96085*/       OPC_EmitNodeXForm, 7, 0, // EXTRACT_get_vextractf128_imm
/*96088*/       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,// ->96111
/*96099*/       OPC_EmitNodeXForm, 7, 0, // EXTRACT_get_vextractf128_imm
/*96102*/       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
/*96112*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 48,  TARGET_VAL(X86ISD::VSHL),// ->96164
/*96116*/   OPC_RecordChild0, // #0 = $src
/*96117*/   OPC_RecordChild1, // #1 = $amt
/*96118*/   OPC_MoveChild, 1,
/*96120*/   OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*96123*/   OPC_CheckType, MVT::i8,
/*96125*/   OPC_MoveParent,
/*96126*/   OPC_CheckType, MVT::v2i64,
/*96128*/   OPC_Scope, 16, /*->96146*/ // 2 children in Scope
/*96130*/     OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*96132*/     OPC_EmitConvertToTarget, 1,
/*96134*/     OPC_EmitNodeXForm, 0, 2, // BYTE_imm
/*96137*/     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))
/*96146*/   /*Scope*/ 16, /*->96163*/
/*96147*/     OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*96149*/     OPC_EmitConvertToTarget, 1,
/*96151*/     OPC_EmitNodeXForm, 0, 2, // BYTE_imm
/*96154*/     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))
/*96163*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 48,  TARGET_VAL(X86ISD::VSRL),// ->96215
/*96167*/   OPC_RecordChild0, // #0 = $src
/*96168*/   OPC_RecordChild1, // #1 = $amt
/*96169*/   OPC_MoveChild, 1,
/*96171*/   OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*96174*/   OPC_CheckType, MVT::i8,
/*96176*/   OPC_MoveParent,
/*96177*/   OPC_CheckType, MVT::v2i64,
/*96179*/   OPC_Scope, 16, /*->96197*/ // 2 children in Scope
/*96181*/     OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*96183*/     OPC_EmitConvertToTarget, 1,
/*96185*/     OPC_EmitNodeXForm, 0, 2, // BYTE_imm
/*96188*/     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))
/*96197*/   /*Scope*/ 16, /*->96214*/
/*96198*/     OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*96200*/     OPC_EmitConvertToTarget, 1,
/*96202*/     OPC_EmitNodeXForm, 0, 2, // BYTE_imm
/*96205*/     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))
/*96214*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 21|128,1/*149*/,  TARGET_VAL(X86ISD::PALIGN),// ->96368
/*96219*/   OPC_RecordChild0, // #0 = $src1
/*96220*/   OPC_RecordChild1, // #1 = $src2
/*96221*/   OPC_RecordChild2, // #2 = $imm
/*96222*/   OPC_MoveChild, 2,
/*96224*/   OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*96227*/   OPC_CheckType, MVT::i8,
/*96229*/   OPC_MoveParent,
/*96230*/   OPC_SwitchType /*4 cases */, 32,  MVT::v4i32,// ->96265
/*96233*/     OPC_Scope, 14, /*->96249*/ // 2 children in Scope
/*96235*/       OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*96237*/       OPC_EmitConvertToTarget, 2,
/*96239*/       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)
/*96249*/     /*Scope*/ 14, /*->96264*/
/*96250*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*96252*/       OPC_EmitConvertToTarget, 2,
/*96254*/       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)
/*96264*/     0, /*End of Scope*/
            /*SwitchType*/ 32,  MVT::v8i16,// ->96299
/*96267*/     OPC_Scope, 14, /*->96283*/ // 2 children in Scope
/*96269*/       OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*96271*/       OPC_EmitConvertToTarget, 2,
/*96273*/       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)
/*96283*/     /*Scope*/ 14, /*->96298*/
/*96284*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*96286*/       OPC_EmitConvertToTarget, 2,
/*96288*/       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)
/*96298*/     0, /*End of Scope*/
            /*SwitchType*/ 32,  MVT::v16i8,// ->96333
/*96301*/     OPC_Scope, 14, /*->96317*/ // 2 children in Scope
/*96303*/       OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*96305*/       OPC_EmitConvertToTarget, 2,
/*96307*/       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)
/*96317*/     /*Scope*/ 14, /*->96332*/
/*96318*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*96320*/       OPC_EmitConvertToTarget, 2,
/*96322*/       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)
/*96332*/     0, /*End of Scope*/
            /*SwitchType*/ 32,  MVT::v4f32,// ->96367
/*96335*/     OPC_Scope, 14, /*->96351*/ // 2 children in Scope
/*96337*/       OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*96339*/       OPC_EmitConvertToTarget, 2,
/*96341*/       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)
/*96351*/     /*Scope*/ 14, /*->96366*/
/*96352*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*96354*/       OPC_EmitConvertToTarget, 2,
/*96356*/       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)
/*96366*/     0, /*End of Scope*/
            0, // EndSwitchType
          /*SwitchOpcode*/ 38,  TARGET_VAL(X86ISD::VPERMILPSY),// ->96409
/*96371*/   OPC_RecordChild0, // #0 = $src1
/*96372*/   OPC_RecordChild1, // #1 = $imm
/*96373*/   OPC_MoveChild, 1,
/*96375*/   OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*96378*/   OPC_CheckType, MVT::i8,
/*96380*/   OPC_MoveParent,
/*96381*/   OPC_SwitchType /*2 cases */, 11,  MVT::v8i32,// ->96395
/*96384*/     OPC_EmitConvertToTarget, 1,
/*96386*/     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,// ->96408
/*96397*/     OPC_EmitConvertToTarget, 1,
/*96399*/     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),// ->96450
/*96412*/   OPC_RecordChild0, // #0 = $src1
/*96413*/   OPC_RecordChild1, // #1 = $imm
/*96414*/   OPC_MoveChild, 1,
/*96416*/   OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*96419*/   OPC_CheckType, MVT::i8,
/*96421*/   OPC_MoveParent,
/*96422*/   OPC_SwitchType /*2 cases */, 11,  MVT::v4i64,// ->96436
/*96425*/     OPC_EmitConvertToTarget, 1,
/*96427*/     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,// ->96449
/*96438*/     OPC_EmitConvertToTarget, 1,
/*96440*/     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),// ->96550
/*96453*/   OPC_RecordChild0, // #0 = $src1
/*96454*/   OPC_RecordChild1, // #1 = $src2
/*96455*/   OPC_RecordChild2, // #2 = $imm
/*96456*/   OPC_MoveChild, 2,
/*96458*/   OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*96461*/   OPC_CheckType, MVT::i8,
/*96463*/   OPC_MoveParent,
/*96464*/   OPC_SwitchType /*6 cases */, 12,  MVT::v8i32,// ->96479
/*96467*/     OPC_EmitConvertToTarget, 2,
/*96469*/     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,// ->96493
/*96481*/     OPC_EmitConvertToTarget, 2,
/*96483*/     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,// ->96507
/*96495*/     OPC_EmitConvertToTarget, 2,
/*96497*/     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,// ->96521
/*96509*/     OPC_EmitConvertToTarget, 2,
/*96511*/     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,// ->96535
/*96523*/     OPC_EmitConvertToTarget, 2,
/*96525*/     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,// ->96549
/*96537*/     OPC_EmitConvertToTarget, 2,
/*96539*/     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),// ->96719
/*96554*/   OPC_Scope, 40, /*->96596*/ // 3 children in Scope
/*96556*/     OPC_CheckPredicate, 91, // Predicate_immAllZerosV
/*96558*/     OPC_SwitchType /*4 cases */, 7,  MVT::v4i32,// ->96568
/*96561*/       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,// ->96577
/*96570*/       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,// ->96586
/*96579*/       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,// ->96595
/*96588*/       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
/*96596*/   /*Scope*/ 26, /*->96623*/
/*96597*/     OPC_CheckPredicate, 110, // Predicate_immAllOnesV
/*96599*/     OPC_CheckType, MVT::v4i32,
/*96601*/     OPC_Scope, 9, /*->96612*/ // 2 children in Scope
/*96603*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*96605*/       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)
/*96612*/     /*Scope*/ 9, /*->96622*/
/*96613*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*96615*/       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)
/*96622*/     0, /*End of Scope*/
/*96623*/   /*Scope*/ 94, /*->96718*/
/*96624*/     OPC_CheckPredicate, 91, // Predicate_immAllZerosV
/*96626*/     OPC_SwitchType /*6 cases */, 23,  MVT::v8i32,// ->96652
/*96629*/       OPC_EmitInteger, MVT::i32, 0, 
/*96632*/       OPC_EmitNode, TARGET_VAL(X86::V_SET0), 0,
                    1/*#VTs*/, MVT::v16i8, 0/*#Ops*/,  // Results = #1 
/*96639*/       OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*96642*/       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,// ->96677
/*96654*/       OPC_EmitInteger, MVT::i64, 0, 
/*96657*/       OPC_EmitNode, TARGET_VAL(X86::V_SET0), 0,
                    1/*#VTs*/, MVT::v16i8, 0/*#Ops*/,  // Results = #1 
/*96664*/       OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*96667*/       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,// ->96686
/*96679*/       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,// ->96695
/*96688*/       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,// ->96706
/*96697*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*96699*/       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,// ->96717
/*96708*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*96710*/       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
/*96718*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 16,  TARGET_VAL(ISD::BR),// ->96738
/*96722*/   OPC_RecordNode,   // #0 = 'br' chained node
/*96723*/   OPC_RecordChild1, // #1 = $dst
/*96724*/   OPC_MoveChild, 1,
/*96726*/   OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
/*96729*/   OPC_MoveParent,
/*96730*/   OPC_EmitMergeInputChains1_0,
/*96731*/   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*/ 60,  TARGET_VAL(X86ISD::MOVHLPS),// ->96801
/*96741*/   OPC_RecordChild0, // #0 = $src1
/*96742*/   OPC_RecordChild1, // #1 = $src2
/*96743*/   OPC_SwitchType /*2 cases */, 26,  MVT::v4i32,// ->96772
/*96746*/     OPC_Scope, 11, /*->96759*/ // 2 children in Scope
/*96748*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*96750*/       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)
/*96759*/     /*Scope*/ 11, /*->96771*/
/*96760*/       OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*96762*/       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)
/*96771*/     0, /*End of Scope*/
            /*SwitchType*/ 26,  MVT::v4f32,// ->96800
/*96774*/     OPC_Scope, 11, /*->96787*/ // 2 children in Scope
/*96776*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*96778*/       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)
/*96787*/     /*Scope*/ 11, /*->96799*/
/*96788*/       OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*96790*/       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)
/*96799*/     0, /*End of Scope*/
            0, // EndSwitchType
          /*SwitchOpcode*/ 8,  TARGET_VAL(X86ISD::SFENCE),// ->96812
/*96804*/   OPC_RecordNode,   // #0 = 'X86SFence' chained node
/*96805*/   OPC_EmitMergeInputChains1_0,
/*96806*/   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),// ->96823
/*96815*/   OPC_RecordNode,   // #0 = 'X86LFence' chained node
/*96816*/   OPC_EmitMergeInputChains1_0,
/*96817*/   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),// ->96834
/*96826*/   OPC_RecordNode,   // #0 = 'X86MFence' chained node
/*96827*/   OPC_EmitMergeInputChains1_0,
/*96828*/   OPC_MorphNodeTo, TARGET_VAL(X86::MFENCE), 0|OPFL_Chain,
                0/*#VTs*/, 0/*#Ops*/, 
            // Src: (X86MFence) - Complexity = 3
            // Dst: (MFENCE)
          /*SwitchOpcode*/ 28,  TARGET_VAL(X86ISD::PSIGNB),// ->96865
/*96837*/   OPC_RecordChild0, // #0 = $src1
/*96838*/   OPC_RecordChild1, // #1 = $src2
/*96839*/   OPC_Scope, 11, /*->96852*/ // 2 children in Scope
/*96841*/     OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*96843*/     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)
/*96852*/   /*Scope*/ 11, /*->96864*/
/*96853*/     OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*96855*/     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)
/*96864*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 28,  TARGET_VAL(X86ISD::PSIGNW),// ->96896
/*96868*/   OPC_RecordChild0, // #0 = $src1
/*96869*/   OPC_RecordChild1, // #1 = $src2
/*96870*/   OPC_Scope, 11, /*->96883*/ // 2 children in Scope
/*96872*/     OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*96874*/     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)
/*96883*/   /*Scope*/ 11, /*->96895*/
/*96884*/     OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*96886*/     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)
/*96895*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 28,  TARGET_VAL(X86ISD::PSIGND),// ->96927
/*96899*/   OPC_RecordChild0, // #0 = $src1
/*96900*/   OPC_RecordChild1, // #1 = $src2
/*96901*/   OPC_Scope, 11, /*->96914*/ // 2 children in Scope
/*96903*/     OPC_CheckPatternPredicate, 12, // (Subtarget->hasSSSE3())
/*96905*/     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)
/*96914*/   /*Scope*/ 11, /*->96926*/
/*96915*/     OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*96917*/     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)
/*96926*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 124|128,1/*252*/,  TARGET_VAL(ISD::VSELECT),// ->97183
/*96931*/   OPC_RecordChild0, // #0 = $mask
/*96932*/   OPC_Scope, 36, /*->96970*/ // 5 children in Scope
/*96934*/     OPC_CheckChild0Type, MVT::v16i8,
/*96936*/     OPC_RecordChild1, // #1 = $src1
/*96937*/     OPC_RecordChild2, // #2 = $src2
/*96938*/     OPC_CheckType, MVT::v16i8,
/*96940*/     OPC_Scope, 12, /*->96954*/ // 2 children in Scope
/*96942*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*96944*/       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)
/*96954*/     /*Scope*/ 14, /*->96969*/
/*96955*/       OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*96957*/       OPC_EmitCopyToReg, 0, X86::XMM0,
/*96960*/       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)
/*96969*/     0, /*End of Scope*/
/*96970*/   /*Scope*/ 70, /*->97041*/
/*96971*/     OPC_CheckChild0Type, MVT::v4i32,
/*96973*/     OPC_RecordChild1, // #1 = $src1
/*96974*/     OPC_RecordChild2, // #2 = $src2
/*96975*/     OPC_SwitchType /*2 cases */, 30,  MVT::v4i32,// ->97008
/*96978*/       OPC_Scope, 12, /*->96992*/ // 2 children in Scope
/*96980*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*96982*/         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)
/*96992*/       /*Scope*/ 14, /*->97007*/
/*96993*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*96995*/         OPC_EmitCopyToReg, 0, X86::XMM0,
/*96998*/         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)
/*97007*/       0, /*End of Scope*/
              /*SwitchType*/ 30,  MVT::v4f32,// ->97040
/*97010*/       OPC_Scope, 12, /*->97024*/ // 2 children in Scope
/*97012*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*97014*/         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)
/*97024*/       /*Scope*/ 14, /*->97039*/
/*97025*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*97027*/         OPC_EmitCopyToReg, 0, X86::XMM0,
/*97030*/         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)
/*97039*/       0, /*End of Scope*/
              0, // EndSwitchType
/*97041*/   /*Scope*/ 70, /*->97112*/
/*97042*/     OPC_CheckChild0Type, MVT::v2i64,
/*97044*/     OPC_RecordChild1, // #1 = $src1
/*97045*/     OPC_RecordChild2, // #2 = $src2
/*97046*/     OPC_SwitchType /*2 cases */, 30,  MVT::v2i64,// ->97079
/*97049*/       OPC_Scope, 12, /*->97063*/ // 2 children in Scope
/*97051*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*97053*/         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)
/*97063*/       /*Scope*/ 14, /*->97078*/
/*97064*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*97066*/         OPC_EmitCopyToReg, 0, X86::XMM0,
/*97069*/         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)
/*97078*/       0, /*End of Scope*/
              /*SwitchType*/ 30,  MVT::v2f64,// ->97111
/*97081*/       OPC_Scope, 12, /*->97095*/ // 2 children in Scope
/*97083*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*97085*/         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)
/*97095*/       /*Scope*/ 14, /*->97110*/
/*97096*/         OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*97098*/         OPC_EmitCopyToReg, 0, X86::XMM0,
/*97101*/         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)
/*97110*/       0, /*End of Scope*/
              0, // EndSwitchType
/*97112*/   /*Scope*/ 34, /*->97147*/
/*97113*/     OPC_CheckChild0Type, MVT::v8i32,
/*97115*/     OPC_RecordChild1, // #1 = $src1
/*97116*/     OPC_RecordChild2, // #2 = $src2
/*97117*/     OPC_SwitchType /*2 cases */, 12,  MVT::v8i32,// ->97132
/*97120*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*97122*/       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,// ->97146
/*97134*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*97136*/       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
/*97147*/   /*Scope*/ 34, /*->97182*/
/*97148*/     OPC_CheckChild0Type, MVT::v4i64,
/*97150*/     OPC_RecordChild1, // #1 = $src1
/*97151*/     OPC_RecordChild2, // #2 = $src2
/*97152*/     OPC_SwitchType /*2 cases */, 12,  MVT::v4i64,// ->97167
/*97155*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*97157*/       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,// ->97181
/*97169*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*97171*/       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
/*97182*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 21|128,1/*149*/,  TARGET_VAL(X86ISD::MOVSS),// ->97336
/*97187*/   OPC_RecordChild0, // #0 = $src1
/*97188*/   OPC_Scope, 53, /*->97243*/ // 3 children in Scope
/*97190*/     OPC_RecordChild1, // #1 = $src2
/*97191*/     OPC_CheckType, MVT::v4i32,
/*97193*/     OPC_Scope, 23, /*->97218*/ // 2 children in Scope
/*97195*/       OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*97197*/       OPC_EmitInteger, MVT::i32, X86::sub_ss,
/*97200*/       OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                    1/*#VTs*/, MVT::f32, 2/*#Ops*/, 1, 2,  // Results = #3 
/*97209*/       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))
/*97218*/     /*Scope*/ 23, /*->97242*/
/*97219*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*97221*/       OPC_EmitInteger, MVT::i32, X86::sub_ss,
/*97224*/       OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                    1/*#VTs*/, MVT::f32, 2/*#Ops*/, 1, 2,  // Results = #3 
/*97233*/       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))
/*97242*/     0, /*End of Scope*/
/*97243*/   /*Scope*/ 37, /*->97281*/
/*97244*/     OPC_MoveChild, 1,
/*97246*/     OPC_CheckOpcode, TARGET_VAL(ISD::SCALAR_TO_VECTOR),
/*97249*/     OPC_RecordChild0, // #1 = $src2
/*97250*/     OPC_CheckChild0Type, MVT::f32,
/*97252*/     OPC_MoveParent,
/*97253*/     OPC_CheckType, MVT::v4f32,
/*97255*/     OPC_Scope, 11, /*->97268*/ // 2 children in Scope
/*97257*/       OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*97259*/       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)
/*97268*/     /*Scope*/ 11, /*->97280*/
/*97269*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*97271*/       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)
/*97280*/     0, /*End of Scope*/
/*97281*/   /*Scope*/ 53, /*->97335*/
/*97282*/     OPC_RecordChild1, // #1 = $src2
/*97283*/     OPC_CheckType, MVT::v4f32,
/*97285*/     OPC_Scope, 23, /*->97310*/ // 2 children in Scope
/*97287*/       OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*97289*/       OPC_EmitInteger, MVT::i32, X86::sub_ss,
/*97292*/       OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                    1/*#VTs*/, MVT::f32, 2/*#Ops*/, 1, 2,  // Results = #3 
/*97301*/       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))
/*97310*/     /*Scope*/ 23, /*->97334*/
/*97311*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*97313*/       OPC_EmitInteger, MVT::i32, X86::sub_ss,
/*97316*/       OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                    1/*#VTs*/, MVT::f32, 2/*#Ops*/, 1, 2,  // Results = #3 
/*97325*/       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))
/*97334*/     0, /*End of Scope*/
/*97335*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 1|128,2/*257*/,  TARGET_VAL(X86ISD::MOVSD),// ->97597
/*97340*/   OPC_RecordChild0, // #0 = $src1
/*97341*/   OPC_Scope, 107, /*->97450*/ // 3 children in Scope
/*97343*/     OPC_RecordChild1, // #1 = $src2
/*97344*/     OPC_SwitchType /*2 cases */, 50,  MVT::v2i64,// ->97397
/*97347*/       OPC_Scope, 23, /*->97372*/ // 2 children in Scope
/*97349*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*97351*/         OPC_EmitInteger, MVT::i32, X86::sub_sd,
/*97354*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      1/*#VTs*/, MVT::f64, 2/*#Ops*/, 1, 2,  // Results = #3 
/*97363*/         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))
/*97372*/       /*Scope*/ 23, /*->97396*/
/*97373*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*97375*/         OPC_EmitInteger, MVT::i32, X86::sub_sd,
/*97378*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      1/*#VTs*/, MVT::f64, 2/*#Ops*/, 1, 2,  // Results = #3 
/*97387*/         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))
/*97396*/       0, /*End of Scope*/
              /*SwitchType*/ 50,  MVT::v4i32,// ->97449
/*97399*/       OPC_Scope, 23, /*->97424*/ // 2 children in Scope
/*97401*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*97403*/         OPC_EmitInteger, MVT::i32, X86::sub_sd,
/*97406*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      1/*#VTs*/, MVT::f64, 2/*#Ops*/, 1, 2,  // Results = #3 
/*97415*/         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))
/*97424*/       /*Scope*/ 23, /*->97448*/
/*97425*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*97427*/         OPC_EmitInteger, MVT::i32, X86::sub_sd,
/*97430*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      1/*#VTs*/, MVT::f64, 2/*#Ops*/, 1, 2,  // Results = #3 
/*97439*/         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))
/*97448*/       0, /*End of Scope*/
              0, // EndSwitchType
/*97450*/   /*Scope*/ 37, /*->97488*/
/*97451*/     OPC_MoveChild, 1,
/*97453*/     OPC_CheckOpcode, TARGET_VAL(ISD::SCALAR_TO_VECTOR),
/*97456*/     OPC_RecordChild0, // #1 = $src2
/*97457*/     OPC_CheckChild0Type, MVT::f64,
/*97459*/     OPC_MoveParent,
/*97460*/     OPC_CheckType, MVT::v2f64,
/*97462*/     OPC_Scope, 11, /*->97475*/ // 2 children in Scope
/*97464*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*97466*/       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)
/*97475*/     /*Scope*/ 11, /*->97487*/
/*97476*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*97478*/       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)
/*97487*/     0, /*End of Scope*/
/*97488*/   /*Scope*/ 107, /*->97596*/
/*97489*/     OPC_RecordChild1, // #1 = $src2
/*97490*/     OPC_SwitchType /*2 cases */, 50,  MVT::v2f64,// ->97543
/*97493*/       OPC_Scope, 23, /*->97518*/ // 2 children in Scope
/*97495*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*97497*/         OPC_EmitInteger, MVT::i32, X86::sub_sd,
/*97500*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      1/*#VTs*/, MVT::f64, 2/*#Ops*/, 1, 2,  // Results = #3 
/*97509*/         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))
/*97518*/       /*Scope*/ 23, /*->97542*/
/*97519*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*97521*/         OPC_EmitInteger, MVT::i32, X86::sub_sd,
/*97524*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      1/*#VTs*/, MVT::f64, 2/*#Ops*/, 1, 2,  // Results = #3 
/*97533*/         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))
/*97542*/       0, /*End of Scope*/
              /*SwitchType*/ 50,  MVT::v4f32,// ->97595
/*97545*/       OPC_Scope, 23, /*->97570*/ // 2 children in Scope
/*97547*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*97549*/         OPC_EmitInteger, MVT::i32, X86::sub_sd,
/*97552*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      1/*#VTs*/, MVT::f64, 2/*#Ops*/, 1, 2,  // Results = #3 
/*97561*/         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))
/*97570*/       /*Scope*/ 23, /*->97594*/
/*97571*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*97573*/         OPC_EmitInteger, MVT::i32, X86::sub_sd,
/*97576*/         OPC_EmitNode, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      1/*#VTs*/, MVT::f64, 2/*#Ops*/, 1, 2,  // Results = #3 
/*97585*/         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))
/*97594*/       0, /*End of Scope*/
              0, // EndSwitchType
/*97596*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 122,  TARGET_VAL(X86ISD::INSERTPS),// ->97722
/*97600*/   OPC_RecordChild0, // #0 = $src1
/*97601*/   OPC_Scope, 77, /*->97680*/ // 2 children in Scope
/*97603*/     OPC_MoveChild, 1,
/*97605*/     OPC_CheckOpcode, TARGET_VAL(ISD::SCALAR_TO_VECTOR),
/*97608*/     OPC_MoveChild, 0,
/*97610*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*97613*/     OPC_RecordMemRef,
/*97614*/     OPC_RecordNode, // #1 = 'ld' chained node
/*97615*/     OPC_CheckFoldableChainNode,
/*97616*/     OPC_RecordChild1, // #2 = $src2
/*97617*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*97619*/     OPC_CheckPredicate, 3, // Predicate_load
/*97621*/     OPC_CheckType, MVT::f32,
/*97623*/     OPC_MoveParent,
/*97624*/     OPC_MoveParent,
/*97625*/     OPC_RecordChild2, // #3 = $src3
/*97626*/     OPC_MoveChild, 2,
/*97628*/     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*97631*/     OPC_MoveParent,
/*97632*/     OPC_Scope, 22, /*->97656*/ // 2 children in Scope
/*97634*/       OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*97636*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*97639*/       OPC_EmitMergeInputChains1_1,
/*97640*/       OPC_EmitConvertToTarget, 3,
/*97642*/       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)
/*97656*/     /*Scope*/ 22, /*->97679*/
/*97657*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*97659*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #4 #5 #6 #7 #8
/*97662*/       OPC_EmitMergeInputChains1_1,
/*97663*/       OPC_EmitConvertToTarget, 3,
/*97665*/       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)
/*97679*/     0, /*End of Scope*/
/*97680*/   /*Scope*/ 40, /*->97721*/
/*97681*/     OPC_RecordChild1, // #1 = $src2
/*97682*/     OPC_RecordChild2, // #2 = $src3
/*97683*/     OPC_MoveChild, 2,
/*97685*/     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*97688*/     OPC_MoveParent,
/*97689*/     OPC_Scope, 14, /*->97705*/ // 2 children in Scope
/*97691*/       OPC_CheckPatternPredicate, 5, // (Subtarget->hasSSE41())
/*97693*/       OPC_EmitConvertToTarget, 2,
/*97695*/       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)
/*97705*/     /*Scope*/ 14, /*->97720*/
/*97706*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*97708*/       OPC_EmitConvertToTarget, 2,
/*97710*/       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)
/*97720*/     0, /*End of Scope*/
/*97721*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 32|128,1/*160*/,  TARGET_VAL(X86ISD::UNPCKLPD),// ->97886
/*97726*/   OPC_RecordChild0, // #0 = $src1
/*97727*/   OPC_Scope, 126, /*->97855*/ // 2 children in Scope
/*97729*/     OPC_MoveChild, 1,
/*97731*/     OPC_SwitchOpcode /*2 cases */, 61,  TARGET_VAL(ISD::SCALAR_TO_VECTOR),// ->97796
/*97735*/       OPC_MoveChild, 0,
/*97737*/       OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*97740*/       OPC_RecordMemRef,
/*97741*/       OPC_RecordNode, // #1 = 'ld' chained node
/*97742*/       OPC_CheckFoldableChainNode,
/*97743*/       OPC_RecordChild1, // #2 = $src2
/*97744*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*97746*/       OPC_CheckPredicate, 3, // Predicate_load
/*97748*/       OPC_CheckType, MVT::f64,
/*97750*/       OPC_MoveParent,
/*97751*/       OPC_MoveParent,
/*97752*/       OPC_CheckType, MVT::v2f64,
/*97754*/       OPC_Scope, 19, /*->97775*/ // 2 children in Scope
/*97756*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*97758*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*97761*/         OPC_EmitMergeInputChains1_1,
/*97762*/         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)
/*97775*/       /*Scope*/ 19, /*->97795*/
/*97776*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*97778*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*97781*/         OPC_EmitMergeInputChains1_1,
/*97782*/         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)
/*97795*/       0, /*End of Scope*/
              /*SwitchOpcode*/ 55,  TARGET_VAL(ISD::LOAD),// ->97854
/*97799*/       OPC_RecordMemRef,
/*97800*/       OPC_RecordNode, // #1 = 'ld' chained node
/*97801*/       OPC_CheckFoldableChainNode,
/*97802*/       OPC_RecordChild1, // #2 = $src2
/*97803*/       OPC_CheckPredicate, 2, // Predicate_unindexedload
/*97805*/       OPC_CheckPredicate, 3, // Predicate_load
/*97807*/       OPC_CheckPredicate, 23, // Predicate_memop
/*97809*/       OPC_MoveParent,
/*97810*/       OPC_CheckType, MVT::v2f64,
/*97812*/       OPC_Scope, 19, /*->97833*/ // 2 children in Scope
/*97814*/         OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*97816*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*97819*/         OPC_EmitMergeInputChains1_1,
/*97820*/         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)
/*97833*/       /*Scope*/ 19, /*->97853*/
/*97834*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*97836*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*97839*/         OPC_EmitMergeInputChains1_1,
/*97840*/         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)
/*97853*/       0, /*End of Scope*/
              0, // EndSwitchOpcode
/*97855*/   /*Scope*/ 29, /*->97885*/
/*97856*/     OPC_RecordChild1, // #1 = $src2
/*97857*/     OPC_CheckType, MVT::v2f64,
/*97859*/     OPC_Scope, 11, /*->97872*/ // 2 children in Scope
/*97861*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*97863*/       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)
/*97872*/     /*Scope*/ 11, /*->97884*/
/*97873*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*97875*/       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)
/*97884*/     0, /*End of Scope*/
/*97885*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 67,  TARGET_VAL(X86ISD::MOVLHPD),// ->97956
/*97889*/   OPC_RecordChild0, // #0 = $src1
/*97890*/   OPC_MoveChild, 1,
/*97892*/   OPC_CheckOpcode, TARGET_VAL(ISD::SCALAR_TO_VECTOR),
/*97895*/   OPC_MoveChild, 0,
/*97897*/   OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*97900*/   OPC_RecordMemRef,
/*97901*/   OPC_RecordNode,   // #1 = 'ld' chained node
/*97902*/   OPC_CheckFoldableChainNode,
/*97903*/   OPC_RecordChild1, // #2 = $src2
/*97904*/   OPC_CheckPredicate, 2, // Predicate_unindexedload
/*97906*/   OPC_CheckPredicate, 3, // Predicate_load
/*97908*/   OPC_CheckType, MVT::f64,
/*97910*/   OPC_MoveParent,
/*97911*/   OPC_MoveParent,
/*97912*/   OPC_CheckType, MVT::v2f64,
/*97914*/   OPC_Scope, 19, /*->97935*/ // 2 children in Scope
/*97916*/     OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*97918*/     OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*97921*/     OPC_EmitMergeInputChains1_1,
/*97922*/     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)
/*97935*/   /*Scope*/ 19, /*->97955*/
/*97936*/     OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*97938*/     OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*97941*/     OPC_EmitMergeInputChains1_1,
/*97942*/     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)
/*97955*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 94,  TARGET_VAL(X86ISD::UNPCKLPS),// ->98053
/*97959*/   OPC_RecordChild0, // #0 = $src1
/*97960*/   OPC_Scope, 60, /*->98022*/ // 2 children in Scope
/*97962*/     OPC_MoveChild, 1,
/*97964*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*97967*/     OPC_RecordMemRef,
/*97968*/     OPC_RecordNode, // #1 = 'ld' chained node
/*97969*/     OPC_CheckFoldableChainNode,
/*97970*/     OPC_RecordChild1, // #2 = $src2
/*97971*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*97973*/     OPC_CheckPredicate, 3, // Predicate_load
/*97975*/     OPC_CheckPredicate, 23, // Predicate_memop
/*97977*/     OPC_MoveParent,
/*97978*/     OPC_CheckType, MVT::v4f32,
/*97980*/     OPC_Scope, 19, /*->98001*/ // 2 children in Scope
/*97982*/       OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*97984*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*97987*/       OPC_EmitMergeInputChains1_1,
/*97988*/       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)
/*98001*/     /*Scope*/ 19, /*->98021*/
/*98002*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*98004*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*98007*/       OPC_EmitMergeInputChains1_1,
/*98008*/       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)
/*98021*/     0, /*End of Scope*/
/*98022*/   /*Scope*/ 29, /*->98052*/
/*98023*/     OPC_RecordChild1, // #1 = $src2
/*98024*/     OPC_CheckType, MVT::v4f32,
/*98026*/     OPC_Scope, 11, /*->98039*/ // 2 children in Scope
/*98028*/       OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*98030*/       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)
/*98039*/     /*Scope*/ 11, /*->98051*/
/*98040*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*98042*/       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)
/*98051*/     0, /*End of Scope*/
/*98052*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 94,  TARGET_VAL(X86ISD::UNPCKHPS),// ->98150
/*98056*/   OPC_RecordChild0, // #0 = $src1
/*98057*/   OPC_Scope, 60, /*->98119*/ // 2 children in Scope
/*98059*/     OPC_MoveChild, 1,
/*98061*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*98064*/     OPC_RecordMemRef,
/*98065*/     OPC_RecordNode, // #1 = 'ld' chained node
/*98066*/     OPC_CheckFoldableChainNode,
/*98067*/     OPC_RecordChild1, // #2 = $src2
/*98068*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*98070*/     OPC_CheckPredicate, 3, // Predicate_load
/*98072*/     OPC_CheckPredicate, 23, // Predicate_memop
/*98074*/     OPC_MoveParent,
/*98075*/     OPC_CheckType, MVT::v4f32,
/*98077*/     OPC_Scope, 19, /*->98098*/ // 2 children in Scope
/*98079*/       OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*98081*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*98084*/       OPC_EmitMergeInputChains1_1,
/*98085*/       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)
/*98098*/     /*Scope*/ 19, /*->98118*/
/*98099*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*98101*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*98104*/       OPC_EmitMergeInputChains1_1,
/*98105*/       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)
/*98118*/     0, /*End of Scope*/
/*98119*/   /*Scope*/ 29, /*->98149*/
/*98120*/     OPC_RecordChild1, // #1 = $src2
/*98121*/     OPC_CheckType, MVT::v4f32,
/*98123*/     OPC_Scope, 11, /*->98136*/ // 2 children in Scope
/*98125*/       OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1())
/*98127*/       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)
/*98136*/     /*Scope*/ 11, /*->98148*/
/*98137*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*98139*/       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)
/*98148*/     0, /*End of Scope*/
/*98149*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 94,  TARGET_VAL(X86ISD::UNPCKHPD),// ->98247
/*98153*/   OPC_RecordChild0, // #0 = $src1
/*98154*/   OPC_Scope, 60, /*->98216*/ // 2 children in Scope
/*98156*/     OPC_MoveChild, 1,
/*98158*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*98161*/     OPC_RecordMemRef,
/*98162*/     OPC_RecordNode, // #1 = 'ld' chained node
/*98163*/     OPC_CheckFoldableChainNode,
/*98164*/     OPC_RecordChild1, // #2 = $src2
/*98165*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*98167*/     OPC_CheckPredicate, 3, // Predicate_load
/*98169*/     OPC_CheckPredicate, 23, // Predicate_memop
/*98171*/     OPC_MoveParent,
/*98172*/     OPC_CheckType, MVT::v2f64,
/*98174*/     OPC_Scope, 19, /*->98195*/ // 2 children in Scope
/*98176*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*98178*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*98181*/       OPC_EmitMergeInputChains1_1,
/*98182*/       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)
/*98195*/     /*Scope*/ 19, /*->98215*/
/*98196*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*98198*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*98201*/       OPC_EmitMergeInputChains1_1,
/*98202*/       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)
/*98215*/     0, /*End of Scope*/
/*98216*/   /*Scope*/ 29, /*->98246*/
/*98217*/     OPC_RecordChild1, // #1 = $src2
/*98218*/     OPC_CheckType, MVT::v2f64,
/*98220*/     OPC_Scope, 11, /*->98233*/ // 2 children in Scope
/*98222*/       OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*98224*/       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)
/*98233*/     /*Scope*/ 11, /*->98245*/
/*98234*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*98236*/       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)
/*98245*/     0, /*End of Scope*/
/*98246*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 111|128,1/*239*/,  TARGET_VAL(X86ISD::FHADD),// ->98490
/*98251*/   OPC_RecordChild0, // #0 = $src1
/*98252*/   OPC_Scope, 20|128,1/*148*/, /*->98403*/ // 2 children in Scope
/*98255*/     OPC_MoveChild, 1,
/*98257*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*98260*/     OPC_RecordMemRef,
/*98261*/     OPC_RecordNode, // #1 = 'ld' chained node
/*98262*/     OPC_CheckFoldableChainNode,
/*98263*/     OPC_RecordChild1, // #2 = $src2
/*98264*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*98266*/     OPC_CheckPredicate, 3, // Predicate_load
/*98268*/     OPC_CheckPredicate, 23, // Predicate_memop
/*98270*/     OPC_MoveParent,
/*98271*/     OPC_SwitchType /*4 cases */, 42,  MVT::v4f32,// ->98316
/*98274*/       OPC_Scope, 19, /*->98295*/ // 2 children in Scope
/*98276*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*98278*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*98281*/         OPC_EmitMergeInputChains1_1,
/*98282*/         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)
/*98295*/       /*Scope*/ 19, /*->98315*/
/*98296*/         OPC_CheckPatternPredicate, 16, // (Subtarget->hasSSE3())
/*98298*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*98301*/         OPC_EmitMergeInputChains1_1,
/*98302*/         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)
/*98315*/       0, /*End of Scope*/
              /*SwitchType*/ 42,  MVT::v2f64,// ->98360
/*98318*/       OPC_Scope, 19, /*->98339*/ // 2 children in Scope
/*98320*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*98322*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*98325*/         OPC_EmitMergeInputChains1_1,
/*98326*/         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)
/*98339*/       /*Scope*/ 19, /*->98359*/
/*98340*/         OPC_CheckPatternPredicate, 16, // (Subtarget->hasSSE3())
/*98342*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*98345*/         OPC_EmitMergeInputChains1_1,
/*98346*/         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)
/*98359*/       0, /*End of Scope*/
              /*SwitchType*/ 19,  MVT::v8f32,// ->98381
/*98362*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*98364*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*98367*/       OPC_EmitMergeInputChains1_1,
/*98368*/       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,// ->98402
/*98383*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*98385*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*98388*/       OPC_EmitMergeInputChains1_1,
/*98389*/       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
/*98403*/   /*Scope*/ 85, /*->98489*/
/*98404*/     OPC_RecordChild1, // #1 = $src2
/*98405*/     OPC_SwitchType /*4 cases */, 26,  MVT::v4f32,// ->98434
/*98408*/       OPC_Scope, 11, /*->98421*/ // 2 children in Scope
/*98410*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*98412*/         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)
/*98421*/       /*Scope*/ 11, /*->98433*/
/*98422*/         OPC_CheckPatternPredicate, 16, // (Subtarget->hasSSE3())
/*98424*/         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)
/*98433*/       0, /*End of Scope*/
              /*SwitchType*/ 26,  MVT::v2f64,// ->98462
/*98436*/       OPC_Scope, 11, /*->98449*/ // 2 children in Scope
/*98438*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*98440*/         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)
/*98449*/       /*Scope*/ 11, /*->98461*/
/*98450*/         OPC_CheckPatternPredicate, 16, // (Subtarget->hasSSE3())
/*98452*/         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)
/*98461*/       0, /*End of Scope*/
              /*SwitchType*/ 11,  MVT::v8f32,// ->98475
/*98464*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*98466*/       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,// ->98488
/*98477*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*98479*/       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
/*98489*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 111|128,1/*239*/,  TARGET_VAL(X86ISD::FHSUB),// ->98733
/*98494*/   OPC_RecordChild0, // #0 = $src1
/*98495*/   OPC_Scope, 20|128,1/*148*/, /*->98646*/ // 2 children in Scope
/*98498*/     OPC_MoveChild, 1,
/*98500*/     OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*98503*/     OPC_RecordMemRef,
/*98504*/     OPC_RecordNode, // #1 = 'ld' chained node
/*98505*/     OPC_CheckFoldableChainNode,
/*98506*/     OPC_RecordChild1, // #2 = $src2
/*98507*/     OPC_CheckPredicate, 2, // Predicate_unindexedload
/*98509*/     OPC_CheckPredicate, 3, // Predicate_load
/*98511*/     OPC_CheckPredicate, 23, // Predicate_memop
/*98513*/     OPC_MoveParent,
/*98514*/     OPC_SwitchType /*4 cases */, 42,  MVT::v4f32,// ->98559
/*98517*/       OPC_Scope, 19, /*->98538*/ // 2 children in Scope
/*98519*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*98521*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*98524*/         OPC_EmitMergeInputChains1_1,
/*98525*/         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)
/*98538*/       /*Scope*/ 19, /*->98558*/
/*98539*/         OPC_CheckPatternPredicate, 16, // (Subtarget->hasSSE3())
/*98541*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*98544*/         OPC_EmitMergeInputChains1_1,
/*98545*/         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)
/*98558*/       0, /*End of Scope*/
              /*SwitchType*/ 42,  MVT::v2f64,// ->98603
/*98561*/       OPC_Scope, 19, /*->98582*/ // 2 children in Scope
/*98563*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*98565*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*98568*/         OPC_EmitMergeInputChains1_1,
/*98569*/         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)
/*98582*/       /*Scope*/ 19, /*->98602*/
/*98583*/         OPC_CheckPatternPredicate, 16, // (Subtarget->hasSSE3())
/*98585*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*98588*/         OPC_EmitMergeInputChains1_1,
/*98589*/         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)
/*98602*/       0, /*End of Scope*/
              /*SwitchType*/ 19,  MVT::v8f32,// ->98624
/*98605*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*98607*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*98610*/       OPC_EmitMergeInputChains1_1,
/*98611*/       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,// ->98645
/*98626*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*98628*/       OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$src2 #3 #4 #5 #6 #7
/*98631*/       OPC_EmitMergeInputChains1_1,
/*98632*/       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
/*98646*/   /*Scope*/ 85, /*->98732*/
/*98647*/     OPC_RecordChild1, // #1 = $src2
/*98648*/     OPC_SwitchType /*4 cases */, 26,  MVT::v4f32,// ->98677
/*98651*/       OPC_Scope, 11, /*->98664*/ // 2 children in Scope
/*98653*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*98655*/         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)
/*98664*/       /*Scope*/ 11, /*->98676*/
/*98665*/         OPC_CheckPatternPredicate, 16, // (Subtarget->hasSSE3())
/*98667*/         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)
/*98676*/       0, /*End of Scope*/
              /*SwitchType*/ 26,  MVT::v2f64,// ->98705
/*98679*/       OPC_Scope, 11, /*->98692*/ // 2 children in Scope
/*98681*/         OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*98683*/         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)
/*98692*/       /*Scope*/ 11, /*->98704*/
/*98693*/         OPC_CheckPatternPredicate, 16, // (Subtarget->hasSSE3())
/*98695*/         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)
/*98704*/       0, /*End of Scope*/
              /*SwitchType*/ 11,  MVT::v8f32,// ->98718
/*98707*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*98709*/       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,// ->98731
/*98720*/       OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*98722*/       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
/*98732*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 50,  TARGET_VAL(X86ISD::FSRL),// ->98786
/*98736*/   OPC_RecordChild0, // #0 = $src1
/*98737*/   OPC_RecordChild1, // #1 = $src2
/*98738*/   OPC_MoveChild, 1,
/*98740*/   OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*98743*/   OPC_CheckPredicate, 9, // Predicate_i32immSExt8
/*98745*/   OPC_CheckType, MVT::i32,
/*98747*/   OPC_MoveParent,
/*98748*/   OPC_CheckType, MVT::v2f64,
/*98750*/   OPC_Scope, 16, /*->98768*/ // 2 children in Scope
/*98752*/     OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX())
/*98754*/     OPC_EmitConvertToTarget, 1,
/*98756*/     OPC_EmitNodeXForm, 0, 2, // BYTE_imm
/*98759*/     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))
/*98768*/   /*Scope*/ 16, /*->98785*/
/*98769*/     OPC_CheckPatternPredicate, 2, // (Subtarget->hasSSE2())
/*98771*/     OPC_EmitConvertToTarget, 1,
/*98773*/     OPC_EmitNodeXForm, 0, 2, // BYTE_imm
/*98776*/     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))
/*98785*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 9,  TARGET_VAL(X86ISD::RDTSC_DAG),// ->98798
/*98789*/   OPC_RecordNode,   // #0 = 'X86rdtsc' chained node
/*98790*/   OPC_EmitMergeInputChains1_0,
/*98791*/   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),// ->98809
/*98801*/   OPC_RecordNode,   // #0 = 'trap' chained node
/*98802*/   OPC_EmitMergeInputChains1_0,
/*98803*/   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),// ->98838
/*98812*/   OPC_RecordNode,   // #0 = 'X86ehret' chained node
/*98813*/   OPC_RecordChild1, // #1 = $addr
/*98814*/   OPC_Scope, 10, /*->98826*/ // 2 children in Scope
/*98816*/     OPC_CheckChild1Type, MVT::i32,
/*98818*/     OPC_EmitMergeInputChains1_0,
/*98819*/     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)
/*98826*/   /*Scope*/ 10, /*->98837*/
/*98827*/     OPC_CheckChild1Type, MVT::i64,
/*98829*/     OPC_EmitMergeInputChains1_0,
/*98830*/     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)
/*98837*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 54,  TARGET_VAL(X86ISD::REP_MOVS),// ->98895
/*98841*/   OPC_RecordNode,   // #0 = 'X86rep_movs' chained node
/*98842*/   OPC_CaptureGlueInput,
/*98843*/   OPC_MoveChild, 1,
/*98845*/   OPC_Scope, 11, /*->98858*/ // 4 children in Scope
/*98847*/     OPC_CheckValueType, MVT::i8,
/*98849*/     OPC_MoveParent,
/*98850*/     OPC_EmitMergeInputChains1_0,
/*98851*/     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)
/*98858*/   /*Scope*/ 11, /*->98870*/
/*98859*/     OPC_CheckValueType, MVT::i16,
/*98861*/     OPC_MoveParent,
/*98862*/     OPC_EmitMergeInputChains1_0,
/*98863*/     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)
/*98870*/   /*Scope*/ 11, /*->98882*/
/*98871*/     OPC_CheckValueType, MVT::i32,
/*98873*/     OPC_MoveParent,
/*98874*/     OPC_EmitMergeInputChains1_0,
/*98875*/     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)
/*98882*/   /*Scope*/ 11, /*->98894*/
/*98883*/     OPC_CheckValueType, MVT::i64,
/*98885*/     OPC_MoveParent,
/*98886*/     OPC_EmitMergeInputChains1_0,
/*98887*/     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)
/*98894*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 54,  TARGET_VAL(X86ISD::REP_STOS),// ->98952
/*98898*/   OPC_RecordNode,   // #0 = 'X86rep_stos' chained node
/*98899*/   OPC_CaptureGlueInput,
/*98900*/   OPC_MoveChild, 1,
/*98902*/   OPC_Scope, 11, /*->98915*/ // 4 children in Scope
/*98904*/     OPC_CheckValueType, MVT::i8,
/*98906*/     OPC_MoveParent,
/*98907*/     OPC_EmitMergeInputChains1_0,
/*98908*/     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)
/*98915*/   /*Scope*/ 11, /*->98927*/
/*98916*/     OPC_CheckValueType, MVT::i16,
/*98918*/     OPC_MoveParent,
/*98919*/     OPC_EmitMergeInputChains1_0,
/*98920*/     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)
/*98927*/   /*Scope*/ 11, /*->98939*/
/*98928*/     OPC_CheckValueType, MVT::i32,
/*98930*/     OPC_MoveParent,
/*98931*/     OPC_EmitMergeInputChains1_0,
/*98932*/     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)
/*98939*/   /*Scope*/ 11, /*->98951*/
/*98940*/     OPC_CheckValueType, MVT::i64,
/*98942*/     OPC_MoveParent,
/*98943*/     OPC_EmitMergeInputChains1_0,
/*98944*/     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)
/*98951*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 26,  TARGET_VAL(X86ISD::MEMBARRIER),// ->98981
/*98955*/   OPC_RecordNode,   // #0 = 'X86MemBarrier' chained node
/*98956*/   OPC_Scope, 7, /*->98965*/ // 2 children in Scope
/*98958*/     OPC_EmitMergeInputChains1_0,
/*98959*/     OPC_MorphNodeTo, TARGET_VAL(X86::Int_MemBarrier), 0|OPFL_Chain,
                  0/*#VTs*/, 0/*#Ops*/, 
              // Src: (X86MemBarrier) - Complexity = 3
              // Dst: (Int_MemBarrier)
/*98965*/   /*Scope*/ 14, /*->98980*/
/*98966*/     OPC_RecordChild1, // #1 = $zero
/*98967*/     OPC_CheckChild1Type, MVT::i64,
/*98969*/     OPC_CheckPatternPredicate, 4, // (Subtarget->is64Bit())
/*98971*/     OPC_EmitMergeInputChains1_0,
/*98972*/     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)
/*98980*/   0, /*End of Scope*/
          /*SwitchOpcode*/ 10,  TARGET_VAL(X86ISD::WIN_ALLOCA),// ->98994
/*98984*/   OPC_RecordNode,   // #0 = 'X86WinAlloca' chained node
/*98985*/   OPC_CaptureGlueInput,
/*98986*/   OPC_EmitMergeInputChains1_0,
/*98987*/   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 98996 bytes

  // Opcode Histogram:
  // #OPC_Scope                          = 1608
  // #OPC_RecordNode                     = 698
  // #OPC_RecordChild                    = 2584
  // #OPC_RecordMemRef                   = 654
  // #OPC_CaptureGlueInput               = 13
  // #OPC_MoveChild                      = 1596
  // #OPC_MoveParent                     = 2962
  // #OPC_CheckSame                      = 209
  // #OPC_CheckPatternPredicate          = 2709
  // #OPC_CheckPredicate                 = 2782
  // #OPC_CheckOpcode                    = 1078
  // #OPC_SwitchOpcode                   = 56
  // #OPC_CheckType                      = 1167
  // #OPC_SwitchType                     = 389
  // #OPC_CheckChildType                 = 277
  // #OPC_CheckInteger                   = 689
  // #OPC_CheckCondCode                  = 0
  // #OPC_CheckValueType                 = 36
  // #OPC_CheckComplexPat                = 2020
  // #OPC_CheckAndImm                    = 23
  // #OPC_CheckOrImm                     = 0
  // #OPC_CheckFoldableChainNode         = 592
  // #OPC_EmitInteger                    = 54
  // #OPC_EmitStringInteger              = 194
  // #OPC_EmitRegister                   = 0
  // #OPC_EmitConvertToTarget            = 601
  // #OPC_EmitMergeInputChains           = 2077
  // #OPC_EmitCopyToReg                  = 457
  // #OPC_EmitNode                       = 226
  // #OPC_EmitNodeXForm                  = 66
  // #OPC_MarkGlueResults                = 0
  // #OPC_CompleteMatch                  = 61
  // #OPC_MorphNodeTo                    = 3812

  #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->is64Bit()) && (TM.getRelocationModel() != Reloc::PIC_);
  case 22: return (Subtarget->hasMMX()) && (Subtarget->is64Bit());
  case 23: return (Subtarget->hasLZCNT());
  case 24: return (Subtarget->hasBMI());
  case 25: return (Subtarget->is64Bit()) && (!Subtarget->isTargetWin64());
  case 26: return (Subtarget->isTargetWin64());
  case 27: return (!Subtarget->isTargetWin64());
  case 28: return (Subtarget->IsLegalToCallImmediateAddr(TM));
  case 29: return (Subtarget->hasPOPCNT());
  case 30: return (Subtarget->hasSSE2()) && (OptForSize);
  case 31: return (Subtarget->hasSSE2()) && (!OptForSize);
  case 32: return (Subtarget->hasAVX()) && (!OptForSize);
  case 33: return (Subtarget->hasCmpxchg16b());
  case 34: return (Subtarget->hasXMMInt());
  case 35: return (Subtarget->hasAVX()) && (Subtarget->is64Bit());
  case 36: return (TM.getCodeModel() != CodeModel::Small &&TM.getCodeModel() != CodeModel::Kernel);
  case 37: return (TM.getCodeModel() == CodeModel::Small);
  case 38: return (TM.getCodeModel() == CodeModel::Kernel);
  case 39: return (Subtarget->hasSSE1()) && (OptForSize);
  case 40: return (Subtarget->hasAVX()) && (OptForSize);
  case 41: return (Subtarget->hasXMM());
  }
}

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_store_8
    SDNode *N = Node;

    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i8;
  
  }
  case 59: { // Predicate_atomic_store_16
    SDNode *N = Node;

    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i16;
  
  }
  case 60: { // Predicate_atomic_store_32
    SDNode *N = Node;

    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i32;
  
  }
  case 61: { // Predicate_atomic_store_64
    SDNode *N = Node;

    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i64;
  
  }
  case 62: { // Predicate_atomic_load_and_8
    SDNode *N = Node;

    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i8;
  
  }
  case 63: { // Predicate_atomic_load_and_16
    SDNode *N = Node;

    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i16;
  
  }
  case 64: { // Predicate_atomic_load_and_32
    SDNode *N = Node;

    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i32;
  
  }
  case 65: { // Predicate_atomic_load_and_64
    SDNode *N = Node;

    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i64;
  
  }
  case 66: { // Predicate_atomic_load_or_8
    SDNode *N = Node;

    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i8;
  
  }
  case 67: { // Predicate_atomic_load_or_16
    SDNode *N = Node;

    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i16;
  
  }
  case 68: { // Predicate_atomic_load_or_32
    SDNode *N = Node;

    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i32;
  
  }
  case 69: { // Predicate_atomic_load_or_64
    SDNode *N = Node;

    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i64;
  
  }
  case 70: { // Predicate_atomic_load_xor_8
    SDNode *N = Node;

    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i8;
  
  }
  case 71: { // Predicate_atomic_load_xor_16
    SDNode *N = Node;

    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i16;
  
  }
  case 72: { // Predicate_atomic_load_xor_32
    SDNode *N = Node;

    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i32;
  
  }
  case 73: { // Predicate_atomic_load_xor_64
    SDNode *N = Node;

    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i64;
  
  }
  case 74: { // Predicate_atomic_load_nand_8
    SDNode *N = Node;

    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i8;
  
  }
  case 75: { // Predicate_atomic_load_nand_16
    SDNode *N = Node;

    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i16;
  
  }
  case 76: { // Predicate_atomic_load_nand_32
    SDNode *N = Node;

    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i32;
  
  }
  case 77: { // Predicate_atomic_load_nand_64
    SDNode *N = Node;

    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i64;
  
  }
  case 78: { // Predicate_atomic_load_min_16
    SDNode *N = Node;

    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i16;
  
  }
  case 79: { // Predicate_atomic_load_min_32
    SDNode *N = Node;

    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i32;
  
  }
  case 80: { // Predicate_atomic_load_min_64
    SDNode *N = Node;

    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i64;
  
  }
  case 81: { // Predicate_atomic_load_max_16
    SDNode *N = Node;

    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i16;
  
  }
  case 82: { // Predicate_atomic_load_max_32
    SDNode *N = Node;

    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i32;
  
  }
  case 83: { // Predicate_atomic_load_max_64
    SDNode *N = Node;

    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i64;
  
  }
  case 84: { // Predicate_atomic_load_umin_16
    SDNode *N = Node;

    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i16;
  
  }
  case 85: { // Predicate_atomic_load_umin_32
    SDNode *N = Node;

    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i32;
  
  }
  case 86: { // Predicate_atomic_load_umin_64
    SDNode *N = Node;

    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i64;
  
  }
  case 87: { // Predicate_atomic_load_umax_16
    SDNode *N = Node;

    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i16;
  
  }
  case 88: { // Predicate_atomic_load_umax_32
    SDNode *N = Node;

    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i32;
  
  }
  case 89: { // Predicate_atomic_load_umax_64
    SDNode *N = Node;

    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i64;
  
  }
  case 90: { // Predicate_def32
    SDNode *N = Node;

  return N->getOpcode() != ISD::TRUNCATE &&
         N->getOpcode() != TargetOpcode::EXTRACT_SUBREG &&
         N->getOpcode() != ISD::CopyFromReg &&
         N->getOpcode() != X86ISD::CMOV;

  }
  case 91: { // Predicate_immAllZerosV
    SDNode *N = Node;

  return ISD::isBuildVectorAllZeros(N);

  }
  case 92: { // Predicate_fpimm0
    ConstantFPSDNode*N = cast<ConstantFPSDNode>(Node);

  return N->isExactlyValue(+0.0);

  }
  case 93: { // Predicate_fpimm1
    ConstantFPSDNode*N = cast<ConstantFPSDNode>(Node);

  return N->isExactlyValue(+1.0);

  }
  case 94: { // Predicate_fp32imm0
    ConstantFPSDNode*N = cast<ConstantFPSDNode>(Node);

  return N->isExactlyValue(+0.0);

  }
  case 95: { // Predicate_fpimmneg0
    ConstantFPSDNode*N = cast<ConstantFPSDNode>(Node);

  return N->isExactlyValue(-0.0);

  }
  case 96: { // Predicate_fpimmneg1
    ConstantFPSDNode*N = cast<ConstantFPSDNode>(Node);

  return N->isExactlyValue(-1.0);

  }
  case 97: { // Predicate_pshufd
    SDNode *N = Node;

  return X86::isPSHUFDMask(cast<ShuffleVectorSDNode>(N));

  }
  case 98: { // Predicate_movddup
    SDNode *N = Node;

  return X86::isMOVDDUPMask(cast<ShuffleVectorSDNode>(N));

  }
  case 99: { // Predicate_pshufhw
    SDNode *N = Node;

  return X86::isPSHUFHWMask(cast<ShuffleVectorSDNode>(N));

  }
  case 100: { // Predicate_pshuflw
    SDNode *N = Node;

  return X86::isPSHUFLWMask(cast<ShuffleVectorSDNode>(N));

  }
  case 101: { // Predicate_shufp
    SDNode *N = Node;

  return X86::isSHUFPMask(cast<ShuffleVectorSDNode>(N));

  }
  case 102: { // Predicate_movlhps
    SDNode *N = Node;

  return X86::isMOVLHPSMask(cast<ShuffleVectorSDNode>(N));

  }
  case 103: { // Predicate_movhlps_undef
    SDNode *N = Node;

  return X86::isMOVHLPS_v_undef_Mask(cast<ShuffleVectorSDNode>(N));

  }
  case 104: { // Predicate_movhlps
    SDNode *N = Node;

  return X86::isMOVHLPSMask(cast<ShuffleVectorSDNode>(N));

  }
  case 105: { // Predicate_movl
    SDNode *N = Node;

  return X86::isMOVLMask(cast<ShuffleVectorSDNode>(N));

  }
  case 106: { // Predicate_splat_lo
    SDNode *N = Node;

  ShuffleVectorSDNode *SVOp = cast<ShuffleVectorSDNode>(N);
  return SVOp->isSplat() && SVOp->getSplatIndex() == 0;

  }
  case 107: { // Predicate_unpckl
    SDNode *N = Node;

  return X86::isUNPCKLMask(cast<ShuffleVectorSDNode>(N));

  }
  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));

  }
  }
}

